diff --git a/dist/_astro/__vite-browser-external.BIHI7g3E.js b/dist/_astro/__vite-browser-external.BIHI7g3E.js deleted file mode 100644 index b480ffe..0000000 --- a/dist/_astro/__vite-browser-external.BIHI7g3E.js +++ /dev/null @@ -1 +0,0 @@ -const e={};export{e as default}; diff --git a/dist/_astro/preload-helper.Cd0R8zjt.js b/dist/_astro/__vite-browser-external.DnN4KUUt.js similarity index 63% rename from dist/_astro/preload-helper.Cd0R8zjt.js rename to dist/_astro/__vite-browser-external.DnN4KUUt.js index c725299..5bc5dfd 100644 --- a/dist/_astro/preload-helper.Cd0R8zjt.js +++ b/dist/_astro/__vite-browser-external.DnN4KUUt.js @@ -1 +1 @@ -const f="modulepreload",h=function(c){return"/learn-gpgpu/"+c},l={},v=function(a,s,p){let i=Promise.resolve();if(s&&s.length>0){document.getElementsByTagName("link");const r=document.querySelector("meta[property=csp-nonce]"),n=r?.nonce||r?.getAttribute("nonce");i=Promise.all(s.map(e=>{if(e=h(e),e in l)return;l[e]=!0;const o=e.endsWith(".css"),u=o?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${e}"]${u}`))return;const t=document.createElement("link");if(t.rel=o?"stylesheet":f,o||(t.as="script",t.crossOrigin=""),t.href=e,n&&t.setAttribute("nonce",n),document.head.appendChild(t),o)return new Promise((d,m)=>{t.addEventListener("load",d),t.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${e}`)))})}))}return i.then(()=>a()).catch(r=>{const n=new Event("vite:preloadError",{cancelable:!0});if(n.payload=r,window.dispatchEvent(n),!n.defaultPrevented)throw r})};export{v as _}; +const f="modulepreload",p=function(c){return"/learn-gpgpu/"+c},i={},v=function(a,s,h){let l=Promise.resolve();if(s&&s.length>0){document.getElementsByTagName("link");const r=document.querySelector("meta[property=csp-nonce]"),n=r?.nonce||r?.getAttribute("nonce");l=Promise.all(s.map(e=>{if(e=p(e),e in i)return;i[e]=!0;const o=e.endsWith(".css"),u=o?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${e}"]${u}`))return;const t=document.createElement("link");if(t.rel=o?"stylesheet":f,o||(t.as="script",t.crossOrigin=""),t.href=e,n&&t.setAttribute("nonce",n),document.head.appendChild(t),o)return new Promise((d,m)=>{t.addEventListener("load",d),t.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${e}`)))})}))}return l.then(()=>a()).catch(r=>{const n=new Event("vite:preloadError",{cancelable:!0});if(n.payload=r,window.dispatchEvent(n),!n.defaultPrevented)throw r})},g=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));export{v as _,g as a}; diff --git a/dist/_astro/hoisted.LFeokraw.js b/dist/_astro/hoisted.CX9CJQ01.js similarity index 51% rename from dist/_astro/hoisted.LFeokraw.js rename to dist/_astro/hoisted.CX9CJQ01.js index 925dcf4..0acaa1b 100644 --- a/dist/_astro/hoisted.LFeokraw.js +++ b/dist/_astro/hoisted.CX9CJQ01.js @@ -1,11 +1,11 @@ -import{_ as An}from"./preload-helper.Cd0R8zjt.js";const rt=document.querySelector("#talvos svg.vis0"),Xe=rt.querySelector("tspan.physical"),Xt=rt.querySelector("tspan.logical"),Tn=rt.querySelectorAll(".lane");for(const u of Tn)u.addEventListener("mouseenter",function(){Xe.textContent=this.dataset.phyCoords,Xt.textContent=this.dataset.logCoords??"N/A"}),u.addEventListener("mouseleave",function(){Xe.textContent="N/A",Xt.textContent="N/A"}),u.addEventListener("click",function(){this.classList.contains(".disabled")||this.classList.toggle("selected")});const Fn=rt.querySelectorAll(".ctrl");for(const[u,i]of Fn.entries())i.addEventListener("mouseenter",function(){Xe.textContent=`{ ${u}, [${u*8}-${u*8+7}] }`}),i.addEventListener("mouseleave",function(){Xe.textContent="N/A"}),i.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(p=>{p.classList.toggle("selected",s)})});(async()=>{const u=[{label:"%2",kind:"alu",values:function*(){let b=281474976710656;for(;;){const U=`0x${b.toString(16)}`;b+=4,yield U}}},{label:"%3",kind:"mem",values:function*(){let b=0;for(;;)yield`${b++}`}},{label:"%4",kind:"alu",values:function*(){let b=0;for(;;){const U=b;b+=4,yield`0x20..${U.toString(16).padStart(2,"0")}`}}},{label:"st",kind:"mem",values:function*(){for(;;)yield"✔"}},{label:"ret",kind:"alu",values:function*(){for(;;)yield"✔"}}];var i;function f(){i={cur:1,last:[],gen:u[1].values()}}f(),document.querySelector("#talvos .controls button.reset").addEventListener("click",function(){f(),L()});function p(){if(i.cur>=u.length)return;switch(u[i.cur]?.kind){case"alu":i.last=[...i.last,...[...g.querySelectorAll(`:nth-child(${i.cur+1} of :has(g.results)) g.results .dispatched:not(.completed)`)].map(U=>"completed")];break;case"mem":i.last=[...i.last,"completed"];break;default:throw new Error(`unknown op kind: ${u[i.cur]?.kind}`)}const b=parseInt(g.dataset.lanes||"");i.last.length>=b&&(i={cur:i.cur+1,last:[]}),L()}function E(){i={cur:i.cur+1,last:[]},L()}const g=await new Promise(async(b,U)=>{await customElements.whenDefined("shadow-root");const le=document.querySelectorAll("#talvos shadow-root");for(const R of le){const q=R.shadowRoot.querySelector("svg.vis1");if(q){b(q);return}}U("el not found")}),m=document.querySelector("#talvos textarea");let D;function L(){const b=parseInt(g.dataset.lanes||"");g.replaceChildren(...g.querySelectorAll("style,defs"),(R=>(R.setAttribute("href","#step"),R.setAttribute("width","60px"),R.setAttribute("height","240px"),R.setAttribute("x",`${(i.cur||1)*60}`),R))(document.createElementNS("http://www.w3.org/2000/svg","use")),...u.map((R,q)=>{const O=document.createElementNS("http://www.w3.org/2000/svg","svg");O.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns","http://www.w3.org/2000/svg"),O.setAttribute("viewBox","0 0 60 240"),O.setAttribute("width","60px"),O.setAttribute("height","240px"),O.setAttribute("x",`${q*60}`);const Ee=O.appendChild(document.createElementNS("http://www.w3.org/2000/svg","circle"));if(Ee.setAttribute("cx","30"),Ee.setAttribute("cy","55"),Ee.setAttribute("r","12"),q<=i.cur){const x=O.appendChild(document.createElementNS("http://www.w3.org/2000/svg","text"));x.setAttribute("x","30"),x.setAttribute("y","1ch"),x.style.fontSize="medium",x.style.fontFamily="monospace",x.setAttribute("dominant-baseline","middle"),x.setAttribute("text-anchor","middle"),x.setAttribute("dy","0 0.4em 0.4em 0.4em 0.4em"),q{if(q<=i.cur&&R.kind=="alu")return["0",...Array(b-1).fill("-1ch")];if(q{p.classList.toggle("selected",s)})});(async()=>{const u=[{label:"%2",kind:"alu",values:function*(){let b=281474976710656;for(;;){const U=`0x${b.toString(16)}`;b+=4,yield U}}},{label:"%3",kind:"mem",values:function*(){let b=0;for(;;)yield`${b++}`}},{label:"%4",kind:"alu",values:function*(){let b=0;for(;;){const U=b;b+=4,yield`0x20..${U.toString(16).padStart(2,"0")}`}}},{label:"st",kind:"mem",values:function*(){for(;;)yield"✔"}},{label:"ret",kind:"alu",values:function*(){for(;;)yield"✔"}}];var i;function f(){i={cur:1,last:[],gen:u[1].values()}}f(),document.querySelector("#talvos .controls button.reset").addEventListener("click",function(){f(),L()});function p(){if(i.cur>=u.length)return;switch(u[i.cur]?.kind){case"alu":i.last=[...i.last,...[...y.querySelectorAll(`:nth-child(${i.cur+1} of :has(g.results)) g.results .dispatched:not(.completed)`)].map(U=>"completed")];break;case"mem":i.last=[...i.last,"completed"];break;default:throw new Error(`unknown op kind: ${u[i.cur]?.kind}`)}const b=parseInt(y.dataset.lanes||"");i.last.length>=b&&(i={cur:i.cur+1,last:[]}),L()}function w(){i={cur:i.cur+1,last:[]},L()}const y=await new Promise(async(b,U)=>{await customElements.whenDefined("shadow-root");const le=document.querySelectorAll("#talvos shadow-root");for(const R of le){const q=R.shadowRoot.querySelector("svg.vis1");if(q){b(q);return}}U("el not found")}),h=document.querySelector("#talvos textarea");let D;function L(){const b=parseInt(y.dataset.lanes||"");y.replaceChildren(...y.querySelectorAll("style,defs"),(R=>(R.setAttribute("href","#step"),R.setAttribute("width","60px"),R.setAttribute("height","240px"),R.setAttribute("x",`${(i.cur||1)*60}`),R))(document.createElementNS("http://www.w3.org/2000/svg","use")),...u.map((R,q)=>{const O=document.createElementNS("http://www.w3.org/2000/svg","svg");O.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns","http://www.w3.org/2000/svg"),O.setAttribute("viewBox","0 0 60 240"),O.setAttribute("width","60px"),O.setAttribute("height","240px"),O.setAttribute("x",`${q*60}`);const Ee=O.appendChild(document.createElementNS("http://www.w3.org/2000/svg","circle"));if(Ee.setAttribute("cx","30"),Ee.setAttribute("cy","55"),Ee.setAttribute("r","12"),q<=i.cur){const x=O.appendChild(document.createElementNS("http://www.w3.org/2000/svg","text"));x.setAttribute("x","30"),x.setAttribute("y","1ch"),x.style.fontSize="medium",x.style.fontFamily="monospace",x.setAttribute("dominant-baseline","middle"),x.setAttribute("text-anchor","middle"),x.setAttribute("dy","0 0.4em 0.4em 0.4em 0.4em"),q{if(q<=i.cur&&R.kind=="alu")return["0",...Array(b-1).fill("-1ch")];if(q{const O=q-le+1;if(O>=0&&O=u.length)return[R];if(U=="ret"&&R.includes("OpReturn")||U=="st"&&R.includes("OpStore")||R.includes(`${U} =`)){if(u[i.cur].kind=="alu")return[">",i.last.length==0?"◦◦◦◦":"••••",R.slice(5)].join("");if(u[i.cur].kind=="mem")return[...i.last.map((Ee,J)=>[" ".repeat(J+1),"•"].join("")),[">"," ".repeat(i.last.length),"◦".repeat(4-i.last.length),R.slice(5)].join("")];console.error("unknown kind for op",u[i.cur])}}return[R]}).join(` -`),m.scrollTo({top:684,left:0,behavior:"smooth"})}document.querySelector("#talvos .controls button.vis.step0").addEventListener("click",p),document.querySelector("#talvos .controls button.vis.step1").addEventListener("click",E),window.addEventListener("event-binding-lol-TODO-start",function(){D=m.textContent,f(),L(),m.scrollTo({top:584,left:0,behavior:"smooth"})}),window.addEventListener("event-binding-lol-TODO-tick",p),window.addEventListener("event-binding-lol-TODO-step",E),window.addEventListener("event-binding-lol-TODO-finish",function(){f(),m.textContent=D})})();class se{data;constructor(i,f,s){this.data=new DataView(i,f,s)}get addr(){return this.data.byteOffset}get byteLength(){return this.data.byteLength}reslice(i){return[this.slice(0,i),this.slice(i)]}slice(i,f){i=i??0,i=i<0?this.byteLength+i:i,f=f??this.byteLength,f=f<0?this.byteLength+f:f;const s=Math.min(this.addr+i,this.addr+this.byteLength),p=Math.min(Math.max(0,f-i),this.byteLength);return new se(this.data.buffer,s,p)}asRef(){return this.addr}as(i){return new i(this.data.buffer,this.addr,this.byteLength)}static get SIZE(){return 4}getUsize(i,f){return this.data.getUint32(i,f)}deref(i,f,s){return new se(this.data.buffer,this.getUsize(i,s),f)}}var On=new TextEncoder,Nn=(u,i,f,s)=>{if(u.length>16){const{written:L}=On.encodeInto(u,i.subarray(f,s));return L}for(var p=f,E=f+s-1,g=0;g=55296&&m<=57343){var D=u.charCodeAt(++g);m=65536+((m&1023)<<10)|D&1023}if(m<=127){if(f>=E)break;i[f++]=m}else if(m<=2047){if(f+1>=E)break;i[f++]=192|m>>6,i[f++]=128|m&63}else if(m<=65535){if(f+2>=E)break;i[f++]=224|m>>12,i[f++]=128|m>>6&63,i[f++]=128|m&63}else{if(f+3>=E)break;if(m>1114111)throw new Error("Invalid Unicode code point");i[f++]=240|m>>18,i[f++]=128|m>>12&63,i[f++]=128|m>>6&63,i[f++]=128|m&63}}return i[f]=0,f-p},Kt=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,In=(u,i,f,s)=>{const p=i+f,E=(()=>{let U=i;for(;u[U]&&!(U>=p);)++U;return U})();if(E-i>16&&u.buffer&&Kt)return Kt.decode(u.subarray(i,E));for(var g="";i>10,56320|b&1023)}}return g};class Ln{next;dtor;constructor(i,f){this.next=i,this.dtor=f??(()=>{})}alloc(i){if(i>this.size)throw new Error(`OOM: Arena out of memory: requested ${i} bytes but only ${this.size} bytes remain`);const[f,s]=this.next.reslice(i);return this.next=s,f}free(i){}get size(){return this.next.byteLength}__destroy__(){this.dtor()}}const Me=!0;function Cn(u){class i{static get SIZE(){return se.SIZE}constructor(s){return new u(s.deref(0,u.SIZE,Me))}}return i}const Mn=6,Dn=await WebAssembly.instantiateStreaming(fetch("data:application/wasm;base64,AGFzbQEAAAABBgFgAX4BfwMCAQAHDgEKaTY0LnBvcGNudAAACggBBgAgAHunCwAKBG5hbWUCAwEAAA=="),{}),Rn=Dn.instance,Pn=Rn.exports["i64.popcnt"];class Ke{words;growable;constructor(i,{data:f}={}){this.words=new BigUint64Array(f.buffer,f.byteOffset,f.byteLength>>3),this.growable=!1;for(const s of i??[])this.add(s)}asRef(){return this.words.byteOffset}#e(i){const f=this.words;if(f.length<<6>i)return;if(!this.growable)throw new Error("TODO message");const s=i+64>>>Mn,p=Math.max(s<<3,f.byteLength<<4);var E=new BigUint64Array(new ArrayBuffer(p));E.set(this.words),this.words=E}add(i){this.#e(i);const f=i>>>6,s=1n<>>6,s=1n<({size:i.size*u})}function Un(...u){return{size:u.reduce((i,f)=>i+f.size,0)}}class Je{constructor(i){if(this.ptr=i,i.byteLength!=Je.SIZE)throw new Error(`bad size! got ${i.byteLength} wanted ${Je.SIZE}`)}static get SIZE(){return 12}get X(){return this.ptr.data.getUint32(0,Ve)}get Y(){return this.ptr.data.getUint32(4,Ve)}get Z(){return this.ptr.data.getUint32(8,Ve)}}class Qe{constructor(i){if(this.ptr=i,i.byteLength!=Qe.SIZE)throw new Error(`bad size! got ${i.byteLength} wanted ${Qe.SIZE}`)}static get SIZE(){return 2}get Core(){return this.ptr.data.getUint8(0)}get Lane(){return this.ptr.data.getUint8(1)}}var fe=(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))(fe||{});class ee{constructor(i){if(this.ptr=i,i.byteLength!=ee.SIZE)throw new Error(`bad size! got ${i.byteLength} wanted ${ee.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:Jt,lanes:Jt,steppedCores:Qt,steppedLanes:Qt,laneStates:xn(er)(Un())}}asRef(){return this.ptr.asRef()}get Cores(){return ee.TYPES.cores.get(this.ptr,ee.OFFSETS.cores)}get Lanes(){return ee.TYPES.lanes.get(this.ptr,ee.OFFSETS.lanes)}get SteppedCores(){return new Ke(void 0,{data:this.ptr.slice(ee.OFFSETS.steppedCores,ee.OFFSETS.steppedCores+ee.TYPES.steppedCores.size).data})}get SteppedLanes(){return new Ke(void 0,{data:this.ptr.slice(ee.OFFSETS.steppedLanes,ee.OFFSETS.steppedLanes+ee.TYPES.steppedLanes.size).data})}get LaneStates(){var i=Math.min(this.Cores*this.Lanes,er);const f=this.ptr.slice(24),s={get(p){const E=f.slice(20*p,20*p+20);return{get PhyCoord(){return new Qe(E.slice(0,2))},get LogCoord(){return new Je(E.slice(4,16))},get State(){return E.data.getInt32(16,Ve)}}},[Symbol.iterator]:()=>{var p=0;return{next(){return p>=i?{done:!0,value:void 0}:{done:!1,value:s.get(p++)}}}}};return s}}const er=64;var Bn=new TextDecoder("utf8");class et{constructor(i){this.ptr=i}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 Bn.decode(this.data.as(Uint8Array))}get[Symbol.toStringTag](){return`std::string(${this.asString})`}}function we(u){return class{constructor(i){this.ptr=i}static get T(){return u}static get SIZE(){return we.SIZE}get(i){const[f,s]=[this.ptr.deref(0*se.SIZE,void 0,!0),this.ptr.deref(1*se.SIZE,void 0,!0)],p=u.SIZE,E=(s.addr-f.addr)/p;if(i<0||i>E)throw new Error(`out of bounds access: for index ${i} with elements [0..${E})`);const g=i*p;return new u(f.slice(g,g+p))}[Symbol.iterator](){const[i,f]=[this.ptr.deref(0*se.SIZE,void 0,!0),this.ptr.deref(1*se.SIZE,0,!0)],s=u.SIZE;var p=i;return{next(){if(p.addr>=f.addr)return{done:!0,value:void 0};const E={done:!1,value:new u(p.slice(0,s))};return p=p.slice(s),E}}}}}we.SIZE=12;function $n(u){return class{constructor(i){this.ptr=i}static get T(){return u}static get SIZE(){return console.assert(u==et),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 ie=!0;class tr{constructor(i){this.ptr=i}static get SIZE(){return 64}get EntryName(){return In(this.ptr.slice(0,64).as(Uint8Array),0,64)}set EntryName(i){if(Nn(i,this.ptr.slice(0,64).as(Uint8Array),0,64)>48n,g=Number(i&BigInt.asUintN(64,2n**64n-1n>>s)),m=this.Allocs.get(Number(E));return console.assert(g+f<=m.NumBytes),m.Data.slice(g,f)}get Allocs(){return new(we(qn))(this.ptr.slice(2432,2432+we.SIZE))}}class Yn{constructor(i){this.ptr=i}static get SIZE(){return 20}get Data(){return this.ptr.deref(4,void 0,ie)}}class ar{constructor(i){this.ptr=i}static get SIZE(){return 272}get Objects(){return new(we(Yn))(this.ptr.slice(32,32+we.SIZE))}}class ir{constructor(i){this.ptr=i}static get SIZE(){return 112}get GlobalMemory(){return new or(this.ptr.deref(16,or.SIZE,ie))}get PipelineExecutor(){return new ar(this.ptr.deref(32,ar.SIZE,ie))}}class tt{constructor(i){this.ptr=i}static get SIZE(){return 12}get X(){return this.ptr.data.getUint32(0,ie)}get Y(){return this.ptr.data.getUint32(4,ie)}get Z(){return this.ptr.data.getUint32(8,ie)}get(i){if(i<0||i>3)throw new Error(`out of bounds access: for index ${i} with elements [0..3)`);const p=i*4;return this.ptr.data.getUint32(p,ie)}[Symbol.iterator](){const[i,f]=this.ptr.reslice(tt.SIZE),s=4;var p=i;return{next(){if(p.addr>=f.addr)return{done:!0,value:void 0};const E={done:!1,value:p.data.getUint32(0,ie)};return p=p.slice(s),E}}}}var jn=(()=>{var u=import.meta.url;return async function(i={}){var f,s=Object.assign({},i),p,E,g=new Promise((e,t)=>{p=e,E=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_getCurrentId","_Session_step","_Session_tick","_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(g,e)||Object.defineProperty(g,e,{get:()=>G("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:()=>G("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 m=typeof window=="object",D=typeof importScripts=="function",L=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",b=!m&&!L&&!D;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(L){const{createRequire:e}=await An(()=>import("./__vite-browser-external.BIHI7g3E.js"),[]);var U=e(import.meta.url)}var le=Object.assign({},s),R="./this.program",q=(e,t)=>{throw t},O="";function Ee(e){return s.locateFile?s.locateFile(e,O):O+e}var J,he,ue;if(L){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 oe=process.versions.node,x=oe.split(".").slice(0,3);if(x=x[0]*1e4+x[1]*100+x[2].split("-")[0]*1,x<16e4)throw new Error("This emscripten-generated code requires node v16.0.0 (detected v"+oe+")");var ye=U("fs"),te=U("path");D?O=te.dirname(O)+"/":O=U("url").fileURLToPath(new URL("./",import.meta.url)),J=(e,t)=>(e=st(e)?new URL(e):te.normalize(e),ye.readFileSync(e,t?void 0:"utf8")),ue=e=>{var t=J(e,!0);return t.buffer||(t=new Uint8Array(t)),w(t.buffer),t},he=(e,t,r,o=!0)=>{e=st(e)?new URL(e):te.normalize(e),ye.readFile(e,o?void 0:"utf8",(a,l)=>{a?r(a):t(o?l.buffer:l)})},!s.thisProgram&&process.argv.length>1&&(R=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),q=(e,t)=>{throw process.exitCode=e,t}}else if(b){if(typeof process=="object"&&typeof U=="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(m||D){if(D?O=self.location.href:typeof document<"u"&&document.currentScript&&(O=document.currentScript.src),u&&(O=u),O.startsWith("blob:")?O="":O=O.substr(0,O.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?)");J=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},D&&(ue=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),he=(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 _e=s.print||console.log.bind(console),j=s.printErr||console.error.bind(console);Object.assign(s,le),le=null,gn(),s.arguments&&s.arguments,pe("arguments","arguments_"),s.thisProgram&&(R=s.thisProgram),pe("thisProgram","thisProgram"),s.quit&&(q=s.quit),pe("quit","quit_"),w(typeof s.memoryInitializerPrefixURL>"u","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),w(typeof s.pthreadMainPrefixURL>"u","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),w(typeof s.cdInitializerPrefixURL>"u","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),w(typeof s.filePackagePrefixURL>"u","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),w(typeof s.read>"u","Module.read option was removed (modify read_ in JS)"),w(typeof s.readAsync>"u","Module.readAsync option was removed (modify readAsync in JS)"),w(typeof s.readBinary>"u","Module.readBinary option was removed (modify readBinary in JS)"),w(typeof s.setWindowTitle>"u","Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)"),w(typeof s.TOTAL_MEMORY>"u","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),pe("asm","wasmExports"),pe("read","read_"),pe("readAsync","readAsync"),pe("readBinary","readBinary"),pe("setWindowTitle","setWindowTitle"),w(!D,"worker environment detected but not enabled at build time. Add `worker` to `-sENVIRONMENT` to enable."),w(!b,"shell environment detected but not enabled at build time. Add `shell` to `-sENVIRONMENT` to enable.");var Ae;s.wasmBinary&&(Ae=s.wasmBinary),pe("wasmBinary","wasmBinary"),typeof WebAssembly!="object"&&j("no native wasm support detected");var Se,Te=!1;function w(e,t){e||G("Assertion failed"+(t?": "+t:""))}var Z,I,C,N,B,ce;function dr(){var e=Se.buffer;s.HEAP8=Z=new Int8Array(e),s.HEAP16=C=new Int16Array(e),s.HEAPU8=I=new Uint8Array(e),s.HEAPU16=new Uint16Array(e),s.HEAP32=N=new Int32Array(e),s.HEAPU32=B=new Uint32Array(e),s.HEAPF32=new Float32Array(e),s.HEAPF64=new Float64Array(e),s.HEAP64=ce=new BigInt64Array(e),s.HEAPU64=new BigUint64Array(e)}w(!s.STACK_SIZE,"STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time"),w(typeof Int32Array<"u"&&typeof Float64Array<"u"&&Int32Array.prototype.subarray!=null&&Int32Array.prototype.set!=null,"JS engine does not provide full typed array support"),w(!s.wasmMemory,"Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally"),w(!s.INITIAL_MEMORY,"Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically");function ur(){var e=gt();w((e&3)==0),e==0&&(e+=4),B[e>>2]=34821223,B[e+4>>2]=2310721022,B[0]=1668509029}function at(){if(!Te){var e=gt();e==0&&(e+=4);var t=B[e>>2],r=B[e+4>>2];(t!=34821223||r!=2310721022)&&G(`Stack overflow! Stack cookie has been overwritten at ${xe(e)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${xe(r)} ${xe(t)}`),B[0]!=1668509029&&G("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 Et=[],yt=[],_t=[],$e=!1;function fr(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)pr(s.preRun.shift());lt(Et)}function hr(){w(!$e),$e=!0,at(),!s.noFSInit&&!n.init.initialized&&n.init(),n.ignorePermissions=!1,lt(yt)}function mr(){if(at(),s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)gr(s.postRun.shift());lt(_t)}function pr(e){Et.unshift(e)}function vr(e){yt.unshift(e)}function gr(e){_t.unshift(e)}w(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),w(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),w(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),w(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 Fe=0,Oe=null,Re=null,Ie={};function St(e){for(var t=e;;){if(!Ie[e])return e;e=t+Math.random()}}function it(e){Fe++,s.monitorRunDependencies?.(Fe),e?(w(!Ie[e]),Ie[e]=1,Oe===null&&typeof setInterval<"u"&&(Oe=setInterval(()=>{if(Te){clearInterval(Oe),Oe=null;return}var t=!1;for(var r in Ie)t||(t=!0,j("still waiting on run dependencies:")),j(`dependency: ${r}`);t&&j("(end of list)")},1e4))):j("warning: run dependency added without ID")}function ze(e){if(Fe--,s.monitorRunDependencies?.(Fe),e?(w(Ie[e]),delete Ie[e]):j("warning: run dependency removed without ID"),Fe==0&&(Oe!==null&&(clearInterval(Oe),Oe=null),Re)){var t=Re;Re=null,t()}}function G(e){s.onAbort?.(e),e="Aborted("+e+")",j(e),Te=!0,$e&&Yt();var t=new WebAssembly.RuntimeError(e);throw E(t),t}var wr="data:application/octet-stream;base64,",bt=e=>e.startsWith(wr),st=e=>e.startsWith("file://");function P(e,t){return(...r)=>{w($e,`native function \`${e}\` called before runtime initialization`);var o=re[e];return w(o,`exported native function \`${e}\` not found`),w(r.length<=t,`native function \`${e}\` called with ${r.length} args but expects ${t}`),o(...r)}}var me;s.locateFile?(me="talvos-wasm.wasm",bt(me)||(me=Ee(me))):me=new URL("/learn-gpgpu/_astro/talvos-wasm.-CWWtbU-.wasm",import.meta.url).href;function kt(e){if(e==me&&Ae)return new Uint8Array(Ae);if(ue)return ue(e);throw"both async and sync fetching of the wasm failed"}function Er(e){return!Ae&&(m||D)&&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(()=>kt(e)):Promise.resolve().then(()=>kt(e))}function At(e,t,r){return Er(e).then(o=>WebAssembly.instantiate(o,t)).then(r,o=>{j(`failed to asynchronously prepare wasm: ${o}`),st(me)&&j(`warning: Loading from a file URI (${me}) 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`),G(o)})}function yr(e,t,r,o){return!e&&typeof WebAssembly.instantiateStreaming=="function"&&!bt(t)&&!L&&typeof fetch=="function"?fetch(t,{credentials:"same-origin"}).then(a=>{var l=WebAssembly.instantiateStreaming(a,r);return l.then(o,function(c){return j(`wasm streaming compile failed: ${c}`),j("falling back to ArrayBuffer instantiation"),At(t,r,o)})}):At(t,r,o)}function _r(){return{env:zt,wasi_snapshot_preview1:zt}}function Sr(){var e=_r();function t(a,l){return re=a.exports,s.wasmExports=re,Se=re.memory,s.wasmMemory=Se,w(Se,"memory not found in wasm exports"),dr(),vr(re.__wasm_call_ctors),ze("wasm-instantiate"),re}it("wasm-instantiate");var r=s;function o(a){w(s===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(s.instantiateWasm)try{return s.instantiateWasm(e,t)}catch(a){j(`Module.instantiateWasm callback failed with error: ${a}`),E(a)}return yr(Ae,me,e,o).catch(E),{}}function pe(e,t,r=!0){Object.getOwnPropertyDescriptor(s,e)||Object.defineProperty(s,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)":"";G(`\`Module.${e}\` has been replaced by \`${t}\``+o)}})}function br(e){Object.getOwnPropertyDescriptor(s,e)&&G(`\`Module.${e}\` was supplied but \`${e}\` not included in INCOMING_MODULE_JS_API`)}function Tt(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 Ft(e,t){typeof globalThis<"u"&&Object.defineProperty(globalThis,e,{configurable:!0,get(){be(`\`${e}\` is not longer defined by emscripten. ${t}`)}})}Ft("buffer","Please use HEAP8.buffer or wasmMemory.buffer"),Ft("asm","Please use wasmExports instead");function kr(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}')`,Tt(e)&&(t+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),be(t)}}),Ot(e)}function Ot(e){Object.getOwnPropertyDescriptor(s,e)||Object.defineProperty(s,e,{configurable:!0,get(){var t=`'${e}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`;Tt(e)&&(t+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),G(t)}})}function Ar(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}var lt=e=>{for(;e.length>0;)e.shift()(s)},Nt=()=>re.__cpp_exception,It=e=>{var t=e.getArg(Nt(),0);return En(t)},Tr=e=>{var t=It(e);wn(t)},ct=()=>Zt(),dt=e=>Gt(e),Pe=e=>Wt(e),Lt=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,Ne=(e,t,r)=>{for(var o=t+r,a=t;e[a]&&!(a>=o);)++a;if(a-t>16&&e.buffer&&Lt)return Lt.decode(e.subarray(t,a));for(var l="";t>10,56320|T&1023)}}return l},ve=(e,t)=>(w(typeof e=="number",`UTF8ToString expects a number (got ${typeof e})`),e?Ne(I,e,t):""),Fr=e=>{var t=ct(),r=Pe(4),o=Pe(4);yn(e,r,o);var a=B[r>>2],l=B[o>>2],c=ve(a);qt(a);var d;return l&&(d=ve(l),qt(l)),dt(t),[c,d]},ut=e=>{var t=It(e);return Fr(t)};s.getExceptionMessage=ut;var Or=s.noExitRuntime||!0,xe=e=>(w(typeof e=="number"),e>>>=0,"0x"+e.toString(16).padStart(8,"0")),be=e=>{be.shown||={},be.shown[e]||(be.shown[e]=1,L&&(e="warning: "+e),j(e))},Nr=(e,t,r,o)=>{G(`Assertion failed: ${ve(e)}, at: `+[t?ve(t):"unknown filename",r,o?ve(o):"unknown function"])};function He(){w(K.varargs!=null);var e=N[+K.varargs>>2];return K.varargs+=4,e}var Le=He,$={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=$.isAbs(e),r=e.substr(-1)==="/";return e=$.normalizeArray(e.split("/").filter(o=>!!o),!t).join("/"),!e&&!t&&(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=$.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=$.normalize(e),e=e.replace(/\/$/,"");var t=e.lastIndexOf("/");return t===-1?e:e.substr(t+1)},join:(...e)=>$.normalize(e.join("/")),join2:(e,t)=>$.normalize(e+"/"+t)},Ir=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return o=>crypto.getRandomValues(o);if(L)try{var e=U("crypto"),t=e.randomFillSync;if(t)return o=>e.randomFillSync(o);var r=e.randomBytes;return o=>(o.set(r(o.byteLength)),o)}catch{}G("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 } };")},Ct=e=>(Ct=Ir())(e),ge={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=$.isAbs(a)}return t=$.normalizeArray(t.split("/").filter(l=>!!l),!r).join("/"),(r?"/":"")+t||"."},relative:(e,t)=>{e=ge.resolve(e).substr(1),t=ge.resolve(t).substr(1);function r(T){for(var F=0;F=0&&T[M]==="";M--);return F>M?[]:T.slice(F,M-F+1)}for(var o=r(e.split("/")),a=r(t.split("/")),l=Math.min(o.length,a.length),c=l,d=0;d{for(var t=0,r=0;r=55296&&o<=57343?(t+=4,++r):t+=3}return t},qe=(e,t,r,o)=>{if(w(typeof e=="string",`stringToUTF8Array expects a string (got ${typeof e})`),!(o>0))return 0;for(var a=r,l=r+o-1,c=0;c=55296&&d<=57343){var v=e.charCodeAt(++c);d=65536+((d&1023)<<10)|v&1023}if(d<=127){if(r>=l)break;t[r++]=d}else if(d<=2047){if(r+1>=l)break;t[r++]=192|d>>6,t[r++]=128|d&63}else if(d<=65535){if(r+2>=l)break;t[r++]=224|d>>12,t[r++]=128|d>>6&63,t[r++]=128|d&63}else{if(r+3>=l)break;d>1114111&&be("Invalid Unicode code point "+xe(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)."),t[r++]=240|d>>18,t[r++]=128|d>>12&63,t[r++]=128|d>>6&63,t[r++]=128|d&63}}return t[r]=0,r-a};function Ye(e,t,r){var o=ht(e)+1,a=new Array(o),l=qe(e,a,0,a.length);return t&&(a.length=l),a}var Lr=()=>{if(!ft.length){var e=null;if(L){var t=256,r=Buffer.alloc(t),o=0,a=process.stdin.fd;try{o=ye.readSync(a,r)}catch(l){if(l.toString().includes("EOF"))o=0;else throw l}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+=` +`),h.scrollTo({top:684,left:0,behavior:"smooth"})}document.querySelector("#talvos .controls button.vis.step0").addEventListener("click",p),document.querySelector("#talvos .controls button.vis.step1").addEventListener("click",w),window.addEventListener("event-binding-lol-TODO-start",function(){D=h.textContent,f(),L(),h.scrollTo({top:584,left:0,behavior:"smooth"})}),window.addEventListener("event-binding-lol-TODO-tick",p),window.addEventListener("event-binding-lol-TODO-step",w),window.addEventListener("event-binding-lol-TODO-finish",function(){f(),h.textContent=D})})();class se{data;constructor(i,f,s){this.data=new DataView(i,f,s)}get addr(){return this.data.byteOffset}get byteLength(){return this.data.byteLength}reslice(i){return[this.slice(0,i),this.slice(i)]}slice(i,f){i=i??0,i=i<0?this.byteLength+i:i,f=f??this.byteLength,f=f<0?this.byteLength+f:f;const s=Math.min(this.addr+i,this.addr+this.byteLength),p=Math.min(Math.max(0,f-i),this.byteLength);return new se(this.data.buffer,s,p)}asRef(){return this.addr}as(i){return new i(this.data.buffer,this.addr,this.byteLength)}static get SIZE(){return 4}getUsize(i,f){return this.data.getUint32(i,f)}deref(i,f,s){return new se(this.data.buffer,this.getUsize(i,s),f)}}var Nn=new TextEncoder,In=(u,i,f,s)=>{if(u.length>16){const{written:L}=Nn.encodeInto(u,i.subarray(f,s));return L}for(var p=f,w=f+s-1,y=0;y=55296&&h<=57343){var D=u.charCodeAt(++y);h=65536+((h&1023)<<10)|D&1023}if(h<=127){if(f>=w)break;i[f++]=h}else if(h<=2047){if(f+1>=w)break;i[f++]=192|h>>6,i[f++]=128|h&63}else if(h<=65535){if(f+2>=w)break;i[f++]=224|h>>12,i[f++]=128|h>>6&63,i[f++]=128|h&63}else{if(f+3>=w)break;if(h>1114111)throw new Error("Invalid Unicode code point");i[f++]=240|h>>18,i[f++]=128|h>>12&63,i[f++]=128|h>>6&63,i[f++]=128|h&63}}return i[f]=0,f-p},Jt=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,Ln=(u,i,f,s)=>{const p=i+f,w=(()=>{let U=i;for(;u[U]&&!(U>=p);)++U;return U})();if(w-i>16&&u.buffer&&Jt)return Jt.decode(u.subarray(i,w));for(var y="";i>10,56320|b&1023)}}return y};class Cn{next;dtor;constructor(i,f){this.next=i,this.dtor=f??(()=>{})}alloc(i){if(i>this.size)throw new Error(`OOM: Arena out of memory: requested ${i} bytes but only ${this.size} bytes remain`);const[f,s]=this.next.reslice(i);return this.next=s,f}free(i){}get size(){return this.next.byteLength}__destroy__(){this.dtor()}}const Me=!0;function Mn(u){class i{static get SIZE(){return se.SIZE}constructor(s){return new u(s.deref(0,u.SIZE,Me))}}return i}const Dn=6,Rn=await WebAssembly.instantiateStreaming(fetch("data:application/wasm;base64,AGFzbQEAAAABBgFgAX4BfwMCAQAHDgEKaTY0LnBvcGNudAAACggBBgAgAHunCwAKBG5hbWUCAwEAAA=="),{}),Pn=Rn.instance,xn=Pn.exports["i64.popcnt"];class Je{words;growable;constructor(i,{data:f}={}){this.words=new BigUint64Array(f.buffer,f.byteOffset,f.byteLength>>3),this.growable=!1;for(const s of i??[])this.add(s)}asRef(){return this.words.byteOffset}#e(i){const f=this.words;if(f.length<<6>i)return;if(!this.growable)throw new Error("TODO message");const s=i+64>>>Dn,p=Math.max(s<<3,f.byteLength<<4);var w=new BigUint64Array(new ArrayBuffer(p));w.set(this.words),this.words=w}add(i){this.#e(i);const f=i>>>6,s=1n<>>6,s=1n<({size:i.size*u})}function Bn(...u){return{size:u.reduce((i,f)=>i+f.size,0)}}class Qe{constructor(i){if(this.ptr=i,i.byteLength!=Qe.SIZE)throw new Error(`bad size! got ${i.byteLength} wanted ${Qe.SIZE}`)}static get SIZE(){return 12}get X(){return this.ptr.data.getUint32(0,Xe)}get Y(){return this.ptr.data.getUint32(4,Xe)}get Z(){return this.ptr.data.getUint32(8,Xe)}}class et{constructor(i){if(this.ptr=i,i.byteLength!=et.SIZE)throw new Error(`bad size! got ${i.byteLength} wanted ${et.SIZE}`)}static get SIZE(){return 2}get Core(){return this.ptr.data.getUint8(0)}get Lane(){return this.ptr.data.getUint8(1)}}var fe=(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))(fe||{});class ee{constructor(i){if(this.ptr=i,i.byteLength!=ee.SIZE)throw new Error(`bad size! got ${i.byteLength} wanted ${ee.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:Un(tr)(Bn())}}asRef(){return this.ptr.asRef()}get Cores(){return ee.TYPES.cores.get(this.ptr,ee.OFFSETS.cores)}get Lanes(){return ee.TYPES.lanes.get(this.ptr,ee.OFFSETS.lanes)}get SteppedCores(){return new Je(void 0,{data:this.ptr.slice(ee.OFFSETS.steppedCores,ee.OFFSETS.steppedCores+ee.TYPES.steppedCores.size).data})}get SteppedLanes(){return new Je(void 0,{data:this.ptr.slice(ee.OFFSETS.steppedLanes,ee.OFFSETS.steppedLanes+ee.TYPES.steppedLanes.size).data})}get LaneStates(){var i=Math.min(this.Cores*this.Lanes,tr);const f=this.ptr.slice(24),s={get(p){const w=f.slice(20*p,20*p+20);return{get PhyCoord(){return new et(w.slice(0,2))},get LogCoord(){return new Qe(w.slice(4,16))},get State(){return w.data.getInt32(16,Xe)}}},[Symbol.iterator]:()=>{var p=0;return{next(){return p>=i?{done:!0,value:void 0}:{done:!1,value:s.get(p++)}}}}};return s}}const tr=64;var $n=new TextDecoder("utf8");class tt{constructor(i){this.ptr=i}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 $n.decode(this.data.as(Uint8Array))}get[Symbol.toStringTag](){return`std::string(${this.asString})`}}function we(u){return class{constructor(i){this.ptr=i}static get T(){return u}static get SIZE(){return we.SIZE}get(i){const[f,s]=[this.ptr.deref(0*se.SIZE,void 0,!0),this.ptr.deref(1*se.SIZE,void 0,!0)],p=u.SIZE,w=(s.addr-f.addr)/p;if(i<0||i>w)throw new Error(`out of bounds access: for index ${i} with elements [0..${w})`);const y=i*p;return new u(f.slice(y,y+p))}[Symbol.iterator](){const[i,f]=[this.ptr.deref(0*se.SIZE,void 0,!0),this.ptr.deref(1*se.SIZE,0,!0)],s=u.SIZE;var p=i;return{next(){if(p.addr>=f.addr)return{done:!0,value:void 0};const w={done:!1,value:new u(p.slice(0,s))};return p=p.slice(s),w}}}}}we.SIZE=12;function zn(u){return class{constructor(i){this.ptr=i}static get T(){return u}static get SIZE(){return console.assert(u==tt),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 ie=!0;class rr{constructor(i){this.ptr=i}static get SIZE(){return 64}get EntryName(){return Ln(this.ptr.slice(0,64).as(Uint8Array),0,64)}set EntryName(i){if(In(i,this.ptr.slice(0,64).as(Uint8Array),0,64)>48n,y=Number(i&BigInt.asUintN(64,2n**64n-1n>>s)),h=this.Allocs.get(Number(w));return console.assert(y+f<=h.NumBytes),h.Data.slice(y,f)}get Allocs(){return new(we(Yn))(this.ptr.slice(2432,2432+we.SIZE))}}class jn{constructor(i){this.ptr=i}static get SIZE(){return 20}get Data(){return this.ptr.deref(4,void 0,ie)}}class ir{constructor(i){this.ptr=i}static get SIZE(){return 272}get Objects(){return new(we(jn))(this.ptr.slice(32,32+we.SIZE))}}class sr{constructor(i){this.ptr=i}static get SIZE(){return 112}get GlobalMemory(){return new ar(this.ptr.deref(16,ar.SIZE,ie))}get PipelineExecutor(){return new ir(this.ptr.deref(32,ir.SIZE,ie))}}class rt{constructor(i){this.ptr=i}static get SIZE(){return 12}get X(){return this.ptr.data.getUint32(0,ie)}get Y(){return this.ptr.data.getUint32(4,ie)}get Z(){return this.ptr.data.getUint32(8,ie)}get(i){if(i<0||i>3)throw new Error(`out of bounds access: for index ${i} with elements [0..3)`);const p=i*4;return this.ptr.data.getUint32(p,ie)}[Symbol.iterator](){const[i,f]=this.ptr.reslice(rt.SIZE),s=4;var p=i;return{next(){if(p.addr>=f.addr)return{done:!0,value:void 0};const w={done:!1,value:p.data.getUint32(0,ie)};return p=p.slice(s),w}}}}var Gn=(()=>{var u=import.meta.url;return async function(i={}){var f,s=Object.assign({},i),p,w,y=new Promise((e,t)=>{p=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_getCurrentId","_Session_step","_Session_tick","_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(y,e)||Object.defineProperty(y,e,{get:()=>G("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:()=>G("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 h=typeof window=="object",D=typeof importScripts=="function",L=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",b=!h&&!L&&!D;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(L){const{createRequire:e}=await Tn(async()=>{const{createRequire:t}=await import("./__vite-browser-external.DnN4KUUt.js").then(r=>r.a);return{createRequire:t}},[]);var U=e(import.meta.url)}var le=Object.assign({},s),R="./this.program",q=(e,t)=>{throw t},O="";function Ee(e){return s.locateFile?s.locateFile(e,O):O+e}var J,me,ue;if(L){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 oe=process.versions.node,x=oe.split(".").slice(0,3);if(x=x[0]*1e4+x[1]*100+x[2].split("-")[0]*1,x<16e4)throw new Error("This emscripten-generated code requires node v16.0.0 (detected v"+oe+")");var ye=U("fs"),te=U("path");D?O=te.dirname(O)+"/":O=U("url").fileURLToPath(new URL("./",import.meta.url)),J=(e,t)=>(e=lt(e)?new URL(e):te.normalize(e),ye.readFileSync(e,t?void 0:"utf8")),ue=e=>{var t=J(e,!0);return t.buffer||(t=new Uint8Array(t)),g(t.buffer),t},me=(e,t,r,o=!0)=>{e=lt(e)?new URL(e):te.normalize(e),ye.readFile(e,o?void 0:"utf8",(a,l)=>{a?r(a):t(o?l.buffer:l)})},!s.thisProgram&&process.argv.length>1&&(R=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),q=(e,t)=>{throw process.exitCode=e,t}}else if(b){if(typeof process=="object"&&typeof U=="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(h||D){if(D?O=self.location.href:typeof document<"u"&&document.currentScript&&(O=document.currentScript.src),u&&(O=u),O.startsWith("blob:")?O="":O=O.substr(0,O.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?)");J=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},D&&(ue=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),me=(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 _e=s.print||console.log.bind(console),j=s.printErr||console.error.bind(console);Object.assign(s,le),le=null,wn(),s.arguments&&s.arguments,pe("arguments","arguments_"),s.thisProgram&&(R=s.thisProgram),pe("thisProgram","thisProgram"),s.quit&&(q=s.quit),pe("quit","quit_"),g(typeof s.memoryInitializerPrefixURL>"u","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),g(typeof s.pthreadMainPrefixURL>"u","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),g(typeof s.cdInitializerPrefixURL>"u","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),g(typeof s.filePackagePrefixURL>"u","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),g(typeof s.read>"u","Module.read option was removed (modify read_ in JS)"),g(typeof s.readAsync>"u","Module.readAsync option was removed (modify readAsync in JS)"),g(typeof s.readBinary>"u","Module.readBinary option was removed (modify readBinary in JS)"),g(typeof s.setWindowTitle>"u","Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)"),g(typeof s.TOTAL_MEMORY>"u","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),pe("asm","wasmExports"),pe("read","read_"),pe("readAsync","readAsync"),pe("readBinary","readBinary"),pe("setWindowTitle","setWindowTitle"),g(!D,"worker environment detected but not enabled at build time. Add `worker` to `-sENVIRONMENT` to enable."),g(!b,"shell environment detected but not enabled at build time. Add `shell` to `-sENVIRONMENT` to enable.");var Ae;s.wasmBinary&&(Ae=s.wasmBinary),pe("wasmBinary","wasmBinary"),typeof WebAssembly!="object"&&j("no native wasm support detected");var Se,Te=!1;function g(e,t){e||G("Assertion failed"+(t?": "+t:""))}var Z,I,C,N,B,ce;function ur(){var e=Se.buffer;s.HEAP8=Z=new Int8Array(e),s.HEAP16=C=new Int16Array(e),s.HEAPU8=I=new Uint8Array(e),s.HEAPU16=new Uint16Array(e),s.HEAP32=N=new Int32Array(e),s.HEAPU32=B=new Uint32Array(e),s.HEAPF32=new Float32Array(e),s.HEAPF64=new Float64Array(e),s.HEAP64=ce=new BigInt64Array(e),s.HEAPU64=new BigUint64Array(e)}g(!s.STACK_SIZE,"STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time"),g(typeof Int32Array<"u"&&typeof Float64Array<"u"&&Int32Array.prototype.subarray!=null&&Int32Array.prototype.set!=null,"JS engine does not provide full typed array support"),g(!s.wasmMemory,"Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally"),g(!s.INITIAL_MEMORY,"Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically");function fr(){var e=wt();g((e&3)==0),e==0&&(e+=4),B[e>>2]=34821223,B[e+4>>2]=2310721022,B[0]=1668509029}function it(){if(!Te){var e=wt();e==0&&(e+=4);var t=B[e>>2],r=B[e+4>>2];(t!=34821223||r!=2310721022)&&G(`Stack overflow! Stack cookie has been overwritten at ${xe(e)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${xe(r)} ${xe(t)}`),B[0]!=1668509029&&G("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=[],ze=!1;function mr(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)vr(s.preRun.shift());ct(yt)}function hr(){g(!ze),ze=!0,it(),!s.noFSInit&&!n.init.initialized&&n.init(),n.ignorePermissions=!1,ct(_t)}function pr(){if(it(),s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)wr(s.postRun.shift());ct(St)}function vr(e){yt.unshift(e)}function gr(e){_t.unshift(e)}function wr(e){St.unshift(e)}g(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),g(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),g(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),g(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 Fe=0,Oe=null,Re=null,Ie={};function bt(e){for(var t=e;;){if(!Ie[e])return e;e=t+Math.random()}}function st(e){Fe++,s.monitorRunDependencies?.(Fe),e?(g(!Ie[e]),Ie[e]=1,Oe===null&&typeof setInterval<"u"&&(Oe=setInterval(()=>{if(Te){clearInterval(Oe),Oe=null;return}var t=!1;for(var r in Ie)t||(t=!0,j("still waiting on run dependencies:")),j(`dependency: ${r}`);t&&j("(end of list)")},1e4))):j("warning: run dependency added without ID")}function He(e){if(Fe--,s.monitorRunDependencies?.(Fe),e?(g(Ie[e]),delete Ie[e]):j("warning: run dependency removed without ID"),Fe==0&&(Oe!==null&&(clearInterval(Oe),Oe=null),Re)){var t=Re;Re=null,t()}}function G(e){s.onAbort?.(e),e="Aborted("+e+")",j(e),Te=!0,ze&&jt();var t=new WebAssembly.RuntimeError(e);throw w(t),t}var Er="data:application/octet-stream;base64,",kt=e=>e.startsWith(Er),lt=e=>e.startsWith("file://");function P(e,t){return(...r)=>{g(ze,`native function \`${e}\` called before runtime initialization`);var o=re[e];return g(o,`exported native function \`${e}\` not found`),g(r.length<=t,`native function \`${e}\` called with ${r.length} args but expects ${t}`),o(...r)}}var he;s.locateFile?(he="talvos-wasm.wasm",kt(he)||(he=Ee(he))):he=new URL("/learn-gpgpu/_astro/talvos-wasm.Cwq1QDYP.wasm",import.meta.url).href;function At(e){if(e==he&&Ae)return new Uint8Array(Ae);if(ue)return ue(e);throw"both async and sync fetching of the wasm failed"}function yr(e){return!Ae&&(h||D)&&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=>{j(`failed to asynchronously prepare wasm: ${o}`),lt(he)&&j(`warning: Loading from a file URI (${he}) 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`),G(o)})}function _r(e,t,r,o){return!e&&typeof WebAssembly.instantiateStreaming=="function"&&!kt(t)&&!L&&typeof fetch=="function"?fetch(t,{credentials:"same-origin"}).then(a=>{var l=WebAssembly.instantiateStreaming(a,r);return l.then(o,function(c){return j(`wasm streaming compile failed: ${c}`),j("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,l){return re=a.exports,s.wasmExports=re,Se=re.memory,s.wasmMemory=Se,g(Se,"memory not found in wasm exports"),ur(),gr(re.__wasm_call_ctors),He("wasm-instantiate"),re}st("wasm-instantiate");var r=s;function o(a){g(s===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(s.instantiateWasm)try{return s.instantiateWasm(e,t)}catch(a){j(`Module.instantiateWasm callback failed with error: ${a}`),w(a)}return _r(Ae,he,e,o).catch(w),{}}function pe(e,t,r=!0){Object.getOwnPropertyDescriptor(s,e)||Object.defineProperty(s,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)":"";G(`\`Module.${e}\` has been replaced by \`${t}\``+o)}})}function kr(e){Object.getOwnPropertyDescriptor(s,e)&&G(`\`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 Ot(e,t){typeof globalThis<"u"&&Object.defineProperty(globalThis,e,{configurable:!0,get(){be(`\`${e}\` is not longer defined by emscripten. ${t}`)}})}Ot("buffer","Please use HEAP8.buffer or wasmMemory.buffer"),Ot("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"),be(t)}}),Nt(e)}function Nt(e){Object.getOwnPropertyDescriptor(s,e)||Object.defineProperty(s,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"),G(t)}})}function Tr(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}var ct=e=>{for(;e.length>0;)e.shift()(s)},It=()=>re.__cpp_exception,Lt=e=>{var t=e.getArg(It(),0);return yn(t)},Fr=e=>{var t=Lt(e);En(t)},dt=()=>Vt(),ut=e=>Wt(e),Pe=e=>Zt(e),Ct=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,Ne=(e,t,r)=>{for(var o=t+r,a=t;e[a]&&!(a>=o);)++a;if(a-t>16&&e.buffer&&Ct)return Ct.decode(e.subarray(t,a));for(var l="";t>10,56320|T&1023)}}return l},ve=(e,t)=>(g(typeof e=="number",`UTF8ToString expects a number (got ${typeof e})`),e?Ne(I,e,t):""),Or=e=>{var t=dt(),r=Pe(4),o=Pe(4);_n(e,r,o);var a=B[r>>2],l=B[o>>2],c=ve(a);Yt(a);var d;return l&&(d=ve(l),Yt(l)),ut(t),[c,d]},ft=e=>{var t=Lt(e);return Or(t)};s.getExceptionMessage=ft;var Nr=s.noExitRuntime||!0,xe=e=>(g(typeof e=="number"),e>>>=0,"0x"+e.toString(16).padStart(8,"0")),be=e=>{be.shown||={},be.shown[e]||(be.shown[e]=1,L&&(e="warning: "+e),j(e))},Ir=(e,t,r,o)=>{G(`Assertion failed: ${ve(e)}, at: `+[t?ve(t):"unknown filename",r,o?ve(o):"unknown function"])};function qe(){g(K.varargs!=null);var e=N[+K.varargs>>2];return K.varargs+=4,e}var Le=qe,$={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=$.isAbs(e),r=e.substr(-1)==="/";return e=$.normalizeArray(e.split("/").filter(o=>!!o),!t).join("/"),!e&&!t&&(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=$.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=$.normalize(e),e=e.replace(/\/$/,"");var t=e.lastIndexOf("/");return t===-1?e:e.substr(t+1)},join:(...e)=>$.normalize(e.join("/")),join2:(e,t)=>$.normalize(e+"/"+t)},Lr=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return o=>crypto.getRandomValues(o);if(L)try{var e=U("crypto"),t=e.randomFillSync;if(t)return o=>e.randomFillSync(o);var r=e.randomBytes;return o=>(o.set(r(o.byteLength)),o)}catch{}G("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 } };")},Mt=e=>(Mt=Lr())(e),ge={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=$.isAbs(a)}return t=$.normalizeArray(t.split("/").filter(l=>!!l),!r).join("/"),(r?"/":"")+t||"."},relative:(e,t)=>{e=ge.resolve(e).substr(1),t=ge.resolve(t).substr(1);function r(T){for(var F=0;F=0&&T[M]==="";M--);return F>M?[]:T.slice(F,M-F+1)}for(var o=r(e.split("/")),a=r(t.split("/")),l=Math.min(o.length,a.length),c=l,d=0;d{for(var t=0,r=0;r=55296&&o<=57343?(t+=4,++r):t+=3}return t},Ye=(e,t,r,o)=>{if(g(typeof e=="string",`stringToUTF8Array expects a string (got ${typeof e})`),!(o>0))return 0;for(var a=r,l=r+o-1,c=0;c=55296&&d<=57343){var v=e.charCodeAt(++c);d=65536+((d&1023)<<10)|v&1023}if(d<=127){if(r>=l)break;t[r++]=d}else if(d<=2047){if(r+1>=l)break;t[r++]=192|d>>6,t[r++]=128|d&63}else if(d<=65535){if(r+2>=l)break;t[r++]=224|d>>12,t[r++]=128|d>>6&63,t[r++]=128|d&63}else{if(r+3>=l)break;d>1114111&&be("Invalid Unicode code point "+xe(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)."),t[r++]=240|d>>18,t[r++]=128|d>>12&63,t[r++]=128|d>>6&63,t[r++]=128|d&63}}return t[r]=0,r-a};function je(e,t,r){var o=ht(e)+1,a=new Array(o),l=Ye(e,a,0,a.length);return t&&(a.length=l),a}var Cr=()=>{if(!mt.length){var e=null;if(L){var t=256,r=Buffer.alloc(t),o=0,a=process.stdin.fd;try{o=ye.readSync(a,r)}catch(l){if(l.toString().includes("EOF"))o=0;else throw l}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;ft=Ye(e,!0)}return ft.shift()},ke={ttys:[],init(){},shutdown(){},register(e,t){ke.ttys[e]={input:[],output:[],ops:t},n.registerDevice(e,ke.stream_ops)},stream_ops:{open(e){var t=ke.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 l=0,c=0;c0&&(_e(Ne(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?(j(Ne(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},fsync(e){e.output&&e.output.length>0&&(j(Ne(e.output,0)),e.output=[])}}},Mt=e=>{G("internal error: mmapAlloc called but `emscripten_builtin_memalign` native symbol not exported")},A={ops_table:null,mount(e){return A.createNode(null,"/",16895,0)},createNode(e,t,r,o){if(n.isBlkdev(r)||n.isFIFO(r))throw new n.ErrnoError(63);A.ops_table||={dir:{node:{getattr:A.node_ops.getattr,setattr:A.node_ops.setattr,lookup:A.node_ops.lookup,mknod:A.node_ops.mknod,rename:A.node_ops.rename,unlink:A.node_ops.unlink,rmdir:A.node_ops.rmdir,readdir:A.node_ops.readdir,symlink:A.node_ops.symlink},stream:{llseek:A.stream_ops.llseek}},file:{node:{getattr:A.node_ops.getattr,setattr:A.node_ops.setattr},stream:{llseek:A.stream_ops.llseek,read:A.stream_ops.read,write:A.stream_ops.write,allocate:A.stream_ops.allocate,mmap:A.stream_ops.mmap,msync:A.stream_ops.msync}},link:{node:{getattr:A.node_ops.getattr,setattr:A.node_ops.setattr,readlink:A.node_ops.readlink},stream:{}},chrdev:{node:{getattr:A.node_ops.getattr,setattr:A.node_ops.setattr},stream:n.chrdev_stream_ops}};var a=n.createNode(e,t,r,o);return n.isDir(a.mode)?(a.node_ops=A.ops_table.dir.node,a.stream_ops=A.ops_table.dir.stream,a.contents={}):n.isFile(a.mode)?(a.node_ops=A.ops_table.file.node,a.stream_ops=A.ops_table.file.stream,a.usedBytes=0,a.contents=null):n.isLink(a.mode)?(a.node_ops=A.ops_table.link.node,a.stream_ops=A.ops_table.link.stream):n.isChrdev(a.mode)&&(a.node_ops=A.ops_table.chrdev.node,a.stream_ops=A.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&&A.resizeFileStorage(e,t.size)},lookup(e,t){throw n.genericErrors[44]},mknod(e,t,r,o){return A.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=A.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 l=e.node.contents;if(a>=e.node.usedBytes)return 0;var c=Math.min(e.node.usedBytes-a,o);if(w(c>=0),c>8&&l.subarray)t.set(l.subarray(a,a+c),r);else for(var d=0;d0||r+t{var a=St(`al ${e}`);he(e,l=>{w(l,`Loading data file "${e}" failed (no arrayBuffer).`),t(new Uint8Array(l)),a&&ze(a)},l=>{if(r)r();else throw`Loading data file "${e}" failed.`}),a&&it(a)},Mr=(e,t,r,o,a,l)=>{n.createDataFile(e,t,r,o,a,l)},Dr=s.preloadPlugins||[],Rr=(e,t,r,o)=>{typeof Browser<"u"&&Browser.init();var a=!1;return Dr.forEach(l=>{a||l.canHandle(t)&&(l.handle(e,t,r,o),a=!0)}),a},Pr=(e,t,r,o,a,l,c,d,v,T)=>{var F=t?ge.resolve($.join2(e,t)):e,M=St(`cp ${F}`);function k(_){function S(Y){T?.(),d||Mr(e,t,Y,o,a,v),l?.(),ze(M)}Rr(_,F,S,()=>{c?.(),ze(M)})||S(_)}it(M),typeof r=="string"?Cr(r,k,c):k(r)},xr=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},mt=(e,t)=>{var r=0;return e&&(r|=365),t&&(r|=146),r},Ur={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"},Dt={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(Ur[e]),this.name="ErrnoError",this.errno=e;for(var t in Dt)if(Dt[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=ge.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(M=>!!M),a=n.root,l="/",c=0;c40)throw new n.ErrnoError(32)}}return{path:l,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 l=a.name;if(a.parent.id===e.id&&l===t)return a}return n.lookup(e,t)},createNode(e,t,r,o){w(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(l){return l.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&&j(`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 w(n.syncFSRequests>0),n.syncFSRequests--,t(c)}function l(c){if(c)return l.errored?void 0:(l.errored=!0,a(c));++o>=r.length&&a(null)}r.forEach(c=>{if(!c.type.syncfs)return l(null);c.type.syncfs(c,e,l)})},mount(e,t,r){if(typeof e=="string")throw e;var o=r==="/",a=!r,l;if(o&&n.root)throw new n.ErrnoError(10);if(!o&&!a){var c=n.lookupPath(r,{follow_mount:!1});if(r=c.path,l=c.node,n.isMountpoint(l))throw new n.ErrnoError(10);if(!n.isDir(l.mode))throw new n.ErrnoError(54)}var d={type:e,opts:t,mountpoint:r,mounts:[]},v=e.mount(d);return v.mount=d,d.root=v,o?n.root=v:l&&(l.mounted=d,l.mount&&l.mount.mounts.push(d)),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 d=n.nameTable[c];d;){var v=d.name_next;a.includes(d.mount)&&n.destroyNode(d),d=v}}),r.mounted=null;var l=r.mount.mounts.indexOf(o);w(l!==-1),r.mount.mounts.splice(l,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,l=$.basename(e);if(!l||l==="."||l==="..")throw new n.ErrnoError(28);var c=n.mayCreate(a,l);if(c)throw new n.ErrnoError(c);if(!a.node_ops.mknod)throw new n.ErrnoError(63);return a.node_ops.mknod(a,l,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(!ge.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=$.basename(t),l=n.mayCreate(o,a);if(l)throw new n.ErrnoError(l);if(!o.node_ops.symlink)throw new n.ErrnoError(63);return o.node_ops.symlink(o,a,e)},rename(e,t){var r=$.dirname(e),o=$.dirname(t),a=$.basename(e),l=$.basename(t),c,d,v;if(c=n.lookupPath(e,{parent:!0}),d=c.node,c=n.lookupPath(t,{parent:!0}),v=c.node,!d||!v)throw new n.ErrnoError(44);if(d.mount!==v.mount)throw new n.ErrnoError(75);var T=n.lookupNode(d,a),F=ge.relative(e,o);if(F.charAt(0)!==".")throw new n.ErrnoError(28);if(F=ge.relative(t,r),F.charAt(0)!==".")throw new n.ErrnoError(55);var M;try{M=n.lookupNode(v,l)}catch{}if(T!==M){var k=n.isDir(T.mode),_=n.mayDelete(d,a,k);if(_)throw new n.ErrnoError(_);if(_=M?n.mayDelete(v,l,k):n.mayCreate(v,l),_)throw new n.ErrnoError(_);if(!d.node_ops.rename)throw new n.ErrnoError(63);if(n.isMountpoint(T)||M&&n.isMountpoint(M))throw new n.ErrnoError(10);if(v!==d&&(_=n.nodePermissions(d,"w"),_))throw new n.ErrnoError(_);n.hashRemoveNode(T);try{d.node_ops.rename(T,v,l)}catch(S){throw S}finally{n.hashAddNode(T)}}},rmdir(e){var t=n.lookupPath(e,{parent:!0}),r=t.node,o=$.basename(e),a=n.lookupNode(r,o),l=n.mayDelete(r,o,!0);if(l)throw new n.ErrnoError(l);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=$.basename(e),a=n.lookupNode(r,o),l=n.mayDelete(r,o,!1);if(l)throw new n.ErrnoError(l);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 ge.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 l=n.lookupPath(e,{follow:!o});a=l.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"?xr(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=$.normalize(e);try{var a=n.lookupPath(e,{follow:!(t&131072)});o=a.node}catch{}}var l=!1;if(t&64)if(o){if(t&128)throw new n.ErrnoError(20)}else o=n.mknod(e,r,0),l=!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(!l){var c=n.mayOpen(o,t);if(c)throw new n.ErrnoError(c)}t&512&&!l&&n.truncate(o,0),t&=-131713;var d=n.createStream({node:o,path:n.getPath(o),flags:t,seekable:!0,position:0,stream_ops:o.stream_ops,ungotten:[],error:!1});return d.stream_ops.open&&d.stream_ops.open(d),s.logReadFiles&&!(t&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(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(w(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 l=typeof a<"u";if(!l)a=e.position;else if(!e.seekable)throw new n.ErrnoError(70);var c=e.stream_ops.read(e,t,r,o,a);return l||(e.position+=c),c},write(e,t,r,o,a,l){if(w(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 d=e.stream_ops.write(e,t,r,o,a,l);return c||(e.position+=d),d},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 w(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),l=a.size,c=new Uint8Array(l);return n.read(o,c,0,l,0),t.encoding==="utf8"?r=Ne(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(ht(t)+1),l=qe(t,a,0,a.length);n.write(o,a,0,l,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,l,c,d)=>c}),n.mkdev("/dev/null",n.makedev(1,3)),ke.register(n.makedev(5,0),ke.default_tty_ops),ke.register(n.makedev(6,0),ke.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=Ct(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,l=n.getStreamChecked(a),c={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>l.path}};return c.parent=c,c}},t}},{},"/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),t=n.open("/dev/stdout",1),r=n.open("/dev/stderr",1);w(e.fd===0,`invalid handle for stdin (${e.fd})`),w(t.fd===1,`invalid handle for stdout (${t.fd})`),w(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(A,{},"/"),n.createDefaultDirectories(),n.createDefaultDevices(),n.createSpecialDirectories(),n.filesystems={MEMFS:A}},init(e,t,r){w(!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=t||s.stdout,s.stderr=r||s.stderr,n.createStandardStreams()},quit(){n.init.initialized=!1,Ht(0);for(var e=0;ethis.length-1||_<0)){var S=_%this.chunkSize,Y=_/this.chunkSize|0;return this.getter(Y)[S]}}setDataGetter(_){this.getter=_}cacheLength(){var _=new XMLHttpRequest;if(_.open("HEAD",r,!1),_.send(null),!(_.status>=200&&_.status<300||_.status===304))throw new Error("Couldn't load "+r+". Status: "+_.status);var S=Number(_.getResponseHeader("Content-length")),Y,ae=(Y=_.getResponseHeader("Accept-Ranges"))&&Y==="bytes",Q=(Y=_.getResponseHeader("Content-Encoding"))&&Y==="gzip",h=1024*1024;ae||(h=S);var y=(z,de)=>{if(z>de)throw new Error("invalid range ("+z+", "+de+") or no bytes requested!");if(de>S-1)throw new Error("only "+S+" bytes available! programmer error!");var W=new XMLHttpRequest;if(W.open("GET",r,!1),S!==h&&W.setRequestHeader("Range","bytes="+z+"-"+de),W.responseType="arraybuffer",W.overrideMimeType&&W.overrideMimeType("text/plain; charset=x-user-defined"),W.send(null),!(W.status>=200&&W.status<300||W.status===304))throw new Error("Couldn't load "+r+". Status: "+W.status);return W.response!==void 0?new Uint8Array(W.response||[]):Ye(W.responseText||"",!0)},V=this;V.setDataGetter(z=>{var de=z*h,W=(z+1)*h-1;if(W=Math.min(W,S-1),typeof V.chunks[z]>"u"&&(V.chunks[z]=y(de,W)),typeof V.chunks[z]>"u")throw new Error("doXHR failed!");return V.chunks[z]}),(Q||!S)&&(h=S=1,S=this.getter(0).length,h=S,_e("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=S,this._chunkSize=h,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(!D)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var c=new l,d={isDevice:!1,contents:c}}else var d={isDevice:!1,url:r};var v=n.createFile(e,t,d,o,a);d.contents?v.contents=d.contents:d.url&&(v.contents=null,v.url=d.url),Object.defineProperties(v,{usedBytes:{get:function(){return this.contents.length}}});var T={},F=Object.keys(v.stream_ops);F.forEach(k=>{var _=v.stream_ops[k];T[k]=(...S)=>(n.forceLoadFile(v),_(...S))});function M(k,_,S,Y,ae){var Q=k.node.contents;if(ae>=Q.length)return 0;var h=Math.min(Q.length-ae,Y);if(w(h>=0),Q.slice)for(var y=0;y(n.forceLoadFile(v),M(k,_,S,Y,ae)),T.mmap=(k,_,S,Y,ae)=>{n.forceLoadFile(v);var Q=Mt();if(!Q)throw new n.ErrnoError(48);return M(k,Z,Q,_,S),{ptr:Q,allocated:!0}},v.stream_ops=T,v},absolutePath(){G("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){G("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){G("FS.createLink has been removed; use FS.symlink instead")},joinPath(){G("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){G("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){G("FS.standardizePath has been removed; use PATH.normalize instead")}},K={DEFAULT_POLLMASK:5,calculateAt(e,t,r){if($.isAbs(t))return t;var o;if(e===-100)o=n.cwd();else{var a=K.getStreamFromFD(e);o=a.path}if(t.length==0){if(!r)throw new n.ErrnoError(44);return o}return $.join2(o,t)},doStat(e,t,r){var o=e(t);N[r>>2]=o.dev,N[r+4>>2]=o.mode,B[r+8>>2]=o.nlink,N[r+12>>2]=o.uid,N[r+16>>2]=o.gid,N[r+20>>2]=o.rdev,ce[r+24>>3]=BigInt(o.size),N[r+32>>2]=4096,N[r+36>>2]=o.blocks;var a=o.atime.getTime(),l=o.mtime.getTime(),c=o.ctime.getTime();return ce[r+40>>3]=BigInt(Math.floor(a/1e3)),B[r+48>>2]=a%1e3*1e3,ce[r+56>>3]=BigInt(Math.floor(l/1e3)),B[r+64>>2]=l%1e3*1e3,ce[r+72>>3]=BigInt(Math.floor(c/1e3)),B[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 l=I.slice(e,e+r);n.msync(t,l,a,r,o)},getStreamFromFD(e){var t=n.getStreamChecked(e);return t},varargs:void 0,getStr(e){var t=ve(e);return t}};function Br(e,t,r){K.varargs=r;try{var o=K.getStreamFromFD(e);switch(t){case 0:{var a=He();if(a<0)return-28;for(;n.streams[a];)a++;var l;return l=n.dupStream(o,a),l.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=Le(),c=0;return C[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 $r(e,t,r){K.varargs=r;try{var o=K.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),l=Le();N[l>>2]=a.c_iflag||0,N[l+4>>2]=a.c_oflag||0,N[l+8>>2]=a.c_cflag||0,N[l+12>>2]=a.c_lflag||0;for(var c=0;c<32;c++)Z[l+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 l=Le(),d=N[l>>2],v=N[l+4>>2],T=N[l+8>>2],F=N[l+12>>2],M=[],c=0;c<32;c++)M.push(Z[l+c+17]);return o.tty.ops.ioctl_tcsets(o.tty,t,{c_iflag:d,c_oflag:v,c_cflag:T,c_lflag:F,c_cc:M})}return 0}case 21519:{if(!o.tty)return-59;var l=Le();return N[l>>2]=0,0}case 21520:return o.tty?-28:-59;case 21531:{var l=Le();return n.ioctl(o,t,l)}case 21523:{if(!o.tty)return-59;if(o.tty.ops.ioctl_tiocgwinsz){var k=o.tty.ops.ioctl_tiocgwinsz(o.tty),l=Le();C[l>>1]=k[0],C[l+2>>1]=k[1]}return 0}case 21524:return o.tty?0:-59;case 21515:return o.tty?0:-59;default:return-28}}catch(_){if(typeof n>"u"||_.name!=="ErrnoError")throw _;return-_.errno}}function zr(e,t,r,o){K.varargs=o;try{t=K.getStr(t),t=K.calculateAt(e,t);var a=o?He():0;return n.open(t,r,a).fd}catch(l){if(typeof n>"u"||l.name!=="ErrnoError")throw l;return-l.errno}}var Hr=e=>{var t=new WebAssembly.Exception(Nt(),[e],{traceStack:!0});throw t.message=ut(t),t},qr=()=>{G("native code called abort()")},Yr=e=>{G(`Cannot enlarge memory arrays to size ${e} bytes (OOM). Either (1) compile with -sINITIAL_MEMORY=X with X higher than the current value ${Z.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=>{I.length,e>>>=0,Yr(e)},pt={},Gr=()=>R||"./this.program",Ue=()=>{if(!Ue.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,_:Gr()};for(var r in pt)pt[r]===void 0?delete t[r]:t[r]=pt[r];var o=[];for(var r in t)o.push(`${r}=${t[r]}`);Ue.strings=o}return Ue.strings},Wr=(e,t)=>{for(var r=0;r{var r=0;return Ue().forEach((o,a)=>{var l=t+r;B[e+a*4>>2]=l,Wr(o,l),r+=o.length+1}),0},Vr=(e,t)=>{var r=Ue();B[e>>2]=r.length;var o=0;return r.forEach(a=>o+=a.length+1),B[t>>2]=o,0},Rt=0,Pt=()=>Or||Rt>0,Xr=e=>{Pt()||(s.onExit?.(e),Te=!0),q(e,new Ar(e))},Kr=(e,t)=>{if(kn(),Pt()&&!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)`;E(r),j(r)}Xr(e)},Jr=Kr;function Qr(e){try{var t=K.getStreamFromFD(e);return n.close(t),0}catch(r){if(typeof n>"u"||r.name!=="ErrnoError")throw r;return r.errno}}function en(e,t){try{var r=0,o=0,a=0,l=K.getStreamFromFD(e),c=l.tty?2:n.isDir(l.mode)?3:n.isLink(l.mode)?7:4;return Z[t]=c,C[t+2>>1]=a,ce[t+8>>3]=BigInt(r),ce[t+16>>3]=BigInt(o),0}catch(d){if(typeof n>"u"||d.name!=="ErrnoError")throw d;return d.errno}}var tn=(e,t,r,o)=>{for(var a=0,l=0;l>2],d=B[t+4>>2];t+=8;var v=n.read(e,Z,c,d,o);if(v<0)return-1;if(a+=v,v>2]=l,0}catch(c){if(typeof n>"u"||c.name!=="ErrnoError")throw c;return c.errno}}var nn=9007199254740992,on=-9007199254740992,an=e=>enn?NaN:Number(e);function sn(e,t,r,o){t=an(t);try{if(isNaN(t))return 61;var a=K.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(l){if(typeof n>"u"||l.name!=="ErrnoError")throw l;return l.errno}}var ln=(e,t,r,o)=>{for(var a=0,l=0;l>2],d=B[t+4>>2];t+=8;var v=n.write(e,Z,c,d,o);if(v<0)return-1;a+=v}return a};function cn(e,t,r,o){try{var a=K.getStreamFromFD(e),l=ln(a,t,r);return B[o>>2]=l,0}catch(c){if(typeof n>"u"||c.name!=="ErrnoError")throw c;return c.errno}}var je=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},xt=[31,29,31,30,31,30,31,31,30,31,30,31],Ut=[31,28,31,30,31,30,31,31,30,31,30,31],un=(e,t)=>{for(var r=new Date(e.getTime());t>0;){var o=je(r.getFullYear()),a=r.getMonth(),l=(o?xt:Ut)[a];if(t>l-r.getDate())t-=l-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},vt=(e,t)=>{w(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),Z.set(e,t)},fn=(e,t,r,o)=>{var a=B[o+40>>2],l={tm_sec:N[o>>2],tm_min:N[o+4>>2],tm_hour:N[o+8>>2],tm_mday:N[o+12>>2],tm_mon:N[o+16>>2],tm_year:N[o+20>>2],tm_wday:N[o+24>>2],tm_yday:N[o+28>>2],tm_isdst:N[o+32>>2],tm_gmtoff:N[o+36>>2],tm_zone:a?ve(a):""},c=ve(r),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 v in d)c=c.replace(new RegExp(v,"g"),d[v]);var T=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],F=["January","February","March","April","May","June","July","August","September","October","November","December"];function M(h,y,V){for(var z=typeof h=="number"?h.toString():h||"";z.length0?1:0}var z;return(z=V(h.getFullYear()-y.getFullYear()))===0&&(z=V(h.getMonth()-y.getMonth()))===0&&(z=V(h.getDate()-y.getDate())),z}function S(h){switch(h.getDay()){case 0:return new Date(h.getFullYear()-1,11,29);case 1:return h;case 2:return new Date(h.getFullYear(),0,3);case 3:return new Date(h.getFullYear(),0,2);case 4:return new Date(h.getFullYear(),0,1);case 5:return new Date(h.getFullYear()-1,11,31);case 6:return new Date(h.getFullYear()-1,11,30)}}function Y(h){var y=un(new Date(h.tm_year+1900,0,1),h.tm_yday),V=new Date(y.getFullYear(),0,4),z=new Date(y.getFullYear()+1,0,4),de=S(V),W=S(z);return _(de,y)<=0?_(W,y)<=0?y.getFullYear()+1:y.getFullYear():y.getFullYear()-1}var ae={"%a":h=>T[h.tm_wday].substring(0,3),"%A":h=>T[h.tm_wday],"%b":h=>F[h.tm_mon].substring(0,3),"%B":h=>F[h.tm_mon],"%C":h=>{var y=h.tm_year+1900;return k(y/100|0,2)},"%d":h=>k(h.tm_mday,2),"%e":h=>M(h.tm_mday,2," "),"%g":h=>Y(h).toString().substring(2),"%G":Y,"%H":h=>k(h.tm_hour,2),"%I":h=>{var y=h.tm_hour;return y==0?y=12:y>12&&(y-=12),k(y,2)},"%j":h=>k(h.tm_mday+dn(je(h.tm_year+1900)?xt:Ut,h.tm_mon-1),3),"%m":h=>k(h.tm_mon+1,2),"%M":h=>k(h.tm_min,2),"%n":()=>` -`,"%p":h=>h.tm_hour>=0&&h.tm_hour<12?"AM":"PM","%S":h=>k(h.tm_sec,2),"%t":()=>" ","%u":h=>h.tm_wday||7,"%U":h=>{var y=h.tm_yday+7-h.tm_wday;return k(Math.floor(y/7),2)},"%V":h=>{var y=Math.floor((h.tm_yday+7-(h.tm_wday+6)%7)/7);if((h.tm_wday+371-h.tm_yday-2)%7<=2&&y++,y){if(y==53){var z=(h.tm_wday+371-h.tm_yday)%7;z!=4&&(z!=3||!je(h.tm_year))&&(y=1)}}else{y=52;var V=(h.tm_wday+7-h.tm_yday-1)%7;(V==4||V==5&&je(h.tm_year%400-1))&&y++}return k(y,2)},"%w":h=>h.tm_wday,"%W":h=>{var y=h.tm_yday+7-(h.tm_wday+6)%7;return k(Math.floor(y/7),2)},"%y":h=>(h.tm_year+1900).toString().substring(2),"%Y":h=>h.tm_year+1900,"%z":h=>{var y=h.tm_gmtoff,V=y>=0;return y=Math.abs(y)/60,y=y/60*100+y%60,(V?"+":"-")+("0000"+y).slice(-4)},"%Z":h=>h.tm_zone,"%%":()=>"%"};c=c.replace(/%%/g,"\0\0");for(var v in ae)c.includes(v)&&(c=c.replace(new RegExp(v,"g"),ae[v](l)));c=c.replace(/\0\0/g,"%");var Q=Ye(c,!1);return Q.length>t?0:(vt(Q,e),Q.length-1)},hn=(e,t,r,o,a)=>fn(e,t,r,o),mn=e=>{var t=s["_"+e];return w(t,"Cannot call unknown function "+e+", make sure it is exported"),t},pn=(e,t,r)=>(w(typeof r=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),qe(e,I,t,r)),Bt=e=>{var t=ht(e)+1,r=Pe(t);return pn(e,r,t),r},$t=(e,t,r,o,a)=>{var l={string:S=>{var Y=0;return S!=null&&S!==0&&(Y=Bt(S)),Y},array:S=>{var Y=Pe(S.length);return vt(S,Y),Y}};function c(S){return t==="string"?ve(S):t==="boolean"?!!S:S}var d=mn(e),v=[],T=0;if(w(t!=="array",'Return type should not be "array".'),o)for(var F=0;F(...a)=>$t(e,t,r,a);n.createPreloadedFile=Pr,n.staticInit();function gn(){br("fetchSettings")}var zt={__assert_fail:Nr,__syscall_fcntl64:Br,__syscall_ioctl:$r,__syscall_openat:zr,__throw_exception_with_stack_trace:Hr,abort:qr,emscripten_resize_heap:jr,environ_get:Zr,environ_sizes_get:Vr,exit:Jr,fd_close:Qr,fd_fdstat_get:en,fd_read:rn,fd_seek:sn,fd_write:cn,strftime_l:hn},re=Sr();s._assertion=P("assertion",0),s._Session__create__=P("Session__create__",2),s._Session__destroy__=P("Session__destroy__",1),s._Session__params_ref=P("Session__params_ref",1),s._Session__module_ref=P("Session__module_ref",1),s._Session__device_ref=P("Session__device_ref",1),s._Session_run=P("Session_run",1),s._Session_dumpBuffers=P("Session_dumpBuffers",1),s._Session_start=P("Session_start",2),s._Session_printContext=P("Session_printContext",1),s._Session_getCurrentId=P("Session_getCurrentId",2),s._Session_step=P("Session_step",3),s._Session_tick=P("Session_tick",1),s._Session_continue=P("Session_continue",2),s._Session_print=P("Session_print",3),s._Session_switch=P("Session_switch",3),s._validate_wasm=P("validate_wasm",1),s._test_entry=P("test_entry",3),s._test_entry_no_tcf=P("test_entry_no_tcf",1),s._run_wasm=P("run_wasm",2),s._debug_wasm=P("debug_wasm",2),s._Session_fetch_shrubbery=P("Session_fetch_shrubbery",2),s._exception=P("exception",0);var Ht=P("fflush",1),qt=s._free=P("free",1);s._malloc=P("malloc",1);var Yt=()=>(Yt=re.__trap)(),jt=()=>(jt=re.emscripten_stack_init)(),gt=()=>(gt=re.emscripten_stack_get_end)(),Gt=e=>(Gt=re._emscripten_stack_restore)(e),Wt=e=>(Wt=re._emscripten_stack_alloc)(e),Zt=()=>(Zt=re.emscripten_stack_get_current)(),wn=P("__cxa_decrement_exception_refcount",1),En=P("__thrown_object_from_unwind_exception",1),yn=P("__get_exception_message",3);s.wasmMemory=Se,s.wasmExports=re,s.stackSave=ct,s.stackRestore=dt,s.stackAlloc=Pe,s.ccall=$t,s.cwrap=vn,s.UTF8ArrayToString=Ne,s.stringToUTF8Array=qe,s.stringToUTF8OnStack=Bt,s.writeArrayToMemory=vt,s.decrementExceptionRefcount=Tr,s.getExceptionMessage=ut;var _n=["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"];_n.forEach(kr);var Sn=["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"];Sn.forEach(Ot);var Ge;Re=function e(){Ge||Vt(),Ge||(Re=e)};function bn(){jt(),ur()}function Vt(){if(Fe>0||(bn(),fr(),Fe>0))return;function e(){Ge||(Ge=!0,s.calledRun=!0,!Te&&(hr(),p(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),w(!s._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),mr()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),e()},1)):e(),at()}function kn(){var e=_e,t=j,r=!1;_e=j=o=>{r=!0};try{Ht(0),["stdout","stderr"].forEach(function(o){var a=n.analyzePath("/dev/"+o);if(a){var l=a.object,c=l.rdev,d=ke.ttys[c];d?.output?.length&&(r=!0)}})}catch{}_e=e,j=t,r&&be("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()();Vt(),f=g;for(const e of Object.keys(s))e in i||Object.defineProperty(i,e,{configurable:!0,get(){G(`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 Gn extends HTMLElement{constructor(){super(),this._p=new Promise((i,f)=>{this._resolve=i})}get connected(){return this._p}connectedCallback(){this.attachShadow({mode:"open",...this.attributes}).append(...this.childNodes),this._resolve()}_p;_resolve}customElements.define("shadow-root",Gn);const H=document.getElementById("talvos"),X=H.querySelector("output.stdio"),ne=H.querySelector("output.error")||{};var Wn={print:function(u){X.value+=u+` +`));if(!e)return null;mt=je(e,!0)}return mt.shift()},ke={ttys:[],init(){},shutdown(){},register(e,t){ke.ttys[e]={input:[],output:[],ops:t},n.registerDevice(e,ke.stream_ops)},stream_ops:{open(e){var t=ke.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 l=0,c=0;c0&&(_e(Ne(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?(j(Ne(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},fsync(e){e.output&&e.output.length>0&&(j(Ne(e.output,0)),e.output=[])}}},Dt=e=>{G("internal error: mmapAlloc called but `emscripten_builtin_memalign` native symbol not exported")},A={ops_table:null,mount(e){return A.createNode(null,"/",16895,0)},createNode(e,t,r,o){if(n.isBlkdev(r)||n.isFIFO(r))throw new n.ErrnoError(63);A.ops_table||={dir:{node:{getattr:A.node_ops.getattr,setattr:A.node_ops.setattr,lookup:A.node_ops.lookup,mknod:A.node_ops.mknod,rename:A.node_ops.rename,unlink:A.node_ops.unlink,rmdir:A.node_ops.rmdir,readdir:A.node_ops.readdir,symlink:A.node_ops.symlink},stream:{llseek:A.stream_ops.llseek}},file:{node:{getattr:A.node_ops.getattr,setattr:A.node_ops.setattr},stream:{llseek:A.stream_ops.llseek,read:A.stream_ops.read,write:A.stream_ops.write,allocate:A.stream_ops.allocate,mmap:A.stream_ops.mmap,msync:A.stream_ops.msync}},link:{node:{getattr:A.node_ops.getattr,setattr:A.node_ops.setattr,readlink:A.node_ops.readlink},stream:{}},chrdev:{node:{getattr:A.node_ops.getattr,setattr:A.node_ops.setattr},stream:n.chrdev_stream_ops}};var a=n.createNode(e,t,r,o);return n.isDir(a.mode)?(a.node_ops=A.ops_table.dir.node,a.stream_ops=A.ops_table.dir.stream,a.contents={}):n.isFile(a.mode)?(a.node_ops=A.ops_table.file.node,a.stream_ops=A.ops_table.file.stream,a.usedBytes=0,a.contents=null):n.isLink(a.mode)?(a.node_ops=A.ops_table.link.node,a.stream_ops=A.ops_table.link.stream):n.isChrdev(a.mode)&&(a.node_ops=A.ops_table.chrdev.node,a.stream_ops=A.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&&A.resizeFileStorage(e,t.size)},lookup(e,t){throw n.genericErrors[44]},mknod(e,t,r,o){return A.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=A.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 l=e.node.contents;if(a>=e.node.usedBytes)return 0;var c=Math.min(e.node.usedBytes-a,o);if(g(c>=0),c>8&&l.subarray)t.set(l.subarray(a,a+c),r);else for(var d=0;d0||r+t{var a=bt(`al ${e}`);me(e,l=>{g(l,`Loading data file "${e}" failed (no arrayBuffer).`),t(new Uint8Array(l)),a&&He(a)},l=>{if(r)r();else throw`Loading data file "${e}" failed.`}),a&&st(a)},Dr=(e,t,r,o,a,l)=>{n.createDataFile(e,t,r,o,a,l)},Rr=s.preloadPlugins||[],Pr=(e,t,r,o)=>{typeof Browser<"u"&&Browser.init();var a=!1;return Rr.forEach(l=>{a||l.canHandle(t)&&(l.handle(e,t,r,o),a=!0)}),a},xr=(e,t,r,o,a,l,c,d,v,T)=>{var F=t?ge.resolve($.join2(e,t)):e,M=bt(`cp ${F}`);function k(_){function S(Y){T?.(),d||Dr(e,t,Y,o,a,v),l?.(),He(M)}Pr(_,F,S,()=>{c?.(),He(M)})||S(_)}st(M),typeof r=="string"?Mr(r,k,c):k(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},pt=(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"},Rt={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 Rt)if(Rt[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=ge.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(M=>!!M),a=n.root,l="/",c=0;c40)throw new n.ErrnoError(32)}}return{path:l,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 l=a.name;if(a.parent.id===e.id&&l===t)return a}return n.lookup(e,t)},createNode(e,t,r,o){g(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(l){return l.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&&j(`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 g(n.syncFSRequests>0),n.syncFSRequests--,t(c)}function l(c){if(c)return l.errored?void 0:(l.errored=!0,a(c));++o>=r.length&&a(null)}r.forEach(c=>{if(!c.type.syncfs)return l(null);c.type.syncfs(c,e,l)})},mount(e,t,r){if(typeof e=="string")throw e;var o=r==="/",a=!r,l;if(o&&n.root)throw new n.ErrnoError(10);if(!o&&!a){var c=n.lookupPath(r,{follow_mount:!1});if(r=c.path,l=c.node,n.isMountpoint(l))throw new n.ErrnoError(10);if(!n.isDir(l.mode))throw new n.ErrnoError(54)}var d={type:e,opts:t,mountpoint:r,mounts:[]},v=e.mount(d);return v.mount=d,d.root=v,o?n.root=v:l&&(l.mounted=d,l.mount&&l.mount.mounts.push(d)),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 d=n.nameTable[c];d;){var v=d.name_next;a.includes(d.mount)&&n.destroyNode(d),d=v}}),r.mounted=null;var l=r.mount.mounts.indexOf(o);g(l!==-1),r.mount.mounts.splice(l,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,l=$.basename(e);if(!l||l==="."||l==="..")throw new n.ErrnoError(28);var c=n.mayCreate(a,l);if(c)throw new n.ErrnoError(c);if(!a.node_ops.mknod)throw new n.ErrnoError(63);return a.node_ops.mknod(a,l,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(!ge.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=$.basename(t),l=n.mayCreate(o,a);if(l)throw new n.ErrnoError(l);if(!o.node_ops.symlink)throw new n.ErrnoError(63);return o.node_ops.symlink(o,a,e)},rename(e,t){var r=$.dirname(e),o=$.dirname(t),a=$.basename(e),l=$.basename(t),c,d,v;if(c=n.lookupPath(e,{parent:!0}),d=c.node,c=n.lookupPath(t,{parent:!0}),v=c.node,!d||!v)throw new n.ErrnoError(44);if(d.mount!==v.mount)throw new n.ErrnoError(75);var T=n.lookupNode(d,a),F=ge.relative(e,o);if(F.charAt(0)!==".")throw new n.ErrnoError(28);if(F=ge.relative(t,r),F.charAt(0)!==".")throw new n.ErrnoError(55);var M;try{M=n.lookupNode(v,l)}catch{}if(T!==M){var k=n.isDir(T.mode),_=n.mayDelete(d,a,k);if(_)throw new n.ErrnoError(_);if(_=M?n.mayDelete(v,l,k):n.mayCreate(v,l),_)throw new n.ErrnoError(_);if(!d.node_ops.rename)throw new n.ErrnoError(63);if(n.isMountpoint(T)||M&&n.isMountpoint(M))throw new n.ErrnoError(10);if(v!==d&&(_=n.nodePermissions(d,"w"),_))throw new n.ErrnoError(_);n.hashRemoveNode(T);try{d.node_ops.rename(T,v,l)}catch(S){throw S}finally{n.hashAddNode(T)}}},rmdir(e){var t=n.lookupPath(e,{parent:!0}),r=t.node,o=$.basename(e),a=n.lookupNode(r,o),l=n.mayDelete(r,o,!0);if(l)throw new n.ErrnoError(l);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=$.basename(e),a=n.lookupNode(r,o),l=n.mayDelete(r,o,!1);if(l)throw new n.ErrnoError(l);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 ge.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 l=n.lookupPath(e,{follow:!o});a=l.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=$.normalize(e);try{var a=n.lookupPath(e,{follow:!(t&131072)});o=a.node}catch{}}var l=!1;if(t&64)if(o){if(t&128)throw new n.ErrnoError(20)}else o=n.mknod(e,r,0),l=!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(!l){var c=n.mayOpen(o,t);if(c)throw new n.ErrnoError(c)}t&512&&!l&&n.truncate(o,0),t&=-131713;var d=n.createStream({node:o,path:n.getPath(o),flags:t,seekable:!0,position:0,stream_ops:o.stream_ops,ungotten:[],error:!1});return d.stream_ops.open&&d.stream_ops.open(d),s.logReadFiles&&!(t&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(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(g(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 l=typeof a<"u";if(!l)a=e.position;else if(!e.seekable)throw new n.ErrnoError(70);var c=e.stream_ops.read(e,t,r,o,a);return l||(e.position+=c),c},write(e,t,r,o,a,l){if(g(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 d=e.stream_ops.write(e,t,r,o,a,l);return c||(e.position+=d),d},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 g(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),l=a.size,c=new Uint8Array(l);return n.read(o,c,0,l,0),t.encoding==="utf8"?r=Ne(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(ht(t)+1),l=Ye(t,a,0,a.length);n.write(o,a,0,l,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,l,c,d)=>c}),n.mkdev("/dev/null",n.makedev(1,3)),ke.register(n.makedev(5,0),ke.default_tty_ops),ke.register(n.makedev(6,0),ke.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=Mt(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,l=n.getStreamChecked(a),c={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>l.path}};return c.parent=c,c}},t}},{},"/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),t=n.open("/dev/stdout",1),r=n.open("/dev/stderr",1);g(e.fd===0,`invalid handle for stdin (${e.fd})`),g(t.fd===1,`invalid handle for stdout (${t.fd})`),g(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(A,{},"/"),n.createDefaultDirectories(),n.createDefaultDevices(),n.createSpecialDirectories(),n.filesystems={MEMFS:A}},init(e,t,r){g(!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=t||s.stdout,s.stderr=r||s.stderr,n.createStandardStreams()},quit(){n.init.initialized=!1,qt(0);for(var e=0;ethis.length-1||_<0)){var S=_%this.chunkSize,Y=_/this.chunkSize|0;return this.getter(Y)[S]}}setDataGetter(_){this.getter=_}cacheLength(){var _=new XMLHttpRequest;if(_.open("HEAD",r,!1),_.send(null),!(_.status>=200&&_.status<300||_.status===304))throw new Error("Couldn't load "+r+". Status: "+_.status);var S=Number(_.getResponseHeader("Content-length")),Y,ae=(Y=_.getResponseHeader("Accept-Ranges"))&&Y==="bytes",Q=(Y=_.getResponseHeader("Content-Encoding"))&&Y==="gzip",m=1024*1024;ae||(m=S);var E=(z,de)=>{if(z>de)throw new Error("invalid range ("+z+", "+de+") or no bytes requested!");if(de>S-1)throw new Error("only "+S+" bytes available! programmer error!");var W=new XMLHttpRequest;if(W.open("GET",r,!1),S!==m&&W.setRequestHeader("Range","bytes="+z+"-"+de),W.responseType="arraybuffer",W.overrideMimeType&&W.overrideMimeType("text/plain; charset=x-user-defined"),W.send(null),!(W.status>=200&&W.status<300||W.status===304))throw new Error("Couldn't load "+r+". Status: "+W.status);return W.response!==void 0?new Uint8Array(W.response||[]):je(W.responseText||"",!0)},V=this;V.setDataGetter(z=>{var de=z*m,W=(z+1)*m-1;if(W=Math.min(W,S-1),typeof V.chunks[z]>"u"&&(V.chunks[z]=E(de,W)),typeof V.chunks[z]>"u")throw new Error("doXHR failed!");return V.chunks[z]}),(Q||!S)&&(m=S=1,S=this.getter(0).length,m=S,_e("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(!D)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var c=new l,d={isDevice:!1,contents:c}}else var d={isDevice:!1,url:r};var v=n.createFile(e,t,d,o,a);d.contents?v.contents=d.contents:d.url&&(v.contents=null,v.url=d.url),Object.defineProperties(v,{usedBytes:{get:function(){return this.contents.length}}});var T={},F=Object.keys(v.stream_ops);F.forEach(k=>{var _=v.stream_ops[k];T[k]=(...S)=>(n.forceLoadFile(v),_(...S))});function M(k,_,S,Y,ae){var Q=k.node.contents;if(ae>=Q.length)return 0;var m=Math.min(Q.length-ae,Y);if(g(m>=0),Q.slice)for(var E=0;E(n.forceLoadFile(v),M(k,_,S,Y,ae)),T.mmap=(k,_,S,Y,ae)=>{n.forceLoadFile(v);var Q=Dt();if(!Q)throw new n.ErrnoError(48);return M(k,Z,Q,_,S),{ptr:Q,allocated:!0}},v.stream_ops=T,v},absolutePath(){G("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){G("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){G("FS.createLink has been removed; use FS.symlink instead")},joinPath(){G("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){G("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){G("FS.standardizePath has been removed; use PATH.normalize instead")}},K={DEFAULT_POLLMASK:5,calculateAt(e,t,r){if($.isAbs(t))return t;var o;if(e===-100)o=n.cwd();else{var a=K.getStreamFromFD(e);o=a.path}if(t.length==0){if(!r)throw new n.ErrnoError(44);return o}return $.join2(o,t)},doStat(e,t,r){var o=e(t);N[r>>2]=o.dev,N[r+4>>2]=o.mode,B[r+8>>2]=o.nlink,N[r+12>>2]=o.uid,N[r+16>>2]=o.gid,N[r+20>>2]=o.rdev,ce[r+24>>3]=BigInt(o.size),N[r+32>>2]=4096,N[r+36>>2]=o.blocks;var a=o.atime.getTime(),l=o.mtime.getTime(),c=o.ctime.getTime();return ce[r+40>>3]=BigInt(Math.floor(a/1e3)),B[r+48>>2]=a%1e3*1e3,ce[r+56>>3]=BigInt(Math.floor(l/1e3)),B[r+64>>2]=l%1e3*1e3,ce[r+72>>3]=BigInt(Math.floor(c/1e3)),B[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 l=I.slice(e,e+r);n.msync(t,l,a,r,o)},getStreamFromFD(e){var t=n.getStreamChecked(e);return t},varargs:void 0,getStr(e){var t=ve(e);return t}};function $r(e,t,r){K.varargs=r;try{var o=K.getStreamFromFD(e);switch(t){case 0:{var a=qe();if(a<0)return-28;for(;n.streams[a];)a++;var l;return l=n.dupStream(o,a),l.fd}case 1:case 2:return 0;case 3:return o.flags;case 4:{var a=qe();return o.flags|=a,0}case 12:{var a=Le(),c=0;return C[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 zr(e,t,r){K.varargs=r;try{var o=K.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),l=Le();N[l>>2]=a.c_iflag||0,N[l+4>>2]=a.c_oflag||0,N[l+8>>2]=a.c_cflag||0,N[l+12>>2]=a.c_lflag||0;for(var c=0;c<32;c++)Z[l+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 l=Le(),d=N[l>>2],v=N[l+4>>2],T=N[l+8>>2],F=N[l+12>>2],M=[],c=0;c<32;c++)M.push(Z[l+c+17]);return o.tty.ops.ioctl_tcsets(o.tty,t,{c_iflag:d,c_oflag:v,c_cflag:T,c_lflag:F,c_cc:M})}return 0}case 21519:{if(!o.tty)return-59;var l=Le();return N[l>>2]=0,0}case 21520:return o.tty?-28:-59;case 21531:{var l=Le();return n.ioctl(o,t,l)}case 21523:{if(!o.tty)return-59;if(o.tty.ops.ioctl_tiocgwinsz){var k=o.tty.ops.ioctl_tiocgwinsz(o.tty),l=Le();C[l>>1]=k[0],C[l+2>>1]=k[1]}return 0}case 21524:return o.tty?0:-59;case 21515:return o.tty?0:-59;default:return-28}}catch(_){if(typeof n>"u"||_.name!=="ErrnoError")throw _;return-_.errno}}function Hr(e,t,r,o){K.varargs=o;try{t=K.getStr(t),t=K.calculateAt(e,t);var a=o?qe():0;return n.open(t,r,a).fd}catch(l){if(typeof n>"u"||l.name!=="ErrnoError")throw l;return-l.errno}}var qr=e=>{var t=new WebAssembly.Exception(It(),[e],{traceStack:!0});throw t.message=ft(t),t},Yr=()=>{G("native code called abort()")},jr=e=>{G(`Cannot enlarge memory arrays to size ${e} bytes (OOM). Either (1) compile with -sINITIAL_MEMORY=X with X higher than the current value ${Z.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`)},Gr=e=>{I.length,e>>>=0,jr(e)},vt={},Wr=()=>R||"./this.program",Ue=()=>{if(!Ue.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 vt)vt[r]===void 0?delete t[r]:t[r]=vt[r];var o=[];for(var r in t)o.push(`${r}=${t[r]}`);Ue.strings=o}return Ue.strings},Zr=(e,t)=>{for(var r=0;r{var r=0;return Ue().forEach((o,a)=>{var l=t+r;B[e+a*4>>2]=l,Zr(o,l),r+=o.length+1}),0},Xr=(e,t)=>{var r=Ue();B[e>>2]=r.length;var o=0;return r.forEach(a=>o+=a.length+1),B[t>>2]=o,0},Pt=0,xt=()=>Nr||Pt>0,Kr=e=>{xt()||(s.onExit?.(e),Te=!0),q(e,new Tr(e))},Jr=(e,t)=>{if(An(),xt()&&!t){var r=`program exited (with status: ${e}), but keepRuntimeAlive() is set (counter=${Pt}) 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),j(r)}Kr(e)},Qr=Jr;function en(e){try{var t=K.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,l=K.getStreamFromFD(e),c=l.tty?2:n.isDir(l.mode)?3:n.isLink(l.mode)?7:4;return Z[t]=c,C[t+2>>1]=a,ce[t+8>>3]=BigInt(r),ce[t+16>>3]=BigInt(o),0}catch(d){if(typeof n>"u"||d.name!=="ErrnoError")throw d;return d.errno}}var rn=(e,t,r,o)=>{for(var a=0,l=0;l>2],d=B[t+4>>2];t+=8;var v=n.read(e,Z,c,d,o);if(v<0)return-1;if(a+=v,v>2]=l,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=K.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(l){if(typeof n>"u"||l.name!=="ErrnoError")throw l;return l.errno}}var cn=(e,t,r,o)=>{for(var a=0,l=0;l>2],d=B[t+4>>2];t+=8;var v=n.write(e,Z,c,d,o);if(v<0)return-1;a+=v}return a};function dn(e,t,r,o){try{var a=K.getStreamFromFD(e),l=cn(a,t,r);return B[o>>2]=l,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),un=(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(),l=(o?Ut:Bt)[a];if(t>l-r.getDate())t-=l-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},gt=(e,t)=>{g(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),Z.set(e,t)},mn=(e,t,r,o)=>{var a=B[o+40>>2],l={tm_sec:N[o>>2],tm_min:N[o+4>>2],tm_hour:N[o+8>>2],tm_mday:N[o+12>>2],tm_mon:N[o+16>>2],tm_year:N[o+20>>2],tm_wday:N[o+24>>2],tm_yday:N[o+28>>2],tm_isdst:N[o+32>>2],tm_gmtoff:N[o+36>>2],tm_zone:a?ve(a):""},c=ve(r),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 v in d)c=c.replace(new RegExp(v,"g"),d[v]);var T=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],F=["January","February","March","April","May","June","July","August","September","October","November","December"];function M(m,E,V){for(var z=typeof m=="number"?m.toString():m||"";z.length0?1:0}var z;return(z=V(m.getFullYear()-E.getFullYear()))===0&&(z=V(m.getMonth()-E.getMonth()))===0&&(z=V(m.getDate()-E.getDate())),z}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 Y(m){var E=fn(new Date(m.tm_year+1900,0,1),m.tm_yday),V=new Date(E.getFullYear(),0,4),z=new Date(E.getFullYear()+1,0,4),de=S(V),W=S(z);return _(de,E)<=0?_(W,E)<=0?E.getFullYear()+1:E.getFullYear():E.getFullYear()-1}var ae={"%a":m=>T[m.tm_wday].substring(0,3),"%A":m=>T[m.tm_wday],"%b":m=>F[m.tm_mon].substring(0,3),"%B":m=>F[m.tm_mon],"%C":m=>{var E=m.tm_year+1900;return k(E/100|0,2)},"%d":m=>k(m.tm_mday,2),"%e":m=>M(m.tm_mday,2," "),"%g":m=>Y(m).toString().substring(2),"%G":Y,"%H":m=>k(m.tm_hour,2),"%I":m=>{var E=m.tm_hour;return E==0?E=12:E>12&&(E-=12),k(E,2)},"%j":m=>k(m.tm_mday+un(Ge(m.tm_year+1900)?Ut:Bt,m.tm_mon-1),3),"%m":m=>k(m.tm_mon+1,2),"%M":m=>k(m.tm_min,2),"%n":()=>` +`,"%p":m=>m.tm_hour>=0&&m.tm_hour<12?"AM":"PM","%S":m=>k(m.tm_sec,2),"%t":()=>" ","%u":m=>m.tm_wday||7,"%U":m=>{var E=m.tm_yday+7-m.tm_wday;return k(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 z=(m.tm_wday+371-m.tm_yday)%7;z!=4&&(z!=3||!Ge(m.tm_year))&&(E=1)}}else{E=52;var V=(m.tm_wday+7-m.tm_yday-1)%7;(V==4||V==5&&Ge(m.tm_year%400-1))&&E++}return k(E,2)},"%w":m=>m.tm_wday,"%W":m=>{var E=m.tm_yday+7-(m.tm_wday+6)%7;return k(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,V=E>=0;return E=Math.abs(E)/60,E=E/60*100+E%60,(V?"+":"-")+("0000"+E).slice(-4)},"%Z":m=>m.tm_zone,"%%":()=>"%"};c=c.replace(/%%/g,"\0\0");for(var v in ae)c.includes(v)&&(c=c.replace(new RegExp(v,"g"),ae[v](l)));c=c.replace(/\0\0/g,"%");var Q=je(c,!1);return Q.length>t?0:(gt(Q,e),Q.length-1)},hn=(e,t,r,o,a)=>mn(e,t,r,o),pn=e=>{var t=s["_"+e];return g(t,"Cannot call unknown function "+e+", make sure it is exported"),t},vn=(e,t,r)=>(g(typeof r=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),Ye(e,I,t,r)),$t=e=>{var t=ht(e)+1,r=Pe(t);return vn(e,r,t),r},zt=(e,t,r,o,a)=>{var l={string:S=>{var Y=0;return S!=null&&S!==0&&(Y=$t(S)),Y},array:S=>{var Y=Pe(S.length);return gt(S,Y),Y}};function c(S){return t==="string"?ve(S):t==="boolean"?!!S:S}var d=pn(e),v=[],T=0;if(g(t!=="array",'Return type should not be "array".'),o)for(var F=0;F(...a)=>zt(e,t,r,a);n.createPreloadedFile=xr,n.staticInit();function wn(){kr("fetchSettings")}var Ht={__assert_fail:Ir,__syscall_fcntl64:$r,__syscall_ioctl:zr,__syscall_openat:Hr,__throw_exception_with_stack_trace:qr,abort:Yr,emscripten_resize_heap:Gr,environ_get:Vr,environ_sizes_get:Xr,exit:Qr,fd_close:en,fd_fdstat_get:tn,fd_read:nn,fd_seek:ln,fd_write:dn,strftime_l:hn},re=br();s._assertion=P("assertion",0),s._Session__create__=P("Session__create__",2),s._Session__destroy__=P("Session__destroy__",1),s._Session__params_ref=P("Session__params_ref",1),s._Session__module_ref=P("Session__module_ref",1),s._Session__device_ref=P("Session__device_ref",1),s._Session_run=P("Session_run",1),s._Session_dumpBuffers=P("Session_dumpBuffers",1),s._Session_start=P("Session_start",2),s._Session_printContext=P("Session_printContext",1),s._Session_getCurrentId=P("Session_getCurrentId",2),s._Session_step=P("Session_step",3),s._Session_tick=P("Session_tick",1),s._Session_continue=P("Session_continue",2),s._Session_print=P("Session_print",3),s._Session_switch=P("Session_switch",3),s._validate_wasm=P("validate_wasm",1),s._test_entry=P("test_entry",3),s._test_entry_no_tcf=P("test_entry_no_tcf",1),s._run_wasm=P("run_wasm",2),s._debug_wasm=P("debug_wasm",2),s._Session_fetch_shrubbery=P("Session_fetch_shrubbery",2),s._exception=P("exception",0);var qt=P("fflush",1),Yt=s._free=P("free",1);s._malloc=P("malloc",1);var jt=()=>(jt=re.__trap)(),Gt=()=>(Gt=re.emscripten_stack_init)(),wt=()=>(wt=re.emscripten_stack_get_end)(),Wt=e=>(Wt=re._emscripten_stack_restore)(e),Zt=e=>(Zt=re._emscripten_stack_alloc)(e),Vt=()=>(Vt=re.emscripten_stack_get_current)(),En=P("__cxa_decrement_exception_refcount",1),yn=P("__thrown_object_from_unwind_exception",1),_n=P("__get_exception_message",3);s.wasmMemory=Se,s.wasmExports=re,s.stackSave=dt,s.stackRestore=ut,s.stackAlloc=Pe,s.ccall=zt,s.cwrap=gn,s.UTF8ArrayToString=Ne,s.stringToUTF8Array=Ye,s.stringToUTF8OnStack=$t,s.writeArrayToMemory=gt,s.decrementExceptionRefcount=Fr,s.getExceptionMessage=ft;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(Nt);var We;Re=function e(){We||Xt(),We||(Re=e)};function kn(){Gt(),fr()}function Xt(){if(Fe>0||(kn(),mr(),Fe>0))return;function e(){We||(We=!0,s.calledRun=!0,!Te&&(hr(),p(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),g(!s._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),pr()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),e()},1)):e(),it()}function An(){var e=_e,t=j,r=!1;_e=j=o=>{r=!0};try{qt(0),["stdout","stderr"].forEach(function(o){var a=n.analyzePath("/dev/"+o);if(a){var l=a.object,c=l.rdev,d=ke.ttys[c];d?.output?.length&&(r=!0)}})}catch{}_e=e,j=t,r&&be("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()();Xt(),f=y;for(const e of Object.keys(s))e in i||Object.defineProperty(i,e,{configurable:!0,get(){G(`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 Wn extends HTMLElement{constructor(){super(),this._p=new Promise((i,f)=>{this._resolve=i})}get connected(){return this._p}connectedCallback(){this.attachShadow({mode:"open",...this.attributes}).append(...this.childNodes),this._resolve()}_p;_resolve}customElements.define("shadow-root",Wn);const H=document.getElementById("talvos"),X=H.querySelector("output.stdio"),ne=H.querySelector("output.error")||{};var Zn={print:function(u){X.value+=u+` `},printErr:function(u){X.value+=u+` -`}};window.addEventListener("error",u=>{ne.value=""+u.message});window.addEventListener("unhandledrejection",function(u){ne.value=""+u.reason});const Zn=new Event("event-binding-lol-TODO-start"),Vn=new Event("event-binding-lol-TODO-finish"),Xn=new Event("event-binding-lol-TODO-tick"),Kn=new Event("event-binding-lol-TODO-step"),Be=new Promise(async(u,i)=>{const f=document.querySelectorAll("#talvos shadow-root");await Promise.all([...f].map(s=>s.connected));for(const s of f){const p=s.shadowRoot.querySelector("svg.vis0");if(p){u(p);return}}i("el not found")}),[We,sr]=(()=>{function*u(...m){const D=m.map(b=>b[Symbol.iterator]());let L=D.map(b=>b.next());for(;L.every(({done:b})=>!b);)yield L.map(({value:b})=>b),L=D.map(b=>b.next())}const i=async()=>{(await Be).querySelectorAll(".lane").forEach(m=>{m.classList.remove("disabled","selected"),m.dataset.state="inactive",delete m.dataset.logCoords})};document.querySelector("#talvos button.stop").addEventListener("click",i),document.querySelector("#talvos button.continue").addEventListener("click",()=>setTimeout(i,0)),document.querySelector("#talvos button.run").addEventListener("click",i);function E(m){switch(m){case fe.Active:return"active";case fe.Inactive:return"inactive";case fe.AtBarrier:return"at-barrier";case fe.AtBreakpoint:return"at-breakpoint";case fe.AtAssert:return"at-assert";case fe.AtException:return"at-exception";case fe.NotLaunched:return"not-launched";case fe.Exited:return"exited";case fe.UNKNOWN:return"unkown"}}async function g(m){console.assert(""+m.Cores==(await Be).dataset.cores),console.assert(""+m.Lanes==(await Be).dataset.lanes);for(const[D,L,b]of u(function*(){let U=0;for(;;)yield U++}(),(await Be).querySelectorAll("g > .lane"),m.LaneStates))console.assert(`{ ${b.PhyCoord.Core}, ${b.PhyCoord.Lane} }`==L.dataset.phyCoords),L.dataset.state=E(b.State),L.dataset.logCoords=`{ 0, (${b.LogCoord.X},${b.LogCoord.Y},${b.LogCoord.Z}) }`,L.classList.toggle("selected",m.SteppedLanes.has(D))}return[async m=>{let D=[];for(const L of[g])try{L(m)}catch(b){D.push(b)}if(D.length>0)throw D},i]})(),lr=document.querySelector("#talvos section.buffers");var wt={};function Ze(u,i){lr.innerHTML="";const f=u.GlobalMemory,s=u.PipelineExecutor.Objects;for(const g of i.Buffers){const m=document.createElement("figure"),D=document.createElement("figcaption");D.innerText=`Buffer '${g.Name.deref()?.asString()??""}' (${g.Size} bytes):'`,m.appendChild(D);const L=document.createElement("ol"),b=s.get(g.Id).Data.data.getBigUint64(0,Me),U=f.deref(b,g.Size),le=4,R=O=>U.data.getUint32(O,Me),q=wt["0x"+b.toString(16)]??[];for(var p=[],E=0;E{switch(Ce.value){case"v0":case"v1":document.querySelectorAll(`#talvos > .vis.${Ce.value}`).forEach(i=>{i.classList.remove("hidden")}),document.querySelectorAll(`#talvos > .vis:not(.${Ce.value})`).forEach(i=>{i.classList.add("hidden")});const u=Ce.value=="v1";document.querySelector("#talvos").classList.toggle("vis-wip",u);break;default:throw new Error(`unknown vis: ${Ce.value}`)}});const[Jn,Qn,eo,to,{Session:nt}]=function(u){return[u.then(i=>i.cwrap("validate_wasm","boolean",["string"])),u.then(i=>i.cwrap("exception",void 0,[])),u.then(i=>i.cwrap("assertion",void 0,[])),u.then(i=>i.getExceptionMessage),(()=>{var i=u.then(({wasmExports:{Session__create__:f,Session__destroy__:s,Session__params_ref:p,Session__module_ref:E,Session__device_ref:g,Session_run:m,Session_dumpBuffers:D,Session_start:L,Session_step:b,Session_switch:U,Session_print:le,Session_continue:R,Session_printContext:q,Session_getCurrentId:O,Session_tick:Ee,Session_fetch_shrubbery:J},stackAlloc:he,stackSave:ue,stackRestore:oe,stringToUTF8OnStack:x,HEAP32:ye,wasmMemory:te,_malloc:_e,_free:j})=>{function Ae(Z){const I=_e(Z),C=te.buffer,N=new se(C,I,Z);return[N,()=>j(N.addr)]}function Se(Z){const I=Z.map(x),C=he(I.length);return I.forEach((N,B)=>{ye[C+B*4>>2]=N}),[I.length,C]}const Te=4096;class w{ptr;arena;lastOp;laneMask;params;module;device;lastId;static bind(I){try{var C=Object.create(this.prototype);C.ptr=I,C.arena=new Ln(...Ae(Te)),C.lastOp=new ee(C.arena.alloc(ee.SIZE)),C.laneMask=new Ke(void 0,{data:C.arena.alloc(8).data}),C.params=new tr(new se(te.buffer,p(I),tr.SIZE)),C.module=new nr(new se(te.buffer,E(I),nr.SIZE)),C.device=new ir(new se(te.buffer,g(I),ir.SIZE)),C.lastId=new tt(C.arena.alloc(tt.SIZE))}catch(N){throw s(I),C?.arena&&De(C.arena),N}return C}constructor(I){const C=ue(),[N,B]=[I,"EXEC"].map(x),ce=f(N,B);return oe(C),w.bind(ce)}run(){m(this.ptr)}dumpBuffers(){D(this.ptr)}start(){wt={},L(this.ptr,this.lastOp.ptr.asRef()),O(this.ptr,this.lastId.ptr.asRef()),We(this.lastOp),Ze(this.device,this.module)}async tick(){var I=Ee(this.ptr);return I==0&&O(this.ptr,this.lastId.ptr.asRef()),We(this.lastOp),Ze(this.device,this.module),I>0&&sr(),I}async step(){this.laneMask.clear(),(await Be).querySelectorAll(".lane").forEach((C,N)=>{C.classList.contains("selected")&&this.laneMask.add(N)});var I=b(this.ptr,this.laneMask.asRef(),this.lastOp.asRef());return I==0&&O(this.ptr,this.lastId.ptr.asRef()),We(this.lastOp),Ze(this.device,this.module),I>0&&sr(),I}switch(I){const C=ue();U(this.ptr,...Se(["switch",...I])),oe(C)}print(I){const C=ue();le(this.ptr,...Se(["print",...I])),oe(C)}continue(){R(this.ptr,this.lastOp.ptr.asRef()),We(this.lastOp),Ze(this.device,this.module)}printContext(){q(this.ptr)}fetchShrubbery(){var I=this.arena.alloc(8);return J(this.ptr,I.asRef()),new Ke(void 0,{data:I.data})}__destroy__(){console.log("Session.destroy..."),s(this.ptr),this.ptr=0,De(this.arena)}}return{Session:w}});return{Session:i.then(f=>f.Session)}})()]}(jn(Wn));function De(u){u.__destroy__()}function ot(u,i){return X.value="",ne.value="",X.hidden=!1,H.querySelector("output.timing").value="...",H.querySelectorAll("button.exec,textarea").forEach(f=>f.disabled=!0),i=i??window.performance.mark("talvos"),(async()=>u())().catch(async f=>{var s;if(f instanceof WebAssembly.Exception){var p;[p,s]=(await to)(f),s=s||`of type ${p}`,console.error(f.stack)}else console.error(`in ${i.name}:`,f),s=""+f;ne.value=s}).finally(()=>{const f=window.performance.measure(i.name,i.name);H.querySelector("output.timing").value=`done in ${f.duration}ms`,H.querySelectorAll("button.exec,textarea").forEach(s=>s.removeAttribute("disabled"))})}H.querySelector("button.validate").onclick=async function(){const u=H.querySelector(".module").value,i=window.performance.mark("validate_wasm",{detail:{text:u}}),f=await ot(async()=>(await Jn)(u),i);H.querySelector("output.stdio").value+=f?"ok!":"not ok :("};H.querySelector("button.assertion").onclick=async()=>ot(await eo);H.querySelector("button.exception").onclick=async()=>ot(await Qn);H.querySelector("button.shrubbery").onclick=async()=>{const u=(await nt).bind(828927560446);try{const i=u.fetchShrubbery();console.log(i)}finally{De(u.arena)}};H.querySelector("button.run").onclick=async function(){const u=H.querySelector(".module").value,i=window.performance.mark("run_wasm",{detail:{text:u}});ot(async()=>{const f=new(await nt)(u),s=H.querySelector('select[name="entry"]');f.params.EntryName=s.selectedOptions.item(0)?.value??"main";try{f.run(),f.dumpBuffers()}finally{De(f)}},i)};H.querySelector("button.debug").onclick=async function(){X.value="",X.hidden=!0,ne.value="",H.querySelector("output.timing").value="...",H.querySelectorAll("button.exec,textarea").forEach(g=>g.disabled=!0);const u=H.querySelector(".module").value,i=window.performance.mark("debug",{detail:{text:u}}),f=new(await nt)(u);f.params.EntryName=cr.selectedOptions.item(0)?.value??"main";const s=H.querySelector(".debugger");function p(){s.hidden=!0,s.querySelectorAll("button").forEach(m=>m.onclick=null),H.querySelectorAll("button.exec,textarea").forEach(m=>m.removeAttribute("disabled")),window.dispatchEvent(Vn),De(f);const g=window.performance.measure(i.name,i.name);H.querySelector("output.timing").value=`done in ${g.duration}ms`}try{f.start(),window.dispatchEvent(Zn),X.value=`@ {${[...f.lastId]}} (logical) -`,f.printContext()}catch(g){throw p(),g}const E=1;s.querySelector("button.tick").onclick=async function(){X.value="",ne.value="";try{const g=await f.tick();window.dispatchEvent(Xn),g==E&&p(),X.value=`@ {${[...f.lastId]}} (logical) -`,f.printContext()}catch(g){throw p(),g}},s.querySelector("button.step").onclick=async function(){X.value="",ne.value="";try{const g=await f.step();window.dispatchEvent(Kn),g==E&&p(),X.value=`@ {${[...f.lastId]}} (logical) -`,f.printContext()}catch(g){throw p(),g}},s.querySelector("button.switch").onclick=function(){const g=prompt("Usage: switch: X [Y [Z]]","X [Y [Z]]");if(g==null)return;const m=g.split(/\s+/);f.switch(m)},s.querySelector("button.print").onclick=function(){const g=prompt("Usage: print: %","%15");if(g==null)return;const m=g.split(/\s+/);f.print(m)},s.querySelector("button.stop").onclick=p,s.querySelector("button.continue").onclick=function(){X.value="",ne.value="";try{f.continue()}finally{p()}},s.hidden=!1};const cr=H.querySelector('select[name="entry"]');setTimeout(async function(){const i=X.value,f=ne.value;X.value="",ne.value="";const s=H.querySelector(".module").value,p=new(await nt)(s);try{console.log([...p.module.EntryPoints].map(E=>E.Name.asString())),cr.innerHTML=[...p.module.EntryPoints].map(E=>``).join("")}finally{De(p)}X.value&&console.log(X.value),X.value=i,ne.value&&console.error(ne.value),ne.value=f},0); +`,console.error(u)}};window.addEventListener("error",u=>{ne.value=""+u.message});window.addEventListener("unhandledrejection",function(u){ne.value=""+u.reason});const Vn=new Event("event-binding-lol-TODO-start"),Xn=new Event("event-binding-lol-TODO-finish"),Kn=new Event("event-binding-lol-TODO-tick"),Jn=new Event("event-binding-lol-TODO-step"),$e=new Promise(async(u,i)=>{const f=document.querySelectorAll("#talvos shadow-root");await Promise.all([...f].map(s=>s.connected));for(const s of f){const p=s.shadowRoot.querySelector("svg.vis0");if(p){u(p);return}}i("el not found")}),[Ze,lr]=(()=>{function*u(...h){const D=h.map(b=>b[Symbol.iterator]());let L=D.map(b=>b.next());for(;L.every(({done:b})=>!b);)yield L.map(({value:b})=>b),L=D.map(b=>b.next())}const i=async()=>{(await $e).querySelectorAll(".lane").forEach(h=>{h.classList.remove("disabled","selected"),h.dataset.state="inactive",delete h.dataset.logCoords})};document.querySelector("#talvos button.stop").addEventListener("click",i),document.querySelector("#talvos button.continue").addEventListener("click",()=>setTimeout(i,0)),document.querySelector("#talvos button.run").addEventListener("click",i);function w(h){switch(h){case fe.Active:return"active";case fe.Inactive:return"inactive";case fe.AtBarrier:return"at-barrier";case fe.AtBreakpoint:return"at-breakpoint";case fe.AtAssert:return"at-assert";case fe.AtException:return"at-exception";case fe.NotLaunched:return"not-launched";case fe.Exited:return"exited";case fe.UNKNOWN:return"unkown"}}async function y(h){console.assert(""+h.Cores==(await $e).dataset.cores),console.assert(""+h.Lanes==(await $e).dataset.lanes);for(const[D,L,b]of u(function*(){let U=0;for(;;)yield U++}(),(await $e).querySelectorAll("g > .lane"),h.LaneStates))console.assert(`{ ${b.PhyCoord.Core}, ${b.PhyCoord.Lane} }`==L.dataset.phyCoords),L.dataset.state=w(b.State),L.dataset.logCoords=`{ 0, (${b.LogCoord.X},${b.LogCoord.Y},${b.LogCoord.Z}) }`,L.classList.toggle("selected",h.SteppedLanes.has(D))}return[async h=>{let D=[];for(const L of[y])try{L(h)}catch(b){D.push(b)}if(D.length>0)throw D},i]})(),cr=document.querySelector("#talvos section.buffers");var Et={};function Ve(u,i){cr.innerHTML="";const f=u.GlobalMemory,s=u.PipelineExecutor.Objects;for(const y of i.Buffers){const h=document.createElement("figure"),D=document.createElement("figcaption");D.innerText=`Buffer '${y.Name.deref()?.asString()??""}' (${y.Size} bytes):`,h.appendChild(D);const L=document.createElement("ol"),b=s.get(y.Id).Data.data.getBigUint64(0,Me),U=f.deref(b,y.Size),le=4,R=O=>U.data.getUint32(O,Me),q=Et["0x"+b.toString(16)]??[];for(var p=[],w=0;w{switch(Ce.value){case"v0":case"v1":document.querySelectorAll(`#talvos > .vis.${Ce.value}`).forEach(i=>{i.classList.remove("hidden")}),document.querySelectorAll(`#talvos > .vis:not(.${Ce.value})`).forEach(i=>{i.classList.add("hidden")});const u=Ce.value=="v1";document.querySelector("#talvos").classList.toggle("vis-wip",u);break;default:throw new Error(`unknown vis: ${Ce.value}`)}});const[Qn,eo,to,ro,{Session:ot}]=function(u){return[u.then(i=>i.cwrap("validate_wasm","boolean",["string"])),u.then(i=>i.cwrap("exception",void 0,[])),u.then(i=>i.cwrap("assertion",void 0,[])),u.then(i=>i.getExceptionMessage),(()=>{var i=u.then(({wasmExports:{Session__create__:f,Session__destroy__:s,Session__params_ref:p,Session__module_ref:w,Session__device_ref:y,Session_run:h,Session_dumpBuffers:D,Session_start:L,Session_step:b,Session_switch:U,Session_print:le,Session_continue:R,Session_printContext:q,Session_getCurrentId:O,Session_tick:Ee,Session_fetch_shrubbery:J},stackAlloc:me,stackSave:ue,stackRestore:oe,stringToUTF8OnStack:x,HEAP32:ye,wasmMemory:te,_malloc:_e,_free:j})=>{function Ae(Z){const I=_e(Z),C=te.buffer,N=new se(C,I,Z);return[N,()=>j(N.addr)]}function Se(Z){const I=Z.map(x),C=me(I.length);return I.forEach((N,B)=>{ye[C+B*4>>2]=N}),[I.length,C]}const Te=4096;class g{ptr;arena;lastOp;laneMask;params;module;device;lastId;static bind(I){try{var C=Object.create(this.prototype);C.ptr=I,C.arena=new Cn(...Ae(Te)),C.lastOp=new ee(C.arena.alloc(ee.SIZE)),C.laneMask=new Je(void 0,{data:C.arena.alloc(8).data}),C.params=new rr(new se(te.buffer,p(I),rr.SIZE)),C.module=new or(new se(te.buffer,w(I),or.SIZE)),C.device=new sr(new se(te.buffer,y(I),sr.SIZE)),C.lastId=new rt(C.arena.alloc(rt.SIZE))}catch(N){throw s(I),C?.arena&&De(C.arena),N}return C}constructor(I){const C=ue(),[N,B]=[I,"EXEC"].map(x),ce=f(N,B);return oe(C),g.bind(ce)}run(){h(this.ptr)}dumpBuffers(){D(this.ptr)}start(){Et={},L(this.ptr,this.lastOp.ptr.asRef()),O(this.ptr,this.lastId.ptr.asRef()),Ze(this.lastOp),Ve(this.device,this.module)}async tick(){var I=Ee(this.ptr);return I==0&&O(this.ptr,this.lastId.ptr.asRef()),Ze(this.lastOp),Ve(this.device,this.module),I>0&&lr(),I}async step(){this.laneMask.clear(),(await $e).querySelectorAll(".lane").forEach((C,N)=>{C.classList.contains("selected")&&this.laneMask.add(N)});var I=b(this.ptr,this.laneMask.asRef(),this.lastOp.asRef());return I==0&&O(this.ptr,this.lastId.ptr.asRef()),Ze(this.lastOp),Ve(this.device,this.module),I>0&&lr(),I}switch(I){const C=ue();U(this.ptr,...Se(["switch",...I])),oe(C)}print(I){const C=ue();le(this.ptr,...Se(["print",...I])),oe(C)}continue(){R(this.ptr,this.lastOp.ptr.asRef()),Ze(this.lastOp),Ve(this.device,this.module)}printContext(){q(this.ptr)}fetchShrubbery(){var I=this.arena.alloc(8);return J(this.ptr,I.asRef()),new Je(void 0,{data:I.data})}__destroy__(){console.log("Session.destroy..."),s(this.ptr),this.ptr=0,De(this.arena)}}return{Session:g}});return{Session:i.then(f=>f.Session)}})()]}(Gn(Zn));function De(u){u.__destroy__()}function Be(u,i){return i=i??window.performance.mark("talvos"),(async()=>u())().finally(()=>{const f=window.performance.measure(i.name,i.name);H.querySelector("output.timing").value=`done in ${f.duration}ms`})}function at(u,i){return X.value="",ne.value="",X.hidden=!1,H.querySelector("output.timing").value="...",H.querySelectorAll("button.exec,textarea").forEach(f=>f.disabled=!0),i=i??window.performance.mark("talvos"),(async()=>u())().catch(async f=>{var s;if(f instanceof WebAssembly.Exception){var p;[p,s]=(await ro)(f),s=s||`of type ${p}`,console.error(f.stack)}else console.error(`in ${i.name}:`,f),s=""+f;ne.value=s}).finally(()=>{const f=window.performance.measure(i.name,i.name);H.querySelector("output.timing").value=`done in ${f.duration}ms`,H.querySelectorAll("button.exec,textarea").forEach(s=>s.removeAttribute("disabled"))})}H.querySelector("button.validate").onclick=async function(){const u=H.querySelector(".module").value,i=window.performance.mark("validate_wasm",{detail:{text:u}}),f=await at(async()=>(await Qn)(u),i);H.querySelector("output.stdio").value+=f?"ok!":"not ok :("};H.querySelector("button.assertion").onclick=async()=>at(await to);H.querySelector("button.exception").onclick=async()=>at(await eo);H.querySelector("button.shrubbery").onclick=async()=>{const u=(await ot).bind(828927560446);try{const i=u.fetchShrubbery();console.log(i)}finally{De(u.arena)}};H.querySelector("button.run").onclick=async function(){const u=H.querySelector(".module").value,i=window.performance.mark("run_wasm",{detail:{text:u}});at(async()=>{const f=new(await ot)(u),s=H.querySelector('select[name="entry"]');f.params.EntryName=s.selectedOptions.item(0)?.value??"main";try{f.run(),f.dumpBuffers()}finally{De(f)}},i)};H.querySelector("button.debug").onclick=async function(){X.value="",X.hidden=!0,ne.value="",H.querySelector("output.timing").value="...",H.querySelectorAll("button.exec,textarea").forEach(f=>f.disabled=!0);const u=H.querySelector(".module").value,i=window.performance.mark("debug",{detail:{text:u}});Be(async()=>{const f=new(await ot)(u);f.params.EntryName=dr.selectedOptions.item(0)?.value??"main";const s=H.querySelector(".debugger");function p(){Be(()=>{s.hidden=!0,s.querySelectorAll("button").forEach(h=>h.onclick=null),H.querySelectorAll("button.exec,textarea").forEach(h=>h.removeAttribute("disabled")),window.dispatchEvent(Xn),De(f)},window.performance.mark("finish"));const y=window.performance.measure(i.name,i.name);setTimeout(()=>H.querySelector("output.timing").value+=` (session lifetime: ${y.duration}ms)`,0)}try{f.start(),window.dispatchEvent(Vn),X.value=`@ {${[...f.lastId]}} (logical) +`,f.printContext()}catch(y){throw p(),y}const w=1;s.querySelector("button.tick").onclick=async function(){X.value="",ne.value="";const y=window.performance.mark("tick",{detail:{}});Be(async()=>{try{const h=await f.tick();window.dispatchEvent(Kn),h==w&&p(),X.value=`@ {${[...f.lastId]}} (logical) +`,f.printContext()}catch(h){throw p(),h}},y)},s.querySelector("button.step").onclick=async function(){X.value="",ne.value="";const y=window.performance.mark("step",{detail:{}});Be(async()=>{try{const h=await f.step();window.dispatchEvent(Jn),h==w&&p(),X.value=`@ {${[...f.lastId]}} (logical) +`,f.printContext()}catch(h){throw p(),h}},y)},s.querySelector("button.switch").onclick=function(){const y=prompt("Usage: switch: X [Y [Z]]","X [Y [Z]]");if(y==null)return;const h=y.split(/\s+/);f.switch(h)},s.querySelector("button.print").onclick=function(){const y=prompt("Usage: print: %","%15");if(y==null)return;const h=y.split(/\s+/);f.print(h)},s.querySelector("button.stop").onclick=p,s.querySelector("button.continue").onclick=function(){X.value="",ne.value="",Be(()=>{try{f.continue()}finally{p()}})},s.hidden=!1},i)};const dr=H.querySelector('select[name="entry"]');setTimeout(async function(){const i=X.value,f=ne.value;X.value="",ne.value="";const s=H.querySelector(".module").value,p=new(await ot)(s);try{console.log([...p.module.EntryPoints].map(w=>w.Name.asString())),dr.innerHTML=[...p.module.EntryPoints].map(w=>``).join("")}finally{De(p)}X.value&&console.log(X.value),X.value=i,ne.value&&console.error(ne.value),ne.value=f},0); diff --git a/dist/_astro/hoisted.CebuW4z1.js b/dist/_astro/hoisted.CebuW4z1.js new file mode 100644 index 0000000..e1e2ae2 --- /dev/null +++ b/dist/_astro/hoisted.CebuW4z1.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["_astro/ui-core.xadFDdVE.js","_astro/__vite-browser-external.DnN4KUUt.js"])))=>i.map(i=>d[i]); +import{_ as v}from"./__vite-browser-external.DnN4KUUt.js";class w extends HTMLElement{constructor(){super();const t=this.querySelector("select");t&&t.addEventListener("change",e=>{e.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=e.currentTarget.value)})}}customElements.define("starlight-lang-select",w);class L extends HTMLElement{constructor(){super();const t=this.querySelector("button[data-open-modal]"),e=this.querySelector("button[data-close-modal]"),n=this.querySelector("dialog"),s=this.querySelector(".dialog-frame"),o=i=>{("href"in(i.target||{})||document.body.contains(i.target)&&!s.contains(i.target))&&u()},r=i=>{n.showModal(),document.body.toggleAttribute("data-search-modal-open",!0),this.querySelector("input")?.focus(),i?.stopPropagation(),window.addEventListener("click",o)},u=()=>n.close();t.addEventListener("click",r),t.disabled=!1,e.addEventListener("click",u),n.addEventListener("close",()=>{document.body.toggleAttribute("data-search-modal-open",!1),window.removeEventListener("click",o)}),window.addEventListener("keydown",i=>{(i.metaKey===!0||i.ctrlKey===!0)&&i.key==="k"&&(n.open?u():r(),i.preventDefault())});let m={};try{m=JSON.parse(this.dataset.translations||"{}")}catch{}const l=this.dataset.stripTrailingSlash!==void 0?i=>i.replace(/(.)\/(#.*)?$/,"$1$2"):i=>i;window.addEventListener("DOMContentLoaded",()=>{(window.requestIdleCallback||(h=>setTimeout(h,1)))(async()=>{const{PagefindUI:h}=await v(async()=>{const{PagefindUI:d}=await import("./ui-core.xadFDdVE.js");return{PagefindUI:d}},__vite__mapDeps([0,1]));new h({element:"#starlight__search",baseUrl:"/learn-gpgpu",bundlePath:"/learn-gpgpu".replace(/\/$/,"")+"/pagefind/",showImages:!1,translations:m,showSubResults:!0,processResult:d=>{d.url=l(d.url),d.sub_results=d.sub_results.map(f=>(f.url=l(f.url),f))}})})})}}customElements.define("site-search",L);const b="starlight-theme",y=c=>c==="auto"||c==="dark"||c==="light"?c:"auto",S=()=>y(typeof localStorage<"u"&&localStorage.getItem(b));function x(c){typeof localStorage<"u"&&localStorage.setItem(b,c==="light"||c==="dark"?c:"")}const k=()=>matchMedia("(prefers-color-scheme: light)").matches?"light":"dark";function E(c){StarlightThemeProvider.updatePickers(c),document.documentElement.dataset.theme=c==="auto"?k():c,x(c)}matchMedia("(prefers-color-scheme: light)").addEventListener("change",()=>{S()==="auto"&&E("auto")});class q extends HTMLElement{constructor(){super(),E(S()),this.querySelector("select")?.addEventListener("change",t=>{t.currentTarget instanceof HTMLSelectElement&&E(y(t.currentTarget.value))})}}customElements.define("starlight-theme-select",q);class g extends HTMLElement{static#e=new Map;#t;constructor(){super();const t=this.querySelector('[role="tablist"]');if(this.tabs=[...t.querySelectorAll('[role="tab"]')],this.panels=[...this.querySelectorAll(':scope > [role="tabpanel"]')],this.#t=this.dataset.syncKey,this.#t){const e=g.#e.get(this.#t)??[];e.push(this),g.#e.set(this.#t,e)}this.tabs.forEach((e,n)=>{e.addEventListener("click",s=>{s.preventDefault();const o=t.querySelector('[aria-selected="true"]');s.currentTarget!==o&&this.switchTab(s.currentTarget,n)}),e.addEventListener("keydown",s=>{const o=this.tabs.indexOf(s.currentTarget),r=s.key==="ArrowLeft"?o-1:s.key==="ArrowRight"?o+1:s.key==="Home"?0:s.key==="End"?this.tabs.length-1:null;r!==null&&this.tabs[r]&&(s.preventDefault(),this.switchTab(this.tabs[r],r))})})}switchTab(t,e,n=!0){if(!t)return;const s=n?this.getBoundingClientRect().top:0;this.tabs.forEach(r=>{r.setAttribute("aria-selected","false"),r.setAttribute("tabindex","-1")}),this.panels.forEach(r=>{r.hidden=!0});const o=this.panels[e];o&&(o.hidden=!1),t.removeAttribute("tabindex"),t.setAttribute("aria-selected","true"),n&&(t.focus(),g.#n(this,t.innerText),window.scrollTo({top:window.scrollY+(this.getBoundingClientRect().top-s)}))}static#n(t,e){const n=t.#t;if(!n||!e)return;const s=g.#e.get(n);if(s)for(const o of s){if(o===t)continue;const r=o.tabs.findIndex(u=>u.innerText===e);r!==-1&&o.switchTab(o.tabs[r],r,!1)}}}customElements.define("starlight-tabs",g);const H="_top";class T extends HTMLElement{constructor(){super(),this._current=this.querySelector('a[aria-current="true"]'),this.minH=parseInt(this.dataset.minH||"2",10),this.maxH=parseInt(this.dataset.maxH||"3",10);const t=[...this.querySelectorAll("a")],e=a=>{if(a instanceof HTMLHeadingElement){if(a.id===H)return!0;const l=a.tagName[1];if(l){const i=parseInt(l,10);if(i>=this.minH&&i<=this.maxH)return!0}}return!1},n=a=>{if(!a)return null;const l=a;for(;a;){if(e(a))return a;for(a=a.previousElementSibling;a?.lastElementChild;)a=a.lastElementChild;const i=n(a);if(i)return i}return n(l.parentElement)},s=a=>{for(const{isIntersecting:l,target:i}of a){if(!l)continue;const h=n(i);if(!h)continue;const d=t.find(f=>f.hash==="#"+encodeURIComponent(h.id));if(d){this.current=d;break}}},o=document.querySelectorAll("main [id], main [id] ~ *, main .content > *");let r;const u=()=>{r&&r.disconnect(),r=new IntersectionObserver(s,{rootMargin:this.getRootMargin()}),o.forEach(a=>r.observe(a))};u();const m=window.requestIdleCallback||(a=>setTimeout(a,1));let p;window.addEventListener("resize",()=>{r&&r.disconnect(),clearTimeout(p),p=setTimeout(()=>m(u),200)})}set current(t){t!==this._current&&(this._current&&this._current.removeAttribute("aria-current"),t.setAttribute("aria-current","true"),this._current=t)}getRootMargin(){const t=document.querySelector("header")?.getBoundingClientRect().height||0,e=this.querySelector("summary")?.getBoundingClientRect().height||0,n=t+e+32,s=n+53,o=document.documentElement.clientHeight;return`-${n}px 0% ${s-o}px`}}customElements.define("starlight-toc",T);class I extends T{set current(t){super.current=t;const e=this.querySelector(".display-current");e&&(e.textContent=t.textContent)}constructor(){super();const t=this.querySelector("details");if(!t)return;const e=()=>{t.open=!1};t.querySelectorAll("a").forEach(n=>{n.addEventListener("click",e)}),window.addEventListener("click",n=>{t.contains(n.target)||e()}),window.addEventListener("keydown",n=>{if(n.key==="Escape"&&t.open){const s=t.contains(document.activeElement);if(e(),s){const o=t.querySelector("summary");o&&o.focus()}}})}}customElements.define("mobile-starlight-toc",I);class M extends HTMLElement{constructor(){super(),this.btn=this.querySelector("button"),this.btn.addEventListener("click",()=>this.toggleExpanded());const t=this.closest("nav");t&&t.addEventListener("keyup",e=>this.closeOnEscape(e))}setExpanded(t){this.setAttribute("aria-expanded",String(t)),document.body.toggleAttribute("data-mobile-menu-expanded",t)}toggleExpanded(){this.setExpanded(this.getAttribute("aria-expanded")!=="true")}closeOnEscape(t){t.code==="Escape"&&(this.setExpanded(!1),this.btn.focus())}}customElements.define("starlight-menu-button",M); diff --git a/dist/_astro/hoisted.DxkYFGKt.js b/dist/_astro/hoisted.DxkYFGKt.js deleted file mode 100644 index 7d6e062..0000000 --- a/dist/_astro/hoisted.DxkYFGKt.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__fileDeps=["_astro/ui-core.CRsU5wLh.js","_astro/preload-helper.Cd0R8zjt.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]); -import{_ as b}from"./preload-helper.Cd0R8zjt.js";class L extends HTMLElement{constructor(){super();const e=this.querySelector("select");e&&e.addEventListener("change",o=>{o.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=o.currentTarget.value)})}}customElements.define("starlight-lang-select",L);class T extends HTMLElement{constructor(){super();const e=this.querySelector("button[data-open-modal]"),o=this.querySelector("button[data-close-modal]"),r=this.querySelector("dialog"),d=this.querySelector(".dialog-frame"),a=t=>{("href"in(t.target||{})||document.body.contains(t.target)&&!d.contains(t.target))&&h()},i=t=>{r.showModal(),document.body.toggleAttribute("data-search-modal-open",!0),this.querySelector("input")?.focus(),t?.stopPropagation(),window.addEventListener("click",a)},h=()=>r.close();e.addEventListener("click",i),e.disabled=!1,o.addEventListener("click",h),r.addEventListener("close",()=>{document.body.toggleAttribute("data-search-modal-open",!1),window.removeEventListener("click",a)}),window.addEventListener("keydown",t=>{const l=document.activeElement instanceof HTMLElement&&(["input","select","textarea"].includes(document.activeElement.tagName.toLowerCase())||document.activeElement.isContentEditable);(t.metaKey===!0||t.ctrlKey===!0)&&t.key==="k"?(r.open?h():i(),t.preventDefault()):t.key==="/"&&!r.open&&!l&&(i(),t.preventDefault())});let g={};try{g=JSON.parse(this.dataset.translations||"{}")}catch{}const c=this.dataset.stripTrailingSlash!==void 0?t=>t.replace(/(.)\/(#.*)?$/,"$1$2"):t=>t;window.addEventListener("DOMContentLoaded",()=>{(window.requestIdleCallback||(l=>setTimeout(l,1)))(async()=>{const{PagefindUI:l}=await b(()=>import("./ui-core.CRsU5wLh.js"),__vite__mapDeps([0,1]));new l({element:"#starlight__search",baseUrl:"/learn-gpgpu",bundlePath:"/learn-gpgpu".replace(/\/$/,"")+"/pagefind/",showImages:!1,translations:g,showSubResults:!0,processResult:u=>{u.url=c(u.url),u.sub_results=u.sub_results.map(m=>(m.url=c(m.url),m))}})})})}}customElements.define("site-search",T);const E="starlight-theme",S=s=>s==="auto"||s==="dark"||s==="light"?s:"auto",y=()=>S(typeof localStorage<"u"&&localStorage.getItem(E));function w(s){typeof localStorage<"u"&&localStorage.setItem(E,s==="light"||s==="dark"?s:"")}const k=()=>matchMedia("(prefers-color-scheme: light)").matches?"light":"dark";function f(s){StarlightThemeProvider.updatePickers(s),document.documentElement.dataset.theme=s==="auto"?k():s,w(s)}matchMedia("(prefers-color-scheme: light)").addEventListener("change",()=>{y()==="auto"&&f("auto")});class x extends HTMLElement{constructor(){super(),f(y()),this.querySelector("select")?.addEventListener("change",e=>{e.currentTarget instanceof HTMLSelectElement&&f(S(e.currentTarget.value))})}}customElements.define("starlight-theme-select",x);class H extends HTMLElement{constructor(){super(),this.btn=this.querySelector("button"),this.btn.addEventListener("click",()=>this.toggleExpanded());const e=this.closest("nav");e&&e.addEventListener("keyup",o=>this.closeOnEscape(o))}setExpanded(e){this.setAttribute("aria-expanded",String(e)),document.body.toggleAttribute("data-mobile-menu-expanded",e)}toggleExpanded(){this.setExpanded(this.getAttribute("aria-expanded")!=="true")}closeOnEscape(e){e.code==="Escape"&&(this.setExpanded(!1),this.btn.focus())}}customElements.define("starlight-menu-button",H);const M="_top";class v extends HTMLElement{constructor(){super(),this._current=this.querySelector('a[aria-current="true"]'),this.minH=parseInt(this.dataset.minH||"2",10),this.maxH=parseInt(this.dataset.maxH||"3",10);const e=[...this.querySelectorAll("a")],o=n=>{if(n instanceof HTMLHeadingElement){if(n.id===M)return!0;const c=n.tagName[1];if(c){const t=parseInt(c,10);if(t>=this.minH&&t<=this.maxH)return!0}}return!1},r=n=>{if(!n)return null;const c=n;for(;n;){if(o(n))return n;for(n=n.previousElementSibling;n?.lastElementChild;)n=n.lastElementChild;const t=r(n);if(t)return t}return r(c.parentElement)},d=n=>{for(const{isIntersecting:c,target:t}of n){if(!c)continue;const l=r(t);if(!l)continue;const u=e.find(m=>m.hash==="#"+encodeURIComponent(l.id));if(u){this.current=u;break}}},a=document.querySelectorAll("main [id], main [id] ~ *, main .content > *");let i;const h=()=>{i&&i.disconnect(),i=new IntersectionObserver(d,{rootMargin:this.getRootMargin()}),a.forEach(n=>i.observe(n))};h();const g=window.requestIdleCallback||(n=>setTimeout(n,1));let p;window.addEventListener("resize",()=>{i&&i.disconnect(),clearTimeout(p),p=setTimeout(()=>g(h),200)})}set current(e){e!==this._current&&(this._current&&this._current.removeAttribute("aria-current"),e.setAttribute("aria-current","true"),this._current=e)}getRootMargin(){const e=document.querySelector("header")?.getBoundingClientRect().height||0,o=this.querySelector("summary")?.getBoundingClientRect().height||0,r=e+o+32,d=r+53,a=document.documentElement.clientHeight;return`-${r}px 0% ${d-a}px`}}customElements.define("starlight-toc",v);class q extends v{set current(e){super.current=e;const o=this.querySelector(".display-current");o&&(o.textContent=e.textContent)}constructor(){super();const e=this.querySelector("details");if(!e)return;const o=()=>{e.open=!1};e.querySelectorAll("a").forEach(r=>{r.addEventListener("click",o)}),window.addEventListener("click",r=>{e.contains(r.target)||o()}),window.addEventListener("keydown",r=>{if(r.key==="Escape"&&e.open){const d=e.contains(document.activeElement);if(o(),d){const a=e.querySelector("summary");a&&a.focus()}}})}}customElements.define("mobile-starlight-toc",q); diff --git a/dist/_astro/index.DsZ27fFO.css b/dist/_astro/index.DsZ27fFO.css deleted file mode 100644 index 5a0d362..0000000 --- a/dist/_astro/index.DsZ27fFO.css +++ /dev/null @@ -1 +0,0 @@ -:root,::backdrop{--sl-color-white: hsl(0, 0%, 100%);--sl-color-gray-1: hsl(224, 20%, 94%);--sl-color-gray-2: hsl(224, 6%, 77%);--sl-color-gray-3: hsl(224, 6%, 56%);--sl-color-gray-4: hsl(224, 7%, 36%);--sl-color-gray-5: hsl(224, 10%, 23%);--sl-color-gray-6: hsl(224, 14%, 16%);--sl-color-black: hsl(224, 10%, 10%);--sl-hue-orange: 41;--sl-color-orange-low: hsl(var(--sl-hue-orange), 39%, 22%);--sl-color-orange: hsl(var(--sl-hue-orange), 82%, 63%);--sl-color-orange-high: hsl(var(--sl-hue-orange), 82%, 87%);--sl-hue-green: 101;--sl-color-green-low: hsl(var(--sl-hue-green), 39%, 22%);--sl-color-green: hsl(var(--sl-hue-green), 82%, 63%);--sl-color-green-high: hsl(var(--sl-hue-green), 82%, 80%);--sl-hue-blue: 234;--sl-color-blue-low: hsl(var(--sl-hue-blue), 54%, 20%);--sl-color-blue: hsl(var(--sl-hue-blue), 100%, 60%);--sl-color-blue-high: hsl(var(--sl-hue-blue), 100%, 87%);--sl-hue-purple: 281;--sl-color-purple-low: hsl(var(--sl-hue-purple), 39%, 22%);--sl-color-purple: hsl(var(--sl-hue-purple), 82%, 63%);--sl-color-purple-high: hsl(var(--sl-hue-purple), 82%, 89%);--sl-hue-red: 339;--sl-color-red-low: hsl(var(--sl-hue-red), 39%, 22%);--sl-color-red: hsl(var(--sl-hue-red), 82%, 63%);--sl-color-red-high: hsl(var(--sl-hue-red), 82%, 87%);--sl-color-accent-low: hsl(224, 54%, 20%);--sl-color-accent: hsl(224, 100%, 60%);--sl-color-accent-high: hsl(224, 100%, 85%);--sl-color-text: var(--sl-color-gray-2);--sl-color-text-accent: var(--sl-color-accent-high);--sl-color-text-invert: var(--sl-color-accent-low);--sl-color-bg: var(--sl-color-black);--sl-color-bg-nav: var(--sl-color-gray-6);--sl-color-bg-sidebar: var(--sl-color-gray-6);--sl-color-bg-inline-code: var(--sl-color-gray-5);--sl-color-bg-accent: var(--sl-color-accent-high);--sl-color-hairline-light: var(--sl-color-gray-5);--sl-color-hairline: var(--sl-color-gray-6);--sl-color-hairline-shade: var(--sl-color-black);--sl-color-backdrop-overlay: hsla(223, 13%, 10%, .66);--sl-shadow-sm: 0px 1px 1px hsla(0, 0%, 0%, .12), 0px 2px 1px hsla(0, 0%, 0%, .24);--sl-shadow-md: 0px 8px 4px hsla(0, 0%, 0%, .08), 0px 5px 2px hsla(0, 0%, 0%, .08), 0px 3px 2px hsla(0, 0%, 0%, .12), 0px 1px 1px hsla(0, 0%, 0%, .15);--sl-shadow-lg: 0px 25px 7px hsla(0, 0%, 0%, .03), 0px 16px 6px hsla(0, 0%, 0%, .1), 0px 9px 5px hsla(223, 13%, 10%, .33), 0px 4px 4px hsla(0, 0%, 0%, .75), 0px 4px 2px hsla(0, 0%, 0%, .25);--sl-text-xs: .8125rem;--sl-text-sm: .875rem;--sl-text-base: 1rem;--sl-text-lg: 1.125rem;--sl-text-xl: 1.25rem;--sl-text-2xl: 1.5rem;--sl-text-3xl: 1.8125rem;--sl-text-4xl: 2.1875rem;--sl-text-5xl: 2.625rem;--sl-text-6xl: 4rem;--sl-text-body: var(--sl-text-base);--sl-text-body-sm: var(--sl-text-xs);--sl-text-code: var(--sl-text-sm);--sl-text-code-sm: var(--sl-text-xs);--sl-text-h1: var(--sl-text-4xl);--sl-text-h2: var(--sl-text-3xl);--sl-text-h3: var(--sl-text-2xl);--sl-text-h4: var(--sl-text-xl);--sl-text-h5: var(--sl-text-lg);--sl-line-height: 1.75;--sl-line-height-headings: 1.2;--sl-font-system: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--sl-font-system-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--__sl-font: var(--sl-font, var(--sl-font-system)), var(--sl-font-system);--__sl-font-mono: var(--sl-font-mono, var(--sl-font-system-mono)), var(--sl-font-system-mono);--sl-nav-height: 3.5rem;--sl-nav-pad-x: 1rem;--sl-nav-pad-y: .75rem;--sl-mobile-toc-height: 3rem;--sl-sidebar-width: 18.75rem;--sl-sidebar-pad-x: 1rem;--sl-content-width: 45rem;--sl-content-pad-x: 1rem;--sl-menu-button-size: 2rem;--sl-nav-gap: var(--sl-content-pad-x);--sl-outline-offset-inside: -.1875rem;--sl-z-index-toc: 4;--sl-z-index-menu: 5;--sl-z-index-navbar: 10;--sl-z-index-skiplink: 20}:root[data-theme=light],[data-theme=light] ::backdrop{--sl-color-white: hsl(224, 10%, 10%);--sl-color-gray-1: hsl(224, 14%, 16%);--sl-color-gray-2: hsl(224, 10%, 23%);--sl-color-gray-3: hsl(224, 7%, 36%);--sl-color-gray-4: hsl(224, 6%, 56%);--sl-color-gray-5: hsl(224, 6%, 77%);--sl-color-gray-6: hsl(224, 20%, 94%);--sl-color-gray-7: hsl(224, 19%, 97%);--sl-color-black: hsl(0, 0%, 100%);--sl-color-orange-high: hsl(var(--sl-hue-orange), 80%, 25%);--sl-color-orange: hsl(var(--sl-hue-orange), 90%, 60%);--sl-color-orange-low: hsl(var(--sl-hue-orange), 90%, 88%);--sl-color-green-high: hsl(var(--sl-hue-green), 80%, 22%);--sl-color-green: hsl(var(--sl-hue-green), 90%, 46%);--sl-color-green-low: hsl(var(--sl-hue-green), 85%, 90%);--sl-color-blue-high: hsl(var(--sl-hue-blue), 80%, 30%);--sl-color-blue: hsl(var(--sl-hue-blue), 90%, 60%);--sl-color-blue-low: hsl(var(--sl-hue-blue), 88%, 90%);--sl-color-purple-high: hsl(var(--sl-hue-purple), 90%, 30%);--sl-color-purple: hsl(var(--sl-hue-purple), 90%, 60%);--sl-color-purple-low: hsl(var(--sl-hue-purple), 80%, 90%);--sl-color-red-high: hsl(var(--sl-hue-red), 80%, 30%);--sl-color-red: hsl(var(--sl-hue-red), 90%, 60%);--sl-color-red-low: hsl(var(--sl-hue-red), 80%, 90%);--sl-color-accent-high: hsl(234, 80%, 30%);--sl-color-accent: hsl(234, 90%, 60%);--sl-color-accent-low: hsl(234, 88%, 90%);--sl-color-text-accent: var(--sl-color-accent);--sl-color-text-invert: var(--sl-color-black);--sl-color-bg-nav: var(--sl-color-gray-7);--sl-color-bg-sidebar: var(--sl-color-bg);--sl-color-bg-inline-code: var(--sl-color-gray-6);--sl-color-bg-accent: var(--sl-color-accent);--sl-color-hairline-light: var(--sl-color-gray-6);--sl-color-hairline-shade: var(--sl-color-gray-6);--sl-color-backdrop-overlay: hsla(225, 9%, 36%, .66);--sl-shadow-sm: 0px 1px 1px hsla(0, 0%, 0%, .06), 0px 2px 1px hsla(0, 0%, 0%, .06);--sl-shadow-md: 0px 8px 4px hsla(0, 0%, 0%, .03), 0px 5px 2px hsla(0, 0%, 0%, .03), 0px 3px 2px hsla(0, 0%, 0%, .06), 0px 1px 1px hsla(0, 0%, 0%, .06);--sl-shadow-lg: 0px 25px 7px rgba(0, 0, 0, .01), 0px 16px 6px hsla(0, 0%, 0%, .03), 0px 9px 5px hsla(223, 13%, 10%, .08), 0px 4px 4px hsla(0, 0%, 0%, .16), 0px 4px 2px hsla(0, 0%, 0%, .04)}@media (min-width: 50em){:root{--sl-nav-height: 4rem;--sl-nav-pad-x: 1.5rem;--sl-text-h1: var(--sl-text-5xl);--sl-text-h2: var(--sl-text-4xl);--sl-text-h3: var(--sl-text-3xl);--sl-text-h4: var(--sl-text-2xl)}}@media (min-width: 72rem){:root{--sl-content-pad-x: 1.5rem;--sl-mobile-toc-height: 0rem}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{color-scheme:dark;accent-color:var(--sl-color-accent)}html[data-theme=light]{color-scheme:light}body{font-family:var(--__sl-font);line-height:var(--sl-line-height);-webkit-font-smoothing:antialiased;color:var(--sl-color-text);background-color:var(--sl-color-bg)}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6,code{overflow-wrap:anywhere}code{font-family:var(--__sl-font-mono)}:root{--astro-code-color-text: var(--sl-color-white);--astro-code-color-background: var(--sl-color-gray-6);--astro-code-token-constant: var(--sl-color-blue-high);--astro-code-token-string: var(--sl-color-green-high);--astro-code-token-comment: var(--sl-color-gray-2);--astro-code-token-keyword: var(--sl-color-purple-high);--astro-code-token-parameter: var(--sl-color-red-high);--astro-code-token-function: var(--sl-color-red-high);--astro-code-token-string-expression: var(--sl-color-green-high);--astro-code-token-punctuation: var(--sl-color-gray-2);--astro-code-token-link: var(--sl-color-blue-high)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sl-hidden{display:none}.sl-flex{display:flex}.sl-block{display:block}@media (min-width: 50rem){.md\:sl-hidden{display:none}.md\:sl-flex{display:flex}.md\:sl-block{display:block}}@media (min-width: 72rem){.lg\:sl-hidden{display:none}.lg\:sl-flex{display:flex}.lg\:sl-block{display:block}}[data-theme=light] .light\:sl-hidden,[data-theme=dark] .dark\:sl-hidden{display:none}[dir=rtl] .rtl\:flip:not(:where([dir=rtl] [dir=ltr] *)){transform:scaleX(-1)}.sl-banner:where(.astro-knintcaq){--__sl-banner-text: var(--sl-color-banner-text, var(--sl-color-text-invert));padding:var(--sl-nav-pad-y) var(--sl-nav-pad-x);background-color:var(--sl-color-banner-bg, var(--sl-color-bg-accent));color:var(--__sl-banner-text);line-height:var(--sl-line-height-headings);text-align:center;text-wrap:balance;box-shadow:var(--sl-shadow-sm)}.sl-banner:where(.astro-knintcaq) a{color:var(--__sl-banner-text)}.content-panel:where(.astro-d5d6ibok){padding:1.5rem var(--sl-content-pad-x)}.content-panel:where(.astro-d5d6ibok)+.content-panel:where(.astro-d5d6ibok){border-top:1px solid var(--sl-color-hairline)}.sl-container:where(.astro-d5d6ibok){max-width:var(--sl-content-width)}.sl-container:where(.astro-d5d6ibok)>*+*{margin-top:1.5rem}@media (min-width: 72rem){.sl-container:where(.astro-d5d6ibok){margin-inline:var(--sl-content-margin-inline, auto)}}svg:where(.astro-5wdtofee){color:var(--sl-icon-color);font-size:var(--sl-icon-size, 1em);width:1em;height:1em}p:where(.astro-o3hzorka){border:1px solid var(--sl-color-orange);padding:.75em 1em;background-color:var(--sl-color-orange-low);color:var(--sl-color-orange-high);width:max-content;max-width:100%;align-items:center;gap:.75em;font-size:var(--sl-text-body-sm);line-height:var(--sl-line-height-headings)}a:where(.astro-hcvx57lp){gap:.5rem;align-items:center;text-decoration:none;color:var(--sl-color-gray-3)}a:where(.astro-hcvx57lp):hover{color:var(--sl-color-white)}.pagination-links:where(.astro-plzmylcf){display:grid;grid-template-columns:repeat(auto-fit,minmax(min(18rem,100%),1fr));gap:1rem}a:where(.astro-plzmylcf){display:flex;align-items:center;justify-content:flex-start;gap:.5rem;width:100%;flex-basis:calc(50% - .5rem);flex-grow:1;border:1px solid var(--sl-color-gray-5);border-radius:.5rem;padding:1rem;text-decoration:none;color:var(--sl-color-gray-2);box-shadow:var(--sl-shadow-md);overflow-wrap:anywhere}:where(.astro-plzmylcf)[rel=next]{justify-content:end;text-align:end;flex-direction:row-reverse}a:where(.astro-plzmylcf):hover{border-color:var(--sl-color-gray-2)}.link-title:where(.astro-plzmylcf){color:var(--sl-color-white);font-size:var(--sl-text-2xl);line-height:var(--sl-line-height-headings)}svg:where(.astro-plzmylcf){flex-shrink:0}.meta:where(.astro-qytxeors){gap:.75rem 3rem;justify-content:space-between;flex-wrap:wrap;margin-block:3rem 1.5rem;font-size:var(--sl-text-sm);color:var(--sl-color-gray-3)}.meta:where(.astro-qytxeors)>p:only-child{margin-inline-start:auto}label:where(.astro-rl5owqsl){--sl-label-icon-size: .875rem;--sl-caret-size: 1.25rem;position:relative;display:flex;align-items:center;gap:.25rem;color:var(--sl-color-gray-1)}label:where(.astro-rl5owqsl):hover{color:var(--sl-color-gray-2)}.icon:where(.astro-rl5owqsl){position:absolute;top:50%;transform:translateY(-50%);pointer-events:none}.label-icon:where(.astro-rl5owqsl){font-size:var(--sl-label-icon-size);inset-inline-start:0}.caret:where(.astro-rl5owqsl){font-size:var(--sl-caret-size);inset-inline-end:0}select:where(.astro-rl5owqsl){border:0;padding-block:.625rem;padding-inline:calc(var(--sl-label-icon-size) + .25rem) calc(var(--sl-caret-size) + .25rem);width:var(--sl-select-width);background-color:transparent;text-overflow:ellipsis;color:inherit;cursor:pointer;appearance:none}option:where(.astro-rl5owqsl){background-color:var(--sl-color-bg-nav);color:var(--sl-color-gray-1)}@media (min-width: 50rem){select:where(.astro-rl5owqsl){font-size:var(--sl-text-sm)}}.pagefind-ui__result.svelte-j9e30.svelte-j9e30{list-style-type:none;display:flex;align-items:flex-start;gap:min(calc(40px * var(--pagefind-ui-scale)),3%);padding:calc(30px * var(--pagefind-ui-scale)) 0 calc(40px * var(--pagefind-ui-scale));border-top:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result.svelte-j9e30.svelte-j9e30:last-of-type{border-bottom:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result-thumb.svelte-j9e30.svelte-j9e30{width:min(30%,calc((30% - (100px * var(--pagefind-ui-scale))) * 100000));max-width:calc(120px * var(--pagefind-ui-scale));margin-top:calc(10px * var(--pagefind-ui-scale));aspect-ratio:var(--pagefind-ui-image-box-ratio);position:relative}.pagefind-ui__result-image.svelte-j9e30.svelte-j9e30{display:block;position:absolute;left:50%;transform:translate(-50%);font-size:0;width:auto;height:auto;max-width:100%;max-height:100%;border-radius:var(--pagefind-ui-image-border-radius)}.pagefind-ui__result-inner.svelte-j9e30.svelte-j9e30{flex:1;display:flex;flex-direction:column;align-items:flex-start;margin-top:calc(10px * var(--pagefind-ui-scale))}.pagefind-ui__result-title.svelte-j9e30.svelte-j9e30{display:inline-block;font-weight:700;font-size:calc(21px * var(--pagefind-ui-scale));margin-top:0;margin-bottom:0}.pagefind-ui__result-title.svelte-j9e30 .pagefind-ui__result-link.svelte-j9e30{color:var(--pagefind-ui-text);text-decoration:none}.pagefind-ui__result-title.svelte-j9e30 .pagefind-ui__result-link.svelte-j9e30:hover{text-decoration:underline}.pagefind-ui__result-excerpt.svelte-j9e30.svelte-j9e30{display:inline-block;font-weight:400;font-size:calc(16px * var(--pagefind-ui-scale));margin-top:calc(4px * var(--pagefind-ui-scale));margin-bottom:0;min-width:calc(250px * var(--pagefind-ui-scale))}.pagefind-ui__loading.svelte-j9e30.svelte-j9e30{color:var(--pagefind-ui-text);background-color:var(--pagefind-ui-text);border-radius:var(--pagefind-ui-border-radius);opacity:.1;pointer-events:none}.pagefind-ui__result-tags.svelte-j9e30.svelte-j9e30{list-style-type:none;padding:0;display:flex;gap:calc(20px * var(--pagefind-ui-scale));flex-wrap:wrap;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__result-tag.svelte-j9e30.svelte-j9e30{padding:calc(4px * var(--pagefind-ui-scale)) calc(8px * var(--pagefind-ui-scale));font-size:calc(14px * var(--pagefind-ui-scale));border-radius:var(--pagefind-ui-border-radius);background-color:var(--pagefind-ui-tag)}.pagefind-ui__result.svelte-4xnkmf.svelte-4xnkmf{list-style-type:none;display:flex;align-items:flex-start;gap:min(calc(40px * var(--pagefind-ui-scale)),3%);padding:calc(30px * var(--pagefind-ui-scale)) 0 calc(40px * var(--pagefind-ui-scale));border-top:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result.svelte-4xnkmf.svelte-4xnkmf:last-of-type{border-bottom:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result-nested.svelte-4xnkmf.svelte-4xnkmf{display:flex;flex-direction:column;padding-left:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__result-nested.svelte-4xnkmf.svelte-4xnkmf:first-of-type{padding-top:calc(10px * var(--pagefind-ui-scale))}.pagefind-ui__result-nested.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf{font-size:.9em;position:relative}.pagefind-ui__result-nested.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf:before{content:"⤷ ";position:absolute;top:0;right:calc(100% + .1em)}.pagefind-ui__result-thumb.svelte-4xnkmf.svelte-4xnkmf{width:min(30%,calc((30% - (100px * var(--pagefind-ui-scale))) * 100000));max-width:calc(120px * var(--pagefind-ui-scale));margin-top:calc(10px * var(--pagefind-ui-scale));aspect-ratio:var(--pagefind-ui-image-box-ratio);position:relative}.pagefind-ui__result-image.svelte-4xnkmf.svelte-4xnkmf{display:block;position:absolute;left:50%;transform:translate(-50%);font-size:0;width:auto;height:auto;max-width:100%;max-height:100%;border-radius:var(--pagefind-ui-image-border-radius)}.pagefind-ui__result-inner.svelte-4xnkmf.svelte-4xnkmf{flex:1;display:flex;flex-direction:column;align-items:flex-start;margin-top:calc(10px * var(--pagefind-ui-scale))}.pagefind-ui__result-title.svelte-4xnkmf.svelte-4xnkmf{display:inline-block;font-weight:700;font-size:calc(21px * var(--pagefind-ui-scale));margin-top:0;margin-bottom:0}.pagefind-ui__result-title.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf{color:var(--pagefind-ui-text);text-decoration:none}.pagefind-ui__result-title.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf:hover{text-decoration:underline}.pagefind-ui__result-excerpt.svelte-4xnkmf.svelte-4xnkmf{display:inline-block;font-weight:400;font-size:calc(16px * var(--pagefind-ui-scale));margin-top:calc(4px * var(--pagefind-ui-scale));margin-bottom:0;min-width:calc(250px * var(--pagefind-ui-scale))}.pagefind-ui__loading.svelte-4xnkmf.svelte-4xnkmf{color:var(--pagefind-ui-text);background-color:var(--pagefind-ui-text);border-radius:var(--pagefind-ui-border-radius);opacity:.1;pointer-events:none}.pagefind-ui__result-tags.svelte-4xnkmf.svelte-4xnkmf{list-style-type:none;padding:0;display:flex;gap:calc(20px * var(--pagefind-ui-scale));flex-wrap:wrap;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__result-tag.svelte-4xnkmf.svelte-4xnkmf{padding:calc(4px * var(--pagefind-ui-scale)) calc(8px * var(--pagefind-ui-scale));font-size:calc(14px * var(--pagefind-ui-scale));border-radius:var(--pagefind-ui-border-radius);background-color:var(--pagefind-ui-tag)}legend.svelte-1v2r7ls.svelte-1v2r7ls{position:absolute;clip:rect(0 0 0 0)}.pagefind-ui__filter-panel.svelte-1v2r7ls.svelte-1v2r7ls{min-width:min(calc(260px * var(--pagefind-ui-scale)),100%);flex:1;display:flex;flex-direction:column;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__filter-group.svelte-1v2r7ls.svelte-1v2r7ls{border:0;padding:0}.pagefind-ui__filter-block.svelte-1v2r7ls.svelte-1v2r7ls{padding:0;display:block;border-bottom:solid calc(2px * var(--pagefind-ui-scale)) var(--pagefind-ui-border);padding:calc(20px * var(--pagefind-ui-scale)) 0}.pagefind-ui__filter-name.svelte-1v2r7ls.svelte-1v2r7ls{font-size:calc(16px * var(--pagefind-ui-scale));position:relative;display:flex;align-items:center;list-style:none;font-weight:700;cursor:pointer;height:calc(24px * var(--pagefind-ui-scale))}.pagefind-ui__filter-name.svelte-1v2r7ls.svelte-1v2r7ls::-webkit-details-marker{display:none}.pagefind-ui__filter-name.svelte-1v2r7ls.svelte-1v2r7ls:after{position:absolute;content:"";right:calc(6px * var(--pagefind-ui-scale));top:50%;width:calc(8px * var(--pagefind-ui-scale));height:calc(8px * var(--pagefind-ui-scale));border:solid calc(2px * var(--pagefind-ui-scale)) currentColor;border-right:0;border-top:0;transform:translateY(-70%) rotate(-45deg)}.pagefind-ui__filter-block[open].svelte-1v2r7ls .pagefind-ui__filter-name.svelte-1v2r7ls:after{transform:translateY(-70%) rotate(-225deg)}.pagefind-ui__filter-group.svelte-1v2r7ls.svelte-1v2r7ls{display:flex;flex-direction:column;gap:calc(20px * var(--pagefind-ui-scale));padding-top:calc(30px * var(--pagefind-ui-scale))}.pagefind-ui__filter-value.svelte-1v2r7ls.svelte-1v2r7ls{position:relative;display:flex;align-items:center;gap:calc(8px * var(--pagefind-ui-scale))}.pagefind-ui__filter-value.svelte-1v2r7ls.svelte-1v2r7ls:before{position:absolute;content:"";top:50%;left:calc(8px * var(--pagefind-ui-scale));width:0px;height:0px;border:solid 1px #fff;opacity:0;transform:translate(calc(4.5px * var(--pagefind-ui-scale) * -1),calc(.8px * var(--pagefind-ui-scale))) skew(-5deg) rotate(-45deg);transform-origin:top left;border-top:0;border-right:0;pointer-events:none}.pagefind-ui__filter-value.pagefind-ui__filter-value--checked.svelte-1v2r7ls.svelte-1v2r7ls:before{opacity:1;width:calc(9px * var(--pagefind-ui-scale));height:calc(4px * var(--pagefind-ui-scale));transition:width .1s ease-out .1s,height .1s ease-in}.pagefind-ui__filter-checkbox.svelte-1v2r7ls.svelte-1v2r7ls{margin:0;width:calc(16px * var(--pagefind-ui-scale));height:calc(16px * var(--pagefind-ui-scale));border:solid 1px var(--pagefind-ui-border);appearance:none;-webkit-appearance:none;border-radius:calc(var(--pagefind-ui-border-radius) / 2);background-color:var(--pagefind-ui-background);cursor:pointer}.pagefind-ui__filter-checkbox.svelte-1v2r7ls.svelte-1v2r7ls:checked{background-color:var(--pagefind-ui-primary);border:solid 1px var(--pagefind-ui-primary)}.pagefind-ui__filter-label.svelte-1v2r7ls.svelte-1v2r7ls{cursor:pointer;font-size:calc(16px * var(--pagefind-ui-scale));font-weight:400}.pagefind-ui--reset *:where(:not(html,iframe,canvas,img,svg,video):not(svg *,symbol *)){all:unset;display:revert;outline:revert}.pagefind-ui--reset *,.pagefind-ui--reset *:before,.pagefind-ui--reset *:after{box-sizing:border-box}.pagefind-ui--reset a,.pagefind-ui--reset button{cursor:revert}.pagefind-ui--reset ol,.pagefind-ui--reset ul,.pagefind-ui--reset menu{list-style:none}.pagefind-ui--reset img{max-width:100%}.pagefind-ui--reset table{border-collapse:collapse}.pagefind-ui--reset input,.pagefind-ui--reset textarea{-webkit-user-select:auto}.pagefind-ui--reset textarea{white-space:revert}.pagefind-ui--reset meter{-webkit-appearance:revert;appearance:revert}.pagefind-ui--reset ::placeholder{color:unset}.pagefind-ui--reset :where([hidden]){display:none}.pagefind-ui--reset :where([contenteditable]:not([contenteditable=false])){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:auto}.pagefind-ui--reset :where([draggable=true]){-webkit-user-drag:element}.pagefind-ui--reset mark{all:revert}:root{--pagefind-ui-scale:.8;--pagefind-ui-primary:#393939;--pagefind-ui-text:#393939;--pagefind-ui-background:#ffffff;--pagefind-ui-border:#eeeeee;--pagefind-ui-tag:#eeeeee;--pagefind-ui-border-width:2px;--pagefind-ui-border-radius:8px;--pagefind-ui-image-border-radius:8px;--pagefind-ui-image-box-ratio:3 / 2;--pagefind-ui-font:system, -apple-system, "BlinkMacSystemFont", ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", "Ubuntu", "arial", sans-serif}.pagefind-ui.svelte-e9gkc3{width:100%;color:var(--pagefind-ui-text);font-family:var(--pagefind-ui-font)}.pagefind-ui__hidden.svelte-e9gkc3{display:none!important}.pagefind-ui__suppressed.svelte-e9gkc3{opacity:0;pointer-events:none}.pagefind-ui__form.svelte-e9gkc3{position:relative}.pagefind-ui__form.svelte-e9gkc3:before{background-color:var(--pagefind-ui-text);width:calc(18px * var(--pagefind-ui-scale));height:calc(18px * var(--pagefind-ui-scale));top:calc(23px * var(--pagefind-ui-scale));left:calc(20px * var(--pagefind-ui-scale));content:"";position:absolute;display:block;opacity:.7;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A");mask-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A");-webkit-mask-size:100%;mask-size:100%;z-index:9;pointer-events:none}.pagefind-ui__search-input.svelte-e9gkc3{height:calc(64px * var(--pagefind-ui-scale));padding:0 calc(70px * var(--pagefind-ui-scale)) 0 calc(54px * var(--pagefind-ui-scale));background-color:var(--pagefind-ui-background);border:var(--pagefind-ui-border-width) solid var(--pagefind-ui-border);border-radius:var(--pagefind-ui-border-radius);font-size:calc(21px * var(--pagefind-ui-scale));position:relative;appearance:none;-webkit-appearance:none;display:flex;width:100%;box-sizing:border-box;font-weight:700}.pagefind-ui__search-input.svelte-e9gkc3::placeholder{opacity:.2}.pagefind-ui__search-clear.svelte-e9gkc3{position:absolute;top:calc(3px * var(--pagefind-ui-scale));right:calc(3px * var(--pagefind-ui-scale));height:calc(58px * var(--pagefind-ui-scale));padding:0 calc(15px * var(--pagefind-ui-scale)) 0 calc(2px * var(--pagefind-ui-scale));color:var(--pagefind-ui-text);font-size:calc(14px * var(--pagefind-ui-scale));cursor:pointer;background-color:var(--pagefind-ui-background);border-radius:var(--pagefind-ui-border-radius)}.pagefind-ui__drawer.svelte-e9gkc3{gap:calc(60px * var(--pagefind-ui-scale));display:flex;flex-direction:row;flex-wrap:wrap}.pagefind-ui__results-area.svelte-e9gkc3{min-width:min(calc(400px * var(--pagefind-ui-scale)),100%);flex:1000;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__results.svelte-e9gkc3{padding:0}.pagefind-ui__message.svelte-e9gkc3{box-sizing:content-box;font-size:calc(16px * var(--pagefind-ui-scale));height:calc(24px * var(--pagefind-ui-scale));padding:calc(20px * var(--pagefind-ui-scale)) 0;display:flex;align-items:center;font-weight:700;margin-top:0}.pagefind-ui__button.svelte-e9gkc3{margin-top:calc(40px * var(--pagefind-ui-scale));border:var(--pagefind-ui-border-width) solid var(--pagefind-ui-border);border-radius:var(--pagefind-ui-border-radius);height:calc(48px * var(--pagefind-ui-scale));padding:0 calc(12px * var(--pagefind-ui-scale));font-size:calc(16px * var(--pagefind-ui-scale));color:var(--pagefind-ui-primary);background:var(--pagefind-ui-background);width:100%;text-align:center;font-weight:700;cursor:pointer}.pagefind-ui__button.svelte-e9gkc3:hover{border-color:var(--pagefind-ui-primary);color:var(--pagefind-ui-primary);background:var(--pagefind-ui-background)}[data-search-modal-open]{overflow:hidden}#starlight__search{--sl-search-result-spacing: calc(1.25rem * var(--pagefind-ui-scale));--sl-search-result-pad-inline-start: calc(3.75rem * var(--pagefind-ui-scale));--sl-search-result-pad-inline-end: calc(1.25rem * var(--pagefind-ui-scale));--sl-search-result-pad-block: calc(.9375rem * var(--pagefind-ui-scale));--sl-search-result-nested-pad-block: calc(.625rem * var(--pagefind-ui-scale));--sl-search-corners: calc(.3125rem * var(--pagefind-ui-scale));--sl-search-page-icon-size: calc(1.875rem * var(--pagefind-ui-scale));--sl-search-page-icon-inline-start: calc( (var(--sl-search-result-pad-inline-start) - var(--sl-search-page-icon-size)) / 2 );--sl-search-tree-diagram-size: calc(2.5rem * var(--pagefind-ui-scale));--sl-search-tree-diagram-inline-start: calc( (var(--sl-search-result-pad-inline-start) - var(--sl-search-tree-diagram-size)) / 2 )}#starlight__search .pagefind-ui__form:before{--pagefind-ui-text: var(--sl-color-gray-1);opacity:1}#starlight__search .pagefind-ui__search-input{color:var(--sl-color-white);font-weight:400;width:calc(100% - var(--sl-search-cancel-space))}#starlight__search input:focus{--pagefind-ui-border: var(--sl-color-accent)}#starlight__search .pagefind-ui__search-clear{inset-inline-end:var(--sl-search-cancel-space);width:calc(60px * var(--pagefind-ui-scale));padding:0;background-color:transparent;overflow:hidden}#starlight__search .pagefind-ui__search-clear:focus{outline:1px solid var(--sl-color-accent)}#starlight__search .pagefind-ui__search-clear:before{content:"";-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m13.41 12 6.3-6.29a1 1 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1 1 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 .33 1.64 1 1 0 0 0 1.09-.22l6.29-6.3 6.29 6.3a1 1 0 0 0 1.64-.33 1 1 0 0 0-.22-1.09L13.41 12Z'/%3E%3C/svg%3E") center / 50% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m13.41 12 6.3-6.29a1 1 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1 1 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 .33 1.64 1 1 0 0 0 1.09-.22l6.29-6.3 6.29 6.3a1 1 0 0 0 1.64-.33 1 1 0 0 0-.22-1.09L13.41 12Z'/%3E%3C/svg%3E") center / 50% no-repeat;background-color:var(--sl-color-text-accent);display:block;width:100%;height:100%}#starlight__search .pagefind-ui__results>*+*{margin-top:var(--sl-search-result-spacing)}#starlight__search .pagefind-ui__result{border:0;padding:0}#starlight__search .pagefind-ui__result-nested{position:relative;padding:var(--sl-search-result-nested-pad-block) var(--sl-search-result-pad-inline-end);padding-inline-start:var(--sl-search-result-pad-inline-start)}#starlight__search .pagefind-ui__result-title:not(:where(.pagefind-ui__result-nested *)),#starlight__search .pagefind-ui__result-nested{position:relative;background-color:var(--sl-color-black)}#starlight__search .pagefind-ui__result-title:not(:where(.pagefind-ui__result-nested *)):hover,#starlight__search .pagefind-ui__result-title:not(:where(.pagefind-ui__result-nested *)):focus-within,#starlight__search .pagefind-ui__result-nested:hover,#starlight__search .pagefind-ui__result-nested:focus-within{outline:1px solid var(--sl-color-accent-high)}#starlight__search .pagefind-ui__result-title:not(:where(.pagefind-ui__result-nested *)):focus-within,#starlight__search .pagefind-ui__result-nested:focus-within{background-color:var(--sl-color-accent-low)}#starlight__search .pagefind-ui__result-thumb,#starlight__search .pagefind-ui__result-inner{margin-top:0}#starlight__search .pagefind-ui__result-inner>:first-child{border-radius:var(--sl-search-corners) var(--sl-search-corners) 0 0}#starlight__search .pagefind-ui__result-inner>:last-child{border-radius:0 0 var(--sl-search-corners) var(--sl-search-corners)}#starlight__search .pagefind-ui__result-inner>.pagefind-ui__result-title{padding:var(--sl-search-result-pad-block) var(--sl-search-result-pad-inline-end);padding-inline-start:var(--sl-search-result-pad-inline-start)}#starlight__search .pagefind-ui__result-inner>.pagefind-ui__result-title:before{content:"";position:absolute;inset-block:0;inset-inline-start:var(--sl-search-page-icon-inline-start);width:var(--sl-search-page-icon-size);background:var(--sl-color-gray-3);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='M9 10h1a1 1 0 1 0 0-2H9a1 1 0 0 0 0 2Zm0 2a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2H9Zm11-3V8l-6-6a1 1 0 0 0-1 0H7a3 3 0 0 0-3 3v14a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3V9Zm-6-4 3 3h-2a1 1 0 0 1-1-1V5Zm4 14a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h5v3a3 3 0 0 0 3 3h3v9Zm-3-3H9a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2Z'/%3E%3C/svg%3E") center no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='M9 10h1a1 1 0 1 0 0-2H9a1 1 0 0 0 0 2Zm0 2a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2H9Zm11-3V8l-6-6a1 1 0 0 0-1 0H7a3 3 0 0 0-3 3v14a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3V9Zm-6-4 3 3h-2a1 1 0 0 1-1-1V5Zm4 14a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h5v3a3 3 0 0 0 3 3h3v9Zm-3-3H9a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2Z'/%3E%3C/svg%3E") center no-repeat}#starlight__search .pagefind-ui__result-inner{align-items:stretch;gap:1px}#starlight__search .pagefind-ui__result-link{position:unset;--pagefind-ui-text: var(--sl-color-white);font-weight:600}#starlight__search .pagefind-ui__result-link:hover{text-decoration:none}#starlight__search .pagefind-ui__result-nested .pagefind-ui__result-link:before{content:unset}#starlight__search .pagefind-ui__result-nested:before{content:"";position:absolute;inset-block:0;inset-inline-start:var(--sl-search-tree-diagram-inline-start);width:var(--sl-search-tree-diagram-size);background:var(--sl-color-gray-4);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' viewBox='0 0 16 1000' preserveAspectRatio='xMinYMin slice'%3E%3Cpath d='M8 0v1000m6-988H8'/%3E%3C/svg%3E") 0% 0% / 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' viewBox='0 0 16 1000' preserveAspectRatio='xMinYMin slice'%3E%3Cpath d='M8 0v1000m6-988H8'/%3E%3C/svg%3E") 0% 0% / 100% no-repeat}#starlight__search .pagefind-ui__result-nested:last-child:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 16 16'%3E%3Cpath d='M8 0v12m6 0H8'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 16 16'%3E%3Cpath d='M8 0v12m6 0H8'/%3E%3C/svg%3E")}[dir=rtl] .pagefind-ui__result-title:before,[dir=rtl] .pagefind-ui__result-nested:before{transform:scaleX(-1)}#starlight__search .pagefind-ui__result-link:after{content:"";position:absolute;inset:0}#starlight__search .pagefind-ui__result-excerpt{font-size:calc(1rem * var(--pagefind-ui-scale));overflow-wrap:anywhere}#starlight__search mark{color:var(--sl-color-gray-2);background-color:transparent;font-weight:600}site-search:where(.astro-4kdiblpm){display:contents}button:where(.astro-4kdiblpm)[data-open-modal]{display:flex;align-items:center;gap:.5rem;border:0;background-color:transparent;color:var(--sl-color-gray-1);cursor:pointer;height:2.5rem;font-size:var(--sl-text-xl)}@media (min-width: 50rem){button:where(.astro-4kdiblpm)[data-open-modal]{border:1px solid var(--sl-color-gray-5);border-radius:.5rem;padding-inline-start:.75rem;padding-inline-end:1rem;background-color:var(--sl-color-black);color:var(--sl-color-gray-2);font-size:var(--sl-text-sm);width:100%;max-width:22rem}button:where(.astro-4kdiblpm)[data-open-modal]:hover{border-color:var(--sl-color-gray-2);color:var(--sl-color-white)}button:where(.astro-4kdiblpm)[data-open-modal]>:last-child:where(.astro-4kdiblpm){margin-inline-start:auto}}dialog:where(.astro-4kdiblpm){margin:0;background-color:var(--sl-color-gray-6);border:1px solid var(--sl-color-gray-5);width:100%;max-width:100%;height:100%;max-height:100%;box-shadow:var(--sl-shadow-lg)}dialog:where(.astro-4kdiblpm)[open]{display:grid}dialog:where(.astro-4kdiblpm)::backdrop{background-color:var(--sl-color-backdrop-overlay);-webkit-backdrop-filter:blur(.25rem);backdrop-filter:blur(.25rem)}.dialog-frame:where(.astro-4kdiblpm){flex-direction:column;gap:1rem;padding:1rem}button:where(.astro-4kdiblpm)[data-close-modal]{position:absolute;z-index:1;align-items:center;align-self:flex-end;height:calc(64px * var(--pagefind-ui-scale));padding:.25rem;border:0;background:transparent;cursor:pointer;color:var(--sl-color-text-accent)}#starlight__search:where(.astro-4kdiblpm){--pagefind-ui-primary: var(--sl-color-accent-light);--pagefind-ui-text: var(--sl-color-gray-2);--pagefind-ui-font: var(--__sl-font);--pagefind-ui-background: var(--sl-color-black);--pagefind-ui-border: var(--sl-color-gray-5);--pagefind-ui-border-width: 1px;--sl-search-cancel-space: 5rem}@media (min-width: 50rem){#starlight__search:where(.astro-4kdiblpm){--sl-search-cancel-space: 0px}dialog:where(.astro-4kdiblpm){margin:4rem auto auto;border-radius:.5rem;width:90%;max-width:40rem;height:max-content;min-height:15rem;max-height:calc(100% - 8rem)}.dialog-frame:where(.astro-4kdiblpm){padding:1.5rem}}.site-title:where(.astro-wqx6uctx){align-items:center;gap:var(--sl-nav-gap);font-size:var(--sl-text-h4);font-weight:600;color:var(--sl-color-text-accent);text-decoration:none;white-space:nowrap}img:where(.astro-wqx6uctx){height:calc(var(--sl-nav-height) - 2 * var(--sl-nav-pad-y));width:auto;max-width:100%;object-fit:contain;object-position:0 50%}a:where(.astro-5rzpyyys){color:var(--sl-color-text-accent);padding:.5em;margin:-.5em}a:where(.astro-5rzpyyys):hover{opacity:.66}.header:where(.astro-df3idufi){gap:var(--sl-nav-gap);justify-content:space-between;align-items:center;height:100%}.title-wrapper:where(.astro-df3idufi){overflow:hidden}.right-group:where(.astro-df3idufi),.social-icons:where(.astro-df3idufi){gap:1rem;align-items:center}.social-icons:where(.astro-df3idufi):after{content:"";height:2rem;border-inline-end:1px solid var(--sl-color-gray-5)}@media (min-width: 50rem){:root[data-has-sidebar]{--__sidebar-pad: calc(2 * var(--sl-nav-pad-x))}:root:not([data-has-toc]){--__toc-width: 0rem}.header:where(.astro-df3idufi){--__sidebar-width: max(0rem, var(--sl-content-inline-start, 0rem) - var(--sl-nav-pad-x));--__main-column-fr: calc( ( 100% + var(--__sidebar-pad, 0rem) - var(--__toc-width, var(--sl-sidebar-width)) - (2 * var(--__toc-width, var(--sl-nav-pad-x))) - var(--sl-content-inline-start, 0rem) - var(--sl-content-width) ) / 2 );display:grid;grid-template-columns:minmax(calc(var(--__sidebar-width) + max(0rem,var(--__main-column-fr) - var(--sl-nav-gap))),auto) 1fr auto;align-content:center}}.action:where(.astro-4hvarjcd){gap:.5em;align-items:center;border-radius:999rem;padding:.5rem 1.125rem;color:var(--sl-color-white);line-height:1.1875;text-decoration:none;font-size:var(--sl-text-sm)}.action:where(.astro-4hvarjcd).primary{background:var(--sl-color-text-accent);color:var(--sl-color-black)}.action:where(.astro-4hvarjcd).secondary{border:1px solid}.action:where(.astro-4hvarjcd).minimal{padding-inline:0}@media (min-width: 50rem){.action:where(.astro-4hvarjcd){font-size:var(--sl-text-base);padding:1rem 1.25rem}}.hero:where(.astro-lmq6dswd){display:grid;align-items:center;gap:1rem;padding-bottom:1rem}.hero:where(.astro-lmq6dswd)>img:where(.astro-lmq6dswd),.hero:where(.astro-lmq6dswd)>.hero-html:where(.astro-lmq6dswd){object-fit:contain;width:min(70%,20rem);height:auto;margin-inline:auto}.stack:where(.astro-lmq6dswd){flex-direction:column;gap:clamp(1.5rem,calc(1.5rem + 1vw),2rem);text-align:center}.copy:where(.astro-lmq6dswd){flex-direction:column;gap:1rem;align-items:center}.copy:where(.astro-lmq6dswd)>:where(.astro-lmq6dswd){max-width:50ch}h1:where(.astro-lmq6dswd){font-size:clamp(var(--sl-text-3xl),calc(.25rem + 5vw),var(--sl-text-6xl));line-height:var(--sl-line-height-headings);font-weight:600;color:var(--sl-color-white)}.tagline:where(.astro-lmq6dswd){font-size:clamp(var(--sl-text-base),calc(.0625rem + 2vw),var(--sl-text-xl));color:var(--sl-color-gray-2)}.actions:where(.astro-lmq6dswd){gap:1rem 2rem;flex-wrap:wrap;justify-content:center}@media (min-width: 50rem){.hero:where(.astro-lmq6dswd){grid-template-columns:7fr 4fr;gap:3%;padding-block:clamp(2.5rem,calc(1rem + 10vmin),10rem)}.hero:where(.astro-lmq6dswd)>img:where(.astro-lmq6dswd),.hero:where(.astro-lmq6dswd)>.hero-html:where(.astro-lmq6dswd){order:2;width:min(100%,25rem)}.stack:where(.astro-lmq6dswd){text-align:start}.copy:where(.astro-lmq6dswd){align-items:flex-start}.actions:where(.astro-lmq6dswd){justify-content:flex-start}}.sl-markdown-content :not(a,strong,em,del,span,input,code)+:not(a,strong,em,del,span,input,code,:where(.not-content *)){margin-top:1rem}.sl-markdown-content :not(h1,h2,h3,h4,h5,h6)+:is(h1,h2,h3,h4,h5,h6):not(:where(.not-content *)){margin-top:1.5em}.sl-markdown-content li+li:not(:where(.not-content *)),.sl-markdown-content dt+dt:not(:where(.not-content *)),.sl-markdown-content dt+dd:not(:where(.not-content *)),.sl-markdown-content dd+dd:not(:where(.not-content *)){margin-top:.25rem}.sl-markdown-content li>:last-child:not(li,ul,ol):not(a,strong,em,del,span,input,:where(.not-content *)){margin-bottom:1.25rem}.sl-markdown-content dt:not(:where(.not-content *)){font-weight:700}.sl-markdown-content dd:not(:where(.not-content *)){padding-inline-start:1rem}.sl-markdown-content :is(h1,h2,h3,h4,h5,h6):not(:where(.not-content *)){color:var(--sl-color-white);line-height:var(--sl-line-height-headings);font-weight:600}.sl-markdown-content :is(img,picture,video,canvas,svg,iframe):not(:where(.not-content *)){display:block;max-width:100%;height:auto}.sl-markdown-content h1:not(:where(.not-content *)){font-size:var(--sl-text-h1)}.sl-markdown-content h2:not(:where(.not-content *)){font-size:var(--sl-text-h2)}.sl-markdown-content h3:not(:where(.not-content *)){font-size:var(--sl-text-h3)}.sl-markdown-content h4:not(:where(.not-content *)){font-size:var(--sl-text-h4)}.sl-markdown-content h5:not(:where(.not-content *)){font-size:var(--sl-text-h5)}.sl-markdown-content h6:not(:where(.not-content *)){font-size:var(--sl-text-h6)}.sl-markdown-content a:not(:where(.not-content *)){color:var(--sl-color-text-accent)}.sl-markdown-content a:hover:not(:where(.not-content *)){color:var(--sl-color-white)}.sl-markdown-content code:not(:where(.not-content *)){background-color:var(--sl-color-bg-inline-code);margin-block:-.125rem;padding:.125rem .375rem;font-size:var(--sl-text-code-sm)}.sl-markdown-content :is(h1,h2,h3,h4,h5,h6) code{font-size:inherit}.sl-markdown-content pre:not(:where(.not-content *)){border:1px solid var(--sl-color-gray-5);padding:.75rem 1rem;font-size:var(--sl-text-code);tab-size:2}.sl-markdown-content pre code:not(:where(.not-content *)){all:unset;font-family:var(--__sl-font-mono)}.sl-markdown-content blockquote:not(:where(.not-content *)){border-inline-start:1px solid var(--sl-color-gray-5);padding-inline-start:1rem}.sl-markdown-content table:not(:where(.not-content *)){display:block;overflow:auto;border-collapse:collapse}.sl-markdown-content tr:nth-child(2n):not(:where(.not-content *)){background-color:var(--sl-color-gray-7, var(--sl-color-gray-6))}.sl-markdown-content :is(th,td):not(:where(.not-content *)){border:1px solid var(--sl-color-hairline-light);padding:.375rem .8125rem}.sl-markdown-content hr:not(:where(.not-content *)){border:0;border-bottom:1px solid var(--sl-color-hairline)}[data-mobile-menu-expanded]{overflow:hidden}@media (min-width: 50rem){[data-mobile-menu-expanded]{overflow:auto}}button:where(.astro-3fhzcwui){position:fixed;top:calc((var(--sl-nav-height) - var(--sl-menu-button-size)) / 2);inset-inline-end:var(--sl-nav-pad-x);z-index:var(--sl-z-index-navbar);border:0;border-radius:50%;width:var(--sl-menu-button-size);height:var(--sl-menu-button-size);padding:.5rem;background-color:var(--sl-color-white);color:var(--sl-color-black);box-shadow:var(--sl-shadow-md);cursor:pointer}:where(.astro-3fhzcwui)[aria-expanded=true] button:where(.astro-3fhzcwui){background-color:var(--sl-color-gray-2);box-shadow:none}[data-theme=light] button:where(.astro-3fhzcwui){background-color:var(--sl-color-black);color:var(--sl-color-white)}[data-theme=light] :where(.astro-3fhzcwui)[aria-expanded=true] button:where(.astro-3fhzcwui){background-color:var(--sl-color-gray-5)}.page:where(.astro-qr7fsd42){flex-direction:column;min-height:100vh}.header:where(.astro-qr7fsd42){z-index:var(--sl-z-index-navbar);position:fixed;inset-inline-start:0;inset-block-start:0;width:100%;height:var(--sl-nav-height);border-bottom:1px solid var(--sl-color-hairline-shade);padding:var(--sl-nav-pad-y) var(--sl-nav-pad-x);padding-inline-end:var(--sl-nav-pad-x);background-color:var(--sl-color-bg-nav)}[data-has-sidebar] .header:where(.astro-qr7fsd42){padding-inline-end:calc(var(--sl-nav-gap) + var(--sl-nav-pad-x) + var(--sl-menu-button-size))}.sidebar-pane:where(.astro-qr7fsd42){visibility:var(--sl-sidebar-visibility, hidden);position:fixed;z-index:var(--sl-z-index-menu);inset-block:var(--sl-nav-height) 0;inset-inline-start:0;width:100%;background-color:var(--sl-color-black);overflow-y:auto}[aria-expanded=true]~.sidebar-pane:where(.astro-qr7fsd42){--sl-sidebar-visibility: visible}.sidebar-content:where(.astro-qr7fsd42){height:100%;min-height:max-content;padding:1rem var(--sl-sidebar-pad-x) 0;flex-direction:column;gap:1rem}@media (min-width: 50rem){.sidebar-content:where(.astro-qr7fsd42):after{content:"";padding-bottom:1px}}.main-frame:where(.astro-qr7fsd42){padding-top:calc(var(--sl-nav-height) + var(--sl-mobile-toc-height));padding-inline-start:var(--sl-content-inline-start)}@media (min-width: 50rem){[data-has-sidebar] .header:where(.astro-qr7fsd42){padding-inline-end:var(--sl-nav-pad-x)}.sidebar-pane:where(.astro-qr7fsd42){--sl-sidebar-visibility: visible;width:var(--sl-sidebar-width);background-color:var(--sl-color-bg-sidebar);border-inline-end:1px solid var(--sl-color-hairline-shade)}}ul:where(.astro-2fy74cnn){padding:0;list-style:none}a:where(.astro-2fy74cnn){--pad-inline: .5rem;display:block;border-radius:.25rem;padding-block:.25rem;padding-inline:calc(1rem * var(--depth) + var(--pad-inline)) var(--pad-inline);line-height:1.25}a:where(.astro-2fy74cnn)[aria-current=true]{color:var(--sl-color-text-accent)}.isMobile:where(.astro-2fy74cnn) a:where(.astro-2fy74cnn){--pad-inline: 1rem;display:flex;justify-content:space-between;gap:var(--pad-inline);border-top:1px solid var(--sl-color-gray-6);border-radius:0;padding-block:.5rem;color:var(--sl-color-text);font-size:var(--sl-text-sm);text-decoration:none;outline-offset:var(--sl-outline-offset-inside)}.isMobile:where(.astro-2fy74cnn):first-child>li:where(.astro-2fy74cnn):first-child>a:where(.astro-2fy74cnn){border-top:0}.isMobile:where(.astro-2fy74cnn) a:where(.astro-2fy74cnn)[aria-current=true],.isMobile:where(.astro-2fy74cnn) a:where(.astro-2fy74cnn)[aria-current=true]:hover,.isMobile:where(.astro-2fy74cnn) a:where(.astro-2fy74cnn)[aria-current=true]:focus{color:var(--sl-color-white);background-color:unset}.isMobile:where(.astro-2fy74cnn) a:where(.astro-2fy74cnn)[aria-current=true]:after{content:"";width:1rem;background-color:var(--sl-color-text-accent);-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNCAxNCc+PHBhdGggZD0nTTEwLjkxNCA0LjIwNmEuNTgzLjU4MyAwIDAgMC0uODI4IDBMNS43NCA4LjU1NyAzLjkxNCA2LjcyNmEuNTk2LjU5NiAwIDAgMC0uODI4Ljg1N2wyLjI0IDIuMjRhLjU4My41ODMgMCAwIDAgLjgyOCAwbDQuNzYtNC43NmEuNTgzLjU4MyAwIDAgMCAwLS44NTdaJy8+PC9zdmc+Cg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNCAxNCc+PHBhdGggZD0nTTEwLjkxNCA0LjIwNmEuNTgzLjU4MyAwIDAgMC0uODI4IDBMNS43NCA4LjU1NyAzLjkxNCA2LjcyNmEuNTk2LjU5NiAwIDAgMC0uODI4Ljg1N2wyLjI0IDIuMjRhLjU4My41ODMgMCAwIDAgLjgyOCAwbDQuNzYtNC43NmEuNTgzLjU4MyAwIDAgMCAwLS44NTdaJy8+PC9zdmc+Cg==);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;flex-shrink:0}nav:where(.astro-gglvirtu){position:fixed;z-index:var(--sl-z-index-toc);top:calc(var(--sl-nav-height) - 1px);inset-inline:0;border-top:1px solid var(--sl-color-gray-5);background-color:var(--sl-color-bg-nav)}@media (min-width: 50rem){nav:where(.astro-gglvirtu){inset-inline-start:var(--sl-content-inline-start, 0)}}summary:where(.astro-gglvirtu){gap:.5rem;align-items:center;height:var(--sl-mobile-toc-height);border-bottom:1px solid var(--sl-color-hairline-shade);padding:.5rem 1rem;font-size:var(--sl-text-xs);outline-offset:var(--sl-outline-offset-inside)}summary:where(.astro-gglvirtu)::marker,summary:where(.astro-gglvirtu)::-webkit-details-marker{display:none}.toggle:where(.astro-gglvirtu){flex-shrink:0;gap:1rem;align-items:center;justify-content:space-between;border:1px solid var(--sl-color-gray-5);border-radius:.5rem;padding-block:.5rem;padding-inline-start:.75rem;padding-inline-end:.5rem;line-height:1;background-color:var(--sl-color-black);user-select:none;cursor:pointer}details:where(.astro-gglvirtu)[open] .toggle:where(.astro-gglvirtu){color:var(--sl-color-white);border-color:var(--sl-color-accent)}details:where(.astro-gglvirtu) .toggle:where(.astro-gglvirtu):hover{color:var(--sl-color-white);border-color:var(--sl-color-gray-2)}[dir=rtl] .caret:where(.astro-gglvirtu){transform:rotate(180deg)}details:where(.astro-gglvirtu)[open] .caret:where(.astro-gglvirtu){transform:rotate(90deg)}.display-current:where(.astro-gglvirtu){white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:var(--sl-color-white)}.dropdown:where(.astro-gglvirtu){--border-top: 1px;margin-top:calc(-1 * var(--border-top));border:var(--border-top) solid var(--sl-color-gray-6);border-top-color:var(--sl-color-hairline-shade);max-height:calc(85vh - var(--sl-nav-height) - var(--sl-mobile-toc-height));overflow-y:auto;background-color:var(--sl-color-black);box-shadow:var(--sl-shadow-md);overscroll-behavior:contain}.right-sidebar-panel:where(.astro-x77jbna7){padding:1rem var(--sl-sidebar-pad-x)}.sl-container:where(.astro-x77jbna7){width:calc(var(--sl-sidebar-width) - 2 * var(--sl-sidebar-pad-x))}.right-sidebar-panel:where(.astro-x77jbna7) h2{color:var(--sl-color-white);font-size:var(--sl-text-h5);font-weight:600;line-height:var(--sl-line-height-headings);margin-bottom:.5rem}.right-sidebar-panel:where(.astro-x77jbna7) :where(a){display:block;font-size:var(--sl-text-xs);text-decoration:none;color:var(--sl-color-gray-3);overflow-wrap:anywhere}.right-sidebar-panel:where(.astro-x77jbna7) :where(a):hover{color:var(--sl-color-white)}@media (min-width: 72rem){.sl-container:where(.astro-x77jbna7){max-width:calc(((100vw - var(--sl-sidebar-width) - 2 * var(--sl-content-pad-x) - 2 * var(--sl-sidebar-pad-x)) * .25))}}h1:where(.astro-cvflhi7y){margin-top:1rem;font-size:var(--sl-text-h1);line-height:var(--sl-line-height-headings);font-weight:600;color:var(--sl-color-white)}.social-icons:where(.astro-r7woj7uk){margin-inline-end:auto;gap:1rem;align-items:center;padding-block:1rem}.social-icons:where(.astro-r7woj7uk):empty{display:none}.mobile-preferences:where(.astro-r7woj7uk){justify-content:space-between;flex-wrap:wrap;border-top:1px solid var(--sl-color-gray-6);column-gap:1rem;padding:.5rem 0}.sl-badge:where(.astro-u7ufqonz){display:inline-block;border:1px solid var(--sl-color-border-badge);border-radius:.25rem;font-family:var(--sl-font-system-mono);font-size:var(--sl-text-xs);font-weight:400;padding:.125rem .375rem;line-height:1;color:#fff;background-color:var(--sl-color-bg-badge);overflow-wrap:anywhere}.outline:where(.astro-u7ufqonz){--sl-color-bg-badge: transparent;--sl-color-border-badge: currentColor;color:inherit}.default:where(.astro-u7ufqonz){--sl-color-bg-badge: var(--sl-color-accent-low);--sl-color-border-badge: var(--sl-color-accent)}.note:where(.astro-u7ufqonz){--sl-color-bg-badge: var(--sl-color-blue-low);--sl-color-border-badge: var(--sl-color-blue)}.danger:where(.astro-u7ufqonz){--sl-color-bg-badge: var(--sl-color-red-low);--sl-color-border-badge: var(--sl-color-red)}.success:where(.astro-u7ufqonz){--sl-color-bg-badge: var(--sl-color-green-low);--sl-color-border-badge: var(--sl-color-green)}.caution:where(.astro-u7ufqonz){--sl-color-bg-badge: var(--sl-color-orange-low);--sl-color-border-badge: var(--sl-color-orange)}.tip:where(.astro-u7ufqonz){--sl-color-bg-badge: var(--sl-color-purple-low);--sl-color-border-badge: var(--sl-color-purple)}[data-theme=light] .default:where(.astro-u7ufqonz){--sl-color-bg-badge: var(--sl-color-accent-high)}[data-theme=light] .note:where(.astro-u7ufqonz){--sl-color-bg-badge: var(--sl-color-blue-high)}[data-theme=light] .danger:where(.astro-u7ufqonz){--sl-color-bg-badge: var(--sl-color-red-high)}[data-theme=light] .success:where(.astro-u7ufqonz){--sl-color-bg-badge: var(--sl-color-green-high)}[data-theme=light] .caution:where(.astro-u7ufqonz){--sl-color-bg-badge: var(--sl-color-orange-high)}[data-theme=light] .tip:where(.astro-u7ufqonz){--sl-color-bg-badge: var(--sl-color-purple-high)}ul:where(.astro-tfysjyn6){--sl-sidebar-item-padding-inline: .5rem;list-style:none;padding:0}li:where(.astro-tfysjyn6){overflow-wrap:anywhere}ul:where(.astro-tfysjyn6) ul:where(.astro-tfysjyn6) li:where(.astro-tfysjyn6){margin-inline-start:var(--sl-sidebar-item-padding-inline);border-inline-start:1px solid var(--sl-color-hairline-light);padding-inline-start:var(--sl-sidebar-item-padding-inline)}.large:where(.astro-tfysjyn6){font-size:var(--sl-text-lg);font-weight:600;color:var(--sl-color-white)}.top-level:where(.astro-tfysjyn6)>li:where(.astro-tfysjyn6)+li:where(.astro-tfysjyn6){margin-top:.75rem}summary:where(.astro-tfysjyn6){display:flex;align-items:center;justify-content:space-between;padding:.2em var(--sl-sidebar-item-padding-inline);line-height:1.4;cursor:pointer;user-select:none}summary:where(.astro-tfysjyn6)::marker,summary:where(.astro-tfysjyn6)::-webkit-details-marker{display:none}.caret:where(.astro-tfysjyn6){transition:transform .2s ease-in-out;flex-shrink:0}[dir=rtl] .caret:where(.astro-tfysjyn6){transform:rotate(180deg)}:where(.astro-tfysjyn6)[open]>summary:where(.astro-tfysjyn6) .caret:where(.astro-tfysjyn6){transform:rotate(90deg)}a:where(.astro-tfysjyn6){display:block;border-radius:.25rem;text-decoration:none;color:var(--sl-color-gray-2);padding:.3em var(--sl-sidebar-item-padding-inline);line-height:1.4}a:where(.astro-tfysjyn6):hover,a:where(.astro-tfysjyn6):focus{color:var(--sl-color-white)}:where(.astro-tfysjyn6)[aria-current=page],:where(.astro-tfysjyn6)[aria-current=page]:hover,:where(.astro-tfysjyn6)[aria-current=page]:focus{font-weight:600;color:var(--sl-color-text-invert);background-color:var(--sl-color-text-accent)}a:where(.astro-tfysjyn6)>:where(.astro-tfysjyn6):not(:last-child),.group-label:where(.astro-tfysjyn6)>:where(.astro-tfysjyn6):not(:last-child){margin-inline-end:.25em}@media (min-width: 50rem){.top-level:where(.astro-tfysjyn6)>li:where(.astro-tfysjyn6)+li:where(.astro-tfysjyn6){margin-top:.5rem}.large:where(.astro-tfysjyn6){font-size:var(--sl-text-base)}a:where(.astro-tfysjyn6){font-size:var(--sl-text-sm)}}a:where(.astro-yfd4ow64){clip:rect(0,0,0,0);position:fixed;top:.75rem;inset-inline-start:.75rem}a:where(.astro-yfd4ow64):focus{clip:unset;z-index:var(--sl-z-index-skiplink);display:block;padding:.5rem 1rem;text-decoration:none;color:var(--sl-color-text-invert);background-color:var(--sl-color-text-accent);box-shadow:var(--sl-shadow-lg)}.main-pane:where(.astro-mek6mk4a){isolation:isolate}@media (min-width: 72rem){.right-sidebar-container:where(.astro-mek6mk4a){order:2;position:relative;width:calc(var(--sl-sidebar-width) + (100% - var(--sl-content-width) - var(--sl-sidebar-width)) / 2)}.right-sidebar:where(.astro-mek6mk4a){position:fixed;top:0;border-inline-start:1px solid var(--sl-color-gray-6);padding-top:var(--sl-nav-height);width:100%;height:100vh;overflow-y:auto;scrollbar-width:none}.main-pane:where(.astro-mek6mk4a){width:100%}[data-has-sidebar][data-has-toc] .main-pane:where(.astro-mek6mk4a){--sl-content-margin-inline: auto 0;order:1;width:calc(var(--sl-content-width) + (100% - var(--sl-content-width) - var(--sl-sidebar-width)) / 2)}}.starlight-aside{padding:1rem;border-inline-start:.25rem solid;color:var(--sl-color-white)}.starlight-aside--note{--sl-color-asides-text-accent: var(--sl-color-blue-high);border-color:var(--sl-color-blue);background-color:var(--sl-color-blue-low)}.starlight-aside--tip{--sl-color-asides-text-accent: var(--sl-color-purple-high);border-color:var(--sl-color-purple);background-color:var(--sl-color-purple-low)}.starlight-aside--caution{--sl-color-asides-text-accent: var(--sl-color-orange-high);border-color:var(--sl-color-orange);background-color:var(--sl-color-orange-low)}.starlight-aside--danger{--sl-color-asides-text-accent: var(--sl-color-red-high);border-color:var(--sl-color-red);background-color:var(--sl-color-red-low)}.starlight-aside__title{display:flex;gap:.5rem;align-items:center;font-size:var(--sl-text-h5);font-weight:600;line-height:var(--sl-line-height-headings);color:var(--sl-color-asides-text-accent)}.starlight-aside__icon{font-size:1.333em;width:1em;height:1em}.starlight-aside__title+.starlight-aside__content{margin-top:.5rem}.starlight-aside__content a{color:var(--sl-color-asides-text-accent)}html:not([data-has-toc]){--sl-mobile-toc-height: 0rem}html:not([data-has-sidebar]){--sl-content-width: 67.5rem}html{scroll-padding-top:calc(1.5rem + var(--sl-nav-height) + var(--sl-mobile-toc-height))}main:where(.astro-hod7oots){padding-bottom:3vh}@media (min-width: 50em){:where(.astro-hod7oots)[data-has-sidebar]{--sl-content-inline-start: var(--sl-sidebar-width)}}@media (min-width: 72em){html{scroll-padding-top:calc(1.5rem + var(--sl-nav-height))}} diff --git a/dist/_astro/index.v35P8btW.css b/dist/_astro/index.v35P8btW.css new file mode 100644 index 0000000..a3ac797 --- /dev/null +++ b/dist/_astro/index.v35P8btW.css @@ -0,0 +1 @@ +:root,::backdrop{--sl-color-white: hsl(0, 0%, 100%);--sl-color-gray-1: hsl(224, 20%, 94%);--sl-color-gray-2: hsl(224, 6%, 77%);--sl-color-gray-3: hsl(224, 6%, 56%);--sl-color-gray-4: hsl(224, 7%, 36%);--sl-color-gray-5: hsl(224, 10%, 23%);--sl-color-gray-6: hsl(224, 14%, 16%);--sl-color-black: hsl(224, 10%, 10%);--sl-hue-orange: 41;--sl-color-orange-low: hsl(var(--sl-hue-orange), 39%, 22%);--sl-color-orange: hsl(var(--sl-hue-orange), 82%, 63%);--sl-color-orange-high: hsl(var(--sl-hue-orange), 82%, 87%);--sl-hue-green: 101;--sl-color-green-low: hsl(var(--sl-hue-green), 39%, 22%);--sl-color-green: hsl(var(--sl-hue-green), 82%, 63%);--sl-color-green-high: hsl(var(--sl-hue-green), 82%, 80%);--sl-hue-blue: 234;--sl-color-blue-low: hsl(var(--sl-hue-blue), 54%, 20%);--sl-color-blue: hsl(var(--sl-hue-blue), 100%, 60%);--sl-color-blue-high: hsl(var(--sl-hue-blue), 100%, 87%);--sl-hue-purple: 281;--sl-color-purple-low: hsl(var(--sl-hue-purple), 39%, 22%);--sl-color-purple: hsl(var(--sl-hue-purple), 82%, 63%);--sl-color-purple-high: hsl(var(--sl-hue-purple), 82%, 89%);--sl-hue-red: 339;--sl-color-red-low: hsl(var(--sl-hue-red), 39%, 22%);--sl-color-red: hsl(var(--sl-hue-red), 82%, 63%);--sl-color-red-high: hsl(var(--sl-hue-red), 82%, 87%);--sl-color-accent-low: hsl(224, 54%, 20%);--sl-color-accent: hsl(224, 100%, 60%);--sl-color-accent-high: hsl(224, 100%, 85%);--sl-color-text: var(--sl-color-gray-2);--sl-color-text-accent: var(--sl-color-accent-high);--sl-color-text-invert: var(--sl-color-accent-low);--sl-color-bg: var(--sl-color-black);--sl-color-bg-nav: var(--sl-color-gray-6);--sl-color-bg-sidebar: var(--sl-color-gray-6);--sl-color-bg-inline-code: var(--sl-color-gray-5);--sl-color-bg-accent: var(--sl-color-accent-high);--sl-color-hairline-light: var(--sl-color-gray-5);--sl-color-hairline: var(--sl-color-gray-6);--sl-color-hairline-shade: var(--sl-color-black);--sl-color-backdrop-overlay: hsla(223, 13%, 10%, .66);--sl-shadow-sm: 0px 1px 1px hsla(0, 0%, 0%, .12), 0px 2px 1px hsla(0, 0%, 0%, .24);--sl-shadow-md: 0px 8px 4px hsla(0, 0%, 0%, .08), 0px 5px 2px hsla(0, 0%, 0%, .08), 0px 3px 2px hsla(0, 0%, 0%, .12), 0px 1px 1px hsla(0, 0%, 0%, .15);--sl-shadow-lg: 0px 25px 7px hsla(0, 0%, 0%, .03), 0px 16px 6px hsla(0, 0%, 0%, .1), 0px 9px 5px hsla(223, 13%, 10%, .33), 0px 4px 4px hsla(0, 0%, 0%, .75), 0px 4px 2px hsla(0, 0%, 0%, .25);--sl-text-2xs: .75rem;--sl-text-xs: .8125rem;--sl-text-sm: .875rem;--sl-text-base: 1rem;--sl-text-lg: 1.125rem;--sl-text-xl: 1.25rem;--sl-text-2xl: 1.5rem;--sl-text-3xl: 1.8125rem;--sl-text-4xl: 2.1875rem;--sl-text-5xl: 2.625rem;--sl-text-6xl: 4rem;--sl-text-body: var(--sl-text-base);--sl-text-body-sm: var(--sl-text-xs);--sl-text-code: var(--sl-text-sm);--sl-text-code-sm: var(--sl-text-xs);--sl-text-h1: var(--sl-text-4xl);--sl-text-h2: var(--sl-text-3xl);--sl-text-h3: var(--sl-text-2xl);--sl-text-h4: var(--sl-text-xl);--sl-text-h5: var(--sl-text-lg);--sl-line-height: 1.75;--sl-line-height-headings: 1.2;--sl-font-system: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--sl-font-system-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--__sl-font: var(--sl-font, var(--sl-font-system)), var(--sl-font-system);--__sl-font-mono: var(--sl-font-mono, var(--sl-font-system-mono)), var(--sl-font-system-mono);--sl-nav-height: 3.5rem;--sl-nav-pad-x: 1rem;--sl-nav-pad-y: .75rem;--sl-mobile-toc-height: 3rem;--sl-sidebar-width: 18.75rem;--sl-sidebar-pad-x: 1rem;--sl-content-width: 45rem;--sl-content-pad-x: 1rem;--sl-menu-button-size: 2rem;--sl-nav-gap: var(--sl-content-pad-x);--sl-outline-offset-inside: -.1875rem;--sl-z-index-toc: 4;--sl-z-index-menu: 5;--sl-z-index-navbar: 10;--sl-z-index-skiplink: 20}:root[data-theme=light],[data-theme=light] ::backdrop{--sl-color-white: hsl(224, 10%, 10%);--sl-color-gray-1: hsl(224, 14%, 16%);--sl-color-gray-2: hsl(224, 10%, 23%);--sl-color-gray-3: hsl(224, 7%, 36%);--sl-color-gray-4: hsl(224, 6%, 56%);--sl-color-gray-5: hsl(224, 6%, 77%);--sl-color-gray-6: hsl(224, 20%, 94%);--sl-color-gray-7: hsl(224, 19%, 97%);--sl-color-black: hsl(0, 0%, 100%);--sl-color-orange-high: hsl(var(--sl-hue-orange), 80%, 25%);--sl-color-orange: hsl(var(--sl-hue-orange), 90%, 60%);--sl-color-orange-low: hsl(var(--sl-hue-orange), 90%, 88%);--sl-color-green-high: hsl(var(--sl-hue-green), 80%, 22%);--sl-color-green: hsl(var(--sl-hue-green), 90%, 46%);--sl-color-green-low: hsl(var(--sl-hue-green), 85%, 90%);--sl-color-blue-high: hsl(var(--sl-hue-blue), 80%, 30%);--sl-color-blue: hsl(var(--sl-hue-blue), 90%, 60%);--sl-color-blue-low: hsl(var(--sl-hue-blue), 88%, 90%);--sl-color-purple-high: hsl(var(--sl-hue-purple), 90%, 30%);--sl-color-purple: hsl(var(--sl-hue-purple), 90%, 60%);--sl-color-purple-low: hsl(var(--sl-hue-purple), 80%, 90%);--sl-color-red-high: hsl(var(--sl-hue-red), 80%, 30%);--sl-color-red: hsl(var(--sl-hue-red), 90%, 60%);--sl-color-red-low: hsl(var(--sl-hue-red), 80%, 90%);--sl-color-accent-high: hsl(234, 80%, 30%);--sl-color-accent: hsl(234, 90%, 60%);--sl-color-accent-low: hsl(234, 88%, 90%);--sl-color-text-accent: var(--sl-color-accent);--sl-color-text-invert: var(--sl-color-black);--sl-color-bg-nav: var(--sl-color-gray-7);--sl-color-bg-sidebar: var(--sl-color-bg);--sl-color-bg-inline-code: var(--sl-color-gray-6);--sl-color-bg-accent: var(--sl-color-accent);--sl-color-hairline-light: var(--sl-color-gray-6);--sl-color-hairline-shade: var(--sl-color-gray-6);--sl-color-backdrop-overlay: hsla(225, 9%, 36%, .66);--sl-shadow-sm: 0px 1px 1px hsla(0, 0%, 0%, .06), 0px 2px 1px hsla(0, 0%, 0%, .06);--sl-shadow-md: 0px 8px 4px hsla(0, 0%, 0%, .03), 0px 5px 2px hsla(0, 0%, 0%, .03), 0px 3px 2px hsla(0, 0%, 0%, .06), 0px 1px 1px hsla(0, 0%, 0%, .06);--sl-shadow-lg: 0px 25px 7px rgba(0, 0, 0, .01), 0px 16px 6px hsla(0, 0%, 0%, .03), 0px 9px 5px hsla(223, 13%, 10%, .08), 0px 4px 4px hsla(0, 0%, 0%, .16), 0px 4px 2px hsla(0, 0%, 0%, .04)}@media (min-width: 50em){:root{--sl-nav-height: 4rem;--sl-nav-pad-x: 1.5rem;--sl-text-h1: var(--sl-text-5xl);--sl-text-h2: var(--sl-text-4xl);--sl-text-h3: var(--sl-text-3xl);--sl-text-h4: var(--sl-text-2xl)}}@media (min-width: 72rem){:root{--sl-content-pad-x: 1.5rem;--sl-mobile-toc-height: 0rem}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{color-scheme:dark;accent-color:var(--sl-color-accent)}html[data-theme=light]{color-scheme:light}body{font-family:var(--__sl-font);line-height:var(--sl-line-height);-webkit-font-smoothing:antialiased;color:var(--sl-color-text);background-color:var(--sl-color-bg)}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6,code{overflow-wrap:anywhere}code{font-family:var(--__sl-font-mono)}:root{--astro-code-color-text: var(--sl-color-white);--astro-code-color-background: var(--sl-color-gray-6);--astro-code-token-constant: var(--sl-color-blue-high);--astro-code-token-string: var(--sl-color-green-high);--astro-code-token-comment: var(--sl-color-gray-2);--astro-code-token-keyword: var(--sl-color-purple-high);--astro-code-token-parameter: var(--sl-color-red-high);--astro-code-token-function: var(--sl-color-red-high);--astro-code-token-string-expression: var(--sl-color-green-high);--astro-code-token-punctuation: var(--sl-color-gray-2);--astro-code-token-link: var(--sl-color-blue-high)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sl-hidden{display:none}.sl-flex{display:flex}.sl-block{display:block}@media (min-width: 50rem){.md\:sl-hidden{display:none}.md\:sl-flex{display:flex}.md\:sl-block{display:block}}@media (min-width: 72rem){.lg\:sl-hidden{display:none}.lg\:sl-flex{display:flex}.lg\:sl-block{display:block}}[data-theme=light] .light\:sl-hidden,[data-theme=dark] .dark\:sl-hidden{display:none}[dir=rtl] .rtl\:flip:not(:where([dir=rtl] [dir=ltr] *)){transform:scaleX(-1)}.sl-banner:where(.astro-mo4xzidl){--__sl-banner-text: var(--sl-color-banner-text, var(--sl-color-text-invert));padding:var(--sl-nav-pad-y) var(--sl-nav-pad-x);background-color:var(--sl-color-banner-bg, var(--sl-color-bg-accent));color:var(--__sl-banner-text);line-height:var(--sl-line-height-headings);text-align:center;text-wrap:balance;box-shadow:var(--sl-shadow-sm)}.sl-banner:where(.astro-mo4xzidl) a{color:var(--__sl-banner-text)}.content-panel:where(.astro-axhnuolh){padding:1.5rem var(--sl-content-pad-x)}.content-panel:where(.astro-axhnuolh)+.content-panel:where(.astro-axhnuolh){border-top:1px solid var(--sl-color-hairline)}.sl-container:where(.astro-axhnuolh){max-width:var(--sl-content-width)}.sl-container:where(.astro-axhnuolh)>*+*{margin-top:1.5rem}@media (min-width: 72rem){.sl-container:where(.astro-axhnuolh){margin-inline:var(--sl-content-margin-inline, auto)}}svg:where(.astro-3s7vg5vg){color:var(--sl-icon-color);font-size:var(--sl-icon-size, 1em);width:1em;height:1em}p:where(.astro-5dy3i3z4){border:1px solid var(--sl-color-orange);padding:.75em 1em;background-color:var(--sl-color-orange-low);color:var(--sl-color-orange-high);width:max-content;max-width:100%;align-items:center;gap:.75em;font-size:var(--sl-text-body-sm);line-height:var(--sl-line-height-headings)}a:where(.astro-xy4sn64c){gap:.5rem;align-items:center;text-decoration:none;color:var(--sl-color-gray-3)}a:where(.astro-xy4sn64c):hover{color:var(--sl-color-white)}.pagination-links:where(.astro-43h6ghms){display:grid;grid-template-columns:repeat(auto-fit,minmax(min(18rem,100%),1fr));gap:1rem}a:where(.astro-43h6ghms){display:flex;align-items:center;justify-content:flex-start;gap:.5rem;width:100%;flex-basis:calc(50% - .5rem);flex-grow:1;border:1px solid var(--sl-color-gray-5);border-radius:.5rem;padding:1rem;text-decoration:none;color:var(--sl-color-gray-2);box-shadow:var(--sl-shadow-md);overflow-wrap:anywhere}:where(.astro-43h6ghms)[rel=next]{justify-content:end;text-align:end;flex-direction:row-reverse}a:where(.astro-43h6ghms):hover{border-color:var(--sl-color-gray-2)}.link-title:where(.astro-43h6ghms){color:var(--sl-color-white);font-size:var(--sl-text-2xl);line-height:var(--sl-line-height-headings)}svg:where(.astro-43h6ghms){flex-shrink:0}:root{--sl-badge-default-border: var(--sl-color-accent);--sl-badge-default-bg: var(--sl-color-accent-low);--sl-badge-default-text: #fff;--sl-badge-note-border: var(--sl-color-blue);--sl-badge-note-bg: var(--sl-color-blue-low);--sl-badge-note-text: #fff;--sl-badge-danger-border: var(--sl-color-red);--sl-badge-danger-bg: var(--sl-color-red-low);--sl-badge-danger-text: #fff;--sl-badge-success-border: var(--sl-color-green);--sl-badge-success-bg: var(--sl-color-green-low);--sl-badge-success-text: #fff;--sl-badge-caution-border: var(--sl-color-orange);--sl-badge-caution-bg: var(--sl-color-orange-low);--sl-badge-caution-text: #fff;--sl-badge-tip-border: var(--sl-color-purple);--sl-badge-tip-bg: var(--sl-color-purple-low);--sl-badge-tip-text: #fff}[data-theme=light]:root{--sl-badge-default-bg: var(--sl-color-accent-high);--sl-badge-note-bg: var(--sl-color-blue-high);--sl-badge-danger-bg: var(--sl-color-red-high);--sl-badge-success-bg: var(--sl-color-green-high);--sl-badge-caution-bg: var(--sl-color-orange-high);--sl-badge-tip-bg: var(--sl-color-purple-high)}.sl-badge:where(.astro-2aubqeqw){display:inline-block;border:1px solid var(--sl-color-border-badge);border-radius:.25rem;font-family:var(--sl-font-system-mono);line-height:normal;color:var(--sl-color-text-badge);background-color:var(--sl-color-bg-badge);overflow-wrap:anywhere}.sidebar-content .sl-badge:where(.astro-2aubqeqw){line-height:1;font-size:var(--sl-text-xs);padding:.125rem .375rem}.sidebar-content a[aria-current=page]>.sl-badge:where(.astro-2aubqeqw){--sl-color-bg-badge: transparent;--sl-color-border-badge: currentColor;color:inherit}.default:where(.astro-2aubqeqw){--sl-color-bg-badge: var(--sl-badge-default-bg);--sl-color-border-badge: var(--sl-badge-default-border);--sl-color-text-badge: var(--sl-badge-default-text)}.note:where(.astro-2aubqeqw){--sl-color-bg-badge: var(--sl-badge-note-bg);--sl-color-border-badge: var(--sl-badge-note-border);--sl-color-text-badge: var(--sl-badge-note-text)}.danger:where(.astro-2aubqeqw){--sl-color-bg-badge: var(--sl-badge-danger-bg);--sl-color-border-badge: var(--sl-badge-danger-border);--sl-color-text-badge: var(--sl-badge-danger-text)}.success:where(.astro-2aubqeqw){--sl-color-bg-badge: var(--sl-badge-success-bg);--sl-color-border-badge: var(--sl-badge-success-border);--sl-color-text-badge: var(--sl-badge-success-text)}.tip:where(.astro-2aubqeqw){--sl-color-bg-badge: var(--sl-badge-tip-bg);--sl-color-border-badge: var(--sl-badge-tip-border);--sl-color-text-badge: var(--sl-badge-tip-text)}.caution:where(.astro-2aubqeqw){--sl-color-bg-badge: var(--sl-badge-caution-bg);--sl-color-border-badge: var(--sl-badge-caution-border);--sl-color-text-badge: var(--sl-badge-caution-text)}.small:where(.astro-2aubqeqw){font-size:var(--sl-text-xs);padding:.125rem .25rem}.medium:where(.astro-2aubqeqw){font-size:var(--sl-text-sm);padding:.175rem .35rem}.large:where(.astro-2aubqeqw){font-size:var(--sl-text-base);padding:.225rem .45rem}.sl-markdown-content :is(h1,h2,h3,h4,h5,h6) .sl-badge:where(.astro-2aubqeqw){vertical-align:middle}.sl-steps{--bullet-size: calc(var(--sl-line-height) * 1rem);--bullet-margin: .375rem;list-style:none;counter-reset:steps-counter var(--sl-steps-start, 0);padding-inline-start:0}.sl-steps>li{counter-increment:steps-counter;position:relative;padding-inline-start:calc(var(--bullet-size) + 1rem);padding-bottom:1px;min-height:calc(var(--bullet-size) + var(--bullet-margin))}.sl-steps>li+li{margin-top:0}.sl-steps>li:before{content:counter(steps-counter);position:absolute;top:0;inset-inline-start:0;width:var(--bullet-size);height:var(--bullet-size);line-height:var(--bullet-size);font-size:var(--sl-text-xs);font-weight:600;text-align:center;color:var(--sl-color-white);background-color:var(--sl-color-gray-6);border-radius:99rem;box-shadow:inset 0 0 0 1px var(--sl-color-gray-5)}.sl-steps>li:not(:last-of-type):after{--guide-width: 1px;content:"";position:absolute;top:calc(var(--bullet-size) + var(--bullet-margin));bottom:var(--bullet-margin);inset-inline-start:calc((var(--bullet-size) - var(--guide-width)) / 2);width:var(--guide-width);background-color:var(--sl-color-hairline-light)}.sl-steps>li>:first-child{--lh: calc(1em * var(--sl-line-height));--shift-y: calc(.5 * (var(--bullet-size) - var(--lh)));transform:translateY(var(--shift-y));margin-bottom:var(--shift-y)}.sl-steps>li>:first-child:where(h1,h2,h3,h4,h5,h6){--lh: calc(1em * var(--sl-line-height-headings))}@supports (--prop: 1lh){.sl-steps>li>:first-child{--lh: 1lh}}footer:where(.astro-y2tgwdhe){flex-direction:column;gap:1.5rem}.meta:where(.astro-y2tgwdhe){gap:.75rem 3rem;justify-content:space-between;flex-wrap:wrap;margin-top:3rem;font-size:var(--sl-text-sm);color:var(--sl-color-gray-3)}.meta:where(.astro-y2tgwdhe)>p:only-child{margin-inline-start:auto}.kudos:where(.astro-y2tgwdhe){align-items:center;gap:.5em;margin:1.5rem auto;font-size:var(--sl-text-xs);text-decoration:none;color:var(--sl-color-gray-3)}.kudos:where(.astro-y2tgwdhe) svg{color:var(--sl-color-orange)}.kudos:where(.astro-y2tgwdhe):hover{color:var(--sl-color-white)}label:where(.astro-xh6kxzkq){--sl-label-icon-size: .875rem;--sl-caret-size: 1.25rem;--sl-inline-padding: .5rem;position:relative;display:flex;align-items:center;gap:.25rem;color:var(--sl-color-gray-1)}label:where(.astro-xh6kxzkq):hover{color:var(--sl-color-gray-2)}.icon:where(.astro-xh6kxzkq){position:absolute;top:50%;transform:translateY(-50%);pointer-events:none}.label-icon:where(.astro-xh6kxzkq){font-size:var(--sl-label-icon-size);inset-inline-start:0}.caret:where(.astro-xh6kxzkq){font-size:var(--sl-caret-size);inset-inline-end:0}select:where(.astro-xh6kxzkq){border:0;padding-block:.625rem;padding-inline:calc(var(--sl-label-icon-size) + var(--sl-inline-padding) + .25rem) calc(var(--sl-caret-size) + var(--sl-inline-padding) + .25rem);margin-inline:calc(var(--sl-inline-padding) * -1);width:calc(var(--sl-select-width) + var(--sl-inline-padding) * 2);background-color:transparent;text-overflow:ellipsis;color:inherit;cursor:pointer;appearance:none}option:where(.astro-xh6kxzkq){background-color:var(--sl-color-bg-nav);color:var(--sl-color-gray-1)}@media (min-width: 50rem){select:where(.astro-xh6kxzkq){font-size:var(--sl-text-sm)}}.pagefind-ui__result.svelte-j9e30.svelte-j9e30{list-style-type:none;display:flex;align-items:flex-start;gap:min(calc(40px * var(--pagefind-ui-scale)),3%);padding:calc(30px * var(--pagefind-ui-scale)) 0 calc(40px * var(--pagefind-ui-scale));border-top:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result.svelte-j9e30.svelte-j9e30:last-of-type{border-bottom:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result-thumb.svelte-j9e30.svelte-j9e30{width:min(30%,calc((30% - (100px * var(--pagefind-ui-scale))) * 100000));max-width:calc(120px * var(--pagefind-ui-scale));margin-top:calc(10px * var(--pagefind-ui-scale));aspect-ratio:var(--pagefind-ui-image-box-ratio);position:relative}.pagefind-ui__result-image.svelte-j9e30.svelte-j9e30{display:block;position:absolute;left:50%;transform:translate(-50%);font-size:0;width:auto;height:auto;max-width:100%;max-height:100%;border-radius:var(--pagefind-ui-image-border-radius)}.pagefind-ui__result-inner.svelte-j9e30.svelte-j9e30{flex:1;display:flex;flex-direction:column;align-items:flex-start;margin-top:calc(10px * var(--pagefind-ui-scale))}.pagefind-ui__result-title.svelte-j9e30.svelte-j9e30{display:inline-block;font-weight:700;font-size:calc(21px * var(--pagefind-ui-scale));margin-top:0;margin-bottom:0}.pagefind-ui__result-title.svelte-j9e30 .pagefind-ui__result-link.svelte-j9e30{color:var(--pagefind-ui-text);text-decoration:none}.pagefind-ui__result-title.svelte-j9e30 .pagefind-ui__result-link.svelte-j9e30:hover{text-decoration:underline}.pagefind-ui__result-excerpt.svelte-j9e30.svelte-j9e30{display:inline-block;font-weight:400;font-size:calc(16px * var(--pagefind-ui-scale));margin-top:calc(4px * var(--pagefind-ui-scale));margin-bottom:0;min-width:calc(250px * var(--pagefind-ui-scale))}.pagefind-ui__loading.svelte-j9e30.svelte-j9e30{color:var(--pagefind-ui-text);background-color:var(--pagefind-ui-text);border-radius:var(--pagefind-ui-border-radius);opacity:.1;pointer-events:none}.pagefind-ui__result-tags.svelte-j9e30.svelte-j9e30{list-style-type:none;padding:0;display:flex;gap:calc(20px * var(--pagefind-ui-scale));flex-wrap:wrap;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__result-tag.svelte-j9e30.svelte-j9e30{padding:calc(4px * var(--pagefind-ui-scale)) calc(8px * var(--pagefind-ui-scale));font-size:calc(14px * var(--pagefind-ui-scale));border-radius:var(--pagefind-ui-border-radius);background-color:var(--pagefind-ui-tag)}.pagefind-ui__result.svelte-4xnkmf.svelte-4xnkmf{list-style-type:none;display:flex;align-items:flex-start;gap:min(calc(40px * var(--pagefind-ui-scale)),3%);padding:calc(30px * var(--pagefind-ui-scale)) 0 calc(40px * var(--pagefind-ui-scale));border-top:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result.svelte-4xnkmf.svelte-4xnkmf:last-of-type{border-bottom:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result-nested.svelte-4xnkmf.svelte-4xnkmf{display:flex;flex-direction:column;padding-left:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__result-nested.svelte-4xnkmf.svelte-4xnkmf:first-of-type{padding-top:calc(10px * var(--pagefind-ui-scale))}.pagefind-ui__result-nested.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf{font-size:.9em;position:relative}.pagefind-ui__result-nested.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf:before{content:"⤷ ";position:absolute;top:0;right:calc(100% + .1em)}.pagefind-ui__result-thumb.svelte-4xnkmf.svelte-4xnkmf{width:min(30%,calc((30% - (100px * var(--pagefind-ui-scale))) * 100000));max-width:calc(120px * var(--pagefind-ui-scale));margin-top:calc(10px * var(--pagefind-ui-scale));aspect-ratio:var(--pagefind-ui-image-box-ratio);position:relative}.pagefind-ui__result-image.svelte-4xnkmf.svelte-4xnkmf{display:block;position:absolute;left:50%;transform:translate(-50%);font-size:0;width:auto;height:auto;max-width:100%;max-height:100%;border-radius:var(--pagefind-ui-image-border-radius)}.pagefind-ui__result-inner.svelte-4xnkmf.svelte-4xnkmf{flex:1;display:flex;flex-direction:column;align-items:flex-start;margin-top:calc(10px * var(--pagefind-ui-scale))}.pagefind-ui__result-title.svelte-4xnkmf.svelte-4xnkmf{display:inline-block;font-weight:700;font-size:calc(21px * var(--pagefind-ui-scale));margin-top:0;margin-bottom:0}.pagefind-ui__result-title.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf{color:var(--pagefind-ui-text);text-decoration:none}.pagefind-ui__result-title.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf:hover{text-decoration:underline}.pagefind-ui__result-excerpt.svelte-4xnkmf.svelte-4xnkmf{display:inline-block;font-weight:400;font-size:calc(16px * var(--pagefind-ui-scale));margin-top:calc(4px * var(--pagefind-ui-scale));margin-bottom:0;min-width:calc(250px * var(--pagefind-ui-scale))}.pagefind-ui__loading.svelte-4xnkmf.svelte-4xnkmf{color:var(--pagefind-ui-text);background-color:var(--pagefind-ui-text);border-radius:var(--pagefind-ui-border-radius);opacity:.1;pointer-events:none}.pagefind-ui__result-tags.svelte-4xnkmf.svelte-4xnkmf{list-style-type:none;padding:0;display:flex;gap:calc(20px * var(--pagefind-ui-scale));flex-wrap:wrap;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__result-tag.svelte-4xnkmf.svelte-4xnkmf{padding:calc(4px * var(--pagefind-ui-scale)) calc(8px * var(--pagefind-ui-scale));font-size:calc(14px * var(--pagefind-ui-scale));border-radius:var(--pagefind-ui-border-radius);background-color:var(--pagefind-ui-tag)}legend.svelte-1v2r7ls.svelte-1v2r7ls{position:absolute;clip:rect(0 0 0 0)}.pagefind-ui__filter-panel.svelte-1v2r7ls.svelte-1v2r7ls{min-width:min(calc(260px * var(--pagefind-ui-scale)),100%);flex:1;display:flex;flex-direction:column;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__filter-group.svelte-1v2r7ls.svelte-1v2r7ls{border:0;padding:0}.pagefind-ui__filter-block.svelte-1v2r7ls.svelte-1v2r7ls{padding:0;display:block;border-bottom:solid calc(2px * var(--pagefind-ui-scale)) var(--pagefind-ui-border);padding:calc(20px * var(--pagefind-ui-scale)) 0}.pagefind-ui__filter-name.svelte-1v2r7ls.svelte-1v2r7ls{font-size:calc(16px * var(--pagefind-ui-scale));position:relative;display:flex;align-items:center;list-style:none;font-weight:700;cursor:pointer;height:calc(24px * var(--pagefind-ui-scale))}.pagefind-ui__filter-name.svelte-1v2r7ls.svelte-1v2r7ls::-webkit-details-marker{display:none}.pagefind-ui__filter-name.svelte-1v2r7ls.svelte-1v2r7ls:after{position:absolute;content:"";right:calc(6px * var(--pagefind-ui-scale));top:50%;width:calc(8px * var(--pagefind-ui-scale));height:calc(8px * var(--pagefind-ui-scale));border:solid calc(2px * var(--pagefind-ui-scale)) currentColor;border-right:0;border-top:0;transform:translateY(-70%) rotate(-45deg)}.pagefind-ui__filter-block[open].svelte-1v2r7ls .pagefind-ui__filter-name.svelte-1v2r7ls:after{transform:translateY(-70%) rotate(-225deg)}.pagefind-ui__filter-group.svelte-1v2r7ls.svelte-1v2r7ls{display:flex;flex-direction:column;gap:calc(20px * var(--pagefind-ui-scale));padding-top:calc(30px * var(--pagefind-ui-scale))}.pagefind-ui__filter-value.svelte-1v2r7ls.svelte-1v2r7ls{position:relative;display:flex;align-items:center;gap:calc(8px * var(--pagefind-ui-scale))}.pagefind-ui__filter-value.svelte-1v2r7ls.svelte-1v2r7ls:before{position:absolute;content:"";top:50%;left:calc(8px * var(--pagefind-ui-scale));width:0px;height:0px;border:solid 1px #fff;opacity:0;transform:translate(calc(4.5px * var(--pagefind-ui-scale) * -1),calc(.8px * var(--pagefind-ui-scale))) skew(-5deg) rotate(-45deg);transform-origin:top left;border-top:0;border-right:0;pointer-events:none}.pagefind-ui__filter-value.pagefind-ui__filter-value--checked.svelte-1v2r7ls.svelte-1v2r7ls:before{opacity:1;width:calc(9px * var(--pagefind-ui-scale));height:calc(4px * var(--pagefind-ui-scale));transition:width .1s ease-out .1s,height .1s ease-in}.pagefind-ui__filter-checkbox.svelte-1v2r7ls.svelte-1v2r7ls{margin:0;width:calc(16px * var(--pagefind-ui-scale));height:calc(16px * var(--pagefind-ui-scale));border:solid 1px var(--pagefind-ui-border);appearance:none;-webkit-appearance:none;border-radius:calc(var(--pagefind-ui-border-radius) / 2);background-color:var(--pagefind-ui-background);cursor:pointer}.pagefind-ui__filter-checkbox.svelte-1v2r7ls.svelte-1v2r7ls:checked{background-color:var(--pagefind-ui-primary);border:solid 1px var(--pagefind-ui-primary)}.pagefind-ui__filter-label.svelte-1v2r7ls.svelte-1v2r7ls{cursor:pointer;font-size:calc(16px * var(--pagefind-ui-scale));font-weight:400}.pagefind-ui--reset *:where(:not(html,iframe,canvas,img,svg,video):not(svg *,symbol *)){all:unset;display:revert;outline:revert}.pagefind-ui--reset *,.pagefind-ui--reset *:before,.pagefind-ui--reset *:after{box-sizing:border-box}.pagefind-ui--reset a,.pagefind-ui--reset button{cursor:revert}.pagefind-ui--reset ol,.pagefind-ui--reset ul,.pagefind-ui--reset menu{list-style:none}.pagefind-ui--reset img{max-width:100%}.pagefind-ui--reset table{border-collapse:collapse}.pagefind-ui--reset input,.pagefind-ui--reset textarea{-webkit-user-select:auto}.pagefind-ui--reset textarea{white-space:revert}.pagefind-ui--reset meter{-webkit-appearance:revert;appearance:revert}.pagefind-ui--reset ::placeholder{color:unset}.pagefind-ui--reset :where([hidden]){display:none}.pagefind-ui--reset :where([contenteditable]:not([contenteditable=false])){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:auto}.pagefind-ui--reset :where([draggable=true]){-webkit-user-drag:element}.pagefind-ui--reset mark{all:revert}:root{--pagefind-ui-scale:.8;--pagefind-ui-primary:#393939;--pagefind-ui-text:#393939;--pagefind-ui-background:#ffffff;--pagefind-ui-border:#eeeeee;--pagefind-ui-tag:#eeeeee;--pagefind-ui-border-width:2px;--pagefind-ui-border-radius:8px;--pagefind-ui-image-border-radius:8px;--pagefind-ui-image-box-ratio:3 / 2;--pagefind-ui-font:system, -apple-system, "BlinkMacSystemFont", ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", "Ubuntu", "arial", sans-serif}.pagefind-ui.svelte-e9gkc3{width:100%;color:var(--pagefind-ui-text);font-family:var(--pagefind-ui-font)}.pagefind-ui__hidden.svelte-e9gkc3{display:none!important}.pagefind-ui__suppressed.svelte-e9gkc3{opacity:0;pointer-events:none}.pagefind-ui__form.svelte-e9gkc3{position:relative}.pagefind-ui__form.svelte-e9gkc3:before{background-color:var(--pagefind-ui-text);width:calc(18px * var(--pagefind-ui-scale));height:calc(18px * var(--pagefind-ui-scale));top:calc(23px * var(--pagefind-ui-scale));left:calc(20px * var(--pagefind-ui-scale));content:"";position:absolute;display:block;opacity:.7;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A");mask-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A");-webkit-mask-size:100%;mask-size:100%;z-index:9;pointer-events:none}.pagefind-ui__search-input.svelte-e9gkc3{height:calc(64px * var(--pagefind-ui-scale));padding:0 calc(70px * var(--pagefind-ui-scale)) 0 calc(54px * var(--pagefind-ui-scale));background-color:var(--pagefind-ui-background);border:var(--pagefind-ui-border-width) solid var(--pagefind-ui-border);border-radius:var(--pagefind-ui-border-radius);font-size:calc(21px * var(--pagefind-ui-scale));position:relative;appearance:none;-webkit-appearance:none;display:flex;width:100%;box-sizing:border-box;font-weight:700}.pagefind-ui__search-input.svelte-e9gkc3::placeholder{opacity:.2}.pagefind-ui__search-clear.svelte-e9gkc3{position:absolute;top:calc(3px * var(--pagefind-ui-scale));right:calc(3px * var(--pagefind-ui-scale));height:calc(58px * var(--pagefind-ui-scale));padding:0 calc(15px * var(--pagefind-ui-scale)) 0 calc(2px * var(--pagefind-ui-scale));color:var(--pagefind-ui-text);font-size:calc(14px * var(--pagefind-ui-scale));cursor:pointer;background-color:var(--pagefind-ui-background);border-radius:var(--pagefind-ui-border-radius)}.pagefind-ui__drawer.svelte-e9gkc3{gap:calc(60px * var(--pagefind-ui-scale));display:flex;flex-direction:row;flex-wrap:wrap}.pagefind-ui__results-area.svelte-e9gkc3{min-width:min(calc(400px * var(--pagefind-ui-scale)),100%);flex:1000;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__results.svelte-e9gkc3{padding:0}.pagefind-ui__message.svelte-e9gkc3{box-sizing:content-box;font-size:calc(16px * var(--pagefind-ui-scale));height:calc(24px * var(--pagefind-ui-scale));padding:calc(20px * var(--pagefind-ui-scale)) 0;display:flex;align-items:center;font-weight:700;margin-top:0}.pagefind-ui__button.svelte-e9gkc3{margin-top:calc(40px * var(--pagefind-ui-scale));border:var(--pagefind-ui-border-width) solid var(--pagefind-ui-border);border-radius:var(--pagefind-ui-border-radius);height:calc(48px * var(--pagefind-ui-scale));padding:0 calc(12px * var(--pagefind-ui-scale));font-size:calc(16px * var(--pagefind-ui-scale));color:var(--pagefind-ui-primary);background:var(--pagefind-ui-background);width:100%;text-align:center;font-weight:700;cursor:pointer}.pagefind-ui__button.svelte-e9gkc3:hover{border-color:var(--pagefind-ui-primary);color:var(--pagefind-ui-primary);background:var(--pagefind-ui-background)}[data-search-modal-open]{overflow:hidden}#starlight__search{--sl-search-result-spacing: calc(1.25rem * var(--pagefind-ui-scale));--sl-search-result-pad-inline-start: calc(3.75rem * var(--pagefind-ui-scale));--sl-search-result-pad-inline-end: calc(1.25rem * var(--pagefind-ui-scale));--sl-search-result-pad-block: calc(.9375rem * var(--pagefind-ui-scale));--sl-search-result-nested-pad-block: calc(.625rem * var(--pagefind-ui-scale));--sl-search-corners: calc(.3125rem * var(--pagefind-ui-scale));--sl-search-page-icon-size: calc(1.875rem * var(--pagefind-ui-scale));--sl-search-page-icon-inline-start: calc( (var(--sl-search-result-pad-inline-start) - var(--sl-search-page-icon-size)) / 2 );--sl-search-tree-diagram-size: calc(2.5rem * var(--pagefind-ui-scale));--sl-search-tree-diagram-inline-start: calc( (var(--sl-search-result-pad-inline-start) - var(--sl-search-tree-diagram-size)) / 2 )}#starlight__search .pagefind-ui__form:before{--pagefind-ui-text: var(--sl-color-gray-1);opacity:1}#starlight__search .pagefind-ui__search-input{color:var(--sl-color-white);font-weight:400;width:calc(100% - var(--sl-search-cancel-space))}#starlight__search input:focus{--pagefind-ui-border: var(--sl-color-accent)}#starlight__search .pagefind-ui__search-clear{inset-inline-end:var(--sl-search-cancel-space);width:calc(60px * var(--pagefind-ui-scale));padding:0;background-color:transparent;overflow:hidden}#starlight__search .pagefind-ui__search-clear:focus{outline:1px solid var(--sl-color-accent)}#starlight__search .pagefind-ui__search-clear:before{content:"";-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m13.41 12 6.3-6.29a1 1 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1 1 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 .33 1.64 1 1 0 0 0 1.09-.22l6.29-6.3 6.29 6.3a1 1 0 0 0 1.64-.33 1 1 0 0 0-.22-1.09L13.41 12Z'/%3E%3C/svg%3E") center / 50% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m13.41 12 6.3-6.29a1 1 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1 1 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 .33 1.64 1 1 0 0 0 1.09-.22l6.29-6.3 6.29 6.3a1 1 0 0 0 1.64-.33 1 1 0 0 0-.22-1.09L13.41 12Z'/%3E%3C/svg%3E") center / 50% no-repeat;background-color:var(--sl-color-text-accent);display:block;width:100%;height:100%}#starlight__search .pagefind-ui__results>*+*{margin-top:var(--sl-search-result-spacing)}#starlight__search .pagefind-ui__result{border:0;padding:0}#starlight__search .pagefind-ui__result-nested{position:relative;padding:var(--sl-search-result-nested-pad-block) var(--sl-search-result-pad-inline-end);padding-inline-start:var(--sl-search-result-pad-inline-start)}#starlight__search .pagefind-ui__result-title:not(:where(.pagefind-ui__result-nested *)),#starlight__search .pagefind-ui__result-nested{position:relative;background-color:var(--sl-color-black)}#starlight__search .pagefind-ui__result-title:not(:where(.pagefind-ui__result-nested *)):hover,#starlight__search .pagefind-ui__result-title:not(:where(.pagefind-ui__result-nested *)):focus-within,#starlight__search .pagefind-ui__result-nested:hover,#starlight__search .pagefind-ui__result-nested:focus-within{outline:1px solid var(--sl-color-accent-high)}#starlight__search .pagefind-ui__result-title:not(:where(.pagefind-ui__result-nested *)):focus-within,#starlight__search .pagefind-ui__result-nested:focus-within{background-color:var(--sl-color-accent-low)}#starlight__search .pagefind-ui__result-thumb,#starlight__search .pagefind-ui__result-inner{margin-top:0}#starlight__search .pagefind-ui__result-inner>:first-child{border-radius:var(--sl-search-corners) var(--sl-search-corners) 0 0}#starlight__search .pagefind-ui__result-inner>:last-child{border-radius:0 0 var(--sl-search-corners) var(--sl-search-corners)}#starlight__search .pagefind-ui__result-inner>.pagefind-ui__result-title{padding:var(--sl-search-result-pad-block) var(--sl-search-result-pad-inline-end);padding-inline-start:var(--sl-search-result-pad-inline-start)}#starlight__search .pagefind-ui__result-inner>.pagefind-ui__result-title:before{content:"";position:absolute;inset-block:0;inset-inline-start:var(--sl-search-page-icon-inline-start);width:var(--sl-search-page-icon-size);background:var(--sl-color-gray-3);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='M9 10h1a1 1 0 1 0 0-2H9a1 1 0 0 0 0 2Zm0 2a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2H9Zm11-3V8l-6-6a1 1 0 0 0-1 0H7a3 3 0 0 0-3 3v14a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3V9Zm-6-4 3 3h-2a1 1 0 0 1-1-1V5Zm4 14a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h5v3a3 3 0 0 0 3 3h3v9Zm-3-3H9a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2Z'/%3E%3C/svg%3E") center no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='M9 10h1a1 1 0 1 0 0-2H9a1 1 0 0 0 0 2Zm0 2a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2H9Zm11-3V8l-6-6a1 1 0 0 0-1 0H7a3 3 0 0 0-3 3v14a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3V9Zm-6-4 3 3h-2a1 1 0 0 1-1-1V5Zm4 14a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h5v3a3 3 0 0 0 3 3h3v9Zm-3-3H9a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2Z'/%3E%3C/svg%3E") center no-repeat}#starlight__search .pagefind-ui__result-inner{align-items:stretch;gap:1px}#starlight__search .pagefind-ui__result-link{position:unset;--pagefind-ui-text: var(--sl-color-white);font-weight:600}#starlight__search .pagefind-ui__result-link:hover{text-decoration:none}#starlight__search .pagefind-ui__result-nested .pagefind-ui__result-link:before{content:unset}#starlight__search .pagefind-ui__result-nested:before{content:"";position:absolute;inset-block:0;inset-inline-start:var(--sl-search-tree-diagram-inline-start);width:var(--sl-search-tree-diagram-size);background:var(--sl-color-gray-4);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' viewBox='0 0 16 1000' preserveAspectRatio='xMinYMin slice'%3E%3Cpath d='M8 0v1000m6-988H8'/%3E%3C/svg%3E") 0% 0% / 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' viewBox='0 0 16 1000' preserveAspectRatio='xMinYMin slice'%3E%3Cpath d='M8 0v1000m6-988H8'/%3E%3C/svg%3E") 0% 0% / 100% no-repeat}#starlight__search .pagefind-ui__result-nested:last-child:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 16 16'%3E%3Cpath d='M8 0v12m6 0H8'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 16 16'%3E%3Cpath d='M8 0v12m6 0H8'/%3E%3C/svg%3E")}[dir=rtl] .pagefind-ui__result-title:before,[dir=rtl] .pagefind-ui__result-nested:before{transform:scaleX(-1)}#starlight__search .pagefind-ui__result-link:after{content:"";position:absolute;inset:0}#starlight__search .pagefind-ui__result-excerpt{font-size:calc(1rem * var(--pagefind-ui-scale));overflow-wrap:anywhere}#starlight__search mark{color:var(--sl-color-gray-2);background-color:transparent;font-weight:600}site-search:where(.astro-5em4p6ht){display:contents}button:where(.astro-5em4p6ht)[data-open-modal]{display:flex;align-items:center;gap:.5rem;border:0;background-color:transparent;color:var(--sl-color-gray-1);cursor:pointer;height:2.5rem;font-size:var(--sl-text-xl)}@media (min-width: 50rem){button:where(.astro-5em4p6ht)[data-open-modal]{border:1px solid var(--sl-color-gray-5);border-radius:.5rem;padding-inline-start:.75rem;padding-inline-end:.5rem;background-color:var(--sl-color-black);color:var(--sl-color-gray-2);font-size:var(--sl-text-sm);width:100%;max-width:22rem}button:where(.astro-5em4p6ht)[data-open-modal]:hover{border-color:var(--sl-color-gray-2);color:var(--sl-color-white)}button:where(.astro-5em4p6ht)[data-open-modal]>:last-child:where(.astro-5em4p6ht){margin-inline-start:auto}}button:where(.astro-5em4p6ht)>kbd:where(.astro-5em4p6ht){border-radius:.25rem;font-size:var(--sl-text-2xs);gap:.25em;padding-inline:.375rem;background-color:var(--sl-color-gray-6)}kbd:where(.astro-5em4p6ht){font-family:var(--__sl-font)}dialog:where(.astro-5em4p6ht){margin:0;background-color:var(--sl-color-gray-6);border:1px solid var(--sl-color-gray-5);width:100%;max-width:100%;height:100%;max-height:100%;box-shadow:var(--sl-shadow-lg)}dialog:where(.astro-5em4p6ht)[open]{display:flex}dialog:where(.astro-5em4p6ht)::backdrop{background-color:var(--sl-color-backdrop-overlay);-webkit-backdrop-filter:blur(.25rem);backdrop-filter:blur(.25rem)}.dialog-frame:where(.astro-5em4p6ht){flex-direction:column;flex-grow:1;gap:1rem;padding:1rem}button:where(.astro-5em4p6ht)[data-close-modal]{position:absolute;z-index:1;align-items:center;align-self:flex-end;height:calc(64px * var(--pagefind-ui-scale));padding:.25rem;border:0;background:transparent;cursor:pointer;color:var(--sl-color-text-accent)}#starlight__search:where(.astro-5em4p6ht){--pagefind-ui-primary: var(--sl-color-accent-light);--pagefind-ui-text: var(--sl-color-gray-2);--pagefind-ui-font: var(--__sl-font);--pagefind-ui-background: var(--sl-color-black);--pagefind-ui-border: var(--sl-color-gray-5);--pagefind-ui-border-width: 1px;--sl-search-cancel-space: 5rem}@media (min-width: 50rem){#starlight__search:where(.astro-5em4p6ht){--sl-search-cancel-space: 0px}dialog:where(.astro-5em4p6ht){margin:4rem auto auto;border-radius:.5rem;width:90%;max-width:40rem;height:max-content;min-height:15rem;max-height:calc(100% - 8rem)}.dialog-frame:where(.astro-5em4p6ht){padding:1.5rem}}.site-title:where(.astro-ko42rnao){align-items:center;gap:var(--sl-nav-gap);font-size:var(--sl-text-h4);font-weight:600;color:var(--sl-color-text-accent);text-decoration:none;white-space:nowrap}img:where(.astro-ko42rnao){height:calc(var(--sl-nav-height) - 2 * var(--sl-nav-pad-y));width:auto;max-width:100%;object-fit:contain;object-position:0 50%}a:where(.astro-2hz7yvva){color:var(--sl-color-text-accent);padding:.5em;margin:-.5em}a:where(.astro-2hz7yvva):hover{opacity:.66}.header:where(.astro-b5c2o6xh){gap:var(--sl-nav-gap);justify-content:space-between;align-items:center;height:100%}.title-wrapper:where(.astro-b5c2o6xh){overflow:hidden}.right-group:where(.astro-b5c2o6xh),.social-icons:where(.astro-b5c2o6xh){gap:1rem;align-items:center}.social-icons:where(.astro-b5c2o6xh):after{content:"";height:2rem;border-inline-end:1px solid var(--sl-color-gray-5)}@media (min-width: 50rem){:root[data-has-sidebar]{--__sidebar-pad: calc(2 * var(--sl-nav-pad-x))}:root:not([data-has-toc]){--__toc-width: 0rem}.header:where(.astro-b5c2o6xh){--__sidebar-width: max(0rem, var(--sl-content-inline-start, 0rem) - var(--sl-nav-pad-x));--__main-column-fr: calc( ( 100% + var(--__sidebar-pad, 0rem) - var(--__toc-width, var(--sl-sidebar-width)) - (2 * var(--__toc-width, var(--sl-nav-pad-x))) - var(--sl-content-inline-start, 0rem) - var(--sl-content-width) ) / 2 );display:grid;grid-template-columns:minmax(calc(var(--__sidebar-width) + max(0rem,var(--__main-column-fr) - var(--sl-nav-gap))),auto) 1fr auto;align-content:center}}.action:where(.astro-2zsixjfj){gap:.5em;align-items:center;border-radius:999rem;padding:.5rem 1.125rem;color:var(--sl-color-white);line-height:1.1875;text-decoration:none;font-size:var(--sl-text-sm)}.action:where(.astro-2zsixjfj).primary{background:var(--sl-color-text-accent);color:var(--sl-color-black)}.action:where(.astro-2zsixjfj).secondary{border:1px solid}.action:where(.astro-2zsixjfj).minimal{padding-inline:0}@media (min-width: 50rem){.action:where(.astro-2zsixjfj){font-size:var(--sl-text-base);padding:1rem 1.25rem}}.hero:where(.astro-flpoygzi){display:grid;align-items:center;gap:1rem;padding-bottom:1rem}.hero:where(.astro-flpoygzi)>img:where(.astro-flpoygzi),.hero:where(.astro-flpoygzi)>.hero-html:where(.astro-flpoygzi){object-fit:contain;width:min(70%,20rem);height:auto;margin-inline:auto}.stack:where(.astro-flpoygzi){flex-direction:column;gap:clamp(1.5rem,calc(1.5rem + 1vw),2rem);text-align:center}.copy:where(.astro-flpoygzi){flex-direction:column;gap:1rem;align-items:center}.copy:where(.astro-flpoygzi)>:where(.astro-flpoygzi){max-width:50ch}h1:where(.astro-flpoygzi){font-size:clamp(var(--sl-text-3xl),calc(.25rem + 5vw),var(--sl-text-6xl));line-height:var(--sl-line-height-headings);font-weight:600;color:var(--sl-color-white)}.tagline:where(.astro-flpoygzi){font-size:clamp(var(--sl-text-base),calc(.0625rem + 2vw),var(--sl-text-xl));color:var(--sl-color-gray-2)}.actions:where(.astro-flpoygzi){gap:1rem 2rem;flex-wrap:wrap;justify-content:center}@media (min-width: 50rem){.hero:where(.astro-flpoygzi){grid-template-columns:7fr 4fr;gap:3%;padding-block:clamp(2.5rem,calc(1rem + 10vmin),10rem)}.hero:where(.astro-flpoygzi)>img:where(.astro-flpoygzi),.hero:where(.astro-flpoygzi)>.hero-html:where(.astro-flpoygzi){order:2;width:min(100%,25rem)}.stack:where(.astro-flpoygzi){text-align:start}.copy:where(.astro-flpoygzi){align-items:flex-start}.actions:where(.astro-flpoygzi){justify-content:flex-start}}.sl-markdown-content :not(a,strong,em,del,span,input,code)+:not(a,strong,em,del,span,input,code,:where(.not-content *)){margin-top:1rem}.sl-markdown-content :not(h1,h2,h3,h4,h5,h6)+:is(h1,h2,h3,h4,h5,h6):not(:where(.not-content *)){margin-top:1.5em}.sl-markdown-content li+li:not(:where(.not-content *)),.sl-markdown-content dt+dt:not(:where(.not-content *)),.sl-markdown-content dt+dd:not(:where(.not-content *)),.sl-markdown-content dd+dd:not(:where(.not-content *)){margin-top:.25rem}.sl-markdown-content li:not(:where(.not-content *)){overflow-wrap:anywhere}.sl-markdown-content li>:last-child:not(li,ul,ol):not(a,strong,em,del,span,input,:where(.not-content *)){margin-bottom:1.25rem}.sl-markdown-content dt:not(:where(.not-content *)){font-weight:700}.sl-markdown-content dd:not(:where(.not-content *)){padding-inline-start:1rem}.sl-markdown-content :is(h1,h2,h3,h4,h5,h6):not(:where(.not-content *)){color:var(--sl-color-white);line-height:var(--sl-line-height-headings);font-weight:600}.sl-markdown-content :is(img,picture,video,canvas,svg,iframe):not(:where(.not-content *)){display:block;max-width:100%;height:auto}.sl-markdown-content h1:not(:where(.not-content *)){font-size:var(--sl-text-h1)}.sl-markdown-content h2:not(:where(.not-content *)){font-size:var(--sl-text-h2)}.sl-markdown-content h3:not(:where(.not-content *)){font-size:var(--sl-text-h3)}.sl-markdown-content h4:not(:where(.not-content *)){font-size:var(--sl-text-h4)}.sl-markdown-content h5:not(:where(.not-content *)){font-size:var(--sl-text-h5)}.sl-markdown-content h6:not(:where(.not-content *)){font-size:var(--sl-text-h6)}.sl-markdown-content a:not(:where(.not-content *)){color:var(--sl-color-text-accent)}.sl-markdown-content a:hover:not(:where(.not-content *)){color:var(--sl-color-white)}.sl-markdown-content code:not(:where(.not-content *)){background-color:var(--sl-color-bg-inline-code);margin-block:-.125rem;padding:.125rem .375rem;font-size:var(--sl-text-code-sm)}.sl-markdown-content :is(h1,h2,h3,h4,h5,h6) code{font-size:inherit}.sl-markdown-content pre:not(:where(.not-content *)){border:1px solid var(--sl-color-gray-5);padding:.75rem 1rem;font-size:var(--sl-text-code);tab-size:2}.sl-markdown-content pre code:not(:where(.not-content *)){all:unset;font-family:var(--__sl-font-mono)}.sl-markdown-content blockquote:not(:where(.not-content *)){border-inline-start:1px solid var(--sl-color-gray-5);padding-inline-start:1rem}.sl-markdown-content table:not(:where(.not-content *)){display:block;overflow:auto;border-spacing:0}.sl-markdown-content :is(th,td):not(:where(.not-content *)){border-bottom:1px solid var(--sl-color-gray-5);padding:.5rem 1rem;vertical-align:baseline}.sl-markdown-content :is(th:first-child,td:first-child):not(:where(.not-content *)){padding-inline-start:0}.sl-markdown-content :is(th:last-child,td:last-child):not(:where(.not-content *)){padding-inline-end:0}.sl-markdown-content th:not(:where(.not-content *)){color:var(--sl-color-white);font-weight:600}.sl-markdown-content th:not([align]):not(:where(.not-content *)){text-align:start}.sl-markdown-content .starlight-aside :is(th,td,hr,blockquote):not(:where(.not-content *)){border-color:var(--sl-color-gray-4)}@supports (border-color: color-mix(in srgb,var(--sl-color-asides-text-accent) 30%,transparent)){.sl-markdown-content .starlight-aside :is(th,td,hr,blockquote):not(:where(.not-content *)){border-color:color-mix(in srgb,var(--sl-color-asides-text-accent) 30%,transparent)}}@supports (border-color: color-mix(in srgb,var(--sl-color-asides-text-accent) 12%,transparent)){.sl-markdown-content .starlight-aside code:not(:where(.not-content *)){background-color:color-mix(in srgb,var(--sl-color-asides-text-accent) 12%,transparent)}}.sl-markdown-content hr:not(:where(.not-content *)){border:0;border-bottom:1px solid var(--sl-color-hairline)}.sl-markdown-content details:not(:where(.not-content *)){--sl-details-border-color: var(--sl-color-gray-5);--sl-details-border-color--hover: var(--sl-color-text-accent);border-inline-start:2px solid var(--sl-details-border-color);padding-inline-start:1rem}.sl-markdown-content details:not([open]):hover:not(:where(.not-content *)),.sl-markdown-content details:has(>summary:hover):not(:where(.not-content *)){border-color:var(--sl-details-border-color--hover)}.sl-markdown-content summary:not(:where(.not-content *)){color:var(--sl-color-white);cursor:pointer;display:block;font-weight:600;margin-inline-start:-.5rem;padding-inline-start:.5rem}.sl-markdown-content details[open]>summary:not(:where(.not-content *)){margin-bottom:1rem}.sl-markdown-content summary:not(:where(.not-content *))::marker,.sl-markdown-content summary:not(:where(.not-content *))::-webkit-details-marker{display:none}.sl-markdown-content summary:not(:where(.not-content *)):before{--sl-details-marker-size: 1.25rem;background-color:currentColor;content:"";display:inline-block;height:var(--sl-details-marker-size);width:var(--sl-details-marker-size);margin-inline:calc((var(--sl-details-marker-size) / 4) * -1) .25rem;vertical-align:middle;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.8 11.3 10.6 7a1 1 0 1 0-1.4 1.5l3.5 3.5-3.5 3.5a1 1 0 0 0 0 1.4 1 1 0 0 0 .7.3 1 1 0 0 0 .7-.3l4.2-4.2a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E%0A");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.8 11.3 10.6 7a1 1 0 1 0-1.4 1.5l3.5 3.5-3.5 3.5a1 1 0 0 0 0 1.4 1 1 0 0 0 .7.3 1 1 0 0 0 .7-.3l4.2-4.2a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E%0A");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}@media (prefers-reduced-motion: no-preference){.sl-markdown-content summary:not(:where(.not-content *)):before{transition:transform .2s ease-in-out}}.sl-markdown-content details[open]>summary:not(:where(.not-content *)):before{transform:rotate(90deg)}[dir=rtl] .sl-markdown-content summary:not(:where(.not-content *)):before,.sl-markdown-content [dir=rtl] summary:not(:where(.not-content *)):before{transform:rotate(180deg)}.sl-markdown-content summary:not(:where(.not-content *)) p:only-child{display:inline}.sl-markdown-content .starlight-aside details:not(:where(.not-content *)){--sl-details-border-color: var(--sl-color-asides-border);--sl-details-border-color--hover: var(--sl-color-asides-text-accent)}[data-mobile-menu-expanded]{overflow:hidden}@media (min-width: 50rem){[data-mobile-menu-expanded]{overflow:auto}}button:where(.astro-ebz7oekv){position:fixed;top:calc((var(--sl-nav-height) - var(--sl-menu-button-size)) / 2);inset-inline-end:var(--sl-nav-pad-x);z-index:var(--sl-z-index-navbar);border:0;border-radius:50%;width:var(--sl-menu-button-size);height:var(--sl-menu-button-size);padding:.5rem;background-color:var(--sl-color-white);color:var(--sl-color-black);box-shadow:var(--sl-shadow-md);cursor:pointer}:where(.astro-ebz7oekv)[aria-expanded=true] button:where(.astro-ebz7oekv){background-color:var(--sl-color-gray-2);box-shadow:none}[data-theme=light] button:where(.astro-ebz7oekv){background-color:var(--sl-color-black);color:var(--sl-color-white)}[data-theme=light] :where(.astro-ebz7oekv)[aria-expanded=true] button:where(.astro-ebz7oekv){background-color:var(--sl-color-gray-5)}.page:where(.astro-pw73ywtu){flex-direction:column;min-height:100vh}.header:where(.astro-pw73ywtu){z-index:var(--sl-z-index-navbar);position:fixed;inset-inline-start:0;inset-block-start:0;width:100%;height:var(--sl-nav-height);border-bottom:1px solid var(--sl-color-hairline-shade);padding:var(--sl-nav-pad-y) var(--sl-nav-pad-x);padding-inline-end:var(--sl-nav-pad-x);background-color:var(--sl-color-bg-nav)}[data-has-sidebar] .header:where(.astro-pw73ywtu){padding-inline-end:calc(var(--sl-nav-gap) + var(--sl-nav-pad-x) + var(--sl-menu-button-size))}.sidebar-pane:where(.astro-pw73ywtu){visibility:var(--sl-sidebar-visibility, hidden);position:fixed;z-index:var(--sl-z-index-menu);inset-block:var(--sl-nav-height) 0;inset-inline-start:0;width:100%;background-color:var(--sl-color-black);overflow-y:auto}[aria-expanded=true]~.sidebar-pane:where(.astro-pw73ywtu){--sl-sidebar-visibility: visible}.sidebar-content:where(.astro-pw73ywtu){height:100%;min-height:max-content;padding:1rem var(--sl-sidebar-pad-x) 0;flex-direction:column;gap:1rem}@media (min-width: 50rem){.sidebar-content:where(.astro-pw73ywtu):after{content:"";padding-bottom:1px}}.main-frame:where(.astro-pw73ywtu){padding-top:calc(var(--sl-nav-height) + var(--sl-mobile-toc-height));padding-inline-start:var(--sl-content-inline-start)}@media (min-width: 50rem){[data-has-sidebar] .header:where(.astro-pw73ywtu){padding-inline-end:var(--sl-nav-pad-x)}.sidebar-pane:where(.astro-pw73ywtu){--sl-sidebar-visibility: visible;width:var(--sl-sidebar-width);background-color:var(--sl-color-bg-sidebar);border-inline-end:1px solid var(--sl-color-hairline-shade)}}ul:where(.astro-qza4sgm4){padding:0;list-style:none}a:where(.astro-qza4sgm4){--pad-inline: .5rem;display:block;border-radius:.25rem;padding-block:.25rem;padding-inline:calc(1rem * var(--depth) + var(--pad-inline)) var(--pad-inline);line-height:1.25}a:where(.astro-qza4sgm4)[aria-current=true]{color:var(--sl-color-text-accent)}.isMobile:where(.astro-qza4sgm4) a:where(.astro-qza4sgm4){--pad-inline: 1rem;display:flex;justify-content:space-between;gap:var(--pad-inline);border-top:1px solid var(--sl-color-gray-6);border-radius:0;padding-block:.5rem;color:var(--sl-color-text);font-size:var(--sl-text-sm);text-decoration:none;outline-offset:var(--sl-outline-offset-inside)}.isMobile:where(.astro-qza4sgm4):first-child>li:where(.astro-qza4sgm4):first-child>a:where(.astro-qza4sgm4){border-top:0}.isMobile:where(.astro-qza4sgm4) a:where(.astro-qza4sgm4)[aria-current=true],.isMobile:where(.astro-qza4sgm4) a:where(.astro-qza4sgm4)[aria-current=true]:hover,.isMobile:where(.astro-qza4sgm4) a:where(.astro-qza4sgm4)[aria-current=true]:focus{color:var(--sl-color-white);background-color:unset}.isMobile:where(.astro-qza4sgm4) a:where(.astro-qza4sgm4)[aria-current=true]:after{content:"";width:1rem;background-color:var(--sl-color-text-accent);-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNCAxNCc+PHBhdGggZD0nTTEwLjkxNCA0LjIwNmEuNTgzLjU4MyAwIDAgMC0uODI4IDBMNS43NCA4LjU1NyAzLjkxNCA2LjcyNmEuNTk2LjU5NiAwIDAgMC0uODI4Ljg1N2wyLjI0IDIuMjRhLjU4My41ODMgMCAwIDAgLjgyOCAwbDQuNzYtNC43NmEuNTgzLjU4MyAwIDAgMCAwLS44NTdaJy8+PC9zdmc+Cg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNCAxNCc+PHBhdGggZD0nTTEwLjkxNCA0LjIwNmEuNTgzLjU4MyAwIDAgMC0uODI4IDBMNS43NCA4LjU1NyAzLjkxNCA2LjcyNmEuNTk2LjU5NiAwIDAgMC0uODI4Ljg1N2wyLjI0IDIuMjRhLjU4My41ODMgMCAwIDAgLjgyOCAwbDQuNzYtNC43NmEuNTgzLjU4MyAwIDAgMCAwLS44NTdaJy8+PC9zdmc+Cg==);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;flex-shrink:0}nav:where(.astro-jvgttka3){position:fixed;z-index:var(--sl-z-index-toc);top:calc(var(--sl-nav-height) - 1px);inset-inline:0;border-top:1px solid var(--sl-color-gray-5);background-color:var(--sl-color-bg-nav)}@media (min-width: 50rem){nav:where(.astro-jvgttka3){inset-inline-start:var(--sl-content-inline-start, 0)}}summary:where(.astro-jvgttka3){gap:.5rem;align-items:center;height:var(--sl-mobile-toc-height);border-bottom:1px solid var(--sl-color-hairline-shade);padding:.5rem 1rem;font-size:var(--sl-text-xs);outline-offset:var(--sl-outline-offset-inside)}summary:where(.astro-jvgttka3)::marker,summary:where(.astro-jvgttka3)::-webkit-details-marker{display:none}.toggle:where(.astro-jvgttka3){flex-shrink:0;gap:1rem;align-items:center;justify-content:space-between;border:1px solid var(--sl-color-gray-5);border-radius:.5rem;padding-block:.5rem;padding-inline-start:.75rem;padding-inline-end:.5rem;line-height:1;background-color:var(--sl-color-black);user-select:none;cursor:pointer}details:where(.astro-jvgttka3)[open] .toggle:where(.astro-jvgttka3){color:var(--sl-color-white);border-color:var(--sl-color-accent)}details:where(.astro-jvgttka3) .toggle:where(.astro-jvgttka3):hover{color:var(--sl-color-white);border-color:var(--sl-color-gray-2)}[dir=rtl] .caret:where(.astro-jvgttka3){transform:rotate(180deg)}details:where(.astro-jvgttka3)[open] .caret:where(.astro-jvgttka3){transform:rotate(90deg)}.display-current:where(.astro-jvgttka3){white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:var(--sl-color-white)}.dropdown:where(.astro-jvgttka3){--border-top: 1px;margin-top:calc(-1 * var(--border-top));border:var(--border-top) solid var(--sl-color-gray-6);border-top-color:var(--sl-color-hairline-shade);max-height:calc(85vh - var(--sl-nav-height) - var(--sl-mobile-toc-height));overflow-y:auto;background-color:var(--sl-color-black);box-shadow:var(--sl-shadow-md);overscroll-behavior:contain}.right-sidebar-panel:where(.astro-rz4ywtdd){padding:1rem var(--sl-sidebar-pad-x)}.sl-container:where(.astro-rz4ywtdd){width:calc(var(--sl-sidebar-width) - 2 * var(--sl-sidebar-pad-x))}.right-sidebar-panel:where(.astro-rz4ywtdd) h2{color:var(--sl-color-white);font-size:var(--sl-text-h5);font-weight:600;line-height:var(--sl-line-height-headings);margin-bottom:.5rem}.right-sidebar-panel:where(.astro-rz4ywtdd) :where(a){display:block;font-size:var(--sl-text-xs);text-decoration:none;color:var(--sl-color-gray-3);overflow-wrap:anywhere}.right-sidebar-panel:where(.astro-rz4ywtdd) :where(a):hover{color:var(--sl-color-white)}@media (min-width: 72rem){.sl-container:where(.astro-rz4ywtdd){max-width:calc(((100vw - var(--sl-sidebar-width) - 2 * var(--sl-content-pad-x) - 2 * var(--sl-sidebar-pad-x)) * .25))}}h1:where(.astro-hdnhh2vh){margin-top:1rem;font-size:var(--sl-text-h1);line-height:var(--sl-line-height-headings);font-weight:600;color:var(--sl-color-white)}.social-icons:where(.astro-xbip3ofh){margin-inline-end:auto;gap:1rem;align-items:center;padding-block:1rem}.social-icons:where(.astro-xbip3ofh):empty{display:none}.mobile-preferences:where(.astro-xbip3ofh){justify-content:space-between;flex-wrap:wrap;border-top:1px solid var(--sl-color-gray-6);column-gap:1rem;padding:.5rem 0}ul:where(.astro-dtnsyu3s){--sl-sidebar-item-padding-inline: .5rem;list-style:none;padding:0}li:where(.astro-dtnsyu3s){overflow-wrap:anywhere}ul:where(.astro-dtnsyu3s) ul:where(.astro-dtnsyu3s) li:where(.astro-dtnsyu3s){margin-inline-start:var(--sl-sidebar-item-padding-inline);border-inline-start:1px solid var(--sl-color-hairline-light);padding-inline-start:var(--sl-sidebar-item-padding-inline)}.large:where(.astro-dtnsyu3s){font-size:var(--sl-text-lg);font-weight:600;color:var(--sl-color-white)}.top-level:where(.astro-dtnsyu3s)>li:where(.astro-dtnsyu3s)+li:where(.astro-dtnsyu3s){margin-top:.75rem}summary:where(.astro-dtnsyu3s){display:flex;align-items:center;justify-content:space-between;padding:.2em var(--sl-sidebar-item-padding-inline);line-height:1.4;cursor:pointer;user-select:none}summary:where(.astro-dtnsyu3s)::marker,summary:where(.astro-dtnsyu3s)::-webkit-details-marker{display:none}.caret:where(.astro-dtnsyu3s){transition:transform .2s ease-in-out;flex-shrink:0}[dir=rtl] .caret:where(.astro-dtnsyu3s){transform:rotate(180deg)}:where(.astro-dtnsyu3s)[open]>summary:where(.astro-dtnsyu3s) .caret:where(.astro-dtnsyu3s){transform:rotate(90deg)}a:where(.astro-dtnsyu3s){display:block;border-radius:.25rem;text-decoration:none;color:var(--sl-color-gray-2);padding:.3em var(--sl-sidebar-item-padding-inline);line-height:1.4}a:where(.astro-dtnsyu3s):hover,a:where(.astro-dtnsyu3s):focus{color:var(--sl-color-white)}:where(.astro-dtnsyu3s)[aria-current=page],:where(.astro-dtnsyu3s)[aria-current=page]:hover,:where(.astro-dtnsyu3s)[aria-current=page]:focus{font-weight:600;color:var(--sl-color-text-invert);background-color:var(--sl-color-text-accent)}a:where(.astro-dtnsyu3s)>:where(.astro-dtnsyu3s):not(:last-child),.group-label:where(.astro-dtnsyu3s)>:where(.astro-dtnsyu3s):not(:last-child){margin-inline-end:.25em}@media (min-width: 50rem){.top-level:where(.astro-dtnsyu3s)>li:where(.astro-dtnsyu3s)+li:where(.astro-dtnsyu3s){margin-top:.5rem}.large:where(.astro-dtnsyu3s){font-size:var(--sl-text-base)}a:where(.astro-dtnsyu3s){font-size:var(--sl-text-sm)}}a:where(.astro-ffvjmqqa){clip:rect(0,0,0,0);position:fixed;top:.75rem;inset-inline-start:.75rem}a:where(.astro-ffvjmqqa):focus{clip:unset;z-index:var(--sl-z-index-skiplink);display:block;padding:.5rem 1rem;text-decoration:none;color:var(--sl-color-text-invert);background-color:var(--sl-color-text-accent);box-shadow:var(--sl-shadow-lg)}.main-pane:where(.astro-icuh6ulh){isolation:isolate}@media (min-width: 72rem){.right-sidebar-container:where(.astro-icuh6ulh){order:2;position:relative;width:calc(var(--sl-sidebar-width) + (100% - var(--sl-content-width) - var(--sl-sidebar-width)) / 2)}.right-sidebar:where(.astro-icuh6ulh){position:fixed;top:0;border-inline-start:1px solid var(--sl-color-gray-6);padding-top:var(--sl-nav-height);width:100%;height:100vh;overflow-y:auto;scrollbar-width:none}.main-pane:where(.astro-icuh6ulh){width:100%}[data-has-sidebar][data-has-toc] .main-pane:where(.astro-icuh6ulh){--sl-content-margin-inline: auto 0;order:1;width:calc(var(--sl-content-width) + (100% - var(--sl-content-width) - var(--sl-sidebar-width)) / 2)}}.starlight-aside{padding:1rem;border-inline-start:.25rem solid var(--sl-color-asides-border);color:var(--sl-color-white)}.starlight-aside--note{--sl-color-asides-text-accent: var(--sl-color-blue-high);--sl-color-asides-border: var(--sl-color-blue);background-color:var(--sl-color-blue-low)}.starlight-aside--tip{--sl-color-asides-text-accent: var(--sl-color-purple-high);--sl-color-asides-border: var(--sl-color-purple);background-color:var(--sl-color-purple-low)}.starlight-aside--caution{--sl-color-asides-text-accent: var(--sl-color-orange-high);--sl-color-asides-border: var(--sl-color-orange);background-color:var(--sl-color-orange-low)}.starlight-aside--danger{--sl-color-asides-text-accent: var(--sl-color-red-high);--sl-color-asides-border: var(--sl-color-red);background-color:var(--sl-color-red-low)}.starlight-aside__title{display:flex;gap:.5rem;align-items:center;font-size:var(--sl-text-h5);font-weight:600;line-height:var(--sl-line-height-headings);color:var(--sl-color-asides-text-accent)}.starlight-aside__icon{font-size:1.333em;width:1em;height:1em}.starlight-aside__title+.starlight-aside__content{margin-top:.5rem}.starlight-aside__content a{color:var(--sl-color-asides-text-accent)}html:not([data-has-toc]){--sl-mobile-toc-height: 0rem}html:not([data-has-sidebar]){--sl-content-width: 67.5rem}html{scroll-padding-top:calc(1.5rem + var(--sl-nav-height) + var(--sl-mobile-toc-height))}main:where(.astro-6lljzriy){padding-bottom:3vh}@media (min-width: 50em){:where(.astro-6lljzriy)[data-has-sidebar]{--sl-content-inline-start: var(--sl-sidebar-width)}}@media (min-width: 72em){html{scroll-padding-top:calc(1.5rem + var(--sl-nav-height))}} diff --git a/dist/_astro/page.BO5rBSqo.js b/dist/_astro/page.BO5rBSqo.js deleted file mode 100644 index 5d7bc66..0000000 --- a/dist/_astro/page.BO5rBSqo.js +++ /dev/null @@ -1 +0,0 @@ -const d=new Set,c=new WeakSet;let f=!0,h,l=!1;function v(e){l||(l=!0,f??=!1,h??="hover",g(),p(),w(),S())}function g(){for(const e of["touchstart","mousedown"])document.body.addEventListener(e,t=>{i(t.target,"tap")&&s(t.target.href,{with:"fetch",ignoreSlowConnection:!0})},{passive:!0})}function p(){let e;document.body.addEventListener("focusin",o=>{i(o.target,"hover")&&t(o)},{passive:!0}),document.body.addEventListener("focusout",n,{passive:!0}),u(()=>{for(const o of document.getElementsByTagName("a"))c.has(o)||i(o,"hover")&&(c.add(o),o.addEventListener("mouseenter",t,{passive:!0}),o.addEventListener("mouseleave",n,{passive:!0}))});function t(o){const r=o.target.href;e&&clearTimeout(e),e=setTimeout(()=>{s(r,{with:"fetch"})},80)}function n(){e&&(clearTimeout(e),e=0)}}function w(){let e;u(()=>{for(const t of document.getElementsByTagName("a"))c.has(t)||i(t,"viewport")&&(c.add(t),e??=y(),e.observe(t))})}function y(){const e=new WeakMap;return new IntersectionObserver((t,n)=>{for(const o of t){const r=o.target,a=e.get(r);o.isIntersecting?(a&&clearTimeout(a),e.set(r,setTimeout(()=>{n.unobserve(r),e.delete(r),s(r.href,{with:"link"})},300))):a&&(clearTimeout(a),e.delete(r))}})}function S(){u(()=>{for(const e of document.getElementsByTagName("a"))i(e,"load")&&s(e.href,{with:"link"})})}function s(e,t){const n=t?.ignoreSlowConnection??!1;if(!L(e,n))return;if(d.add(e),(t?.with??"link")==="link"){const r=document.createElement("link");r.rel="prefetch",r.setAttribute("href",e),document.head.append(r)}else fetch(e).catch(r=>{console.log(`[astro] Failed to prefetch ${e}`),console.error(r)})}function L(e,t){if(!navigator.onLine||!t&&m())return!1;try{const n=new URL(e,location.href);return location.origin===n.origin&&(location.pathname!==n.pathname||location.search!==n.search)&&!d.has(e)}catch{}return!1}function i(e,t){if(e?.tagName!=="A")return!1;const n=e.dataset.astroPrefetch;return n==="false"?!1:t==="tap"&&(n!=null||f)&&m()?!0:n==null&&f||n===""?t===h:n===t}function m(){if("connection"in navigator){const e=navigator.connection;return e.saveData||/2g/.test(e.effectiveType)}return!1}function u(e){e();let t=!1;document.addEventListener("astro:page-load",()=>{if(!t){t=!0;return}e()})}v(); diff --git a/dist/_astro/page.LS5KDvwX.js b/dist/_astro/page.LS5KDvwX.js new file mode 100644 index 0000000..f8839f1 --- /dev/null +++ b/dist/_astro/page.LS5KDvwX.js @@ -0,0 +1 @@ +const d=new Set,c=new WeakSet;let f=!0,h,l=!1;function v(e){l||(l=!0,f??=!1,h??="hover",g(),p(),w(),L())}function g(){for(const e of["touchstart","mousedown"])document.body.addEventListener(e,t=>{i(t.target,"tap")&&s(t.target.href,{ignoreSlowConnection:!0})},{passive:!0})}function p(){let e;document.body.addEventListener("focusin",n=>{i(n.target,"hover")&&t(n)},{passive:!0}),document.body.addEventListener("focusout",o,{passive:!0}),u(()=>{for(const n of document.getElementsByTagName("a"))c.has(n)||i(n,"hover")&&(c.add(n),n.addEventListener("mouseenter",t,{passive:!0}),n.addEventListener("mouseleave",o,{passive:!0}))});function t(n){const r=n.target.href;e&&clearTimeout(e),e=setTimeout(()=>{s(r)},80)}function o(){e&&(clearTimeout(e),e=0)}}function w(){let e;u(()=>{for(const t of document.getElementsByTagName("a"))c.has(t)||i(t,"viewport")&&(c.add(t),e??=y(),e.observe(t))})}function y(){const e=new WeakMap;return new IntersectionObserver((t,o)=>{for(const n of t){const r=n.target,a=e.get(r);n.isIntersecting?(a&&clearTimeout(a),e.set(r,setTimeout(()=>{o.unobserve(r),e.delete(r),s(r.href)},300))):a&&(clearTimeout(a),e.delete(r))}})}function L(){u(()=>{for(const e of document.getElementsByTagName("a"))i(e,"load")&&s(e.href)})}function s(e,t){const o=t?.ignoreSlowConnection??!1;if(S(e,o))if(d.add(e),document.createElement("link").relList?.supports?.("prefetch")&&t?.with!=="fetch"){const n=document.createElement("link");n.rel="prefetch",n.setAttribute("href",e),document.head.append(n)}else fetch(e,{priority:"low"})}function S(e,t){if(!navigator.onLine||!t&&m())return!1;try{const o=new URL(e,location.href);return location.origin===o.origin&&(location.pathname!==o.pathname||location.search!==o.search)&&!d.has(e)}catch{}return!1}function i(e,t){if(e?.tagName!=="A")return!1;const o=e.dataset.astroPrefetch;return o==="false"?!1:t==="tap"&&(o!=null||f)&&m()?!0:o==null&&f||o===""?t===h:o===t}function m(){if("connection"in navigator){const e=navigator.connection;return e.saveData||/2g/.test(e.effectiveType)}return!1}function u(e){e();let t=!1;document.addEventListener("astro:page-load",()=>{if(!t){t=!0;return}e()})}v(); diff --git a/dist/_astro/talvos-wasm.-CWWtbU-.wasm b/dist/_astro/talvos-wasm.Cwq1QDYP.wasm similarity index 85% rename from dist/_astro/talvos-wasm.-CWWtbU-.wasm rename to dist/_astro/talvos-wasm.Cwq1QDYP.wasm index 973b786..8c90ab4 100644 Binary files a/dist/_astro/talvos-wasm.-CWWtbU-.wasm and b/dist/_astro/talvos-wasm.Cwq1QDYP.wasm differ diff --git a/dist/_astro/talvos-wasm.-CWWtbU-.wasm.dwp b/dist/_astro/talvos-wasm.Cwq1QDYP.wasm.dwp similarity index 55% rename from dist/_astro/talvos-wasm.-CWWtbU-.wasm.dwp rename to dist/_astro/talvos-wasm.Cwq1QDYP.wasm.dwp index a644f38..01b4cee 100644 Binary files a/dist/_astro/talvos-wasm.-CWWtbU-.wasm.dwp and b/dist/_astro/talvos-wasm.Cwq1QDYP.wasm.dwp differ diff --git a/dist/_astro/ui-core.CRsU5wLh.js b/dist/_astro/ui-core.CRsU5wLh.js deleted file mode 100644 index bebf2bd..0000000 --- a/dist/_astro/ui-core.CRsU5wLh.js +++ /dev/null @@ -1,2 +0,0 @@ -import{_ as xs}from"./preload-helper.Cd0R8zjt.js";var qs=Object.defineProperty,F=(e,t)=>{for(var u in t)qs(e,u,{get:t[u],enumerable:!0})};function L(){}function hu(e){return e()}function ye(){return Object.create(null)}function J(e){e.forEach(hu)}function mu(e){return typeof e=="function"}function fe(e,t){return e!=e?t==t:e!==t||e&&typeof e=="object"||typeof e=="function"}var oe;function ce(e,t){return oe||(oe=document.createElement("a")),oe.href=t,e===oe.href}function Vs(e){return Object.keys(e).length===0}function A(e,t){e.appendChild(t)}function T(e,t,u){e.insertBefore(t,u||null)}function v(e){e.parentNode&&e.parentNode.removeChild(e)}function ie(e,t){for(let u=0;ue.removeEventListener(t,u,r)}function g(e,t,u){u==null?e.removeAttribute(t):e.getAttribute(t)!==u&&e.setAttribute(t,u)}function Gs(e){return Array.from(e.childNodes)}function j(e,t){t=""+t,e.data!==t&&(e.data=t)}function ze(e,t){e.value=t??""}function K(e,t,u){e.classList[u?"add":"remove"](t)}var Ws=class{constructor(e=!1){this.is_svg=!1,this.is_svg=e,this.e=this.n=null}c(e){this.h(e)}m(e,t,u=null){this.e||(this.is_svg?this.e=Ks(t.nodeName):this.e=p(t.nodeType===11?"TEMPLATE":t.nodeName),this.t=t.tagName!=="TEMPLATE"?t:t.content,this.c(e)),this.i(u)}h(e){this.e.innerHTML=e,this.n=Array.from(this.e.nodeName==="TEMPLATE"?this.e.content.childNodes:this.e.childNodes)}i(e){for(let t=0;te.indexOf(r)===-1?t.push(r):u.push(r)),u.forEach(r=>r()),$=t}var _e=new Set,W;function ae(){W={r:0,c:[],p:W}}function ne(){W.r||J(W.c),W=W.p}function z(e,t){e&&e.i&&(_e.delete(e),e.i(t))}function U(e,t,u,r){if(e&&e.o){if(_e.has(e))return;_e.add(e),W.c.push(()=>{_e.delete(e),r&&(u&&e.d(1),r())}),e.o(t)}else r&&r()}function ul(e,t){U(e,1,1,()=>{t.delete(e.key)})}function tl(e,t,u,r,s,l,a,n,i,d,_,h){let m=e.length,f=l.length,c=m;const o={};for(;c--;)o[e[c].key]=c;const E=[],B=new Map,R=new Map,k=[];for(c=f;c--;){const b=h(s,l,c),D=u(b);let w=a.get(D);w?k.push(()=>w.p(b,t)):(w=d(D,b),w.c()),B.set(D,E[c]=w),D in o&&R.set(D,Math.abs(c-o[D]))}const y=new Set,q=new Set;function P(b){z(b,1),b.m(n,_),a.set(b.key,b),_=b.first,f--}for(;m&&f;){const b=E[f-1],D=e[m-1],w=b.key,x=D.key;b===D?(_=b.first,m--,f--):B.has(x)?!a.has(w)||y.has(w)?P(b):q.has(x)?m--:R.get(w)>R.get(x)?(q.add(w),P(b)):(y.add(x),m--):(i(D,a),m--)}for(;m--;){const b=e[m];B.has(b.key)||i(b,a)}for(;f;)P(E[f-1]);return J(k),E}function rl(e,t,u){const r=e.$$.props[t];r!==void 0&&(e.$$.bound[r]=u,u(e.$$.ctx[r]))}function ke(e){e&&e.c()}function Ee(e,t,u,r){const{fragment:s,after_update:l}=e.$$;s&&s.m(t,u),r||Te(()=>{const a=e.$$.on_mount.map(hu).filter(mu);e.$$.on_destroy?e.$$.on_destroy.push(...a):J(a),e.$$.on_mount=[]}),l.forEach(Te)}function de(e,t){const u=e.$$;u.fragment!==null&&(el(u.after_update),J(u.on_destroy),u.fragment&&u.fragment.d(t),u.on_destroy=u.fragment=null,u.ctx=[])}function sl(e,t){e.$$.dirty[0]===-1&&(X.push(e),Xs(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const c=f.length?f[0]:m;return d.ctx&&s(d.ctx[h],d.ctx[h]=c)&&(!d.skip_bound&&d.bound[h]&&d.bound[h](c),_&&sl(e,h)),m}):[],d.update(),_=!0,J(d.before_update),d.fragment=r?r(d.ctx):!1,t.target){if(t.hydrate){const h=Gs(t.target);d.fragment&&d.fragment.l(h),h.forEach(v)}else d.fragment&&d.fragment.c();t.intro&&z(e.$$.fragment),Ee(e,t.target,t.anchor,t.customElement),gu()}re(i)}var me=class{$destroy(){de(this,1),this.$destroy=L}$on(e,t){if(!mu(t))return L;const u=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return u.push(t),()=>{const r=u.indexOf(t);r!==-1&&u.splice(r,1)}}$set(e){this.$$set&&!Vs(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}};function O(e){const t=typeof e=="string"?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90}function Q(e){const t=typeof e=="string"?e.charCodeAt(0):e;return t>=48&&t<=57}function V(e){return O(e)||Q(e)}var ll=["art-lojban","cel-gaulish","no-bok","no-nyn","zh-guoyu","zh-hakka","zh-min","zh-min-nan","zh-xiang"],je={"en-gb-oed":"en-GB-oxendict","i-ami":"ami","i-bnn":"bnn","i-default":null,"i-enochian":null,"i-hak":"hak","i-klingon":"tlh","i-lux":"lb","i-mingo":null,"i-navajo":"nv","i-pwn":"pwn","i-tao":"tao","i-tay":"tay","i-tsu":"tsu","sgn-be-fr":"sfb","sgn-be-nl":"vgt","sgn-ch-de":"sgg","art-lojban":"jbo","cel-gaulish":null,"no-bok":"nb","no-nyn":"nn","zh-guoyu":"cmn","zh-hakka":"hak","zh-min":null,"zh-min-nan":"nan","zh-xiang":"hsn"},al={}.hasOwnProperty;function Ru(e,t={}){const u=Oe(),r=String(e),s=r.toLowerCase();let l=0;if(e==null)throw new Error("Expected string, got `"+e+"`");if(al.call(je,s)){const n=je[s];return(t.normalize===void 0||t.normalize===null||t.normalize)&&typeof n=="string"?Ru(n):(u[ll.includes(s)?"regular":"irregular"]=r,u)}for(;O(s.charCodeAt(l))&&l<9;)l++;if(l>1&&l<9){if(u.language=r.slice(0,l),l<4){let n=0;for(;s.charCodeAt(l)===45&&O(s.charCodeAt(l+1))&&O(s.charCodeAt(l+2))&&O(s.charCodeAt(l+3))&&!O(s.charCodeAt(l+4));){if(n>2)return a(l,3,"Too many extended language subtags, expected at most 3 subtags");u.extendedLanguageSubtags.push(r.slice(l+1,l+4)),l+=4,n++}}for(s.charCodeAt(l)===45&&O(s.charCodeAt(l+1))&&O(s.charCodeAt(l+2))&&O(s.charCodeAt(l+3))&&O(s.charCodeAt(l+4))&&!O(s.charCodeAt(l+5))&&(u.script=r.slice(l+1,l+5),l+=5),s.charCodeAt(l)===45&&(O(s.charCodeAt(l+1))&&O(s.charCodeAt(l+2))&&!O(s.charCodeAt(l+3))?(u.region=r.slice(l+1,l+3),l+=3):Q(s.charCodeAt(l+1))&&Q(s.charCodeAt(l+2))&&Q(s.charCodeAt(l+3))&&!Q(s.charCodeAt(l+4))&&(u.region=r.slice(l+1,l+4),l+=4));s.charCodeAt(l)===45;){const n=l+1;let i=n;for(;V(s.charCodeAt(i));){if(i-n>7)return a(i,1,"Too long variant, expected at most 8 characters");i++}if(i-n>4||i-n>3&&Q(s.charCodeAt(n)))u.variants.push(r.slice(n,i)),l=i;else break}for(;s.charCodeAt(l)===45&&!(s.charCodeAt(l+1)===120||!V(s.charCodeAt(l+1))||s.charCodeAt(l+2)!==45||!V(s.charCodeAt(l+3)));){let n=l+2,i=0;for(;s.charCodeAt(n)===45&&V(s.charCodeAt(n+1))&&V(s.charCodeAt(n+2));){const d=n+1;for(n=d+2,i++;V(s.charCodeAt(n));){if(n-d>7)return a(n,2,"Too long extension, expected at most 8 characters");n++}}if(!i)return a(n,4,"Empty extension, extensions must have at least 2 characters of content");u.extensions.push({singleton:r.charAt(l+1),extensions:r.slice(l+3,n).split("-")}),l=n}}else l=0;if(l===0&&s.charCodeAt(l)===120||s.charCodeAt(l)===45&&s.charCodeAt(l+1)===120){l=l?l+2:1;let n=l;for(;s.charCodeAt(n)===45&&V(s.charCodeAt(n+1));){const i=l+1;for(n=i;V(s.charCodeAt(n));){if(n-i>7)return a(n,5,"Too long private-use area, expected at most 8 characters");n++}u.privateuse.push(r.slice(l+1,n)),l=n}}if(l!==r.length)return a(l,6,"Found superfluous content after tag");return u;function a(n,i,d){return t.warning&&t.warning(d,i,n),t.forgiving?u:Oe()}}function Oe(){return{language:null,extendedLanguageSubtags:[],script:null,region:null,variants:[],extensions:[],privateuse:[],irregular:null,regular:null}}function Ue(e,t,u){const r=e.slice();return r[8]=t[u][0],r[9]=t[u][1],r}function nl(e){let t,u,r,s,l,a=e[0]&&Ie();return{c(){a&&a.c(),t=M(),u=p("div"),r=p("p"),r.textContent=`${e[3](30)}`,s=M(),l=p("p"),l.textContent=`${e[3](40)}`,g(r,"class","pagefind-ui__result-title pagefind-ui__loading svelte-j9e30"),g(l,"class","pagefind-ui__result-excerpt pagefind-ui__loading svelte-j9e30"),g(u,"class","pagefind-ui__result-inner svelte-j9e30")},m(n,i){a&&a.m(n,i),T(n,t,i),T(n,u,i),A(u,r),A(u,s),A(u,l)},p(n,i){n[0]?a||(a=Ie(),a.c(),a.m(t.parentNode,t)):a&&(a.d(1),a=null)},d(n){a&&a.d(n),n&&v(t),n&&v(u)}}}function il(e){let t,u,r,s,l=e[1].meta?.title+"",a,n,i,d,_=e[1].excerpt+"",h,m=e[0]&&Le(e),f=e[2].length&&xe(e);return{c(){m&&m.c(),t=M(),u=p("div"),r=p("p"),s=p("a"),a=S(l),i=M(),d=p("p"),h=M(),f&&f.c(),g(s,"class","pagefind-ui__result-link svelte-j9e30"),g(s,"href",n=e[1].meta?.url||e[1].url),g(r,"class","pagefind-ui__result-title svelte-j9e30"),g(d,"class","pagefind-ui__result-excerpt svelte-j9e30"),g(u,"class","pagefind-ui__result-inner svelte-j9e30")},m(c,o){m&&m.m(c,o),T(c,t,o),T(c,u,o),A(u,r),A(r,s),A(s,a),A(u,i),A(u,d),d.innerHTML=_,A(u,h),f&&f.m(u,null)},p(c,o){c[0]?m?m.p(c,o):(m=Le(c),m.c(),m.m(t.parentNode,t)):m&&(m.d(1),m=null),o&2&&l!==(l=c[1].meta?.title+"")&&j(a,l),o&2&&n!==(n=c[1].meta?.url||c[1].url)&&g(s,"href",n),o&2&&_!==(_=c[1].excerpt+"")&&(d.innerHTML=_),c[2].length?f?f.p(c,o):(f=xe(c),f.c(),f.m(u,null)):f&&(f.d(1),f=null)},d(c){m&&m.d(c),c&&v(t),c&&v(u),f&&f.d()}}}function Ie(e){let t;return{c(){t=p("div"),g(t,"class","pagefind-ui__result-thumb pagefind-ui__loading svelte-j9e30")},m(u,r){T(u,t,r)},d(u){u&&v(t)}}}function Le(e){let t,u=e[1].meta.image&&Pe(e);return{c(){t=p("div"),u&&u.c(),g(t,"class","pagefind-ui__result-thumb svelte-j9e30")},m(r,s){T(r,t,s),u&&u.m(t,null)},p(r,s){r[1].meta.image?u?u.p(r,s):(u=Pe(r),u.c(),u.m(t,null)):u&&(u.d(1),u=null)},d(r){r&&v(t),u&&u.d()}}}function Pe(e){let t,u,r;return{c(){t=p("img"),g(t,"class","pagefind-ui__result-image svelte-j9e30"),ce(t.src,u=e[1].meta?.image)||g(t,"src",u),g(t,"alt",r=e[1].meta?.image_alt||e[1].meta?.title)},m(s,l){T(s,t,l)},p(s,l){l&2&&!ce(t.src,u=s[1].meta?.image)&&g(t,"src",u),l&2&&r!==(r=s[1].meta?.image_alt||s[1].meta?.title)&&g(t,"alt",r)},d(s){s&&v(t)}}}function xe(e){let t,u=e[2],r=[];for(let s=0;se.toLocaleUpperCase();function _l(e,t,u){let{show_images:r=!0}=t,{process_result:s=null}=t,{result:l={data:async()=>{}}}=t;const a=["title","image","image_alt","url"];let n,i=[];const d=async h=>{u(1,n=await h.data()),u(1,n=s?.(n)??n),u(2,i=Object.entries(n.meta).filter(([m])=>!a.includes(m)))},_=(h=30)=>". ".repeat(Math.floor(10+Math.random()*h));return e.$$set=h=>{"show_images"in h&&u(0,r=h.show_images),"process_result"in h&&u(4,s=h.process_result),"result"in h&&u(5,l=h.result)},e.$$.update=()=>{e.$$.dirty&32&&d(l)},[r,n,i,_,s,l]}var cl=class extends me{constructor(e){super(),he(this,e,_l,ol,fe,{show_images:0,process_result:4,result:5})}},fl=cl;function Ke(e,t,u){const r=e.slice();return r[11]=t[u][0],r[12]=t[u][1],r}function Ge(e,t,u){const r=e.slice();return r[15]=t[u],r}function El(e){let t,u,r,s,l,a=e[0]&&We();return{c(){a&&a.c(),t=M(),u=p("div"),r=p("p"),r.textContent=`${e[5](30)}`,s=M(),l=p("p"),l.textContent=`${e[5](40)}`,g(r,"class","pagefind-ui__result-title pagefind-ui__loading svelte-4xnkmf"),g(l,"class","pagefind-ui__result-excerpt pagefind-ui__loading svelte-4xnkmf"),g(u,"class","pagefind-ui__result-inner svelte-4xnkmf")},m(n,i){a&&a.m(n,i),T(n,t,i),T(n,u,i),A(u,r),A(u,s),A(u,l)},p(n,i){n[0]?a||(a=We(),a.c(),a.m(t.parentNode,t)):a&&(a.d(1),a=null)},d(n){a&&a.d(n),n&&v(t),n&&v(u)}}}function dl(e){let t,u,r,s,l=e[1].meta?.title+"",a,n,i,d,_,h=e[0]&&Je(e),m=e[4]&&Ye(e),f=e[3],c=[];for(let E=0;Ee.toLocaleUpperCase();function ml(e,t,u){let{show_images:r=!0}=t,{process_result:s=null}=t,{result:l={data:async()=>{}}}=t;const a=["title","image","image_alt","url"];let n,i=[],d=[],_=!1;const h=(c,o)=>{if(c.length<=o)return c;const E=[...c].sort((B,R)=>R.locations.length-B.locations.length).slice(0,3).map(B=>B.url);return c.filter(B=>E.includes(B.url))},m=async c=>{u(1,n=await c.data()),u(1,n=s?.(n)??n),u(2,i=Object.entries(n.meta).filter(([o])=>!a.includes(o))),Array.isArray(n.sub_results)&&(u(4,_=n.sub_results?.[0]?.url===(n.meta?.url||n.url)),_?u(3,d=h(n.sub_results.slice(1),3)):u(3,d=h([...n.sub_results],3)))},f=(c=30)=>". ".repeat(Math.floor(10+Math.random()*c));return e.$$set=c=>{"show_images"in c&&u(0,r=c.show_images),"process_result"in c&&u(6,s=c.process_result),"result"in c&&u(7,l=c.result)},e.$$.update=()=>{e.$$.dirty&128&&m(l)},[r,n,i,d,_,f,s,l]}var Cl=class extends me{constructor(e){super(),he(this,e,ml,hl,fe,{show_images:0,process_result:6,result:7})}},gl=Cl;function uu(e,t,u){const r=e.slice();return r[10]=t[u][0],r[11]=t[u][1],r[12]=t,r[13]=u,r}function tu(e,t,u){const r=e.slice();return r[14]=t[u][0],r[15]=t[u][1],r[16]=t,r[17]=u,r}function ru(e){let t,u,r=e[4]("filters_label",e[5],e[6])+"",s,l,a=Object.entries(e[1]),n=[];for(let i=0;ie.toLocaleUpperCase(),iu=e=>e.toLowerCase();function Bl(e,t,u){let{available_filters:r=null}=t,{show_empty_filters:s=!0}=t,{open_filters:l=[]}=t,{translate:a=()=>""}=t,{automatic_translations:n={}}=t,{translations:i={}}=t,{selected_filters:d={}}=t,_=!1,h=!1;function m(f,c){d[`${f}:${c}`]=this.checked,u(0,d)}return e.$$set=f=>{"available_filters"in f&&u(1,r=f.available_filters),"show_empty_filters"in f&&u(2,s=f.show_empty_filters),"open_filters"in f&&u(3,l=f.open_filters),"translate"in f&&u(4,a=f.translate),"automatic_translations"in f&&u(5,n=f.automatic_translations),"translations"in f&&u(6,i=f.translations),"selected_filters"in f&&u(0,d=f.selected_filters)},e.$$.update=()=>{if(e.$$.dirty&258&&r&&!_){u(8,_=!0);let f=Object.entries(r||{});f.length===1&&Object.entries(f[0][1])?.length<=6&&u(7,h=!0)}},[d,r,s,l,a,n,i,h,_,m]}var Al=class extends me{constructor(e){super(),he(this,e,Bl,Rl,fe,{available_filters:1,show_empty_filters:2,open_filters:3,translate:4,automatic_translations:5,translations:6,selected_filters:0})}},pl=Al,Bu={};F(Bu,{comments:()=>pu,default:()=>vl,direction:()=>vu,strings:()=>Tu,thanks_to:()=>Au});var Au="Jan Claasen ",pu="",vu="ltr",Tu={placeholder:"Soek",clear_search:"Opruim",load_more:"Laai nog resultate",search_label:"Soek hierdie webwerf",filters_label:"Filters",zero_results:"Geen resultate vir [SEARCH_TERM]",many_results:"[COUNT] resultate vir [SEARCH_TERM]",one_result:"[COUNT] resultate vir [SEARCH_TERM]",alt_search:"Geen resultate vir [SEARCH_TERM]. Toon resultate vir [DIFFERENT_TERM] in plaas daarvan",search_suggestion:"Geen resultate vir [SEARCH_TERM]. Probeer eerder een van die volgende terme:",searching:"Soek vir [SEARCH_TERM]"},vl={thanks_to:Au,comments:pu,direction:vu,strings:Tu},Fu={};F(Fu,{comments:()=>bu,default:()=>Tl,direction:()=>Mu,strings:()=>Su,thanks_to:()=>ku});var ku="Maruf Alom ",bu="",Mu="ltr",Su={placeholder:"অনুসন্ধান করুন",clear_search:"মুছে ফেলুন",load_more:"আরো ফলাফল দেখুন",search_label:"এই ওয়েবসাইটে অনুসন্ধান করুন",filters_label:"ফিল্টার",zero_results:"[SEARCH_TERM] এর জন্য কিছু খুঁজে পাওয়া যায়নি",many_results:"[COUNT]-টি ফলাফল পাওয়া গিয়েছে [SEARCH_TERM] এর জন্য",one_result:"[COUNT]-টি ফলাফল পাওয়া গিয়েছে [SEARCH_TERM] এর জন্য",alt_search:"কোন কিছু খুঁজে পাওয়া যায়নি [SEARCH_TERM] এর জন্য. পরিবর্তে [DIFFERENT_TERM] এর জন্য দেখানো হচ্ছে",search_suggestion:"কোন কিছু খুঁজে পাওয়া যায়নি [SEARCH_TERM] এর বিষয়ে. নিন্মের বিষয়বস্তু খুঁজে দেখুন:",searching:"অনুসন্ধান চলছে [SEARCH_TERM]..."},Tl={thanks_to:ku,comments:bu,direction:Mu,strings:Su},Du={};F(Du,{comments:()=>wu,default:()=>Fl,direction:()=>Nu,strings:()=>yu,thanks_to:()=>Hu});var Hu="Pablo Villaverde ",wu="",Nu="ltr",yu={placeholder:"Cerca",clear_search:"Netejar",load_more:"Veure mées resultats",search_label:"Cerca en aquest lloc",filters_label:"Filtres",zero_results:"No es van trobar resultats per [SEARCH_TERM]",many_results:"[COUNT] resultats trobats per [SEARCH_TERM]",one_result:"[COUNT] resultat trobat per [SEARCH_TERM]",alt_search:"No es van trobar resultats per [SEARCH_TERM]. Mostrant al seu lloc resultats per [DIFFERENT_TERM]",search_suggestion:"No es van trobar resultats per [SEARCH_TERM]. Proveu una de les cerques següents:",searching:"Cercant [SEARCH_TERM]..."},Fl={thanks_to:Hu,comments:wu,direction:Nu,strings:yu},zu={};F(zu,{comments:()=>Ou,default:()=>kl,direction:()=>Uu,strings:()=>Iu,thanks_to:()=>ju});var ju="Dalibor Hon ",Ou="",Uu="ltr",Iu={placeholder:"Hledat",clear_search:"Smazat",load_more:"Načíst další výsledky",search_label:"Prohledat tuto stránku",filters_label:"Filtry",zero_results:"Žádné výsledky pro [SEARCH_TERM]",many_results:"[COUNT] výsledků pro [SEARCH_TERM]",one_result:"[COUNT] výsledek pro [SEARCH_TERM]",alt_search:"Žádné výsledky pro [SEARCH_TERM]. Zobrazují se výsledky pro [DIFFERENT_TERM]",search_suggestion:"Žádné výsledky pro [SEARCH_TERM]. Související výsledky hledání:",searching:"Hledám [SEARCH_TERM]..."},kl={thanks_to:ju,comments:Ou,direction:Uu,strings:Iu},Lu={};F(Lu,{comments:()=>xu,default:()=>bl,direction:()=>qu,strings:()=>Vu,thanks_to:()=>Pu});var Pu="Jonas Smedegaard ",xu="",qu="ltr",Vu={placeholder:"Søg",clear_search:"Nulstil",load_more:"Indlæs flere resultater",search_label:"Søg på dette website",filters_label:"Filtre",zero_results:"Ingen resultater for [SEARCH_TERM]",many_results:"[COUNT] resultater for [SEARCH_TERM]",one_result:"[COUNT] resultat for [SEARCH_TERM]",alt_search:"Ingen resultater for [SEARCH_TERM]. Viser resultater for [DIFFERENT_TERM] i stedet",search_suggestion:"Ingen resultater for [SEARCH_TERM]. Prøv et af disse søgeord i stedet:",searching:"Søger efter [SEARCH_TERM]..."},bl={thanks_to:Pu,comments:xu,direction:qu,strings:Vu},Ku={};F(Ku,{comments:()=>Wu,default:()=>Ml,direction:()=>Ju,strings:()=>Zu,thanks_to:()=>Gu});var Gu="Jan Claasen ",Wu="",Ju="ltr",Zu={placeholder:"Suche",clear_search:"Löschen",load_more:"Mehr Ergebnisse laden",search_label:"Suche diese Seite",filters_label:"Filter",zero_results:"Keine Ergebnisse für [SEARCH_TERM]",many_results:"[COUNT] Ergebnisse für [SEARCH_TERM]",one_result:"[COUNT] Ergebnis für [SEARCH_TERM]",alt_search:"Keine Ergebnisse für [SEARCH_TERM]. Stattdessen werden Ergebnisse für [DIFFERENT_TERM] angezeigt",search_suggestion:"Keine Ergebnisse für [SEARCH_TERM]. Versuchen Sie eine der folgenden Suchen:",searching:"Suche für [SEARCH_TERM]"},Ml={thanks_to:Gu,comments:Wu,direction:Ju,strings:Zu},Yu={};F(Yu,{comments:()=>Qu,default:()=>Sl,direction:()=>$u,strings:()=>et,thanks_to:()=>Xu});var Xu="Liam Bigelow ",Qu="",$u="ltr",et={placeholder:"Search",clear_search:"Clear",load_more:"Load more results",search_label:"Search this site",filters_label:"Filters",zero_results:"No results for [SEARCH_TERM]",many_results:"[COUNT] results for [SEARCH_TERM]",one_result:"[COUNT] result for [SEARCH_TERM]",alt_search:"No results for [SEARCH_TERM]. Showing results for [DIFFERENT_TERM] instead",search_suggestion:"No results for [SEARCH_TERM]. Try one of the following searches:",searching:"Searching for [SEARCH_TERM]..."},Sl={thanks_to:Xu,comments:Qu,direction:$u,strings:et},ut={};F(ut,{comments:()=>rt,default:()=>Dl,direction:()=>st,strings:()=>lt,thanks_to:()=>tt});var tt="Pablo Villaverde ",rt="",st="ltr",lt={placeholder:"Buscar",clear_search:"Limpiar",load_more:"Ver más resultados",search_label:"Buscar en este sitio",filters_label:"Filtros",zero_results:"No se encontraron resultados para [SEARCH_TERM]",many_results:"[COUNT] resultados encontrados para [SEARCH_TERM]",one_result:"[COUNT] resultado encontrado para [SEARCH_TERM]",alt_search:"No se encontraron resultados para [SEARCH_TERM]. Mostrando en su lugar resultados para [DIFFERENT_TERM]",search_suggestion:"No se encontraron resultados para [SEARCH_TERM]. Prueba una de las siguientes búsquedas:",searching:"Buscando [SEARCH_TERM]..."},Dl={thanks_to:tt,comments:rt,direction:st,strings:lt},at={};F(at,{comments:()=>it,default:()=>Hl,direction:()=>ot,strings:()=>_t,thanks_to:()=>nt});var nt="Valtteri Laitinen ",it="",ot="ltr",_t={placeholder:"Haku",clear_search:"Tyhjennä",load_more:"Lataa lisää tuloksia",search_label:"Hae tältä sivustolta",filters_label:"Suodattimet",zero_results:"Ei tuloksia haulle [SEARCH_TERM]",many_results:"[COUNT] tulosta haulle [SEARCH_TERM]",one_result:"[COUNT] tulos haulle [SEARCH_TERM]",alt_search:"Ei tuloksia haulle [SEARCH_TERM]. Näytetään tulokset sen sijaan haulle [DIFFERENT_TERM]",search_suggestion:"Ei tuloksia haulle [SEARCH_TERM]. Kokeile jotain seuraavista:",searching:"Haetaan [SEARCH_TERM]..."},Hl={thanks_to:nt,comments:it,direction:ot,strings:_t},ct={};F(ct,{comments:()=>Et,default:()=>wl,direction:()=>dt,strings:()=>ht,thanks_to:()=>ft});var ft="Nicolas Friedli ",Et="",dt="ltr",ht={placeholder:"Rechercher",clear_search:"Nettoyer",load_more:"Charger plus de résultats",search_label:"Recherche sur ce site",filters_label:"Filtres",zero_results:"Pas de résultat pour [SEARCH_TERM]",many_results:"[COUNT] résultats pour [SEARCH_TERM]",one_result:"[COUNT] résultat pour [SEARCH_TERM]",alt_search:"Pas de résultat pour [SEARCH_TERM]. Montre les résultats pour [DIFFERENT_TERM] à la place",search_suggestion:"Pas de résultat pour [SEARCH_TERM]. Essayer une des recherches suivantes:",searching:"Recherche [SEARCH_TERM]..."},wl={thanks_to:ft,comments:Et,direction:dt,strings:ht},mt={};F(mt,{comments:()=>gt,default:()=>Nl,direction:()=>Rt,strings:()=>Bt,thanks_to:()=>Ct});var Ct="Pablo Villaverde ",gt="",Rt="ltr",Bt={placeholder:"Buscar",clear_search:"Limpar",load_more:"Ver máis resultados",search_label:"Buscar neste sitio",filters_label:"Filtros",zero_results:"Non se atoparon resultados para [SEARCH_TERM]",many_results:"[COUNT] resultados atopados para [SEARCH_TERM]",one_result:"[COUNT] resultado atopado para [SEARCH_TERM]",alt_search:"Non se atoparon resultados para [SEARCH_TERM]. Amosando no seu lugar resultados para [DIFFERENT_TERM]",search_suggestion:"Non se atoparon resultados para [SEARCH_TERM]. Probe unha das seguintes pesquisas:",searching:"Buscando [SEARCH_TERM]..."},Nl={thanks_to:Ct,comments:gt,direction:Rt,strings:Bt},At={};F(At,{comments:()=>vt,default:()=>yl,direction:()=>Tt,strings:()=>Ft,thanks_to:()=>pt});var pt="Amit Yadav ",vt="",Tt="ltr",Ft={placeholder:"खोजें",clear_search:"साफ करें",load_more:"और अधिक परिणाम लोड करें",search_label:"इस साइट में खोजें",filters_label:"फ़िल्टर",zero_results:"कोई परिणाम [SEARCH_TERM] के लिए नहीं मिला",many_results:"[COUNT] परिणाम [SEARCH_TERM] के लिए मिले",one_result:"[COUNT] परिणाम [SEARCH_TERM] के लिए मिला",alt_search:"[SEARCH_TERM] के लिए कोई परिणाम नहीं मिला। इसके बजाय [DIFFERENT_TERM] के लिए परिणाम दिखा रहा है",search_suggestion:"[SEARCH_TERM] के लिए कोई परिणाम नहीं मिला। निम्नलिखित खोजों में से कोई एक आज़माएं:",searching:"[SEARCH_TERM] की खोज की जा रही है..."},yl={thanks_to:pt,comments:vt,direction:Tt,strings:Ft},kt={};F(kt,{comments:()=>Mt,default:()=>zl,direction:()=>St,strings:()=>Dt,thanks_to:()=>bt});var bt="Diomed ",Mt="",St="ltr",Dt={placeholder:"Traži",clear_search:"Očisti",load_more:"Učitaj više rezultata",search_label:"Pretraži ovu stranicu",filters_label:"Filteri",zero_results:"Nema rezultata za [SEARCH_TERM]",many_results:"[COUNT] rezultata za [SEARCH_TERM]",one_result:"[COUNT] rezultat za [SEARCH_TERM]",alt_search:"Nema rezultata za [SEARCH_TERM]. Prikazujem rezultate za [DIFFERENT_TERM]",search_suggestion:"Nema rezultata za [SEARCH_TERM]. Pokušaj s jednom od ovih pretraga:",searching:"Pretražujem [SEARCH_TERM]..."},zl={thanks_to:bt,comments:Mt,direction:St,strings:Dt},Ht={};F(Ht,{comments:()=>Nt,default:()=>jl,direction:()=>yt,strings:()=>zt,thanks_to:()=>wt});var wt="Adam Laki ",Nt="",yt="ltr",zt={placeholder:"Keresés",clear_search:"Törlés",load_more:"További találatok betöltése",search_label:"Keresés az oldalon",filters_label:"Szűrés",zero_results:"Nincs találat a(z) [SEARCH_TERM] kifejezésre",many_results:"[COUNT] db találat a(z) [SEARCH_TERM] kifejezésre",one_result:"[COUNT] db találat a(z) [SEARCH_TERM] kifejezésre",alt_search:"Nincs találat a(z) [SEARCH_TERM] kifejezésre. Találatok mutatása inkább a(z) [DIFFERENT_TERM] kifejezésre",search_suggestion:"Nincs találat a(z) [SEARCH_TERM] kifejezésre. Próbáld meg a következő keresések egyikét:",searching:"Keresés a(z) [SEARCH_TERM] kifejezésre..."},jl={thanks_to:wt,comments:Nt,direction:yt,strings:zt},jt={};F(jt,{comments:()=>Ut,default:()=>Ol,direction:()=>It,strings:()=>Lt,thanks_to:()=>Ot});var Ot="Nixentric",Ut="",It="ltr",Lt={placeholder:"Cari",clear_search:"Bersihkan",load_more:"Muat lebih banyak hasil",search_label:"Telusuri situs ini",filters_label:"Filter",zero_results:"[SEARCH_TERM] tidak ditemukan",many_results:"Ditemukan [COUNT] hasil untuk [SEARCH_TERM]",one_result:"Ditemukan [COUNT] hasil untuk [SEARCH_TERM]",alt_search:"[SEARCH_TERM] tidak ditemukan. Menampilkan hasil [DIFFERENT_TERM] sebagai gantinya",search_suggestion:"[SEARCH_TERM] tidak ditemukan. Coba salah satu pencarian berikut ini:",searching:"Mencari [SEARCH_TERM]..."},Ol={thanks_to:Ot,comments:Ut,direction:It,strings:Lt},Pt={};F(Pt,{comments:()=>qt,default:()=>Ul,direction:()=>Vt,strings:()=>Kt,thanks_to:()=>xt});var xt="Cosette Bruhns Alonso, Andrew Janco ",qt="",Vt="ltr",Kt={placeholder:"Cerca",clear_search:"Cancella la cronologia",load_more:"Mostra più risultati",search_label:"Cerca nel sito",filters_label:"Filtri di ricerca",zero_results:"Nessun risultato per [SEARCH_TERM]",many_results:"[COUNT] risultati per [SEARCH_TERM]",one_result:"[COUNT] risultato per [SEARCH_TERM]",alt_search:"Nessun risultato per [SEARCH_TERM]. Mostrando risultati per [DIFFERENT_TERM] come alternativa.",search_suggestion:"Nessun risultato per [SEARCH_TERM]. Prova una delle seguenti ricerche:",searching:"Cercando [SEARCH_TERM]..."},Ul={thanks_to:xt,comments:qt,direction:Vt,strings:Kt},Gt={};F(Gt,{comments:()=>Jt,default:()=>Il,direction:()=>Zt,strings:()=>Yt,thanks_to:()=>Wt});var Wt="Tate",Jt="",Zt="ltr",Yt={placeholder:"検索",clear_search:"クリア",load_more:"次を読み込む",search_label:"このサイトを検索",filters_label:"フィルタ",zero_results:"[SEARCH_TERM]の検索に一致する情報はありませんでした",many_results:"[SEARCH_TERM]の[COUNT]件の検索結果",one_result:"[SEARCH_TERM]の[COUNT]件の検索結果",alt_search:"[SEARCH_TERM]の検索に一致する情報はありませんでした。[DIFFERENT_TERM]の検索結果を表示しています",search_suggestion:"[SEARCH_TERM]の検索に一致する情報はありませんでした。次のいずれかの検索を試してください",searching:"[SEARCH_TERM]を検索しています"},Il={thanks_to:Wt,comments:Jt,direction:Zt,strings:Yt},Xt={};F(Xt,{comments:()=>$t,default:()=>Ll,direction:()=>er,strings:()=>ur,thanks_to:()=>Qt});var Qt="Seokho Son ",$t="",er="ltr",ur={placeholder:"검색어",clear_search:"비우기",load_more:"검색 결과 더 보기",search_label:"사이트 검색",filters_label:"필터",zero_results:"[SEARCH_TERM]에 대한 결과 없음",many_results:"[SEARCH_TERM]에 대한 결과 [COUNT]건",one_result:"[SEARCH_TERM]에 대한 결과 [COUNT]건",alt_search:"[SEARCH_TERM]에 대한 결과 없음. [DIFFERENT_TERM]에 대한 결과",search_suggestion:"[SEARCH_TERM]에 대한 결과 없음. 추천 검색어: ",searching:"[SEARCH_TERM] 검색 중..."},Ll={thanks_to:Qt,comments:$t,direction:er,strings:ur},tr={};F(tr,{comments:()=>sr,default:()=>Pl,direction:()=>lr,strings:()=>ar,thanks_to:()=>rr});var rr="",sr="",lr="ltr",ar={placeholder:"Rapu",clear_search:"Whakakore",load_more:"Whakauta ētahi otinga kē",search_label:"Rapu",filters_label:"Tātari",zero_results:"Otinga kore ki [SEARCH_TERM]",many_results:"[COUNT] otinga ki [SEARCH_TERM]",one_result:"[COUNT] otinga ki [SEARCH_TERM]",alt_search:"Otinga kore ki [SEARCH_TERM]. Otinga kē ki [DIFFERENT_TERM]",search_suggestion:"Otinga kore ki [SEARCH_TERM]. whakamātau ki ngā mea atu:",searching:"Rapu ki [SEARCH_TERM]..."},Pl={thanks_to:rr,comments:sr,direction:lr,strings:ar},nr={};F(nr,{comments:()=>or,default:()=>xl,direction:()=>_r,strings:()=>cr,thanks_to:()=>ir});var ir="Paul van Brouwershaven",or="",_r="ltr",cr={placeholder:"Zoeken",clear_search:"Reset",load_more:"Meer resultaten laden",search_label:"Doorzoek deze site",filters_label:"Filters",zero_results:"Geen resultaten voor [SEARCH_TERM]",many_results:"[COUNT] resultaten voor [SEARCH_TERM]",one_result:"[COUNT] resultaat voor [SEARCH_TERM]",alt_search:"Geen resultaten voor [SEARCH_TERM]. In plaats daarvan worden resultaten voor [DIFFERENT_TERM] weergegeven",search_suggestion:"Geen resultaten voor [SEARCH_TERM]. Probeer een van de volgende zoekopdrachten:",searching:"Zoeken naar [SEARCH_TERM]..."},xl={thanks_to:ir,comments:or,direction:_r,strings:cr},fr={};F(fr,{comments:()=>dr,default:()=>ql,direction:()=>hr,strings:()=>mr,thanks_to:()=>Er});var Er="Christopher Wingate",dr="",hr="ltr",mr={placeholder:"Søk",clear_search:"Fjern",load_more:"Last flere resultater",search_label:"Søk på denne siden",filters_label:"Filtre",zero_results:"Ingen resultater for [SEARCH_TERM]",many_results:"[COUNT] resultater for [SEARCH_TERM]",one_result:"[COUNT] resultat for [SEARCH_TERM]",alt_search:"Ingen resultater for [SEARCH_TERM]. Viser resultater for [DIFFERENT_TERM] i stedet",search_suggestion:"Ingen resultater for [SEARCH_TERM]. Prøv en av disse søkeordene i stedet:",searching:"Søker etter [SEARCH_TERM]"},ql={thanks_to:Er,comments:dr,direction:hr,strings:mr},Cr={};F(Cr,{comments:()=>Rr,default:()=>Vl,direction:()=>Br,strings:()=>Ar,thanks_to:()=>gr});var gr="",Rr="",Br="ltr",Ar={placeholder:"Szukaj",clear_search:"Wyczyść",load_more:"Załaduj więcej",search_label:"Przeszukaj tę stronę",filters_label:"Filtry",zero_results:"Brak wyników dla [SEARCH_TERM]",many_results:"[COUNT] wyników dla [SEARCH_TERM]",one_result:"[COUNT] wynik dla [SEARCH_TERM]",alt_search:"Brak wyników dla [SEARCH_TERM]. Wyświetlam wyniki dla [DIFFERENT_TERM]",search_suggestion:"Brak wyników dla [SEARCH_TERM]. Pokrewne wyniki wyszukiwania:",searching:"Szukam [SEARCH_TERM]..."},Vl={thanks_to:gr,comments:Rr,direction:Br,strings:Ar},pr={};F(pr,{comments:()=>Tr,default:()=>Kl,direction:()=>Fr,strings:()=>kr,thanks_to:()=>vr});var vr="Jonatah",Tr="",Fr="ltr",kr={placeholder:"Pesquisar",clear_search:"Limpar",load_more:"Ver mais resultados",search_label:"Pesquisar",filters_label:"Filtros",zero_results:"Nenhum resultado encontrado para [SEARCH_TERM]",many_results:"[COUNT] resultados encontrados para [SEARCH_TERM]",one_result:"[COUNT] resultado encontrado para [SEARCH_TERM]",alt_search:"Nenhum resultado encontrado para [SEARCH_TERM]. Exibindo resultados para [DIFFERENT_TERM]",search_suggestion:"Nenhum resultado encontrado para [SEARCH_TERM]. Tente uma das seguintes pesquisas:",searching:"Pesquisando por [SEARCH_TERM]..."},Kl={thanks_to:vr,comments:Tr,direction:Fr,strings:kr},br={};F(br,{comments:()=>Sr,default:()=>Gl,direction:()=>Dr,strings:()=>Hr,thanks_to:()=>Mr});var Mr="Bogdan Mateescu ",Sr="",Dr="ltr",Hr={placeholder:"Căutare",clear_search:"Ştergeţi",load_more:"Încărcați mai multe rezultate",search_label:"Căutați în acest site",filters_label:"Filtre",zero_results:"Niciun rezultat pentru [SEARCH_TERM]",many_results:"[COUNT] rezultate pentru [SEARCH_TERM]",one_result:"[COUNT] rezultat pentru [SEARCH_TERM]",alt_search:"Niciun rezultat pentru [SEARCH_TERM]. Se afișează în schimb rezultatele pentru [DIFFERENT_TERM]",search_suggestion:"Niciun rezultat pentru [SEARCH_TERM]. Încercați una dintre următoarele căutări:",searching:"Se caută după: [SEARCH_TERM]..."},Gl={thanks_to:Mr,comments:Sr,direction:Dr,strings:Hr},wr={};F(wr,{comments:()=>yr,default:()=>Wl,direction:()=>zr,strings:()=>jr,thanks_to:()=>Nr});var Nr="Aleksandr Gordeev",yr="",zr="ltr",jr={placeholder:"Поиск",clear_search:"Очистить поле",load_more:"Загрузить еще",search_label:"Поиск по сайту",filters_label:"Фильтры",zero_results:"Ничего не найдено по запросу: [SEARCH_TERM]",many_results:"[COUNT] результатов по запросу: [SEARCH_TERM]",one_result:"[COUNT] результат по запросу: [SEARCH_TERM]",alt_search:"Ничего не найдено по запросу: [SEARCH_TERM]. Показаны результаты по запросу: [DIFFERENT_TERM]",search_suggestion:"Ничего не найдено по запросу: [SEARCH_TERM]. Попробуйте один из следующих вариантов",searching:"Поиск по запросу: [SEARCH_TERM]"},Wl={thanks_to:Nr,comments:yr,direction:zr,strings:jr},Or={};F(Or,{comments:()=>Ir,default:()=>Jl,direction:()=>Lr,strings:()=>Pr,thanks_to:()=>Ur});var Ur="Andrija Sagicc",Ir="",Lr="ltr",Pr={placeholder:"Претрага",clear_search:"Брисање",load_more:"Приказ више резултата",search_label:"Претрага сајта",filters_label:"Филтери",zero_results:"Нема резултата за [SEARCH_TERM]",many_results:"[COUNT] резултата за [SEARCH_TERM]",one_result:"[COUNT] резултата за [SEARCH_TERM]",alt_search:"Нема резултата за [SEARCH_TERM]. Приказ додатник резултата за [DIFFERENT_TERM]",search_suggestion:"Нема резултата за [SEARCH_TERM]. Покушајте са неком од следећих претрага:",searching:"Претрага термина [SEARCH_TERM]..."},Jl={thanks_to:Ur,comments:Ir,direction:Lr,strings:Pr},xr={};F(xr,{comments:()=>Vr,default:()=>Zl,direction:()=>Kr,strings:()=>Gr,thanks_to:()=>qr});var qr="Montazar Al-Jaber ",Vr="",Kr="ltr",Gr={placeholder:"Sök",clear_search:"Rensa",load_more:"Visa fler träffar",search_label:"Sök på denna sida",filters_label:"Filter",zero_results:"[SEARCH_TERM] gav inga träffar",many_results:"[SEARCH_TERM] gav [COUNT] träffar",one_result:"[SEARCH_TERM] gav [COUNT] träff",alt_search:"[SEARCH_TERM] gav inga träffar. Visar resultat för [DIFFERENT_TERM] istället",search_suggestion:"[SEARCH_TERM] gav inga träffar. Försök igen med en av följande sökord:",searching:"Söker efter [SEARCH_TERM]..."},Zl={thanks_to:qr,comments:Vr,direction:Kr,strings:Gr},Wr={};F(Wr,{comments:()=>Zr,default:()=>Yl,direction:()=>Yr,strings:()=>Xr,thanks_to:()=>Jr});var Jr="",Zr="",Yr="ltr",Xr={placeholder:"தேடுக",clear_search:"அழிக்குக",load_more:"மேலும் முடிவுகளைக் காட்டுக",search_label:"இந்த தளத்தில் தேடுக",filters_label:"வடிகட்டல்கள்",zero_results:"[SEARCH_TERM] க்கான முடிவுகள் இல்லை",many_results:"[SEARCH_TERM] க்கான [COUNT] முடிவுகள்",one_result:"[SEARCH_TERM] க்கான முடிவு",alt_search:"[SEARCH_TERM] இத்தேடலுக்கான முடிவுகள் இல்லை, இந்த தேடல்களுக்கான ஒத்த முடிவுகள் [DIFFERENT_TERM]",search_suggestion:"[SEARCH_TERM] இத் தேடலுக்கான முடிவுகள் இல்லை.இதற்கு பதிலீடான தேடல்களை தேடுக:",searching:"[SEARCH_TERM] தேடப்படுகின்றது"},Yl={thanks_to:Jr,comments:Zr,direction:Yr,strings:Xr},Qr={};F(Qr,{comments:()=>es,default:()=>Xl,direction:()=>us,strings:()=>ts,thanks_to:()=>$r});var $r="Taylan Özgür Bildik",es="",us="ltr",ts={placeholder:"Araştır",clear_search:"Temizle",load_more:"Daha fazla sonuç",search_label:"Site genelinde arama",filters_label:"Filtreler",zero_results:"[SEARCH_TERM] için sonuç yok",many_results:"[SEARCH_TERM] için [COUNT] sonuç bulundu",one_result:"[SEARCH_TERM] için [COUNT] sonuç bulundu",alt_search:"[SEARCH_TERM] için sonuç yok. Bunun yerine [DIFFERENT_TERM] için sonuçlar gösteriliyor",search_suggestion:"[SEARCH_TERM] için sonuç yok. Alternatif olarak aşağıdaki kelimelerden birini deneyebilirsiniz:",searching:"[SEARCH_TERM] araştırılıyor..."},Xl={thanks_to:$r,comments:es,direction:us,strings:ts},rs={};F(rs,{comments:()=>ls,default:()=>Ql,direction:()=>as,strings:()=>ns,thanks_to:()=>ss});var ss="Vladyslav Lyshenko ",ls="",as="ltr",ns={placeholder:"Пошук",clear_search:"Очистити поле",load_more:"Завантажити ще",search_label:"Пошук по сайту",filters_label:"Фільтри",zero_results:"Нічого не знайдено за запитом: [SEARCH_TERM]",many_results:"[COUNT] результатів на запит: [SEARCH_TERM]",one_result:"[COUNT] результат за запитом: [SEARCH_TERM]",alt_search:"Нічого не знайдено на запит: [SEARCH_TERM]. Показано результати на запит: [DIFFERENT_TERM]",search_suggestion:"Нічого не знайдено на запит: [SEARCH_TERM]. Спробуйте один із таких варіантів",searching:"Пошук за запитом: [SEARCH_TERM]"},Ql={thanks_to:ss,comments:ls,direction:as,strings:ns},is={};F(is,{comments:()=>_s,default:()=>$l,direction:()=>cs,strings:()=>fs,thanks_to:()=>os});var os="Long Nhat Nguyen",_s="",cs="ltr",fs={placeholder:"Tìm kiếm",clear_search:"Xóa",load_more:"Nhiều kết quả hơn",search_label:"Tìm kiếm trong trang này",filters_label:"Bộ lọc",zero_results:"Không tìm thấy kết quả cho [SEARCH_TERM]",many_results:"[COUNT] kết quả cho [SEARCH_TERM]",one_result:"[COUNT] kết quả cho [SEARCH_TERM]",alt_search:"Không tìm thấy kết quả cho [SEARCH_TERM]. Kiểm thị kết quả thay thế với [DIFFERENT_TERM]",search_suggestion:"Không tìm thấy kết quả cho [SEARCH_TERM]. Thử một trong các tìm kiếm:",searching:"Đang tìm kiếm cho [SEARCH_TERM]..."},$l={thanks_to:os,comments:_s,direction:cs,strings:fs},Es={};F(Es,{comments:()=>hs,default:()=>ea,direction:()=>ms,strings:()=>Cs,thanks_to:()=>ds});var ds="Amber Song",hs="",ms="ltr",Cs={placeholder:"搜索",clear_search:"清除",load_more:"加载更多结果",search_label:"站内搜索",filters_label:"筛选",zero_results:"未找到 [SEARCH_TERM] 的相关结果",many_results:"找到 [COUNT] 个 [SEARCH_TERM] 的相关结果",one_result:"找到 [COUNT] 个 [SEARCH_TERM] 的相关结果",alt_search:"未找到 [SEARCH_TERM] 的相关结果。改为显示 [DIFFERENT_TERM] 的相关结果",search_suggestion:"未找到 [SEARCH_TERM] 的相关结果。请尝试以下搜索。",searching:"正在搜索 [SEARCH_TERM]..."},ea={thanks_to:ds,comments:hs,direction:ms,strings:Cs},gs={};F(gs,{comments:()=>Bs,default:()=>ua,direction:()=>As,strings:()=>ps,thanks_to:()=>Rs});var Rs="Amber Song",Bs="",As="ltr",ps={placeholder:"搜索",clear_search:"清除",load_more:"加載更多結果",search_label:"站內搜索",filters_label:"篩選",zero_results:"未找到 [SEARCH_TERM] 的相關結果",many_results:"找到 [COUNT] 個 [SEARCH_TERM] 的相關結果",one_result:"找到 [COUNT] 個 [SEARCH_TERM] 的相關結果",alt_search:"未找到 [SEARCH_TERM] 的相關結果。改為顯示 [DIFFERENT_TERM] 的相關結果",search_suggestion:"未找到 [SEARCH_TERM] 的相關結果。請嘗試以下搜索。",searching:"正在搜索 [SEARCH_TERM]..."},ua={thanks_to:Rs,comments:Bs,direction:As,strings:ps},vs={};F(vs,{comments:()=>Fs,default:()=>ta,direction:()=>ks,strings:()=>bs,thanks_to:()=>Ts});var Ts="Amber Song",Fs="",ks="ltr",bs={placeholder:"搜索",clear_search:"清除",load_more:"加载更多结果",search_label:"站内搜索",filters_label:"筛选",zero_results:"未找到 [SEARCH_TERM] 的相关结果",many_results:"找到 [COUNT] 个 [SEARCH_TERM] 的相关结果",one_result:"找到 [COUNT] 个 [SEARCH_TERM] 的相关结果",alt_search:"未找到 [SEARCH_TERM] 的相关结果。改为显示 [DIFFERENT_TERM] 的相关结果",search_suggestion:"未找到 [SEARCH_TERM] 的相关结果。请尝试以下搜索。",searching:"正在搜索 [SEARCH_TERM]..."},ta={thanks_to:Ts,comments:Fs,direction:ks,strings:bs},ra=[Bu,Fu,Du,zu,Lu,Ku,Yu,ut,at,ct,mt,At,kt,Ht,jt,Pt,Gt,Xt,tr,nr,fr,Cr,pr,br,wr,Or,xr,Wr,Qr,rs,is,Es,gs,vs],sa=ra,la=["../../translations/af.json","../../translations/bn.json","../../translations/ca.json","../../translations/cs.json","../../translations/da.json","../../translations/de.json","../../translations/en.json","../../translations/es.json","../../translations/fi.json","../../translations/fr.json","../../translations/gl.json","../../translations/hi.json","../../translations/hr.json","../../translations/hu.json","../../translations/id.json","../../translations/it.json","../../translations/ja.json","../../translations/ko.json","../../translations/mi.json","../../translations/nl.json","../../translations/no.json","../../translations/pl.json","../../translations/pt.json","../../translations/ro.json","../../translations/ru.json","../../translations/sr.json","../../translations/sv.json","../../translations/ta.json","../../translations/tr.json","../../translations/uk.json","../../translations/vi.json","../../translations/zh-cn.json","../../translations/zh-tw.json","../../translations/zh.json"];function ou(e,t,u){const r=e.slice();return r[51]=t[u],r}function _u(e){let t,u,r;function s(a){e[37](a)}let l={show_empty_filters:e[5],open_filters:e[6],available_filters:e[18],translate:e[20],automatic_translations:e[19],translations:e[7]};return e[0]!==void 0&&(l.selected_filters=e[0]),t=new pl({props:l}),le.push(()=>rl(t,"selected_filters",s)),{c(){ke(t.$$.fragment)},m(a,n){Ee(t,a,n),r=!0},p(a,n){const i={};n[0]&32&&(i.show_empty_filters=a[5]),n[0]&64&&(i.open_filters=a[6]),n[0]&262144&&(i.available_filters=a[18]),n[0]&524288&&(i.automatic_translations=a[19]),n[0]&128&&(i.translations=a[7]),!u&&n[0]&1&&(u=!0,i.selected_filters=a[0],Qs(()=>u=!1)),t.$set(i)},i(a){r||(z(t.$$.fragment,a),r=!0)},o(a){U(t.$$.fragment,a),r=!1},d(a){de(t,a)}}}function cu(e){let t,u,r,s;const l=[na,aa],a=[];function n(i,d){return i[14]?0:1}return u=n(e),r=a[u]=l[u](e),{c(){t=p("div"),r.c(),g(t,"class","pagefind-ui__results-area svelte-e9gkc3")},m(i,d){T(i,t,d),a[u].m(t,null),s=!0},p(i,d){let _=u;u=n(i),u===_?a[u].p(i,d):(ae(),U(a[_],1,1,()=>{a[_]=null}),ne(),r=a[u],r?r.p(i,d):(r=a[u]=l[u](i),r.c()),z(r,1),r.m(t,null))},i(i){s||(z(r),s=!0)},o(i){U(r),s=!1},d(i){i&&v(t),a[u].d()}}}function aa(e){let t,u,r,s=[],l=new Map,a,n,i;function d(o,E){return o[13].results.length===0?_a:o[13].results.length===1?oa:ia}let _=d(e),h=_(e),m=e[13].results.slice(0,e[17]);const f=o=>o[51].id;for(let o=0;oe[17]&&Eu(e);return{c(){t=p("p"),h.c(),u=M(),r=p("ol");for(let o=0;oo[17]?c?c.p(o,E):(c=Eu(o),c.c(),c.m(n.parentNode,n)):c&&(c.d(1),c=null)},i(o){if(!i){for(let E=0;E{i[m]=null}),ne(),s=i[r],s?s.p(t,h):(s=i[r]=n[r](t),s.c()),z(s,1),s.m(l.parentNode,l))},i(_){a||(z(s),a=!0)},o(_){U(s),a=!1},d(_){_&&v(u),i[r].d(_),_&&v(l)}}}function Eu(e){let t,u=e[20]("load_more",e[19],e[7])+"",r,s,l;return{c(){t=p("button"),r=S(u),g(t,"type","button"),g(t,"class","pagefind-ui__button svelte-e9gkc3")},m(a,n){T(a,t,n),A(t,r),s||(l=G(t,"click",e[22]),s=!0)},p(a,n){n[0]&524416&&u!==(u=a[20]("load_more",a[19],a[7])+"")&&j(r,u)},d(a){a&&v(t),s=!1,l()}}}function du(e){let t,u=e[20]("searching",e[19],e[7]).replace(/\[SEARCH_TERM\]/,e[16])+"",r;return{c(){t=p("p"),r=S(u),g(t,"class","pagefind-ui__message svelte-e9gkc3")},m(s,l){T(s,t,l),A(t,r)},p(s,l){l[0]&589952&&u!==(u=s[20]("searching",s[19],s[7]).replace(/\[SEARCH_TERM\]/,s[16])+"")&&j(r,u)},d(s){s&&v(t)}}}function Ea(e){let t,u,r,s,l,a,n=e[20]("clear_search",e[19],e[7])+"",i,d,_,h,m,f,c,o,E=e[12]&&_u(e),B=e[15]&&cu(e);return{c(){t=p("div"),u=p("form"),r=p("input"),l=M(),a=p("button"),i=S(n),d=M(),_=p("div"),E&&E.c(),h=M(),B&&B.c(),g(r,"class","pagefind-ui__search-input svelte-e9gkc3"),g(r,"type","text"),g(r,"placeholder",s=e[20]("placeholder",e[19],e[7])),g(r,"autocapitalize","none"),g(r,"enterkeyhint","search"),r.autofocus=e[8],g(a,"class","pagefind-ui__search-clear svelte-e9gkc3"),K(a,"pagefind-ui__suppressed",!e[9]),g(_,"class","pagefind-ui__drawer svelte-e9gkc3"),K(_,"pagefind-ui__hidden",!e[15]),g(u,"class","pagefind-ui__form svelte-e9gkc3"),g(u,"role","search"),g(u,"aria-label",m=e[20]("search_label",e[19],e[7])),g(u,"action","javascript:void(0);"),g(t,"class","pagefind-ui svelte-e9gkc3"),K(t,"pagefind-ui--reset",e[1])},m(R,k){T(R,t,k),A(t,u),A(u,r),ze(r,e[9]),e[34](r),A(u,l),A(u,a),A(a,i),e[35](a),A(u,d),A(u,_),E&&E.m(_,null),A(_,h),B&&B.m(_,null),f=!0,e[8]&&r.focus(),c||(o=[G(r,"focus",e[21]),G(r,"keydown",e[32]),G(r,"input",e[33]),G(a,"click",e[36]),G(u,"submit",da)],c=!0)},p(R,k){(!f||k[0]&524416&&s!==(s=R[20]("placeholder",R[19],R[7])))&&g(r,"placeholder",s),(!f||k[0]&256)&&(r.autofocus=R[8]),k[0]&512&&r.value!==R[9]&&ze(r,R[9]),(!f||k[0]&524416)&&n!==(n=R[20]("clear_search",R[19],R[7])+"")&&j(i,n),(!f||k[0]&512)&&K(a,"pagefind-ui__suppressed",!R[9]),R[12]?E?(E.p(R,k),k[0]&4096&&z(E,1)):(E=_u(R),E.c(),z(E,1),E.m(_,h)):E&&(ae(),U(E,1,1,()=>{E=null}),ne()),R[15]?B?(B.p(R,k),k[0]&32768&&z(B,1)):(B=cu(R),B.c(),z(B,1),B.m(_,null)):B&&(ae(),U(B,1,1,()=>{B=null}),ne()),(!f||k[0]&32768)&&K(_,"pagefind-ui__hidden",!R[15]),(!f||k[0]&524416&&m!==(m=R[20]("search_label",R[19],R[7])))&&g(u,"aria-label",m),(!f||k[0]&2)&&K(t,"pagefind-ui--reset",R[1])},i(R){f||(z(E),z(B),f=!0)},o(R){U(E),U(B),f=!1},d(R){R&&v(t),e[34](null),e[35](null),E&&E.d(),B&&B.d(),c=!1,J(o)}}}var da=e=>e.preventDefault();function ha(e,t,u){const r={},s=la.map(C=>C.match(/([^\/]+)\.json$/)[1]);for(let C=0;CN[C]??H[C]??"";Js(()=>{let C=document?.querySelector?.("html")?.getAttribute?.("lang")||"en",H=Ru(C.toLocaleLowerCase());u(19,He=r[`${H.language}-${H.script}-${H.region}`]||r[`${H.language}-${H.region}`]||r[`${H.language}`]||r.en)}),Zs(()=>{D?.destroy?.(),D=null});const we=async()=>{if(!Ce&&(u(12,Ce=!0),!D)){let C;try{C=await xs(()=>import(`${l}pagefind.js`),[])}catch(N){console.error(N),console.error([`Pagefind couldn't be loaded from ${this.options.bundlePath}pagefind.js`,"You can configure this by passing a bundlePath option to PagefindUI",`[DEBUG: Loaded from ${document?.currentScript?.src??"no known script location"}]`].join(` -`))}_||u(24,_=d?12:30);let H={...E||{},excerptLength:_};await C.options(H);for(const N of B){if(!N.bundlePath)throw new Error("mergeIndex requires a bundlePath parameter");const I=N.bundlePath;delete N.bundlePath,await C.mergeIndex(I,N)}D=C,Ds()}},Ds=async()=>{D&&(De=await D.filters(),(!ue||!Object.keys(ue).length)&&u(18,ue=De))},Hs=C=>{let H={};return Object.entries(C).filter(([,N])=>N).forEach(([N])=>{let[I,Z]=N.split(/:(.*)$/);H[I]=H[I]||[],H[I].push(Z)}),H};let te;const ws=async(C,H)=>{if(!C){u(15,Re=!1),te&&clearTimeout(te);return}const N=Hs(H),I=()=>Ns(C,N);o>0&&C?(te&&clearTimeout(te),te=setTimeout(I,o),await Ne(),D.preload(C,{filters:N})):I(),ys()},Ne=async()=>{for(;!D;)we(),await new Promise(C=>setTimeout(C,50))},Ns=async(C,H)=>{u(16,Se=C||""),typeof m=="function"&&(C=m(C)),u(14,ge=!0),u(15,Re=!0),await Ne();const N=++Me,I={filters:H};q&&typeof q=="object"&&(I.sort=q);const Z=await D.search(C,I);Me===N&&(Z.filters&&Object.keys(Z.filters)?.length&&u(18,ue=Z.filters),u(13,be=Z),u(14,ge=!1),u(17,Be=a))},ys=()=>{const C=x.offsetWidth;C!=Ms&&u(10,w.style.paddingRight=`${C+2}px`,w)},zs=C=>{C?.preventDefault(),u(17,Be+=a)},js=C=>{C.key==="Escape"&&(u(9,b=""),w.blur()),C.key==="Enter"&&C.preventDefault()};function Os(){b=this.value,u(9,b),u(23,R)}function Us(C){le[C?"unshift":"push"](()=>{w=C,u(10,w)})}function Is(C){le[C?"unshift":"push"](()=>{x=C,u(11,x)})}const Ls=()=>{u(9,b=""),w.blur()};function Ps(C){P=C,u(0,P)}return e.$$set=C=>{"base_path"in C&&u(25,l=C.base_path),"page_size"in C&&u(26,a=C.page_size),"reset_styles"in C&&u(1,n=C.reset_styles),"show_images"in C&&u(2,i=C.show_images),"show_sub_results"in C&&u(3,d=C.show_sub_results),"excerpt_length"in C&&u(24,_=C.excerpt_length),"process_result"in C&&u(4,h=C.process_result),"process_term"in C&&u(27,m=C.process_term),"show_empty_filters"in C&&u(5,f=C.show_empty_filters),"open_filters"in C&&u(6,c=C.open_filters),"debounce_timeout_ms"in C&&u(28,o=C.debounce_timeout_ms),"pagefind_options"in C&&u(29,E=C.pagefind_options),"merge_index"in C&&u(30,B=C.merge_index),"trigger_search_term"in C&&u(23,R=C.trigger_search_term),"translations"in C&&u(7,k=C.translations),"autofocus"in C&&u(8,y=C.autofocus),"sort"in C&&u(31,q=C.sort),"selected_filters"in C&&u(0,P=C.selected_filters)},e.$$.update=()=>{e.$$.dirty[0]&8388608&&R&&(u(9,b=R),u(23,R="")),e.$$.dirty[0]&513&&ws(b,P)},[P,n,i,d,h,f,c,k,y,b,w,x,Ce,be,ge,Re,Se,Be,ue,He,Ss,we,zs,R,_,l,a,m,o,E,B,q,js,Os,Us,Is,Ls,Ps]}var ma=class extends me{constructor(e){super(),he(this,e,ha,Ea,fe,{base_path:25,page_size:26,reset_styles:1,show_images:2,show_sub_results:3,excerpt_length:24,process_result:4,process_term:27,show_empty_filters:5,open_filters:6,debounce_timeout_ms:28,pagefind_options:29,merge_index:30,trigger_search_term:23,translations:7,autofocus:8,sort:31,selected_filters:0},null,[-1,-1])}},Ca=ma,Fe;try{Fe=new URL(document.currentScript.src).pathname.match(/^(.*\/)(?:pagefind-)?ui.js.*$/)[1]}catch{Fe="/pagefind/"}var Ra=class{constructor(e){this._pfs=null;let t=e.element??"[data-pagefind-ui]",u=e.bundlePath??Fe,r=e.pageSize??5,s=e.resetStyles??!0,l=e.showImages??!0,a=e.showSubResults??!1,n=e.excerptLength??0,i=e.processResult??null,d=e.processTerm??null,_=e.showEmptyFilters??!0,h=e.openFilters??[],m=e.debounceTimeoutMs??300,f=e.mergeIndex??[],c=e.translations??[],o=e.autofocus??!1,E=e.sort??null;delete e.element,delete e.bundlePath,delete e.pageSize,delete e.resetStyles,delete e.showImages,delete e.showSubResults,delete e.excerptLength,delete e.processResult,delete e.processTerm,delete e.showEmptyFilters,delete e.openFilters,delete e.debounceTimeoutMs,delete e.mergeIndex,delete e.translations,delete e.autofocus,delete e.sort;const B=t instanceof HTMLElement?t:document.querySelector(t);B?this._pfs=new Ca({target:B,props:{base_path:u,page_size:r,reset_styles:s,show_images:l,show_sub_results:a,excerpt_length:n,process_result:i,process_term:d,show_empty_filters:_,open_filters:h,debounce_timeout_ms:m,merge_index:f,translations:c,autofocus:o,sort:E,pagefind_options:e}}):console.error(`Pagefind UI couldn't find the selector ${t}`)}triggerSearch(e){this._pfs.$$set({trigger_search_term:e})}triggerFilters(e){let t={};for(let[u,r]of Object.entries(e))if(Array.isArray(r))for(let s of r)t[`${u}:${s}`]=!0;else t[`${u}:${r}`]=!0;this._pfs.$$set({selected_filters:t})}destroy(){this._pfs.$destroy()}};export{Ra as PagefindUI}; diff --git a/dist/_astro/ui-core.xadFDdVE.js b/dist/_astro/ui-core.xadFDdVE.js new file mode 100644 index 0000000..ad9aa55 --- /dev/null +++ b/dist/_astro/ui-core.xadFDdVE.js @@ -0,0 +1,2 @@ +import{_ as xs}from"./__vite-browser-external.DnN4KUUt.js";var qs=Object.defineProperty,F=(e,t)=>{for(var u in t)qs(e,u,{get:t[u],enumerable:!0})};function L(){}function hu(e){return e()}function ye(){return Object.create(null)}function J(e){e.forEach(hu)}function mu(e){return typeof e=="function"}function fe(e,t){return e!=e?t==t:e!==t||e&&typeof e=="object"||typeof e=="function"}var oe;function ce(e,t){return oe||(oe=document.createElement("a")),oe.href=t,e===oe.href}function Vs(e){return Object.keys(e).length===0}function A(e,t){e.appendChild(t)}function T(e,t,u){e.insertBefore(t,u||null)}function v(e){e.parentNode&&e.parentNode.removeChild(e)}function ie(e,t){for(let u=0;ue.removeEventListener(t,u,r)}function g(e,t,u){u==null?e.removeAttribute(t):e.getAttribute(t)!==u&&e.setAttribute(t,u)}function Gs(e){return Array.from(e.childNodes)}function j(e,t){t=""+t,e.data!==t&&(e.data=t)}function ze(e,t){e.value=t??""}function K(e,t,u){e.classList[u?"add":"remove"](t)}var Ws=class{constructor(e=!1){this.is_svg=!1,this.is_svg=e,this.e=this.n=null}c(e){this.h(e)}m(e,t,u=null){this.e||(this.is_svg?this.e=Ks(t.nodeName):this.e=p(t.nodeType===11?"TEMPLATE":t.nodeName),this.t=t.tagName!=="TEMPLATE"?t:t.content,this.c(e)),this.i(u)}h(e){this.e.innerHTML=e,this.n=Array.from(this.e.nodeName==="TEMPLATE"?this.e.content.childNodes:this.e.childNodes)}i(e){for(let t=0;te.indexOf(r)===-1?t.push(r):u.push(r)),u.forEach(r=>r()),$=t}var _e=new Set,W;function ae(){W={r:0,c:[],p:W}}function ne(){W.r||J(W.c),W=W.p}function z(e,t){e&&e.i&&(_e.delete(e),e.i(t))}function U(e,t,u,r){if(e&&e.o){if(_e.has(e))return;_e.add(e),W.c.push(()=>{_e.delete(e),r&&(u&&e.d(1),r())}),e.o(t)}else r&&r()}function ul(e,t){U(e,1,1,()=>{t.delete(e.key)})}function tl(e,t,u,r,s,l,a,n,i,d,_,h){let m=e.length,f=l.length,c=m;const o={};for(;c--;)o[e[c].key]=c;const E=[],B=new Map,R=new Map,k=[];for(c=f;c--;){const b=h(s,l,c),D=u(b);let w=a.get(D);w?k.push(()=>w.p(b,t)):(w=d(D,b),w.c()),B.set(D,E[c]=w),D in o&&R.set(D,Math.abs(c-o[D]))}const y=new Set,q=new Set;function P(b){z(b,1),b.m(n,_),a.set(b.key,b),_=b.first,f--}for(;m&&f;){const b=E[f-1],D=e[m-1],w=b.key,x=D.key;b===D?(_=b.first,m--,f--):B.has(x)?!a.has(w)||y.has(w)?P(b):q.has(x)?m--:R.get(w)>R.get(x)?(q.add(w),P(b)):(y.add(x),m--):(i(D,a),m--)}for(;m--;){const b=e[m];B.has(b.key)||i(b,a)}for(;f;)P(E[f-1]);return J(k),E}function rl(e,t,u){const r=e.$$.props[t];r!==void 0&&(e.$$.bound[r]=u,u(e.$$.ctx[r]))}function ke(e){e&&e.c()}function Ee(e,t,u,r){const{fragment:s,after_update:l}=e.$$;s&&s.m(t,u),r||Te(()=>{const a=e.$$.on_mount.map(hu).filter(mu);e.$$.on_destroy?e.$$.on_destroy.push(...a):J(a),e.$$.on_mount=[]}),l.forEach(Te)}function de(e,t){const u=e.$$;u.fragment!==null&&(el(u.after_update),J(u.on_destroy),u.fragment&&u.fragment.d(t),u.on_destroy=u.fragment=null,u.ctx=[])}function sl(e,t){e.$$.dirty[0]===-1&&(X.push(e),Xs(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const c=f.length?f[0]:m;return d.ctx&&s(d.ctx[h],d.ctx[h]=c)&&(!d.skip_bound&&d.bound[h]&&d.bound[h](c),_&&sl(e,h)),m}):[],d.update(),_=!0,J(d.before_update),d.fragment=r?r(d.ctx):!1,t.target){if(t.hydrate){const h=Gs(t.target);d.fragment&&d.fragment.l(h),h.forEach(v)}else d.fragment&&d.fragment.c();t.intro&&z(e.$$.fragment),Ee(e,t.target,t.anchor,t.customElement),gu()}re(i)}var me=class{$destroy(){de(this,1),this.$destroy=L}$on(e,t){if(!mu(t))return L;const u=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return u.push(t),()=>{const r=u.indexOf(t);r!==-1&&u.splice(r,1)}}$set(e){this.$$set&&!Vs(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}};function O(e){const t=typeof e=="string"?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90}function Q(e){const t=typeof e=="string"?e.charCodeAt(0):e;return t>=48&&t<=57}function V(e){return O(e)||Q(e)}var ll=["art-lojban","cel-gaulish","no-bok","no-nyn","zh-guoyu","zh-hakka","zh-min","zh-min-nan","zh-xiang"],je={"en-gb-oed":"en-GB-oxendict","i-ami":"ami","i-bnn":"bnn","i-default":null,"i-enochian":null,"i-hak":"hak","i-klingon":"tlh","i-lux":"lb","i-mingo":null,"i-navajo":"nv","i-pwn":"pwn","i-tao":"tao","i-tay":"tay","i-tsu":"tsu","sgn-be-fr":"sfb","sgn-be-nl":"vgt","sgn-ch-de":"sgg","art-lojban":"jbo","cel-gaulish":null,"no-bok":"nb","no-nyn":"nn","zh-guoyu":"cmn","zh-hakka":"hak","zh-min":null,"zh-min-nan":"nan","zh-xiang":"hsn"},al={}.hasOwnProperty;function Ru(e,t={}){const u=Oe(),r=String(e),s=r.toLowerCase();let l=0;if(e==null)throw new Error("Expected string, got `"+e+"`");if(al.call(je,s)){const n=je[s];return(t.normalize===void 0||t.normalize===null||t.normalize)&&typeof n=="string"?Ru(n):(u[ll.includes(s)?"regular":"irregular"]=r,u)}for(;O(s.charCodeAt(l))&&l<9;)l++;if(l>1&&l<9){if(u.language=r.slice(0,l),l<4){let n=0;for(;s.charCodeAt(l)===45&&O(s.charCodeAt(l+1))&&O(s.charCodeAt(l+2))&&O(s.charCodeAt(l+3))&&!O(s.charCodeAt(l+4));){if(n>2)return a(l,3,"Too many extended language subtags, expected at most 3 subtags");u.extendedLanguageSubtags.push(r.slice(l+1,l+4)),l+=4,n++}}for(s.charCodeAt(l)===45&&O(s.charCodeAt(l+1))&&O(s.charCodeAt(l+2))&&O(s.charCodeAt(l+3))&&O(s.charCodeAt(l+4))&&!O(s.charCodeAt(l+5))&&(u.script=r.slice(l+1,l+5),l+=5),s.charCodeAt(l)===45&&(O(s.charCodeAt(l+1))&&O(s.charCodeAt(l+2))&&!O(s.charCodeAt(l+3))?(u.region=r.slice(l+1,l+3),l+=3):Q(s.charCodeAt(l+1))&&Q(s.charCodeAt(l+2))&&Q(s.charCodeAt(l+3))&&!Q(s.charCodeAt(l+4))&&(u.region=r.slice(l+1,l+4),l+=4));s.charCodeAt(l)===45;){const n=l+1;let i=n;for(;V(s.charCodeAt(i));){if(i-n>7)return a(i,1,"Too long variant, expected at most 8 characters");i++}if(i-n>4||i-n>3&&Q(s.charCodeAt(n)))u.variants.push(r.slice(n,i)),l=i;else break}for(;s.charCodeAt(l)===45&&!(s.charCodeAt(l+1)===120||!V(s.charCodeAt(l+1))||s.charCodeAt(l+2)!==45||!V(s.charCodeAt(l+3)));){let n=l+2,i=0;for(;s.charCodeAt(n)===45&&V(s.charCodeAt(n+1))&&V(s.charCodeAt(n+2));){const d=n+1;for(n=d+2,i++;V(s.charCodeAt(n));){if(n-d>7)return a(n,2,"Too long extension, expected at most 8 characters");n++}}if(!i)return a(n,4,"Empty extension, extensions must have at least 2 characters of content");u.extensions.push({singleton:r.charAt(l+1),extensions:r.slice(l+3,n).split("-")}),l=n}}else l=0;if(l===0&&s.charCodeAt(l)===120||s.charCodeAt(l)===45&&s.charCodeAt(l+1)===120){l=l?l+2:1;let n=l;for(;s.charCodeAt(n)===45&&V(s.charCodeAt(n+1));){const i=l+1;for(n=i;V(s.charCodeAt(n));){if(n-i>7)return a(n,5,"Too long private-use area, expected at most 8 characters");n++}u.privateuse.push(r.slice(l+1,n)),l=n}}if(l!==r.length)return a(l,6,"Found superfluous content after tag");return u;function a(n,i,d){return t.warning&&t.warning(d,i,n),t.forgiving?u:Oe()}}function Oe(){return{language:null,extendedLanguageSubtags:[],script:null,region:null,variants:[],extensions:[],privateuse:[],irregular:null,regular:null}}function Ue(e,t,u){const r=e.slice();return r[8]=t[u][0],r[9]=t[u][1],r}function nl(e){let t,u,r,s,l,a=e[0]&&Ie();return{c(){a&&a.c(),t=M(),u=p("div"),r=p("p"),r.textContent=`${e[3](30)}`,s=M(),l=p("p"),l.textContent=`${e[3](40)}`,g(r,"class","pagefind-ui__result-title pagefind-ui__loading svelte-j9e30"),g(l,"class","pagefind-ui__result-excerpt pagefind-ui__loading svelte-j9e30"),g(u,"class","pagefind-ui__result-inner svelte-j9e30")},m(n,i){a&&a.m(n,i),T(n,t,i),T(n,u,i),A(u,r),A(u,s),A(u,l)},p(n,i){n[0]?a||(a=Ie(),a.c(),a.m(t.parentNode,t)):a&&(a.d(1),a=null)},d(n){a&&a.d(n),n&&v(t),n&&v(u)}}}function il(e){let t,u,r,s,l=e[1].meta?.title+"",a,n,i,d,_=e[1].excerpt+"",h,m=e[0]&&Le(e),f=e[2].length&&xe(e);return{c(){m&&m.c(),t=M(),u=p("div"),r=p("p"),s=p("a"),a=S(l),i=M(),d=p("p"),h=M(),f&&f.c(),g(s,"class","pagefind-ui__result-link svelte-j9e30"),g(s,"href",n=e[1].meta?.url||e[1].url),g(r,"class","pagefind-ui__result-title svelte-j9e30"),g(d,"class","pagefind-ui__result-excerpt svelte-j9e30"),g(u,"class","pagefind-ui__result-inner svelte-j9e30")},m(c,o){m&&m.m(c,o),T(c,t,o),T(c,u,o),A(u,r),A(r,s),A(s,a),A(u,i),A(u,d),d.innerHTML=_,A(u,h),f&&f.m(u,null)},p(c,o){c[0]?m?m.p(c,o):(m=Le(c),m.c(),m.m(t.parentNode,t)):m&&(m.d(1),m=null),o&2&&l!==(l=c[1].meta?.title+"")&&j(a,l),o&2&&n!==(n=c[1].meta?.url||c[1].url)&&g(s,"href",n),o&2&&_!==(_=c[1].excerpt+"")&&(d.innerHTML=_),c[2].length?f?f.p(c,o):(f=xe(c),f.c(),f.m(u,null)):f&&(f.d(1),f=null)},d(c){m&&m.d(c),c&&v(t),c&&v(u),f&&f.d()}}}function Ie(e){let t;return{c(){t=p("div"),g(t,"class","pagefind-ui__result-thumb pagefind-ui__loading svelte-j9e30")},m(u,r){T(u,t,r)},d(u){u&&v(t)}}}function Le(e){let t,u=e[1].meta.image&&Pe(e);return{c(){t=p("div"),u&&u.c(),g(t,"class","pagefind-ui__result-thumb svelte-j9e30")},m(r,s){T(r,t,s),u&&u.m(t,null)},p(r,s){r[1].meta.image?u?u.p(r,s):(u=Pe(r),u.c(),u.m(t,null)):u&&(u.d(1),u=null)},d(r){r&&v(t),u&&u.d()}}}function Pe(e){let t,u,r;return{c(){t=p("img"),g(t,"class","pagefind-ui__result-image svelte-j9e30"),ce(t.src,u=e[1].meta?.image)||g(t,"src",u),g(t,"alt",r=e[1].meta?.image_alt||e[1].meta?.title)},m(s,l){T(s,t,l)},p(s,l){l&2&&!ce(t.src,u=s[1].meta?.image)&&g(t,"src",u),l&2&&r!==(r=s[1].meta?.image_alt||s[1].meta?.title)&&g(t,"alt",r)},d(s){s&&v(t)}}}function xe(e){let t,u=e[2],r=[];for(let s=0;se.toLocaleUpperCase();function _l(e,t,u){let{show_images:r=!0}=t,{process_result:s=null}=t,{result:l={data:async()=>{}}}=t;const a=["title","image","image_alt","url"];let n,i=[];const d=async h=>{u(1,n=await h.data()),u(1,n=s?.(n)??n),u(2,i=Object.entries(n.meta).filter(([m])=>!a.includes(m)))},_=(h=30)=>". ".repeat(Math.floor(10+Math.random()*h));return e.$$set=h=>{"show_images"in h&&u(0,r=h.show_images),"process_result"in h&&u(4,s=h.process_result),"result"in h&&u(5,l=h.result)},e.$$.update=()=>{e.$$.dirty&32&&d(l)},[r,n,i,_,s,l]}var cl=class extends me{constructor(e){super(),he(this,e,_l,ol,fe,{show_images:0,process_result:4,result:5})}},fl=cl;function Ke(e,t,u){const r=e.slice();return r[11]=t[u][0],r[12]=t[u][1],r}function Ge(e,t,u){const r=e.slice();return r[15]=t[u],r}function El(e){let t,u,r,s,l,a=e[0]&&We();return{c(){a&&a.c(),t=M(),u=p("div"),r=p("p"),r.textContent=`${e[5](30)}`,s=M(),l=p("p"),l.textContent=`${e[5](40)}`,g(r,"class","pagefind-ui__result-title pagefind-ui__loading svelte-4xnkmf"),g(l,"class","pagefind-ui__result-excerpt pagefind-ui__loading svelte-4xnkmf"),g(u,"class","pagefind-ui__result-inner svelte-4xnkmf")},m(n,i){a&&a.m(n,i),T(n,t,i),T(n,u,i),A(u,r),A(u,s),A(u,l)},p(n,i){n[0]?a||(a=We(),a.c(),a.m(t.parentNode,t)):a&&(a.d(1),a=null)},d(n){a&&a.d(n),n&&v(t),n&&v(u)}}}function dl(e){let t,u,r,s,l=e[1].meta?.title+"",a,n,i,d,_,h=e[0]&&Je(e),m=e[4]&&Ye(e),f=e[3],c=[];for(let E=0;Ee.toLocaleUpperCase();function ml(e,t,u){let{show_images:r=!0}=t,{process_result:s=null}=t,{result:l={data:async()=>{}}}=t;const a=["title","image","image_alt","url"];let n,i=[],d=[],_=!1;const h=(c,o)=>{if(c.length<=o)return c;const E=[...c].sort((B,R)=>R.locations.length-B.locations.length).slice(0,3).map(B=>B.url);return c.filter(B=>E.includes(B.url))},m=async c=>{u(1,n=await c.data()),u(1,n=s?.(n)??n),u(2,i=Object.entries(n.meta).filter(([o])=>!a.includes(o))),Array.isArray(n.sub_results)&&(u(4,_=n.sub_results?.[0]?.url===(n.meta?.url||n.url)),_?u(3,d=h(n.sub_results.slice(1),3)):u(3,d=h([...n.sub_results],3)))},f=(c=30)=>". ".repeat(Math.floor(10+Math.random()*c));return e.$$set=c=>{"show_images"in c&&u(0,r=c.show_images),"process_result"in c&&u(6,s=c.process_result),"result"in c&&u(7,l=c.result)},e.$$.update=()=>{e.$$.dirty&128&&m(l)},[r,n,i,d,_,f,s,l]}var Cl=class extends me{constructor(e){super(),he(this,e,ml,hl,fe,{show_images:0,process_result:6,result:7})}},gl=Cl;function uu(e,t,u){const r=e.slice();return r[10]=t[u][0],r[11]=t[u][1],r[12]=t,r[13]=u,r}function tu(e,t,u){const r=e.slice();return r[14]=t[u][0],r[15]=t[u][1],r[16]=t,r[17]=u,r}function ru(e){let t,u,r=e[4]("filters_label",e[5],e[6])+"",s,l,a=Object.entries(e[1]),n=[];for(let i=0;ie.toLocaleUpperCase(),iu=e=>e.toLowerCase();function Bl(e,t,u){let{available_filters:r=null}=t,{show_empty_filters:s=!0}=t,{open_filters:l=[]}=t,{translate:a=()=>""}=t,{automatic_translations:n={}}=t,{translations:i={}}=t,{selected_filters:d={}}=t,_=!1,h=!1;function m(f,c){d[`${f}:${c}`]=this.checked,u(0,d)}return e.$$set=f=>{"available_filters"in f&&u(1,r=f.available_filters),"show_empty_filters"in f&&u(2,s=f.show_empty_filters),"open_filters"in f&&u(3,l=f.open_filters),"translate"in f&&u(4,a=f.translate),"automatic_translations"in f&&u(5,n=f.automatic_translations),"translations"in f&&u(6,i=f.translations),"selected_filters"in f&&u(0,d=f.selected_filters)},e.$$.update=()=>{if(e.$$.dirty&258&&r&&!_){u(8,_=!0);let f=Object.entries(r||{});f.length===1&&Object.entries(f[0][1])?.length<=6&&u(7,h=!0)}},[d,r,s,l,a,n,i,h,_,m]}var Al=class extends me{constructor(e){super(),he(this,e,Bl,Rl,fe,{available_filters:1,show_empty_filters:2,open_filters:3,translate:4,automatic_translations:5,translations:6,selected_filters:0})}},pl=Al,Bu={};F(Bu,{comments:()=>pu,default:()=>vl,direction:()=>vu,strings:()=>Tu,thanks_to:()=>Au});var Au="Jan Claasen ",pu="",vu="ltr",Tu={placeholder:"Soek",clear_search:"Opruim",load_more:"Laai nog resultate",search_label:"Soek hierdie webwerf",filters_label:"Filters",zero_results:"Geen resultate vir [SEARCH_TERM]",many_results:"[COUNT] resultate vir [SEARCH_TERM]",one_result:"[COUNT] resultate vir [SEARCH_TERM]",alt_search:"Geen resultate vir [SEARCH_TERM]. Toon resultate vir [DIFFERENT_TERM] in plaas daarvan",search_suggestion:"Geen resultate vir [SEARCH_TERM]. Probeer eerder een van die volgende terme:",searching:"Soek vir [SEARCH_TERM]"},vl={thanks_to:Au,comments:pu,direction:vu,strings:Tu},Fu={};F(Fu,{comments:()=>bu,default:()=>Tl,direction:()=>Mu,strings:()=>Su,thanks_to:()=>ku});var ku="Maruf Alom ",bu="",Mu="ltr",Su={placeholder:"অনুসন্ধান করুন",clear_search:"মুছে ফেলুন",load_more:"আরো ফলাফল দেখুন",search_label:"এই ওয়েবসাইটে অনুসন্ধান করুন",filters_label:"ফিল্টার",zero_results:"[SEARCH_TERM] এর জন্য কিছু খুঁজে পাওয়া যায়নি",many_results:"[COUNT]-টি ফলাফল পাওয়া গিয়েছে [SEARCH_TERM] এর জন্য",one_result:"[COUNT]-টি ফলাফল পাওয়া গিয়েছে [SEARCH_TERM] এর জন্য",alt_search:"কোন কিছু খুঁজে পাওয়া যায়নি [SEARCH_TERM] এর জন্য. পরিবর্তে [DIFFERENT_TERM] এর জন্য দেখানো হচ্ছে",search_suggestion:"কোন কিছু খুঁজে পাওয়া যায়নি [SEARCH_TERM] এর বিষয়ে. নিন্মের বিষয়বস্তু খুঁজে দেখুন:",searching:"অনুসন্ধান চলছে [SEARCH_TERM]..."},Tl={thanks_to:ku,comments:bu,direction:Mu,strings:Su},Du={};F(Du,{comments:()=>wu,default:()=>Fl,direction:()=>Nu,strings:()=>yu,thanks_to:()=>Hu});var Hu="Pablo Villaverde ",wu="",Nu="ltr",yu={placeholder:"Cerca",clear_search:"Netejar",load_more:"Veure mées resultats",search_label:"Cerca en aquest lloc",filters_label:"Filtres",zero_results:"No es van trobar resultats per [SEARCH_TERM]",many_results:"[COUNT] resultats trobats per [SEARCH_TERM]",one_result:"[COUNT] resultat trobat per [SEARCH_TERM]",alt_search:"No es van trobar resultats per [SEARCH_TERM]. Mostrant al seu lloc resultats per [DIFFERENT_TERM]",search_suggestion:"No es van trobar resultats per [SEARCH_TERM]. Proveu una de les cerques següents:",searching:"Cercant [SEARCH_TERM]..."},Fl={thanks_to:Hu,comments:wu,direction:Nu,strings:yu},zu={};F(zu,{comments:()=>Ou,default:()=>kl,direction:()=>Uu,strings:()=>Iu,thanks_to:()=>ju});var ju="Dalibor Hon ",Ou="",Uu="ltr",Iu={placeholder:"Hledat",clear_search:"Smazat",load_more:"Načíst další výsledky",search_label:"Prohledat tuto stránku",filters_label:"Filtry",zero_results:"Žádné výsledky pro [SEARCH_TERM]",many_results:"[COUNT] výsledků pro [SEARCH_TERM]",one_result:"[COUNT] výsledek pro [SEARCH_TERM]",alt_search:"Žádné výsledky pro [SEARCH_TERM]. Zobrazují se výsledky pro [DIFFERENT_TERM]",search_suggestion:"Žádné výsledky pro [SEARCH_TERM]. Související výsledky hledání:",searching:"Hledám [SEARCH_TERM]..."},kl={thanks_to:ju,comments:Ou,direction:Uu,strings:Iu},Lu={};F(Lu,{comments:()=>xu,default:()=>bl,direction:()=>qu,strings:()=>Vu,thanks_to:()=>Pu});var Pu="Jonas Smedegaard ",xu="",qu="ltr",Vu={placeholder:"Søg",clear_search:"Nulstil",load_more:"Indlæs flere resultater",search_label:"Søg på dette website",filters_label:"Filtre",zero_results:"Ingen resultater for [SEARCH_TERM]",many_results:"[COUNT] resultater for [SEARCH_TERM]",one_result:"[COUNT] resultat for [SEARCH_TERM]",alt_search:"Ingen resultater for [SEARCH_TERM]. Viser resultater for [DIFFERENT_TERM] i stedet",search_suggestion:"Ingen resultater for [SEARCH_TERM]. Prøv et af disse søgeord i stedet:",searching:"Søger efter [SEARCH_TERM]..."},bl={thanks_to:Pu,comments:xu,direction:qu,strings:Vu},Ku={};F(Ku,{comments:()=>Wu,default:()=>Ml,direction:()=>Ju,strings:()=>Zu,thanks_to:()=>Gu});var Gu="Jan Claasen ",Wu="",Ju="ltr",Zu={placeholder:"Suche",clear_search:"Löschen",load_more:"Mehr Ergebnisse laden",search_label:"Suche diese Seite",filters_label:"Filter",zero_results:"Keine Ergebnisse für [SEARCH_TERM]",many_results:"[COUNT] Ergebnisse für [SEARCH_TERM]",one_result:"[COUNT] Ergebnis für [SEARCH_TERM]",alt_search:"Keine Ergebnisse für [SEARCH_TERM]. Stattdessen werden Ergebnisse für [DIFFERENT_TERM] angezeigt",search_suggestion:"Keine Ergebnisse für [SEARCH_TERM]. Versuchen Sie eine der folgenden Suchen:",searching:"Suche für [SEARCH_TERM]"},Ml={thanks_to:Gu,comments:Wu,direction:Ju,strings:Zu},Yu={};F(Yu,{comments:()=>Qu,default:()=>Sl,direction:()=>$u,strings:()=>et,thanks_to:()=>Xu});var Xu="Liam Bigelow ",Qu="",$u="ltr",et={placeholder:"Search",clear_search:"Clear",load_more:"Load more results",search_label:"Search this site",filters_label:"Filters",zero_results:"No results for [SEARCH_TERM]",many_results:"[COUNT] results for [SEARCH_TERM]",one_result:"[COUNT] result for [SEARCH_TERM]",alt_search:"No results for [SEARCH_TERM]. Showing results for [DIFFERENT_TERM] instead",search_suggestion:"No results for [SEARCH_TERM]. Try one of the following searches:",searching:"Searching for [SEARCH_TERM]..."},Sl={thanks_to:Xu,comments:Qu,direction:$u,strings:et},ut={};F(ut,{comments:()=>rt,default:()=>Dl,direction:()=>st,strings:()=>lt,thanks_to:()=>tt});var tt="Pablo Villaverde ",rt="",st="ltr",lt={placeholder:"Buscar",clear_search:"Limpiar",load_more:"Ver más resultados",search_label:"Buscar en este sitio",filters_label:"Filtros",zero_results:"No se encontraron resultados para [SEARCH_TERM]",many_results:"[COUNT] resultados encontrados para [SEARCH_TERM]",one_result:"[COUNT] resultado encontrado para [SEARCH_TERM]",alt_search:"No se encontraron resultados para [SEARCH_TERM]. Mostrando en su lugar resultados para [DIFFERENT_TERM]",search_suggestion:"No se encontraron resultados para [SEARCH_TERM]. Prueba una de las siguientes búsquedas:",searching:"Buscando [SEARCH_TERM]..."},Dl={thanks_to:tt,comments:rt,direction:st,strings:lt},at={};F(at,{comments:()=>it,default:()=>Hl,direction:()=>ot,strings:()=>_t,thanks_to:()=>nt});var nt="Valtteri Laitinen ",it="",ot="ltr",_t={placeholder:"Haku",clear_search:"Tyhjennä",load_more:"Lataa lisää tuloksia",search_label:"Hae tältä sivustolta",filters_label:"Suodattimet",zero_results:"Ei tuloksia haulle [SEARCH_TERM]",many_results:"[COUNT] tulosta haulle [SEARCH_TERM]",one_result:"[COUNT] tulos haulle [SEARCH_TERM]",alt_search:"Ei tuloksia haulle [SEARCH_TERM]. Näytetään tulokset sen sijaan haulle [DIFFERENT_TERM]",search_suggestion:"Ei tuloksia haulle [SEARCH_TERM]. Kokeile jotain seuraavista:",searching:"Haetaan [SEARCH_TERM]..."},Hl={thanks_to:nt,comments:it,direction:ot,strings:_t},ct={};F(ct,{comments:()=>Et,default:()=>wl,direction:()=>dt,strings:()=>ht,thanks_to:()=>ft});var ft="Nicolas Friedli ",Et="",dt="ltr",ht={placeholder:"Rechercher",clear_search:"Nettoyer",load_more:"Charger plus de résultats",search_label:"Recherche sur ce site",filters_label:"Filtres",zero_results:"Pas de résultat pour [SEARCH_TERM]",many_results:"[COUNT] résultats pour [SEARCH_TERM]",one_result:"[COUNT] résultat pour [SEARCH_TERM]",alt_search:"Pas de résultat pour [SEARCH_TERM]. Montre les résultats pour [DIFFERENT_TERM] à la place",search_suggestion:"Pas de résultat pour [SEARCH_TERM]. Essayer une des recherches suivantes:",searching:"Recherche [SEARCH_TERM]..."},wl={thanks_to:ft,comments:Et,direction:dt,strings:ht},mt={};F(mt,{comments:()=>gt,default:()=>Nl,direction:()=>Rt,strings:()=>Bt,thanks_to:()=>Ct});var Ct="Pablo Villaverde ",gt="",Rt="ltr",Bt={placeholder:"Buscar",clear_search:"Limpar",load_more:"Ver máis resultados",search_label:"Buscar neste sitio",filters_label:"Filtros",zero_results:"Non se atoparon resultados para [SEARCH_TERM]",many_results:"[COUNT] resultados atopados para [SEARCH_TERM]",one_result:"[COUNT] resultado atopado para [SEARCH_TERM]",alt_search:"Non se atoparon resultados para [SEARCH_TERM]. Amosando no seu lugar resultados para [DIFFERENT_TERM]",search_suggestion:"Non se atoparon resultados para [SEARCH_TERM]. Probe unha das seguintes pesquisas:",searching:"Buscando [SEARCH_TERM]..."},Nl={thanks_to:Ct,comments:gt,direction:Rt,strings:Bt},At={};F(At,{comments:()=>vt,default:()=>yl,direction:()=>Tt,strings:()=>Ft,thanks_to:()=>pt});var pt="Amit Yadav ",vt="",Tt="ltr",Ft={placeholder:"खोजें",clear_search:"साफ करें",load_more:"और अधिक परिणाम लोड करें",search_label:"इस साइट में खोजें",filters_label:"फ़िल्टर",zero_results:"कोई परिणाम [SEARCH_TERM] के लिए नहीं मिला",many_results:"[COUNT] परिणाम [SEARCH_TERM] के लिए मिले",one_result:"[COUNT] परिणाम [SEARCH_TERM] के लिए मिला",alt_search:"[SEARCH_TERM] के लिए कोई परिणाम नहीं मिला। इसके बजाय [DIFFERENT_TERM] के लिए परिणाम दिखा रहा है",search_suggestion:"[SEARCH_TERM] के लिए कोई परिणाम नहीं मिला। निम्नलिखित खोजों में से कोई एक आज़माएं:",searching:"[SEARCH_TERM] की खोज की जा रही है..."},yl={thanks_to:pt,comments:vt,direction:Tt,strings:Ft},kt={};F(kt,{comments:()=>Mt,default:()=>zl,direction:()=>St,strings:()=>Dt,thanks_to:()=>bt});var bt="Diomed ",Mt="",St="ltr",Dt={placeholder:"Traži",clear_search:"Očisti",load_more:"Učitaj više rezultata",search_label:"Pretraži ovu stranicu",filters_label:"Filteri",zero_results:"Nema rezultata za [SEARCH_TERM]",many_results:"[COUNT] rezultata za [SEARCH_TERM]",one_result:"[COUNT] rezultat za [SEARCH_TERM]",alt_search:"Nema rezultata za [SEARCH_TERM]. Prikazujem rezultate za [DIFFERENT_TERM]",search_suggestion:"Nema rezultata za [SEARCH_TERM]. Pokušaj s jednom od ovih pretraga:",searching:"Pretražujem [SEARCH_TERM]..."},zl={thanks_to:bt,comments:Mt,direction:St,strings:Dt},Ht={};F(Ht,{comments:()=>Nt,default:()=>jl,direction:()=>yt,strings:()=>zt,thanks_to:()=>wt});var wt="Adam Laki ",Nt="",yt="ltr",zt={placeholder:"Keresés",clear_search:"Törlés",load_more:"További találatok betöltése",search_label:"Keresés az oldalon",filters_label:"Szűrés",zero_results:"Nincs találat a(z) [SEARCH_TERM] kifejezésre",many_results:"[COUNT] db találat a(z) [SEARCH_TERM] kifejezésre",one_result:"[COUNT] db találat a(z) [SEARCH_TERM] kifejezésre",alt_search:"Nincs találat a(z) [SEARCH_TERM] kifejezésre. Találatok mutatása inkább a(z) [DIFFERENT_TERM] kifejezésre",search_suggestion:"Nincs találat a(z) [SEARCH_TERM] kifejezésre. Próbáld meg a következő keresések egyikét:",searching:"Keresés a(z) [SEARCH_TERM] kifejezésre..."},jl={thanks_to:wt,comments:Nt,direction:yt,strings:zt},jt={};F(jt,{comments:()=>Ut,default:()=>Ol,direction:()=>It,strings:()=>Lt,thanks_to:()=>Ot});var Ot="Nixentric",Ut="",It="ltr",Lt={placeholder:"Cari",clear_search:"Bersihkan",load_more:"Muat lebih banyak hasil",search_label:"Telusuri situs ini",filters_label:"Filter",zero_results:"[SEARCH_TERM] tidak ditemukan",many_results:"Ditemukan [COUNT] hasil untuk [SEARCH_TERM]",one_result:"Ditemukan [COUNT] hasil untuk [SEARCH_TERM]",alt_search:"[SEARCH_TERM] tidak ditemukan. Menampilkan hasil [DIFFERENT_TERM] sebagai gantinya",search_suggestion:"[SEARCH_TERM] tidak ditemukan. Coba salah satu pencarian berikut ini:",searching:"Mencari [SEARCH_TERM]..."},Ol={thanks_to:Ot,comments:Ut,direction:It,strings:Lt},Pt={};F(Pt,{comments:()=>qt,default:()=>Ul,direction:()=>Vt,strings:()=>Kt,thanks_to:()=>xt});var xt="Cosette Bruhns Alonso, Andrew Janco ",qt="",Vt="ltr",Kt={placeholder:"Cerca",clear_search:"Cancella la cronologia",load_more:"Mostra più risultati",search_label:"Cerca nel sito",filters_label:"Filtri di ricerca",zero_results:"Nessun risultato per [SEARCH_TERM]",many_results:"[COUNT] risultati per [SEARCH_TERM]",one_result:"[COUNT] risultato per [SEARCH_TERM]",alt_search:"Nessun risultato per [SEARCH_TERM]. Mostrando risultati per [DIFFERENT_TERM] come alternativa.",search_suggestion:"Nessun risultato per [SEARCH_TERM]. Prova una delle seguenti ricerche:",searching:"Cercando [SEARCH_TERM]..."},Ul={thanks_to:xt,comments:qt,direction:Vt,strings:Kt},Gt={};F(Gt,{comments:()=>Jt,default:()=>Il,direction:()=>Zt,strings:()=>Yt,thanks_to:()=>Wt});var Wt="Tate",Jt="",Zt="ltr",Yt={placeholder:"検索",clear_search:"クリア",load_more:"次を読み込む",search_label:"このサイトを検索",filters_label:"フィルタ",zero_results:"[SEARCH_TERM]の検索に一致する情報はありませんでした",many_results:"[SEARCH_TERM]の[COUNT]件の検索結果",one_result:"[SEARCH_TERM]の[COUNT]件の検索結果",alt_search:"[SEARCH_TERM]の検索に一致する情報はありませんでした。[DIFFERENT_TERM]の検索結果を表示しています",search_suggestion:"[SEARCH_TERM]の検索に一致する情報はありませんでした。次のいずれかの検索を試してください",searching:"[SEARCH_TERM]を検索しています"},Il={thanks_to:Wt,comments:Jt,direction:Zt,strings:Yt},Xt={};F(Xt,{comments:()=>$t,default:()=>Ll,direction:()=>er,strings:()=>ur,thanks_to:()=>Qt});var Qt="Seokho Son ",$t="",er="ltr",ur={placeholder:"검색어",clear_search:"비우기",load_more:"검색 결과 더 보기",search_label:"사이트 검색",filters_label:"필터",zero_results:"[SEARCH_TERM]에 대한 결과 없음",many_results:"[SEARCH_TERM]에 대한 결과 [COUNT]건",one_result:"[SEARCH_TERM]에 대한 결과 [COUNT]건",alt_search:"[SEARCH_TERM]에 대한 결과 없음. [DIFFERENT_TERM]에 대한 결과",search_suggestion:"[SEARCH_TERM]에 대한 결과 없음. 추천 검색어: ",searching:"[SEARCH_TERM] 검색 중..."},Ll={thanks_to:Qt,comments:$t,direction:er,strings:ur},tr={};F(tr,{comments:()=>sr,default:()=>Pl,direction:()=>lr,strings:()=>ar,thanks_to:()=>rr});var rr="",sr="",lr="ltr",ar={placeholder:"Rapu",clear_search:"Whakakore",load_more:"Whakauta ētahi otinga kē",search_label:"Rapu",filters_label:"Tātari",zero_results:"Otinga kore ki [SEARCH_TERM]",many_results:"[COUNT] otinga ki [SEARCH_TERM]",one_result:"[COUNT] otinga ki [SEARCH_TERM]",alt_search:"Otinga kore ki [SEARCH_TERM]. Otinga kē ki [DIFFERENT_TERM]",search_suggestion:"Otinga kore ki [SEARCH_TERM]. whakamātau ki ngā mea atu:",searching:"Rapu ki [SEARCH_TERM]..."},Pl={thanks_to:rr,comments:sr,direction:lr,strings:ar},nr={};F(nr,{comments:()=>or,default:()=>xl,direction:()=>_r,strings:()=>cr,thanks_to:()=>ir});var ir="Paul van Brouwershaven",or="",_r="ltr",cr={placeholder:"Zoeken",clear_search:"Reset",load_more:"Meer resultaten laden",search_label:"Doorzoek deze site",filters_label:"Filters",zero_results:"Geen resultaten voor [SEARCH_TERM]",many_results:"[COUNT] resultaten voor [SEARCH_TERM]",one_result:"[COUNT] resultaat voor [SEARCH_TERM]",alt_search:"Geen resultaten voor [SEARCH_TERM]. In plaats daarvan worden resultaten voor [DIFFERENT_TERM] weergegeven",search_suggestion:"Geen resultaten voor [SEARCH_TERM]. Probeer een van de volgende zoekopdrachten:",searching:"Zoeken naar [SEARCH_TERM]..."},xl={thanks_to:ir,comments:or,direction:_r,strings:cr},fr={};F(fr,{comments:()=>dr,default:()=>ql,direction:()=>hr,strings:()=>mr,thanks_to:()=>Er});var Er="Christopher Wingate",dr="",hr="ltr",mr={placeholder:"Søk",clear_search:"Fjern",load_more:"Last flere resultater",search_label:"Søk på denne siden",filters_label:"Filtre",zero_results:"Ingen resultater for [SEARCH_TERM]",many_results:"[COUNT] resultater for [SEARCH_TERM]",one_result:"[COUNT] resultat for [SEARCH_TERM]",alt_search:"Ingen resultater for [SEARCH_TERM]. Viser resultater for [DIFFERENT_TERM] i stedet",search_suggestion:"Ingen resultater for [SEARCH_TERM]. Prøv en av disse søkeordene i stedet:",searching:"Søker etter [SEARCH_TERM]"},ql={thanks_to:Er,comments:dr,direction:hr,strings:mr},Cr={};F(Cr,{comments:()=>Rr,default:()=>Vl,direction:()=>Br,strings:()=>Ar,thanks_to:()=>gr});var gr="",Rr="",Br="ltr",Ar={placeholder:"Szukaj",clear_search:"Wyczyść",load_more:"Załaduj więcej",search_label:"Przeszukaj tę stronę",filters_label:"Filtry",zero_results:"Brak wyników dla [SEARCH_TERM]",many_results:"[COUNT] wyników dla [SEARCH_TERM]",one_result:"[COUNT] wynik dla [SEARCH_TERM]",alt_search:"Brak wyników dla [SEARCH_TERM]. Wyświetlam wyniki dla [DIFFERENT_TERM]",search_suggestion:"Brak wyników dla [SEARCH_TERM]. Pokrewne wyniki wyszukiwania:",searching:"Szukam [SEARCH_TERM]..."},Vl={thanks_to:gr,comments:Rr,direction:Br,strings:Ar},pr={};F(pr,{comments:()=>Tr,default:()=>Kl,direction:()=>Fr,strings:()=>kr,thanks_to:()=>vr});var vr="Jonatah",Tr="",Fr="ltr",kr={placeholder:"Pesquisar",clear_search:"Limpar",load_more:"Ver mais resultados",search_label:"Pesquisar",filters_label:"Filtros",zero_results:"Nenhum resultado encontrado para [SEARCH_TERM]",many_results:"[COUNT] resultados encontrados para [SEARCH_TERM]",one_result:"[COUNT] resultado encontrado para [SEARCH_TERM]",alt_search:"Nenhum resultado encontrado para [SEARCH_TERM]. Exibindo resultados para [DIFFERENT_TERM]",search_suggestion:"Nenhum resultado encontrado para [SEARCH_TERM]. Tente uma das seguintes pesquisas:",searching:"Pesquisando por [SEARCH_TERM]..."},Kl={thanks_to:vr,comments:Tr,direction:Fr,strings:kr},br={};F(br,{comments:()=>Sr,default:()=>Gl,direction:()=>Dr,strings:()=>Hr,thanks_to:()=>Mr});var Mr="Bogdan Mateescu ",Sr="",Dr="ltr",Hr={placeholder:"Căutare",clear_search:"Ştergeţi",load_more:"Încărcați mai multe rezultate",search_label:"Căutați în acest site",filters_label:"Filtre",zero_results:"Niciun rezultat pentru [SEARCH_TERM]",many_results:"[COUNT] rezultate pentru [SEARCH_TERM]",one_result:"[COUNT] rezultat pentru [SEARCH_TERM]",alt_search:"Niciun rezultat pentru [SEARCH_TERM]. Se afișează în schimb rezultatele pentru [DIFFERENT_TERM]",search_suggestion:"Niciun rezultat pentru [SEARCH_TERM]. Încercați una dintre următoarele căutări:",searching:"Se caută după: [SEARCH_TERM]..."},Gl={thanks_to:Mr,comments:Sr,direction:Dr,strings:Hr},wr={};F(wr,{comments:()=>yr,default:()=>Wl,direction:()=>zr,strings:()=>jr,thanks_to:()=>Nr});var Nr="Aleksandr Gordeev",yr="",zr="ltr",jr={placeholder:"Поиск",clear_search:"Очистить поле",load_more:"Загрузить еще",search_label:"Поиск по сайту",filters_label:"Фильтры",zero_results:"Ничего не найдено по запросу: [SEARCH_TERM]",many_results:"[COUNT] результатов по запросу: [SEARCH_TERM]",one_result:"[COUNT] результат по запросу: [SEARCH_TERM]",alt_search:"Ничего не найдено по запросу: [SEARCH_TERM]. Показаны результаты по запросу: [DIFFERENT_TERM]",search_suggestion:"Ничего не найдено по запросу: [SEARCH_TERM]. Попробуйте один из следующих вариантов",searching:"Поиск по запросу: [SEARCH_TERM]"},Wl={thanks_to:Nr,comments:yr,direction:zr,strings:jr},Or={};F(Or,{comments:()=>Ir,default:()=>Jl,direction:()=>Lr,strings:()=>Pr,thanks_to:()=>Ur});var Ur="Andrija Sagicc",Ir="",Lr="ltr",Pr={placeholder:"Претрага",clear_search:"Брисање",load_more:"Приказ више резултата",search_label:"Претрага сајта",filters_label:"Филтери",zero_results:"Нема резултата за [SEARCH_TERM]",many_results:"[COUNT] резултата за [SEARCH_TERM]",one_result:"[COUNT] резултата за [SEARCH_TERM]",alt_search:"Нема резултата за [SEARCH_TERM]. Приказ додатник резултата за [DIFFERENT_TERM]",search_suggestion:"Нема резултата за [SEARCH_TERM]. Покушајте са неком од следећих претрага:",searching:"Претрага термина [SEARCH_TERM]..."},Jl={thanks_to:Ur,comments:Ir,direction:Lr,strings:Pr},xr={};F(xr,{comments:()=>Vr,default:()=>Zl,direction:()=>Kr,strings:()=>Gr,thanks_to:()=>qr});var qr="Montazar Al-Jaber ",Vr="",Kr="ltr",Gr={placeholder:"Sök",clear_search:"Rensa",load_more:"Visa fler träffar",search_label:"Sök på denna sida",filters_label:"Filter",zero_results:"[SEARCH_TERM] gav inga träffar",many_results:"[SEARCH_TERM] gav [COUNT] träffar",one_result:"[SEARCH_TERM] gav [COUNT] träff",alt_search:"[SEARCH_TERM] gav inga träffar. Visar resultat för [DIFFERENT_TERM] istället",search_suggestion:"[SEARCH_TERM] gav inga träffar. Försök igen med en av följande sökord:",searching:"Söker efter [SEARCH_TERM]..."},Zl={thanks_to:qr,comments:Vr,direction:Kr,strings:Gr},Wr={};F(Wr,{comments:()=>Zr,default:()=>Yl,direction:()=>Yr,strings:()=>Xr,thanks_to:()=>Jr});var Jr="",Zr="",Yr="ltr",Xr={placeholder:"தேடுக",clear_search:"அழிக்குக",load_more:"மேலும் முடிவுகளைக் காட்டுக",search_label:"இந்த தளத்தில் தேடுக",filters_label:"வடிகட்டல்கள்",zero_results:"[SEARCH_TERM] க்கான முடிவுகள் இல்லை",many_results:"[SEARCH_TERM] க்கான [COUNT] முடிவுகள்",one_result:"[SEARCH_TERM] க்கான முடிவு",alt_search:"[SEARCH_TERM] இத்தேடலுக்கான முடிவுகள் இல்லை, இந்த தேடல்களுக்கான ஒத்த முடிவுகள் [DIFFERENT_TERM]",search_suggestion:"[SEARCH_TERM] இத் தேடலுக்கான முடிவுகள் இல்லை.இதற்கு பதிலீடான தேடல்களை தேடுக:",searching:"[SEARCH_TERM] தேடப்படுகின்றது"},Yl={thanks_to:Jr,comments:Zr,direction:Yr,strings:Xr},Qr={};F(Qr,{comments:()=>es,default:()=>Xl,direction:()=>us,strings:()=>ts,thanks_to:()=>$r});var $r="Taylan Özgür Bildik",es="",us="ltr",ts={placeholder:"Araştır",clear_search:"Temizle",load_more:"Daha fazla sonuç",search_label:"Site genelinde arama",filters_label:"Filtreler",zero_results:"[SEARCH_TERM] için sonuç yok",many_results:"[SEARCH_TERM] için [COUNT] sonuç bulundu",one_result:"[SEARCH_TERM] için [COUNT] sonuç bulundu",alt_search:"[SEARCH_TERM] için sonuç yok. Bunun yerine [DIFFERENT_TERM] için sonuçlar gösteriliyor",search_suggestion:"[SEARCH_TERM] için sonuç yok. Alternatif olarak aşağıdaki kelimelerden birini deneyebilirsiniz:",searching:"[SEARCH_TERM] araştırılıyor..."},Xl={thanks_to:$r,comments:es,direction:us,strings:ts},rs={};F(rs,{comments:()=>ls,default:()=>Ql,direction:()=>as,strings:()=>ns,thanks_to:()=>ss});var ss="Vladyslav Lyshenko ",ls="",as="ltr",ns={placeholder:"Пошук",clear_search:"Очистити поле",load_more:"Завантажити ще",search_label:"Пошук по сайту",filters_label:"Фільтри",zero_results:"Нічого не знайдено за запитом: [SEARCH_TERM]",many_results:"[COUNT] результатів на запит: [SEARCH_TERM]",one_result:"[COUNT] результат за запитом: [SEARCH_TERM]",alt_search:"Нічого не знайдено на запит: [SEARCH_TERM]. Показано результати на запит: [DIFFERENT_TERM]",search_suggestion:"Нічого не знайдено на запит: [SEARCH_TERM]. Спробуйте один із таких варіантів",searching:"Пошук за запитом: [SEARCH_TERM]"},Ql={thanks_to:ss,comments:ls,direction:as,strings:ns},is={};F(is,{comments:()=>_s,default:()=>$l,direction:()=>cs,strings:()=>fs,thanks_to:()=>os});var os="Long Nhat Nguyen",_s="",cs="ltr",fs={placeholder:"Tìm kiếm",clear_search:"Xóa",load_more:"Nhiều kết quả hơn",search_label:"Tìm kiếm trong trang này",filters_label:"Bộ lọc",zero_results:"Không tìm thấy kết quả cho [SEARCH_TERM]",many_results:"[COUNT] kết quả cho [SEARCH_TERM]",one_result:"[COUNT] kết quả cho [SEARCH_TERM]",alt_search:"Không tìm thấy kết quả cho [SEARCH_TERM]. Kiểm thị kết quả thay thế với [DIFFERENT_TERM]",search_suggestion:"Không tìm thấy kết quả cho [SEARCH_TERM]. Thử một trong các tìm kiếm:",searching:"Đang tìm kiếm cho [SEARCH_TERM]..."},$l={thanks_to:os,comments:_s,direction:cs,strings:fs},Es={};F(Es,{comments:()=>hs,default:()=>ea,direction:()=>ms,strings:()=>Cs,thanks_to:()=>ds});var ds="Amber Song",hs="",ms="ltr",Cs={placeholder:"搜索",clear_search:"清除",load_more:"加载更多结果",search_label:"站内搜索",filters_label:"筛选",zero_results:"未找到 [SEARCH_TERM] 的相关结果",many_results:"找到 [COUNT] 个 [SEARCH_TERM] 的相关结果",one_result:"找到 [COUNT] 个 [SEARCH_TERM] 的相关结果",alt_search:"未找到 [SEARCH_TERM] 的相关结果。改为显示 [DIFFERENT_TERM] 的相关结果",search_suggestion:"未找到 [SEARCH_TERM] 的相关结果。请尝试以下搜索。",searching:"正在搜索 [SEARCH_TERM]..."},ea={thanks_to:ds,comments:hs,direction:ms,strings:Cs},gs={};F(gs,{comments:()=>Bs,default:()=>ua,direction:()=>As,strings:()=>ps,thanks_to:()=>Rs});var Rs="Amber Song",Bs="",As="ltr",ps={placeholder:"搜索",clear_search:"清除",load_more:"加載更多結果",search_label:"站內搜索",filters_label:"篩選",zero_results:"未找到 [SEARCH_TERM] 的相關結果",many_results:"找到 [COUNT] 個 [SEARCH_TERM] 的相關結果",one_result:"找到 [COUNT] 個 [SEARCH_TERM] 的相關結果",alt_search:"未找到 [SEARCH_TERM] 的相關結果。改為顯示 [DIFFERENT_TERM] 的相關結果",search_suggestion:"未找到 [SEARCH_TERM] 的相關結果。請嘗試以下搜索。",searching:"正在搜索 [SEARCH_TERM]..."},ua={thanks_to:Rs,comments:Bs,direction:As,strings:ps},vs={};F(vs,{comments:()=>Fs,default:()=>ta,direction:()=>ks,strings:()=>bs,thanks_to:()=>Ts});var Ts="Amber Song",Fs="",ks="ltr",bs={placeholder:"搜索",clear_search:"清除",load_more:"加载更多结果",search_label:"站内搜索",filters_label:"筛选",zero_results:"未找到 [SEARCH_TERM] 的相关结果",many_results:"找到 [COUNT] 个 [SEARCH_TERM] 的相关结果",one_result:"找到 [COUNT] 个 [SEARCH_TERM] 的相关结果",alt_search:"未找到 [SEARCH_TERM] 的相关结果。改为显示 [DIFFERENT_TERM] 的相关结果",search_suggestion:"未找到 [SEARCH_TERM] 的相关结果。请尝试以下搜索。",searching:"正在搜索 [SEARCH_TERM]..."},ta={thanks_to:Ts,comments:Fs,direction:ks,strings:bs},ra=[Bu,Fu,Du,zu,Lu,Ku,Yu,ut,at,ct,mt,At,kt,Ht,jt,Pt,Gt,Xt,tr,nr,fr,Cr,pr,br,wr,Or,xr,Wr,Qr,rs,is,Es,gs,vs],sa=ra,la=["../../translations/af.json","../../translations/bn.json","../../translations/ca.json","../../translations/cs.json","../../translations/da.json","../../translations/de.json","../../translations/en.json","../../translations/es.json","../../translations/fi.json","../../translations/fr.json","../../translations/gl.json","../../translations/hi.json","../../translations/hr.json","../../translations/hu.json","../../translations/id.json","../../translations/it.json","../../translations/ja.json","../../translations/ko.json","../../translations/mi.json","../../translations/nl.json","../../translations/no.json","../../translations/pl.json","../../translations/pt.json","../../translations/ro.json","../../translations/ru.json","../../translations/sr.json","../../translations/sv.json","../../translations/ta.json","../../translations/tr.json","../../translations/uk.json","../../translations/vi.json","../../translations/zh-cn.json","../../translations/zh-tw.json","../../translations/zh.json"];function ou(e,t,u){const r=e.slice();return r[51]=t[u],r}function _u(e){let t,u,r;function s(a){e[37](a)}let l={show_empty_filters:e[5],open_filters:e[6],available_filters:e[18],translate:e[20],automatic_translations:e[19],translations:e[7]};return e[0]!==void 0&&(l.selected_filters=e[0]),t=new pl({props:l}),le.push(()=>rl(t,"selected_filters",s)),{c(){ke(t.$$.fragment)},m(a,n){Ee(t,a,n),r=!0},p(a,n){const i={};n[0]&32&&(i.show_empty_filters=a[5]),n[0]&64&&(i.open_filters=a[6]),n[0]&262144&&(i.available_filters=a[18]),n[0]&524288&&(i.automatic_translations=a[19]),n[0]&128&&(i.translations=a[7]),!u&&n[0]&1&&(u=!0,i.selected_filters=a[0],Qs(()=>u=!1)),t.$set(i)},i(a){r||(z(t.$$.fragment,a),r=!0)},o(a){U(t.$$.fragment,a),r=!1},d(a){de(t,a)}}}function cu(e){let t,u,r,s;const l=[na,aa],a=[];function n(i,d){return i[14]?0:1}return u=n(e),r=a[u]=l[u](e),{c(){t=p("div"),r.c(),g(t,"class","pagefind-ui__results-area svelte-e9gkc3")},m(i,d){T(i,t,d),a[u].m(t,null),s=!0},p(i,d){let _=u;u=n(i),u===_?a[u].p(i,d):(ae(),U(a[_],1,1,()=>{a[_]=null}),ne(),r=a[u],r?r.p(i,d):(r=a[u]=l[u](i),r.c()),z(r,1),r.m(t,null))},i(i){s||(z(r),s=!0)},o(i){U(r),s=!1},d(i){i&&v(t),a[u].d()}}}function aa(e){let t,u,r,s=[],l=new Map,a,n,i;function d(o,E){return o[13].results.length===0?_a:o[13].results.length===1?oa:ia}let _=d(e),h=_(e),m=e[13].results.slice(0,e[17]);const f=o=>o[51].id;for(let o=0;oe[17]&&Eu(e);return{c(){t=p("p"),h.c(),u=M(),r=p("ol");for(let o=0;oo[17]?c?c.p(o,E):(c=Eu(o),c.c(),c.m(n.parentNode,n)):c&&(c.d(1),c=null)},i(o){if(!i){for(let E=0;E{i[m]=null}),ne(),s=i[r],s?s.p(t,h):(s=i[r]=n[r](t),s.c()),z(s,1),s.m(l.parentNode,l))},i(_){a||(z(s),a=!0)},o(_){U(s),a=!1},d(_){_&&v(u),i[r].d(_),_&&v(l)}}}function Eu(e){let t,u=e[20]("load_more",e[19],e[7])+"",r,s,l;return{c(){t=p("button"),r=S(u),g(t,"type","button"),g(t,"class","pagefind-ui__button svelte-e9gkc3")},m(a,n){T(a,t,n),A(t,r),s||(l=G(t,"click",e[22]),s=!0)},p(a,n){n[0]&524416&&u!==(u=a[20]("load_more",a[19],a[7])+"")&&j(r,u)},d(a){a&&v(t),s=!1,l()}}}function du(e){let t,u=e[20]("searching",e[19],e[7]).replace(/\[SEARCH_TERM\]/,e[16])+"",r;return{c(){t=p("p"),r=S(u),g(t,"class","pagefind-ui__message svelte-e9gkc3")},m(s,l){T(s,t,l),A(t,r)},p(s,l){l[0]&589952&&u!==(u=s[20]("searching",s[19],s[7]).replace(/\[SEARCH_TERM\]/,s[16])+"")&&j(r,u)},d(s){s&&v(t)}}}function Ea(e){let t,u,r,s,l,a,n=e[20]("clear_search",e[19],e[7])+"",i,d,_,h,m,f,c,o,E=e[12]&&_u(e),B=e[15]&&cu(e);return{c(){t=p("div"),u=p("form"),r=p("input"),l=M(),a=p("button"),i=S(n),d=M(),_=p("div"),E&&E.c(),h=M(),B&&B.c(),g(r,"class","pagefind-ui__search-input svelte-e9gkc3"),g(r,"type","text"),g(r,"placeholder",s=e[20]("placeholder",e[19],e[7])),g(r,"autocapitalize","none"),g(r,"enterkeyhint","search"),r.autofocus=e[8],g(a,"class","pagefind-ui__search-clear svelte-e9gkc3"),K(a,"pagefind-ui__suppressed",!e[9]),g(_,"class","pagefind-ui__drawer svelte-e9gkc3"),K(_,"pagefind-ui__hidden",!e[15]),g(u,"class","pagefind-ui__form svelte-e9gkc3"),g(u,"role","search"),g(u,"aria-label",m=e[20]("search_label",e[19],e[7])),g(u,"action","javascript:void(0);"),g(t,"class","pagefind-ui svelte-e9gkc3"),K(t,"pagefind-ui--reset",e[1])},m(R,k){T(R,t,k),A(t,u),A(u,r),ze(r,e[9]),e[34](r),A(u,l),A(u,a),A(a,i),e[35](a),A(u,d),A(u,_),E&&E.m(_,null),A(_,h),B&&B.m(_,null),f=!0,e[8]&&r.focus(),c||(o=[G(r,"focus",e[21]),G(r,"keydown",e[32]),G(r,"input",e[33]),G(a,"click",e[36]),G(u,"submit",da)],c=!0)},p(R,k){(!f||k[0]&524416&&s!==(s=R[20]("placeholder",R[19],R[7])))&&g(r,"placeholder",s),(!f||k[0]&256)&&(r.autofocus=R[8]),k[0]&512&&r.value!==R[9]&&ze(r,R[9]),(!f||k[0]&524416)&&n!==(n=R[20]("clear_search",R[19],R[7])+"")&&j(i,n),(!f||k[0]&512)&&K(a,"pagefind-ui__suppressed",!R[9]),R[12]?E?(E.p(R,k),k[0]&4096&&z(E,1)):(E=_u(R),E.c(),z(E,1),E.m(_,h)):E&&(ae(),U(E,1,1,()=>{E=null}),ne()),R[15]?B?(B.p(R,k),k[0]&32768&&z(B,1)):(B=cu(R),B.c(),z(B,1),B.m(_,null)):B&&(ae(),U(B,1,1,()=>{B=null}),ne()),(!f||k[0]&32768)&&K(_,"pagefind-ui__hidden",!R[15]),(!f||k[0]&524416&&m!==(m=R[20]("search_label",R[19],R[7])))&&g(u,"aria-label",m),(!f||k[0]&2)&&K(t,"pagefind-ui--reset",R[1])},i(R){f||(z(E),z(B),f=!0)},o(R){U(E),U(B),f=!1},d(R){R&&v(t),e[34](null),e[35](null),E&&E.d(),B&&B.d(),c=!1,J(o)}}}var da=e=>e.preventDefault();function ha(e,t,u){const r={},s=la.map(C=>C.match(/([^\/]+)\.json$/)[1]);for(let C=0;CN[C]??H[C]??"";Js(()=>{let C=document?.querySelector?.("html")?.getAttribute?.("lang")||"en",H=Ru(C.toLocaleLowerCase());u(19,He=r[`${H.language}-${H.script}-${H.region}`]||r[`${H.language}-${H.region}`]||r[`${H.language}`]||r.en)}),Zs(()=>{D?.destroy?.(),D=null});const we=async()=>{if(!Ce&&(u(12,Ce=!0),!D)){let C;try{C=await xs(()=>import(`${l}pagefind.js`),[])}catch(N){console.error(N),console.error([`Pagefind couldn't be loaded from ${this.options.bundlePath}pagefind.js`,"You can configure this by passing a bundlePath option to PagefindUI",`[DEBUG: Loaded from ${document?.currentScript?.src??"no known script location"}]`].join(` +`))}_||u(24,_=d?12:30);let H={...E||{},excerptLength:_};await C.options(H);for(const N of B){if(!N.bundlePath)throw new Error("mergeIndex requires a bundlePath parameter");const I=N.bundlePath;delete N.bundlePath,await C.mergeIndex(I,N)}D=C,Ds()}},Ds=async()=>{D&&(De=await D.filters(),(!ue||!Object.keys(ue).length)&&u(18,ue=De))},Hs=C=>{let H={};return Object.entries(C).filter(([,N])=>N).forEach(([N])=>{let[I,Z]=N.split(/:(.*)$/);H[I]=H[I]||[],H[I].push(Z)}),H};let te;const ws=async(C,H)=>{if(!C){u(15,Re=!1),te&&clearTimeout(te);return}const N=Hs(H),I=()=>Ns(C,N);o>0&&C?(te&&clearTimeout(te),te=setTimeout(I,o),await Ne(),D.preload(C,{filters:N})):I(),ys()},Ne=async()=>{for(;!D;)we(),await new Promise(C=>setTimeout(C,50))},Ns=async(C,H)=>{u(16,Se=C||""),typeof m=="function"&&(C=m(C)),u(14,ge=!0),u(15,Re=!0),await Ne();const N=++Me,I={filters:H};q&&typeof q=="object"&&(I.sort=q);const Z=await D.search(C,I);Me===N&&(Z.filters&&Object.keys(Z.filters)?.length&&u(18,ue=Z.filters),u(13,be=Z),u(14,ge=!1),u(17,Be=a))},ys=()=>{const C=x.offsetWidth;C!=Ms&&u(10,w.style.paddingRight=`${C+2}px`,w)},zs=C=>{C?.preventDefault(),u(17,Be+=a)},js=C=>{C.key==="Escape"&&(u(9,b=""),w.blur()),C.key==="Enter"&&C.preventDefault()};function Os(){b=this.value,u(9,b),u(23,R)}function Us(C){le[C?"unshift":"push"](()=>{w=C,u(10,w)})}function Is(C){le[C?"unshift":"push"](()=>{x=C,u(11,x)})}const Ls=()=>{u(9,b=""),w.blur()};function Ps(C){P=C,u(0,P)}return e.$$set=C=>{"base_path"in C&&u(25,l=C.base_path),"page_size"in C&&u(26,a=C.page_size),"reset_styles"in C&&u(1,n=C.reset_styles),"show_images"in C&&u(2,i=C.show_images),"show_sub_results"in C&&u(3,d=C.show_sub_results),"excerpt_length"in C&&u(24,_=C.excerpt_length),"process_result"in C&&u(4,h=C.process_result),"process_term"in C&&u(27,m=C.process_term),"show_empty_filters"in C&&u(5,f=C.show_empty_filters),"open_filters"in C&&u(6,c=C.open_filters),"debounce_timeout_ms"in C&&u(28,o=C.debounce_timeout_ms),"pagefind_options"in C&&u(29,E=C.pagefind_options),"merge_index"in C&&u(30,B=C.merge_index),"trigger_search_term"in C&&u(23,R=C.trigger_search_term),"translations"in C&&u(7,k=C.translations),"autofocus"in C&&u(8,y=C.autofocus),"sort"in C&&u(31,q=C.sort),"selected_filters"in C&&u(0,P=C.selected_filters)},e.$$.update=()=>{e.$$.dirty[0]&8388608&&R&&(u(9,b=R),u(23,R="")),e.$$.dirty[0]&513&&ws(b,P)},[P,n,i,d,h,f,c,k,y,b,w,x,Ce,be,ge,Re,Se,Be,ue,He,Ss,we,zs,R,_,l,a,m,o,E,B,q,js,Os,Us,Is,Ls,Ps]}var ma=class extends me{constructor(e){super(),he(this,e,ha,Ea,fe,{base_path:25,page_size:26,reset_styles:1,show_images:2,show_sub_results:3,excerpt_length:24,process_result:4,process_term:27,show_empty_filters:5,open_filters:6,debounce_timeout_ms:28,pagefind_options:29,merge_index:30,trigger_search_term:23,translations:7,autofocus:8,sort:31,selected_filters:0},null,[-1,-1])}},Ca=ma,Fe;try{Fe=new URL(document.currentScript.src).pathname.match(/^(.*\/)(?:pagefind-)?ui.js.*$/)[1]}catch{Fe="/pagefind/"}var Ra=class{constructor(e){this._pfs=null;let t=e.element??"[data-pagefind-ui]",u=e.bundlePath??Fe,r=e.pageSize??5,s=e.resetStyles??!0,l=e.showImages??!0,a=e.showSubResults??!1,n=e.excerptLength??0,i=e.processResult??null,d=e.processTerm??null,_=e.showEmptyFilters??!0,h=e.openFilters??[],m=e.debounceTimeoutMs??300,f=e.mergeIndex??[],c=e.translations??[],o=e.autofocus??!1,E=e.sort??null;delete e.element,delete e.bundlePath,delete e.pageSize,delete e.resetStyles,delete e.showImages,delete e.showSubResults,delete e.excerptLength,delete e.processResult,delete e.processTerm,delete e.showEmptyFilters,delete e.openFilters,delete e.debounceTimeoutMs,delete e.mergeIndex,delete e.translations,delete e.autofocus,delete e.sort;const B=t instanceof HTMLElement?t:document.querySelector(t);B?this._pfs=new Ca({target:B,props:{base_path:u,page_size:r,reset_styles:s,show_images:l,show_sub_results:a,excerpt_length:n,process_result:i,process_term:d,show_empty_filters:_,open_filters:h,debounce_timeout_ms:m,merge_index:f,translations:c,autofocus:o,sort:E,pagefind_options:e}}):console.error(`Pagefind UI couldn't find the selector ${t}`)}triggerSearch(e){this._pfs.$$set({trigger_search_term:e})}triggerFilters(e){let t={};for(let[u,r]of Object.entries(e))if(Array.isArray(r))for(let s of r)t[`${u}:${s}`]=!0;else t[`${u}:${r}`]=!0;this._pfs.$$set({selected_filters:t})}destroy(){this._pfs.$destroy()}};export{Ra as PagefindUI}; diff --git a/dist/docs/glossary/index.html b/dist/docs/glossary/index.html index 5bbc00f..23c6cd5 100644 --- a/dist/docs/glossary/index.html +++ b/dist/docs/glossary/index.html @@ -1,4 +1,4 @@ - Glossary | learn-gpgpu - Skip to content
+ Skip to content

Glossary

Afford/Affordance::

+

Glossary

Afford/Affordance::

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

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

Concurrent::

@@ -58,4 +70,4 @@

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.

See also: concurrent; all concurrent work may be safely executed in parallel, but not all parallel work is concurrent: in fact, a good way to check for concurrency is to imagine adding or removing parallelism. If the computation always produces the same result, regardless of parallelism, then the work is more likely to be concurrent.

Aside: Often problems arise when work that is not concurrent is executed concurrently—that is, as if it were safe to execute in any order or with any degree of overlap. In those situations, so-called “concurrency bugs” arise because the work that was thought to be concurrent turned out not to be correct under some degree of parallelism. For this reason, it’s often easy to confuse “concurrent” and “parallel,” because even though the misunderstanding was in whether or not the work was concurrent (i.e. was correct under all possible permutations), the mistake was exposed by “rubbing some parallelism on it.”

-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/docs/goals/index.html b/dist/docs/goals/index.html index 3c83248..2b4c23d 100644 --- a/dist/docs/goals/index.html +++ b/dist/docs/goals/index.html @@ -1,4 +1,4 @@ - Experiment & Goals | learn-gpgpu - Skip to content
+ Skip to content

Experiment & Goals

Four areas to experiment with communicating about:

+

Experiment & Goals

Four areas to experiment with communicating about:

  1. SIMT
  2. Logical/physical work mapping
  3. @@ -62,11 +74,11 @@

    Suggested Exercises:

    1. “run” and notice that the Same Instruction was executed Multiple Times
    2. Change the %n (better name tbd) constant value from 0 to 1, and notice that only one element gets written 16 times; now change the work size from 16 1 1 to 1 16 1 -> original behavior restored
    3. -
    4. ”debug” and step through to the OpStore
    5. +
    6. “debug” and step through to the OpStore
    • print %3
    • -
    • ”switch 2 0 0” and print %3 again (logical coords)
    • +
    • “switch 2 0 0” and print %3 again (logical coords)
    • what’s the largest thing you can “switch” to? (parallelism)
    • what happens when you de-select a lane? (divergence)
    @@ -118,4 +130,4 @@

    Bugs

    guided:

    - changing the size to be bigger than the maximum limits (something like 2^32? and/or setting that limit waaay smaller than a real GPU?)
    - attempting to change the constant value to something outside of [0, 2]
    - resizing the buffer (knowing both when and how to do so)

    (mostly) un-guided:

    -
    - modifications that cause the module to fail to parse
\ No newline at end of file +
- modifications that cause the module to fail to parse
\ No newline at end of file diff --git a/dist/docs/index.html b/dist/docs/index.html index 878cb0b..5aad780 100644 --- a/dist/docs/index.html +++ b/dist/docs/index.html @@ -1,4 +1,4 @@ - Adventures in GPU-land | learn-gpgpu - Skip to content
+ Skip to content

Adventures in GPU-land

Welcome! What is this about, and how ought you use it?

-

I’m so glad you asked. Let’s figure it out together!

\ No newline at end of file +

Adventures in GPU-land

Welcome! What is this about, and how ought you use it?

+

I’m so glad you asked. Let’s figure it out together!

\ No newline at end of file diff --git a/dist/docs/internals/index.html b/dist/docs/internals/index.html index 22ee4a7..77a5415 100644 --- a/dist/docs/internals/index.html +++ b/dist/docs/internals/index.html @@ -1,4 +1,4 @@ - Internals | learn-gpgpu - Skip to content
+ Skip to content

Internals

Descriptive

+

Internals

Descriptive

What talvos is: a straightforward mapping of SPIR-V opcodes to a multi-threaded work-stealing CPU model operating against a fully strongly consistent memory store.

This makes implementation of various common GPU (mis)uses kind of tricky. For example:

    @@ -62,4 +74,4 @@

    Normative

    [ ] perf counters [ ] memory hierarchy [ ] fully concurrent, but -[ ] pseudo-deterministically parallel

\ No newline at end of file +[ ] pseudo-deterministically parallel

\ No newline at end of file diff --git a/dist/docs/simt/index.html b/dist/docs/simt/index.html index 69cddf9..7d0b150 100644 --- a/dist/docs/simt/index.html +++ b/dist/docs/simt/index.html @@ -1,4 +1,4 @@ - SIMT | learn-gpgpu - Skip to content
+ Skip to content

SIMT

Some exposition on our journey through the world of modeling Simultaenous Instruction, Multiple Thread computations.

+

SIMT

Some exposition on our journey through the world of modeling Simultaneous Instruction, Multiple Thread computations.

Core Questions:

  1. When does one operation dispatch relative to the previous one?
  2. -
  3. When does a “local” operation complete relative to its dispatch? What about a “memory” operation?
  4. +
  5. When does an operation complete relative to its dispatch?
  6. +
  7. How do we define our computation such that it scales, both with the size of our data and our hardware?

View A: “Control Blocks”

@@ -85,16 +98,42 @@

View A: “Control Blocks”

Roughly, this model displayed cores going down the page, lanes going right. Hovering over an element displayed its coordinates at the bottom, and—when the simulation was running—the

This let us talk about three things:

    -
  1. With appropriate coaching, stepping w/ some lanes deselected (as shown above) permits an experiment highlighting some of the dependent/independent relationship between Instructions and Threads.
  2. -
+
  • With appropriate coaching, stepping w/ some lanes deselected (as shown above) permits an experiment highlighting some of the dependent/independent relationship between Instructions and Threads.
    • By disabling some lanes and stepping the OpStore, the disabled part of the computation would be skipped. This demonstrated that each operation was “on die” at most once, and the “multiple”-ness comes from exactly as many times as lanes of the core were active at that time.
    • Stepping with a whole core “disabled,” on the other hand, allowed that same portion of the computation to resume when the core was re-enabled; demonstrating one of the kinds of independence enjoyed by cross-core operations not shared across lanes.
    -
      +
    1. Work mapping, somewhat: by linking the hardware and logical coordinates, it was possible to “see” which parts of the program were executed by which hardware elements.
    2. -
    3. The “scalability” of SIMT models; since the program specifies parallelism in exactly one place (“OpExecutionGlobalSizeTALVOS”), we can “light up” more lanes and cores by changing just that one number.
    4. -
    +
  • The “scalability” of SIMT models; since the program specifies parallelism in exactly one place (“OpExecutionGlobalSizeTALVOS”), we can “light up” more lanes and cores by changing just that one number.
    • Adding a control to expose the number of cores and lanes per core would have augmented the view with the capability to “reshape” the hardware to better show both the scalability and its interplay with the hardware scheduler.
    • -
  • \ No newline at end of file + + + +

    Notes

    +
      +
    1. The split between “SIMT” and “Parallelism” is roughly “one core” vs “many cores”; it’s not totally clear yet where “many programs” fit into the split, though.
    2. +
    3. Unfortunately, both “instruction” and “thread” are words that are so overloaded we prefer to avoid them. However, substitutes aren’t in wide use, especially when it comes to describing GP-GPU computing, so we’re sticking with “SIMT” for now. +
        +
      • The most useful possible alternative might be Single Program Multiple Data (SPMD, via Hwu et al. 2022), but that speaks more to the whole complex of cores. More to the point, it doesn’t elucidate single-core execution.
      • +
      • While some late-model GPUs offer thread-level instruction granularity, that’s a recent enough development that it’s not yet planned here. Addressing it would require understanding its impacts on divergence and occupancy, which are both planned but not yet implemented in the model.
      • +
      +
    4. +
    5. Whether or not introducing a model of pipelining is useful is similarly unclear. As few guarantees as GPUs provide, they do still have enough pipeline registers to conspire to make each “lane-slice” of work appear sequential, though, so from a debugging model standpoint we can treat them as such. +
        +
      • Doing so certainly more accurately characterizes the behavior of a single core—and very nicely motivates the masking-vs-branching dichotomy, especially as the pipeline length grows.
      • +
      • But, that also comes at a high cost for both the learner and the implementation. We’d need to break down all the SPIR-V opcodes (that we support, anyway) in a way that “makes sense” for whatever pipeline we pick.
      • +
      +
    6. +
    7. In order to expose the difference between dispatch and completion, we need some sort of structural hazard that rate limits computtation. The memory controller is a natural first target for such a hazard, since moving bits to the compute units is very likely to be the limiting factor on any given GPU program (limited by arithmetic-clock-speed being the lucky few). So, we’ve largely grouped operations into “memory” and “not-memory,” ignoring such things as floating-point or integer-addition pipelines (at least, for now). +
        +
      • Implementing a more accurate single-core pipeline model would unlock the capability to characterize different operations in terms of “µops”
      • +
      +
    8. +
    +

    References

    +

    References:

    +
      +
    • Hwu, Wen-Mei; Kirk, David. Programming Massively Parallel Processors, 4th ed, 2022. ISBN13: 9780323912310
    • +
    \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index 2267ffe..b6dbfbb 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1,5 +1,5 @@ - gpgpu playground -