@microtronics/studio-cli 1.2.0-alpha.1 → 1.2.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/out/api.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var _n=Object.create;var tr=Object.defineProperty;var $n=Object.getOwnPropertyDescriptor;var qn=Object.getOwnPropertyNames;var Pn=Object.getPrototypeOf,Nn=Object.prototype.hasOwnProperty;var Ln=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Gn=(t,e)=>{for(var F in e)tr(t,F,{get:e[F],enumerable:!0})},Ge=(t,e,F,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of qn(e))!Nn.call(t,s)&&s!==F&&tr(t,s,{get:()=>e[s],enumerable:!(i=$n(e,s))||i.enumerable});return t};var z0=(t,e,F)=>(F=t!=null?_n(Pn(t)):{},Ge(e||!t||!t.__esModule?tr(F,"default",{value:t,enumerable:!0}):F,t)),Tn=t=>Ge(tr({},"__esModule",{value:!0}),t);var Jt=Ln((v8,zt)=>{"use strict";var uF=Object.create,zA=Object.defineProperty,bF=Object.getOwnPropertyDescriptor,St=Object.getOwnPropertyNames,mF=Object.getPrototypeOf,hF=Object.prototype.hasOwnProperty,gF=(t,e,F)=>e in t?zA(t,e,{enumerable:!0,configurable:!0,writable:!0,value:F}):t[e]=F,Rt=(t,e)=>function(){return e||(0,t[St(t)[0]])((e={exports:{}}).exports,e),e.exports},kF=(t,e)=>{for(var F in e)zA(t,F,{get:e[F],enumerable:!0})},Ot=(t,e,F,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of St(e))!hF.call(t,s)&&s!==F&&zA(t,s,{get:()=>e[s],enumerable:!(i=bF(e,s))||i.enumerable});return t},Ut=(t,e,F)=>(F=t!=null?uF(mF(t)):{},Ot(e||!t||!t.__esModule?zA(F,"default",{value:t,enumerable:!0}):F,t)),yF=t=>Ot(zA({},"__esModule",{value:!0}),t),N0=(t,e,F)=>gF(t,typeof e!="symbol"?e+"":e,F),wF=Rt({"wasm/bin/pawncc.js"(t,e){"use strict";var F=(()=>{var i=globalThis.document?.currentScript?.src;return async function(s={}){var E,a=s,C=!!globalThis.window,l=!!globalThis.WorkerGlobalScope,d=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer",u=[],p="./this.program",k=(x,n)=>{throw n};typeof __filename<"u"?i=__filename:l&&(i=self.location.href);var w="",b,y;if(d){var $=require("fs");w=__dirname+"/",y=x=>{x=_(x)?new URL(x):x;var n=$.readFileSync(x);return n},b=async(x,n=!0)=>{x=_(x)?new URL(x):x;var v=$.readFileSync(x,n?void 0:"utf8");return v},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),u=process.argv.slice(2),k=(x,n)=>{throw process.exitCode=x,n}}else if(C||l){try{w=new URL(".",i).href}catch{}l&&(y=x=>{var n=new XMLHttpRequest;return n.open("GET",x,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),b=async x=>{if(_(x))return new Promise((v,f)=>{var c=new XMLHttpRequest;c.open("GET",x,!0),c.responseType="arraybuffer",c.onload=()=>{if(c.status==200||c.status==0&&c.response){v(c.response);return}f(c.status)},c.onerror=f,c.send(null)});var n=await fetch(x,{credentials:"same-origin"});if(n.ok)return n.arrayBuffer();throw new Error(n.status+" : "+n.url)}}var P=console.log.bind(console),N=console.error.bind(console),M,W=!1,g,_=x=>x.startsWith("file://");class G{}class U extends G{}function J(x){for(var n=0,v=x.length,f=new Uint8Array(v),c;n<v;++n)c=x.charCodeAt(n),f[n]=~c>>8&c;return f}var I,H,K=!1,Y=!1;function z(){var x=p0.buffer;q0=new Int8Array(x),yx=new Int16Array(x),Cx=new Uint8Array(x),gr=new Uint16Array(x),m0=new Int32Array(x),A0=new Uint32Array(x),mr=new Float32Array(x),hr=new Float64Array(x),h0=new BigInt64Array(x),kr=new BigUint64Array(x)}function T(){if(a.preRun)for(typeof a.preRun=="function"&&(a.preRun=[a.preRun]);a.preRun.length;)wr(a.preRun.shift());dA(pA)}function Q(){K=!0,!a.noFSInit&&!r.initialized&&r.init(),G0.init(),LA.__wasm_call_ctors(),r.ignorePermissions=!1}function r0(){}function t0(){j(),r.quit(),G0.shutdown(),Y=!0}function n0(){if(a.postRun)for(typeof a.postRun=="function"&&(a.postRun=[a.postRun]);a.postRun.length;)yr(a.postRun.shift());dA(jA)}function f0(x){a.onAbort?.(x),x=`Aborted(${x})`,N(x),W=!0,x+=". Build with -sASSERTIONS for more info.";var n=new WebAssembly.RuntimeError(x);throw H?.(n),n}var l0;function L0(){return J(`\0asm\0\0\0\x897\`\x7F\x7F\`\x7F\0\`\x7F\x7F\x7F\`\0\0\`\x7F\x7F\x7F\x7F\`\x7F\x7F\0\`\x7F\x7F~~~\`\x7F\x7F\x7F\0\`\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\x7F\0\`\0\x7F\`~\0\`\x7F~~~~\0\`\x7F\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F~\`\x7F~\x7F~\`\x7F\x7F\x7F\x7F\x7F\0\`\x7F~\`\x7F~\0\`\x7F|\`\x7F~~\x7F\0\`\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F~\x7F\x7F\x7F\`\x7F~\x7F\x7F\`\x07\x7F\x7F\x7F~\x7F\x7F\x7F~\`\x07\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`~\x7F\`~\x7F\x7F\0\`\x7F\x7F~\0\`\x7F|\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F~\x7F\x7F\x7F\`\x7F\x7F\x7F|\x7F\`\x7F\x7F|\x7F\`\x7F\x7F~\x7F\x7F\`\x07\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F~\`\x7F\x7F\x7F\x7F\x7F\x7F~\`\v\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F~\`\x7F~\x7F\x7F\x7F\x7F\x7F\` \x7F~\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`~~\x7F~\`\x7F~~\0\`~\x7F\0\`\x7F~\x7F\`\x7F||\`||\`|\x7F\`\x7F~~~\0\`|\x7F|\`~\x7F\x7F\`~~~~\x7F\`~~~\x7F\`\x7F|\0\`~~|\xD0env\binvoke_v\0env
1
+ "use strict";var mv=Object.create;var ut=Object.defineProperty;var jv=Object.getOwnPropertyDescriptor;var hv=Object.getOwnPropertyNames;var gv=Object.getPrototypeOf,yv=Object.prototype.hasOwnProperty;var kv=(A,x)=>()=>(x||A((x={exports:{}}).exports,x),x.exports),_v=(A,x)=>{for(var e in x)ut(A,e,{get:x[e],enumerable:!0})},Ci=(A,x,e,r)=>{if(x&&typeof x=="object"||typeof x=="function")for(let t of hv(x))!yv.call(A,t)&&t!==e&&ut(A,t,{get:()=>x[t],enumerable:!(r=jv(x,t))||r.enumerable});return A};var cx=(A,x,e)=>(e=A!=null?mv(gv(A)):{},Ci(x||!A||!A.__esModule?ut(e,"default",{value:A,enumerable:!0}):e,A)),wv=A=>Ci(ut({},"__esModule",{value:!0}),A);var ga=kv((t7,ha)=>{"use strict";var BE=Object.create,xt=Object.defineProperty,CE=Object.getOwnPropertyDescriptor,ua=Object.getOwnPropertyNames,dE=Object.getPrototypeOf,DE=Object.prototype.hasOwnProperty,uE=(A,x,e)=>x in A?xt(A,x,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[x]=e,pa=(A,x)=>function(){return x||(0,A[ua(A)[0]])((x={exports:{}}).exports,x),x.exports},pE=(A,x)=>{for(var e in x)xt(A,e,{get:x[e],enumerable:!0})},ba=(A,x,e,r)=>{if(x&&typeof x=="object"||typeof x=="function")for(let t of ua(x))!DE.call(A,t)&&t!==e&&xt(A,t,{get:()=>x[t],enumerable:!(r=CE(x,t))||r.enumerable});return A},ma=(A,x,e)=>(e=A!=null?BE(dE(A)):{},ba(x||!A||!A.__esModule?xt(e,"default",{value:A,enumerable:!0}):e,A)),bE=A=>ba(xt({},"__esModule",{value:!0}),A),dx=(A,x,e)=>uE(A,typeof x!="symbol"?x+"":x,e),mE=pa({"wasm/bin/pawncc.js"(A,x){"use strict";var e=(()=>{var r=globalThis.document?.currentScript?.src;return async function(t={}){var s,n=t,F=!!globalThis.window,f=!!globalThis.WorkerGlobalScope,c=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer",D=[],p="./this.program",j=(i,v)=>{throw v};typeof __filename<"u"?r=__filename:f&&(r=self.location.href);var _="",k,S;if(c){var P=require("fs");_=__dirname+"/",S=i=>{i=g(i)?new URL(i):i;var v=P.readFileSync(i);return v},k=async(i,v=!0)=>{i=g(i)?new URL(i):i;var B=P.readFileSync(i,v?void 0:"utf8");return B},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),D=process.argv.slice(2),j=(i,v)=>{throw process.exitCode=i,v}}else if(F||f){try{_=new URL(".",r).href}catch{}f&&(S=i=>{var v=new XMLHttpRequest;return v.open("GET",i,!1),v.responseType="arraybuffer",v.send(null),new Uint8Array(v.response)}),k=async i=>{if(g(i))return new Promise((B,u)=>{var m=new XMLHttpRequest;m.open("GET",i,!0),m.responseType="arraybuffer",m.onload=()=>{if(m.status==200||m.status==0&&m.response){B(m.response);return}u(m.status)},m.onerror=u,m.send(null)});var v=await fetch(i,{credentials:"same-origin"});if(v.ok)return v.arrayBuffer();throw new Error(v.status+" : "+v.url)}}var N=console.log.bind(console),L=console.error.bind(console),O,s0=!1,R,g=i=>i.startsWith("file://");class M{}class Y extends M{}function W(i){for(var v=0,B=i.length,u=new Uint8Array(B),m;v<B;++v)m=i.charCodeAt(v),u[v]=~m>>8&m;return u}var H,z,i0=!1,r0=!1;function Z(){var i=N0.buffer;ix=new Int8Array(i),U0=new Int16Array(i),AA=new Uint8Array(i),kr=new Uint16Array(i),O0=new Int32Array(i),f0=new Uint32Array(i),gr=new Float32Array(i),yr=new Float64Array(i),H0=new BigInt64Array(i),_r=new BigUint64Array(i)}function n0(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Ye(n.preRun.shift());yA(zx)}function U(){i0=!0,!n.noFSInit&&!o.initialized&&o.init(),xx.init(),we.__wasm_call_ctors(),o.ignorePermissions=!1}function F0(){}function v0(){y(),o.quit(),xx.shutdown(),r0=!0}function B0(){if(n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)Xe(n.postRun.shift());yA(kA)}function d0(i){n.onAbort?.(i),i=`Aborted(${i})`,L(i),s0=!0,i+=". Build with -sASSERTIONS for more info.";var v=new WebAssembly.RuntimeError(i);throw z?.(v),v}var q0;function M0(){return W(`\0asm\0\0\0\x897\`\x7F\x7F\`\x7F\0\`\x7F\x7F\x7F\`\0\0\`\x7F\x7F\x7F\x7F\`\x7F\x7F\0\`\x7F\x7F~~~\`\x7F\x7F\x7F\0\`\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\x7F\0\`\0\x7F\`~\0\`\x7F~~~~\0\`\x7F\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F~\`\x7F~\x7F~\`\x7F\x7F\x7F\x7F\x7F\0\`\x7F~\`\x7F~\0\`\x7F|\`\x7F~~\x7F\0\`\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F~\x7F\x7F\x7F\`\x7F~\x7F\x7F\`\x07\x7F\x7F\x7F~\x7F\x7F\x7F~\`\x07\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`~\x7F\`~\x7F\x7F\0\`\x7F\x7F~\0\`\x7F|\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F~\x7F\x7F\x7F\`\x7F\x7F\x7F|\x7F\`\x7F\x7F|\x7F\`\x7F\x7F~\x7F\x7F\`\x07\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F~\`\x7F\x7F\x7F\x7F\x7F\x7F~\`\v\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F~\`\x7F~\x7F\x7F\x7F\x7F\x7F\` \x7F~\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`~~\x7F~\`\x7F~~\0\`~\x7F\0\`\x7F~\x7F\`\x7F||\`||\`|\x7F\`\x7F~~~\0\`|\x7F|\`~\x7F\x7F\`~~~~\x7F\`~~~\x7F\`\x7F|\0\`~~|\xD0env\binvoke_v\0env
2
2
  invoke_vii\0\x07env invoke_ii\0env
3
3
  invoke_iii\0env\binvoke_i\0\0env\vinvoke_iiii\0\benv\r__assert_fail\0 env\finvoke_viiii\0env\finvoke_iiiii\0\renv\rinvoke_viiiii\0env\finvoke_iijii\0env invoke_vi\0env\vinvoke_viii\0 env\vinvoke_iiid\0 env\rinvoke_iiiiii\0env__syscall_faccessat\0\benv__syscall_openat\0\benv__syscall_fcntl64\0env__syscall_ioctl\0wasi_snapshot_preview1\bfd_write\0\bwasi_snapshot_preview1\x07fd_read\0\bwasi_snapshot_preview1\bfd_close\0\0env__syscall_getcwd\0wasi_snapshot_preview1\x07fd_seek\0env__syscall_unlinkat\0env__syscall_rmdir\0\0env__syscall_renameat\0\bwasi_snapshot_preview1clock_time_get\0env__syscall_readlinkat\0\benvemscripten_resize_heap\0\0env_emscripten_throw_longjmp\0\xAA\xA8\x07!
4
4
 
@@ -1158,8 +1158,8 @@ S\0\0\xCD\0\0Q\0\0\xCD*\0\0\x97*\0\0>S\0\0A!\0\0\f\0\0\x90\0\0\xC6\0\0l\0\
1158
1158
  \0\0\xC0\v\0\0\xC0\f\0\0\xC0\r\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\x1B\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\0\xB3\0\0\xC3\0\0\xC3\0\0\xC3\0\0\xC3\0\0\xC3\0\0\xC3\x07\0\0\xC3\b\0\0\xC3 \0\0\xC3
1159
1159
  \0\0\xC3\v\0\0\xC3\f\0\0\xC3\r\0\0\xD3\0\0\xC3\0\0\xC3\0\0\f\xBB\0\f\xC3\0\f\xC3\0\f\xC3\0\f\xDB\0A\xC0\xF9\v\xE1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0D\0\0\xFAC\0\0 D\0\0\0D\0\0\xFDC\0\0\xF6C\0\0\xEEC\0\0\xEFC\0\0D\0\0\xEBC\0\0\xE8C\0\0z\0\0\x87Y\0\0\xF3C\0\0\fD\0\0\xF7C\0\0\xF0C\0\0D\0\0\xBCC\0\0\xBDC\0\0MO\0\0\xFDN\0\0\xBCN\0\0\xBDN\0\0,D\0\0\xE3\0\0h&\0\0d-\0\0)\0\0\xA2,\0\0d\0\01\0\0>!\0\0G-\0\0_\0\0y\0\0K0\0\0\v!\0\0*\0\0\x84,\0\0\x81\0\0+\0\02\0\0g!\0\0\xF7)\0\0; \0\0-\0\0\xF01\0\0&\0\0\xAD(\0\0\xF1)\0\0\x97.\0\0\xE2\0\0\xB9-\0\0F-\0\0*\0\0
1160
1160
  *\0\0\xDC\0\x004\0\0\xE7.\0\0*\0\x006*\0\0.*\0\0\x9D/\0\0\xB3-\0\0\x8A3\0\0\x87/\0\0'*\0\x009)\0\0!D\0\0\0O\0\0!D\0\0\xB63\0\0\xC63\0\0\x983\0\0\xA53\0\0\xD73\0\0\xAD3\0\0\xAD3\0\0\0\0\0\0/\0A\xA0\xFE\vy\0\0\0\\\\\0\0\xF4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\xA0\x97\0\0\xA0\x9C\0\0\0\0\0\0\0\0\0 \x9C\0\0 \x9D\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA0\x9D\0\0\0\0\0\0\0\0\0\x07\0\0\0\0 \0\0\0\0\0\0\0A\xA4\xFF\v\x9F\0A\xBC\xFF\v\v\x9D\0\0\0\x9C\0\0\0("\0A\xD4\xFF\v\0A\xE4\xFF\v\b\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0A\xA8\x80\v \x98\xBF\0\0\0\0\0\0\0A\xBC\x80\v\xA0\0A\xD4\x80\v\x9D\0\0\0\xA1\0\0\x008"\0\0\0A\xEC\x80\v\0A\xFC\x80\v\xFF\xFF\xFF\xFF
1161
- \0A\xC0\x81\v\v0\xC0\0\0\x80!\0\`(`)}function K0(x){return x}async function Nx(x){return x}async function Lx(x,n){try{var v=await Nx(x),f=await WebAssembly.instantiate(v,n);return f}catch(c){N(`failed to asynchronously prepare wasm: ${c}`),f0(c)}}async function Kx(x,n,v){return Lx(n,v)}function Q0(){var x={env:$0,wasi_snapshot_preview1:$0};return x}async function Gx(){function x(m,q){return LA=m.exports,s0(LA),z(),LA}function n(m){return x(m.instance)}var v=Q0();if(a.instantiateWasm)return new Promise((m,q)=>{a.instantiateWasm(v,(S,x0)=>{m(x(S,x0))})});l0??(l0=L0());var f=await Kx(M,l0,v),c=n(f);return c}class Vx{constructor(n){N0(this,"name","ExitStatus"),this.message=`Program terminated with exit(${n})`,this.status=n}}var yx,m0,h0,q0,mr,hr,gr,A0,kr,Cx,dA=x=>{for(;x.length>0;)x.shift()(a)},jA=[],yr=x=>jA.push(x),pA=[],wr=x=>pA.push(x),uA=!1,R0=x=>L(x),V0=()=>Z(),wx=globalThis.TextDecoder&&new TextDecoder,nA=(x,n,v,f)=>{var c=n+v;if(f)return c;for(;x[n]&&!(n>=c);)++n;return n},Tx=(x,n=0,v,f)=>{var c=nA(x,n,v,f);if(c-n>16&&x.buffer&&wx)return wx.decode(x.subarray(n,c));for(var m="";n<c;){var q=x[n++];if(!(q&128)){m+=String.fromCharCode(q);continue}var S=x[n++]&63;if((q&224)==192){m+=String.fromCharCode((q&31)<<6|S);continue}var x0=x[n++]&63;if((q&240)==224?q=(q&15)<<12|S<<6|x0:q=(q&7)<<18|S<<12|x0<<6|x[n++]&63,q<65536)m+=String.fromCharCode(q);else{var E0=q-65536;m+=String.fromCharCode(55296|E0>>10,56320|E0&1023)}}return m},_x=(x,n,v)=>x?Tx(Cx,x,n,v):"",Ix=(x,n,v,f)=>f0(`Assertion failed: ${_x(x)}, at: `+[n?_x(n):"unknown filename",v,f?_x(f):"unknown function"]),e0={isAbs:x=>x.charAt(0)==="/",splitPath:x=>{var n=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return n.exec(x).slice(1)},normalizeArray:(x,n)=>{for(var v=0,f=x.length-1;f>=0;f--){var c=x[f];c==="."?x.splice(f,1):c===".."?(x.splice(f,1),v++):v&&(x.splice(f,1),v--)}if(n)for(;v;v--)x.unshift("..");return x},normalize:x=>{var n=e0.isAbs(x),v=x.slice(-1)==="/";return x=e0.normalizeArray(x.split("/").filter(f=>!!f),!n).join("/"),!x&&!n&&(x="."),x&&v&&(x+="/"),(n?"/":"")+x},dirname:x=>{var n=e0.splitPath(x),v=n[0],f=n[1];return!v&&!f?".":(f&&(f=f.slice(0,-1)),v+f)},basename:x=>x&&x.match(/([^\/]+|\/)\/*$/)[1],join:(...x)=>e0.normalize(x.join("/")),join2:(x,n)=>e0.normalize(x+"/"+n)},_r=()=>{if(d){var x=require("crypto");return n=>x.randomFillSync(n)}return n=>(crypto.getRandomValues(n),0)},bA=x=>(bA=_r())(x),Ax={resolve:(...x)=>{for(var n="",v=!1,f=x.length-1;f>=-1&&!v;f--){var c=f>=0?x[f]:r.cwd();if(typeof c!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!c)return"";n=c+"/"+n,v=e0.isAbs(c)}return n=e0.normalizeArray(n.split("/").filter(m=>!!m),!v).join("/"),(v?"/":"")+n||"."},relative:(x,n)=>{x=Ax.resolve(x).slice(1),n=Ax.resolve(n).slice(1);function v(E0){for(var k0=0;k0<E0.length&&E0[k0]==="";k0++);for(var b0=E0.length-1;b0>=0&&E0[b0]==="";b0--);return k0>b0?[]:E0.slice(k0,b0-k0+1)}for(var f=v(x.split("/")),c=v(n.split("/")),m=Math.min(f.length,c.length),q=m,S=0;S<m;S++)if(f[S]!==c[S]){q=S;break}for(var x0=[],S=q;S<f.length;S++)x0.push("..");return x0=x0.concat(c.slice(q)),x0.join("/")}},Wx=[],Xx=x=>{for(var n=0,v=0;v<x.length;++v){var f=x.charCodeAt(v);f<=127?n++:f<=2047?n+=2:f>=55296&&f<=57343?(n+=4,++v):n+=3}return n},mA=(x,n,v,f)=>{if(!(f>0))return 0;for(var c=v,m=v+f-1,q=0;q<x.length;++q){var S=x.codePointAt(q);if(S<=127){if(v>=m)break;n[v++]=S}else if(S<=2047){if(v+1>=m)break;n[v++]=192|S>>6,n[v++]=128|S&63}else if(S<=65535){if(v+2>=m)break;n[v++]=224|S>>12,n[v++]=128|S>>6&63,n[v++]=128|S&63}else{if(v+3>=m)break;n[v++]=240|S>>18,n[v++]=128|S>>12&63,n[v++]=128|S>>6&63,n[v++]=128|S&63,q++}}return n[v]=0,v-c},Yx=(x,n,v)=>{var f=v>0?v:Xx(x)+1,c=new Array(f),m=mA(x,c,0,c.length);return n&&(c.length=m),c},$r=()=>{if(!Wx.length){var x=null;if(d){var n=256,v=Buffer.alloc(n),f=0,c=process.stdin.fd;try{f=$.readSync(c,v,0,n)}catch(m){if(m.toString().includes("EOF"))f=0;else throw m}f>0&&(x=v.slice(0,f).toString("utf-8"))}else globalThis.window?.prompt&&(x=window.prompt("Input: "),x!==null&&(x+=`
1162
- `));if(!x)return null;Wx=Yx(x,!0)}return Wx.shift()},G0={ttys:[],init(){},shutdown(){},register(x,n){G0.ttys[x]={input:[],output:[],ops:n},r.registerDevice(x,G0.stream_ops)},stream_ops:{open(x){var n=G0.ttys[x.node.rdev];if(!n)throw new r.ErrnoError(43);x.tty=n,x.seekable=!1},close(x){x.tty.ops.fsync(x.tty)},fsync(x){x.tty.ops.fsync(x.tty)},read(x,n,v,f,c){if(!x.tty||!x.tty.ops.get_char)throw new r.ErrnoError(60);for(var m=0,q=0;q<f;q++){var S;try{S=x.tty.ops.get_char(x.tty)}catch{throw new r.ErrnoError(29)}if(S===void 0&&m===0)throw new r.ErrnoError(6);if(S==null)break;m++,n[v+q]=S}return m&&(x.node.atime=Date.now()),m},write(x,n,v,f,c){if(!x.tty||!x.tty.ops.put_char)throw new r.ErrnoError(60);try{for(var m=0;m<f;m++)x.tty.ops.put_char(x.tty,n[v+m])}catch{throw new r.ErrnoError(29)}return f&&(x.node.mtime=x.node.ctime=Date.now()),m}},default_tty_ops:{get_char(x){return $r()},put_char(x,n){n===null||n===10?(P(Tx(x.output)),x.output=[]):n!=0&&x.output.push(n)},fsync(x){x.output?.length>0&&(P(Tx(x.output)),x.output=[])},ioctl_tcgets(x){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(x,n,v){return 0},ioctl_tiocgwinsz(x){return[24,80]}},default_tty1_ops:{put_char(x,n){n===null||n===10?(N(Tx(x.output)),x.output=[]):n!=0&&x.output.push(n)},fsync(x){x.output?.length>0&&(N(Tx(x.output)),x.output=[])}}},hA=x=>{f0()},V={ops_table:null,mount(x){return V.createNode(null,"/",16895,0)},createNode(x,n,v,f){if(r.isBlkdev(v)||r.isFIFO(v))throw new r.ErrnoError(63);V.ops_table||(V.ops_table={dir:{node:{getattr:V.node_ops.getattr,setattr:V.node_ops.setattr,lookup:V.node_ops.lookup,mknod:V.node_ops.mknod,rename:V.node_ops.rename,unlink:V.node_ops.unlink,rmdir:V.node_ops.rmdir,readdir:V.node_ops.readdir,symlink:V.node_ops.symlink},stream:{llseek:V.stream_ops.llseek}},file:{node:{getattr:V.node_ops.getattr,setattr:V.node_ops.setattr},stream:{llseek:V.stream_ops.llseek,read:V.stream_ops.read,write:V.stream_ops.write,mmap:V.stream_ops.mmap,msync:V.stream_ops.msync}},link:{node:{getattr:V.node_ops.getattr,setattr:V.node_ops.setattr,readlink:V.node_ops.readlink},stream:{}},chrdev:{node:{getattr:V.node_ops.getattr,setattr:V.node_ops.setattr},stream:r.chrdev_stream_ops}});var c=r.createNode(x,n,v,f);return r.isDir(c.mode)?(c.node_ops=V.ops_table.dir.node,c.stream_ops=V.ops_table.dir.stream,c.contents={}):r.isFile(c.mode)?(c.node_ops=V.ops_table.file.node,c.stream_ops=V.ops_table.file.stream,c.usedBytes=0,c.contents=V.emptyFileContents??(V.emptyFileContents=new Uint8Array(0))):r.isLink(c.mode)?(c.node_ops=V.ops_table.link.node,c.stream_ops=V.ops_table.link.stream):r.isChrdev(c.mode)&&(c.node_ops=V.ops_table.chrdev.node,c.stream_ops=V.ops_table.chrdev.stream),c.atime=c.mtime=c.ctime=Date.now(),x&&(x.contents[n]=c,x.atime=x.mtime=x.ctime=c.atime),c},getFileDataAsTypedArray(x){return x.contents.subarray(0,x.usedBytes)},expandFileStorage(x,n){var v=x.contents.length;if(!(v>=n)){var f=1024*1024;n=Math.max(n,v*(v<f?2:1.125)>>>0),v&&(n=Math.max(n,256));var c=V.getFileDataAsTypedArray(x);x.contents=new Uint8Array(n),x.contents.set(c)}},resizeFileStorage(x,n){if(x.usedBytes!=n){var v=x.contents;x.contents=new Uint8Array(n),x.contents.set(v.subarray(0,Math.min(n,x.usedBytes))),x.usedBytes=n}},node_ops:{getattr(x){var n={};return n.dev=r.isChrdev(x.mode)?x.id:1,n.ino=x.id,n.mode=x.mode,n.nlink=1,n.uid=0,n.gid=0,n.rdev=x.rdev,r.isDir(x.mode)?n.size=4096:r.isFile(x.mode)?n.size=x.usedBytes:r.isLink(x.mode)?n.size=x.link.length:n.size=0,n.atime=new Date(x.atime),n.mtime=new Date(x.mtime),n.ctime=new Date(x.ctime),n.blksize=4096,n.blocks=Math.ceil(n.size/n.blksize),n},setattr(x,n){for(let v of["mode","atime","mtime","ctime"])n[v]!=null&&(x[v]=n[v]);n.size!==void 0&&V.resizeFileStorage(x,n.size)},lookup(x,n){throw V.doesNotExistError||(V.doesNotExistError=new r.ErrnoError(44),V.doesNotExistError.stack="<generic error, no stack>"),V.doesNotExistError},mknod(x,n,v,f){return V.createNode(x,n,v,f)},rename(x,n,v){var f;try{f=r.lookupNode(n,v)}catch{}if(f){if(r.isDir(x.mode))for(var c in f.contents)throw new r.ErrnoError(55);r.hashRemoveNode(f)}delete x.parent.contents[x.name],n.contents[v]=x,x.name=v,n.ctime=n.mtime=x.parent.ctime=x.parent.mtime=Date.now()},unlink(x,n){delete x.contents[n],x.ctime=x.mtime=Date.now()},rmdir(x,n){var v=r.lookupNode(x,n);for(var f in v.contents)throw new r.ErrnoError(55);delete x.contents[n],x.ctime=x.mtime=Date.now()},readdir(x){return[".","..",...Object.keys(x.contents)]},symlink(x,n,v){var f=V.createNode(x,n,41471,0);return f.link=v,f},readlink(x){if(!r.isLink(x.mode))throw new r.ErrnoError(28);return x.link}},stream_ops:{read(x,n,v,f,c){var m=x.node.contents;if(c>=x.node.usedBytes)return 0;var q=Math.min(x.node.usedBytes-c,f);return n.set(m.subarray(c,c+q),v),q},write(x,n,v,f,c,m){if(n.buffer===q0.buffer&&(m=!1),!f)return 0;var q=x.node;return q.mtime=q.ctime=Date.now(),m?(q.contents=n.subarray(v,v+f),q.usedBytes=f):q.usedBytes===0&&c===0?(q.contents=n.slice(v,v+f),q.usedBytes=f):(V.expandFileStorage(q,c+f),q.contents.set(n.subarray(v,v+f),c),q.usedBytes=Math.max(q.usedBytes,c+f)),f},llseek(x,n,v){var f=n;if(v===1?f+=x.position:v===2&&r.isFile(x.node.mode)&&(f+=x.node.usedBytes),f<0)throw new r.ErrnoError(28);return f},mmap(x,n,v,f,c){if(!r.isFile(x.node.mode))throw new r.ErrnoError(43);var m,q,S=x.node.contents;if(!(c&2)&&S.buffer===q0.buffer)q=!1,m=S.byteOffset;else{if(q=!0,m=hA(n),!m)throw new r.ErrnoError(48);S&&((v>0||v+n<S.length)&&(S.subarray?S=S.subarray(v,v+n):S=Array.prototype.slice.call(S,v,v+n)),q0.set(S,m))}return{ptr:m,allocated:q}},msync(x,n,v,f,c){return V.stream_ops.write(x,n,0,f,v,!1),0}}},qr=x=>{if(typeof x!="string")return x;var n={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},v=n[x];if(typeof v>"u")throw new Error(`Unknown file open mode: ${x}`);return v},gA=x=>(typeof x=="string"&&(x=Yx(x,!0)),x.subarray||(x=new Uint8Array(x)),x),Zx=(x,n)=>{var v=0;return x&&(v|=365),n&&(v|=146),v},c0={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},B0={mount(x){return B0.createNode(null,"/",x.opts.fs.lstat(x.opts.root).mode,0)},createNode(x,n,v,f){if(!r.isDir(v)&&!r.isFile(v)&&!r.isLink(v))throw new r.ErrnoError(c0.EINVAL);var c=r.createNode(x,n,v);return c.node_ops=B0.node_ops,c.stream_ops=B0.stream_ops,c},realPath(x){for(var n=[];x.parent!==x;)n.push(x.name),x=x.parent;return n.push(x.mount.opts.root),n.reverse(),e0.join(...n)},node_ops:{getattr(x){var n=B0.realPath(x),v;try{v=x.mount.opts.fs.lstat(n)}catch(f){throw f.code?new r.ErrnoError(c0[f.code]):f}return{dev:v.dev,ino:v.ino,mode:v.mode,nlink:v.nlink,uid:v.uid,gid:v.gid,rdev:v.rdev,size:v.size,atime:v.atime,mtime:v.mtime,ctime:v.ctime,blksize:v.blksize,blocks:v.blocks}},setattr(x,n){var v=B0.realPath(x);try{if(n.mode!==void 0&&(x.mount.opts.fs.chmod(v,n.mode),x.mode=n.mode),n.atime||n.mtime){var f=new Date(n.atime||n.mtime),c=new Date(n.mtime||n.atime);x.mount.opts.fs.utime(v,f,c)}n.size!==void 0&&x.mount.opts.fs.truncate(v,n.size)}catch(m){throw m.code?new r.ErrnoError(c0[m.code]):m}},lookup(x,n){try{var v=e0.join2(B0.realPath(x),n),f=x.mount.opts.fs.lstat(v).mode,c=B0.createNode(x,n,f);return c}catch(m){throw m.code?new r.ErrnoError(c0[m.code]):m}},mknod(x,n,v,f){var c=B0.createNode(x,n,v,f),m=B0.realPath(c);try{r.isDir(c.mode)?c.mount.opts.fs.mkdir(m,c.mode):c.mount.opts.fs.writeFile(m,"",{mode:c.mode})}catch(q){throw q.code?new r.ErrnoError(c0[q.code]):q}return c},rename(x,n,v){var f=B0.realPath(x),c=e0.join2(B0.realPath(n),v);try{x.mount.opts.fs.rename(f,c),x.name=v}catch(m){throw m.code?new r.ErrnoError(c0[m.code]):m}},unlink(x,n){var v=e0.join2(B0.realPath(x),n);try{x.mount.opts.fs.unlink(v)}catch(f){throw f.code?new r.ErrnoError(c0[f.code]):f}},rmdir(x,n){var v=e0.join2(B0.realPath(x),n);try{x.mount.opts.fs.rmdir(v)}catch(f){throw f.code?new r.ErrnoError(c0[f.code]):f}},readdir(x){var n=B0.realPath(x);try{return x.mount.opts.fs.readdir(n)}catch(v){throw v.code?new r.ErrnoError(c0[v.code]):v}},symlink(x,n,v){var f=e0.join2(B0.realPath(x),n);try{x.mount.opts.fs.symlink(v,f)}catch(c){throw c.code?new r.ErrnoError(c0[c.code]):c}},readlink(x){var n=B0.realPath(x);try{return x.mount.opts.fs.readlink(n)}catch(v){throw v.code?new r.ErrnoError(c0[v.code]):v}}},stream_ops:{open(x){var n=B0.realPath(x.node);try{x.nfd=x.node.mount.opts.fs.open(n,x.flags)}catch(v){throw v.code?new r.ErrnoError(c0[v.code]):v}},close(x){try{x.node.mount.opts.fs.close(x.nfd)}catch(n){throw n.code?new r.ErrnoError(c0[n.code]):n}},read(x,n,v,f,c){try{return x.node.mount.opts.fs.read(x.nfd,n,v,f,c)}catch(m){throw m.code?new r.ErrnoError(c0[m.code]):m}},write(x,n,v,f,c){try{return x.node.mount.opts.fs.write(x.nfd,n,v,f,c)}catch(m){throw m.code?new r.ErrnoError(c0[m.code]):m}},llseek(x,n,v){var f=n;if(v===1)f+=x.position;else if(v===2&&r.isFile(x.node.mode))try{var c=x.node.node_ops.getattr(x.node);f+=c.size}catch(m){throw new r.ErrnoError(c0[m.code])}if(f<0)throw new r.ErrnoError(c0.EINVAL);return f}}},Pr=async x=>{var n=await b(x);return new Uint8Array(n)},kA=(...x)=>r.createDataFile(...x),Nr=x=>x,Y0=0,fx=null,yA=x=>{if(Y0--,a.monitorRunDependencies?.(Y0),Y0==0&&fx){var n=fx;fx=null,n()}},wA=x=>{Y0++,a.monitorRunDependencies?.(Y0)},_A=[],Lr=async(x,n)=>{typeof Browser<"u"&&Browser.init();for(var v of _A)if(v.canHandle(n))return v.handle(x,n);return x},Qx=async(x,n,v,f,c,m,q,S)=>{var x0=n?Ax.resolve(e0.join2(x,n)):x,E0=Nr(`cp ${x0}`);wA(E0);try{var k0=v;typeof v=="string"&&(k0=await Pr(v)),k0=await Lr(k0,x0),S?.(),m||kA(x,n,k0,f,c,q)}finally{yA(E0)}},Gr=(x,n,v,f,c,m,q,S,x0,E0)=>{Qx(x,n,v,f,c,S,x0,E0).then(m).catch(q)},r={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,ErrnoError:class{constructor(x){N0(this,"name","ErrnoError"),this.errno=x}},FSStream:class{constructor(){N0(this,"shared",{})}get object(){return this.node}set object(x){this.node=x}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(x){this.shared.flags=x}get position(){return this.shared.position}set position(x){this.shared.position=x}},FSNode:class{constructor(x,n,v,f){N0(this,"node_ops",{}),N0(this,"stream_ops",{}),N0(this,"readMode",365),N0(this,"writeMode",146),N0(this,"mounted",null),x||(x=this),this.parent=x,this.mount=x.mount,this.id=r.nextInode++,this.name=n,this.mode=v,this.rdev=f,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(x){x?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(x){x?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return r.isDir(this.mode)}get isDevice(){return r.isChrdev(this.mode)}},lookupPath(x,n={}){if(!x)throw new r.ErrnoError(44);n.follow_mount??(n.follow_mount=!0),e0.isAbs(x)||(x=r.cwd()+"/"+x);x:for(var v=0;v<40;v++){for(var f=x.split("/").filter(E0=>!!E0),c=r.root,m="/",q=0;q<f.length;q++){var S=q===f.length-1;if(S&&n.parent)break;if(f[q]!=="."){if(f[q]===".."){if(m=e0.dirname(m),r.isRoot(c)){x=m+"/"+f.slice(q+1).join("/"),v--;continue x}else c=c.parent;continue}m=e0.join2(m,f[q]);try{c=r.lookupNode(c,f[q])}catch(E0){if(E0?.errno===44&&S&&n.noent_okay)return{path:m};throw E0}if(r.isMountpoint(c)&&(!S||n.follow_mount)&&(c=c.mounted.root),r.isLink(c.mode)&&(!S||n.follow)){if(!c.node_ops.readlink)throw new r.ErrnoError(52);var x0=c.node_ops.readlink(c);e0.isAbs(x0)||(x0=e0.dirname(m)+"/"+x0),x=x0+"/"+f.slice(q+1).join("/");continue x}}}return{path:m,node:c}}throw new r.ErrnoError(32)},getPath(x){for(var n;;){if(r.isRoot(x)){var v=x.mount.mountpoint;return n?v[v.length-1]!=="/"?`${v}/${n}`:v+n:v}n=n?`${x.name}/${n}`:x.name,x=x.parent}},hashName(x,n){for(var v=0,f=0;f<n.length;f++)v=(v<<5)-v+n.charCodeAt(f)|0;return(x+v>>>0)%r.nameTable.length},hashAddNode(x){var n=r.hashName(x.parent.id,x.name);x.name_next=r.nameTable[n],r.nameTable[n]=x},hashRemoveNode(x){var n=r.hashName(x.parent.id,x.name);if(r.nameTable[n]===x)r.nameTable[n]=x.name_next;else for(var v=r.nameTable[n];v;){if(v.name_next===x){v.name_next=x.name_next;break}v=v.name_next}},lookupNode(x,n){var v=r.mayLookup(x);if(v)throw new r.ErrnoError(v);for(var f=r.hashName(x.id,n),c=r.nameTable[f];c;c=c.name_next){var m=c.name;if(c.parent.id===x.id&&m===n)return c}return r.lookup(x,n)},createNode(x,n,v,f){var c=new r.FSNode(x,n,v,f);return r.hashAddNode(c),c},destroyNode(x){r.hashRemoveNode(x)},isRoot(x){return x===x.parent},isMountpoint(x){return!!x.mounted},isFile(x){return(x&61440)===32768},isDir(x){return(x&61440)===16384},isLink(x){return(x&61440)===40960},isChrdev(x){return(x&61440)===8192},isBlkdev(x){return(x&61440)===24576},isFIFO(x){return(x&61440)===4096},isSocket(x){return(x&49152)===49152},flagsToPermissionString(x){var n=["r","w","rw"][x&3];return x&512&&(n+="w"),n},nodePermissions(x,n){return r.ignorePermissions?0:n.includes("r")&&!(x.mode&292)||n.includes("w")&&!(x.mode&146)||n.includes("x")&&!(x.mode&73)?2:0},mayLookup(x){if(!r.isDir(x.mode))return 54;var n=r.nodePermissions(x,"x");return n||(x.node_ops.lookup?0:2)},mayCreate(x,n){if(!r.isDir(x.mode))return 54;try{var v=r.lookupNode(x,n);return 20}catch{}return r.nodePermissions(x,"wx")},mayDelete(x,n,v){var f;try{f=r.lookupNode(x,n)}catch(m){return m.errno}var c=r.nodePermissions(x,"wx");if(c)return c;if(v){if(!r.isDir(f.mode))return 54;if(r.isRoot(f)||r.getPath(f)===r.cwd())return 10}else if(r.isDir(f.mode))return 31;return 0},mayOpen(x,n){if(!x)return 44;if(r.isLink(x.mode))return 32;var v=r.flagsToPermissionString(n);return r.isDir(x.mode)&&(v!=="r"||n&576)?31:r.nodePermissions(x,v)},checkOpExists(x,n){if(!x)throw new r.ErrnoError(n);return x},MAX_OPEN_FDS:4096,nextfd(){for(var x=0;x<=r.MAX_OPEN_FDS;x++)if(!r.streams[x])return x;throw new r.ErrnoError(33)},getStreamChecked(x){var n=r.getStream(x);if(!n)throw new r.ErrnoError(8);return n},getStream:x=>r.streams[x],createStream(x,n=-1){return x=Object.assign(new r.FSStream,x),n==-1&&(n=r.nextfd()),x.fd=n,r.streams[n]=x,x},closeStream(x){r.streams[x]=null},dupStream(x,n=-1){var v=r.createStream(x,n);return v.stream_ops?.dup?.(v),v},doSetAttr(x,n,v){var f=x?.stream_ops.setattr,c=f?x:n;f??(f=n.node_ops.setattr),r.checkOpExists(f,63);try{f(c,v)}catch(m){throw m instanceof RangeError?new r.ErrnoError(22):m}},chrdev_stream_ops:{open(x){var n=r.getDevice(x.node.rdev);x.stream_ops=n.stream_ops,x.stream_ops.open?.(x)},llseek(){throw new r.ErrnoError(70)}},major:x=>x>>8,minor:x=>x&255,makedev:(x,n)=>x<<8|n,registerDevice(x,n){r.devices[x]={stream_ops:n}},getDevice:x=>r.devices[x],getMounts(x){for(var n=[],v=[x];v.length;){var f=v.pop();n.push(f),v.push(...f.mounts)}return n},syncfs(x,n){typeof x=="function"&&(n=x,x=!1),r.syncFSRequests++,r.syncFSRequests>1&&N(`warning: ${r.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var v=r.getMounts(r.root.mount),f=0;function c(S){return r.syncFSRequests--,n(S)}function m(S){if(S)return m.errored?void 0:(m.errored=!0,c(S));++f>=v.length&&c(null)}for(var q of v)q.type.syncfs?q.type.syncfs(q,x,m):m(null)},mount(x,n,v){var f=v==="/",c=!v,m;if(f&&r.root)throw new r.ErrnoError(10);if(!f&&!c){var q=r.lookupPath(v,{follow_mount:!1});if(v=q.path,m=q.node,r.isMountpoint(m))throw new r.ErrnoError(10);if(!r.isDir(m.mode))throw new r.ErrnoError(54)}var S={type:x,opts:n,mountpoint:v,mounts:[]},x0=x.mount(S);return x0.mount=S,S.root=x0,f?r.root=x0:m&&(m.mounted=S,m.mount&&m.mount.mounts.push(S)),x0},unmount(x){var n=r.lookupPath(x,{follow_mount:!1});if(!r.isMountpoint(n.node))throw new r.ErrnoError(28);var v=n.node,f=v.mounted,c=r.getMounts(f);for(var[m,q]of Object.entries(r.nameTable))for(;q;){var S=q.name_next;c.includes(q.mount)&&r.destroyNode(q),q=S}v.mounted=null;var x0=v.mount.mounts.indexOf(f);v.mount.mounts.splice(x0,1)},lookup(x,n){return x.node_ops.lookup(x,n)},mknod(x,n,v){var f=r.lookupPath(x,{parent:!0}),c=f.node,m=e0.basename(x);if(!m)throw new r.ErrnoError(28);if(m==="."||m==="..")throw new r.ErrnoError(20);var q=r.mayCreate(c,m);if(q)throw new r.ErrnoError(q);if(!c.node_ops.mknod)throw new r.ErrnoError(63);return c.node_ops.mknod(c,m,n,v)},statfs(x){return r.statfsNode(r.lookupPath(x,{follow:!0}).node)},statfsStream(x){return r.statfsNode(x.node)},statfsNode(x){var n={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:r.nextInode,ffree:r.nextInode-1,fsid:42,flags:2,namelen:255};return x.node_ops.statfs&&Object.assign(n,x.node_ops.statfs(x.mount.opts.root)),n},create(x,n=438){return n&=4095,n|=32768,r.mknod(x,n,0)},mkdir(x,n=511){return n&=1023,n|=16384,r.mknod(x,n,0)},mkdirTree(x,n){var v=x.split("/"),f="";for(var c of v)if(c){(f||e0.isAbs(x))&&(f+="/"),f+=c;try{r.mkdir(f,n)}catch(m){if(m.errno!=20)throw m}}},mkdev(x,n,v){return typeof v>"u"&&(v=n,n=438),n|=8192,r.mknod(x,n,v)},symlink(x,n){if(!Ax.resolve(x))throw new r.ErrnoError(44);var v=r.lookupPath(n,{parent:!0}),f=v.node;if(!f)throw new r.ErrnoError(44);var c=e0.basename(n),m=r.mayCreate(f,c);if(m)throw new r.ErrnoError(m);if(!f.node_ops.symlink)throw new r.ErrnoError(63);return f.node_ops.symlink(f,c,x)},rename(x,n){var v=e0.dirname(x),f=e0.dirname(n),c=e0.basename(x),m=e0.basename(n),q,S,x0;if(q=r.lookupPath(x,{parent:!0}),S=q.node,q=r.lookupPath(n,{parent:!0}),x0=q.node,!S||!x0)throw new r.ErrnoError(44);if(S.mount!==x0.mount)throw new r.ErrnoError(75);var E0=r.lookupNode(S,c),k0=Ax.relative(x,f);if(k0.charAt(0)!==".")throw new r.ErrnoError(28);if(k0=Ax.relative(n,v),k0.charAt(0)!==".")throw new r.ErrnoError(55);var b0;try{b0=r.lookupNode(x0,m)}catch{}if(E0!==b0){var j0=r.isDir(E0.mode),a0=r.mayDelete(S,c,j0);if(a0)throw new r.ErrnoError(a0);if(a0=b0?r.mayDelete(x0,m,j0):r.mayCreate(x0,m),a0)throw new r.ErrnoError(a0);if(!S.node_ops.rename)throw new r.ErrnoError(63);if(r.isMountpoint(E0)||b0&&r.isMountpoint(b0))throw new r.ErrnoError(10);if(x0!==S&&(a0=r.nodePermissions(S,"w"),a0))throw new r.ErrnoError(a0);r.hashRemoveNode(E0);try{S.node_ops.rename(E0,x0,m),E0.parent=x0}catch(I0){throw I0}finally{r.hashAddNode(E0)}}},rmdir(x){var n=r.lookupPath(x,{parent:!0}),v=n.node,f=e0.basename(x),c=r.lookupNode(v,f),m=r.mayDelete(v,f,!0);if(m)throw new r.ErrnoError(m);if(!v.node_ops.rmdir)throw new r.ErrnoError(63);if(r.isMountpoint(c))throw new r.ErrnoError(10);v.node_ops.rmdir(v,f),r.destroyNode(c)},readdir(x){var n=r.lookupPath(x,{follow:!0}),v=n.node,f=r.checkOpExists(v.node_ops.readdir,54);return f(v)},unlink(x){var n=r.lookupPath(x,{parent:!0}),v=n.node;if(!v)throw new r.ErrnoError(44);var f=e0.basename(x),c=r.lookupNode(v,f),m=r.mayDelete(v,f,!1);if(m)throw new r.ErrnoError(m);if(!v.node_ops.unlink)throw new r.ErrnoError(63);if(r.isMountpoint(c))throw new r.ErrnoError(10);v.node_ops.unlink(v,f),r.destroyNode(c)},readlink(x){var n=r.lookupPath(x),v=n.node;if(!v)throw new r.ErrnoError(44);if(!v.node_ops.readlink)throw new r.ErrnoError(28);return v.node_ops.readlink(v)},stat(x,n){var v=r.lookupPath(x,{follow:!n}),f=v.node,c=r.checkOpExists(f.node_ops.getattr,63);return c(f)},fstat(x){var n=r.getStreamChecked(x),v=n.node,f=n.stream_ops.getattr,c=f?n:v;return f??(f=v.node_ops.getattr),r.checkOpExists(f,63),f(c)},lstat(x){return r.stat(x,!0)},doChmod(x,n,v,f){r.doSetAttr(x,n,{mode:v&4095|n.mode&-4096,ctime:Date.now(),dontFollow:f})},chmod(x,n,v){var f;if(typeof x=="string"){var c=r.lookupPath(x,{follow:!v});f=c.node}else f=x;r.doChmod(null,f,n,v)},lchmod(x,n){r.chmod(x,n,!0)},fchmod(x,n){var v=r.getStreamChecked(x);r.doChmod(v,v.node,n,!1)},doChown(x,n,v){r.doSetAttr(x,n,{timestamp:Date.now(),dontFollow:v})},chown(x,n,v,f){var c;if(typeof x=="string"){var m=r.lookupPath(x,{follow:!f});c=m.node}else c=x;r.doChown(null,c,f)},lchown(x,n,v){r.chown(x,n,v,!0)},fchown(x,n,v){var f=r.getStreamChecked(x);r.doChown(f,f.node,!1)},doTruncate(x,n,v){if(r.isDir(n.mode))throw new r.ErrnoError(31);if(!r.isFile(n.mode))throw new r.ErrnoError(28);var f=r.nodePermissions(n,"w");if(f)throw new r.ErrnoError(f);r.doSetAttr(x,n,{size:v,timestamp:Date.now()})},truncate(x,n){if(n<0)throw new r.ErrnoError(28);var v;if(typeof x=="string"){var f=r.lookupPath(x,{follow:!0});v=f.node}else v=x;r.doTruncate(null,v,n)},ftruncate(x,n){var v=r.getStreamChecked(x);if(n<0||(v.flags&2097155)===0)throw new r.ErrnoError(28);r.doTruncate(v,v.node,n)},utime(x,n,v){var f=r.lookupPath(x,{follow:!0}),c=f.node,m=r.checkOpExists(c.node_ops.setattr,63);m(c,{atime:n,mtime:v})},open(x,n,v=438){if(x==="")throw new r.ErrnoError(44);n=qr(n),n&64?v=v&4095|32768:v=0;var f,c;if(typeof x=="object")f=x;else{c=x.endsWith("/");var m=r.lookupPath(x,{follow:!(n&131072),noent_okay:!0});f=m.node,x=m.path}var q=!1;if(n&64)if(f){if(n&128)throw new r.ErrnoError(20)}else{if(c)throw new r.ErrnoError(31);f=r.mknod(x,v|511,0),q=!0}if(!f)throw new r.ErrnoError(44);if(r.isChrdev(f.mode)&&(n&=-513),n&65536&&!r.isDir(f.mode))throw new r.ErrnoError(54);if(!q){var S=r.mayOpen(f,n);if(S)throw new r.ErrnoError(S)}n&512&&!q&&r.truncate(f,0),n&=-131713;var x0=r.createStream({node:f,path:r.getPath(f),flags:n,seekable:!0,position:0,stream_ops:f.stream_ops,ungotten:[],error:!1});return x0.stream_ops.open&&x0.stream_ops.open(x0),q&&r.chmod(f,v&511),x0},close(x){if(r.isClosed(x))throw new r.ErrnoError(8);x.getdents&&(x.getdents=null);try{x.stream_ops.close&&x.stream_ops.close(x)}catch(n){throw n}finally{r.closeStream(x.fd)}x.fd=null},isClosed(x){return x.fd===null},llseek(x,n,v){if(r.isClosed(x))throw new r.ErrnoError(8);if(!x.seekable||!x.stream_ops.llseek)throw new r.ErrnoError(70);if(v!=0&&v!=1&&v!=2)throw new r.ErrnoError(28);return x.position=x.stream_ops.llseek(x,n,v),x.ungotten=[],x.position},read(x,n,v,f,c){if(f<0||c<0)throw new r.ErrnoError(28);if(r.isClosed(x))throw new r.ErrnoError(8);if((x.flags&2097155)===1)throw new r.ErrnoError(8);if(r.isDir(x.node.mode))throw new r.ErrnoError(31);if(!x.stream_ops.read)throw new r.ErrnoError(28);var m=typeof c<"u";if(!m)c=x.position;else if(!x.seekable)throw new r.ErrnoError(70);var q=x.stream_ops.read(x,n,v,f,c);return m||(x.position+=q),q},write(x,n,v,f,c,m){if(f<0||c<0)throw new r.ErrnoError(28);if(r.isClosed(x))throw new r.ErrnoError(8);if((x.flags&2097155)===0)throw new r.ErrnoError(8);if(r.isDir(x.node.mode))throw new r.ErrnoError(31);if(!x.stream_ops.write)throw new r.ErrnoError(28);x.seekable&&x.flags&1024&&r.llseek(x,0,2);var q=typeof c<"u";if(!q)c=x.position;else if(!x.seekable)throw new r.ErrnoError(70);var S=x.stream_ops.write(x,n,v,f,c,m);return q||(x.position+=S),S},mmap(x,n,v,f,c){if((f&2)!==0&&(c&2)===0&&(x.flags&2097155)!==2)throw new r.ErrnoError(2);if((x.flags&2097155)===1)throw new r.ErrnoError(2);if(!x.stream_ops.mmap)throw new r.ErrnoError(43);if(!n)throw new r.ErrnoError(28);return x.stream_ops.mmap(x,n,v,f,c)},msync(x,n,v,f,c){return x.stream_ops.msync?x.stream_ops.msync(x,n,v,f,c):0},ioctl(x,n,v){if(!x.stream_ops.ioctl)throw new r.ErrnoError(59);return x.stream_ops.ioctl(x,n,v)},readFile(x,n={}){n.flags=n.flags||0,n.encoding=n.encoding||"binary",n.encoding!=="utf8"&&n.encoding!=="binary"&&f0(`Invalid encoding type "${n.encoding}"`);var v=r.open(x,n.flags),f=r.stat(x),c=f.size,m=new Uint8Array(c);return r.read(v,m,0,c,0),n.encoding==="utf8"&&(m=Tx(m)),r.close(v),m},writeFile(x,n,v={}){v.flags=v.flags||577;var f=r.open(x,v.flags,v.mode);n=gA(n),r.write(f,n,0,n.byteLength,void 0,v.canOwn),r.close(f)},cwd:()=>r.currentPath,chdir(x){var n=r.lookupPath(x,{follow:!0});if(n.node===null)throw new r.ErrnoError(44);if(!r.isDir(n.node.mode))throw new r.ErrnoError(54);var v=r.nodePermissions(n.node,"x");if(v)throw new r.ErrnoError(v);r.currentPath=n.path},createDefaultDirectories(){r.mkdir("/tmp"),r.mkdir("/home"),r.mkdir("/home/web_user")},createDefaultDevices(){r.mkdir("/dev"),r.registerDevice(r.makedev(1,3),{read:()=>0,write:(f,c,m,q,S)=>q,llseek:()=>0}),r.mkdev("/dev/null",r.makedev(1,3)),G0.register(r.makedev(5,0),G0.default_tty_ops),G0.register(r.makedev(6,0),G0.default_tty1_ops),r.mkdev("/dev/tty",r.makedev(5,0)),r.mkdev("/dev/tty1",r.makedev(6,0));var x=new Uint8Array(1024),n=0,v=()=>(n===0&&(bA(x),n=x.byteLength),x[--n]);r.createDevice("/dev","random",v),r.createDevice("/dev","urandom",v),r.mkdir("/dev/shm"),r.mkdir("/dev/shm/tmp")},createSpecialDirectories(){r.mkdir("/proc");var x=r.mkdir("/proc/self");r.mkdir("/proc/self/fd"),r.mount({mount(){var n=r.createNode(x,"fd",16895,73);return n.stream_ops={llseek:V.stream_ops.llseek},n.node_ops={lookup(v,f){var c=+f,m=r.getStreamChecked(c),q={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>m.path},id:c+1};return q.parent=q,q},readdir(){return Array.from(r.streams.entries()).filter(([v,f])=>f).map(([v,f])=>v.toString())}},n}},{},"/proc/self/fd")},createStandardStreams(x,n,v){x?r.createDevice("/dev","stdin",x):r.symlink("/dev/tty","/dev/stdin"),n?r.createDevice("/dev","stdout",null,n):r.symlink("/dev/tty","/dev/stdout"),v?r.createDevice("/dev","stderr",null,v):r.symlink("/dev/tty1","/dev/stderr");var f=r.open("/dev/stdin",0),c=r.open("/dev/stdout",1),m=r.open("/dev/stderr",1)},staticInit(){r.nameTable=new Array(4096),r.mount(V,{},"/"),r.createDefaultDirectories(),r.createDefaultDevices(),r.createSpecialDirectories(),r.filesystems={MEMFS:V,PROXYFS:B0}},init(x,n,v){r.initialized=!0,x??(x=a.stdin),n??(n=a.stdout),v??(v=a.stderr),r.createStandardStreams(x,n,v)},quit(){r.initialized=!1,D(0);for(var x of r.streams)x&&r.close(x)},findObject(x,n){var v=r.analyzePath(x,n);return v.exists?v.object:null},analyzePath(x,n){try{var v=r.lookupPath(x,{follow:!n});x=v.path}catch{}var f={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var v=r.lookupPath(x,{parent:!0});f.parentExists=!0,f.parentPath=v.path,f.parentObject=v.node,f.name=e0.basename(x),v=r.lookupPath(x,{follow:!n}),f.exists=!0,f.path=v.path,f.object=v.node,f.name=v.node.name,f.isRoot=v.path==="/"}catch(c){f.error=c.errno}return f},createPath(x,n,v,f){x=typeof x=="string"?x:r.getPath(x);for(var c=n.split("/").reverse();c.length;){var m=c.pop();if(m){var q=e0.join2(x,m);try{r.mkdir(q)}catch(S){if(S.errno!=20)throw S}x=q}}return q},createFile(x,n,v,f,c){var m=e0.join2(typeof x=="string"?x:r.getPath(x),n),q=Zx(f,c);return r.create(m,q)},createDataFile(x,n,v,f,c,m){var q=n;x&&(x=typeof x=="string"?x:r.getPath(x),q=n?e0.join2(x,n):x);var S=Zx(f,c),x0=r.create(q,S);if(v){v=gA(v),r.chmod(x0,S|146);var E0=r.open(x0,577);r.write(E0,v,0,v.length,0,m),r.close(E0),r.chmod(x0,S)}},createDevice(x,n,v,f){var c,m=e0.join2(typeof x=="string"?x:r.getPath(x),n),q=Zx(!!v,!!f);(c=r.createDevice).major??(c.major=64);var S=r.makedev(r.createDevice.major++,0);return r.registerDevice(S,{open(x0){x0.seekable=!1},close(x0){f?.buffer?.length&&f(10)},read(x0,E0,k0,b0,j0){for(var a0=0,I0=0;I0<b0;I0++){var Z0;try{Z0=v()}catch{throw new r.ErrnoError(29)}if(Z0===void 0&&a0===0)throw new r.ErrnoError(6);if(Z0==null)break;a0++,E0[k0+I0]=Z0}return a0&&(x0.node.atime=Date.now()),a0},write(x0,E0,k0,b0,j0){for(var a0=0;a0<b0;a0++)try{f(E0[k0+a0])}catch{throw new r.ErrnoError(29)}return b0&&(x0.node.mtime=x0.node.ctime=Date.now()),a0}}),r.mkdev(m,q,S)},forceLoadFile(x){if(x.isDevice||x.isFolder||x.link||x.contents)return!0;if(globalThis.XMLHttpRequest)f0("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");else try{x.contents=y(x.url)}catch{throw new r.ErrnoError(29)}},createLazyFile(x,n,v,f,c){class m{constructor(){N0(this,"lengthKnown",!1),N0(this,"chunks",[])}get(j0){if(!(j0>this.length-1||j0<0)){var a0=j0%this.chunkSize,I0=j0/this.chunkSize|0;return this.getter(I0)[a0]}}setDataGetter(j0){this.getter=j0}cacheLength(){var j0=new XMLHttpRequest;j0.open("HEAD",v,!1),j0.send(null),j0.status>=200&&j0.status<300||j0.status===304||f0("Couldn't load "+v+". Status: "+j0.status);var a0=Number(j0.getResponseHeader("Content-length")),I0,Z0=(I0=j0.getResponseHeader("Accept-Ranges"))&&I0==="bytes",Fx=(I0=j0.getResponseHeader("Content-Encoding"))&&I0==="gzip",Dx=1024*1024;Z0||(Dx=a0);var lx=(ux,FA)=>{ux>FA&&f0("invalid range ("+ux+", "+FA+") or no bytes requested!"),FA>a0-1&&f0("only "+a0+" bytes available! programmer error!");var H0=new XMLHttpRequest;return H0.open("GET",v,!1),a0!==Dx&&H0.setRequestHeader("Range","bytes="+ux+"-"+FA),H0.responseType="arraybuffer",H0.overrideMimeType&&H0.overrideMimeType("text/plain; charset=x-user-defined"),H0.send(null),H0.status>=200&&H0.status<300||H0.status===304||f0("Couldn't load "+v+". Status: "+H0.status),H0.response!==void 0?new Uint8Array(H0.response||[]):Yx(H0.responseText||"",!0)},GA=this;GA.setDataGetter(ux=>{var FA=ux*Dx,H0=(ux+1)*Dx-1;return H0=Math.min(H0,a0-1),typeof GA.chunks[ux]>"u"&&(GA.chunks[ux]=lx(FA,H0)),typeof GA.chunks[ux]>"u"&&f0("doXHR failed!"),GA.chunks[ux]}),(Fx||!a0)&&(Dx=a0=1,a0=this.getter(0).length,Dx=a0,P("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=a0,this._chunkSize=Dx,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(globalThis.XMLHttpRequest){l||f0("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var q=new m,S={isDevice:!1,contents:q}}else var S={isDevice:!1,url:v};var x0=r.createFile(x,n,S,f,c);S.contents?x0.contents=S.contents:S.url&&(x0.contents=null,x0.url=S.url),Object.defineProperties(x0,{usedBytes:{get:function(){return this.contents.length}}});var E0={};for(let[b0,j0]of Object.entries(x0.stream_ops))E0[b0]=(...a0)=>(r.forceLoadFile(x0),j0(...a0));function k0(b0,j0,a0,I0,Z0){var Fx=b0.node.contents;if(Z0>=Fx.length)return 0;var Dx=Math.min(Fx.length-Z0,I0);if(Fx.slice)for(var lx=0;lx<Dx;lx++)j0[a0+lx]=Fx[Z0+lx];else for(var lx=0;lx<Dx;lx++)j0[a0+lx]=Fx.get(Z0+lx);return Dx}return E0.read=(b0,j0,a0,I0,Z0)=>(r.forceLoadFile(x0),k0(b0,j0,a0,I0,Z0)),E0.mmap=(b0,j0,a0,I0,Z0)=>{r.forceLoadFile(x0);var Fx=hA(j0);if(!Fx)throw new r.ErrnoError(48);return k0(b0,q0,Fx,j0,a0),{ptr:Fx,allocated:!0}},x0.stream_ops=E0,x0}},o0={currentUmask:18,calculateAt(x,n,v){if(e0.isAbs(n))return n;var f;if(x===-100)f=r.cwd();else{var c=o0.getStreamFromFD(x);f=c.path}if(n.length==0){if(!v)throw new r.ErrnoError(44);return f}return f+"/"+n},writeStat(x,n){A0[x>>2]=n.dev,A0[x+4>>2]=n.mode,A0[x+8>>2]=n.nlink,A0[x+12>>2]=n.uid,A0[x+16>>2]=n.gid,A0[x+20>>2]=n.rdev,h0[x+24>>3]=BigInt(n.size),m0[x+32>>2]=4096,m0[x+36>>2]=n.blocks;var v=n.atime.getTime(),f=n.mtime.getTime(),c=n.ctime.getTime();return h0[x+40>>3]=BigInt(Math.floor(v/1e3)),A0[x+48>>2]=v%1e3*1e3*1e3,h0[x+56>>3]=BigInt(Math.floor(f/1e3)),A0[x+64>>2]=f%1e3*1e3*1e3,h0[x+72>>3]=BigInt(Math.floor(c/1e3)),A0[x+80>>2]=c%1e3*1e3*1e3,h0[x+88>>3]=BigInt(n.ino),0},writeStatFs(x,n){A0[x+4>>2]=n.bsize,A0[x+60>>2]=n.bsize,h0[x+8>>3]=BigInt(n.blocks),h0[x+16>>3]=BigInt(n.bfree),h0[x+24>>3]=BigInt(n.bavail),h0[x+32>>3]=BigInt(n.files),h0[x+40>>3]=BigInt(n.ffree),A0[x+48>>2]=n.fsid,A0[x+64>>2]=n.flags,A0[x+56>>2]=n.namelen},doMsync(x,n,v,f,c){if(!r.isFile(n.node.mode))throw new r.ErrnoError(43);if(f&2)return 0;var m=Cx.slice(x,x+v);r.msync(n,m,c,v,f)},getStreamFromFD(x){var n=r.getStreamChecked(x);return n},varargs:void 0,getStr(x){var n=_x(x);return n}};function Tr(x,n,v,f){try{if(n=o0.getStr(n),n=o0.calculateAt(x,n),v&-8)return-28;var c=r.lookupPath(n,{follow:!0}),m=c.node;if(!m)return-44;var q="";return v&4&&(q+="r"),v&2&&(q+="w"),v&1&&(q+="x"),q&&r.nodePermissions(m,q)?-2:0}catch(S){if(typeof r>"u"||S.name!=="ErrnoError")throw S;return-S.errno}}var iA=()=>{var x=m0[+o0.varargs>>2];return o0.varargs+=4,x},Mx=iA;function Ir(x,n,v){o0.varargs=v;try{var f=o0.getStreamFromFD(x);switch(n){case 0:{var c=iA();if(c<0)return-28;for(;r.streams[c];)c++;var m;return m=r.dupStream(f,c),m.fd}case 1:case 2:return 0;case 3:return f.flags;case 4:{var c=iA(),q=289792;return f.flags=f.flags&~q|c&q,0}case 12:{var c=Mx(),S=0;return yx[c+S>>1]=2,0}case 13:case 14:return 0}return-28}catch(x0){if(typeof r>"u"||x0.name!=="ErrnoError")throw x0;return-x0.errno}}var $A=(x,n,v)=>mA(x,Cx,n,v);function Mr(x,n){try{if(n===0)return-28;var v=r.cwd(),f=Xx(v)+1;return n<f?-68:($A(v,x,n),f)}catch(c){if(typeof r>"u"||c.name!=="ErrnoError")throw c;return-c.errno}}function Sr(x,n,v){o0.varargs=v;try{var f=o0.getStreamFromFD(x);switch(n){case 21509:return f.tty?0:-59;case 21505:{if(!f.tty)return-59;if(f.tty.ops.ioctl_tcgets){var c=f.tty.ops.ioctl_tcgets(f),m=Mx();m0[m>>2]=c.c_iflag||0,m0[m+4>>2]=c.c_oflag||0,m0[m+8>>2]=c.c_cflag||0,m0[m+12>>2]=c.c_lflag||0;for(var q=0;q<32;q++)q0[m+q+17]=c.c_cc[q]||0;return 0}return 0}case 21510:case 21511:case 21512:return f.tty?0:-59;case 21506:case 21507:case 21508:{if(!f.tty)return-59;if(f.tty.ops.ioctl_tcsets){for(var m=Mx(),S=m0[m>>2],x0=m0[m+4>>2],E0=m0[m+8>>2],k0=m0[m+12>>2],b0=[],q=0;q<32;q++)b0.push(q0[m+q+17]);return f.tty.ops.ioctl_tcsets(f.tty,n,{c_iflag:S,c_oflag:x0,c_cflag:E0,c_lflag:k0,c_cc:b0})}return 0}case 21519:{if(!f.tty)return-59;var m=Mx();return m0[m>>2]=0,0}case 21520:return f.tty?-28:-59;case 21537:case 21531:{var m=Mx();return r.ioctl(f,n,m)}case 21523:{if(!f.tty)return-59;if(f.tty.ops.ioctl_tiocgwinsz){var j0=f.tty.ops.ioctl_tiocgwinsz(f.tty),m=Mx();yx[m>>1]=j0[0],yx[m+2>>1]=j0[1]}return 0}case 21524:return f.tty?0:-59;case 21515:return f.tty?0:-59;default:return-28}}catch(a0){if(typeof r>"u"||a0.name!=="ErrnoError")throw a0;return-a0.errno}}function Rr(x,n,v,f){o0.varargs=f;try{n=o0.getStr(n),n=o0.calculateAt(x,n);var c=f?iA():0;return v&64&&(c&=~o0.currentUmask),r.open(n,v,c).fd}catch(m){if(typeof r>"u"||m.name!=="ErrnoError")throw m;return-m.errno}}function Or(x,n,v,f){try{if(n=o0.getStr(n),n=o0.calculateAt(x,n),f<=0)return-28;var c=r.readlink(n),m=Math.min(f,Xx(c)),q=q0[v+m];return $A(c,v,f+1),q0[v+m]=q,m}catch(S){if(typeof r>"u"||S.name!=="ErrnoError")throw S;return-S.errno}}function Ur(x,n,v,f){try{return n=o0.getStr(n),f=o0.getStr(f),n=o0.calculateAt(x,n),f=o0.calculateAt(v,f),r.rename(n,f),0}catch(c){if(typeof r>"u"||c.name!=="ErrnoError")throw c;return-c.errno}}function Hr(x){try{return x=o0.getStr(x),r.rmdir(x),0}catch(n){if(typeof r>"u"||n.name!=="ErrnoError")throw n;return-n.errno}}function zr(x,n,v){try{if(n=o0.getStr(n),n=o0.calculateAt(x,n),!v)r.unlink(n);else if(v===512)r.rmdir(n);else return-28;return 0}catch(f){if(typeof r>"u"||f.name!=="ErrnoError")throw f;return-f.errno}}var Jr=()=>{throw new U},Kr=()=>performance.now(),Vr=()=>Date.now(),Wr=1,Xr=x=>x>=0&&x<=3,ZA=9007199254740992,Yr=-9007199254740992,QA=x=>x<Yr||x>ZA?NaN:Number(x);function Zr(x,n,v){if(n=QA(n),!Xr(x))return 28;var f;if(x===0)f=Vr();else if(Wr)f=Kr();else return 52;var c=Math.round(f*1e3*1e3);return h0[v>>3]=BigInt(c),0}var Qr=()=>2147483648,xr=(x,n)=>Math.ceil(x/n)*n,xe=x=>{var n=p0.buffer.byteLength,v=(x-n+65535)/65536|0;try{return p0.grow(v),z(),1}catch{}},Ae=x=>{var n=Cx.length;x>>>=0;var v=Qr();if(x>v)return!1;for(var f=1;f<=4;f*=2){var c=n*(1+.2/f);c=Math.min(c,x+100663296);var m=Math.min(v,xr(Math.max(x,c),65536)),q=xe(m);if(q)return!0}return!1};function re(x){try{var n=o0.getStreamFromFD(x);return r.close(n),0}catch(v){if(typeof r>"u"||v.name!=="ErrnoError")throw v;return v.errno}}var ee=(x,n,v,f)=>{for(var c=0,m=0;m<v;m++){var q=A0[n>>2],S=A0[n+4>>2];n+=8;var x0=r.read(x,q0,q,S,f);if(x0<0)return-1;if(c+=x0,x0<S)break;typeof f<"u"&&(f+=x0)}return c};function te(x,n,v,f){try{var c=o0.getStreamFromFD(x),m=ee(c,n,v);return A0[f>>2]=m,0}catch(q){if(typeof r>"u"||q.name!=="ErrnoError")throw q;return q.errno}}function Ar(x,n,v,f){n=QA(n);try{if(isNaN(n))return 22;var c=o0.getStreamFromFD(x);return r.llseek(c,n,v),h0[f>>3]=BigInt(c.position),c.getdents&&n===0&&v===0&&(c.getdents=null),0}catch(m){if(typeof r>"u"||m.name!=="ErrnoError")throw m;return m.errno}}var rr=(x,n,v,f)=>{for(var c=0,m=0;m<v;m++){var q=A0[n>>2],S=A0[n+4>>2];n+=8;var x0=r.write(x,q0,q,S,f);if(x0<0)return-1;if(c+=x0,x0<S)break;typeof f<"u"&&(f+=x0)}return c};function er(x,n,v,f){try{var c=o0.getStreamFromFD(x),m=rr(c,n,v);return A0[f>>2]=m,0}catch(q){if(typeof r>"u"||q.name!=="ErrnoError")throw q;return q.errno}}var ne=0,qA=()=>uA||ne>0,ie=x=>{g=x,qA()||(a.onExit?.(x),W=!0),k(x,new Vx(x))},Fe=(x,n)=>{g=x,qA()||t0(),ie(x)},se=x=>{if(x instanceof Vx||x=="unwind")return g;k(1,x)},xA=x=>O(x),ae=x=>{var n=Xx(x)+1,v=xA(n);return $A(x,v,n),v},PA=[],O0=x=>{var n=PA[x];return n||(PA[x]=n=D0.get(x)),n},NA=(...x)=>r.createPath(...x),AA=(...x)=>r.unlink(...x),A=(...x)=>r.createLazyFile(...x),o=(...x)=>r.createDevice(...x);if(r.createPreloadedFile=Gr,r.preloadFile=Qx,r.staticInit(),a.noExitRuntime&&(uA=a.noExitRuntime),a.preloadPlugins&&(_A=a.preloadPlugins),a.print&&(P=a.print),a.printErr&&(N=a.printErr),a.wasmBinary&&(M=a.wasmBinary),a.arguments&&(u=a.arguments),a.thisProgram&&(p=a.thisProgram),a.preInit)for(typeof a.preInit=="function"&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.shift()();a.callMain=Le,a.addRunDependency=wA,a.removeRunDependency=yA,a.FS_preloadFile=Qx,a.FS_unlink=AA,a.FS_createPath=NA,a.FS_createDevice=o,a.FS=r,a.FS_createDataFile=kA,a.FS_createLazyFile=A,a.PROXYFS=B0;var B,D,j,h,L,O,Z,v0,g0,p0,D0;function s0(x){B=a._main=x.__main_argc_argv,D=x.fflush,j=x.__funcs_on_exit,h=x.setThrew,L=x._emscripten_stack_restore,O=x._emscripten_stack_alloc,Z=x.emscripten_stack_get_current,v0=p0=x.memory,g0=D0=x.__indirect_function_table}var $0={__assert_fail:Ix,__syscall_faccessat:Tr,__syscall_fcntl64:Ir,__syscall_getcwd:Mr,__syscall_ioctl:Sr,__syscall_openat:Rr,__syscall_readlinkat:Or,__syscall_renameat:Ur,__syscall_rmdir:Hr,__syscall_unlinkat:zr,_emscripten_throw_longjmp:Jr,clock_time_get:Zr,emscripten_resize_heap:Ae,fd_close:re,fd_read:te,fd_seek:Ar,fd_write:er,invoke_i:rA,invoke_ii:rx,invoke_iii:ex,invoke_iiid:yn,invoke_iiii:ix,invoke_iiiii:T0,invoke_iiiiii:wn,invoke_iijii:hn,invoke_v:U0,invoke_vi:gn,invoke_vii:xx,invoke_viii:kn,invoke_viiii:Sx,invoke_viiiii:mn};function U0(x){var n=V0();try{O0(x)()}catch(v){if(R0(n),!(v instanceof G))throw v;h(1,0)}}function xx(x,n,v){var f=V0();try{O0(x)(n,v)}catch(c){if(R0(f),!(c instanceof G))throw c;h(1,0)}}function rx(x,n){var v=V0();try{return O0(x)(n)}catch(f){if(R0(v),!(f instanceof G))throw f;h(1,0)}}function ex(x,n,v){var f=V0();try{return O0(x)(n,v)}catch(c){if(R0(f),!(c instanceof G))throw c;h(1,0)}}function rA(x){var n=V0();try{return O0(x)()}catch(v){if(R0(n),!(v instanceof G))throw v;h(1,0)}}function ix(x,n,v,f){var c=V0();try{return O0(x)(n,v,f)}catch(m){if(R0(c),!(m instanceof G))throw m;h(1,0)}}function Sx(x,n,v,f,c){var m=V0();try{O0(x)(n,v,f,c)}catch(q){if(R0(m),!(q instanceof G))throw q;h(1,0)}}function T0(x,n,v,f,c){var m=V0();try{return O0(x)(n,v,f,c)}catch(q){if(R0(m),!(q instanceof G))throw q;h(1,0)}}function mn(x,n,v,f,c,m){var q=V0();try{O0(x)(n,v,f,c,m)}catch(S){if(R0(q),!(S instanceof G))throw S;h(1,0)}}function hn(x,n,v,f,c){var m=V0();try{return O0(x)(n,v,f,c)}catch(q){if(R0(m),!(q instanceof G))throw q;h(1,0)}}function gn(x,n){var v=V0();try{O0(x)(n)}catch(f){if(R0(v),!(f instanceof G))throw f;h(1,0)}}function kn(x,n,v,f){var c=V0();try{O0(x)(n,v,f)}catch(m){if(R0(c),!(m instanceof G))throw m;h(1,0)}}function yn(x,n,v,f){var c=V0();try{return O0(x)(n,v,f)}catch(m){if(R0(c),!(m instanceof G))throw m;h(1,0)}}function wn(x,n,v,f,c,m){var q=V0();try{return O0(x)(n,v,f,c,m)}catch(S){if(R0(q),!(S instanceof G))throw S;h(1,0)}}function Le(x=[]){var n=B;x.unshift(p);var v=x.length,f=xA((v+1)*4),c=f;for(var m of x)A0[c>>2]=ae(m),c+=4;A0[c>>2]=0;try{var q=n(v,f);return Fe(q,!0),q}catch(S){return se(S)}}function oe(x=u){if(Y0>0){fx=oe;return}if(T(),Y0>0){fx=oe;return}function n(){if(a.calledRun=!0,!W){Q(),I?.(a),a.onRuntimeInitialized?.();var v=a.noInitialRun||!0;v||Le(x),n0()}}a.setStatus?(a.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>a.setStatus(""),1),n()},1)):n()}var LA;return LA=await Gx(),oe(),K?E=a:E=new Promise((x,n)=>{I=x,H=n}),E}})();typeof t=="object"&&typeof e=="object"?(e.exports=F,e.exports.default=F):typeof define=="function"&&define.amd&&define([],()=>F)}}),_F=Rt({"wasm/bin/pawndbg.js"(t,e){"use strict";var F=(()=>{var i=globalThis.document?.currentScript?.src;return async function(s={}){var E,a=s,C=!!globalThis.window,l=!!globalThis.WorkerGlobalScope,d=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer",u=[],p="./this.program",k=(A,o)=>{throw o};typeof __filename<"u"?i=__filename:l&&(i=self.location.href);var w="",b,y;if(d){var $=require("fs");w=__dirname+"/",y=A=>{A=_(A)?new URL(A):A;var o=$.readFileSync(A);return o},b=async(A,o=!0)=>{A=_(A)?new URL(A):A;var B=$.readFileSync(A,o?void 0:"utf8");return B},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),u=process.argv.slice(2),k=(A,o)=>{throw process.exitCode=A,o}}else if(C||l){try{w=new URL(".",i).href}catch{}l&&(y=A=>{var o=new XMLHttpRequest;return o.open("GET",A,!1),o.responseType="arraybuffer",o.send(null),new Uint8Array(o.response)}),b=async A=>{if(_(A))return new Promise((B,D)=>{var j=new XMLHttpRequest;j.open("GET",A,!0),j.responseType="arraybuffer",j.onload=()=>{if(j.status==200||j.status==0&&j.response){B(j.response);return}D(j.status)},j.onerror=D,j.send(null)});var o=await fetch(A,{credentials:"same-origin"});if(o.ok)return o.arrayBuffer();throw new Error(o.status+" : "+o.url)}}var P=console.log.bind(console),N=console.error.bind(console),M,W=!1,g,_=A=>A.startsWith("file://");class G{}class U extends G{}function J(A){for(var o=0,B=A.length,D=new Uint8Array(B),j;o<B;++o)j=A.charCodeAt(o),D[o]=~j>>8&j;return D}var I,H,K=!1,Y=!1;function z(){var A=xA.buffer;q0=new Int8Array(A),yx=new Int16Array(A),Cx=new Uint8Array(A),gr=new Uint16Array(A),m0=new Int32Array(A),A0=new Uint32Array(A),mr=new Float32Array(A),hr=new Float64Array(A),h0=new BigInt64Array(A),kr=new BigUint64Array(A)}function T(){if(a.preRun)for(typeof a.preRun=="function"&&(a.preRun=[a.preRun]);a.preRun.length;)wr(a.preRun.shift());dA(pA)}function Q(){K=!0,!a.noFSInit&&!r.initialized&&r.init(),G0.init(),AA.__wasm_call_ctors(),r.ignorePermissions=!1}function r0(){}function t0(){rr(),r.quit(),G0.shutdown(),Y=!0}function n0(){if(a.postRun)for(typeof a.postRun=="function"&&(a.postRun=[a.postRun]);a.postRun.length;)yr(a.postRun.shift());dA(jA)}function f0(A){a.onAbort?.(A),A=`Aborted(${A})`,N(A),W=!0,A+=". Build with -sASSERTIONS for more info.";var o=new WebAssembly.RuntimeError(A);throw H?.(o),o}var l0;function L0(){return J(`\0asm\0\0\0\xB4\`\x7F\x7F\`\x7F\0\`\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\`\x7F\x7F\x7F\0\`\x7F~~~~\0\`\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\0\`\x7F~\x7F~\`\x7F\x7F\x7F\x7F\0\`\0\0\`\0\x7F\`\x7F~~\x7F\0\`\x7F|\x7F\x7F\x7F\x7F\x7F\`\x7F~\x7F\x7F\x7F\`\x7F\x7F|\0\`\x7F~\0\`\x7F|\`\x7F~~~\0\`\x7F~\`|\x7F|\`\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`~\x7F\x7F\`\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F~\0\`~~~~\x7F\`~~~\x7F\`\x7F|\0\xFD env\r__assert_fail\0 env__syscall_openat\0env__syscall_fcntl64\0env__syscall_ioctl\0wasi_snapshot_preview1\bfd_write\0wasi_snapshot_preview1\x07fd_read\0wasi_snapshot_preview1\bfd_close\0\0wasi_snapshot_preview1\x07fd_seek\0envemscripten_resize_heap\0\0VU
1161
+ \0A\xC0\x81\v\v0\xC0\0\0\x80!\0\`(`)}function ox(i){return i}async function Hx(i){return i}async function hA(i,v){try{var B=await Hx(i),u=await WebAssembly.instantiate(B,v);return u}catch(m){L(`failed to asynchronously prepare wasm: ${m}`),d0(m)}}async function gA(i,v,B){return hA(v,B)}function sx(){var i={env:Ax,wasi_snapshot_preview1:Ax};return i}async function Z0(){function i(w,I){return we=w.exports,b0(we),Z(),we}function v(w){return i(w.instance)}var B=sx();if(n.instantiateWasm)return new Promise((w,I)=>{n.instantiateWasm(B,(K,o0)=>{w(i(K,o0))})});q0??(q0=M0());var u=await gA(O,q0,B),m=v(u);return m}class xA{constructor(v){dx(this,"name","ExitStatus"),this.message=`Program terminated with exit(${v})`,this.status=v}}var U0,O0,H0,ix,gr,yr,kr,f0,_r,AA,yA=i=>{for(;i.length>0;)i.shift()(n)},kA=[],Xe=i=>kA.push(i),zx=[],Ye=i=>zx.push(i),ne=!1,nx=i=>G(i),g0=()=>a0(),eA=globalThis.TextDecoder&&new TextDecoder,ux=(i,v,B,u)=>{var m=v+B;if(u)return m;for(;i[v]&&!(v>=m);)++v;return v},lA=(i,v=0,B,u)=>{var m=ux(i,v,B,u);if(m-v>16&&i.buffer&&eA)return eA.decode(i.subarray(v,m));for(var w="";v<m;){var I=i[v++];if(!(I&128)){w+=String.fromCharCode(I);continue}var K=i[v++]&63;if((I&224)==192){w+=String.fromCharCode((I&31)<<6|K);continue}var o0=i[v++]&63;if((I&240)==224?I=(I&15)<<12|K<<6|o0:I=(I&7)<<18|K<<12|o0<<6|i[v++]&63,I<65536)w+=String.fromCharCode(I);else{var _0=I-65536;w+=String.fromCharCode(55296|_0>>10,56320|_0&1023)}}return w},rA=(i,v,B)=>i?lA(AA,i,v,B):"",_A=(i,v,B,u)=>d0(`Assertion failed: ${rA(i)}, at: `+[v?rA(v):"unknown filename",B,u?rA(u):"unknown function"]),E0={isAbs:i=>i.charAt(0)==="/",splitPath:i=>{var v=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return v.exec(i).slice(1)},normalizeArray:(i,v)=>{for(var B=0,u=i.length-1;u>=0;u--){var m=i[u];m==="."?i.splice(u,1):m===".."?(i.splice(u,1),B++):B&&(i.splice(u,1),B--)}if(v)for(;B;B--)i.unshift("..");return i},normalize:i=>{var v=E0.isAbs(i),B=i.slice(-1)==="/";return i=E0.normalizeArray(i.split("/").filter(u=>!!u),!v).join("/"),!i&&!v&&(i="."),i&&B&&(i+="/"),(v?"/":"")+i},dirname:i=>{var v=E0.splitPath(i),B=v[0],u=v[1];return!B&&!u?".":(u&&(u=u.slice(0,-1)),B+u)},basename:i=>i&&i.match(/([^\/]+|\/)\/*$/)[1],join:(...i)=>E0.normalize(i.join("/")),join2:(i,v)=>E0.normalize(i+"/"+v)},wr=()=>{if(c){var i=require("crypto");return v=>i.randomFillSync(v)}return v=>(crypto.getRandomValues(v),0)},be=i=>(be=wr())(i),fx={resolve:(...i)=>{for(var v="",B=!1,u=i.length-1;u>=-1&&!B;u--){var m=u>=0?i[u]:o.cwd();if(typeof m!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!m)return"";v=m+"/"+v,B=E0.isAbs(m)}return v=E0.normalizeArray(v.split("/").filter(w=>!!w),!B).join("/"),(B?"/":"")+v||"."},relative:(i,v)=>{i=fx.resolve(i).slice(1),v=fx.resolve(v).slice(1);function B(_0){for(var X0=0;X0<_0.length&&_0[X0]==="";X0++);for(var L0=_0.length-1;L0>=0&&_0[L0]==="";L0--);return X0>L0?[]:_0.slice(X0,L0-X0+1)}for(var u=B(i.split("/")),m=B(v.split("/")),w=Math.min(u.length,m.length),I=w,K=0;K<w;K++)if(u[K]!==m[K]){I=K;break}for(var o0=[],K=I;K<u.length;K++)o0.push("..");return o0=o0.concat(m.slice(I)),o0.join("/")}},Lx=[],UA=i=>{for(var v=0,B=0;B<i.length;++B){var u=i.charCodeAt(B);u<=127?v++:u<=2047?v+=2:u>=55296&&u<=57343?(v+=4,++B):v+=3}return v},me=(i,v,B,u)=>{if(!(u>0))return 0;for(var m=B,w=B+u-1,I=0;I<i.length;++I){var K=i.codePointAt(I);if(K<=127){if(B>=w)break;v[B++]=K}else if(K<=2047){if(B+1>=w)break;v[B++]=192|K>>6,v[B++]=128|K&63}else if(K<=65535){if(B+2>=w)break;v[B++]=224|K>>12,v[B++]=128|K>>6&63,v[B++]=128|K&63}else{if(B+3>=w)break;v[B++]=240|K>>18,v[B++]=128|K>>12&63,v[B++]=128|K>>6&63,v[B++]=128|K&63,I++}}return v[B]=0,B-m},HA=(i,v,B)=>{var u=B>0?B:UA(i)+1,m=new Array(u),w=me(i,m,0,m.length);return v&&(m.length=w),m},Sr=()=>{if(!Lx.length){var i=null;if(c){var v=256,B=Buffer.alloc(v),u=0,m=process.stdin.fd;try{u=P.readSync(m,B,0,v)}catch(w){if(w.toString().includes("EOF"))u=0;else throw w}u>0&&(i=B.slice(0,u).toString("utf-8"))}else globalThis.window?.prompt&&(i=window.prompt("Input: "),i!==null&&(i+=`
1162
+ `));if(!i)return null;Lx=HA(i,!0)}return Lx.shift()},xx={ttys:[],init(){},shutdown(){},register(i,v){xx.ttys[i]={input:[],output:[],ops:v},o.registerDevice(i,xx.stream_ops)},stream_ops:{open(i){var v=xx.ttys[i.node.rdev];if(!v)throw new o.ErrnoError(43);i.tty=v,i.seekable=!1},close(i){i.tty.ops.fsync(i.tty)},fsync(i){i.tty.ops.fsync(i.tty)},read(i,v,B,u,m){if(!i.tty||!i.tty.ops.get_char)throw new o.ErrnoError(60);for(var w=0,I=0;I<u;I++){var K;try{K=i.tty.ops.get_char(i.tty)}catch{throw new o.ErrnoError(29)}if(K===void 0&&w===0)throw new o.ErrnoError(6);if(K==null)break;w++,v[B+I]=K}return w&&(i.node.atime=Date.now()),w},write(i,v,B,u,m){if(!i.tty||!i.tty.ops.put_char)throw new o.ErrnoError(60);try{for(var w=0;w<u;w++)i.tty.ops.put_char(i.tty,v[B+w])}catch{throw new o.ErrnoError(29)}return u&&(i.node.mtime=i.node.ctime=Date.now()),w}},default_tty_ops:{get_char(i){return Sr()},put_char(i,v){v===null||v===10?(N(lA(i.output)),i.output=[]):v!=0&&i.output.push(v)},fsync(i){i.output?.length>0&&(N(lA(i.output)),i.output=[])},ioctl_tcgets(i){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(i,v,B){return 0},ioctl_tiocgwinsz(i){return[24,80]}},default_tty1_ops:{put_char(i,v){v===null||v===10?(L(lA(i.output)),i.output=[]):v!=0&&i.output.push(v)},fsync(i){i.output?.length>0&&(L(lA(i.output)),i.output=[])}}},wA=i=>{d0()},t0={ops_table:null,mount(i){return t0.createNode(null,"/",16895,0)},createNode(i,v,B,u){if(o.isBlkdev(B)||o.isFIFO(B))throw new o.ErrnoError(63);t0.ops_table||(t0.ops_table={dir:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr,lookup:t0.node_ops.lookup,mknod:t0.node_ops.mknod,rename:t0.node_ops.rename,unlink:t0.node_ops.unlink,rmdir:t0.node_ops.rmdir,readdir:t0.node_ops.readdir,symlink:t0.node_ops.symlink},stream:{llseek:t0.stream_ops.llseek}},file:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr},stream:{llseek:t0.stream_ops.llseek,read:t0.stream_ops.read,write:t0.stream_ops.write,mmap:t0.stream_ops.mmap,msync:t0.stream_ops.msync}},link:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr,readlink:t0.node_ops.readlink},stream:{}},chrdev:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr},stream:o.chrdev_stream_ops}});var m=o.createNode(i,v,B,u);return o.isDir(m.mode)?(m.node_ops=t0.ops_table.dir.node,m.stream_ops=t0.ops_table.dir.stream,m.contents={}):o.isFile(m.mode)?(m.node_ops=t0.ops_table.file.node,m.stream_ops=t0.ops_table.file.stream,m.usedBytes=0,m.contents=t0.emptyFileContents??(t0.emptyFileContents=new Uint8Array(0))):o.isLink(m.mode)?(m.node_ops=t0.ops_table.link.node,m.stream_ops=t0.ops_table.link.stream):o.isChrdev(m.mode)&&(m.node_ops=t0.ops_table.chrdev.node,m.stream_ops=t0.ops_table.chrdev.stream),m.atime=m.mtime=m.ctime=Date.now(),i&&(i.contents[v]=m,i.atime=i.mtime=i.ctime=m.atime),m},getFileDataAsTypedArray(i){return i.contents.subarray(0,i.usedBytes)},expandFileStorage(i,v){var B=i.contents.length;if(!(B>=v)){var u=1024*1024;v=Math.max(v,B*(B<u?2:1.125)>>>0),B&&(v=Math.max(v,256));var m=t0.getFileDataAsTypedArray(i);i.contents=new Uint8Array(v),i.contents.set(m)}},resizeFileStorage(i,v){if(i.usedBytes!=v){var B=i.contents;i.contents=new Uint8Array(v),i.contents.set(B.subarray(0,Math.min(v,i.usedBytes))),i.usedBytes=v}},node_ops:{getattr(i){var v={};return v.dev=o.isChrdev(i.mode)?i.id:1,v.ino=i.id,v.mode=i.mode,v.nlink=1,v.uid=0,v.gid=0,v.rdev=i.rdev,o.isDir(i.mode)?v.size=4096:o.isFile(i.mode)?v.size=i.usedBytes:o.isLink(i.mode)?v.size=i.link.length:v.size=0,v.atime=new Date(i.atime),v.mtime=new Date(i.mtime),v.ctime=new Date(i.ctime),v.blksize=4096,v.blocks=Math.ceil(v.size/v.blksize),v},setattr(i,v){for(let B of["mode","atime","mtime","ctime"])v[B]!=null&&(i[B]=v[B]);v.size!==void 0&&t0.resizeFileStorage(i,v.size)},lookup(i,v){throw t0.doesNotExistError||(t0.doesNotExistError=new o.ErrnoError(44),t0.doesNotExistError.stack="<generic error, no stack>"),t0.doesNotExistError},mknod(i,v,B,u){return t0.createNode(i,v,B,u)},rename(i,v,B){var u;try{u=o.lookupNode(v,B)}catch{}if(u){if(o.isDir(i.mode))for(var m in u.contents)throw new o.ErrnoError(55);o.hashRemoveNode(u)}delete i.parent.contents[i.name],v.contents[B]=i,i.name=B,v.ctime=v.mtime=i.parent.ctime=i.parent.mtime=Date.now()},unlink(i,v){delete i.contents[v],i.ctime=i.mtime=Date.now()},rmdir(i,v){var B=o.lookupNode(i,v);for(var u in B.contents)throw new o.ErrnoError(55);delete i.contents[v],i.ctime=i.mtime=Date.now()},readdir(i){return[".","..",...Object.keys(i.contents)]},symlink(i,v,B){var u=t0.createNode(i,v,41471,0);return u.link=B,u},readlink(i){if(!o.isLink(i.mode))throw new o.ErrnoError(28);return i.link}},stream_ops:{read(i,v,B,u,m){var w=i.node.contents;if(m>=i.node.usedBytes)return 0;var I=Math.min(i.node.usedBytes-m,u);return v.set(w.subarray(m,m+I),B),I},write(i,v,B,u,m,w){if(v.buffer===ix.buffer&&(w=!1),!u)return 0;var I=i.node;return I.mtime=I.ctime=Date.now(),w?(I.contents=v.subarray(B,B+u),I.usedBytes=u):I.usedBytes===0&&m===0?(I.contents=v.slice(B,B+u),I.usedBytes=u):(t0.expandFileStorage(I,m+u),I.contents.set(v.subarray(B,B+u),m),I.usedBytes=Math.max(I.usedBytes,m+u)),u},llseek(i,v,B){var u=v;if(B===1?u+=i.position:B===2&&o.isFile(i.node.mode)&&(u+=i.node.usedBytes),u<0)throw new o.ErrnoError(28);return u},mmap(i,v,B,u,m){if(!o.isFile(i.node.mode))throw new o.ErrnoError(43);var w,I,K=i.node.contents;if(!(m&2)&&K.buffer===ix.buffer)I=!1,w=K.byteOffset;else{if(I=!0,w=wA(v),!w)throw new o.ErrnoError(48);K&&((B>0||B+v<K.length)&&(K.subarray?K=K.subarray(B,B+v):K=Array.prototype.slice.call(K,B,B+v)),ix.set(K,w))}return{ptr:w,allocated:I}},msync(i,v,B,u,m){return t0.stream_ops.write(i,v,0,u,B,!1),0}}},SA=i=>{if(typeof i!="string")return i;var v={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},B=v[i];if(typeof B>"u")throw new Error(`Unknown file open mode: ${i}`);return B},Kx=i=>(typeof i=="string"&&(i=HA(i,!0)),i.subarray||(i=new Uint8Array(i)),i),tA=(i,v)=>{var B=0;return i&&(B|=365),v&&(B|=146),B},P0={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},y0={mount(i){return y0.createNode(null,"/",i.opts.fs.lstat(i.opts.root).mode,0)},createNode(i,v,B,u){if(!o.isDir(B)&&!o.isFile(B)&&!o.isLink(B))throw new o.ErrnoError(P0.EINVAL);var m=o.createNode(i,v,B);return m.node_ops=y0.node_ops,m.stream_ops=y0.stream_ops,m},realPath(i){for(var v=[];i.parent!==i;)v.push(i.name),i=i.parent;return v.push(i.mount.opts.root),v.reverse(),E0.join(...v)},node_ops:{getattr(i){var v=y0.realPath(i),B;try{B=i.mount.opts.fs.lstat(v)}catch(u){throw u.code?new o.ErrnoError(P0[u.code]):u}return{dev:B.dev,ino:B.ino,mode:B.mode,nlink:B.nlink,uid:B.uid,gid:B.gid,rdev:B.rdev,size:B.size,atime:B.atime,mtime:B.mtime,ctime:B.ctime,blksize:B.blksize,blocks:B.blocks}},setattr(i,v){var B=y0.realPath(i);try{if(v.mode!==void 0&&(i.mount.opts.fs.chmod(B,v.mode),i.mode=v.mode),v.atime||v.mtime){var u=new Date(v.atime||v.mtime),m=new Date(v.mtime||v.atime);i.mount.opts.fs.utime(B,u,m)}v.size!==void 0&&i.mount.opts.fs.truncate(B,v.size)}catch(w){throw w.code?new o.ErrnoError(P0[w.code]):w}},lookup(i,v){try{var B=E0.join2(y0.realPath(i),v),u=i.mount.opts.fs.lstat(B).mode,m=y0.createNode(i,v,u);return m}catch(w){throw w.code?new o.ErrnoError(P0[w.code]):w}},mknod(i,v,B,u){var m=y0.createNode(i,v,B,u),w=y0.realPath(m);try{o.isDir(m.mode)?m.mount.opts.fs.mkdir(w,m.mode):m.mount.opts.fs.writeFile(w,"",{mode:m.mode})}catch(I){throw I.code?new o.ErrnoError(P0[I.code]):I}return m},rename(i,v,B){var u=y0.realPath(i),m=E0.join2(y0.realPath(v),B);try{i.mount.opts.fs.rename(u,m),i.name=B}catch(w){throw w.code?new o.ErrnoError(P0[w.code]):w}},unlink(i,v){var B=E0.join2(y0.realPath(i),v);try{i.mount.opts.fs.unlink(B)}catch(u){throw u.code?new o.ErrnoError(P0[u.code]):u}},rmdir(i,v){var B=E0.join2(y0.realPath(i),v);try{i.mount.opts.fs.rmdir(B)}catch(u){throw u.code?new o.ErrnoError(P0[u.code]):u}},readdir(i){var v=y0.realPath(i);try{return i.mount.opts.fs.readdir(v)}catch(B){throw B.code?new o.ErrnoError(P0[B.code]):B}},symlink(i,v,B){var u=E0.join2(y0.realPath(i),v);try{i.mount.opts.fs.symlink(B,u)}catch(m){throw m.code?new o.ErrnoError(P0[m.code]):m}},readlink(i){var v=y0.realPath(i);try{return i.mount.opts.fs.readlink(v)}catch(B){throw B.code?new o.ErrnoError(P0[B.code]):B}}},stream_ops:{open(i){var v=y0.realPath(i.node);try{i.nfd=i.node.mount.opts.fs.open(v,i.flags)}catch(B){throw B.code?new o.ErrnoError(P0[B.code]):B}},close(i){try{i.node.mount.opts.fs.close(i.nfd)}catch(v){throw v.code?new o.ErrnoError(P0[v.code]):v}},read(i,v,B,u,m){try{return i.node.mount.opts.fs.read(i.nfd,v,B,u,m)}catch(w){throw w.code?new o.ErrnoError(P0[w.code]):w}},write(i,v,B,u,m){try{return i.node.mount.opts.fs.write(i.nfd,v,B,u,m)}catch(w){throw w.code?new o.ErrnoError(P0[w.code]):w}},llseek(i,v,B){var u=v;if(B===1)u+=i.position;else if(B===2&&o.isFile(i.node.mode))try{var m=i.node.node_ops.getattr(i.node);u+=m.size}catch(w){throw new o.ErrnoError(P0[w.code])}if(u<0)throw new o.ErrnoError(P0.EINVAL);return u}}},cA=async i=>{var v=await k(i);return new Uint8Array(v)},je=(...i)=>o.createDataFile(...i),Ex=i=>i,Fx=0,p0=null,he=i=>{if(Fx--,n.monitorRunDependencies?.(Fx),Fx==0&&p0){var v=p0;p0=null,v()}},Sx=i=>{Fx++,n.monitorRunDependencies?.(Fx)},se=[],BA=async(i,v)=>{typeof Browser<"u"&&Browser.init();for(var B of se)if(B.canHandle(v))return B.handle(i,v);return i},$A=async(i,v,B,u,m,w,I,K)=>{var o0=v?fx.resolve(E0.join2(i,v)):i,_0=Ex(`cp ${o0}`);Sx(_0);try{var X0=B;typeof B=="string"&&(X0=await cA(B)),X0=await BA(X0,o0),K?.(),w||je(i,v,X0,u,m,I)}finally{he(_0)}},$r=(i,v,B,u,m,w,I,K,o0,_0)=>{$A(i,v,B,u,m,K,o0,_0).then(w).catch(I)},o={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,ErrnoError:class{constructor(i){dx(this,"name","ErrnoError"),this.errno=i}},FSStream:class{constructor(){dx(this,"shared",{})}get object(){return this.node}set object(i){this.node=i}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(i){this.shared.flags=i}get position(){return this.shared.position}set position(i){this.shared.position=i}},FSNode:class{constructor(i,v,B,u){dx(this,"node_ops",{}),dx(this,"stream_ops",{}),dx(this,"readMode",365),dx(this,"writeMode",146),dx(this,"mounted",null),i||(i=this),this.parent=i,this.mount=i.mount,this.id=o.nextInode++,this.name=v,this.mode=B,this.rdev=u,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(i){i?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(i){i?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return o.isDir(this.mode)}get isDevice(){return o.isChrdev(this.mode)}},lookupPath(i,v={}){if(!i)throw new o.ErrnoError(44);v.follow_mount??(v.follow_mount=!0),E0.isAbs(i)||(i=o.cwd()+"/"+i);x:for(var B=0;B<40;B++){for(var u=i.split("/").filter(_0=>!!_0),m=o.root,w="/",I=0;I<u.length;I++){var K=I===u.length-1;if(K&&v.parent)break;if(u[I]!=="."){if(u[I]===".."){if(w=E0.dirname(w),o.isRoot(m)){i=w+"/"+u.slice(I+1).join("/"),B--;continue x}else m=m.parent;continue}w=E0.join2(w,u[I]);try{m=o.lookupNode(m,u[I])}catch(_0){if(_0?.errno===44&&K&&v.noent_okay)return{path:w};throw _0}if(o.isMountpoint(m)&&(!K||v.follow_mount)&&(m=m.mounted.root),o.isLink(m.mode)&&(!K||v.follow)){if(!m.node_ops.readlink)throw new o.ErrnoError(52);var o0=m.node_ops.readlink(m);E0.isAbs(o0)||(o0=E0.dirname(w)+"/"+o0),i=o0+"/"+u.slice(I+1).join("/");continue x}}}return{path:w,node:m}}throw new o.ErrnoError(32)},getPath(i){for(var v;;){if(o.isRoot(i)){var B=i.mount.mountpoint;return v?B[B.length-1]!=="/"?`${B}/${v}`:B+v:B}v=v?`${i.name}/${v}`:i.name,i=i.parent}},hashName(i,v){for(var B=0,u=0;u<v.length;u++)B=(B<<5)-B+v.charCodeAt(u)|0;return(i+B>>>0)%o.nameTable.length},hashAddNode(i){var v=o.hashName(i.parent.id,i.name);i.name_next=o.nameTable[v],o.nameTable[v]=i},hashRemoveNode(i){var v=o.hashName(i.parent.id,i.name);if(o.nameTable[v]===i)o.nameTable[v]=i.name_next;else for(var B=o.nameTable[v];B;){if(B.name_next===i){B.name_next=i.name_next;break}B=B.name_next}},lookupNode(i,v){var B=o.mayLookup(i);if(B)throw new o.ErrnoError(B);for(var u=o.hashName(i.id,v),m=o.nameTable[u];m;m=m.name_next){var w=m.name;if(m.parent.id===i.id&&w===v)return m}return o.lookup(i,v)},createNode(i,v,B,u){var m=new o.FSNode(i,v,B,u);return o.hashAddNode(m),m},destroyNode(i){o.hashRemoveNode(i)},isRoot(i){return i===i.parent},isMountpoint(i){return!!i.mounted},isFile(i){return(i&61440)===32768},isDir(i){return(i&61440)===16384},isLink(i){return(i&61440)===40960},isChrdev(i){return(i&61440)===8192},isBlkdev(i){return(i&61440)===24576},isFIFO(i){return(i&61440)===4096},isSocket(i){return(i&49152)===49152},flagsToPermissionString(i){var v=["r","w","rw"][i&3];return i&512&&(v+="w"),v},nodePermissions(i,v){return o.ignorePermissions?0:v.includes("r")&&!(i.mode&292)||v.includes("w")&&!(i.mode&146)||v.includes("x")&&!(i.mode&73)?2:0},mayLookup(i){if(!o.isDir(i.mode))return 54;var v=o.nodePermissions(i,"x");return v||(i.node_ops.lookup?0:2)},mayCreate(i,v){if(!o.isDir(i.mode))return 54;try{var B=o.lookupNode(i,v);return 20}catch{}return o.nodePermissions(i,"wx")},mayDelete(i,v,B){var u;try{u=o.lookupNode(i,v)}catch(w){return w.errno}var m=o.nodePermissions(i,"wx");if(m)return m;if(B){if(!o.isDir(u.mode))return 54;if(o.isRoot(u)||o.getPath(u)===o.cwd())return 10}else if(o.isDir(u.mode))return 31;return 0},mayOpen(i,v){if(!i)return 44;if(o.isLink(i.mode))return 32;var B=o.flagsToPermissionString(v);return o.isDir(i.mode)&&(B!=="r"||v&576)?31:o.nodePermissions(i,B)},checkOpExists(i,v){if(!i)throw new o.ErrnoError(v);return i},MAX_OPEN_FDS:4096,nextfd(){for(var i=0;i<=o.MAX_OPEN_FDS;i++)if(!o.streams[i])return i;throw new o.ErrnoError(33)},getStreamChecked(i){var v=o.getStream(i);if(!v)throw new o.ErrnoError(8);return v},getStream:i=>o.streams[i],createStream(i,v=-1){return i=Object.assign(new o.FSStream,i),v==-1&&(v=o.nextfd()),i.fd=v,o.streams[v]=i,i},closeStream(i){o.streams[i]=null},dupStream(i,v=-1){var B=o.createStream(i,v);return B.stream_ops?.dup?.(B),B},doSetAttr(i,v,B){var u=i?.stream_ops.setattr,m=u?i:v;u??(u=v.node_ops.setattr),o.checkOpExists(u,63);try{u(m,B)}catch(w){throw w instanceof RangeError?new o.ErrnoError(22):w}},chrdev_stream_ops:{open(i){var v=o.getDevice(i.node.rdev);i.stream_ops=v.stream_ops,i.stream_ops.open?.(i)},llseek(){throw new o.ErrnoError(70)}},major:i=>i>>8,minor:i=>i&255,makedev:(i,v)=>i<<8|v,registerDevice(i,v){o.devices[i]={stream_ops:v}},getDevice:i=>o.devices[i],getMounts(i){for(var v=[],B=[i];B.length;){var u=B.pop();v.push(u),B.push(...u.mounts)}return v},syncfs(i,v){typeof i=="function"&&(v=i,i=!1),o.syncFSRequests++,o.syncFSRequests>1&&L(`warning: ${o.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var B=o.getMounts(o.root.mount),u=0;function m(K){return o.syncFSRequests--,v(K)}function w(K){if(K)return w.errored?void 0:(w.errored=!0,m(K));++u>=B.length&&m(null)}for(var I of B)I.type.syncfs?I.type.syncfs(I,i,w):w(null)},mount(i,v,B){var u=B==="/",m=!B,w;if(u&&o.root)throw new o.ErrnoError(10);if(!u&&!m){var I=o.lookupPath(B,{follow_mount:!1});if(B=I.path,w=I.node,o.isMountpoint(w))throw new o.ErrnoError(10);if(!o.isDir(w.mode))throw new o.ErrnoError(54)}var K={type:i,opts:v,mountpoint:B,mounts:[]},o0=i.mount(K);return o0.mount=K,K.root=o0,u?o.root=o0:w&&(w.mounted=K,w.mount&&w.mount.mounts.push(K)),o0},unmount(i){var v=o.lookupPath(i,{follow_mount:!1});if(!o.isMountpoint(v.node))throw new o.ErrnoError(28);var B=v.node,u=B.mounted,m=o.getMounts(u);for(var[w,I]of Object.entries(o.nameTable))for(;I;){var K=I.name_next;m.includes(I.mount)&&o.destroyNode(I),I=K}B.mounted=null;var o0=B.mount.mounts.indexOf(u);B.mount.mounts.splice(o0,1)},lookup(i,v){return i.node_ops.lookup(i,v)},mknod(i,v,B){var u=o.lookupPath(i,{parent:!0}),m=u.node,w=E0.basename(i);if(!w)throw new o.ErrnoError(28);if(w==="."||w==="..")throw new o.ErrnoError(20);var I=o.mayCreate(m,w);if(I)throw new o.ErrnoError(I);if(!m.node_ops.mknod)throw new o.ErrnoError(63);return m.node_ops.mknod(m,w,v,B)},statfs(i){return o.statfsNode(o.lookupPath(i,{follow:!0}).node)},statfsStream(i){return o.statfsNode(i.node)},statfsNode(i){var v={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:o.nextInode,ffree:o.nextInode-1,fsid:42,flags:2,namelen:255};return i.node_ops.statfs&&Object.assign(v,i.node_ops.statfs(i.mount.opts.root)),v},create(i,v=438){return v&=4095,v|=32768,o.mknod(i,v,0)},mkdir(i,v=511){return v&=1023,v|=16384,o.mknod(i,v,0)},mkdirTree(i,v){var B=i.split("/"),u="";for(var m of B)if(m){(u||E0.isAbs(i))&&(u+="/"),u+=m;try{o.mkdir(u,v)}catch(w){if(w.errno!=20)throw w}}},mkdev(i,v,B){return typeof B>"u"&&(B=v,v=438),v|=8192,o.mknod(i,v,B)},symlink(i,v){if(!fx.resolve(i))throw new o.ErrnoError(44);var B=o.lookupPath(v,{parent:!0}),u=B.node;if(!u)throw new o.ErrnoError(44);var m=E0.basename(v),w=o.mayCreate(u,m);if(w)throw new o.ErrnoError(w);if(!u.node_ops.symlink)throw new o.ErrnoError(63);return u.node_ops.symlink(u,m,i)},rename(i,v){var B=E0.dirname(i),u=E0.dirname(v),m=E0.basename(i),w=E0.basename(v),I,K,o0;if(I=o.lookupPath(i,{parent:!0}),K=I.node,I=o.lookupPath(v,{parent:!0}),o0=I.node,!K||!o0)throw new o.ErrnoError(44);if(K.mount!==o0.mount)throw new o.ErrnoError(75);var _0=o.lookupNode(K,m),X0=fx.relative(i,u);if(X0.charAt(0)!==".")throw new o.ErrnoError(28);if(X0=fx.relative(v,B),X0.charAt(0)!==".")throw new o.ErrnoError(55);var L0;try{L0=o.lookupNode(o0,w)}catch{}if(_0!==L0){var T0=o.isDir(_0.mode),h0=o.mayDelete(K,m,T0);if(h0)throw new o.ErrnoError(h0);if(h0=L0?o.mayDelete(o0,w,T0):o.mayCreate(o0,w),h0)throw new o.ErrnoError(h0);if(!K.node_ops.rename)throw new o.ErrnoError(63);if(o.isMountpoint(_0)||L0&&o.isMountpoint(L0))throw new o.ErrnoError(10);if(o0!==K&&(h0=o.nodePermissions(K,"w"),h0))throw new o.ErrnoError(h0);o.hashRemoveNode(_0);try{K.node_ops.rename(_0,o0,w),_0.parent=o0}catch(vx){throw vx}finally{o.hashAddNode(_0)}}},rmdir(i){var v=o.lookupPath(i,{parent:!0}),B=v.node,u=E0.basename(i),m=o.lookupNode(B,u),w=o.mayDelete(B,u,!0);if(w)throw new o.ErrnoError(w);if(!B.node_ops.rmdir)throw new o.ErrnoError(63);if(o.isMountpoint(m))throw new o.ErrnoError(10);B.node_ops.rmdir(B,u),o.destroyNode(m)},readdir(i){var v=o.lookupPath(i,{follow:!0}),B=v.node,u=o.checkOpExists(B.node_ops.readdir,54);return u(B)},unlink(i){var v=o.lookupPath(i,{parent:!0}),B=v.node;if(!B)throw new o.ErrnoError(44);var u=E0.basename(i),m=o.lookupNode(B,u),w=o.mayDelete(B,u,!1);if(w)throw new o.ErrnoError(w);if(!B.node_ops.unlink)throw new o.ErrnoError(63);if(o.isMountpoint(m))throw new o.ErrnoError(10);B.node_ops.unlink(B,u),o.destroyNode(m)},readlink(i){var v=o.lookupPath(i),B=v.node;if(!B)throw new o.ErrnoError(44);if(!B.node_ops.readlink)throw new o.ErrnoError(28);return B.node_ops.readlink(B)},stat(i,v){var B=o.lookupPath(i,{follow:!v}),u=B.node,m=o.checkOpExists(u.node_ops.getattr,63);return m(u)},fstat(i){var v=o.getStreamChecked(i),B=v.node,u=v.stream_ops.getattr,m=u?v:B;return u??(u=B.node_ops.getattr),o.checkOpExists(u,63),u(m)},lstat(i){return o.stat(i,!0)},doChmod(i,v,B,u){o.doSetAttr(i,v,{mode:B&4095|v.mode&-4096,ctime:Date.now(),dontFollow:u})},chmod(i,v,B){var u;if(typeof i=="string"){var m=o.lookupPath(i,{follow:!B});u=m.node}else u=i;o.doChmod(null,u,v,B)},lchmod(i,v){o.chmod(i,v,!0)},fchmod(i,v){var B=o.getStreamChecked(i);o.doChmod(B,B.node,v,!1)},doChown(i,v,B){o.doSetAttr(i,v,{timestamp:Date.now(),dontFollow:B})},chown(i,v,B,u){var m;if(typeof i=="string"){var w=o.lookupPath(i,{follow:!u});m=w.node}else m=i;o.doChown(null,m,u)},lchown(i,v,B){o.chown(i,v,B,!0)},fchown(i,v,B){var u=o.getStreamChecked(i);o.doChown(u,u.node,!1)},doTruncate(i,v,B){if(o.isDir(v.mode))throw new o.ErrnoError(31);if(!o.isFile(v.mode))throw new o.ErrnoError(28);var u=o.nodePermissions(v,"w");if(u)throw new o.ErrnoError(u);o.doSetAttr(i,v,{size:B,timestamp:Date.now()})},truncate(i,v){if(v<0)throw new o.ErrnoError(28);var B;if(typeof i=="string"){var u=o.lookupPath(i,{follow:!0});B=u.node}else B=i;o.doTruncate(null,B,v)},ftruncate(i,v){var B=o.getStreamChecked(i);if(v<0||(B.flags&2097155)===0)throw new o.ErrnoError(28);o.doTruncate(B,B.node,v)},utime(i,v,B){var u=o.lookupPath(i,{follow:!0}),m=u.node,w=o.checkOpExists(m.node_ops.setattr,63);w(m,{atime:v,mtime:B})},open(i,v,B=438){if(i==="")throw new o.ErrnoError(44);v=SA(v),v&64?B=B&4095|32768:B=0;var u,m;if(typeof i=="object")u=i;else{m=i.endsWith("/");var w=o.lookupPath(i,{follow:!(v&131072),noent_okay:!0});u=w.node,i=w.path}var I=!1;if(v&64)if(u){if(v&128)throw new o.ErrnoError(20)}else{if(m)throw new o.ErrnoError(31);u=o.mknod(i,B|511,0),I=!0}if(!u)throw new o.ErrnoError(44);if(o.isChrdev(u.mode)&&(v&=-513),v&65536&&!o.isDir(u.mode))throw new o.ErrnoError(54);if(!I){var K=o.mayOpen(u,v);if(K)throw new o.ErrnoError(K)}v&512&&!I&&o.truncate(u,0),v&=-131713;var o0=o.createStream({node:u,path:o.getPath(u),flags:v,seekable:!0,position:0,stream_ops:u.stream_ops,ungotten:[],error:!1});return o0.stream_ops.open&&o0.stream_ops.open(o0),I&&o.chmod(u,B&511),o0},close(i){if(o.isClosed(i))throw new o.ErrnoError(8);i.getdents&&(i.getdents=null);try{i.stream_ops.close&&i.stream_ops.close(i)}catch(v){throw v}finally{o.closeStream(i.fd)}i.fd=null},isClosed(i){return i.fd===null},llseek(i,v,B){if(o.isClosed(i))throw new o.ErrnoError(8);if(!i.seekable||!i.stream_ops.llseek)throw new o.ErrnoError(70);if(B!=0&&B!=1&&B!=2)throw new o.ErrnoError(28);return i.position=i.stream_ops.llseek(i,v,B),i.ungotten=[],i.position},read(i,v,B,u,m){if(u<0||m<0)throw new o.ErrnoError(28);if(o.isClosed(i))throw new o.ErrnoError(8);if((i.flags&2097155)===1)throw new o.ErrnoError(8);if(o.isDir(i.node.mode))throw new o.ErrnoError(31);if(!i.stream_ops.read)throw new o.ErrnoError(28);var w=typeof m<"u";if(!w)m=i.position;else if(!i.seekable)throw new o.ErrnoError(70);var I=i.stream_ops.read(i,v,B,u,m);return w||(i.position+=I),I},write(i,v,B,u,m,w){if(u<0||m<0)throw new o.ErrnoError(28);if(o.isClosed(i))throw new o.ErrnoError(8);if((i.flags&2097155)===0)throw new o.ErrnoError(8);if(o.isDir(i.node.mode))throw new o.ErrnoError(31);if(!i.stream_ops.write)throw new o.ErrnoError(28);i.seekable&&i.flags&1024&&o.llseek(i,0,2);var I=typeof m<"u";if(!I)m=i.position;else if(!i.seekable)throw new o.ErrnoError(70);var K=i.stream_ops.write(i,v,B,u,m,w);return I||(i.position+=K),K},mmap(i,v,B,u,m){if((u&2)!==0&&(m&2)===0&&(i.flags&2097155)!==2)throw new o.ErrnoError(2);if((i.flags&2097155)===1)throw new o.ErrnoError(2);if(!i.stream_ops.mmap)throw new o.ErrnoError(43);if(!v)throw new o.ErrnoError(28);return i.stream_ops.mmap(i,v,B,u,m)},msync(i,v,B,u,m){return i.stream_ops.msync?i.stream_ops.msync(i,v,B,u,m):0},ioctl(i,v,B){if(!i.stream_ops.ioctl)throw new o.ErrnoError(59);return i.stream_ops.ioctl(i,v,B)},readFile(i,v={}){v.flags=v.flags||0,v.encoding=v.encoding||"binary",v.encoding!=="utf8"&&v.encoding!=="binary"&&d0(`Invalid encoding type "${v.encoding}"`);var B=o.open(i,v.flags),u=o.stat(i),m=u.size,w=new Uint8Array(m);return o.read(B,w,0,m,0),v.encoding==="utf8"&&(w=lA(w)),o.close(B),w},writeFile(i,v,B={}){B.flags=B.flags||577;var u=o.open(i,B.flags,B.mode);v=Kx(v),o.write(u,v,0,v.byteLength,void 0,B.canOwn),o.close(u)},cwd:()=>o.currentPath,chdir(i){var v=o.lookupPath(i,{follow:!0});if(v.node===null)throw new o.ErrnoError(44);if(!o.isDir(v.node.mode))throw new o.ErrnoError(54);var B=o.nodePermissions(v.node,"x");if(B)throw new o.ErrnoError(B);o.currentPath=v.path},createDefaultDirectories(){o.mkdir("/tmp"),o.mkdir("/home"),o.mkdir("/home/web_user")},createDefaultDevices(){o.mkdir("/dev"),o.registerDevice(o.makedev(1,3),{read:()=>0,write:(u,m,w,I,K)=>I,llseek:()=>0}),o.mkdev("/dev/null",o.makedev(1,3)),xx.register(o.makedev(5,0),xx.default_tty_ops),xx.register(o.makedev(6,0),xx.default_tty1_ops),o.mkdev("/dev/tty",o.makedev(5,0)),o.mkdev("/dev/tty1",o.makedev(6,0));var i=new Uint8Array(1024),v=0,B=()=>(v===0&&(be(i),v=i.byteLength),i[--v]);o.createDevice("/dev","random",B),o.createDevice("/dev","urandom",B),o.mkdir("/dev/shm"),o.mkdir("/dev/shm/tmp")},createSpecialDirectories(){o.mkdir("/proc");var i=o.mkdir("/proc/self");o.mkdir("/proc/self/fd"),o.mount({mount(){var v=o.createNode(i,"fd",16895,73);return v.stream_ops={llseek:t0.stream_ops.llseek},v.node_ops={lookup(B,u){var m=+u,w=o.getStreamChecked(m),I={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>w.path},id:m+1};return I.parent=I,I},readdir(){return Array.from(o.streams.entries()).filter(([B,u])=>u).map(([B,u])=>B.toString())}},v}},{},"/proc/self/fd")},createStandardStreams(i,v,B){i?o.createDevice("/dev","stdin",i):o.symlink("/dev/tty","/dev/stdin"),v?o.createDevice("/dev","stdout",null,v):o.symlink("/dev/tty","/dev/stdout"),B?o.createDevice("/dev","stderr",null,B):o.symlink("/dev/tty1","/dev/stderr");var u=o.open("/dev/stdin",0),m=o.open("/dev/stdout",1),w=o.open("/dev/stderr",1)},staticInit(){o.nameTable=new Array(4096),o.mount(t0,{},"/"),o.createDefaultDirectories(),o.createDefaultDevices(),o.createSpecialDirectories(),o.filesystems={MEMFS:t0,PROXYFS:y0}},init(i,v,B){o.initialized=!0,i??(i=n.stdin),v??(v=n.stdout),B??(B=n.stderr),o.createStandardStreams(i,v,B)},quit(){o.initialized=!1,b(0);for(var i of o.streams)i&&o.close(i)},findObject(i,v){var B=o.analyzePath(i,v);return B.exists?B.object:null},analyzePath(i,v){try{var B=o.lookupPath(i,{follow:!v});i=B.path}catch{}var u={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var B=o.lookupPath(i,{parent:!0});u.parentExists=!0,u.parentPath=B.path,u.parentObject=B.node,u.name=E0.basename(i),B=o.lookupPath(i,{follow:!v}),u.exists=!0,u.path=B.path,u.object=B.node,u.name=B.node.name,u.isRoot=B.path==="/"}catch(m){u.error=m.errno}return u},createPath(i,v,B,u){i=typeof i=="string"?i:o.getPath(i);for(var m=v.split("/").reverse();m.length;){var w=m.pop();if(w){var I=E0.join2(i,w);try{o.mkdir(I)}catch(K){if(K.errno!=20)throw K}i=I}}return I},createFile(i,v,B,u,m){var w=E0.join2(typeof i=="string"?i:o.getPath(i),v),I=tA(u,m);return o.create(w,I)},createDataFile(i,v,B,u,m,w){var I=v;i&&(i=typeof i=="string"?i:o.getPath(i),I=v?E0.join2(i,v):i);var K=tA(u,m),o0=o.create(I,K);if(B){B=Kx(B),o.chmod(o0,K|146);var _0=o.open(o0,577);o.write(_0,B,0,B.length,0,w),o.close(_0),o.chmod(o0,K)}},createDevice(i,v,B,u){var m,w=E0.join2(typeof i=="string"?i:o.getPath(i),v),I=tA(!!B,!!u);(m=o.createDevice).major??(m.major=64);var K=o.makedev(o.createDevice.major++,0);return o.registerDevice(K,{open(o0){o0.seekable=!1},close(o0){u?.buffer?.length&&u(10)},read(o0,_0,X0,L0,T0){for(var h0=0,vx=0;vx<L0;vx++){var gx;try{gx=B()}catch{throw new o.ErrnoError(29)}if(gx===void 0&&h0===0)throw new o.ErrnoError(6);if(gx==null)break;h0++,_0[X0+vx]=gx}return h0&&(o0.node.atime=Date.now()),h0},write(o0,_0,X0,L0,T0){for(var h0=0;h0<L0;h0++)try{u(_0[X0+h0])}catch{throw new o.ErrnoError(29)}return L0&&(o0.node.mtime=o0.node.ctime=Date.now()),h0}}),o.mkdev(w,I,K)},forceLoadFile(i){if(i.isDevice||i.isFolder||i.link||i.contents)return!0;if(globalThis.XMLHttpRequest)d0("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");else try{i.contents=S(i.url)}catch{throw new o.ErrnoError(29)}},createLazyFile(i,v,B,u,m){class w{constructor(){dx(this,"lengthKnown",!1),dx(this,"chunks",[])}get(T0){if(!(T0>this.length-1||T0<0)){var h0=T0%this.chunkSize,vx=T0/this.chunkSize|0;return this.getter(vx)[h0]}}setDataGetter(T0){this.getter=T0}cacheLength(){var T0=new XMLHttpRequest;T0.open("HEAD",B,!1),T0.send(null),T0.status>=200&&T0.status<300||T0.status===304||d0("Couldn't load "+B+". Status: "+T0.status);var h0=Number(T0.getResponseHeader("Content-length")),vx,gx=(vx=T0.getResponseHeader("Accept-Ranges"))&&vx==="bytes",Ox=(vx=T0.getResponseHeader("Content-Encoding"))&&vx==="gzip",Jx=1024*1024;gx||(Jx=h0);var Vx=(nA,fe)=>{nA>fe&&d0("invalid range ("+nA+", "+fe+") or no bytes requested!"),fe>h0-1&&d0("only "+h0+" bytes available! programmer error!");var bx=new XMLHttpRequest;return bx.open("GET",B,!1),h0!==Jx&&bx.setRequestHeader("Range","bytes="+nA+"-"+fe),bx.responseType="arraybuffer",bx.overrideMimeType&&bx.overrideMimeType("text/plain; charset=x-user-defined"),bx.send(null),bx.status>=200&&bx.status<300||bx.status===304||d0("Couldn't load "+B+". Status: "+bx.status),bx.response!==void 0?new Uint8Array(bx.response||[]):HA(bx.responseText||"",!0)},Se=this;Se.setDataGetter(nA=>{var fe=nA*Jx,bx=(nA+1)*Jx-1;return bx=Math.min(bx,h0-1),typeof Se.chunks[nA]>"u"&&(Se.chunks[nA]=Vx(fe,bx)),typeof Se.chunks[nA]>"u"&&d0("doXHR failed!"),Se.chunks[nA]}),(Ox||!h0)&&(Jx=h0=1,h0=this.getter(0).length,Jx=h0,N("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=h0,this._chunkSize=Jx,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(globalThis.XMLHttpRequest){f||d0("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var I=new w,K={isDevice:!1,contents:I}}else var K={isDevice:!1,url:B};var o0=o.createFile(i,v,K,u,m);K.contents?o0.contents=K.contents:K.url&&(o0.contents=null,o0.url=K.url),Object.defineProperties(o0,{usedBytes:{get:function(){return this.contents.length}}});var _0={};for(let[L0,T0]of Object.entries(o0.stream_ops))_0[L0]=(...h0)=>(o.forceLoadFile(o0),T0(...h0));function X0(L0,T0,h0,vx,gx){var Ox=L0.node.contents;if(gx>=Ox.length)return 0;var Jx=Math.min(Ox.length-gx,vx);if(Ox.slice)for(var Vx=0;Vx<Jx;Vx++)T0[h0+Vx]=Ox[gx+Vx];else for(var Vx=0;Vx<Jx;Vx++)T0[h0+Vx]=Ox.get(gx+Vx);return Jx}return _0.read=(L0,T0,h0,vx,gx)=>(o.forceLoadFile(o0),X0(L0,T0,h0,vx,gx)),_0.mmap=(L0,T0,h0,vx,gx)=>{o.forceLoadFile(o0);var Ox=wA(T0);if(!Ox)throw new o.ErrnoError(48);return X0(L0,ix,Ox,T0,h0),{ptr:Ox,allocated:!0}},o0.stream_ops=_0,o0}},k0={currentUmask:18,calculateAt(i,v,B){if(E0.isAbs(v))return v;var u;if(i===-100)u=o.cwd();else{var m=k0.getStreamFromFD(i);u=m.path}if(v.length==0){if(!B)throw new o.ErrnoError(44);return u}return u+"/"+v},writeStat(i,v){f0[i>>2]=v.dev,f0[i+4>>2]=v.mode,f0[i+8>>2]=v.nlink,f0[i+12>>2]=v.uid,f0[i+16>>2]=v.gid,f0[i+20>>2]=v.rdev,H0[i+24>>3]=BigInt(v.size),O0[i+32>>2]=4096,O0[i+36>>2]=v.blocks;var B=v.atime.getTime(),u=v.mtime.getTime(),m=v.ctime.getTime();return H0[i+40>>3]=BigInt(Math.floor(B/1e3)),f0[i+48>>2]=B%1e3*1e3*1e3,H0[i+56>>3]=BigInt(Math.floor(u/1e3)),f0[i+64>>2]=u%1e3*1e3*1e3,H0[i+72>>3]=BigInt(Math.floor(m/1e3)),f0[i+80>>2]=m%1e3*1e3*1e3,H0[i+88>>3]=BigInt(v.ino),0},writeStatFs(i,v){f0[i+4>>2]=v.bsize,f0[i+60>>2]=v.bsize,H0[i+8>>3]=BigInt(v.blocks),H0[i+16>>3]=BigInt(v.bfree),H0[i+24>>3]=BigInt(v.bavail),H0[i+32>>3]=BigInt(v.files),H0[i+40>>3]=BigInt(v.ffree),f0[i+48>>2]=v.fsid,f0[i+64>>2]=v.flags,f0[i+56>>2]=v.namelen},doMsync(i,v,B,u,m){if(!o.isFile(v.node.mode))throw new o.ErrnoError(43);if(u&2)return 0;var w=AA.slice(i,i+B);o.msync(v,w,m,B,u)},getStreamFromFD(i){var v=o.getStreamChecked(i);return v},varargs:void 0,getStr(i){var v=rA(i);return v}};function ge(i,v,B,u){try{if(v=k0.getStr(v),v=k0.calculateAt(i,v),B&-8)return-28;var m=o.lookupPath(v,{follow:!0}),w=m.node;if(!w)return-44;var I="";return B&4&&(I+="r"),B&2&&(I+="w"),B&1&&(I+="x"),I&&o.nodePermissions(w,I)?-2:0}catch(K){if(typeof o>"u"||K.name!=="ErrnoError")throw K;return-K.errno}}var qA=()=>{var i=O0[+k0.varargs>>2];return k0.varargs+=4,i},CA=qA;function qr(i,v,B){k0.varargs=B;try{var u=k0.getStreamFromFD(i);switch(v){case 0:{var m=qA();if(m<0)return-28;for(;o.streams[m];)m++;var w;return w=o.dupStream(u,m),w.fd}case 1:case 2:return 0;case 3:return u.flags;case 4:{var m=qA(),I=289792;return u.flags=u.flags&~I|m&I,0}case 12:{var m=CA(),K=0;return U0[m+K>>1]=2,0}case 13:case 14:return 0}return-28}catch(o0){if(typeof o>"u"||o0.name!=="ErrnoError")throw o0;return-o0.errno}}var ie=(i,v,B)=>me(i,AA,v,B);function Qe(i,v){try{if(v===0)return-28;var B=o.cwd(),u=UA(B)+1;return v<u?-68:(ie(B,i,v),u)}catch(m){if(typeof o>"u"||m.name!=="ErrnoError")throw m;return-m.errno}}function Ze(i,v,B){k0.varargs=B;try{var u=k0.getStreamFromFD(i);switch(v){case 21509:return u.tty?0:-59;case 21505:{if(!u.tty)return-59;if(u.tty.ops.ioctl_tcgets){var m=u.tty.ops.ioctl_tcgets(u),w=CA();O0[w>>2]=m.c_iflag||0,O0[w+4>>2]=m.c_oflag||0,O0[w+8>>2]=m.c_cflag||0,O0[w+12>>2]=m.c_lflag||0;for(var I=0;I<32;I++)ix[w+I+17]=m.c_cc[I]||0;return 0}return 0}case 21510:case 21511:case 21512:return u.tty?0:-59;case 21506:case 21507:case 21508:{if(!u.tty)return-59;if(u.tty.ops.ioctl_tcsets){for(var w=CA(),K=O0[w>>2],o0=O0[w+4>>2],_0=O0[w+8>>2],X0=O0[w+12>>2],L0=[],I=0;I<32;I++)L0.push(ix[w+I+17]);return u.tty.ops.ioctl_tcsets(u.tty,v,{c_iflag:K,c_oflag:o0,c_cflag:_0,c_lflag:X0,c_cc:L0})}return 0}case 21519:{if(!u.tty)return-59;var w=CA();return O0[w>>2]=0,0}case 21520:return u.tty?-28:-59;case 21537:case 21531:{var w=CA();return o.ioctl(u,v,w)}case 21523:{if(!u.tty)return-59;if(u.tty.ops.ioctl_tiocgwinsz){var T0=u.tty.ops.ioctl_tiocgwinsz(u.tty),w=CA();U0[w>>1]=T0[0],U0[w+2>>1]=T0[1]}return 0}case 21524:return u.tty?0:-59;case 21515:return u.tty?0:-59;default:return-28}}catch(h0){if(typeof o>"u"||h0.name!=="ErrnoError")throw h0;return-h0.errno}}function Pr(i,v,B,u){k0.varargs=u;try{v=k0.getStr(v),v=k0.calculateAt(i,v);var m=u?qA():0;return B&64&&(m&=~k0.currentUmask),o.open(v,B,m).fd}catch(w){if(typeof o>"u"||w.name!=="ErrnoError")throw w;return-w.errno}}function Tr(i,v,B,u){try{if(v=k0.getStr(v),v=k0.calculateAt(i,v),u<=0)return-28;var m=o.readlink(v),w=Math.min(u,UA(m)),I=ix[B+w];return ie(m,B,u+1),ix[B+w]=I,w}catch(K){if(typeof o>"u"||K.name!=="ErrnoError")throw K;return-K.errno}}function Nr(i,v,B,u){try{return v=k0.getStr(v),u=k0.getStr(u),v=k0.calculateAt(i,v),u=k0.calculateAt(B,u),o.rename(v,u),0}catch(m){if(typeof o>"u"||m.name!=="ErrnoError")throw m;return-m.errno}}function ae(i){try{return i=k0.getStr(i),o.rmdir(i),0}catch(v){if(typeof o>"u"||v.name!=="ErrnoError")throw v;return-v.errno}}function xr(i,v,B){try{if(v=k0.getStr(v),v=k0.calculateAt(i,v),!B)o.unlink(v);else if(B===512)o.rmdir(v);else return-28;return 0}catch(u){if(typeof o>"u"||u.name!=="ErrnoError")throw u;return-u.errno}}var zA=()=>{throw new Y},oe=()=>performance.now(),Ir=()=>Date.now(),Ar=1,Mr=i=>i>=0&&i<=3,KA=9007199254740992,ye=-9007199254740992,er=i=>i<ye||i>KA?NaN:Number(i);function rr(i,v,B){if(v=er(v),!Mr(i))return 28;var u;if(i===0)u=Ir();else if(Ar)u=oe();else return 52;var m=Math.round(u*1e3*1e3);return H0[B>>3]=BigInt(m),0}var Lr=()=>2147483648,tr=(i,v)=>Math.ceil(i/v)*v,Rr=i=>{var v=N0.buffer.byteLength,B=(i-v+65535)/65536|0;try{return N0.grow(B),Z(),1}catch{}},Or=i=>{var v=AA.length;i>>>=0;var B=Lr();if(i>B)return!1;for(var u=1;u<=4;u*=2){var m=v*(1+.2/u);m=Math.min(m,i+100663296);var w=Math.min(B,tr(Math.max(i,m),65536)),I=Rr(w);if(I)return!0}return!1};function Fe(i){try{var v=k0.getStreamFromFD(i);return o.close(v),0}catch(B){if(typeof o>"u"||B.name!=="ErrnoError")throw B;return B.errno}}var Gr=(i,v,B,u)=>{for(var m=0,w=0;w<B;w++){var I=f0[v>>2],K=f0[v+4>>2];v+=8;var o0=o.read(i,ix,I,K,u);if(o0<0)return-1;if(m+=o0,o0<K)break;typeof u<"u"&&(u+=o0)}return m};function Ur(i,v,B,u){try{var m=k0.getStreamFromFD(i),w=Gr(m,v,B);return f0[u>>2]=w,0}catch(I){if(typeof o>"u"||I.name!=="ErrnoError")throw I;return I.errno}}function nr(i,v,B,u){v=er(v);try{if(isNaN(v))return 22;var m=k0.getStreamFromFD(i);return o.llseek(m,v,B),H0[u>>3]=BigInt(m.position),m.getdents&&v===0&&B===0&&(m.getdents=null),0}catch(w){if(typeof o>"u"||w.name!=="ErrnoError")throw w;return w.errno}}var sr=(i,v,B,u)=>{for(var m=0,w=0;w<B;w++){var I=f0[v>>2],K=f0[v+4>>2];v+=8;var o0=o.write(i,ix,I,K,u);if(o0<0)return-1;if(m+=o0,o0<K)break;typeof u<"u"&&(u+=o0)}return m};function JA(i,v,B,u){try{var m=k0.getStreamFromFD(i),w=sr(m,v,B);return f0[u>>2]=w,0}catch(I){if(typeof o>"u"||I.name!=="ErrnoError")throw I;return I.errno}}var ir=0,VA=()=>ne||ir>0,ke=i=>{R=i,VA()||(n.onExit?.(i),s0=!0),j(i,new xA(i))},$x=(i,v)=>{R=i,VA()||v0(),ke(i)},Hr=i=>{if(i instanceof xA||i=="unwind")return R;j(1,i)},PA=i=>V(i),WA=i=>{var v=UA(i)+1,B=PA(v);return ie(i,B,v),B},_e=[],lx=i=>{var v=_e[i];return v||(_e[i]=v=S0.get(i)),v},ve=(...i)=>o.createPath(...i),XA=(...i)=>o.unlink(...i),a=(...i)=>o.createLazyFile(...i),E=(...i)=>o.createDevice(...i);if(o.createPreloadedFile=$r,o.preloadFile=$A,o.staticInit(),n.noExitRuntime&&(ne=n.noExitRuntime),n.preloadPlugins&&(se=n.preloadPlugins),n.print&&(N=n.print),n.printErr&&(L=n.printErr),n.wasmBinary&&(O=n.wasmBinary),n.arguments&&(D=n.arguments),n.thisProgram&&(p=n.thisProgram),n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()();n.callMain=dt,n.addRunDependency=Sx,n.removeRunDependency=he,n.FS_preloadFile=$A,n.FS_unlink=XA,n.FS_createPath=ve,n.FS_createDevice=E,n.FS=o,n.FS_createDataFile=je,n.FS_createLazyFile=a,n.PROXYFS=y0;var d,b,y,$,G,V,a0,D0,z0,N0,S0;function b0(i){d=n._main=i.__main_argc_argv,b=i.fflush,y=i.__funcs_on_exit,$=i.setThrew,G=i._emscripten_stack_restore,V=i._emscripten_stack_alloc,a0=i.emscripten_stack_get_current,D0=N0=i.memory,z0=S0=i.__indirect_function_table}var Ax={__assert_fail:_A,__syscall_faccessat:ge,__syscall_fcntl64:qr,__syscall_getcwd:Qe,__syscall_ioctl:Ze,__syscall_openat:Pr,__syscall_readlinkat:Tr,__syscall_renameat:Nr,__syscall_rmdir:ae,__syscall_unlinkat:xr,_emscripten_throw_longjmp:zA,clock_time_get:rr,emscripten_resize_heap:Or,fd_close:Fe,fd_read:Ur,fd_seek:nr,fd_write:JA,invoke_i:YA,invoke_ii:Ix,invoke_iii:Mx,invoke_iiid:jn,invoke_iiii:Rx,invoke_iiiii:ax,invoke_iiiiii:hn,invoke_iijii:bn,invoke_v:px,invoke_vi:mn,invoke_vii:qx,invoke_viii:Ct,invoke_viiii:dA,invoke_viiiii:Bt};function px(i){var v=g0();try{lx(i)()}catch(B){if(nx(v),!(B instanceof M))throw B;$(1,0)}}function qx(i,v,B){var u=g0();try{lx(i)(v,B)}catch(m){if(nx(u),!(m instanceof M))throw m;$(1,0)}}function Ix(i,v){var B=g0();try{return lx(i)(v)}catch(u){if(nx(B),!(u instanceof M))throw u;$(1,0)}}function Mx(i,v,B){var u=g0();try{return lx(i)(v,B)}catch(m){if(nx(u),!(m instanceof M))throw m;$(1,0)}}function YA(i){var v=g0();try{return lx(i)()}catch(B){if(nx(v),!(B instanceof M))throw B;$(1,0)}}function Rx(i,v,B,u){var m=g0();try{return lx(i)(v,B,u)}catch(w){if(nx(m),!(w instanceof M))throw w;$(1,0)}}function dA(i,v,B,u,m){var w=g0();try{lx(i)(v,B,u,m)}catch(I){if(nx(w),!(I instanceof M))throw I;$(1,0)}}function ax(i,v,B,u,m){var w=g0();try{return lx(i)(v,B,u,m)}catch(I){if(nx(w),!(I instanceof M))throw I;$(1,0)}}function Bt(i,v,B,u,m,w){var I=g0();try{lx(i)(v,B,u,m,w)}catch(K){if(nx(I),!(K instanceof M))throw K;$(1,0)}}function bn(i,v,B,u,m){var w=g0();try{return lx(i)(v,B,u,m)}catch(I){if(nx(w),!(I instanceof M))throw I;$(1,0)}}function mn(i,v){var B=g0();try{lx(i)(v)}catch(u){if(nx(B),!(u instanceof M))throw u;$(1,0)}}function Ct(i,v,B,u){var m=g0();try{lx(i)(v,B,u)}catch(w){if(nx(m),!(w instanceof M))throw w;$(1,0)}}function jn(i,v,B,u){var m=g0();try{return lx(i)(v,B,u)}catch(w){if(nx(m),!(w instanceof M))throw w;$(1,0)}}function hn(i,v,B,u,m,w){var I=g0();try{return lx(i)(v,B,u,m,w)}catch(K){if(nx(I),!(K instanceof M))throw K;$(1,0)}}function dt(i=[]){var v=d;i.unshift(p);var B=i.length,u=PA((B+1)*4),m=u;for(var w of i)f0[m>>2]=WA(w),m+=4;f0[m>>2]=0;try{var I=v(B,u);return $x(I,!0),I}catch(K){return Hr(K)}}function zr(i=D){if(Fx>0){p0=zr;return}if(n0(),Fx>0){p0=zr;return}function v(){if(n.calledRun=!0,!s0){U(),H?.(n),n.onRuntimeInitialized?.();var B=n.noInitialRun||!0;B||dt(i),B0()}}n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>n.setStatus(""),1),v()},1)):v()}var we;return we=await Z0(),zr(),i0?s=n:s=new Promise((i,v)=>{H=i,z=v}),s}})();typeof A=="object"&&typeof x=="object"?(x.exports=e,x.exports.default=e):typeof define=="function"&&define.amd&&define([],()=>e)}}),jE=pa({"wasm/bin/pawndbg.js"(A,x){"use strict";var e=(()=>{var r=globalThis.document?.currentScript?.src;return async function(t={}){var s,n=t,F=!!globalThis.window,f=!!globalThis.WorkerGlobalScope,c=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer",D=[],p="./this.program",j=(a,E)=>{throw E};typeof __filename<"u"?r=__filename:f&&(r=self.location.href);var _="",k,S;if(c){var P=require("fs");_=__dirname+"/",S=a=>{a=g(a)?new URL(a):a;var E=P.readFileSync(a);return E},k=async(a,E=!0)=>{a=g(a)?new URL(a):a;var d=P.readFileSync(a,E?void 0:"utf8");return d},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),D=process.argv.slice(2),j=(a,E)=>{throw process.exitCode=a,E}}else if(F||f){try{_=new URL(".",r).href}catch{}f&&(S=a=>{var E=new XMLHttpRequest;return E.open("GET",a,!1),E.responseType="arraybuffer",E.send(null),new Uint8Array(E.response)}),k=async a=>{if(g(a))return new Promise((d,b)=>{var y=new XMLHttpRequest;y.open("GET",a,!0),y.responseType="arraybuffer",y.onload=()=>{if(y.status==200||y.status==0&&y.response){d(y.response);return}b(y.status)},y.onerror=b,y.send(null)});var E=await fetch(a,{credentials:"same-origin"});if(E.ok)return E.arrayBuffer();throw new Error(E.status+" : "+E.url)}}var N=console.log.bind(console),L=console.error.bind(console),O,s0=!1,R,g=a=>a.startsWith("file://");class M{}class Y extends M{}function W(a){for(var E=0,d=a.length,b=new Uint8Array(d),y;E<d;++E)y=a.charCodeAt(E),b[E]=~y>>8&y;return b}var H,z,i0=!1,r0=!1;function Z(){var a=PA.buffer;ix=new Int8Array(a),U0=new Int16Array(a),AA=new Uint8Array(a),kr=new Uint16Array(a),O0=new Int32Array(a),f0=new Uint32Array(a),gr=new Float32Array(a),yr=new Float64Array(a),H0=new BigInt64Array(a),_r=new BigUint64Array(a)}function n0(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Ye(n.preRun.shift());yA(zx)}function U(){i0=!0,!n.noFSInit&&!o.initialized&&o.init(),xx.init(),XA.__wasm_call_ctors(),o.ignorePermissions=!1}function F0(){}function v0(){sr(),o.quit(),xx.shutdown(),r0=!0}function B0(){if(n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)Xe(n.postRun.shift());yA(kA)}function d0(a){n.onAbort?.(a),a=`Aborted(${a})`,L(a),s0=!0,a+=". Build with -sASSERTIONS for more info.";var E=new WebAssembly.RuntimeError(a);throw z?.(E),E}var q0;function M0(){return W(`\0asm\0\0\0\xB4\`\x7F\x7F\`\x7F\0\`\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\`\x7F\x7F\x7F\0\`\x7F~~~~\0\`\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\0\`\x7F~\x7F~\`\x7F\x7F\x7F\x7F\0\`\0\0\`\0\x7F\`\x7F~~\x7F\0\`\x7F|\x7F\x7F\x7F\x7F\x7F\`\x7F~\x7F\x7F\x7F\`\x7F\x7F|\0\`\x7F~\0\`\x7F|\`\x7F~~~\0\`\x7F~\`|\x7F|\`\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`~\x7F\x7F\`\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F~\0\`~~~~\x7F\`~~~\x7F\`\x7F|\0\xFD env\r__assert_fail\0 env__syscall_openat\0env__syscall_fcntl64\0env__syscall_ioctl\0wasi_snapshot_preview1\bfd_write\0wasi_snapshot_preview1\x07fd_read\0wasi_snapshot_preview1\bfd_close\0\0wasi_snapshot_preview1\x07fd_seek\0envemscripten_resize_heap\0\0VU
1163
1163
  
1164
1164
  \0\x07\v\v\0\b\0\0 \x07\0 \0\b\0\0\f\0\0\r\0\0\x07\0\f\x1B\x07\x07\f\0\v
1165
1165
  p\r\r\x07\x82\x80\x80\b\x7FA\x80\xAC\v\x07\xBD memory\0__wasm_call_ctors\0 __main_argc_argv\0
@@ -1523,24 +1523,24 @@ Usage: pawndbg -f <mapfile> [options]
1523
1523
  \v\f\r\x1B !"#\xFF\xFF\xFF\xFF\xFF\xFF
1524
1524
  \v\f\r\x1B !"#\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x07\0A\xC0\x1B\v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0A\xE4\x1B\v\x07\0A\xFC\x1B\v
1525
1525
  \0\0\0\0\0\0\xEC\0A\x94\v\0A\xA4\v\b\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0A\xE8\v \xD8\r\0\0\0\0\0\0\0A\xFC\v\b\0A\x94\v\0\0\0 \0\0\0\xF8\0\0\0\0A\xAC\v\0A\xBC\v\xFF\xFF\xFF\xFF
1526
- \0A\x80\v\vp\0\0D\0\0\0`)}function K0(A){return A}async function Nx(A){return A}async function Lx(A,o){try{var B=await Nx(A),D=await WebAssembly.instantiate(B,o);return D}catch(j){N(`failed to asynchronously prepare wasm: ${j}`),f0(j)}}async function Kx(A,o,B){return Lx(o,B)}function Q0(){var A={env:PA,wasi_snapshot_preview1:PA};return A}async function Gx(){function A(h,L){return AA=h.exports,ae(AA),z(),AA}function o(h){return A(h.instance)}var B=Q0();if(a.instantiateWasm)return new Promise((h,L)=>{a.instantiateWasm(B,(O,Z)=>{h(A(O,Z))})});l0??(l0=L0());var D=await Kx(M,l0,B),j=o(D);return j}class Vx{constructor(o){N0(this,"name","ExitStatus"),this.message=`Program terminated with exit(${o})`,this.status=o}}var yx,m0,h0,q0,mr,hr,gr,A0,kr,Cx,dA=A=>{for(;A.length>0;)A.shift()(a)},jA=[],yr=A=>jA.push(A),pA=[],wr=A=>pA.push(A),uA=!1,R0=globalThis.TextDecoder&&new TextDecoder,V0=(A,o,B,D)=>{var j=o+B;if(D)return j;for(;A[o]&&!(o>=j);)++o;return o},wx=(A,o=0,B,D)=>{var j=V0(A,o,B,D);if(j-o>16&&A.buffer&&R0)return R0.decode(A.subarray(o,j));for(var h="";o<j;){var L=A[o++];if(!(L&128)){h+=String.fromCharCode(L);continue}var O=A[o++]&63;if((L&224)==192){h+=String.fromCharCode((L&31)<<6|O);continue}var Z=A[o++]&63;if((L&240)==224?L=(L&15)<<12|O<<6|Z:L=(L&7)<<18|O<<12|Z<<6|A[o++]&63,L<65536)h+=String.fromCharCode(L);else{var v0=L-65536;h+=String.fromCharCode(55296|v0>>10,56320|v0&1023)}}return h},nA=(A,o,B)=>A?wx(Cx,A,o,B):"",Tx=(A,o,B,D)=>f0(`Assertion failed: ${nA(A)}, at: `+[o?nA(o):"unknown filename",B,D?nA(D):"unknown function"]),_x=()=>{var A=m0[+o0.varargs>>2];return o0.varargs+=4,A},Ix=_x,e0={isAbs:A=>A.charAt(0)==="/",splitPath:A=>{var o=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return o.exec(A).slice(1)},normalizeArray:(A,o)=>{for(var B=0,D=A.length-1;D>=0;D--){var j=A[D];j==="."?A.splice(D,1):j===".."?(A.splice(D,1),B++):B&&(A.splice(D,1),B--)}if(o)for(;B;B--)A.unshift("..");return A},normalize:A=>{var o=e0.isAbs(A),B=A.slice(-1)==="/";return A=e0.normalizeArray(A.split("/").filter(D=>!!D),!o).join("/"),!A&&!o&&(A="."),A&&B&&(A+="/"),(o?"/":"")+A},dirname:A=>{var o=e0.splitPath(A),B=o[0],D=o[1];return!B&&!D?".":(D&&(D=D.slice(0,-1)),B+D)},basename:A=>A&&A.match(/([^\/]+|\/)\/*$/)[1],join:(...A)=>e0.normalize(A.join("/")),join2:(A,o)=>e0.normalize(A+"/"+o)},_r=()=>{if(d){var A=require("crypto");return o=>A.randomFillSync(o)}return o=>(crypto.getRandomValues(o),0)},bA=A=>(bA=_r())(A),Ax={resolve:(...A)=>{for(var o="",B=!1,D=A.length-1;D>=-1&&!B;D--){var j=D>=0?A[D]:r.cwd();if(typeof j!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!j)return"";o=j+"/"+o,B=e0.isAbs(j)}return o=e0.normalizeArray(o.split("/").filter(h=>!!h),!B).join("/"),(B?"/":"")+o||"."},relative:(A,o)=>{A=Ax.resolve(A).slice(1),o=Ax.resolve(o).slice(1);function B(v0){for(var g0=0;g0<v0.length&&v0[g0]==="";g0++);for(var p0=v0.length-1;p0>=0&&v0[p0]==="";p0--);return g0>p0?[]:v0.slice(g0,p0-g0+1)}for(var D=B(A.split("/")),j=B(o.split("/")),h=Math.min(D.length,j.length),L=h,O=0;O<h;O++)if(D[O]!==j[O]){L=O;break}for(var Z=[],O=L;O<D.length;O++)Z.push("..");return Z=Z.concat(j.slice(L)),Z.join("/")}},Wx=[],Xx=A=>{for(var o=0,B=0;B<A.length;++B){var D=A.charCodeAt(B);D<=127?o++:D<=2047?o+=2:D>=55296&&D<=57343?(o+=4,++B):o+=3}return o},mA=(A,o,B,D)=>{if(!(D>0))return 0;for(var j=B,h=B+D-1,L=0;L<A.length;++L){var O=A.codePointAt(L);if(O<=127){if(B>=h)break;o[B++]=O}else if(O<=2047){if(B+1>=h)break;o[B++]=192|O>>6,o[B++]=128|O&63}else if(O<=65535){if(B+2>=h)break;o[B++]=224|O>>12,o[B++]=128|O>>6&63,o[B++]=128|O&63}else{if(B+3>=h)break;o[B++]=240|O>>18,o[B++]=128|O>>12&63,o[B++]=128|O>>6&63,o[B++]=128|O&63,L++}}return o[B]=0,B-j},Yx=(A,o,B)=>{var D=B>0?B:Xx(A)+1,j=new Array(D),h=mA(A,j,0,j.length);return o&&(j.length=h),j},$r=()=>{if(!Wx.length){var A=null;if(d){var o=256,B=Buffer.alloc(o),D=0,j=process.stdin.fd;try{D=$.readSync(j,B,0,o)}catch(h){if(h.toString().includes("EOF"))D=0;else throw h}D>0&&(A=B.slice(0,D).toString("utf-8"))}else globalThis.window?.prompt&&(A=window.prompt("Input: "),A!==null&&(A+=`
1527
- `));if(!A)return null;Wx=Yx(A,!0)}return Wx.shift()},G0={ttys:[],init(){},shutdown(){},register(A,o){G0.ttys[A]={input:[],output:[],ops:o},r.registerDevice(A,G0.stream_ops)},stream_ops:{open(A){var o=G0.ttys[A.node.rdev];if(!o)throw new r.ErrnoError(43);A.tty=o,A.seekable=!1},close(A){A.tty.ops.fsync(A.tty)},fsync(A){A.tty.ops.fsync(A.tty)},read(A,o,B,D,j){if(!A.tty||!A.tty.ops.get_char)throw new r.ErrnoError(60);for(var h=0,L=0;L<D;L++){var O;try{O=A.tty.ops.get_char(A.tty)}catch{throw new r.ErrnoError(29)}if(O===void 0&&h===0)throw new r.ErrnoError(6);if(O==null)break;h++,o[B+L]=O}return h&&(A.node.atime=Date.now()),h},write(A,o,B,D,j){if(!A.tty||!A.tty.ops.put_char)throw new r.ErrnoError(60);try{for(var h=0;h<D;h++)A.tty.ops.put_char(A.tty,o[B+h])}catch{throw new r.ErrnoError(29)}return D&&(A.node.mtime=A.node.ctime=Date.now()),h}},default_tty_ops:{get_char(A){return $r()},put_char(A,o){o===null||o===10?(P(wx(A.output)),A.output=[]):o!=0&&A.output.push(o)},fsync(A){A.output?.length>0&&(P(wx(A.output)),A.output=[])},ioctl_tcgets(A){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(A,o,B){return 0},ioctl_tiocgwinsz(A){return[24,80]}},default_tty1_ops:{put_char(A,o){o===null||o===10?(N(wx(A.output)),A.output=[]):o!=0&&A.output.push(o)},fsync(A){A.output?.length>0&&(N(wx(A.output)),A.output=[])}}},hA=A=>{f0()},V={ops_table:null,mount(A){return V.createNode(null,"/",16895,0)},createNode(A,o,B,D){if(r.isBlkdev(B)||r.isFIFO(B))throw new r.ErrnoError(63);V.ops_table||(V.ops_table={dir:{node:{getattr:V.node_ops.getattr,setattr:V.node_ops.setattr,lookup:V.node_ops.lookup,mknod:V.node_ops.mknod,rename:V.node_ops.rename,unlink:V.node_ops.unlink,rmdir:V.node_ops.rmdir,readdir:V.node_ops.readdir,symlink:V.node_ops.symlink},stream:{llseek:V.stream_ops.llseek}},file:{node:{getattr:V.node_ops.getattr,setattr:V.node_ops.setattr},stream:{llseek:V.stream_ops.llseek,read:V.stream_ops.read,write:V.stream_ops.write,mmap:V.stream_ops.mmap,msync:V.stream_ops.msync}},link:{node:{getattr:V.node_ops.getattr,setattr:V.node_ops.setattr,readlink:V.node_ops.readlink},stream:{}},chrdev:{node:{getattr:V.node_ops.getattr,setattr:V.node_ops.setattr},stream:r.chrdev_stream_ops}});var j=r.createNode(A,o,B,D);return r.isDir(j.mode)?(j.node_ops=V.ops_table.dir.node,j.stream_ops=V.ops_table.dir.stream,j.contents={}):r.isFile(j.mode)?(j.node_ops=V.ops_table.file.node,j.stream_ops=V.ops_table.file.stream,j.usedBytes=0,j.contents=V.emptyFileContents??(V.emptyFileContents=new Uint8Array(0))):r.isLink(j.mode)?(j.node_ops=V.ops_table.link.node,j.stream_ops=V.ops_table.link.stream):r.isChrdev(j.mode)&&(j.node_ops=V.ops_table.chrdev.node,j.stream_ops=V.ops_table.chrdev.stream),j.atime=j.mtime=j.ctime=Date.now(),A&&(A.contents[o]=j,A.atime=A.mtime=A.ctime=j.atime),j},getFileDataAsTypedArray(A){return A.contents.subarray(0,A.usedBytes)},expandFileStorage(A,o){var B=A.contents.length;if(!(B>=o)){var D=1024*1024;o=Math.max(o,B*(B<D?2:1.125)>>>0),B&&(o=Math.max(o,256));var j=V.getFileDataAsTypedArray(A);A.contents=new Uint8Array(o),A.contents.set(j)}},resizeFileStorage(A,o){if(A.usedBytes!=o){var B=A.contents;A.contents=new Uint8Array(o),A.contents.set(B.subarray(0,Math.min(o,A.usedBytes))),A.usedBytes=o}},node_ops:{getattr(A){var o={};return o.dev=r.isChrdev(A.mode)?A.id:1,o.ino=A.id,o.mode=A.mode,o.nlink=1,o.uid=0,o.gid=0,o.rdev=A.rdev,r.isDir(A.mode)?o.size=4096:r.isFile(A.mode)?o.size=A.usedBytes:r.isLink(A.mode)?o.size=A.link.length:o.size=0,o.atime=new Date(A.atime),o.mtime=new Date(A.mtime),o.ctime=new Date(A.ctime),o.blksize=4096,o.blocks=Math.ceil(o.size/o.blksize),o},setattr(A,o){for(let B of["mode","atime","mtime","ctime"])o[B]!=null&&(A[B]=o[B]);o.size!==void 0&&V.resizeFileStorage(A,o.size)},lookup(A,o){throw V.doesNotExistError||(V.doesNotExistError=new r.ErrnoError(44),V.doesNotExistError.stack="<generic error, no stack>"),V.doesNotExistError},mknod(A,o,B,D){return V.createNode(A,o,B,D)},rename(A,o,B){var D;try{D=r.lookupNode(o,B)}catch{}if(D){if(r.isDir(A.mode))for(var j in D.contents)throw new r.ErrnoError(55);r.hashRemoveNode(D)}delete A.parent.contents[A.name],o.contents[B]=A,A.name=B,o.ctime=o.mtime=A.parent.ctime=A.parent.mtime=Date.now()},unlink(A,o){delete A.contents[o],A.ctime=A.mtime=Date.now()},rmdir(A,o){var B=r.lookupNode(A,o);for(var D in B.contents)throw new r.ErrnoError(55);delete A.contents[o],A.ctime=A.mtime=Date.now()},readdir(A){return[".","..",...Object.keys(A.contents)]},symlink(A,o,B){var D=V.createNode(A,o,41471,0);return D.link=B,D},readlink(A){if(!r.isLink(A.mode))throw new r.ErrnoError(28);return A.link}},stream_ops:{read(A,o,B,D,j){var h=A.node.contents;if(j>=A.node.usedBytes)return 0;var L=Math.min(A.node.usedBytes-j,D);return o.set(h.subarray(j,j+L),B),L},write(A,o,B,D,j,h){if(o.buffer===q0.buffer&&(h=!1),!D)return 0;var L=A.node;return L.mtime=L.ctime=Date.now(),h?(L.contents=o.subarray(B,B+D),L.usedBytes=D):L.usedBytes===0&&j===0?(L.contents=o.slice(B,B+D),L.usedBytes=D):(V.expandFileStorage(L,j+D),L.contents.set(o.subarray(B,B+D),j),L.usedBytes=Math.max(L.usedBytes,j+D)),D},llseek(A,o,B){var D=o;if(B===1?D+=A.position:B===2&&r.isFile(A.node.mode)&&(D+=A.node.usedBytes),D<0)throw new r.ErrnoError(28);return D},mmap(A,o,B,D,j){if(!r.isFile(A.node.mode))throw new r.ErrnoError(43);var h,L,O=A.node.contents;if(!(j&2)&&O.buffer===q0.buffer)L=!1,h=O.byteOffset;else{if(L=!0,h=hA(o),!h)throw new r.ErrnoError(48);O&&((B>0||B+o<O.length)&&(O.subarray?O=O.subarray(B,B+o):O=Array.prototype.slice.call(O,B,B+o)),q0.set(O,h))}return{ptr:h,allocated:L}},msync(A,o,B,D,j){return V.stream_ops.write(A,o,0,D,B,!1),0}}},qr=A=>{if(typeof A!="string")return A;var o={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},B=o[A];if(typeof B>"u")throw new Error(`Unknown file open mode: ${A}`);return B},gA=A=>(typeof A=="string"&&(A=Yx(A,!0)),A.subarray||(A=new Uint8Array(A)),A),Zx=(A,o)=>{var B=0;return A&&(B|=365),o&&(B|=146),B},c0={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},B0={mount(A){return B0.createNode(null,"/",A.opts.fs.lstat(A.opts.root).mode,0)},createNode(A,o,B,D){if(!r.isDir(B)&&!r.isFile(B)&&!r.isLink(B))throw new r.ErrnoError(c0.EINVAL);var j=r.createNode(A,o,B);return j.node_ops=B0.node_ops,j.stream_ops=B0.stream_ops,j},realPath(A){for(var o=[];A.parent!==A;)o.push(A.name),A=A.parent;return o.push(A.mount.opts.root),o.reverse(),e0.join(...o)},node_ops:{getattr(A){var o=B0.realPath(A),B;try{B=A.mount.opts.fs.lstat(o)}catch(D){throw D.code?new r.ErrnoError(c0[D.code]):D}return{dev:B.dev,ino:B.ino,mode:B.mode,nlink:B.nlink,uid:B.uid,gid:B.gid,rdev:B.rdev,size:B.size,atime:B.atime,mtime:B.mtime,ctime:B.ctime,blksize:B.blksize,blocks:B.blocks}},setattr(A,o){var B=B0.realPath(A);try{if(o.mode!==void 0&&(A.mount.opts.fs.chmod(B,o.mode),A.mode=o.mode),o.atime||o.mtime){var D=new Date(o.atime||o.mtime),j=new Date(o.mtime||o.atime);A.mount.opts.fs.utime(B,D,j)}o.size!==void 0&&A.mount.opts.fs.truncate(B,o.size)}catch(h){throw h.code?new r.ErrnoError(c0[h.code]):h}},lookup(A,o){try{var B=e0.join2(B0.realPath(A),o),D=A.mount.opts.fs.lstat(B).mode,j=B0.createNode(A,o,D);return j}catch(h){throw h.code?new r.ErrnoError(c0[h.code]):h}},mknod(A,o,B,D){var j=B0.createNode(A,o,B,D),h=B0.realPath(j);try{r.isDir(j.mode)?j.mount.opts.fs.mkdir(h,j.mode):j.mount.opts.fs.writeFile(h,"",{mode:j.mode})}catch(L){throw L.code?new r.ErrnoError(c0[L.code]):L}return j},rename(A,o,B){var D=B0.realPath(A),j=e0.join2(B0.realPath(o),B);try{A.mount.opts.fs.rename(D,j),A.name=B}catch(h){throw h.code?new r.ErrnoError(c0[h.code]):h}},unlink(A,o){var B=e0.join2(B0.realPath(A),o);try{A.mount.opts.fs.unlink(B)}catch(D){throw D.code?new r.ErrnoError(c0[D.code]):D}},rmdir(A,o){var B=e0.join2(B0.realPath(A),o);try{A.mount.opts.fs.rmdir(B)}catch(D){throw D.code?new r.ErrnoError(c0[D.code]):D}},readdir(A){var o=B0.realPath(A);try{return A.mount.opts.fs.readdir(o)}catch(B){throw B.code?new r.ErrnoError(c0[B.code]):B}},symlink(A,o,B){var D=e0.join2(B0.realPath(A),o);try{A.mount.opts.fs.symlink(B,D)}catch(j){throw j.code?new r.ErrnoError(c0[j.code]):j}},readlink(A){var o=B0.realPath(A);try{return A.mount.opts.fs.readlink(o)}catch(B){throw B.code?new r.ErrnoError(c0[B.code]):B}}},stream_ops:{open(A){var o=B0.realPath(A.node);try{A.nfd=A.node.mount.opts.fs.open(o,A.flags)}catch(B){throw B.code?new r.ErrnoError(c0[B.code]):B}},close(A){try{A.node.mount.opts.fs.close(A.nfd)}catch(o){throw o.code?new r.ErrnoError(c0[o.code]):o}},read(A,o,B,D,j){try{return A.node.mount.opts.fs.read(A.nfd,o,B,D,j)}catch(h){throw h.code?new r.ErrnoError(c0[h.code]):h}},write(A,o,B,D,j){try{return A.node.mount.opts.fs.write(A.nfd,o,B,D,j)}catch(h){throw h.code?new r.ErrnoError(c0[h.code]):h}},llseek(A,o,B){var D=o;if(B===1)D+=A.position;else if(B===2&&r.isFile(A.node.mode))try{var j=A.node.node_ops.getattr(A.node);D+=j.size}catch(h){throw new r.ErrnoError(c0[h.code])}if(D<0)throw new r.ErrnoError(c0.EINVAL);return D}}},Pr=async A=>{var o=await b(A);return new Uint8Array(o)},kA=(...A)=>r.createDataFile(...A),Nr=A=>A,Y0=0,fx=null,yA=A=>{if(Y0--,a.monitorRunDependencies?.(Y0),Y0==0&&fx){var o=fx;fx=null,o()}},wA=A=>{Y0++,a.monitorRunDependencies?.(Y0)},_A=[],Lr=async(A,o)=>{typeof Browser<"u"&&Browser.init();for(var B of _A)if(B.canHandle(o))return B.handle(A,o);return A},Qx=async(A,o,B,D,j,h,L,O)=>{var Z=o?Ax.resolve(e0.join2(A,o)):A,v0=Nr(`cp ${Z}`);wA(v0);try{var g0=B;typeof B=="string"&&(g0=await Pr(B)),g0=await Lr(g0,Z),O?.(),h||kA(A,o,g0,D,j,L)}finally{yA(v0)}},Gr=(A,o,B,D,j,h,L,O,Z,v0)=>{Qx(A,o,B,D,j,O,Z,v0).then(h).catch(L)},r={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,ErrnoError:class{constructor(A){N0(this,"name","ErrnoError"),this.errno=A}},FSStream:class{constructor(){N0(this,"shared",{})}get object(){return this.node}set object(A){this.node=A}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(A){this.shared.flags=A}get position(){return this.shared.position}set position(A){this.shared.position=A}},FSNode:class{constructor(A,o,B,D){N0(this,"node_ops",{}),N0(this,"stream_ops",{}),N0(this,"readMode",365),N0(this,"writeMode",146),N0(this,"mounted",null),A||(A=this),this.parent=A,this.mount=A.mount,this.id=r.nextInode++,this.name=o,this.mode=B,this.rdev=D,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(A){A?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(A){A?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return r.isDir(this.mode)}get isDevice(){return r.isChrdev(this.mode)}},lookupPath(A,o={}){if(!A)throw new r.ErrnoError(44);o.follow_mount??(o.follow_mount=!0),e0.isAbs(A)||(A=r.cwd()+"/"+A);x:for(var B=0;B<40;B++){for(var D=A.split("/").filter(v0=>!!v0),j=r.root,h="/",L=0;L<D.length;L++){var O=L===D.length-1;if(O&&o.parent)break;if(D[L]!=="."){if(D[L]===".."){if(h=e0.dirname(h),r.isRoot(j)){A=h+"/"+D.slice(L+1).join("/"),B--;continue x}else j=j.parent;continue}h=e0.join2(h,D[L]);try{j=r.lookupNode(j,D[L])}catch(v0){if(v0?.errno===44&&O&&o.noent_okay)return{path:h};throw v0}if(r.isMountpoint(j)&&(!O||o.follow_mount)&&(j=j.mounted.root),r.isLink(j.mode)&&(!O||o.follow)){if(!j.node_ops.readlink)throw new r.ErrnoError(52);var Z=j.node_ops.readlink(j);e0.isAbs(Z)||(Z=e0.dirname(h)+"/"+Z),A=Z+"/"+D.slice(L+1).join("/");continue x}}}return{path:h,node:j}}throw new r.ErrnoError(32)},getPath(A){for(var o;;){if(r.isRoot(A)){var B=A.mount.mountpoint;return o?B[B.length-1]!=="/"?`${B}/${o}`:B+o:B}o=o?`${A.name}/${o}`:A.name,A=A.parent}},hashName(A,o){for(var B=0,D=0;D<o.length;D++)B=(B<<5)-B+o.charCodeAt(D)|0;return(A+B>>>0)%r.nameTable.length},hashAddNode(A){var o=r.hashName(A.parent.id,A.name);A.name_next=r.nameTable[o],r.nameTable[o]=A},hashRemoveNode(A){var o=r.hashName(A.parent.id,A.name);if(r.nameTable[o]===A)r.nameTable[o]=A.name_next;else for(var B=r.nameTable[o];B;){if(B.name_next===A){B.name_next=A.name_next;break}B=B.name_next}},lookupNode(A,o){var B=r.mayLookup(A);if(B)throw new r.ErrnoError(B);for(var D=r.hashName(A.id,o),j=r.nameTable[D];j;j=j.name_next){var h=j.name;if(j.parent.id===A.id&&h===o)return j}return r.lookup(A,o)},createNode(A,o,B,D){var j=new r.FSNode(A,o,B,D);return r.hashAddNode(j),j},destroyNode(A){r.hashRemoveNode(A)},isRoot(A){return A===A.parent},isMountpoint(A){return!!A.mounted},isFile(A){return(A&61440)===32768},isDir(A){return(A&61440)===16384},isLink(A){return(A&61440)===40960},isChrdev(A){return(A&61440)===8192},isBlkdev(A){return(A&61440)===24576},isFIFO(A){return(A&61440)===4096},isSocket(A){return(A&49152)===49152},flagsToPermissionString(A){var o=["r","w","rw"][A&3];return A&512&&(o+="w"),o},nodePermissions(A,o){return r.ignorePermissions?0:o.includes("r")&&!(A.mode&292)||o.includes("w")&&!(A.mode&146)||o.includes("x")&&!(A.mode&73)?2:0},mayLookup(A){if(!r.isDir(A.mode))return 54;var o=r.nodePermissions(A,"x");return o||(A.node_ops.lookup?0:2)},mayCreate(A,o){if(!r.isDir(A.mode))return 54;try{var B=r.lookupNode(A,o);return 20}catch{}return r.nodePermissions(A,"wx")},mayDelete(A,o,B){var D;try{D=r.lookupNode(A,o)}catch(h){return h.errno}var j=r.nodePermissions(A,"wx");if(j)return j;if(B){if(!r.isDir(D.mode))return 54;if(r.isRoot(D)||r.getPath(D)===r.cwd())return 10}else if(r.isDir(D.mode))return 31;return 0},mayOpen(A,o){if(!A)return 44;if(r.isLink(A.mode))return 32;var B=r.flagsToPermissionString(o);return r.isDir(A.mode)&&(B!=="r"||o&576)?31:r.nodePermissions(A,B)},checkOpExists(A,o){if(!A)throw new r.ErrnoError(o);return A},MAX_OPEN_FDS:4096,nextfd(){for(var A=0;A<=r.MAX_OPEN_FDS;A++)if(!r.streams[A])return A;throw new r.ErrnoError(33)},getStreamChecked(A){var o=r.getStream(A);if(!o)throw new r.ErrnoError(8);return o},getStream:A=>r.streams[A],createStream(A,o=-1){return A=Object.assign(new r.FSStream,A),o==-1&&(o=r.nextfd()),A.fd=o,r.streams[o]=A,A},closeStream(A){r.streams[A]=null},dupStream(A,o=-1){var B=r.createStream(A,o);return B.stream_ops?.dup?.(B),B},doSetAttr(A,o,B){var D=A?.stream_ops.setattr,j=D?A:o;D??(D=o.node_ops.setattr),r.checkOpExists(D,63);try{D(j,B)}catch(h){throw h instanceof RangeError?new r.ErrnoError(22):h}},chrdev_stream_ops:{open(A){var o=r.getDevice(A.node.rdev);A.stream_ops=o.stream_ops,A.stream_ops.open?.(A)},llseek(){throw new r.ErrnoError(70)}},major:A=>A>>8,minor:A=>A&255,makedev:(A,o)=>A<<8|o,registerDevice(A,o){r.devices[A]={stream_ops:o}},getDevice:A=>r.devices[A],getMounts(A){for(var o=[],B=[A];B.length;){var D=B.pop();o.push(D),B.push(...D.mounts)}return o},syncfs(A,o){typeof A=="function"&&(o=A,A=!1),r.syncFSRequests++,r.syncFSRequests>1&&N(`warning: ${r.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var B=r.getMounts(r.root.mount),D=0;function j(O){return r.syncFSRequests--,o(O)}function h(O){if(O)return h.errored?void 0:(h.errored=!0,j(O));++D>=B.length&&j(null)}for(var L of B)L.type.syncfs?L.type.syncfs(L,A,h):h(null)},mount(A,o,B){var D=B==="/",j=!B,h;if(D&&r.root)throw new r.ErrnoError(10);if(!D&&!j){var L=r.lookupPath(B,{follow_mount:!1});if(B=L.path,h=L.node,r.isMountpoint(h))throw new r.ErrnoError(10);if(!r.isDir(h.mode))throw new r.ErrnoError(54)}var O={type:A,opts:o,mountpoint:B,mounts:[]},Z=A.mount(O);return Z.mount=O,O.root=Z,D?r.root=Z:h&&(h.mounted=O,h.mount&&h.mount.mounts.push(O)),Z},unmount(A){var o=r.lookupPath(A,{follow_mount:!1});if(!r.isMountpoint(o.node))throw new r.ErrnoError(28);var B=o.node,D=B.mounted,j=r.getMounts(D);for(var[h,L]of Object.entries(r.nameTable))for(;L;){var O=L.name_next;j.includes(L.mount)&&r.destroyNode(L),L=O}B.mounted=null;var Z=B.mount.mounts.indexOf(D);B.mount.mounts.splice(Z,1)},lookup(A,o){return A.node_ops.lookup(A,o)},mknod(A,o,B){var D=r.lookupPath(A,{parent:!0}),j=D.node,h=e0.basename(A);if(!h)throw new r.ErrnoError(28);if(h==="."||h==="..")throw new r.ErrnoError(20);var L=r.mayCreate(j,h);if(L)throw new r.ErrnoError(L);if(!j.node_ops.mknod)throw new r.ErrnoError(63);return j.node_ops.mknod(j,h,o,B)},statfs(A){return r.statfsNode(r.lookupPath(A,{follow:!0}).node)},statfsStream(A){return r.statfsNode(A.node)},statfsNode(A){var o={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:r.nextInode,ffree:r.nextInode-1,fsid:42,flags:2,namelen:255};return A.node_ops.statfs&&Object.assign(o,A.node_ops.statfs(A.mount.opts.root)),o},create(A,o=438){return o&=4095,o|=32768,r.mknod(A,o,0)},mkdir(A,o=511){return o&=1023,o|=16384,r.mknod(A,o,0)},mkdirTree(A,o){var B=A.split("/"),D="";for(var j of B)if(j){(D||e0.isAbs(A))&&(D+="/"),D+=j;try{r.mkdir(D,o)}catch(h){if(h.errno!=20)throw h}}},mkdev(A,o,B){return typeof B>"u"&&(B=o,o=438),o|=8192,r.mknod(A,o,B)},symlink(A,o){if(!Ax.resolve(A))throw new r.ErrnoError(44);var B=r.lookupPath(o,{parent:!0}),D=B.node;if(!D)throw new r.ErrnoError(44);var j=e0.basename(o),h=r.mayCreate(D,j);if(h)throw new r.ErrnoError(h);if(!D.node_ops.symlink)throw new r.ErrnoError(63);return D.node_ops.symlink(D,j,A)},rename(A,o){var B=e0.dirname(A),D=e0.dirname(o),j=e0.basename(A),h=e0.basename(o),L,O,Z;if(L=r.lookupPath(A,{parent:!0}),O=L.node,L=r.lookupPath(o,{parent:!0}),Z=L.node,!O||!Z)throw new r.ErrnoError(44);if(O.mount!==Z.mount)throw new r.ErrnoError(75);var v0=r.lookupNode(O,j),g0=Ax.relative(A,D);if(g0.charAt(0)!==".")throw new r.ErrnoError(28);if(g0=Ax.relative(o,B),g0.charAt(0)!==".")throw new r.ErrnoError(55);var p0;try{p0=r.lookupNode(Z,h)}catch{}if(v0!==p0){var D0=r.isDir(v0.mode),s0=r.mayDelete(O,j,D0);if(s0)throw new r.ErrnoError(s0);if(s0=p0?r.mayDelete(Z,h,D0):r.mayCreate(Z,h),s0)throw new r.ErrnoError(s0);if(!O.node_ops.rename)throw new r.ErrnoError(63);if(r.isMountpoint(v0)||p0&&r.isMountpoint(p0))throw new r.ErrnoError(10);if(Z!==O&&(s0=r.nodePermissions(O,"w"),s0))throw new r.ErrnoError(s0);r.hashRemoveNode(v0);try{O.node_ops.rename(v0,Z,h),v0.parent=Z}catch($0){throw $0}finally{r.hashAddNode(v0)}}},rmdir(A){var o=r.lookupPath(A,{parent:!0}),B=o.node,D=e0.basename(A),j=r.lookupNode(B,D),h=r.mayDelete(B,D,!0);if(h)throw new r.ErrnoError(h);if(!B.node_ops.rmdir)throw new r.ErrnoError(63);if(r.isMountpoint(j))throw new r.ErrnoError(10);B.node_ops.rmdir(B,D),r.destroyNode(j)},readdir(A){var o=r.lookupPath(A,{follow:!0}),B=o.node,D=r.checkOpExists(B.node_ops.readdir,54);return D(B)},unlink(A){var o=r.lookupPath(A,{parent:!0}),B=o.node;if(!B)throw new r.ErrnoError(44);var D=e0.basename(A),j=r.lookupNode(B,D),h=r.mayDelete(B,D,!1);if(h)throw new r.ErrnoError(h);if(!B.node_ops.unlink)throw new r.ErrnoError(63);if(r.isMountpoint(j))throw new r.ErrnoError(10);B.node_ops.unlink(B,D),r.destroyNode(j)},readlink(A){var o=r.lookupPath(A),B=o.node;if(!B)throw new r.ErrnoError(44);if(!B.node_ops.readlink)throw new r.ErrnoError(28);return B.node_ops.readlink(B)},stat(A,o){var B=r.lookupPath(A,{follow:!o}),D=B.node,j=r.checkOpExists(D.node_ops.getattr,63);return j(D)},fstat(A){var o=r.getStreamChecked(A),B=o.node,D=o.stream_ops.getattr,j=D?o:B;return D??(D=B.node_ops.getattr),r.checkOpExists(D,63),D(j)},lstat(A){return r.stat(A,!0)},doChmod(A,o,B,D){r.doSetAttr(A,o,{mode:B&4095|o.mode&-4096,ctime:Date.now(),dontFollow:D})},chmod(A,o,B){var D;if(typeof A=="string"){var j=r.lookupPath(A,{follow:!B});D=j.node}else D=A;r.doChmod(null,D,o,B)},lchmod(A,o){r.chmod(A,o,!0)},fchmod(A,o){var B=r.getStreamChecked(A);r.doChmod(B,B.node,o,!1)},doChown(A,o,B){r.doSetAttr(A,o,{timestamp:Date.now(),dontFollow:B})},chown(A,o,B,D){var j;if(typeof A=="string"){var h=r.lookupPath(A,{follow:!D});j=h.node}else j=A;r.doChown(null,j,D)},lchown(A,o,B){r.chown(A,o,B,!0)},fchown(A,o,B){var D=r.getStreamChecked(A);r.doChown(D,D.node,!1)},doTruncate(A,o,B){if(r.isDir(o.mode))throw new r.ErrnoError(31);if(!r.isFile(o.mode))throw new r.ErrnoError(28);var D=r.nodePermissions(o,"w");if(D)throw new r.ErrnoError(D);r.doSetAttr(A,o,{size:B,timestamp:Date.now()})},truncate(A,o){if(o<0)throw new r.ErrnoError(28);var B;if(typeof A=="string"){var D=r.lookupPath(A,{follow:!0});B=D.node}else B=A;r.doTruncate(null,B,o)},ftruncate(A,o){var B=r.getStreamChecked(A);if(o<0||(B.flags&2097155)===0)throw new r.ErrnoError(28);r.doTruncate(B,B.node,o)},utime(A,o,B){var D=r.lookupPath(A,{follow:!0}),j=D.node,h=r.checkOpExists(j.node_ops.setattr,63);h(j,{atime:o,mtime:B})},open(A,o,B=438){if(A==="")throw new r.ErrnoError(44);o=qr(o),o&64?B=B&4095|32768:B=0;var D,j;if(typeof A=="object")D=A;else{j=A.endsWith("/");var h=r.lookupPath(A,{follow:!(o&131072),noent_okay:!0});D=h.node,A=h.path}var L=!1;if(o&64)if(D){if(o&128)throw new r.ErrnoError(20)}else{if(j)throw new r.ErrnoError(31);D=r.mknod(A,B|511,0),L=!0}if(!D)throw new r.ErrnoError(44);if(r.isChrdev(D.mode)&&(o&=-513),o&65536&&!r.isDir(D.mode))throw new r.ErrnoError(54);if(!L){var O=r.mayOpen(D,o);if(O)throw new r.ErrnoError(O)}o&512&&!L&&r.truncate(D,0),o&=-131713;var Z=r.createStream({node:D,path:r.getPath(D),flags:o,seekable:!0,position:0,stream_ops:D.stream_ops,ungotten:[],error:!1});return Z.stream_ops.open&&Z.stream_ops.open(Z),L&&r.chmod(D,B&511),Z},close(A){if(r.isClosed(A))throw new r.ErrnoError(8);A.getdents&&(A.getdents=null);try{A.stream_ops.close&&A.stream_ops.close(A)}catch(o){throw o}finally{r.closeStream(A.fd)}A.fd=null},isClosed(A){return A.fd===null},llseek(A,o,B){if(r.isClosed(A))throw new r.ErrnoError(8);if(!A.seekable||!A.stream_ops.llseek)throw new r.ErrnoError(70);if(B!=0&&B!=1&&B!=2)throw new r.ErrnoError(28);return A.position=A.stream_ops.llseek(A,o,B),A.ungotten=[],A.position},read(A,o,B,D,j){if(D<0||j<0)throw new r.ErrnoError(28);if(r.isClosed(A))throw new r.ErrnoError(8);if((A.flags&2097155)===1)throw new r.ErrnoError(8);if(r.isDir(A.node.mode))throw new r.ErrnoError(31);if(!A.stream_ops.read)throw new r.ErrnoError(28);var h=typeof j<"u";if(!h)j=A.position;else if(!A.seekable)throw new r.ErrnoError(70);var L=A.stream_ops.read(A,o,B,D,j);return h||(A.position+=L),L},write(A,o,B,D,j,h){if(D<0||j<0)throw new r.ErrnoError(28);if(r.isClosed(A))throw new r.ErrnoError(8);if((A.flags&2097155)===0)throw new r.ErrnoError(8);if(r.isDir(A.node.mode))throw new r.ErrnoError(31);if(!A.stream_ops.write)throw new r.ErrnoError(28);A.seekable&&A.flags&1024&&r.llseek(A,0,2);var L=typeof j<"u";if(!L)j=A.position;else if(!A.seekable)throw new r.ErrnoError(70);var O=A.stream_ops.write(A,o,B,D,j,h);return L||(A.position+=O),O},mmap(A,o,B,D,j){if((D&2)!==0&&(j&2)===0&&(A.flags&2097155)!==2)throw new r.ErrnoError(2);if((A.flags&2097155)===1)throw new r.ErrnoError(2);if(!A.stream_ops.mmap)throw new r.ErrnoError(43);if(!o)throw new r.ErrnoError(28);return A.stream_ops.mmap(A,o,B,D,j)},msync(A,o,B,D,j){return A.stream_ops.msync?A.stream_ops.msync(A,o,B,D,j):0},ioctl(A,o,B){if(!A.stream_ops.ioctl)throw new r.ErrnoError(59);return A.stream_ops.ioctl(A,o,B)},readFile(A,o={}){o.flags=o.flags||0,o.encoding=o.encoding||"binary",o.encoding!=="utf8"&&o.encoding!=="binary"&&f0(`Invalid encoding type "${o.encoding}"`);var B=r.open(A,o.flags),D=r.stat(A),j=D.size,h=new Uint8Array(j);return r.read(B,h,0,j,0),o.encoding==="utf8"&&(h=wx(h)),r.close(B),h},writeFile(A,o,B={}){B.flags=B.flags||577;var D=r.open(A,B.flags,B.mode);o=gA(o),r.write(D,o,0,o.byteLength,void 0,B.canOwn),r.close(D)},cwd:()=>r.currentPath,chdir(A){var o=r.lookupPath(A,{follow:!0});if(o.node===null)throw new r.ErrnoError(44);if(!r.isDir(o.node.mode))throw new r.ErrnoError(54);var B=r.nodePermissions(o.node,"x");if(B)throw new r.ErrnoError(B);r.currentPath=o.path},createDefaultDirectories(){r.mkdir("/tmp"),r.mkdir("/home"),r.mkdir("/home/web_user")},createDefaultDevices(){r.mkdir("/dev"),r.registerDevice(r.makedev(1,3),{read:()=>0,write:(D,j,h,L,O)=>L,llseek:()=>0}),r.mkdev("/dev/null",r.makedev(1,3)),G0.register(r.makedev(5,0),G0.default_tty_ops),G0.register(r.makedev(6,0),G0.default_tty1_ops),r.mkdev("/dev/tty",r.makedev(5,0)),r.mkdev("/dev/tty1",r.makedev(6,0));var A=new Uint8Array(1024),o=0,B=()=>(o===0&&(bA(A),o=A.byteLength),A[--o]);r.createDevice("/dev","random",B),r.createDevice("/dev","urandom",B),r.mkdir("/dev/shm"),r.mkdir("/dev/shm/tmp")},createSpecialDirectories(){r.mkdir("/proc");var A=r.mkdir("/proc/self");r.mkdir("/proc/self/fd"),r.mount({mount(){var o=r.createNode(A,"fd",16895,73);return o.stream_ops={llseek:V.stream_ops.llseek},o.node_ops={lookup(B,D){var j=+D,h=r.getStreamChecked(j),L={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>h.path},id:j+1};return L.parent=L,L},readdir(){return Array.from(r.streams.entries()).filter(([B,D])=>D).map(([B,D])=>B.toString())}},o}},{},"/proc/self/fd")},createStandardStreams(A,o,B){A?r.createDevice("/dev","stdin",A):r.symlink("/dev/tty","/dev/stdin"),o?r.createDevice("/dev","stdout",null,o):r.symlink("/dev/tty","/dev/stdout"),B?r.createDevice("/dev","stderr",null,B):r.symlink("/dev/tty1","/dev/stderr");var D=r.open("/dev/stdin",0),j=r.open("/dev/stdout",1),h=r.open("/dev/stderr",1)},staticInit(){r.nameTable=new Array(4096),r.mount(V,{},"/"),r.createDefaultDirectories(),r.createDefaultDevices(),r.createSpecialDirectories(),r.filesystems={MEMFS:V,PROXYFS:B0}},init(A,o,B){r.initialized=!0,A??(A=a.stdin),o??(o=a.stdout),B??(B=a.stderr),r.createStandardStreams(A,o,B)},quit(){r.initialized=!1,er(0);for(var A of r.streams)A&&r.close(A)},findObject(A,o){var B=r.analyzePath(A,o);return B.exists?B.object:null},analyzePath(A,o){try{var B=r.lookupPath(A,{follow:!o});A=B.path}catch{}var D={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var B=r.lookupPath(A,{parent:!0});D.parentExists=!0,D.parentPath=B.path,D.parentObject=B.node,D.name=e0.basename(A),B=r.lookupPath(A,{follow:!o}),D.exists=!0,D.path=B.path,D.object=B.node,D.name=B.node.name,D.isRoot=B.path==="/"}catch(j){D.error=j.errno}return D},createPath(A,o,B,D){A=typeof A=="string"?A:r.getPath(A);for(var j=o.split("/").reverse();j.length;){var h=j.pop();if(h){var L=e0.join2(A,h);try{r.mkdir(L)}catch(O){if(O.errno!=20)throw O}A=L}}return L},createFile(A,o,B,D,j){var h=e0.join2(typeof A=="string"?A:r.getPath(A),o),L=Zx(D,j);return r.create(h,L)},createDataFile(A,o,B,D,j,h){var L=o;A&&(A=typeof A=="string"?A:r.getPath(A),L=o?e0.join2(A,o):A);var O=Zx(D,j),Z=r.create(L,O);if(B){B=gA(B),r.chmod(Z,O|146);var v0=r.open(Z,577);r.write(v0,B,0,B.length,0,h),r.close(v0),r.chmod(Z,O)}},createDevice(A,o,B,D){var j,h=e0.join2(typeof A=="string"?A:r.getPath(A),o),L=Zx(!!B,!!D);(j=r.createDevice).major??(j.major=64);var O=r.makedev(r.createDevice.major++,0);return r.registerDevice(O,{open(Z){Z.seekable=!1},close(Z){D?.buffer?.length&&D(10)},read(Z,v0,g0,p0,D0){for(var s0=0,$0=0;$0<p0;$0++){var U0;try{U0=B()}catch{throw new r.ErrnoError(29)}if(U0===void 0&&s0===0)throw new r.ErrnoError(6);if(U0==null)break;s0++,v0[g0+$0]=U0}return s0&&(Z.node.atime=Date.now()),s0},write(Z,v0,g0,p0,D0){for(var s0=0;s0<p0;s0++)try{D(v0[g0+s0])}catch{throw new r.ErrnoError(29)}return p0&&(Z.node.mtime=Z.node.ctime=Date.now()),s0}}),r.mkdev(h,L,O)},forceLoadFile(A){if(A.isDevice||A.isFolder||A.link||A.contents)return!0;if(globalThis.XMLHttpRequest)f0("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");else try{A.contents=y(A.url)}catch{throw new r.ErrnoError(29)}},createLazyFile(A,o,B,D,j){class h{constructor(){N0(this,"lengthKnown",!1),N0(this,"chunks",[])}get(D0){if(!(D0>this.length-1||D0<0)){var s0=D0%this.chunkSize,$0=D0/this.chunkSize|0;return this.getter($0)[s0]}}setDataGetter(D0){this.getter=D0}cacheLength(){var D0=new XMLHttpRequest;D0.open("HEAD",B,!1),D0.send(null),D0.status>=200&&D0.status<300||D0.status===304||f0("Couldn't load "+B+". Status: "+D0.status);var s0=Number(D0.getResponseHeader("Content-length")),$0,U0=($0=D0.getResponseHeader("Accept-Ranges"))&&$0==="bytes",xx=($0=D0.getResponseHeader("Content-Encoding"))&&$0==="gzip",rx=1024*1024;U0||(rx=s0);var ex=(ix,Sx)=>{ix>Sx&&f0("invalid range ("+ix+", "+Sx+") or no bytes requested!"),Sx>s0-1&&f0("only "+s0+" bytes available! programmer error!");var T0=new XMLHttpRequest;return T0.open("GET",B,!1),s0!==rx&&T0.setRequestHeader("Range","bytes="+ix+"-"+Sx),T0.responseType="arraybuffer",T0.overrideMimeType&&T0.overrideMimeType("text/plain; charset=x-user-defined"),T0.send(null),T0.status>=200&&T0.status<300||T0.status===304||f0("Couldn't load "+B+". Status: "+T0.status),T0.response!==void 0?new Uint8Array(T0.response||[]):Yx(T0.responseText||"",!0)},rA=this;rA.setDataGetter(ix=>{var Sx=ix*rx,T0=(ix+1)*rx-1;return T0=Math.min(T0,s0-1),typeof rA.chunks[ix]>"u"&&(rA.chunks[ix]=ex(Sx,T0)),typeof rA.chunks[ix]>"u"&&f0("doXHR failed!"),rA.chunks[ix]}),(xx||!s0)&&(rx=s0=1,s0=this.getter(0).length,rx=s0,P("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=s0,this._chunkSize=rx,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(globalThis.XMLHttpRequest){l||f0("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var L=new h,O={isDevice:!1,contents:L}}else var O={isDevice:!1,url:B};var Z=r.createFile(A,o,O,D,j);O.contents?Z.contents=O.contents:O.url&&(Z.contents=null,Z.url=O.url),Object.defineProperties(Z,{usedBytes:{get:function(){return this.contents.length}}});var v0={};for(let[p0,D0]of Object.entries(Z.stream_ops))v0[p0]=(...s0)=>(r.forceLoadFile(Z),D0(...s0));function g0(p0,D0,s0,$0,U0){var xx=p0.node.contents;if(U0>=xx.length)return 0;var rx=Math.min(xx.length-U0,$0);if(xx.slice)for(var ex=0;ex<rx;ex++)D0[s0+ex]=xx[U0+ex];else for(var ex=0;ex<rx;ex++)D0[s0+ex]=xx.get(U0+ex);return rx}return v0.read=(p0,D0,s0,$0,U0)=>(r.forceLoadFile(Z),g0(p0,D0,s0,$0,U0)),v0.mmap=(p0,D0,s0,$0,U0)=>{r.forceLoadFile(Z);var xx=hA(D0);if(!xx)throw new r.ErrnoError(48);return g0(p0,q0,xx,D0,s0),{ptr:xx,allocated:!0}},Z.stream_ops=v0,Z}},o0={currentUmask:18,calculateAt(A,o,B){if(e0.isAbs(o))return o;var D;if(A===-100)D=r.cwd();else{var j=o0.getStreamFromFD(A);D=j.path}if(o.length==0){if(!B)throw new r.ErrnoError(44);return D}return D+"/"+o},writeStat(A,o){A0[A>>2]=o.dev,A0[A+4>>2]=o.mode,A0[A+8>>2]=o.nlink,A0[A+12>>2]=o.uid,A0[A+16>>2]=o.gid,A0[A+20>>2]=o.rdev,h0[A+24>>3]=BigInt(o.size),m0[A+32>>2]=4096,m0[A+36>>2]=o.blocks;var B=o.atime.getTime(),D=o.mtime.getTime(),j=o.ctime.getTime();return h0[A+40>>3]=BigInt(Math.floor(B/1e3)),A0[A+48>>2]=B%1e3*1e3*1e3,h0[A+56>>3]=BigInt(Math.floor(D/1e3)),A0[A+64>>2]=D%1e3*1e3*1e3,h0[A+72>>3]=BigInt(Math.floor(j/1e3)),A0[A+80>>2]=j%1e3*1e3*1e3,h0[A+88>>3]=BigInt(o.ino),0},writeStatFs(A,o){A0[A+4>>2]=o.bsize,A0[A+60>>2]=o.bsize,h0[A+8>>3]=BigInt(o.blocks),h0[A+16>>3]=BigInt(o.bfree),h0[A+24>>3]=BigInt(o.bavail),h0[A+32>>3]=BigInt(o.files),h0[A+40>>3]=BigInt(o.ffree),A0[A+48>>2]=o.fsid,A0[A+64>>2]=o.flags,A0[A+56>>2]=o.namelen},doMsync(A,o,B,D,j){if(!r.isFile(o.node.mode))throw new r.ErrnoError(43);if(D&2)return 0;var h=Cx.slice(A,A+B);r.msync(o,h,j,B,D)},getStreamFromFD(A){var o=r.getStreamChecked(A);return o},varargs:void 0,getStr(A){var o=nA(A);return o}};function Tr(A,o,B){o0.varargs=B;try{var D=o0.getStreamFromFD(A);switch(o){case 0:{var j=_x();if(j<0)return-28;for(;r.streams[j];)j++;var h;return h=r.dupStream(D,j),h.fd}case 1:case 2:return 0;case 3:return D.flags;case 4:{var j=_x(),L=289792;return D.flags=D.flags&~L|j&L,0}case 12:{var j=Ix(),O=0;return yx[j+O>>1]=2,0}case 13:case 14:return 0}return-28}catch(Z){if(typeof r>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}function iA(A,o,B){o0.varargs=B;try{var D=o0.getStreamFromFD(A);switch(o){case 21509:return D.tty?0:-59;case 21505:{if(!D.tty)return-59;if(D.tty.ops.ioctl_tcgets){var j=D.tty.ops.ioctl_tcgets(D),h=Ix();m0[h>>2]=j.c_iflag||0,m0[h+4>>2]=j.c_oflag||0,m0[h+8>>2]=j.c_cflag||0,m0[h+12>>2]=j.c_lflag||0;for(var L=0;L<32;L++)q0[h+L+17]=j.c_cc[L]||0;return 0}return 0}case 21510:case 21511:case 21512:return D.tty?0:-59;case 21506:case 21507:case 21508:{if(!D.tty)return-59;if(D.tty.ops.ioctl_tcsets){for(var h=Ix(),O=m0[h>>2],Z=m0[h+4>>2],v0=m0[h+8>>2],g0=m0[h+12>>2],p0=[],L=0;L<32;L++)p0.push(q0[h+L+17]);return D.tty.ops.ioctl_tcsets(D.tty,o,{c_iflag:O,c_oflag:Z,c_cflag:v0,c_lflag:g0,c_cc:p0})}return 0}case 21519:{if(!D.tty)return-59;var h=Ix();return m0[h>>2]=0,0}case 21520:return D.tty?-28:-59;case 21537:case 21531:{var h=Ix();return r.ioctl(D,o,h)}case 21523:{if(!D.tty)return-59;if(D.tty.ops.ioctl_tiocgwinsz){var D0=D.tty.ops.ioctl_tiocgwinsz(D.tty),h=Ix();yx[h>>1]=D0[0],yx[h+2>>1]=D0[1]}return 0}case 21524:return D.tty?0:-59;case 21515:return D.tty?0:-59;default:return-28}}catch(s0){if(typeof r>"u"||s0.name!=="ErrnoError")throw s0;return-s0.errno}}function Mx(A,o,B,D){o0.varargs=D;try{o=o0.getStr(o),o=o0.calculateAt(A,o);var j=D?_x():0;return B&64&&(j&=~o0.currentUmask),r.open(o,B,j).fd}catch(h){if(typeof r>"u"||h.name!=="ErrnoError")throw h;return-h.errno}}var Ir=()=>2147483648,$A=(A,o)=>Math.ceil(A/o)*o,Mr=A=>{var o=xA.buffer.byteLength,B=(A-o+65535)/65536|0;try{return xA.grow(B),z(),1}catch{}},Sr=A=>{var o=Cx.length;A>>>=0;var B=Ir();if(A>B)return!1;for(var D=1;D<=4;D*=2){var j=o*(1+.2/D);j=Math.min(j,A+100663296);var h=Math.min(B,$A(Math.max(A,j),65536)),L=Mr(h);if(L)return!0}return!1};function Rr(A){try{var o=o0.getStreamFromFD(A);return r.close(o),0}catch(B){if(typeof r>"u"||B.name!=="ErrnoError")throw B;return B.errno}}var Or=(A,o,B,D)=>{for(var j=0,h=0;h<B;h++){var L=A0[o>>2],O=A0[o+4>>2];o+=8;var Z=r.read(A,q0,L,O,D);if(Z<0)return-1;if(j+=Z,Z<O)break;typeof D<"u"&&(D+=Z)}return j};function Ur(A,o,B,D){try{var j=o0.getStreamFromFD(A),h=Or(j,o,B);return A0[D>>2]=h,0}catch(L){if(typeof r>"u"||L.name!=="ErrnoError")throw L;return L.errno}}var Hr=9007199254740992,zr=-9007199254740992,Jr=A=>A<zr||A>Hr?NaN:Number(A);function Kr(A,o,B,D){o=Jr(o);try{if(isNaN(o))return 22;var j=o0.getStreamFromFD(A);return r.llseek(j,o,B),h0[D>>3]=BigInt(j.position),j.getdents&&o===0&&B===0&&(j.getdents=null),0}catch(h){if(typeof r>"u"||h.name!=="ErrnoError")throw h;return h.errno}}var Vr=(A,o,B,D)=>{for(var j=0,h=0;h<B;h++){var L=A0[o>>2],O=A0[o+4>>2];o+=8;var Z=r.write(A,q0,L,O,D);if(Z<0)return-1;if(j+=Z,Z<O)break;typeof D<"u"&&(D+=Z)}return j};function Wr(A,o,B,D){try{var j=o0.getStreamFromFD(A),h=Vr(j,o,B);return A0[D>>2]=h,0}catch(L){if(typeof r>"u"||L.name!=="ErrnoError")throw L;return L.errno}}var Xr=0,ZA=()=>uA||Xr>0,Yr=A=>{g=A,ZA()||(a.onExit?.(A),W=!0),k(A,new Vx(A))},QA=(A,o)=>{g=A,ZA()||t0(),Yr(A)},Zr=A=>{if(A instanceof Vx||A=="unwind")return g;k(1,A)},Qr=(A,o,B)=>mA(A,Cx,o,B),xr=A=>qA(A),xe=A=>{var o=Xx(A)+1,B=xr(o);return Qr(A,B,o),B},Ae=(...A)=>r.createPath(...A),re=(...A)=>r.unlink(...A),ee=(...A)=>r.createLazyFile(...A),te=(...A)=>r.createDevice(...A);if(r.createPreloadedFile=Gr,r.preloadFile=Qx,r.staticInit(),a.noExitRuntime&&(uA=a.noExitRuntime),a.preloadPlugins&&(_A=a.preloadPlugins),a.print&&(P=a.print),a.printErr&&(N=a.printErr),a.wasmBinary&&(M=a.wasmBinary),a.arguments&&(u=a.arguments),a.thisProgram&&(p=a.thisProgram),a.preInit)for(typeof a.preInit=="function"&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.shift()();a.callMain=O0,a.addRunDependency=wA,a.removeRunDependency=yA,a.FS_preloadFile=Qx,a.FS_unlink=re,a.FS_createPath=Ae,a.FS_createDevice=te,a.FS=r,a.FS_createDataFile=kA,a.FS_createLazyFile=ee,a.PROXYFS=B0;var Ar,rr,er,ne,qA,ie,Fe,se,xA;function ae(A){Ar=a._main=A.__main_argc_argv,rr=A.__funcs_on_exit,er=A.fflush,ne=A._emscripten_stack_restore,qA=A._emscripten_stack_alloc,ie=A.emscripten_stack_get_current,Fe=xA=A.memory,se=A.__indirect_function_table}var PA={__assert_fail:Tx,__syscall_fcntl64:Tr,__syscall_ioctl:iA,__syscall_openat:Mx,emscripten_resize_heap:Sr,fd_close:Rr,fd_read:Ur,fd_seek:Kr,fd_write:Wr};function O0(A=[]){var o=Ar;A.unshift(p);var B=A.length,D=xr((B+1)*4),j=D;for(var h of A)A0[j>>2]=xe(h),j+=4;A0[j>>2]=0;try{var L=o(B,D);return QA(L,!0),L}catch(O){return Zr(O)}}function NA(A=u){if(Y0>0){fx=NA;return}if(T(),Y0>0){fx=NA;return}function o(){if(a.calledRun=!0,!W){Q(),I?.(a),a.onRuntimeInitialized?.();var B=a.noInitialRun||!0;B||O0(A),n0()}}a.setStatus?(a.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>a.setStatus(""),1),o()},1)):o()}var AA;return AA=await Gx(),NA(),K?E=a:E=new Promise((A,o)=>{I=A,H=o}),E}})();typeof t=="object"&&typeof e=="object"?(e.exports=F,e.exports.default=F):typeof define=="function"&&define.amd&&define([],()=>F)}}),Ht={};kF(Ht,{createPawnCC:()=>PF,createPawnDbg:()=>NF});zt.exports=yF(Ht);var $F=Ut(wF(),1),qF=Ut(_F(),1),PF=$F.default,NF=qF.default});var Ss={};Gn(Ss,{APM:()=>F0,DDE:()=>Ex,DDE_Core:()=>u0,DFILES:()=>VA,DLO:()=>KA,DefaultFiles:()=>X,Dependencies:()=>_0,DeviceProfiles:()=>or,Diagnostics:()=>TA,ENV:()=>$e,Globals:()=>M0,Helper:()=>i0,HttpMethod:()=>Pe,Library:()=>eA,Log:()=>qe,Manifest:()=>R,MyDatanetClient:()=>br,Package:()=>X0,Registry:()=>y0,build:()=>Gs,buildDevelopmentInstallInfo:()=>bn,generateDevApmId:()=>Ne,install:()=>Ls,pack:()=>Ms,publish:()=>Is});module.exports=Tn(Ss);var S0=require("vscode-uri");var cA=require("vscode-uri");var In=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function nr(t,e=0){let F=~~e^-1;for(let i=0;i<t.length;i++)F=F>>>8^In[(F^t[i])&255];return(F^-1)>>>0}var Os=new Uint8Array([0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64]),Us=new Uint8Array([0,192,193,1,195,3,2,194,198,6,7,199,5,197,196,4,204,12,13,205,15,207,206,14,10,202,203,11,201,9,8,200,216,24,25,217,27,219,218,26,30,222,223,31,221,29,28,220,20,212,213,21,215,23,22,214,210,18,19,211,17,209,208,16,240,48,49,241,51,243,242,50,54,246,247,55,245,53,52,244,60,252,253,61,255,63,62,254,250,58,59,251,57,249,248,56,40,232,233,41,235,43,42,234,238,46,47,239,45,237,236,44,228,36,37,229,39,231,230,38,34,226,227,35,225,33,32,224,160,96,97,161,99,163,162,98,102,166,167,103,165,101,100,164,108,172,173,109,175,111,110,174,170,106,107,171,105,169,168,104,120,184,185,121,187,123,122,186,190,126,127,191,125,189,188,124,180,116,117,181,119,183,182,118,114,178,179,115,177,113,112,176,80,144,145,81,147,83,82,146,150,86,87,151,85,149,148,84,156,92,93,157,95,159,158,94,90,154,155,91,153,89,88,152,136,72,73,137,75,139,138,74,78,142,143,79,141,77,76,140,68,132,133,69,135,71,70,134,130,66,67,131,65,129,128,64]);var i0;(w=>{function t(b,y){let[$,P]=y,{line:N,col:M}=b.linePos($);return{line:Number(N)-1,startCharacter:M-1,endCharacter:M+(P-$)}}w.yamlRangeToLineInformation=t;let e=new TextEncoder;function F(b){return nr(e.encode(b)).toString(16)}w.generateHashForLibraryName=F;function i(b){return nr(e.encode(b)).toString(16)}w.generateHashForFilePath=i;function s(b){return nr(b).toString(16).toUpperCase().padStart(8,"0")}w.generateCRC32ForFileContent=s;function E(b){try{let y=null;return b?.type==="Buffer"?y=Uint8Array.from(b.data):y=b,new TextDecoder("utf8").decode(y)}catch{return""}}w.convertBlobToString=E;function a(b=""){return b.replace(/\r\n|\n\r|\r/g,`
1528
- `)}w.normalizeLF=a;function C(b){try{let y=E(b);return a(y).split(`
1529
- `)}catch{return[]}}w.convertBlobToStringArray=C,w.isNumeric=b=>!Array.isArray(b)&&b-parseFloat(b)+1>=0;function d(b){let y="",$=b.byteLength;for(let P=0;P<$;P++)y+=String.fromCharCode(b[P]);return btoa(y)}w.bufferToBase64=d;function u(b,y){let $=`${b}`.match(/\{\d*(index)(\+\d*)?}/g);if($){let P=b;return $.forEach(N=>{let M=N.replace(/\+0$/,""),W=M.match(/index/)?.[0];if(W){let g=M.slice(1,-1).split(W)[1],_=parseInt(g)||0;P=P.replace(N,`${y+_}`)}}),P}else return b}w.patchValueWithArrayInfo=u;let p={};function k(b,y,$){let P=p[b];P&&clearTimeout(P.timer),p[b]={timer:setTimeout(()=>{delete p[b],$()},y),handler:$}}w.defer=k})(i0||={});var vn=require("image-dimensions"),En=require("file-type-checker");var xa=require("cross-fetch/polyfill"),Je=z0(require("openapi-fetch"));var Rx=require("vscode-uri");var W0="dist/",Te="dde/",ve="dlo/",Ie=".studio/",Me="dfiles/",X;(C=>{C.fileNames={projectSettings:"studio.json",mainAmx:"main.amx",mainAmxReport:"main.xml",ddeXml:"dde.xml",ddeOpenApi:"main.yaml",historyJson:"history.json",mainDDE:"main.dde",autoInc:"auto.inc",defaultInc:"default.inc",autoUplinkInc:"app-uplink.inc",autoDdeInc:"X-dde.inc",mainDdeInc:"main-dde.inc",autoLocalDataInc:"auto-local-data.inc",legacyAutoInc:"legacy-auto.inc",legacyAutoDdeInc:"legacy-auto-dde.inc",legacyAutoUplinkInc:"legacy-auto-uplink.inc",reportTemplate:"mdn_report_template.json",dloCfg:"dlo.cfg"};let e=`${Ie}auto/`,F=`${e}dlo/`,i=`${e}dde/`;C.filePaths={studio:{initFile:`${e}.init`,auto:{path:e,dlo:{path:F,autoInc:`${F}${C.fileNames.autoInc}`,defaultInc:`${F}${C.fileNames.defaultInc}`,autoUplinkInc:`${F}${C.fileNames.autoUplinkInc}`,autoLocalDataInc:`${F}${C.fileNames.autoLocalDataInc}`,autoDdeInc:`${F}${C.fileNames.autoDdeInc}`,mainDdeInc:`${F}${C.fileNames.mainDdeInc}`,legacyAutoInc:`${F}${C.fileNames.legacyAutoInc}`,legacyAutoDdeInc:`${F}${C.fileNames.legacyAutoDdeInc}`,legacyAutoUplinkInc:`${F}${C.fileNames.legacyAutoUplinkInc}`,cfg:`${F}${C.fileNames.dloCfg}`},dde:{path:i,historyJson:`${i}${C.fileNames.historyJson}`}},libdeps:`${Ie}libdeps/`},dist:{path:W0,dloPath:`${W0}dlo/`,mainAmxPath:`${W0}dlo/${C.fileNames.mainAmx}`,mainAmxReportPath:`${W0}dlo/${C.fileNames.mainAmxReport}`,ddeXmlPath:`${W0}dde/${C.fileNames.ddeXml}`,ddeApiPath:`${W0}api/`,ddeApi:`${W0}api/${C.fileNames.ddeOpenApi}`,historyJson:`${W0}dde/${C.fileNames.historyJson}`,povPath:`${W0}pov`,povDetailsPath:`${W0}pov/details`,dfilesPath:`${W0}dfiles`,dfilesProperties:`${W0}dfiles/properties.json`,bloPath:`${W0}blo`,reportTemplate:`${W0}/${C.fileNames.reportTemplate}`,definesTs:`${W0}defines.ts`,definesAppTs:`${W0}defines.app.ts`},dlo:{path:ve,mainDLO:`${ve}main.dlo`,mainINI:`${ve}main.ini`},dde:{path:Te,mainDDE:`${Te}main.dde`},dfiles:{path:Me,mainDFILES:`${Me}/main.dfiles`},appIni:"app.ini",defaultsIni:"defaults.ini"},C.readme=l=>`# ${l} README
1526
+ \0A\x80\v\vp\0\0D\0\0\0`)}function ox(a){return a}async function Hx(a){return a}async function hA(a,E){try{var d=await Hx(a),b=await WebAssembly.instantiate(d,E);return b}catch(y){L(`failed to asynchronously prepare wasm: ${y}`),d0(y)}}async function gA(a,E,d){return hA(E,d)}function sx(){var a={env:_e,wasi_snapshot_preview1:_e};return a}async function Z0(){function a($,G){return XA=$.exports,WA(XA),Z(),XA}function E($){return a($.instance)}var d=sx();if(n.instantiateWasm)return new Promise(($,G)=>{n.instantiateWasm(d,(V,a0)=>{$(a(V,a0))})});q0??(q0=M0());var b=await gA(O,q0,d),y=E(b);return y}class xA{constructor(E){dx(this,"name","ExitStatus"),this.message=`Program terminated with exit(${E})`,this.status=E}}var U0,O0,H0,ix,gr,yr,kr,f0,_r,AA,yA=a=>{for(;a.length>0;)a.shift()(n)},kA=[],Xe=a=>kA.push(a),zx=[],Ye=a=>zx.push(a),ne=!1,nx=globalThis.TextDecoder&&new TextDecoder,g0=(a,E,d,b)=>{var y=E+d;if(b)return y;for(;a[E]&&!(E>=y);)++E;return E},eA=(a,E=0,d,b)=>{var y=g0(a,E,d,b);if(y-E>16&&a.buffer&&nx)return nx.decode(a.subarray(E,y));for(var $="";E<y;){var G=a[E++];if(!(G&128)){$+=String.fromCharCode(G);continue}var V=a[E++]&63;if((G&224)==192){$+=String.fromCharCode((G&31)<<6|V);continue}var a0=a[E++]&63;if((G&240)==224?G=(G&15)<<12|V<<6|a0:G=(G&7)<<18|V<<12|a0<<6|a[E++]&63,G<65536)$+=String.fromCharCode(G);else{var D0=G-65536;$+=String.fromCharCode(55296|D0>>10,56320|D0&1023)}}return $},ux=(a,E,d)=>a?eA(AA,a,E,d):"",lA=(a,E,d,b)=>d0(`Assertion failed: ${ux(a)}, at: `+[E?ux(E):"unknown filename",d,b?ux(b):"unknown function"]),rA=()=>{var a=O0[+k0.varargs>>2];return k0.varargs+=4,a},_A=rA,E0={isAbs:a=>a.charAt(0)==="/",splitPath:a=>{var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(a).slice(1)},normalizeArray:(a,E)=>{for(var d=0,b=a.length-1;b>=0;b--){var y=a[b];y==="."?a.splice(b,1):y===".."?(a.splice(b,1),d++):d&&(a.splice(b,1),d--)}if(E)for(;d;d--)a.unshift("..");return a},normalize:a=>{var E=E0.isAbs(a),d=a.slice(-1)==="/";return a=E0.normalizeArray(a.split("/").filter(b=>!!b),!E).join("/"),!a&&!E&&(a="."),a&&d&&(a+="/"),(E?"/":"")+a},dirname:a=>{var E=E0.splitPath(a),d=E[0],b=E[1];return!d&&!b?".":(b&&(b=b.slice(0,-1)),d+b)},basename:a=>a&&a.match(/([^\/]+|\/)\/*$/)[1],join:(...a)=>E0.normalize(a.join("/")),join2:(a,E)=>E0.normalize(a+"/"+E)},wr=()=>{if(c){var a=require("crypto");return E=>a.randomFillSync(E)}return E=>(crypto.getRandomValues(E),0)},be=a=>(be=wr())(a),fx={resolve:(...a)=>{for(var E="",d=!1,b=a.length-1;b>=-1&&!d;b--){var y=b>=0?a[b]:o.cwd();if(typeof y!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!y)return"";E=y+"/"+E,d=E0.isAbs(y)}return E=E0.normalizeArray(E.split("/").filter($=>!!$),!d).join("/"),(d?"/":"")+E||"."},relative:(a,E)=>{a=fx.resolve(a).slice(1),E=fx.resolve(E).slice(1);function d(D0){for(var z0=0;z0<D0.length&&D0[z0]==="";z0++);for(var N0=D0.length-1;N0>=0&&D0[N0]==="";N0--);return z0>N0?[]:D0.slice(z0,N0-z0+1)}for(var b=d(a.split("/")),y=d(E.split("/")),$=Math.min(b.length,y.length),G=$,V=0;V<$;V++)if(b[V]!==y[V]){G=V;break}for(var a0=[],V=G;V<b.length;V++)a0.push("..");return a0=a0.concat(y.slice(G)),a0.join("/")}},Lx=[],UA=a=>{for(var E=0,d=0;d<a.length;++d){var b=a.charCodeAt(d);b<=127?E++:b<=2047?E+=2:b>=55296&&b<=57343?(E+=4,++d):E+=3}return E},me=(a,E,d,b)=>{if(!(b>0))return 0;for(var y=d,$=d+b-1,G=0;G<a.length;++G){var V=a.codePointAt(G);if(V<=127){if(d>=$)break;E[d++]=V}else if(V<=2047){if(d+1>=$)break;E[d++]=192|V>>6,E[d++]=128|V&63}else if(V<=65535){if(d+2>=$)break;E[d++]=224|V>>12,E[d++]=128|V>>6&63,E[d++]=128|V&63}else{if(d+3>=$)break;E[d++]=240|V>>18,E[d++]=128|V>>12&63,E[d++]=128|V>>6&63,E[d++]=128|V&63,G++}}return E[d]=0,d-y},HA=(a,E,d)=>{var b=d>0?d:UA(a)+1,y=new Array(b),$=me(a,y,0,y.length);return E&&(y.length=$),y},Sr=()=>{if(!Lx.length){var a=null;if(c){var E=256,d=Buffer.alloc(E),b=0,y=process.stdin.fd;try{b=P.readSync(y,d,0,E)}catch($){if($.toString().includes("EOF"))b=0;else throw $}b>0&&(a=d.slice(0,b).toString("utf-8"))}else globalThis.window?.prompt&&(a=window.prompt("Input: "),a!==null&&(a+=`
1527
+ `));if(!a)return null;Lx=HA(a,!0)}return Lx.shift()},xx={ttys:[],init(){},shutdown(){},register(a,E){xx.ttys[a]={input:[],output:[],ops:E},o.registerDevice(a,xx.stream_ops)},stream_ops:{open(a){var E=xx.ttys[a.node.rdev];if(!E)throw new o.ErrnoError(43);a.tty=E,a.seekable=!1},close(a){a.tty.ops.fsync(a.tty)},fsync(a){a.tty.ops.fsync(a.tty)},read(a,E,d,b,y){if(!a.tty||!a.tty.ops.get_char)throw new o.ErrnoError(60);for(var $=0,G=0;G<b;G++){var V;try{V=a.tty.ops.get_char(a.tty)}catch{throw new o.ErrnoError(29)}if(V===void 0&&$===0)throw new o.ErrnoError(6);if(V==null)break;$++,E[d+G]=V}return $&&(a.node.atime=Date.now()),$},write(a,E,d,b,y){if(!a.tty||!a.tty.ops.put_char)throw new o.ErrnoError(60);try{for(var $=0;$<b;$++)a.tty.ops.put_char(a.tty,E[d+$])}catch{throw new o.ErrnoError(29)}return b&&(a.node.mtime=a.node.ctime=Date.now()),$}},default_tty_ops:{get_char(a){return Sr()},put_char(a,E){E===null||E===10?(N(eA(a.output)),a.output=[]):E!=0&&a.output.push(E)},fsync(a){a.output?.length>0&&(N(eA(a.output)),a.output=[])},ioctl_tcgets(a){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(a,E,d){return 0},ioctl_tiocgwinsz(a){return[24,80]}},default_tty1_ops:{put_char(a,E){E===null||E===10?(L(eA(a.output)),a.output=[]):E!=0&&a.output.push(E)},fsync(a){a.output?.length>0&&(L(eA(a.output)),a.output=[])}}},wA=a=>{d0()},t0={ops_table:null,mount(a){return t0.createNode(null,"/",16895,0)},createNode(a,E,d,b){if(o.isBlkdev(d)||o.isFIFO(d))throw new o.ErrnoError(63);t0.ops_table||(t0.ops_table={dir:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr,lookup:t0.node_ops.lookup,mknod:t0.node_ops.mknod,rename:t0.node_ops.rename,unlink:t0.node_ops.unlink,rmdir:t0.node_ops.rmdir,readdir:t0.node_ops.readdir,symlink:t0.node_ops.symlink},stream:{llseek:t0.stream_ops.llseek}},file:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr},stream:{llseek:t0.stream_ops.llseek,read:t0.stream_ops.read,write:t0.stream_ops.write,mmap:t0.stream_ops.mmap,msync:t0.stream_ops.msync}},link:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr,readlink:t0.node_ops.readlink},stream:{}},chrdev:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr},stream:o.chrdev_stream_ops}});var y=o.createNode(a,E,d,b);return o.isDir(y.mode)?(y.node_ops=t0.ops_table.dir.node,y.stream_ops=t0.ops_table.dir.stream,y.contents={}):o.isFile(y.mode)?(y.node_ops=t0.ops_table.file.node,y.stream_ops=t0.ops_table.file.stream,y.usedBytes=0,y.contents=t0.emptyFileContents??(t0.emptyFileContents=new Uint8Array(0))):o.isLink(y.mode)?(y.node_ops=t0.ops_table.link.node,y.stream_ops=t0.ops_table.link.stream):o.isChrdev(y.mode)&&(y.node_ops=t0.ops_table.chrdev.node,y.stream_ops=t0.ops_table.chrdev.stream),y.atime=y.mtime=y.ctime=Date.now(),a&&(a.contents[E]=y,a.atime=a.mtime=a.ctime=y.atime),y},getFileDataAsTypedArray(a){return a.contents.subarray(0,a.usedBytes)},expandFileStorage(a,E){var d=a.contents.length;if(!(d>=E)){var b=1024*1024;E=Math.max(E,d*(d<b?2:1.125)>>>0),d&&(E=Math.max(E,256));var y=t0.getFileDataAsTypedArray(a);a.contents=new Uint8Array(E),a.contents.set(y)}},resizeFileStorage(a,E){if(a.usedBytes!=E){var d=a.contents;a.contents=new Uint8Array(E),a.contents.set(d.subarray(0,Math.min(E,a.usedBytes))),a.usedBytes=E}},node_ops:{getattr(a){var E={};return E.dev=o.isChrdev(a.mode)?a.id:1,E.ino=a.id,E.mode=a.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=a.rdev,o.isDir(a.mode)?E.size=4096:o.isFile(a.mode)?E.size=a.usedBytes:o.isLink(a.mode)?E.size=a.link.length:E.size=0,E.atime=new Date(a.atime),E.mtime=new Date(a.mtime),E.ctime=new Date(a.ctime),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr(a,E){for(let d of["mode","atime","mtime","ctime"])E[d]!=null&&(a[d]=E[d]);E.size!==void 0&&t0.resizeFileStorage(a,E.size)},lookup(a,E){throw t0.doesNotExistError||(t0.doesNotExistError=new o.ErrnoError(44),t0.doesNotExistError.stack="<generic error, no stack>"),t0.doesNotExistError},mknod(a,E,d,b){return t0.createNode(a,E,d,b)},rename(a,E,d){var b;try{b=o.lookupNode(E,d)}catch{}if(b){if(o.isDir(a.mode))for(var y in b.contents)throw new o.ErrnoError(55);o.hashRemoveNode(b)}delete a.parent.contents[a.name],E.contents[d]=a,a.name=d,E.ctime=E.mtime=a.parent.ctime=a.parent.mtime=Date.now()},unlink(a,E){delete a.contents[E],a.ctime=a.mtime=Date.now()},rmdir(a,E){var d=o.lookupNode(a,E);for(var b in d.contents)throw new o.ErrnoError(55);delete a.contents[E],a.ctime=a.mtime=Date.now()},readdir(a){return[".","..",...Object.keys(a.contents)]},symlink(a,E,d){var b=t0.createNode(a,E,41471,0);return b.link=d,b},readlink(a){if(!o.isLink(a.mode))throw new o.ErrnoError(28);return a.link}},stream_ops:{read(a,E,d,b,y){var $=a.node.contents;if(y>=a.node.usedBytes)return 0;var G=Math.min(a.node.usedBytes-y,b);return E.set($.subarray(y,y+G),d),G},write(a,E,d,b,y,$){if(E.buffer===ix.buffer&&($=!1),!b)return 0;var G=a.node;return G.mtime=G.ctime=Date.now(),$?(G.contents=E.subarray(d,d+b),G.usedBytes=b):G.usedBytes===0&&y===0?(G.contents=E.slice(d,d+b),G.usedBytes=b):(t0.expandFileStorage(G,y+b),G.contents.set(E.subarray(d,d+b),y),G.usedBytes=Math.max(G.usedBytes,y+b)),b},llseek(a,E,d){var b=E;if(d===1?b+=a.position:d===2&&o.isFile(a.node.mode)&&(b+=a.node.usedBytes),b<0)throw new o.ErrnoError(28);return b},mmap(a,E,d,b,y){if(!o.isFile(a.node.mode))throw new o.ErrnoError(43);var $,G,V=a.node.contents;if(!(y&2)&&V.buffer===ix.buffer)G=!1,$=V.byteOffset;else{if(G=!0,$=wA(E),!$)throw new o.ErrnoError(48);V&&((d>0||d+E<V.length)&&(V.subarray?V=V.subarray(d,d+E):V=Array.prototype.slice.call(V,d,d+E)),ix.set(V,$))}return{ptr:$,allocated:G}},msync(a,E,d,b,y){return t0.stream_ops.write(a,E,0,b,d,!1),0}}},SA=a=>{if(typeof a!="string")return a;var E={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},d=E[a];if(typeof d>"u")throw new Error(`Unknown file open mode: ${a}`);return d},Kx=a=>(typeof a=="string"&&(a=HA(a,!0)),a.subarray||(a=new Uint8Array(a)),a),tA=(a,E)=>{var d=0;return a&&(d|=365),E&&(d|=146),d},P0={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},y0={mount(a){return y0.createNode(null,"/",a.opts.fs.lstat(a.opts.root).mode,0)},createNode(a,E,d,b){if(!o.isDir(d)&&!o.isFile(d)&&!o.isLink(d))throw new o.ErrnoError(P0.EINVAL);var y=o.createNode(a,E,d);return y.node_ops=y0.node_ops,y.stream_ops=y0.stream_ops,y},realPath(a){for(var E=[];a.parent!==a;)E.push(a.name),a=a.parent;return E.push(a.mount.opts.root),E.reverse(),E0.join(...E)},node_ops:{getattr(a){var E=y0.realPath(a),d;try{d=a.mount.opts.fs.lstat(E)}catch(b){throw b.code?new o.ErrnoError(P0[b.code]):b}return{dev:d.dev,ino:d.ino,mode:d.mode,nlink:d.nlink,uid:d.uid,gid:d.gid,rdev:d.rdev,size:d.size,atime:d.atime,mtime:d.mtime,ctime:d.ctime,blksize:d.blksize,blocks:d.blocks}},setattr(a,E){var d=y0.realPath(a);try{if(E.mode!==void 0&&(a.mount.opts.fs.chmod(d,E.mode),a.mode=E.mode),E.atime||E.mtime){var b=new Date(E.atime||E.mtime),y=new Date(E.mtime||E.atime);a.mount.opts.fs.utime(d,b,y)}E.size!==void 0&&a.mount.opts.fs.truncate(d,E.size)}catch($){throw $.code?new o.ErrnoError(P0[$.code]):$}},lookup(a,E){try{var d=E0.join2(y0.realPath(a),E),b=a.mount.opts.fs.lstat(d).mode,y=y0.createNode(a,E,b);return y}catch($){throw $.code?new o.ErrnoError(P0[$.code]):$}},mknod(a,E,d,b){var y=y0.createNode(a,E,d,b),$=y0.realPath(y);try{o.isDir(y.mode)?y.mount.opts.fs.mkdir($,y.mode):y.mount.opts.fs.writeFile($,"",{mode:y.mode})}catch(G){throw G.code?new o.ErrnoError(P0[G.code]):G}return y},rename(a,E,d){var b=y0.realPath(a),y=E0.join2(y0.realPath(E),d);try{a.mount.opts.fs.rename(b,y),a.name=d}catch($){throw $.code?new o.ErrnoError(P0[$.code]):$}},unlink(a,E){var d=E0.join2(y0.realPath(a),E);try{a.mount.opts.fs.unlink(d)}catch(b){throw b.code?new o.ErrnoError(P0[b.code]):b}},rmdir(a,E){var d=E0.join2(y0.realPath(a),E);try{a.mount.opts.fs.rmdir(d)}catch(b){throw b.code?new o.ErrnoError(P0[b.code]):b}},readdir(a){var E=y0.realPath(a);try{return a.mount.opts.fs.readdir(E)}catch(d){throw d.code?new o.ErrnoError(P0[d.code]):d}},symlink(a,E,d){var b=E0.join2(y0.realPath(a),E);try{a.mount.opts.fs.symlink(d,b)}catch(y){throw y.code?new o.ErrnoError(P0[y.code]):y}},readlink(a){var E=y0.realPath(a);try{return a.mount.opts.fs.readlink(E)}catch(d){throw d.code?new o.ErrnoError(P0[d.code]):d}}},stream_ops:{open(a){var E=y0.realPath(a.node);try{a.nfd=a.node.mount.opts.fs.open(E,a.flags)}catch(d){throw d.code?new o.ErrnoError(P0[d.code]):d}},close(a){try{a.node.mount.opts.fs.close(a.nfd)}catch(E){throw E.code?new o.ErrnoError(P0[E.code]):E}},read(a,E,d,b,y){try{return a.node.mount.opts.fs.read(a.nfd,E,d,b,y)}catch($){throw $.code?new o.ErrnoError(P0[$.code]):$}},write(a,E,d,b,y){try{return a.node.mount.opts.fs.write(a.nfd,E,d,b,y)}catch($){throw $.code?new o.ErrnoError(P0[$.code]):$}},llseek(a,E,d){var b=E;if(d===1)b+=a.position;else if(d===2&&o.isFile(a.node.mode))try{var y=a.node.node_ops.getattr(a.node);b+=y.size}catch($){throw new o.ErrnoError(P0[$.code])}if(b<0)throw new o.ErrnoError(P0.EINVAL);return b}}},cA=async a=>{var E=await k(a);return new Uint8Array(E)},je=(...a)=>o.createDataFile(...a),Ex=a=>a,Fx=0,p0=null,he=a=>{if(Fx--,n.monitorRunDependencies?.(Fx),Fx==0&&p0){var E=p0;p0=null,E()}},Sx=a=>{Fx++,n.monitorRunDependencies?.(Fx)},se=[],BA=async(a,E)=>{typeof Browser<"u"&&Browser.init();for(var d of se)if(d.canHandle(E))return d.handle(a,E);return a},$A=async(a,E,d,b,y,$,G,V)=>{var a0=E?fx.resolve(E0.join2(a,E)):a,D0=Ex(`cp ${a0}`);Sx(D0);try{var z0=d;typeof d=="string"&&(z0=await cA(d)),z0=await BA(z0,a0),V?.(),$||je(a,E,z0,b,y,G)}finally{he(D0)}},$r=(a,E,d,b,y,$,G,V,a0,D0)=>{$A(a,E,d,b,y,V,a0,D0).then($).catch(G)},o={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,ErrnoError:class{constructor(a){dx(this,"name","ErrnoError"),this.errno=a}},FSStream:class{constructor(){dx(this,"shared",{})}get object(){return this.node}set object(a){this.node=a}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(a){this.shared.flags=a}get position(){return this.shared.position}set position(a){this.shared.position=a}},FSNode:class{constructor(a,E,d,b){dx(this,"node_ops",{}),dx(this,"stream_ops",{}),dx(this,"readMode",365),dx(this,"writeMode",146),dx(this,"mounted",null),a||(a=this),this.parent=a,this.mount=a.mount,this.id=o.nextInode++,this.name=E,this.mode=d,this.rdev=b,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(a){a?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(a){a?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return o.isDir(this.mode)}get isDevice(){return o.isChrdev(this.mode)}},lookupPath(a,E={}){if(!a)throw new o.ErrnoError(44);E.follow_mount??(E.follow_mount=!0),E0.isAbs(a)||(a=o.cwd()+"/"+a);x:for(var d=0;d<40;d++){for(var b=a.split("/").filter(D0=>!!D0),y=o.root,$="/",G=0;G<b.length;G++){var V=G===b.length-1;if(V&&E.parent)break;if(b[G]!=="."){if(b[G]===".."){if($=E0.dirname($),o.isRoot(y)){a=$+"/"+b.slice(G+1).join("/"),d--;continue x}else y=y.parent;continue}$=E0.join2($,b[G]);try{y=o.lookupNode(y,b[G])}catch(D0){if(D0?.errno===44&&V&&E.noent_okay)return{path:$};throw D0}if(o.isMountpoint(y)&&(!V||E.follow_mount)&&(y=y.mounted.root),o.isLink(y.mode)&&(!V||E.follow)){if(!y.node_ops.readlink)throw new o.ErrnoError(52);var a0=y.node_ops.readlink(y);E0.isAbs(a0)||(a0=E0.dirname($)+"/"+a0),a=a0+"/"+b.slice(G+1).join("/");continue x}}}return{path:$,node:y}}throw new o.ErrnoError(32)},getPath(a){for(var E;;){if(o.isRoot(a)){var d=a.mount.mountpoint;return E?d[d.length-1]!=="/"?`${d}/${E}`:d+E:d}E=E?`${a.name}/${E}`:a.name,a=a.parent}},hashName(a,E){for(var d=0,b=0;b<E.length;b++)d=(d<<5)-d+E.charCodeAt(b)|0;return(a+d>>>0)%o.nameTable.length},hashAddNode(a){var E=o.hashName(a.parent.id,a.name);a.name_next=o.nameTable[E],o.nameTable[E]=a},hashRemoveNode(a){var E=o.hashName(a.parent.id,a.name);if(o.nameTable[E]===a)o.nameTable[E]=a.name_next;else for(var d=o.nameTable[E];d;){if(d.name_next===a){d.name_next=a.name_next;break}d=d.name_next}},lookupNode(a,E){var d=o.mayLookup(a);if(d)throw new o.ErrnoError(d);for(var b=o.hashName(a.id,E),y=o.nameTable[b];y;y=y.name_next){var $=y.name;if(y.parent.id===a.id&&$===E)return y}return o.lookup(a,E)},createNode(a,E,d,b){var y=new o.FSNode(a,E,d,b);return o.hashAddNode(y),y},destroyNode(a){o.hashRemoveNode(a)},isRoot(a){return a===a.parent},isMountpoint(a){return!!a.mounted},isFile(a){return(a&61440)===32768},isDir(a){return(a&61440)===16384},isLink(a){return(a&61440)===40960},isChrdev(a){return(a&61440)===8192},isBlkdev(a){return(a&61440)===24576},isFIFO(a){return(a&61440)===4096},isSocket(a){return(a&49152)===49152},flagsToPermissionString(a){var E=["r","w","rw"][a&3];return a&512&&(E+="w"),E},nodePermissions(a,E){return o.ignorePermissions?0:E.includes("r")&&!(a.mode&292)||E.includes("w")&&!(a.mode&146)||E.includes("x")&&!(a.mode&73)?2:0},mayLookup(a){if(!o.isDir(a.mode))return 54;var E=o.nodePermissions(a,"x");return E||(a.node_ops.lookup?0:2)},mayCreate(a,E){if(!o.isDir(a.mode))return 54;try{var d=o.lookupNode(a,E);return 20}catch{}return o.nodePermissions(a,"wx")},mayDelete(a,E,d){var b;try{b=o.lookupNode(a,E)}catch($){return $.errno}var y=o.nodePermissions(a,"wx");if(y)return y;if(d){if(!o.isDir(b.mode))return 54;if(o.isRoot(b)||o.getPath(b)===o.cwd())return 10}else if(o.isDir(b.mode))return 31;return 0},mayOpen(a,E){if(!a)return 44;if(o.isLink(a.mode))return 32;var d=o.flagsToPermissionString(E);return o.isDir(a.mode)&&(d!=="r"||E&576)?31:o.nodePermissions(a,d)},checkOpExists(a,E){if(!a)throw new o.ErrnoError(E);return a},MAX_OPEN_FDS:4096,nextfd(){for(var a=0;a<=o.MAX_OPEN_FDS;a++)if(!o.streams[a])return a;throw new o.ErrnoError(33)},getStreamChecked(a){var E=o.getStream(a);if(!E)throw new o.ErrnoError(8);return E},getStream:a=>o.streams[a],createStream(a,E=-1){return a=Object.assign(new o.FSStream,a),E==-1&&(E=o.nextfd()),a.fd=E,o.streams[E]=a,a},closeStream(a){o.streams[a]=null},dupStream(a,E=-1){var d=o.createStream(a,E);return d.stream_ops?.dup?.(d),d},doSetAttr(a,E,d){var b=a?.stream_ops.setattr,y=b?a:E;b??(b=E.node_ops.setattr),o.checkOpExists(b,63);try{b(y,d)}catch($){throw $ instanceof RangeError?new o.ErrnoError(22):$}},chrdev_stream_ops:{open(a){var E=o.getDevice(a.node.rdev);a.stream_ops=E.stream_ops,a.stream_ops.open?.(a)},llseek(){throw new o.ErrnoError(70)}},major:a=>a>>8,minor:a=>a&255,makedev:(a,E)=>a<<8|E,registerDevice(a,E){o.devices[a]={stream_ops:E}},getDevice:a=>o.devices[a],getMounts(a){for(var E=[],d=[a];d.length;){var b=d.pop();E.push(b),d.push(...b.mounts)}return E},syncfs(a,E){typeof a=="function"&&(E=a,a=!1),o.syncFSRequests++,o.syncFSRequests>1&&L(`warning: ${o.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var d=o.getMounts(o.root.mount),b=0;function y(V){return o.syncFSRequests--,E(V)}function $(V){if(V)return $.errored?void 0:($.errored=!0,y(V));++b>=d.length&&y(null)}for(var G of d)G.type.syncfs?G.type.syncfs(G,a,$):$(null)},mount(a,E,d){var b=d==="/",y=!d,$;if(b&&o.root)throw new o.ErrnoError(10);if(!b&&!y){var G=o.lookupPath(d,{follow_mount:!1});if(d=G.path,$=G.node,o.isMountpoint($))throw new o.ErrnoError(10);if(!o.isDir($.mode))throw new o.ErrnoError(54)}var V={type:a,opts:E,mountpoint:d,mounts:[]},a0=a.mount(V);return a0.mount=V,V.root=a0,b?o.root=a0:$&&($.mounted=V,$.mount&&$.mount.mounts.push(V)),a0},unmount(a){var E=o.lookupPath(a,{follow_mount:!1});if(!o.isMountpoint(E.node))throw new o.ErrnoError(28);var d=E.node,b=d.mounted,y=o.getMounts(b);for(var[$,G]of Object.entries(o.nameTable))for(;G;){var V=G.name_next;y.includes(G.mount)&&o.destroyNode(G),G=V}d.mounted=null;var a0=d.mount.mounts.indexOf(b);d.mount.mounts.splice(a0,1)},lookup(a,E){return a.node_ops.lookup(a,E)},mknod(a,E,d){var b=o.lookupPath(a,{parent:!0}),y=b.node,$=E0.basename(a);if(!$)throw new o.ErrnoError(28);if($==="."||$==="..")throw new o.ErrnoError(20);var G=o.mayCreate(y,$);if(G)throw new o.ErrnoError(G);if(!y.node_ops.mknod)throw new o.ErrnoError(63);return y.node_ops.mknod(y,$,E,d)},statfs(a){return o.statfsNode(o.lookupPath(a,{follow:!0}).node)},statfsStream(a){return o.statfsNode(a.node)},statfsNode(a){var E={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:o.nextInode,ffree:o.nextInode-1,fsid:42,flags:2,namelen:255};return a.node_ops.statfs&&Object.assign(E,a.node_ops.statfs(a.mount.opts.root)),E},create(a,E=438){return E&=4095,E|=32768,o.mknod(a,E,0)},mkdir(a,E=511){return E&=1023,E|=16384,o.mknod(a,E,0)},mkdirTree(a,E){var d=a.split("/"),b="";for(var y of d)if(y){(b||E0.isAbs(a))&&(b+="/"),b+=y;try{o.mkdir(b,E)}catch($){if($.errno!=20)throw $}}},mkdev(a,E,d){return typeof d>"u"&&(d=E,E=438),E|=8192,o.mknod(a,E,d)},symlink(a,E){if(!fx.resolve(a))throw new o.ErrnoError(44);var d=o.lookupPath(E,{parent:!0}),b=d.node;if(!b)throw new o.ErrnoError(44);var y=E0.basename(E),$=o.mayCreate(b,y);if($)throw new o.ErrnoError($);if(!b.node_ops.symlink)throw new o.ErrnoError(63);return b.node_ops.symlink(b,y,a)},rename(a,E){var d=E0.dirname(a),b=E0.dirname(E),y=E0.basename(a),$=E0.basename(E),G,V,a0;if(G=o.lookupPath(a,{parent:!0}),V=G.node,G=o.lookupPath(E,{parent:!0}),a0=G.node,!V||!a0)throw new o.ErrnoError(44);if(V.mount!==a0.mount)throw new o.ErrnoError(75);var D0=o.lookupNode(V,y),z0=fx.relative(a,b);if(z0.charAt(0)!==".")throw new o.ErrnoError(28);if(z0=fx.relative(E,d),z0.charAt(0)!==".")throw new o.ErrnoError(55);var N0;try{N0=o.lookupNode(a0,$)}catch{}if(D0!==N0){var S0=o.isDir(D0.mode),b0=o.mayDelete(V,y,S0);if(b0)throw new o.ErrnoError(b0);if(b0=N0?o.mayDelete(a0,$,S0):o.mayCreate(a0,$),b0)throw new o.ErrnoError(b0);if(!V.node_ops.rename)throw new o.ErrnoError(63);if(o.isMountpoint(D0)||N0&&o.isMountpoint(N0))throw new o.ErrnoError(10);if(a0!==V&&(b0=o.nodePermissions(V,"w"),b0))throw new o.ErrnoError(b0);o.hashRemoveNode(D0);try{V.node_ops.rename(D0,a0,$),D0.parent=a0}catch(Ax){throw Ax}finally{o.hashAddNode(D0)}}},rmdir(a){var E=o.lookupPath(a,{parent:!0}),d=E.node,b=E0.basename(a),y=o.lookupNode(d,b),$=o.mayDelete(d,b,!0);if($)throw new o.ErrnoError($);if(!d.node_ops.rmdir)throw new o.ErrnoError(63);if(o.isMountpoint(y))throw new o.ErrnoError(10);d.node_ops.rmdir(d,b),o.destroyNode(y)},readdir(a){var E=o.lookupPath(a,{follow:!0}),d=E.node,b=o.checkOpExists(d.node_ops.readdir,54);return b(d)},unlink(a){var E=o.lookupPath(a,{parent:!0}),d=E.node;if(!d)throw new o.ErrnoError(44);var b=E0.basename(a),y=o.lookupNode(d,b),$=o.mayDelete(d,b,!1);if($)throw new o.ErrnoError($);if(!d.node_ops.unlink)throw new o.ErrnoError(63);if(o.isMountpoint(y))throw new o.ErrnoError(10);d.node_ops.unlink(d,b),o.destroyNode(y)},readlink(a){var E=o.lookupPath(a),d=E.node;if(!d)throw new o.ErrnoError(44);if(!d.node_ops.readlink)throw new o.ErrnoError(28);return d.node_ops.readlink(d)},stat(a,E){var d=o.lookupPath(a,{follow:!E}),b=d.node,y=o.checkOpExists(b.node_ops.getattr,63);return y(b)},fstat(a){var E=o.getStreamChecked(a),d=E.node,b=E.stream_ops.getattr,y=b?E:d;return b??(b=d.node_ops.getattr),o.checkOpExists(b,63),b(y)},lstat(a){return o.stat(a,!0)},doChmod(a,E,d,b){o.doSetAttr(a,E,{mode:d&4095|E.mode&-4096,ctime:Date.now(),dontFollow:b})},chmod(a,E,d){var b;if(typeof a=="string"){var y=o.lookupPath(a,{follow:!d});b=y.node}else b=a;o.doChmod(null,b,E,d)},lchmod(a,E){o.chmod(a,E,!0)},fchmod(a,E){var d=o.getStreamChecked(a);o.doChmod(d,d.node,E,!1)},doChown(a,E,d){o.doSetAttr(a,E,{timestamp:Date.now(),dontFollow:d})},chown(a,E,d,b){var y;if(typeof a=="string"){var $=o.lookupPath(a,{follow:!b});y=$.node}else y=a;o.doChown(null,y,b)},lchown(a,E,d){o.chown(a,E,d,!0)},fchown(a,E,d){var b=o.getStreamChecked(a);o.doChown(b,b.node,!1)},doTruncate(a,E,d){if(o.isDir(E.mode))throw new o.ErrnoError(31);if(!o.isFile(E.mode))throw new o.ErrnoError(28);var b=o.nodePermissions(E,"w");if(b)throw new o.ErrnoError(b);o.doSetAttr(a,E,{size:d,timestamp:Date.now()})},truncate(a,E){if(E<0)throw new o.ErrnoError(28);var d;if(typeof a=="string"){var b=o.lookupPath(a,{follow:!0});d=b.node}else d=a;o.doTruncate(null,d,E)},ftruncate(a,E){var d=o.getStreamChecked(a);if(E<0||(d.flags&2097155)===0)throw new o.ErrnoError(28);o.doTruncate(d,d.node,E)},utime(a,E,d){var b=o.lookupPath(a,{follow:!0}),y=b.node,$=o.checkOpExists(y.node_ops.setattr,63);$(y,{atime:E,mtime:d})},open(a,E,d=438){if(a==="")throw new o.ErrnoError(44);E=SA(E),E&64?d=d&4095|32768:d=0;var b,y;if(typeof a=="object")b=a;else{y=a.endsWith("/");var $=o.lookupPath(a,{follow:!(E&131072),noent_okay:!0});b=$.node,a=$.path}var G=!1;if(E&64)if(b){if(E&128)throw new o.ErrnoError(20)}else{if(y)throw new o.ErrnoError(31);b=o.mknod(a,d|511,0),G=!0}if(!b)throw new o.ErrnoError(44);if(o.isChrdev(b.mode)&&(E&=-513),E&65536&&!o.isDir(b.mode))throw new o.ErrnoError(54);if(!G){var V=o.mayOpen(b,E);if(V)throw new o.ErrnoError(V)}E&512&&!G&&o.truncate(b,0),E&=-131713;var a0=o.createStream({node:b,path:o.getPath(b),flags:E,seekable:!0,position:0,stream_ops:b.stream_ops,ungotten:[],error:!1});return a0.stream_ops.open&&a0.stream_ops.open(a0),G&&o.chmod(b,d&511),a0},close(a){if(o.isClosed(a))throw new o.ErrnoError(8);a.getdents&&(a.getdents=null);try{a.stream_ops.close&&a.stream_ops.close(a)}catch(E){throw E}finally{o.closeStream(a.fd)}a.fd=null},isClosed(a){return a.fd===null},llseek(a,E,d){if(o.isClosed(a))throw new o.ErrnoError(8);if(!a.seekable||!a.stream_ops.llseek)throw new o.ErrnoError(70);if(d!=0&&d!=1&&d!=2)throw new o.ErrnoError(28);return a.position=a.stream_ops.llseek(a,E,d),a.ungotten=[],a.position},read(a,E,d,b,y){if(b<0||y<0)throw new o.ErrnoError(28);if(o.isClosed(a))throw new o.ErrnoError(8);if((a.flags&2097155)===1)throw new o.ErrnoError(8);if(o.isDir(a.node.mode))throw new o.ErrnoError(31);if(!a.stream_ops.read)throw new o.ErrnoError(28);var $=typeof y<"u";if(!$)y=a.position;else if(!a.seekable)throw new o.ErrnoError(70);var G=a.stream_ops.read(a,E,d,b,y);return $||(a.position+=G),G},write(a,E,d,b,y,$){if(b<0||y<0)throw new o.ErrnoError(28);if(o.isClosed(a))throw new o.ErrnoError(8);if((a.flags&2097155)===0)throw new o.ErrnoError(8);if(o.isDir(a.node.mode))throw new o.ErrnoError(31);if(!a.stream_ops.write)throw new o.ErrnoError(28);a.seekable&&a.flags&1024&&o.llseek(a,0,2);var G=typeof y<"u";if(!G)y=a.position;else if(!a.seekable)throw new o.ErrnoError(70);var V=a.stream_ops.write(a,E,d,b,y,$);return G||(a.position+=V),V},mmap(a,E,d,b,y){if((b&2)!==0&&(y&2)===0&&(a.flags&2097155)!==2)throw new o.ErrnoError(2);if((a.flags&2097155)===1)throw new o.ErrnoError(2);if(!a.stream_ops.mmap)throw new o.ErrnoError(43);if(!E)throw new o.ErrnoError(28);return a.stream_ops.mmap(a,E,d,b,y)},msync(a,E,d,b,y){return a.stream_ops.msync?a.stream_ops.msync(a,E,d,b,y):0},ioctl(a,E,d){if(!a.stream_ops.ioctl)throw new o.ErrnoError(59);return a.stream_ops.ioctl(a,E,d)},readFile(a,E={}){E.flags=E.flags||0,E.encoding=E.encoding||"binary",E.encoding!=="utf8"&&E.encoding!=="binary"&&d0(`Invalid encoding type "${E.encoding}"`);var d=o.open(a,E.flags),b=o.stat(a),y=b.size,$=new Uint8Array(y);return o.read(d,$,0,y,0),E.encoding==="utf8"&&($=eA($)),o.close(d),$},writeFile(a,E,d={}){d.flags=d.flags||577;var b=o.open(a,d.flags,d.mode);E=Kx(E),o.write(b,E,0,E.byteLength,void 0,d.canOwn),o.close(b)},cwd:()=>o.currentPath,chdir(a){var E=o.lookupPath(a,{follow:!0});if(E.node===null)throw new o.ErrnoError(44);if(!o.isDir(E.node.mode))throw new o.ErrnoError(54);var d=o.nodePermissions(E.node,"x");if(d)throw new o.ErrnoError(d);o.currentPath=E.path},createDefaultDirectories(){o.mkdir("/tmp"),o.mkdir("/home"),o.mkdir("/home/web_user")},createDefaultDevices(){o.mkdir("/dev"),o.registerDevice(o.makedev(1,3),{read:()=>0,write:(b,y,$,G,V)=>G,llseek:()=>0}),o.mkdev("/dev/null",o.makedev(1,3)),xx.register(o.makedev(5,0),xx.default_tty_ops),xx.register(o.makedev(6,0),xx.default_tty1_ops),o.mkdev("/dev/tty",o.makedev(5,0)),o.mkdev("/dev/tty1",o.makedev(6,0));var a=new Uint8Array(1024),E=0,d=()=>(E===0&&(be(a),E=a.byteLength),a[--E]);o.createDevice("/dev","random",d),o.createDevice("/dev","urandom",d),o.mkdir("/dev/shm"),o.mkdir("/dev/shm/tmp")},createSpecialDirectories(){o.mkdir("/proc");var a=o.mkdir("/proc/self");o.mkdir("/proc/self/fd"),o.mount({mount(){var E=o.createNode(a,"fd",16895,73);return E.stream_ops={llseek:t0.stream_ops.llseek},E.node_ops={lookup(d,b){var y=+b,$=o.getStreamChecked(y),G={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>$.path},id:y+1};return G.parent=G,G},readdir(){return Array.from(o.streams.entries()).filter(([d,b])=>b).map(([d,b])=>d.toString())}},E}},{},"/proc/self/fd")},createStandardStreams(a,E,d){a?o.createDevice("/dev","stdin",a):o.symlink("/dev/tty","/dev/stdin"),E?o.createDevice("/dev","stdout",null,E):o.symlink("/dev/tty","/dev/stdout"),d?o.createDevice("/dev","stderr",null,d):o.symlink("/dev/tty1","/dev/stderr");var b=o.open("/dev/stdin",0),y=o.open("/dev/stdout",1),$=o.open("/dev/stderr",1)},staticInit(){o.nameTable=new Array(4096),o.mount(t0,{},"/"),o.createDefaultDirectories(),o.createDefaultDevices(),o.createSpecialDirectories(),o.filesystems={MEMFS:t0,PROXYFS:y0}},init(a,E,d){o.initialized=!0,a??(a=n.stdin),E??(E=n.stdout),d??(d=n.stderr),o.createStandardStreams(a,E,d)},quit(){o.initialized=!1,JA(0);for(var a of o.streams)a&&o.close(a)},findObject(a,E){var d=o.analyzePath(a,E);return d.exists?d.object:null},analyzePath(a,E){try{var d=o.lookupPath(a,{follow:!E});a=d.path}catch{}var b={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var d=o.lookupPath(a,{parent:!0});b.parentExists=!0,b.parentPath=d.path,b.parentObject=d.node,b.name=E0.basename(a),d=o.lookupPath(a,{follow:!E}),b.exists=!0,b.path=d.path,b.object=d.node,b.name=d.node.name,b.isRoot=d.path==="/"}catch(y){b.error=y.errno}return b},createPath(a,E,d,b){a=typeof a=="string"?a:o.getPath(a);for(var y=E.split("/").reverse();y.length;){var $=y.pop();if($){var G=E0.join2(a,$);try{o.mkdir(G)}catch(V){if(V.errno!=20)throw V}a=G}}return G},createFile(a,E,d,b,y){var $=E0.join2(typeof a=="string"?a:o.getPath(a),E),G=tA(b,y);return o.create($,G)},createDataFile(a,E,d,b,y,$){var G=E;a&&(a=typeof a=="string"?a:o.getPath(a),G=E?E0.join2(a,E):a);var V=tA(b,y),a0=o.create(G,V);if(d){d=Kx(d),o.chmod(a0,V|146);var D0=o.open(a0,577);o.write(D0,d,0,d.length,0,$),o.close(D0),o.chmod(a0,V)}},createDevice(a,E,d,b){var y,$=E0.join2(typeof a=="string"?a:o.getPath(a),E),G=tA(!!d,!!b);(y=o.createDevice).major??(y.major=64);var V=o.makedev(o.createDevice.major++,0);return o.registerDevice(V,{open(a0){a0.seekable=!1},close(a0){b?.buffer?.length&&b(10)},read(a0,D0,z0,N0,S0){for(var b0=0,Ax=0;Ax<N0;Ax++){var px;try{px=d()}catch{throw new o.ErrnoError(29)}if(px===void 0&&b0===0)throw new o.ErrnoError(6);if(px==null)break;b0++,D0[z0+Ax]=px}return b0&&(a0.node.atime=Date.now()),b0},write(a0,D0,z0,N0,S0){for(var b0=0;b0<N0;b0++)try{b(D0[z0+b0])}catch{throw new o.ErrnoError(29)}return N0&&(a0.node.mtime=a0.node.ctime=Date.now()),b0}}),o.mkdev($,G,V)},forceLoadFile(a){if(a.isDevice||a.isFolder||a.link||a.contents)return!0;if(globalThis.XMLHttpRequest)d0("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");else try{a.contents=S(a.url)}catch{throw new o.ErrnoError(29)}},createLazyFile(a,E,d,b,y){class ${constructor(){dx(this,"lengthKnown",!1),dx(this,"chunks",[])}get(S0){if(!(S0>this.length-1||S0<0)){var b0=S0%this.chunkSize,Ax=S0/this.chunkSize|0;return this.getter(Ax)[b0]}}setDataGetter(S0){this.getter=S0}cacheLength(){var S0=new XMLHttpRequest;S0.open("HEAD",d,!1),S0.send(null),S0.status>=200&&S0.status<300||S0.status===304||d0("Couldn't load "+d+". Status: "+S0.status);var b0=Number(S0.getResponseHeader("Content-length")),Ax,px=(Ax=S0.getResponseHeader("Accept-Ranges"))&&Ax==="bytes",qx=(Ax=S0.getResponseHeader("Content-Encoding"))&&Ax==="gzip",Ix=1024*1024;px||(Ix=b0);var Mx=(Rx,dA)=>{Rx>dA&&d0("invalid range ("+Rx+", "+dA+") or no bytes requested!"),dA>b0-1&&d0("only "+b0+" bytes available! programmer error!");var ax=new XMLHttpRequest;return ax.open("GET",d,!1),b0!==Ix&&ax.setRequestHeader("Range","bytes="+Rx+"-"+dA),ax.responseType="arraybuffer",ax.overrideMimeType&&ax.overrideMimeType("text/plain; charset=x-user-defined"),ax.send(null),ax.status>=200&&ax.status<300||ax.status===304||d0("Couldn't load "+d+". Status: "+ax.status),ax.response!==void 0?new Uint8Array(ax.response||[]):HA(ax.responseText||"",!0)},YA=this;YA.setDataGetter(Rx=>{var dA=Rx*Ix,ax=(Rx+1)*Ix-1;return ax=Math.min(ax,b0-1),typeof YA.chunks[Rx]>"u"&&(YA.chunks[Rx]=Mx(dA,ax)),typeof YA.chunks[Rx]>"u"&&d0("doXHR failed!"),YA.chunks[Rx]}),(qx||!b0)&&(Ix=b0=1,b0=this.getter(0).length,Ix=b0,N("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=b0,this._chunkSize=Ix,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(globalThis.XMLHttpRequest){f||d0("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var G=new $,V={isDevice:!1,contents:G}}else var V={isDevice:!1,url:d};var a0=o.createFile(a,E,V,b,y);V.contents?a0.contents=V.contents:V.url&&(a0.contents=null,a0.url=V.url),Object.defineProperties(a0,{usedBytes:{get:function(){return this.contents.length}}});var D0={};for(let[N0,S0]of Object.entries(a0.stream_ops))D0[N0]=(...b0)=>(o.forceLoadFile(a0),S0(...b0));function z0(N0,S0,b0,Ax,px){var qx=N0.node.contents;if(px>=qx.length)return 0;var Ix=Math.min(qx.length-px,Ax);if(qx.slice)for(var Mx=0;Mx<Ix;Mx++)S0[b0+Mx]=qx[px+Mx];else for(var Mx=0;Mx<Ix;Mx++)S0[b0+Mx]=qx.get(px+Mx);return Ix}return D0.read=(N0,S0,b0,Ax,px)=>(o.forceLoadFile(a0),z0(N0,S0,b0,Ax,px)),D0.mmap=(N0,S0,b0,Ax,px)=>{o.forceLoadFile(a0);var qx=wA(S0);if(!qx)throw new o.ErrnoError(48);return z0(N0,ix,qx,S0,b0),{ptr:qx,allocated:!0}},a0.stream_ops=D0,a0}},k0={currentUmask:18,calculateAt(a,E,d){if(E0.isAbs(E))return E;var b;if(a===-100)b=o.cwd();else{var y=k0.getStreamFromFD(a);b=y.path}if(E.length==0){if(!d)throw new o.ErrnoError(44);return b}return b+"/"+E},writeStat(a,E){f0[a>>2]=E.dev,f0[a+4>>2]=E.mode,f0[a+8>>2]=E.nlink,f0[a+12>>2]=E.uid,f0[a+16>>2]=E.gid,f0[a+20>>2]=E.rdev,H0[a+24>>3]=BigInt(E.size),O0[a+32>>2]=4096,O0[a+36>>2]=E.blocks;var d=E.atime.getTime(),b=E.mtime.getTime(),y=E.ctime.getTime();return H0[a+40>>3]=BigInt(Math.floor(d/1e3)),f0[a+48>>2]=d%1e3*1e3*1e3,H0[a+56>>3]=BigInt(Math.floor(b/1e3)),f0[a+64>>2]=b%1e3*1e3*1e3,H0[a+72>>3]=BigInt(Math.floor(y/1e3)),f0[a+80>>2]=y%1e3*1e3*1e3,H0[a+88>>3]=BigInt(E.ino),0},writeStatFs(a,E){f0[a+4>>2]=E.bsize,f0[a+60>>2]=E.bsize,H0[a+8>>3]=BigInt(E.blocks),H0[a+16>>3]=BigInt(E.bfree),H0[a+24>>3]=BigInt(E.bavail),H0[a+32>>3]=BigInt(E.files),H0[a+40>>3]=BigInt(E.ffree),f0[a+48>>2]=E.fsid,f0[a+64>>2]=E.flags,f0[a+56>>2]=E.namelen},doMsync(a,E,d,b,y){if(!o.isFile(E.node.mode))throw new o.ErrnoError(43);if(b&2)return 0;var $=AA.slice(a,a+d);o.msync(E,$,y,d,b)},getStreamFromFD(a){var E=o.getStreamChecked(a);return E},varargs:void 0,getStr(a){var E=ux(a);return E}};function ge(a,E,d){k0.varargs=d;try{var b=k0.getStreamFromFD(a);switch(E){case 0:{var y=rA();if(y<0)return-28;for(;o.streams[y];)y++;var $;return $=o.dupStream(b,y),$.fd}case 1:case 2:return 0;case 3:return b.flags;case 4:{var y=rA(),G=289792;return b.flags=b.flags&~G|y&G,0}case 12:{var y=_A(),V=0;return U0[y+V>>1]=2,0}case 13:case 14:return 0}return-28}catch(a0){if(typeof o>"u"||a0.name!=="ErrnoError")throw a0;return-a0.errno}}function qA(a,E,d){k0.varargs=d;try{var b=k0.getStreamFromFD(a);switch(E){case 21509:return b.tty?0:-59;case 21505:{if(!b.tty)return-59;if(b.tty.ops.ioctl_tcgets){var y=b.tty.ops.ioctl_tcgets(b),$=_A();O0[$>>2]=y.c_iflag||0,O0[$+4>>2]=y.c_oflag||0,O0[$+8>>2]=y.c_cflag||0,O0[$+12>>2]=y.c_lflag||0;for(var G=0;G<32;G++)ix[$+G+17]=y.c_cc[G]||0;return 0}return 0}case 21510:case 21511:case 21512:return b.tty?0:-59;case 21506:case 21507:case 21508:{if(!b.tty)return-59;if(b.tty.ops.ioctl_tcsets){for(var $=_A(),V=O0[$>>2],a0=O0[$+4>>2],D0=O0[$+8>>2],z0=O0[$+12>>2],N0=[],G=0;G<32;G++)N0.push(ix[$+G+17]);return b.tty.ops.ioctl_tcsets(b.tty,E,{c_iflag:V,c_oflag:a0,c_cflag:D0,c_lflag:z0,c_cc:N0})}return 0}case 21519:{if(!b.tty)return-59;var $=_A();return O0[$>>2]=0,0}case 21520:return b.tty?-28:-59;case 21537:case 21531:{var $=_A();return o.ioctl(b,E,$)}case 21523:{if(!b.tty)return-59;if(b.tty.ops.ioctl_tiocgwinsz){var S0=b.tty.ops.ioctl_tiocgwinsz(b.tty),$=_A();U0[$>>1]=S0[0],U0[$+2>>1]=S0[1]}return 0}case 21524:return b.tty?0:-59;case 21515:return b.tty?0:-59;default:return-28}}catch(b0){if(typeof o>"u"||b0.name!=="ErrnoError")throw b0;return-b0.errno}}function CA(a,E,d,b){k0.varargs=b;try{E=k0.getStr(E),E=k0.calculateAt(a,E);var y=b?rA():0;return d&64&&(y&=~k0.currentUmask),o.open(E,d,y).fd}catch($){if(typeof o>"u"||$.name!=="ErrnoError")throw $;return-$.errno}}var qr=()=>2147483648,ie=(a,E)=>Math.ceil(a/E)*E,Qe=a=>{var E=PA.buffer.byteLength,d=(a-E+65535)/65536|0;try{return PA.grow(d),Z(),1}catch{}},Ze=a=>{var E=AA.length;a>>>=0;var d=qr();if(a>d)return!1;for(var b=1;b<=4;b*=2){var y=E*(1+.2/b);y=Math.min(y,a+100663296);var $=Math.min(d,ie(Math.max(a,y),65536)),G=Qe($);if(G)return!0}return!1};function Pr(a){try{var E=k0.getStreamFromFD(a);return o.close(E),0}catch(d){if(typeof o>"u"||d.name!=="ErrnoError")throw d;return d.errno}}var Tr=(a,E,d,b)=>{for(var y=0,$=0;$<d;$++){var G=f0[E>>2],V=f0[E+4>>2];E+=8;var a0=o.read(a,ix,G,V,b);if(a0<0)return-1;if(y+=a0,a0<V)break;typeof b<"u"&&(b+=a0)}return y};function Nr(a,E,d,b){try{var y=k0.getStreamFromFD(a),$=Tr(y,E,d);return f0[b>>2]=$,0}catch(G){if(typeof o>"u"||G.name!=="ErrnoError")throw G;return G.errno}}var ae=9007199254740992,xr=-9007199254740992,zA=a=>a<xr||a>ae?NaN:Number(a);function oe(a,E,d,b){E=zA(E);try{if(isNaN(E))return 22;var y=k0.getStreamFromFD(a);return o.llseek(y,E,d),H0[b>>3]=BigInt(y.position),y.getdents&&E===0&&d===0&&(y.getdents=null),0}catch($){if(typeof o>"u"||$.name!=="ErrnoError")throw $;return $.errno}}var Ir=(a,E,d,b)=>{for(var y=0,$=0;$<d;$++){var G=f0[E>>2],V=f0[E+4>>2];E+=8;var a0=o.write(a,ix,G,V,b);if(a0<0)return-1;if(y+=a0,a0<V)break;typeof b<"u"&&(b+=a0)}return y};function Ar(a,E,d,b){try{var y=k0.getStreamFromFD(a),$=Ir(y,E,d);return f0[b>>2]=$,0}catch(G){if(typeof o>"u"||G.name!=="ErrnoError")throw G;return G.errno}}var Mr=0,KA=()=>ne||Mr>0,ye=a=>{R=a,KA()||(n.onExit?.(a),s0=!0),j(a,new xA(a))},er=(a,E)=>{R=a,KA()||v0(),ye(a)},rr=a=>{if(a instanceof xA||a=="unwind")return R;j(1,a)},Lr=(a,E,d)=>me(a,AA,E,d),tr=a=>VA(a),Rr=a=>{var E=UA(a)+1,d=tr(E);return Lr(a,d,E),d},Or=(...a)=>o.createPath(...a),Fe=(...a)=>o.unlink(...a),Gr=(...a)=>o.createLazyFile(...a),Ur=(...a)=>o.createDevice(...a);if(o.createPreloadedFile=$r,o.preloadFile=$A,o.staticInit(),n.noExitRuntime&&(ne=n.noExitRuntime),n.preloadPlugins&&(se=n.preloadPlugins),n.print&&(N=n.print),n.printErr&&(L=n.printErr),n.wasmBinary&&(O=n.wasmBinary),n.arguments&&(D=n.arguments),n.thisProgram&&(p=n.thisProgram),n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()();n.callMain=lx,n.addRunDependency=Sx,n.removeRunDependency=he,n.FS_preloadFile=$A,n.FS_unlink=Fe,n.FS_createPath=Or,n.FS_createDevice=Ur,n.FS=o,n.FS_createDataFile=je,n.FS_createLazyFile=Gr,n.PROXYFS=y0;var nr,sr,JA,ir,VA,ke,$x,Hr,PA;function WA(a){nr=n._main=a.__main_argc_argv,sr=a.__funcs_on_exit,JA=a.fflush,ir=a._emscripten_stack_restore,VA=a._emscripten_stack_alloc,ke=a.emscripten_stack_get_current,$x=PA=a.memory,Hr=a.__indirect_function_table}var _e={__assert_fail:lA,__syscall_fcntl64:ge,__syscall_ioctl:qA,__syscall_openat:CA,emscripten_resize_heap:Ze,fd_close:Pr,fd_read:Nr,fd_seek:oe,fd_write:Ar};function lx(a=[]){var E=nr;a.unshift(p);var d=a.length,b=tr((d+1)*4),y=b;for(var $ of a)f0[y>>2]=Rr($),y+=4;f0[y>>2]=0;try{var G=E(d,b);return er(G,!0),G}catch(V){return rr(V)}}function ve(a=D){if(Fx>0){p0=ve;return}if(n0(),Fx>0){p0=ve;return}function E(){if(n.calledRun=!0,!s0){U(),H?.(n),n.onRuntimeInitialized?.();var d=n.noInitialRun||!0;d||lx(a),B0()}}n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>n.setStatus(""),1),E()},1)):E()}var XA;return XA=await Z0(),ve(),i0?s=n:s=new Promise((a,E)=>{H=a,z=E}),s}})();typeof A=="object"&&typeof x=="object"?(x.exports=e,x.exports.default=e):typeof define=="function"&&define.amd&&define([],()=>e)}}),ja={};pE(ja,{createPawnCC:()=>yE,createPawnDbg:()=>kE});ha.exports=bE(ja);var hE=ma(mE(),1),gE=ma(jE(),1),yE=hE.default,kE=gE.default});var $D={};_v($D,{APM:()=>j0,DDE:()=>vA,DDE_Core:()=>R0,DFILES:()=>rt,DLO:()=>et,DefaultFiles:()=>e0,Dependencies:()=>Q0,DevError:()=>hx,DevExitCode:()=>un,DevSession:()=>Ve,DeviceProfiles:()=>gt,Diagnostics:()=>Kr,ENV:()=>xs,Globals:()=>Bx,Helper:()=>m0,HttpMethod:()=>ti,Library:()=>Pe,Log:()=>Ne,Manifest:()=>J,MyDatanetClient:()=>pn,Package:()=>jx,Registry:()=>ex,build:()=>kD,buildDevelopmentInstallInfo:()=>q8,dev:()=>S8,generateDevApmId:()=>ni,install:()=>yD,pack:()=>SD,publish:()=>wD});module.exports=wv($D);var Dx=require("vscode-uri");var ur=require("vscode-uri");var Sv=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function pt(A,x=0){let e=~~x^-1;for(let r=0;r<A.length;r++)e=e>>>8^Sv[(e^A[r])&255];return(e^-1)>>>0}var TD=new Uint8Array([0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64]),ND=new Uint8Array([0,192,193,1,195,3,2,194,198,6,7,199,5,197,196,4,204,12,13,205,15,207,206,14,10,202,203,11,201,9,8,200,216,24,25,217,27,219,218,26,30,222,223,31,221,29,28,220,20,212,213,21,215,23,22,214,210,18,19,211,17,209,208,16,240,48,49,241,51,243,242,50,54,246,247,55,245,53,52,244,60,252,253,61,255,63,62,254,250,58,59,251,57,249,248,56,40,232,233,41,235,43,42,234,238,46,47,239,45,237,236,44,228,36,37,229,39,231,230,38,34,226,227,35,225,33,32,224,160,96,97,161,99,163,162,98,102,166,167,103,165,101,100,164,108,172,173,109,175,111,110,174,170,106,107,171,105,169,168,104,120,184,185,121,187,123,122,186,190,126,127,191,125,189,188,124,180,116,117,181,119,183,182,118,114,178,179,115,177,113,112,176,80,144,145,81,147,83,82,146,150,86,87,151,85,149,148,84,156,92,93,157,95,159,158,94,90,154,155,91,153,89,88,152,136,72,73,137,75,139,138,74,78,142,143,79,141,77,76,140,68,132,133,69,135,71,70,134,130,66,67,131,65,129,128,64]);var m0;(_=>{function A(k,S){let[P,N]=S,{line:L,col:O}=k.linePos(P);return{line:Number(L)-1,startCharacter:O-1,endCharacter:O+(N-P)}}_.yamlRangeToLineInformation=A;let x=new TextEncoder;function e(k){return pt(x.encode(k)).toString(16)}_.generateHashForLibraryName=e;function r(k){return pt(x.encode(k)).toString(16)}_.generateHashForFilePath=r;function t(k){return pt(k).toString(16).toUpperCase().padStart(8,"0")}_.generateCRC32ForFileContent=t;function s(k){try{let S=null;return k?.type==="Buffer"?S=Uint8Array.from(k.data):S=k,new TextDecoder("utf8").decode(S)}catch{return""}}_.convertBlobToString=s;function n(k=""){return k.replace(/\r\n|\n\r|\r/g,`
1528
+ `)}_.normalizeLF=n;function F(k){try{let S=s(k);return n(S).split(`
1529
+ `)}catch{return[]}}_.convertBlobToStringArray=F,_.isNumeric=k=>!Array.isArray(k)&&k-parseFloat(k)+1>=0;function c(k){let S="",P=k.byteLength;for(let N=0;N<P;N++)S+=String.fromCharCode(k[N]);return btoa(S)}_.bufferToBase64=c;function D(k,S){let P=`${k}`.match(/\{\d*(index)(\+\d*)?}/g);if(P){let N=k;return P.forEach(L=>{let O=L.replace(/\+0$/,""),s0=O.match(/index/)?.[0];if(s0){let R=O.slice(1,-1).split(s0)[1],g=parseInt(R)||0;N=N.replace(L,`${S+g}`)}}),N}else return k}_.patchValueWithArrayInfo=D;let p={};function j(k,S,P){let N=p[k];N&&clearTimeout(N.timer),p[k]={timer:setTimeout(()=>{delete p[k],P()},S),handler:P}}_.defer=j})(m0||={});var Ha=require("image-dimensions"),za=require("file-type-checker");var JD=require("cross-fetch/polyfill"),gi=cx(require("openapi-fetch"));var Ee=require("vscode-uri");var Tx="dist/",di="dde/",qn="dlo/",Pn=".studio/",Di="dfiles/",e0;(f=>{f.fileNames={projectSettings:"studio.json",mainAmx:"main.amx",mainAmxReport:"main.xml",ddeXml:"dde.xml",ddeOpenApi:"main.yaml",historyJson:"history.json",mainDDE:"main.dde",autoInc:"auto.inc",defaultInc:"default.inc",autoUplinkInc:"app-uplink.inc",autoDdeInc:"X-dde.inc",mainDdeInc:"main-dde.inc",autoLocalDataInc:"auto-local-data.inc",legacyAutoInc:"legacy-auto.inc",legacyAutoDdeInc:"legacy-auto-dde.inc",legacyAutoUplinkInc:"legacy-auto-uplink.inc",reportTemplate:"mdn_report_template.json",dloCfg:"dlo.cfg",devMirror:"mirror.json",devDeviceLog:"device.jsonl"};let x=`${Pn}auto/`,e=`${Pn}dev/`,r=`${x}dlo/`,t=`${x}dde/`;f.filePaths={studio:{initFile:`${x}.init`,auto:{path:x,dlo:{path:r,autoInc:`${r}${f.fileNames.autoInc}`,defaultInc:`${r}${f.fileNames.defaultInc}`,autoUplinkInc:`${r}${f.fileNames.autoUplinkInc}`,autoLocalDataInc:`${r}${f.fileNames.autoLocalDataInc}`,autoDdeInc:`${r}${f.fileNames.autoDdeInc}`,mainDdeInc:`${r}${f.fileNames.mainDdeInc}`,legacyAutoInc:`${r}${f.fileNames.legacyAutoInc}`,legacyAutoDdeInc:`${r}${f.fileNames.legacyAutoDdeInc}`,legacyAutoUplinkInc:`${r}${f.fileNames.legacyAutoUplinkInc}`,cfg:`${r}${f.fileNames.dloCfg}`},dde:{path:t,historyJson:`${t}${f.fileNames.historyJson}`}},libdeps:`${Pn}libdeps/`,dev:{path:e,mirror:`${e}${f.fileNames.devMirror}`,deviceLog:`${e}${f.fileNames.devDeviceLog}`}},dist:{path:Tx,dloPath:`${Tx}dlo/`,mainAmxPath:`${Tx}dlo/${f.fileNames.mainAmx}`,mainAmxReportPath:`${Tx}dlo/${f.fileNames.mainAmxReport}`,ddeXmlPath:`${Tx}dde/${f.fileNames.ddeXml}`,ddeApiPath:`${Tx}api/`,ddeApi:`${Tx}api/${f.fileNames.ddeOpenApi}`,historyJson:`${Tx}dde/${f.fileNames.historyJson}`,povPath:`${Tx}pov`,povDetailsPath:`${Tx}pov/details`,dfilesPath:`${Tx}dfiles`,dfilesProperties:`${Tx}dfiles/properties.json`,bloPath:`${Tx}blo`,reportTemplate:`${Tx}/${f.fileNames.reportTemplate}`,definesTs:`${Tx}defines.ts`,definesAppTs:`${Tx}defines.app.ts`},dlo:{path:qn,mainDLO:`${qn}main.dlo`,mainINI:`${qn}main.ini`},dde:{path:di,mainDDE:`${di}main.dde`},dfiles:{path:Di,mainDFILES:`${Di}/main.dfiles`},appIni:"app.ini",defaultsIni:"defaults.ini"},f.readme=c=>`# ${c} README
1530
1530
 
1531
- This is the README for your project "${l}". Write a brief description what this project is about.`,C.changelog=`# Changelog
1531
+ This is the README for your project "${c}". Write a brief description what this project is about.`,f.changelog=`# Changelog
1532
1532
 
1533
1533
  All notable changes to this project will be documented in this file.
1534
1534
 
1535
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).`})(X||={});var Oe=z0(require("ini"));var Mn=i0.convertBlobToString,Sn=X.filePaths.dlo.path,M0;(s=>{let t;(l=>(l.lucky="lucky",l.wynni="wynni",l.production="production"))(t=s.ENV||={});async function e(E,a,C){let l=await R.read(E,a),d=await _0.getAll(l),u={},p={},k={};for(let N in d){let M=_0.dependencyToPath(E,N),W=_0.dependencyIdToName(N),g=Rx.Utils.joinPath(M,Sn,`${W}.ini`);await sA(a,g,u,p,k,W);let _=Rx.Utils.joinPath(M,X.filePaths.defaultsIni);await sA(a,_,u,p,k,W)}if(R.isLibrary(l)){let N=Rx.Utils.joinPath(E,X.filePaths.dlo.path,`${l.name}.ini`);C&&await a.stat(N)&&C.warn(`dlo/${l.name}.ini is deprecated. Please migrate your defines to defaults.ini in the project root.`),await sA(a,N,u,p,k,l.name)}let w=l.dlo?.iniFile||X.filePaths.dlo.mainINI,b=Rx.Utils.joinPath(E,w);C&&await a.stat(b)&&C.warn(`${w} is deprecated. Please migrate your defines to app.ini in the project root.`);let y=Hn(w);if(await sA(a,b,u,p,k,y),R.isLibrary(l)){let N=Rx.Utils.joinPath(E,X.filePaths.defaultsIni);await sA(a,N,u,p,k,"defaults")}let $=Rn(l,u,p,k),P=Rx.Utils.joinPath(E,X.filePaths.appIni);return await sA(a,P,u,p,k,"app"),{flat:u,sections:p,definesWithSource:k,defaultsOnly:$}}s.read=e;async function F(E,a,C,l){let d=Object.entries(C.flat),u=[];for(let[w,b]of d){let y=C.definesWithSource[w];if(y?.comment){let P=Se(y.comment);for(let N of P.split(`
1536
- `))u.push(` ${N}`)}let $=Re(b)?"number":"string";u.push(` ${w}: ${$};`)}let p=["// Auto-generated by @microtronics/studio-cli \u2014 DO NOT EDIT","declare global {"," interface StudioDefines {",...u," }"," var STUDIO_DEFINES: StudioDefines;","}","","globalThis.STUDIO_DEFINES ??= {} as StudioDefines;",""];for(let[w,b]of d){let y=C.definesWithSource[w];if(y?.comment&&p.push(Se(y.comment)),Re(b))p.push(`globalThis.STUDIO_DEFINES['${w}'] = ${Number(b)};`);else{let $=b.replace(/\\/g,"\\\\").replace(/'/g,"\\'");p.push(`globalThis.STUDIO_DEFINES['${w}'] = '${$}';`)}}p.push(""),p.push("export {};"),p.push("");let k=Rx.Utils.joinPath(E,l??X.filePaths.dist.definesTs);await a.writeFile(k,p.join(`
1537
- `))}s.exportDefinesTs=F;function i(E,a){let C=[];return{result:E.replace(/\{\{([^}]+)\}\}/g,(d,u)=>{let p=u.trim();return Object.hasOwn(a,p)?a[p]:(C.push(p),d)}),unresolvedKeys:C}}s.replaceDefineTemplates=i})(M0||={});function Rn(t,e,F,i){if(R.isLibrary(t))return{flat:{...e},sections:structuredClone(F),definesWithSource:{...i}}}function On(t){if(t==="")return{kind:"empty"};if(t.startsWith("#")||t.startsWith(";"))return{kind:"comment",text:t.replace(/^[#;]\s?/,"")};if(t.startsWith("[")&&t.endsWith("]"))return{kind:"section",name:t.slice(1,-1)};let e=t.indexOf("=");return e>0?{kind:"keyValue",key:t.slice(0,e).trim()}:{kind:"other"}}function Un(t){let e={},F=t.split(/\r?\n/),i=[],s=null;for(let E of F){let a=On(E.trim());if(a.kind==="empty"||a.kind==="other"){i=[];continue}if(a.kind==="comment"){i.push(a.text);continue}if(a.kind==="section"){s=a.name;continue}let C=s?`${s}_${a.key}`:a.key;i.length>0&&(e[C]=i.join(`
1538
- `)),i=[]}return e}function Se(t){let e=t.split(`
1539
- `);return e.length===1?`/** ${e[0]} */`:`/**
1540
- ${e.map(i=>` * ${i}`).join(`
1535
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).`})(e0||={});var bi=cx(require("ini"));var $v=m0.convertBlobToString,qv=e0.filePaths.dlo.path,Bx;(t=>{let A;(f=>(f.lucky="lucky",f.wynni="wynni",f.production="production"))(A=t.ENV||={});async function x(s,n,F){let f=await J.read(s,n),c=await Q0.getAll(f),D={},p={},j={};for(let L in c){let O=Q0.dependencyToPath(s,L),s0=Q0.dependencyIdToName(L),R=Ee.Utils.joinPath(O,qv,`${s0}.ini`);await Fr(n,R,D,p,j,s0);let g=Ee.Utils.joinPath(O,e0.filePaths.defaultsIni);await Fr(n,g,D,p,j,s0)}if(J.isLibrary(f)){let L=Ee.Utils.joinPath(s,e0.filePaths.dlo.path,`${f.name}.ini`);F&&await n.stat(L)&&F.warn(`dlo/${f.name}.ini is deprecated. Please migrate your defines to defaults.ini in the project root.`),await Fr(n,L,D,p,j,f.name)}let _=f.dlo?.iniFile||e0.filePaths.dlo.mainINI,k=Ee.Utils.joinPath(s,_);F&&await n.stat(k)&&F.warn(`${_} is deprecated. Please migrate your defines to app.ini in the project root.`);let S=Iv(_);if(await Fr(n,k,D,p,j,S),J.isLibrary(f)){let L=Ee.Utils.joinPath(s,e0.filePaths.defaultsIni);await Fr(n,L,D,p,j,"defaults")}let P=Pv(f,D,p,j),N=Ee.Utils.joinPath(s,e0.filePaths.appIni);return await Fr(n,N,D,p,j,"app"),{flat:D,sections:p,definesWithSource:j,defaultsOnly:P}}t.read=x;async function e(s,n,F,f){let c=Object.entries(F.flat),D=[];for(let[_,k]of c){let S=F.definesWithSource[_];if(S?.comment){let N=ui(S.comment);for(let L of N.split(`
1536
+ `))D.push(` ${L}`)}let P=pi(k)?"number":"string";D.push(` ${_}: ${P};`)}let p=["// Auto-generated by @microtronics/studio-cli \u2014 DO NOT EDIT","declare global {"," interface StudioDefines {",...D," }"," var STUDIO_DEFINES: StudioDefines;","}","","globalThis.STUDIO_DEFINES ??= {} as StudioDefines;",""];for(let[_,k]of c){let S=F.definesWithSource[_];if(S?.comment&&p.push(ui(S.comment)),pi(k))p.push(`globalThis.STUDIO_DEFINES['${_}'] = ${Number(k)};`);else{let P=k.replace(/\\/g,"\\\\").replace(/'/g,"\\'");p.push(`globalThis.STUDIO_DEFINES['${_}'] = '${P}';`)}}p.push(""),p.push("export {};"),p.push("");let j=Ee.Utils.joinPath(s,f??e0.filePaths.dist.definesTs);await n.writeFile(j,p.join(`
1537
+ `))}t.exportDefinesTs=e;function r(s,n){let F=[];return{result:s.replace(/\{\{([^}]+)\}\}/g,(c,D)=>{let p=D.trim();return Object.hasOwn(n,p)?n[p]:(F.push(p),c)}),unresolvedKeys:F}}t.replaceDefineTemplates=r})(Bx||={});function Pv(A,x,e,r){if(J.isLibrary(A))return{flat:{...x},sections:structuredClone(e),definesWithSource:{...r}}}function Tv(A){if(A==="")return{kind:"empty"};if(A.startsWith("#")||A.startsWith(";"))return{kind:"comment",text:A.replace(/^[#;]\s?/,"")};if(A.startsWith("[")&&A.endsWith("]"))return{kind:"section",name:A.slice(1,-1)};let x=A.indexOf("=");return x>0?{kind:"keyValue",key:A.slice(0,x).trim()}:{kind:"other"}}function Nv(A){let x={},e=A.split(/\r?\n/),r=[],t=null;for(let s of e){let n=Tv(s.trim());if(n.kind==="empty"||n.kind==="other"){r=[];continue}if(n.kind==="comment"){r.push(n.text);continue}if(n.kind==="section"){t=n.name;continue}let F=t?`${t}_${n.key}`:n.key;r.length>0&&(x[F]=r.join(`
1538
+ `)),r=[]}return x}function ui(A){let x=A.split(`
1539
+ `);return x.length===1?`/** ${x[0]} */`:`/**
1540
+ ${x.map(r=>` * ${r}`).join(`
1541
1541
  `)}
1542
- */`}function Re(t){return t!==""&&!isNaN(Number(t))}function Hn(t){return(t.split("/").pop()||t).replace(/\.ini$/i,"")}function Ue(t,e,F){let i=e?`${F}: ${e}`:void 0;return t&&i?`${t}
1543
- ${i}`:i||t}function He(t,e,F,i,s,E,a){let C=s?`${s}_${i}`:i,l={value:t,sourceUri:e,sourceLine:Jn(F,i,s)};return E[C]&&(l.comment=`${a}: ${E[C]}`),l}function zn(t,e,F,i,s,E,a,C,l){i[t]||(i[t]={});for(let[d,u]of Object.entries(e)){let p=`${t}_${d}`,k=C[p],w=`${u}`;F[p]=w,i[t][d]=w;let b=He(w,E,a,d,t,C,l);b.comment=Ue(s[p]?.comment,k,l),s[p]=b}}async function sA(t,e,F,i,s,E){if(!await t.stat(e))return;let a=await t.readFile(e),C=Mn(a),l=Oe.parse(C),d=e.toString(),u=C.split(/\r?\n/),p=Un(C);for(let[k,w]of Object.entries(l))if(typeof w=="object"&&w!==null)zn(k,w,F,i,s,d,u,p,E);else{let b=p[k],y=`${w}`;F[k]=y;let $=He(y,d,u,k,null,p,E);$.comment=Ue(s[k]?.comment,b,E),s[k]=$}}function Jn(t,e,F){let i=F===null,s=F?`[${F}]`:null,E=new RegExp(`^\\s*${Kn(e)}\\s*=`);for(let a=0;a<t.length;a++){let C=t[a].trim();if(s&&C===s){i=!0;continue}if(i&&C.startsWith("[")&&C.endsWith("]")&&F!==null){i=!1;continue}if(i&&E.test(t[a]))return a}return 0}function Kn(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var Fr=z0(require("semver/preload")),{GET:Ee,POST:ir,PUT:ze}=(0,Je.default)();function sx(t){if(t)return{authorization:`Bearer ${t}`}}var y0;(w=>{w.getAPIUrl=b=>{let y="https://api.registry.microtronics.com";return b===M0.ENV.lucky?y="https://api.registry.lucky.ci.microtronics.com":b===M0.ENV.wynni&&(y="https://api.registry.wynni.ci.microtronics.com"),{baseUrl:y+"/v1"}};async function e(b,y,$,P){let{data:N,error:M}=await Ee("/publisher/{publisherId}/libraries/{libraryId}",{...(0,w.getAPIUrl)(P),headers:{...sx(b)},params:{path:{publisherId:y,libraryId:$}}});if(M)throw new Error(M.reason);return N}w.getLibraryProfile=e;async function F(b,y,$=!1){let P=await fetch(y,{headers:{...sx(b),...k(!0)}});if(P.status===200)return $?await P.json():await P.arrayBuffer();throw new Error("Failed to fetch the library content")}w.fetchCustomContent=F;async function i(b,y,$){try{let{data:P,error:N}=await Ee("/publisher/{publisherId}",{...(0,w.getAPIUrl)($),headers:{...sx(b)},params:{path:{publisherId:y}}});return N?(console.error(N),null):P}catch(P){return console.error(P),null}}w.getPublisher=i;async function s(b,y,$,P){try{let{data:N,error:M}=await ir("/packages/{publisherId}/applications",{...(0,w.getAPIUrl)(P),headers:{...sx(b),...k(!0)},params:{path:{publisherId:y}},body:{...$}});if(M)throw new Error(M.reason);return N.id}catch{return null}}w.createNewApplication=s;async function E(b,y,$,P){let{data:N,error:M}=await Ee("/publisher/{publisherId}/applications/{applicationId}",{...(0,w.getAPIUrl)(P),headers:{...sx(b),...k(!0)},params:{path:{publisherId:y,applicationId:$}}});if(M)throw new Error(M.reason);return N}w.getExistingApplication=E;async function a(b,y,$,P,N){try{let{error:M}=await ze("/packages/{publisherId}/applications/{applicationId}",{...(0,w.getAPIUrl)(N),headers:{...sx(b),...k(!0)},params:{path:{publisherId:y,applicationId:$}},body:{...P}});if(M)throw new Error(M.reason);return}catch{return null}}w.updateExistingApplication=a;async function C(b,y,$,P,N,M){let W=!!Fr.default.valid(P);try{let{error:g}=await ze("/packages/{publisherId}/applications/{applicationId}/versions/{applicationVersion}",{...(0,w.getAPIUrl)(M),headers:{...sx(b),...k(W)},params:{path:{publisherId:y,applicationId:$,applicationVersion:P}},body:{...N}});if(g)throw new Error(g.reason);return}catch{return null}}w.updateExistingApplicationVersion=C;async function l(b,y,$,P,N,M){let W=!!Fr.default.valid(P),{data:g,error:_}=await ir("/packages/{publisherId}/applications/{applicationId}/versions/{applicationVersion}",{...(0,w.getAPIUrl)(M),headers:{...sx(b),...k(W)},params:{path:{publisherId:y,applicationId:$,applicationVersion:P}},body:{},bodySerializer(){return N}});if(_)throw new Error(_.reason||_.err||_);return g}w.publishApplicationVersion=l;let d={"README.md":"text/markdown","CHANGELOG.md":"text/markdown","library.tar.gz":"application/gzip","studio.json":"application/json"};async function u(b,y,$,P,N,M){try{let{error:W}=await ir("/packages/{publisherId}/libraries/{libraryId}/versions/{libraryVersion}",{...(0,w.getAPIUrl)(M),headers:{...sx(b),...k(!0)},params:{path:{publisherId:y,libraryId:$,libraryVersion:P}},body:{...N},bodySerializer(g){let _=new FormData;for(let[G,U]of Object.entries(g))U!==void 0&&_.append(G,new Blob([U],{type:d[G]}),G);return _}});if(W)throw new Error(W.reason)}catch(W){throw console.error(W),W}}w.publishLibraryVersion=u;async function p(b,y,$,P,N,M,W){let g=!!Fr.default.valid(P),{error:_}=await ir("/packages/{publisherId}/applications/{applicationId}/versions/{applicationVersion}/files/{applicationFileName}",{...(0,w.getAPIUrl)(W),headers:{...sx(b),...k(g),"Content-Type":"application/octet-stream"},params:{path:{publisherId:y,applicationId:$,applicationVersion:P,applicationFileName:N}},body:{},bodySerializer(){return M}});if(_)throw new Error(_.reason)}w.updateApplicationFile=p;function k(b=!1){return b?{"X-Semver":"true"}:{}}w.injectSemverHeader=k})(y0||={});var Bn=z0(require("semver/preload"));var Px=require("vscode-uri");var tA=require("vscode-uri");var P0=require("vscode-uri");var Dt=z0(require("ajv")),lt=z0(require("ajv-formats"));var Ke={$schema:"http://json-schema.org/draft-07/schema#",title:"Dynamic DDE Schema",description:"Describe your data structure for Microtronics IoT devices",type:"object",additionalProperties:!1,properties:{dde:{type:"string",default:"1.0.0",readOnly:!0,description:"Version of the DDE schema. Do not modify this value.",markdownDescription:`Version of the DDE schema.
1542
+ */`}function pi(A){return A!==""&&!isNaN(Number(A))}function Iv(A){return(A.split("/").pop()||A).replace(/\.ini$/i,"")}function mi(A,x,e){let r=x?`${e}: ${x}`:void 0;return A&&r?`${A}
1543
+ ${r}`:r||A}function ji(A,x,e,r,t,s,n){let F=t?`${t}_${r}`:r,f={value:A,sourceUri:x,sourceLine:Lv(e,r,t)};return s[F]&&(f.comment=`${n}: ${s[F]}`),f}function Mv(A,x,e,r,t,s,n,F,f){r[A]||(r[A]={});for(let[c,D]of Object.entries(x)){let p=`${A}_${c}`,j=F[p],_=`${D}`;e[p]=_,r[A][c]=_;let k=ji(_,s,n,c,A,F,f);k.comment=mi(t[p]?.comment,j,f),t[p]=k}}async function Fr(A,x,e,r,t,s){if(!await A.stat(x))return;let n=await A.readFile(x),F=$v(n),f=bi.parse(F),c=x.toString(),D=F.split(/\r?\n/),p=Nv(F);for(let[j,_]of Object.entries(f))if(typeof _=="object"&&_!==null)Mv(j,_,e,r,t,c,D,p,s);else{let k=p[j],S=`${_}`;e[j]=S;let P=ji(S,c,D,j,null,p,s);P.comment=mi(t[j]?.comment,k,s),t[j]=P}}function Lv(A,x,e){let r=e===null,t=e?`[${e}]`:null,s=new RegExp(`^\\s*${Rv(x)}\\s*=`);for(let n=0;n<A.length;n++){let F=A[n].trim();if(t&&F===t){r=!0;continue}if(r&&F.startsWith("[")&&F.endsWith("]")&&e!==null){r=!1;continue}if(r&&s.test(A[n]))return n}return 0}function Rv(A){return A.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var mt=cx(require("semver/preload")),{GET:Tn,POST:bt,PUT:hi}=(0,gi.default)();function iA(A){if(A)return{authorization:`Bearer ${A}`}}var ex;(_=>{_.getAPIUrl=k=>{let S="https://api.registry.microtronics.com";return k===Bx.ENV.lucky?S="https://api.registry.lucky.ci.microtronics.com":k===Bx.ENV.wynni&&(S="https://api.registry.wynni.ci.microtronics.com"),{baseUrl:S+"/v1"}};async function x(k,S,P,N){let{data:L,error:O}=await Tn("/publisher/{publisherId}/libraries/{libraryId}",{...(0,_.getAPIUrl)(N),headers:{...iA(k)},params:{path:{publisherId:S,libraryId:P}}});if(O)throw new Error(O.reason);return L}_.getLibraryProfile=x;async function e(k,S,P=!1){let N=await fetch(S,{headers:{...iA(k),...j(!0)}});if(N.status===200)return P?await N.json():await N.arrayBuffer();throw new Error("Failed to fetch the library content")}_.fetchCustomContent=e;async function r(k,S,P){try{let{data:N,error:L}=await Tn("/publisher/{publisherId}",{...(0,_.getAPIUrl)(P),headers:{...iA(k)},params:{path:{publisherId:S}}});return L?(console.error(L),null):N}catch(N){return console.error(N),null}}_.getPublisher=r;async function t(k,S,P,N){try{let{data:L,error:O}=await bt("/packages/{publisherId}/applications",{...(0,_.getAPIUrl)(N),headers:{...iA(k),...j(!0)},params:{path:{publisherId:S}},body:{...P}});if(O)throw new Error(O.reason);return L.id}catch{return null}}_.createNewApplication=t;async function s(k,S,P,N){let{data:L,error:O}=await Tn("/publisher/{publisherId}/applications/{applicationId}",{...(0,_.getAPIUrl)(N),headers:{...iA(k),...j(!0)},params:{path:{publisherId:S,applicationId:P}}});if(O)throw new Error(O.reason);return L}_.getExistingApplication=s;async function n(k,S,P,N,L){try{let{error:O}=await hi("/packages/{publisherId}/applications/{applicationId}",{...(0,_.getAPIUrl)(L),headers:{...iA(k),...j(!0)},params:{path:{publisherId:S,applicationId:P}},body:{...N}});if(O)throw new Error(O.reason);return}catch{return null}}_.updateExistingApplication=n;async function F(k,S,P,N,L,O){let s0=!!mt.default.valid(N);try{let{error:R}=await hi("/packages/{publisherId}/applications/{applicationId}/versions/{applicationVersion}",{...(0,_.getAPIUrl)(O),headers:{...iA(k),...j(s0)},params:{path:{publisherId:S,applicationId:P,applicationVersion:N}},body:{...L}});if(R)throw new Error(R.reason);return}catch{return null}}_.updateExistingApplicationVersion=F;async function f(k,S,P,N,L,O){let s0=!!mt.default.valid(N),{data:R,error:g}=await bt("/packages/{publisherId}/applications/{applicationId}/versions/{applicationVersion}",{...(0,_.getAPIUrl)(O),headers:{...iA(k),...j(s0)},params:{path:{publisherId:S,applicationId:P,applicationVersion:N}},body:{},bodySerializer(){return L}});if(g)throw new Error(g.reason||g.err||g);return R}_.publishApplicationVersion=f;let c={"README.md":"text/markdown","CHANGELOG.md":"text/markdown","library.tar.gz":"application/gzip","studio.json":"application/json"};async function D(k,S,P,N,L,O){try{let{error:s0}=await bt("/packages/{publisherId}/libraries/{libraryId}/versions/{libraryVersion}",{...(0,_.getAPIUrl)(O),headers:{...iA(k),...j(!0)},params:{path:{publisherId:S,libraryId:P,libraryVersion:N}},body:{...L},bodySerializer(R){let g=new FormData;for(let[M,Y]of Object.entries(R))Y!==void 0&&g.append(M,new Blob([Y],{type:c[M]}),M);return g}});if(s0)throw new Error(s0.reason)}catch(s0){throw console.error(s0),s0}}_.publishLibraryVersion=D;async function p(k,S,P,N,L,O,s0){let R=!!mt.default.valid(N),{error:g}=await bt("/packages/{publisherId}/applications/{applicationId}/versions/{applicationVersion}/files/{applicationFileName}",{...(0,_.getAPIUrl)(s0),headers:{...iA(k),...j(R),"Content-Type":"application/octet-stream"},params:{path:{publisherId:S,applicationId:P,applicationVersion:N,applicationFileName:L}},body:{},bodySerializer(){return O}});if(g)throw new Error(g.reason)}_.updateApplicationFile=p;function j(k=!1){return k?{"X-Semver":"true"}:{}}_.injectSemverHeader=j})(ex||={});var Ka=cx(require("semver/preload"));var Ae=require("vscode-uri");var Te=require("vscode-uri");var Cx=require("vscode-uri");var Xi=cx(require("ajv")),Yi=cx(require("ajv-formats"));var yi={$schema:"http://json-schema.org/draft-07/schema#",title:"Dynamic DDE Schema",description:"Describe your data structure for Microtronics IoT devices",type:"object",additionalProperties:!1,properties:{dde:{type:"string",default:"1.0.0",readOnly:!0,description:"Version of the DDE schema. Do not modify this value.",markdownDescription:`Version of the DDE schema.
1544
1544
 
1545
1545
  \u26A0\uFE0F **Do not modify this value.**`},cloudProject:{type:"boolean",description:"Indicates whether this is a cloud project.",markdownDescription:"Indicates whether this is a cloud project.\n\nWhen set to `false`, certain containers and top-level custom containers are restricted."},constants:{type:"object",description:"Declare constants that can be used across the YAML file.",markdownDescription:"Declare constants that can be referenced and used across the YAML file."},state:{$ref:"#/$defs/stateContainer"},result:{$ref:"#/$defs/resultContainer"},volatile:{$ref:"#/$defs/volatileContainer"},timeseries:{type:"object",description:"Define time-series data channels for recording measurements.",markdownDescription:"Define time-series data channels for recording measurements.\n\n**Limits:** Maximum 9 fields.\n\n**Naming rules:**\n- Must start with a letter or `_`\n- May contain letters, digits, and `_`\n- Names like `field0`, `ch0`, etc. are **not allowed**\n- Reserved names (`_id`, `id`, `_stamp`, `stamp`, `tag`, `_uid`, `customer_id`, `site_id`, `_rec_flags__`, `applog`) are **not allowed**",additionalProperties:!1,maxProperties:9,errorMessage:{maxProperties:"The timeseries container supports a maximum of 9 fields."},properties:{_id:{not:{},errorMessage:"'_id' is a reserved name and cannot be used as a timeseries field."},id:{not:{},errorMessage:"'id' is a reserved name and cannot be used as a timeseries field."},_stamp:{not:{},errorMessage:"'_stamp' is a reserved name and cannot be used as a timeseries field."},stamp:{not:{},errorMessage:"'stamp' is a reserved name and cannot be used as a timeseries field."},tag:{not:{},errorMessage:"'tag' is a reserved name and cannot be used as a timeseries field."},_uid:{not:{},errorMessage:"'_uid' is a reserved name and cannot be used as a timeseries field."},customer_id:{not:{},errorMessage:"'customer_id' is a reserved name and cannot be used as a timeseries field."},site_id:{not:{},errorMessage:"'site_id' is a reserved name and cannot be used as a timeseries field."},_rec_flags__:{not:{},errorMessage:"'_rec_flags__' is a reserved name and cannot be used as a timeseries field."},applog:{not:{},errorMessage:"'applog' is a reserved name and cannot be used as a timeseries field."}},patternProperties:{"^(?!.*^field\\d+$)(?!.*^ch\\d+$)[a-zA-Z_][0-9a-zA-Z_]*$":{$ref:"#/$defs/timeseriesFields"}}},aloha:{type:"object",description:"Special container to transport live data during put-into-operation procedures.",markdownDescription:`Special container to transport **live data** during put-into-operation procedures.
1546
1546
 
@@ -1638,29 +1638,714 @@ Accepts a number (\u2265 0) or a relation link (\`@container.field\`).`,minimum:
1638
1638
 
1639
1639
  \u26A0\uFE0F **Important:** This does not activate any alarming. Alarming must be implemented in the DLO.
1640
1640
 
1641
- Accepts a number or a relation link (\`@container.field\`).`,$ref:"#/$defs/relationLinkPattern"}}};var cr=require("yaml");var Ox=require("yaml");var TA;(e=>e.CODE={ddeFieldLength:"field_name_length"})(TA||={});var u0;(I=>{let t;(n0=>(n0.state="state",n0.result="result",n0.aloha="aloha",n0.volatile="volatile",n0.setting="setting",n0.command="command",n0.storage="storage",n0.relations="relations"))(t=I.DDEContainerName||={});let e;(A0=>(A0.configA="configA",A0.configB="configB",A0.configC="configC",A0.config0="config0",A0.config1="config1",A0.config2="config2",A0.config3="config3",A0.config4="config4",A0.config5="config5",A0.config6="config6",A0.config7="config7",A0.config8="config8",A0.config9="config9",A0.histdata0="histdata0",A0.histdata1="histdata1",A0.histdata2="histdata2",A0.histdata3="histdata3",A0.histdata4="histdata4",A0.histdata5="histdata5",A0.histdata6="histdata6",A0.histdata7="histdata7",A0.histdata8="histdata8",A0.histdata9="histdata9",A0.aloha="aloha",A0.alerts="alerts",A0.applog="applog"))(e=I.ContainerName||={});let F;(Q=>(Q.cx="cx",Q.hx="hx",Q.cb="cb",Q.aloha="aloha",Q.applog="applog"))(F=I.ContainerType||={});let i;(l0=>(l0.up="up",l0.down="down",l0.upPlus="up+",l0.downPlus="down+",l0.none="none",l0.backendOnly="backend-only",l0.deviceOnly="device-only",l0.both="both",l0.bothPlus="both+",l0.noneBackend="none-be"))(i=I.TransferDirection||={});function s(H,K){return H==="cx"&&!["backend-only"].includes(K)?"DDE_CID_CONFIG":H==="hx"?"DDE_CID_HISTDATA":H==="aloha"?"DDE_CID_ALOHA":null}I.CONTAINER_DEF_DLO_CID_BASE=s;let E=["up","up+","down","down+","both","none","both+","backend-only","device-only"],a=["up","up+","backend-only"];I.CONTAINER_DEFS={configA:{ctype:"cb",cnum:"a",alias:"",flds:"field",xmits:["backend-only"]},configB:{ctype:"cb",cnum:"b",alias:"",flds:"field",xmits:["backend-only"]},configC:{ctype:"cb",cnum:"c",alias:"",flds:"field",xmits:["backend-only"]},config0:{ctype:"cx",cnum:0,alias:"",flds:"field",xmits:E},config1:{ctype:"cx",cnum:1,alias:"",flds:"field",xmits:E},config2:{ctype:"cx",cnum:2,alias:"",flds:"field",xmits:E},config3:{ctype:"cx",cnum:3,alias:"",flds:"field",xmits:E},config4:{ctype:"cx",cnum:4,alias:"",flds:"field",xmits:E},config5:{ctype:"cx",cnum:5,alias:"",flds:"field",xmits:E},config6:{ctype:"cx",cnum:6,alias:"",flds:"field",xmits:E},config7:{ctype:"cx",cnum:7,alias:"",flds:"field",xmits:E},config8:{ctype:"cx",cnum:8,alias:"",flds:"field",xmits:E},config9:{ctype:"cx",cnum:9,alias:"",flds:"field",xmits:E},histdata0:{ctype:"hx",cnum:0,alias:"",flds:"ch",xmits:a},histdata1:{ctype:"hx",cnum:1,alias:"",flds:"ch",xmits:a},histdata2:{ctype:"hx",cnum:2,alias:"",flds:"ch",xmits:a},histdata3:{ctype:"hx",cnum:3,alias:"",flds:"ch",xmits:a},histdata4:{ctype:"hx",cnum:4,alias:"",flds:"ch",xmits:a},histdata5:{ctype:"hx",cnum:5,alias:"",flds:"ch",xmits:a},histdata6:{ctype:"hx",cnum:6,alias:"",flds:"ch",xmits:a},histdata7:{ctype:"hx",cnum:7,alias:"",flds:"ch",xmits:a},histdata8:{ctype:"hx",cnum:8,alias:"",flds:"ch",xmits:a},histdata9:{ctype:"hx",cnum:9,alias:"",flds:"ch",xmits:a},aloha:{ctype:"aloha",cnum:void 0,alias:"aloha",flds:null,xmits:["up","up+"]},alerts:{ctype:void 0,cnum:void 0,alias:"alerts",flds:null,xmits:["up"]},applog:{ctype:"applog",cnum:void 0,alias:"applog",flds:null,xmits:["up+"]}},I.HISTDATA_CONTAINER=["histdata0","histdata1","histdata2","histdata3","histdata4","histdata5","histdata6","histdata7","histdata8","histdata9"],I.CONFIG_CONTAINER=["config0","config1","config2","config3","config4","config5","config6","config7","config8","config9"],I.SERVER_CONTAINER=["configA","configB","configC"],I.regexRelation=/^(@[a-zA-Z_][a-zA-Z0-9_]*\.[a-zA-Z_][a-zA-Z0-9_]*(\[[^\]]+\])?(\.[a-zA-Z_][a-zA-Z0-9_]*)*|lib:[a-zA-Z0-9_-]+@[a-zA-Z_][a-zA-Z0-9_]*\.[a-zA-Z_][a-zA-Z0-9_]*(\[[^\]]+\])?(\.[a-zA-Z_][a-zA-Z0-9_]*)*)$/;let k=["astring","nstring","cstring","wstring","ustring"],w=["int8","int16","int32","int64","uint8","uint16","uint32","float16","float32","float64"];I.allowedRelationTypes={title:k,unit:k,chartMinimum:w,chartMaximum:w,scale:w,offset:w,decimalPlaces:["uint8","uint16","uint32","int8","int16","int32","int64"],channelMode:["uint8","uint16","uint32"],chartAlarmLow:w,chartAlarmHigh:w,chartWarningLow:w,chartWarningHigh:w,chartHysteresis:w,chartTriggerThreshold:w,chartTriggerRelation:w,chartSetPoint:w};function y(H,K,Y){let z=K[H];if(z!==void 0)if(I.regexRelation.exec(`${z}`)){let T=H==="chartSetPoint",[Q,...r0]=z.split("."),[,t0]=Q.split("@"),n0=Object.values(Y.containers).find(K0=>K0.title===t0),f0=r0.join("."),l0=T?";":"%",L0=(T?"":"%")+(n0?.name||t0)+l0;if(L0=L0+`${f0}`,T){let K0=Y.setPointList[K.name];L0=L0+`;actual_output_value_${K0}`}return L0}else return z}I.parseXMLValueWithRelation=y;function $(H){let{bitmask:K}=H;if(!K)return;let Y="$",z=K.replaceAll(" ","");if(K.startsWith("0x"))Y+=z.substring(2);else if(z.startsWith("0b")){let T=z.substring(2).replaceAll(" ","");Y+=parseInt(T,2).toString(16).toUpperCase()}return Y}I.parseXMLBitmask=$;function P(H){return H.type==="binary"?H.defaultValue.substring(2):H.defaultValue==="NaN"?"NAN":H.defaultValue}I.parseXMLDefaultValue=P,I.TDEF_NUMBER={xmlOut(H,K,Y){H.decpl=y("decimalPlaces",K,Y),H.decpl===void 0&&(H.decpl=0),H.vscale=y("scale",K,Y),H.vofs=y("offset",K,Y),H.min=y("chartMinimum",K,Y),H.max=y("chartMaximum",K,Y)}};let M={isBlob:1,xmlOut(H,K){H.max=K.byteSize}},W={xmlOut(H){H.decpl=-1,H.param0="local",H.units="UTC"}};I.TYPE_DEFS={u8:{dde:"uint8",dim:1,len:1,...I.TDEF_NUMBER,rdef:1,xml:{type:"u8"},pwn:{rwfunc:"u8",htype:"s32",printf:"%d"},openApi:{type:"number",minimum:0}},u16:{dde:"uint16",dim:1,len:2,...I.TDEF_NUMBER,rdef:1,xml:{type:"u16"},pwn:{rwfunc:"u16",htype:"s32",printf:"%d"},openApi:{type:"number",minimum:0}},u32:{dde:"uint32",dim:1,len:4,...I.TDEF_NUMBER,rdef:1,xml:{type:"u32"},pwn:{rwfunc:"u32",htype:"s32",printf:"%d"},openApi:{type:"number",minimum:0}},s8:{dde:"int8",dim:1,len:1,...I.TDEF_NUMBER,rdef:1,xml:{type:"s8"},pwn:{rwfunc:"s8",htype:"s32",printf:"%d"},openApi:{type:"number"}},s16:{dde:"int16",dim:1,len:2,...I.TDEF_NUMBER,rdef:1,xml:{type:"s16"},pwn:{rwfunc:"s16",htype:"s32",printf:"%d"},openApi:{type:"number"}},s32:{dde:"int32",dim:1,len:4,...I.TDEF_NUMBER,rdef:1,xml:{type:"s32"},pwn:{rwfunc:"s32",printf:"%d"},openApi:{type:"number"}},s64:{dde:"int64",dim:0,len:8,...I.TDEF_NUMBER,rdef:1,xml:{type:"s64"},pwn:{rwfunc:"s64",rwp:"%n{%l}",htype:"{%l}",printf:"%d"},openApi:{type:"number"}},f16:{dde:"float16",dim:1,len:2,...I.TDEF_NUMBER,rdef:1,xml:{type:"floatm16"},pwn:{rwfunc:"f16",rwp:"Float:%n",htype:"f32",printf:"%f"},openApi:{type:"number"}},f32:{dde:"float32",dim:1,len:4,...I.TDEF_NUMBER,rdef:1,xml:{type:"f32"},pwn:{rwfunc:"f32",rwp:"Float:%n",printf:"%f"},openApi:{type:"number"}},f64:{dde:"float64",dim:0,len:8,...I.TDEF_NUMBER,rdef:0,xml:{type:"f64"},pwn:{rwfunc:"f64",rwp:"%n{%l}",htype:"{%l}",printf:"%f"},openApi:{type:"number"}},stamp32:{dde:"stamp32",dim:1,len:4,...W,rdef:0,xml:{type:"stamp4"},pwn:{rwfunc:"stamp32",printf:"%s",printfFormat:"stampToISOString"},openApi:{type:"string",format:"YYYYMMDDhhmmssSSS",description:"UTC"}},stamp40:{dde:"stamp40",dim:0,len:5,...W,rdef:0,xml:{type:"stamp"},pwn:{rwfunc:"stamp40",rwp:"%n{%l}",htype:"{%l}",printf:"%s",printfFormat:"stampToISOString"},openApi:{type:"string",format:"YYYYMMDDhhmmssSSS",description:"UTC"}},bin:{dde:"binary",dim:0,...M,rdef:0,lenUnits:"byte",xml:{type:"string",editmask:"%HEX%"},pwn:{rwfunc:"bin",rwlen:1,rwp:"%n{%l}",htype:"{%l}",printf:null,printfFormat:"memtostr"},openApi:{type:"string",description:"HEX string"}},astr:{dde:"astring",dim:0,...M,rdef:1,lenUnits:"char",xml:{type:"string",param1:"nocodepage"},pwn:{rwfunc:"astr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},nstr:{dde:"nstring",dim:0,...M,rdef:1,lenUnits:"byte",xml:{type:"string"},pwn:{rwfunc:"nstr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},wstr:{dde:"wstring",dim:0,...M,rdef:1,lenUnits:"byte",xml:{type:"string"},pwn:{rwfunc:"wstr",rwlen:1,rwp:"%n[%l+1]",htype:"[%l+1]",printf:"%s"},openApi:{type:"string"}},ustr:{dde:"ustring",dim:0,...M,rdef:0,lenUnits:"byte",xml:{type:"string"},pwn:{rwfunc:"ustr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},cstr:{dde:"cstring",dim:0,...M,rdef:1,lenUnits:"char",xml:{type:"string",editmask:"%HEX%"},pwn:{rwfunc:"cstr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},_siteref:{dim:0,len:80,rdef:0,xml:{type:"string",max:"80",editmask:"%QUERY%all_sites;-name;!id;class;name;%EMPTY%"},pwn:{rwfunc:"astr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}"},js:{rwfunc:"String"}}},I.fieldTypeDefinitions={uint8:I.TYPE_DEFS.u8,uint16:I.TYPE_DEFS.u16,uint32:I.TYPE_DEFS.u32,int8:I.TYPE_DEFS.s8,int16:I.TYPE_DEFS.s16,int32:I.TYPE_DEFS.s32,int64:I.TYPE_DEFS.s64,float16:I.TYPE_DEFS.f16,float32:I.TYPE_DEFS.f32,float64:I.TYPE_DEFS.f64,stamp32:I.TYPE_DEFS.stamp32,stamp40:I.TYPE_DEFS.stamp40,binary:I.TYPE_DEFS.bin,astring:I.TYPE_DEFS.astr,nstring:I.TYPE_DEFS.nstr,wstring:I.TYPE_DEFS.wstr,ustring:I.TYPE_DEFS.ustr,cstring:I.TYPE_DEFS.cstr};let G=["_id","id","_stamp","stamp","tag","_uid","customer_id","site_id","_rec_flags__","applog"];function U(H){let K=H.toLowerCase();return G.includes(K)||/^field\d+$/.test(K)||/^ch\d+$/.test(K)}I.checkForReservedFieldName=U;function J(H){return!!H.fields.find(K=>K.library===null&&K.type!=="shadow")}I.hasContainerAppFields=J})(u0||={});var Ux=u0.DDEContainerName,Ve=u0.allowedRelationTypes,Wn=u0.regexRelation,Xn=u0.ContainerType,Yn=u0.checkForReservedFieldName,sr=u0.ContainerName,We=u0.CONTAINER_DEFS,Zn=u0.SERVER_CONTAINER,Qn=u0.HISTDATA_CONTAINER,xi=u0.CONFIG_CONTAINER,aA=u0.TransferDirection,Xe=u0.fieldTypeDefinitions,ax=i0.yamlRangeToLineInformation,ar;(e=>{class t{constructor(i,s,E){this.manifest=i;this.libraryFiles=s;this.ddeHistory=E}manifest;libraryFiles;ddeHistory;fieldNamesPerContainer={};usedContainerNames={};fileDiagnostics=[];libraryDDE=[];libraryYaml={};parseLibraries(){this.libraryDDE.length=0;let i=[];return this.libraryFiles.forEach(s=>{let{parsedDDE:E,diagnostics:a,parsedYaml:C}=this.parseYamlFile(s.path,s.yaml,s.libraryName);i.push(...a),this.libraryDDE.push(E),this.libraryYaml[s.libraryName]=C}),i}get previousVersion(){return{setPointList:{...this.ddeHistory?.setPointList},containers:{...this.ddeHistory?.containers}}}getContainerOfPreviousVersion(i){let s=this.previousVersion,E=i.startsWith("timeseries_")?i.substring(11):i;return Object.values(s.containers).find(a=>a.title===E)||null}parseMainDDE(i,s){let{parsedDDE:E,diagnostics:a}=this.parseYamlFile(i,s);return a.find(d=>d.level==="error")?{ddeJSON:null,diagnostics:a}:{ddeJSON:this.mergeAndFormat(E),diagnostics:a}}parseYamlFile(i,s,E){this.fileDiagnostics.length=0;let a=new Ox.LineCounter,C=(0,Ox.parseDocument)(s,{lineCounter:a});if(!C.contents)return{parsedDDE:{containers:{},setPointList:{}},diagnostics:[],parsedYaml:null};let l=C.contents||new Ox.YAMLMap;return this.validateContainerDefinition(l.items).forEach(u=>{this.validateAllowedContainer(i,u,a,E),this.validateContainerFields(C,i,u,a)}),{parsedDDE:this.yamlDocToDdeJson(C.toJS({mapAsMap:!0}),E),diagnostics:[...this.fileDiagnostics],parsedYaml:C}}yamlDocToDdeJson(i,s){let E={containers:{},setPointList:{}},a=new Map,C=[...Object.values(Ux)];if(i.get("cloudProject")){let d=Object.values(this.previousVersion.containers).map(p=>p.title),u=[...new Set([...C,...d])];C.length=0,C.push(...u)}for(let d of C)i.has(d)&&a.set(d,i.get(d));let l=i.get("timeseries");if(l)for(let[d,u]of l)a.set(d,u);for(let[d,u]of a){let{realContainer:p,transferDirection:k,legacyTitle:w}=this.getRealContainerInformation(d);if(!p)continue;let b=We[p],y=d.includes("timeseries_")?d.replace("timeseries_",""):d,$={name:p,title:y,previousTitle:w,containerType:b.ctype,volatile:d===Ux.volatile,transferDirection:k,fieldCount:u.size,knownNames:[],libraries:[],arrays:{},shadows:{},fields:[],size:0,fieldIndex:0};s&&$.libraries.push(s);for(let[P,N]of u){let M=[],W=N.get("type"),g=Xe[W];if(!(!g&&W!=="array")){if(W==="array"){let _=[],G=N.get("length"),U=N.get("fields"),J={name:P,length:G,library:s||null,fields:[]};$.arrays[P]=J;for(let I=0;I<G;I++){let H={name:P,index:I};for(let[K,Y]of U){let z=Xe[Y.get("type")];if(!z)continue;J.fields?.find(t0=>t0.name===K)||J.fields.push({name:K,type:Y.get("type"),byteSize:z.len||Y.get("bytes")||Y.get("length")});let T=`${P}[${I}].${K}`,{fields:Q,shadowInfo:r0}=this.createDDEJsonFields(T,s,z,Y);Q.forEach(t0=>{t0.arrayRef=H}),r0&&($.shadows[r0.name]=r0),_.push(...Q)}}M.push(..._)}else{let{arrayInfo:_,fields:G,shadowInfo:U}=this.createDDEJsonFields(P,s,g,N);_&&($.arrays[_.name]=_),U&&($.shadows[U.name]=U),M.push(...G)}M.forEach(_=>{_.index=++$.fieldIndex,$.fields.push(_),$.size+=_.byteSize})}}E.containers[p]=$}return E}getRealContainerInformation(i){let s,E,a;if(this.previousVersion){let C=i.startsWith("timeseries_")?i.substring(11):i,{name:l,direction:d,previousTitle:u}=this.findPreviousUsedContainer(C);s=l,E=d,a=u}if(!s){let C=Object.entries(this.usedContainerNames).find(([,l])=>l===i);C&&(s=C[0])}return s||(s=this.findNextFreeContainer(i)),this.usedContainerNames[s]=i,E||(E=[Ux.setting,Ux.command].includes(i)?aA.down:aA.up),E===aA.up&&s&&We[s].xmits.includes(aA.upPlus)&&(E=aA.upPlus),s&&[sr.configA,sr.configB].includes(s)&&(E=aA.backendOnly),{realContainer:s,transferDirection:E,legacyTitle:a}}findNextFreeContainer(i){if(i===sr.aloha)return sr.aloha;let s=xi;i.startsWith("timeseries_")?s=Qn:[Ux.relations,Ux.storage].includes(i)&&(s=Zn);let E=this.previousVersion?.containers;return E&&(s=s.filter(a=>!Object.hasOwn(E,a))),s.find(a=>!Object.hasOwn(this.usedContainerNames,a))}findPreviousUsedContainer(i){let s=this.previousVersion.containers,E=Object.values(s).find(a=>a.title===i);return{name:E?.name,direction:E?.transferDirection,previousTitle:E?.previousTitle}}createDDEJsonFields(i,s,E,a){let C=a.get("array"),l=[],d,u;if(C){d={name:i,library:s||null,length:C};for(let p=0;p<C;p++){let k=`${i.toLowerCase()}[${p}]`;l.push(this.buildDDEJsonField(k,a,{name:i,index:p},E,s,null))}}else{let p=this.buildDDEJsonField(i,a,null,E,s,null);l.push(p);let k=a.get("shadowFields");if(k){u={name:p.name,byteSize:p.byteSize,byteOffset:p.byteOffset};for(let[w,b]of k){let y=w;i.includes(".")&&(y=i.split(".")[0]+`.${w}`),l.push(this.buildDDEJsonField(y,b,null,E,s,p.name))}}}return{arrayInfo:d,shadowInfo:u,fields:l}}buildDDEJsonField(i,s,E,a,C,l){return{id:i.toLowerCase(),name:i,index:0,library:C||null,byteOffset:0,byteSize:a.len||s.get("bytes")||s.get("length"),type:s.get("type"),title:s.get("title")||null,arrayRef:E,shadowRef:l,unit:s.get("unit"),hex:s.get("hex"),decimalPlaces:s.get("decimalPlaces"),writePermission:this.parseUserLevel(s.get("writePermission")),readPermission:this.parseUserLevel(s.get("readPermission")),channelMode:this.parseChannelMode(s.get("channelMode")),defaultValue:s.get("defaultValue"),scale:s.get("scale"),offset:s.get("offset"),chartMinimum:s.get("chartMinimum"),description:s.get("description"),chartMaximum:s.get("chartMaximum"),chartAlarmLow:s.get("chartAlarmLow"),chartAlarmHigh:s.get("chartAlarmHigh"),chartWarningLow:s.get("chartWarningLow"),chartWarningHigh:s.get("chartWarningHigh"),chartHysteresis:s.get("chartHysteresis"),chartTriggerThreshold:s.get("chartTriggerThreshold"),chartTriggerRelation:this.parseTriggerUndershoot(s.get("chartTriggerRelation")),chartSetPoint:s.get("chartSetPoint"),utilsTransferInterval:!!s.get("utilsTransferInterval"),bitmask:s.get("bitmask")}}resolvePossibleAlias(i,s){return(0,Ox.isAlias)(s)?s.resolve(i).value:s?.value}validateContainerDefinition(i){let s=[];return i.forEach(E=>{let C=E.key.value;C==="timeseries"?E.value.items.forEach(l=>{l.key.value=`timeseries_${l.key}`,s.push(l)}):["dde","cloudProject","constants"].includes(C)||s.push(E)}),s}parseUserLevel(i){if(i==="read-only")return 99;if(i?.startsWith("UL"))return Number(i.substring(2))}parseChannelMode(i){if(i)return{digital:1,"day-counter":2,"interval-counter":3,analog:6,"infinite-counter":12}[i]??i}parseTriggerUndershoot(i){if(i)return{"greater-or-equal":0,"less-or-equal":1}[i]??i}validateAllowedContainer(i,s,E,a){if(!s.value)return;let l=s.key.value;if(a&&(l.startsWith("aloha")||l.startsWith("timeseries"))){let d=l.includes("_")?l.split("_")[1]:l;this.fileDiagnostics.push({file:i,level:"error",message:`"${d}" not allowed within a library`,...ax(E,s.key.range)})}if(R.isAnalytics(this.manifest)&&![Ux.relations,Ux.storage].includes(l)){let d=l.includes("_")?l.split("_")[1]:l;this.fileDiagnostics.push({file:i,level:"error",message:`"${d}" not allowed within an analytics app. Only "relations" and "storage" are allowed.`,...ax(E,s.key.range)})}}validateContainerFields(i,s,E,a){let C=E.value;if(!C)return;let l=E.key.value;Object.hasOwn(this.fieldNamesPerContainer,l)||(this.fieldNamesPerContainer[l]=[]);let d=this.getContainerOfPreviousVersion(l);C.items.forEach(u=>{let k=u.key.value;this.checkForContainerRelation(u,i,s,a),this.validateFieldName(u,l,s,a),this.checkFieldNameLength(u,l,s,a);let w=d?.fields.find(M=>M.id===k.toLowerCase()),b=u.value,y=b.get("type",!0),$=this.resolvePossibleAlias(i,y),P=b.get("bytes",!0),N=this.resolvePossibleAlias(i,P);w&&(y&&$&&w.type!==$&&this.fileDiagnostics.push({file:s,level:"warning",message:`Field type changed from "${w.type}" to "${$}".
1642
- Changing the type of an existing field can result in data loss or unexpected behaviour.`,...ax(a,y.range)}),P&&N&&w.byteSize!==N&&this.fileDiagnostics.push({file:s,level:"warning",message:`Byte size changed from '${w.byteSize}' to '${N}'.
1643
- Changing the size of an existing field can result in data loss or unexpected behaviour.`,...ax(a,P.range)}))})}checkForContainerRelation(i,s,E,a){let C=i.value.get("fields");C&&C.items.forEach(d=>{this.checkForContainerRelation(d,s,E,a)}),i.value.items.forEach(d=>{let u=d.value;if(u?.value&&Wn.exec(`${u.value}`)){let p=d.key.value;if(p){if(!Object.hasOwn(Ve,p))return this.fileDiagnostics.push({file:E,level:"error",message:`Property "${p}" does not allow relations.`,...ax(a,u.range)});if(["scale","offset"].includes(p))return this.fileDiagnostics.push({file:E,level:"warning",message:`Container relations for "${p}" are not available within the dlo source.`,...ax(a,u.range)})}return this.validateContainerRelation(p,u,s,E,a)}})}validateFieldName(i,s,E,a){let C=this.fieldNamesPerContainer[s],l=i.key,d=l.value;Yn(d)&&this.fileDiagnostics.push({file:E,level:"error",message:`Reserved property "${d}" is not allowed.`,...ax(a,l.range)});let u=i.value.get("shadowFields");u&&u.items.forEach(p=>{this.validateFieldName(p,s,E,a)}),C.includes(d.toLowerCase())?this.fileDiagnostics.push({file:E,level:"error",message:`Field name "${d}" is already occupied`,...ax(a,l.range)}):C.push(d.toLowerCase())}checkFieldNameLength(i,s,E,a){let C=i.key,l=C.value,u=`DDE_${s.startsWith("timeseries")?s.substring(10):s}_`,p=31-u.length;u.length+l.length>31&&this.fileDiagnostics.push({file:E,level:"error",code:TA.CODE.ddeFieldLength,message:`Field name "${l}" to long. ${p} characters allowed for this field/container.`,...ax(a,C.range)})}validateContainerRelation(i,s,E,a,C){let[l,d,u]=s.value.split(".",3),[p,k]=l.split("@"),w=p?p.split(":")[1]:null,y=(w&&this.libraryYaml[w]?this.libraryYaml[w]:E).contents?.get(k),$=d.split("[")[0],P=null;if(y){let N=y.get($);if(N)if(u){let M=N.get("fields");M&&M.get(u)&&(P=M.get(u))}else P=N;else P=this.findRelatedShadowField(y,$)}if(P){let N=Ve[i],M=P.get("type");N.includes(M)||this.fileDiagnostics.push({file:a,level:"error",message:`Related field type "${M}" is not allowed for attribute "${i}".`,...ax(C,s.range)})}else w&&!this.libraryYaml[w]?this.fileDiagnostics.push({file:a,level:"error",message:`Related library "${w}" does not exist.`,...ax(C,s.range)}):this.fileDiagnostics.push({file:a,level:"error",message:`Related field "${s.value}" does not exist.`,...ax(C,s.range)})}findRelatedShadowField(i,s){for(let E of i.items){let C=E.value.get("shadowFields");if(!C)continue;let l=C.get(s);if(l)return l}}mergeAndFormat(i){let s={containers:{},setPointList:{}};for(let E of this.libraryDDE)this.combineDDE(s,E);return this.combineDDE(s,i),this.sortContainerFields(s),this.generateSetPointList(s),s}combineDDE(i,s){for(let[E,a]of Object.entries(s.containers)){let C=i.containers[E];C?(C.title=a.title,C.knownNames.unshift(a.title),C.libraries.push(...a.libraries),C.fields.push(...a.fields),C.arrays={...C.arrays,...a.arrays},C.shadows={...C.shadows,...a.shadows}):(C=i.containers[E]=structuredClone(a),C.knownNames.unshift(a.title),C.fieldCount=C.fields.length,C.fieldIndex=0);let l=this.initialContainerByteOffset(C);for(let[d,u]of C.fields.entries()){if(u.shadowRef){let p=C.shadows[u.shadowRef];u.byteOffset=p.byteOffset}else u.byteOffset=l,this.updateShadowFieldInformation(i.containers[E],u),l+=u.byteSize||0;d>C.fieldCount-1&&(u.index+=C.fieldIndex)}C.fieldIndex+=a.fieldIndex,C.knownNames=[...new Set(C.knownNames)],C.libraries=[...new Set(C.libraries)],C.fieldCount=C.fields.length}}initialContainerByteOffset(i){return i.containerType===Xn.hx?1:0}updateShadowFieldInformation(i,s){s&&Object.hasOwn(i.shadows,s.name)&&(i.shadows[s.name].byteOffset=s.byteOffset)}sortContainerFields(i){for(let s of Object.values(i.containers)){let{sortedFields:E,containerSize:a}=this.sortFields(s);s.fields=E,s.size=a,s.fieldCount=s.fields.length}}sortFields(i){let s=i.fields.filter(p=>!p.shadowRef),E=i.fields.filter(p=>p.shadowRef),a=[],C=i.name;if(this.previousVersion.containers[C]){let p=this.sortPreviousContainerFields(i,s);a.push(...p)}else a.push(...s);a.forEach(p=>{this.updateShadowFieldInformation(i,p)});let d=a[a.length-1],u=d.byteSize+d.byteOffset;return E.forEach(p=>{p.byteOffset=i.shadows[p.shadowRef].byteOffset,a.push(p)}),{sortedFields:a,containerSize:u}}sortPreviousContainerFields(i,s){let E=i.name,a=this.previousVersion.containers[E],C=[],l=this.initialContainerByteOffset(i);for(let d of a.fields){if(d.shadowRef)continue;let u=s.findIndex(k=>d.id===k.name?.toLowerCase());if(u===-1){l=d.byteOffset+d.byteSize;continue}let p=s[u];if(d.type!==p.type&&d.byteSize!==p.byteSize){l=d.byteOffset+d.byteSize;continue}p.byteOffset=d.byteOffset,s.splice(u,1),C.push(p),l=this.initialContainerByteOffset(i)}if(l>this.initialContainerByteOffset(i)){let d=s.shift();C.push(...this.generatePlaceholderFieldIfNeeded(l,d)),this.updateShadowFieldInformation(i,d)}for(let d of s){if(d.shadowRef)d.byteOffset=i.shadows[d.shadowRef].byteOffset;else{this.updateShadowFieldInformation(i,d);let u=C[C.length-1];u.shadowRef&&(u=i.shadows[u.shadowRef]),d.byteOffset=u.byteOffset+u.byteSize}C.push(d)}return C}generatePlaceholderFieldIfNeeded(i,s){let E=[];if(s)s.byteOffset=i,E.push(s);else{let a={byteOffset:i,byteSize:0,id:"_shadow",library:null,name:"_shadow",type:"shadow",arrayRef:null,shadowRef:null,title:null,index:0};E.push(a)}return E}generateSetPointList(i){i.setPointList={...this.previousVersion.setPointList||{}};for(let s of Object.values(i.containers))for(let E of s.fields)E.chartSetPoint&&(Object.hasOwn(i.setPointList,E.name)||(i.setPointList[E.name]=this.getNextSetpointValue(i.setPointList)))}getNextSetpointValue(i){let s=[...Object.values(i),0];return Math.max(...s)+1}}e.PreCompiler=t})(ar||={});var tx=u0.TransferDirection,cx=u0.parseXMLValueWithRelation,Ai=u0.parseXMLBitmask,ri=u0.parseXMLDefaultValue,ei=u0.fieldTypeDefinitions;function Be(t,e){let i=[];function s(C,l=!0){if(l){if(Array.isArray(C)){i.push.apply(i,C);return}i.push(""+C)}}function E(C,l){C!=="mergeofs"&&s(`${C}=${l}`)}s("// DDE STRUCTURE created by Microtronics Studio");let a="source=rm2mraw";for(let[C,l]of Object.entries(e.containers)){C.startsWith("histdata")&&l.transferDirection!==tx.deviceOnly&&(s("<split>"),s(a),s("target="+C),s("key=0"+C.substr(-1,1)),s("</split>")),s("<table>"),E("name",C),E("alias",l.title),E("title",l.title.replace("_"," "));let d={};[tx.none,tx.backendOnly,tx.deviceOnly,tx.down,tx.downPlus].includes(l.transferDirection)&&E("upload","0"),[tx.none,tx.backendOnly,tx.deviceOnly,tx.up,tx.upPlus].includes(l.transferDirection)&&E("download","0"),(R.isIotApp(t)||R.isLibrary(t))&&[tx.up,tx.upPlus].includes(l.transferDirection)&&E("edit","99");for(let u of l.fields){if(u.type==="shadow")continue;let p=ti(u),k=ei[p.type],w=cx("title",p,e)||p.name;!w.startsWith("%")&&p.library&&(w=`${p.library}: ${w}`);let b={title:w,alias:p.name,index:u.index,...d};b.byteofs=`${p.byteOffset}`;for(let[y,$]of Object.entries(k.xml))b[y]=$;Object.hasOwn(k,"xmlOut")&&k.xmlOut(b,p,e),b.units=cx("unit",p,e),b.chmode=cx("channelMode",p,e),b.ialarm_high=cx("chartAlarmHigh",p,e),b.ialarm_low=cx("chartAlarmLow",p,e),b.iwarn_high=cx("chartWarningHigh",p,e),b.iwarn_low=cx("chartWarningLow",p,e),b.hysterese=cx("chartHysteresis",p,e),b.itrigger=cx("chartTriggerThreshold",p,e),b.itriggerus=cx("chartTriggerRelation",p,e),b.setpoint=cx("chartSetPoint",p,e),b.bitmask=Ai(p),p.hex&&(b.editmask="%HEX%"),p.readPermission&&(b.view=p.readPermission),p.writePermission&&(b.edit=p.writePermission),p.defaultValue!==void 0&&(b.default=ri(p)),p.utilsTransferInterval===!0&&(b.param0="%FFFF0005%transfer_interval"),s("<field>"),p.library&&s(`// declared by ${p.library} library`,!0);for(let[y,$]of Object.entries(b))$!==void 0&&E(y,`${$}`);s("</field>")}["alerts","applog"].includes(C)||(s("</table>"),s("// "+l.size+" bytes total size"))}return s("<split>"),s(a),s("target=alarm0"),s("key=20"),s("</split>"),s("<split>"),s(a),s("target=applog0"),s("key=28"),s("</split>"),i.join(`
1644
- `)}function ti(t){let e=structuredClone(t),F=t.arrayRef?.index;if(F===void 0)return e;for(let[i,s]of Object.entries(e))e[i]=i0.patchValueWithArrayInfo(s,F);return e}var mx=z0(require("semver"));var jx=z0(require("semver"));var oA={DP_registry_sz:1024,DP_config_sz:4e3,DP_histdata_sz:1024,DP_DISPLAY_CNT:0,DP_LED_CNT:0,DP_BUTTON_CNT:0,DP_GPIO_CNT:0,DP_IRQ_CNT:0,DP_DIGOUT_CNT:0,DP_UIN_CNT:0,DP_TEMP_CNT:0,DP_I2C_CNT:0,DP_SPI_CNT:0,DP_UART_CNT:0,DP_RS485_CNT:0,DP_RS232_CNT:0,DP_WIFI_CNT:0,DP_BLE_CNT:0,DP_LORA_CNT:0,DP_NBIOT_CNT:0},Ce={max_size:1e5,max_fields:1e3},bx={max_size:4e3,max_fields:1e3},dx={max_size:1024,max_fields:1e3},vA={configA:Ce,configB:Ce,configC:Ce,config0:bx,config1:bx,config2:bx,config3:bx,config4:bx,config5:bx,config6:bx,config7:bx,config8:bx,config9:bx,histdata0:dx,histdata1:dx,histdata2:dx,histdata3:dx,histdata4:dx,histdata5:dx,histdata6:dx,histdata7:dx,histdata8:dx,histdata9:dx,aloha:{...dx,warn_fields:10},alerts:{max_size:13,max_fields:0,exact_match:!0},applog:{max_size:125,max_fields:0,exact_match:!1}},or={m22x:{name:"M22x",dpid:"m22x",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M M2 HW1.0"],alt_ids:[],generation:"M2",prog_mem:256*1024,data_mem:64*1024,total_mem:256*1024,hw_reqd:!1,dde:vA,auto_inc:{...oA,DP_LED_CNT:1,DP_GPIO_CNT:6,DP_IRQ_CNT:2,DP_I2C_CNT:1,DP_SPI_CNT:1,DP_UART_CNT:2,DP_WIFI_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}},m23x:{name:"M23x",dpid:"m23x",interface:{type:"usb",filter:{vendorId:1155},fileChunk:4096},usb_ids:["rapidM2M M23 HW2.0","rapidM2M M23 HW1.0"],alt_ids:[],generation:"M23",prog_mem:8*1024*1024,data_mem:8*1024*1024,total_mem:8*1024*1024,hw_reqd:!1,dde:vA,auto_inc:{...oA,DP_LED_CNT:1,DP_GPIO_CNT:6,DP_IRQ_CNT:2,DP_I2C_CNT:1,DP_SPI_CNT:1,DP_UART_CNT:1,DP_WIFI_CNT:1},usbcaps:{dbgItfMayHangFixed:"99v999"},dlo:{compileRestrictions:{}}},nrf91:{name:"NRF91",dpid:"nrf91",interface:{type:"usb",filter:{vendorId:9540},fileChunk:2048},usb_ids:["rapidM2M NRF91 HW1.0","ONE NRF91 HW1.0","rapidM2M Evolve HW1.0"],alt_ids:[],generation:"NRF91",prog_mem:256*1024,data_mem:64*1024,total_mem:256*1024,hw_reqd:!1,dde:vA,auto_inc:{...oA,DP_LED_CNT:1,DP_GPIO_CNT:32,DP_IRQ_CNT:6,DP_I2C_CNT:2,DP_SPI_CNT:2,DP_UART_CNT:2,DP_AIN_CNT:8,DP_PWM_CNT:3},usbcaps:{}},m2blegw:{name:"BLE Gateway",dpid:"m2blegw",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M BLEGW HW1.0"],alt_ids:[],generation:"M2",prog_mem:256*1024,data_mem:256*1024,total_mem:256*1024,hw_reqd:!1,dde:vA,auto_inc:{...oA,DP_DISPLAY_CNT:1,DP_DISPLAY_TYPE:"xc",DP_BUTTON_CNT:1,DP_BLE_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}},m2easyv3:{name:"myDatalogEasy V3",dpid:"m2easyv3",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M Easy HW3.0"],alt_ids:["rapidM2M EasyIoT HW1.0","rapidM2M M220 HW1.0"],generation:"M2",prog_mem:256*1024,data_mem:256*1024,total_mem:256*1024,hw_reqd:!1,dde:vA,auto_inc:{...oA,DP_LED_CNT:1,DP_BUTTON_CNT:1,DP_DIGOUT_CNT:1,DP_UIN_CNT:4,DP_TEMP_CNT:1,DP_RS485_CNT:1,DP_RS232_CNT:1,DP_BLE_CNT:1,DP_LORA_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}},m2easyiot:{name:"myDatalogEasy IoT",dpid:"m2easyiot",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M EasyIoT HW1.0"],alt_ids:[],generation:"M2",prog_mem:256*1024,data_mem:256*1024,total_mem:256*1024,hw_reqd:!1,dde:vA,auto_inc:{...oA,DP_LED_CNT:1,DP_BUTTON_CNT:1,DP_DIGOUT_CNT:1,DP_UIN_CNT:4,DP_TEMP_CNT:1,DP_RS485_CNT:1,DP_RS232_CNT:1,DP_BLE_CNT:1,DP_LORA_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}}};var le=require("vscode-uri");var J0=u0.ContainerType,d0=u0.TransferDirection,IA=u0.regexRelation,ni=u0.CONFIG_CONTAINER,De=u0.CONTAINER_DEF_DLO_CID_BASE,SA=u0.CONTAINER_DEFS,Er=u0.fieldTypeDefinitions,Ze=i0.isNumeric;function ox(t){let e=Er[t.type];return e.pwn.rwp||(e.pwn.rwp="%n"),e.pwn.htype||(e.pwn.htype=e.pwn.rwfunc),e.pwn}var vr="Microtronics/dlo-core";function ce(t){return R.isLibrary(t)&&t.name==="dlo-core"?t.version:t.libraryDependencies&&Object.hasOwn(t.libraryDependencies,vr)?_0.rangeToVersion(t.libraryDependencies[vr]):t.libraryDevDependencies&&Object.hasOwn(t.libraryDevDependencies,vr)?_0.rangeToVersion(t.libraryDevDependencies[vr]):null}function ii(t){let e=ce(t);return e===null||jx.gte(e,"0.3.0")?jx.valid(t.version)?t.version:jx.coerce(`${t.version}`):jx.coerce(t.version)?.major}function fe(t){let e=ce(t);if(e===null)return!1;let F=jx.coerce(e);return jx.gte(F,"1.1.0")}function Fi(t){let e=ce(t);if(e===null)return!1;let F=jx.coerce(e);return jx.gte(F,"1.15.0")}var si=["u8","u16","u32","s8","s16","s32","s64","f16","f32","f64"];function ai(t){if(t.type==="ustring")return!1;if(t.defaultValue!=="NaN")return!0;let e=ox(t);return!e||e==="skip"?!1:si.includes(`${e.rwfunc}`)}function oi(t,e,F){t("PROJECT META");let{dpid:i,registry:s}=F;if(!i)throw new Error('Setting "dpid" is required to generate dlo files');let{auto_inc:E}=or[i];e("APM_DPID",`${i}`),e(`APM_DPID_${i}`,"1"),e(`APM_DPID_${i.toUpperCase()}`,"1"),e("APM_ID",s?.id||"");let a=ii(F);e("APM_VERSION",`${a}`),e("APM_NAME",`${F.name}`),e("APM_AUTHOR",`${F.publisher}`);for(let[C,l]of Object.entries(E))Ze(l)?e(C,`${l}`):e(C,`"${l}"`)}function vi(t,e,F,i){let s=i.flat,{definesWithSource:E}=i;e("GLOBAL DEFINES");for(let[a,C]of Object.entries(s)){let l=E[a]?.comment;if(l){let u=l.split(`
1645
- `);if(u.length===1)t(`/** ${u[0]} */`);else{t("/**");for(let p of u)t(` * ${p}`);t(" */")}}let d=Object.hasOwn(s,C);F(a,`${C}`,d)}}function Ei(t,e,F,i){let s=parseInt(t.substring(6)),E=1<<s;F[s]=e.size,i.cx_isupm|=[d0.both,d0.none,d0.deviceOnly,d0.up,d0.upPlus].includes(e.transferDirection)?E:0,i.cx_isvolatilem|=e.volatile?E:0,i.cx_isdnm|=[d0.both,d0.none,d0.deviceOnly,d0.down,d0.downPlus].includes(e.transferDirection)?E:0,i.cx_isvlm|=[d0.bothPlus,d0.upPlus,d0.downPlus].includes(e.transferDirection)?E:0}function Bi(t,e,F,i){let s=parseInt(t.substring(8));F[s]=e.size,i.hx_isvlm|=[d0.upPlus].includes(e.transferDirection)?1<<s:0}function Ci(t){return[d0.upPlus].includes(t.transferDirection)}function fi(t,e,F){let i=0,s=Array(10).fill(0),E={cx_isupm:0,cx_isvolatilem:0,cx_isdnm:0,cx_isvlm:0},a=0,C=Array(10).fill(0),l={hx_isvlm:0},d;for(let[p,k]of Object.entries(F.containers))k.containerType===J0.cx&&k.transferDirection!==d0.backendOnly?(Ei(p,k,s,E),i=Math.max(i,k.size)):k.containerType===J0.hx?(Bi(p,k,C,l),i=Math.max(i,k.size)):k.containerType===J0.aloha&&(d=Ci(k),i=Math.max(i,k.size));e("DDE CORE"),t(`#define _DDE_BUF_BYTES (${i}+10)`),t(""),t("// c0 c1 c2 c3 c4 c5 c6 c7 c8 c9"),t(`stock _DDE_CONFIGS_size[] =[ ${s.join(", ")}];`),t(`#define _DDE_CONFIGS_upm 0b${E.cx_isupm.toString(2)} // ..is tolerant when reading back container with under-length`),t(`#define _DDE_CONFIGS_volatilem 0b${E.cx_isvolatilem.toString(2)} // inits container as volatile`),t(`#define _DDE_CONFIGS_downm 0b${E.cx_isdnm.toString(2)} // reading the container expects strict length`),t(`#define _DDE_CONFIGS_varlenm 0b${E.cx_isvlm.toString(2)} // allow partial write (dde_wxxx)`),t(`#define _DDE_CONFIGS_rdef 0b${a.toString(2)} // ..apply defaults reading a container with under-length`),t(""),t("// h0 h1 h2 h3 h4 h5 h6 h7 h8 h9"),t(`stock _DDE_HISTS_size[] =[ ${C.join(", ")}];`),t(`#define _DDE_HISTS_varlenm 0b${l.hx_isvlm.toString(2)} // allow partial write (dde_wxxx)`);let u=[...C];Object.hasOwn(F,"applog")&&u.push(125),Object.hasOwn(F,"alerts")&&u.push(13),t(`#define _DDE_HISTS_maxsize ${Math.max(...u)}`),t(""),d!==void 0&&(t(`#define _DDE_ALOHA_varlen ${d?1:0}`),t(""))}function Di(t,e,F){for(let[i,s]of Object.entries(F.containers)){if(s.containerType==="applog")continue;e(`${s.title.toUpperCase()} - ${s.transferDirection} via #${i}`);let E=De(s.containerType,s.transferDirection);if(!E){t("// ... container not available in DLO");continue}let a=`DDE_${s.containerType===J0.aloha?J0.aloha:s.title}`,C=SA[i];t(`// ${a}_id - container identifier required for ${a}_read/_write operations`),t(`#define ${a}_id (${E}+${C.cnum||0})`),t(`// ${a}_sz - [byte] container total size`),t(`#define ${a}_sz ${s.size}`),C.cnum!==void 0&&(t(`// ${a}_idx - 0+ container index number`),t(`#define ${a}_idx ${C.cnum}`))}}function Qe(t,e,F){let i=[],s=i.push.bind(i);function E(C){s(`
1646
- // === ${C} ===
1647
- `)}function a(C,l,d=!1){let u=Ze(l)?"":'"';d&&(u=""),s(`#define ${C} ${u}${l}${u}`)}return oi(E,a,F),vi(s,E,a,e),fi(s,E,t),Di(s,E,t),i.join(`
1648
- `)}var RA=class{constructor(e,F,i){this.manifest=e;this.ddeMap=F;this.context=i;this.sourceType="pawnSource"}manifest;ddeMap;context;globalVariables=[];pawnGlobalSource=[];pawnHelperSource=[];timeSeriesSource=[];readWriteSource=[];definesSource=[];defaultDefinesSource=[];knownDefines=[];pawnIndent=0;sourceType;pawn(e,F){F&&e==="<"&&this.pawnIndent--,{pawnSource:this.pawnGlobalSource,globalVariables:this.globalVariables,timeseries:this.timeSeriesSource,readWrite:this.readWriteSource,defines:this.definesSource,defaultDefines:this.defaultDefinesSource}[this.sourceType].push(" ".repeat(this.pawnIndent)+(F||e)),F&&e===">"&&this.pawnIndent++}generate(){for(let[e,F]of Object.entries(this.ddeMap.containers))this.context&&!F.libraries.includes(this.context)||!De(F.containerType,F.transferDirection)||!F.fields||!this.context&&!u0.hasContainerAppFields(F)||SA[e].ctype!==J0.cx&&this.context||(this.generateGlobalVarsForContainer(F),this.generateReadWriteFunctions(F));return this.mergeSourceTypes(),{globals:this.pawnGlobalSource,helper:this.pawnHelperSource}}createGlobalVar(e,F){this.sourceType="globalVariables";let i=F?this.variableNameForPawnDefinition(e,F):e;if(F){let s=this.generateCommentForField(F);s&&(Array.isArray(s)?(this.pawn("/**"),s.forEach(E=>{this.pawn(` * ${E}`)}),this.pawn(" */")):this.pawn(`// ${s}`))}this.pawn(`stock ${i}${F?this.initialiserForGlobalVar(F):""};`)}initialiserForGlobalVar(e){if(e.defaultDloDefine===void 0||e.arrayRef)return"";let F=ox(e);return!F||F==="skip"||`${F.rwp||""}`.includes("%l")?"":` = ${e.defaultDloDefine}`}insertSection(e){this.pawn(""),this.pawn("// ============================================================================="),this.pawn(`// ${e}`),this.pawn("// ============================================================================="),this.pawn("")}mergeSourceTypes(){this.sourceType="pawnSource",this.definesSource.length&&(this.insertSection("Defines"),this.pawnGlobalSource.push(...this.definesSource)),this.defaultDefinesSource.length&&(this.insertSection("Field defaults"),this.pawnGlobalSource.push(...this.defaultDefinesSource)),this.globalVariables.length&&(this.insertSection("Global Variables"),this.pawnGlobalSource.push(...this.globalVariables)),this.readWriteSource.length&&(this.insertSection("Internal read/write calls"),this.pawnHelperSource.push(...this.readWriteSource)),this.pawn("")}generateGlobalVarsForContainer(e){this.sourceType="globalVariables",this.pawn(""),this.pawn(`// Container '${e.title.replace("_"," ")}'`),this.pawn("");let F=`DDE_${e.title}`;this.generateArrayDefines(F,e);for(let i of e.fields){if(i.type==="shadow"||i.shadowRef||i.library!==this.context)continue;if(i.arrayRef!==null){let E=e.arrays[i.arrayRef.name],a=`${F}_${i.arrayRef.name}`;E.fields?.length&&(a+=`_${i.name.split(".")[1]}`),this.createDefaultDefineForField(a,i);continue}let s=this.generateFieldVariableName(F,i);this.createDefaultDefineForField(s,i),this.createGlobalVar(`${s}`,i)}}generateArrayDefines(e,F){for(let i of Object.values(F.arrays)){if(this.context!==i.library)continue;let s=`${e}_${i.name}_dim`;if(this.sourceType="defines",this.pawn(`#define ${s} ${i.length}`),i.fields){for(let C of i.fields)Er[C.type]?.isBlob&&C.byteSize&&this.addDefine(`${e}_${i.name}_${C.name}_dim`,C.byteSize);let E={...F};E.fields=[],i.fields.forEach(C=>{E.fields.push({arrayRef:null,shadowRef:null,byteOffset:0,byteSize:C.byteSize,id:C.name,library:i.library,name:C.name,type:C.type,title:null,index:0})});let a=`${e}_${i.name}_def`;this.generateTypeDefinitions(E,a),this.createGlobalVar(`${e}_${i.name}[${s}][${a}]`)}else this.createGlobalVar(`${e}_${i.name}[${s}]`)}}generateCommentForField(e){let F=[`@type ${e.type}`];if(e.description&&F.unshift(e.description),e.defaultValue!==void 0){let{value:i,reason:s}=this.parseFieldDefault(e);F.push(`@default ${i} ${s||""}`)}return F}generateFieldVariableName(e,F){let i=`${e}_${F.name}`,s=Object.hasOwn(Er,F.type)&&Er[F.type].isBlob,E=F.byteSize;return E&&s&&(this.sourceType="defines",this.pawn(`#define ${e}_${F.name}_dim ${E}`),this.pawn(`#define ${e}_${F.name}_iter() for(new i=0;i<${E};i++)`)),this.sourceType="globalVariables",i}generateTypeDefinitions(e,F){this.sourceType="defines";let i=e.fields;if(!i)return;let s=[];this.pawn(">",`#define ${F} [`);for(let E of i){let a=this.generateFieldTypeDefinition(E,e,s,F);a!==null&&this.pawn(a)}this.pawn("<","]")}handleArrayFieldDedup(e,F,i,s){let E=e.arrayRef;if(E){let l=F.arrays[E.name];if(!i.includes(E.name)&&!l.fields)i.push(E.name);else return null}let a=e.arrayRef?e.arrayRef.name:e.name,C=e.arrayRef?`[${s}_${a}_dim]`:"";return{fieldName:a,fld_dim:C}}generateFieldTypeDefinition(e,F,i,s){if(e.type==="shadow"||e.shadowRef||e.library!==this.context)return null;let E=this.handleArrayFieldDedup(e,F,i,s);if(E===null)return null;let{fieldName:a,fld_dim:C}=E,l="";if(e.type==="struct")l="// ."+a+C;else{let d=ox(e);if(!d)return null;d==="skip"?l=`// skipped - .${a}${C}`:l+=d.rwp.replace("%n",`.${a}${C}`).replace("%l",e.byteSize)}return l+=",",e.library&&(l+=` // declared by ${e.library} library`),l}variableNameForPawnDefinition(e,F){let i=ox(F);return i&&i!=="skip"?i.rwp.replace("%n",`${e}`).replace("%l",F.byteSize):e}createDefaultDefineForField(e,F){if(this.sourceType="defaultDefines",F.scale!==void 0&&this.addDefine(`${e}_scale`,F.scale),F.offset!==void 0&&this.addDefine(`${e}_offset`,F.offset),F.defaultValue!==void 0&&ai(F)){let{value:i,reason:s}=this.parseFieldDefault(F),E=`${e}_default`;this.addDefine(E,i,s)&&(F.defaultDloDefine=E)}}addDefine(e,F,i){return IA.exec(`${F}`)?!1:(this.knownDefines.includes(e)||(i&&this.pawn(`// ${i}`),this.pawn(`#define ${e} ${F}`),this.knownDefines.push(e)),!0)}generateReadWriteFunctions(e){let F=e.name,i=SA[F],s=`DDE_${e.containerType===J0.aloha?J0.aloha:e.title}`;[d0.both,d0.bothPlus,d0.none,d0.deviceOnly,d0.up,d0.upPlus].includes(e.transferDirection)&&this.generateWriteMethod(s,e),i.ctype===J0.cx&&this.generateReadMethod(s,e)}generateWriteMethod(e,F){this.sourceType="readWrite";let i=`DDE_${F.title}_id`,s=[J0.hx,J0.aloha].includes(F.containerType),E=F.containerType===J0.hx,a=F.containerType===J0.aloha,C=`_${e}_write`,l=fe(this.manifest)?", flags":"",d=E?`stamp${l}`:"",u=fe(this.manifest)?"const stamp=0, const flags=0":"const stamp=0";this.pawn(">",`stock ${C}(${E?u:""}) {`),s&&this.pawn(`dde_wbegin(DDE_${a?J0.aloha:F.title}_id);`),this.generateRWFunctionBody(e,F,"dde_w"),s&&this.pawn(`return dde_wend(${d});`),this.pawn("<","}"),this.pawn(""),this.sourceType="globalVariables";let p=`${e}_transfer`,k=`${e}_persist`,w=this.functionArgumentsForDdeWrite(E,s);if(this.pawn(">",`${this.context?"stock ":""}${p}(${w}) {`),s)this.pawn(`${C}(${d});`);else{let b=F.name.slice(-1);this.pawn(`dde_flush(${b}, immediate);`)}this.pawn("<","}"),this.pawn(""),F.volatile&&(this.pawn(">",`stock ${k}() {`),this.pawn(`return rM2M_CfgFlush(${i});`),this.pawn("<","}"))}functionArgumentsForDdeWrite(e,F){let i=fe(this.manifest)?", const flags=0":"";return e?`const stamp=0${i}`:F?"":"bool:immediate=false"}generateReadMethod(e,F){this.sourceType="readWrite";let i=`_${e}_read`;this.pawn(">",`stock ${i}() {`),this.generateRWFunctionBody(e,F,"dde_r"),this.pawn("<","}"),this.pawn("")}isFieldSkipped(e){return e.type==="shadow"||!!e.shadowRef||e.library!==this.context}emitFieldRW(e,F,i,s,E,a,C){if(!F.arrayRef)return this.emitSingleField(e,F,i,s,C);let l=F.arrayRef.name,d=E.get(l);return d?a.has(l)?C:(a.add(l),this.emitArrayLoop(e,d,i)):this.emitSingleField(e,F,i,s,C)}generateRWFunctionBody(e,F,i){let s=F.fields,E=this.analyzeArrayGroups(s,e,F),a=new Set,C=-1;for(let l of s){if(this.isFieldSkipped(l))continue;let d=ox(l);!d||d==="skip"||(C=this.emitFieldRW(e,l,i,d,E,a,C))}}defaultArgumentFor(e,F){return e.defaultDloDefine===void 0?"":F==="dde_r"||Fi(this.manifest)?`, ${e.defaultDloDefine}`:""}emitSingleField(e,F,i,s,E){F.byteOffset!==E&&this.pawn(`_dde_idx = ${F.byteOffset};`);let a="";a+=i,a+=s.rwfunc;let C=`${e}_${F.name}`;return a+=`(${C}`,s.rwlen&&(a+=`, ${F.byteSize}`),a+=this.defaultArgumentFor(F,i),this.pawn(a+");"),F.byteOffset+F.byteSize}emitArrayLoop(e,F,i){this.pawn(">",`for (new _i = 0; _i < ${F.dimDefine}; _i++) {`);let s=-1;for(let E of F.templateFields){let a=ox(E);if(!a||a==="skip")continue;let C=E.byteOffset;C!==s&&this.pawn(`_dde_idx = ${C} + (_i * ${F.stride});`),s=C+E.byteSize;let l=`${e}_${E.name.replace(/\[\d+\]/,"[_i]")}`,d=`${i}${a.rwfunc}(${l}`;a.rwlen&&(d+=`, ${E.byteSize}`),d+=this.defaultArgumentFor(E,i),this.pawn(d+");")}return this.pawn("<","}"),-1}analyzeArrayGroups(e,F,i){let s=this.collectArrayFieldsByIndex(e);return this.buildArrayGroups(s,F,i)}collectArrayFieldsByIndex(e){let F=new Map;for(let i of e){if(this.isFieldSkipped(i)||!i.arrayRef)continue;let s=ox(i);if(!s||s==="skip")continue;let{name:E,index:a}=i.arrayRef;F.has(E)||F.set(E,new Map);let C=F.get(E);C.has(a)||C.set(a,[]),C.get(a).push(i)}return F}validateArrayStride(e,F){let i=F[0].byteOffset-e[0].byteOffset;if(i<=0)return null;for(let s=0;s<e.length;s++)if(F[s].byteOffset-e[s].byteOffset!==i)return null;return i}buildArrayGroups(e,F,i){let s=new Map;for(let[E,a]of e){let C=i.arrays[E];if(!C||C.length<2)continue;let l=a.get(0),d=a.get(1);if(!l||!d||l.length===0||d.length===0||l.length!==d.length)continue;let u=this.validateArrayStride(l,d);u!==null&&s.set(E,{arrayName:E,dimDefine:`${F}_${E}_dim`,stride:u,templateFields:l})}return s}parseFieldDefault(e){let F=ox(e),i=e.defaultValue;function s(a,C){return{value:a,reason:C}}switch(e.type){case"astring":case"nstring":case"cstring":return s(`"${i}"`);case"wstring":return s(`''${i}''`);case"ustring":return s(`/* default not supported: ${i} */`);case"binary":{let C=`{ 0x${(i.substring(2).replace(/\s+/g,"").match(/.{1,2}/g)||[]).join(", 0x")} }`;return s(C)}}if(i==="NaN"){let a=F.rwfunc;return s(`${a}_NaN`.toUpperCase())}let E=this.parseFieldScaleOffset(e);return E?s(E.calculated,E.reason):(i!==void 0&&!IA.exec(`${i}`)&&e.type.startsWith("float")&&i%1===0&&(i=i.toFixed(e.decimalPlaces||1)),s(`${i}`))}parseFieldScaleOffset(e){let F=e.defaultValue;if(!(!!IA.exec(`${e.offset}`)||!!IA.exec(`${e.scale}`)||!!IA.exec(`${e.defaultValue}`))&&(e.offset!==void 0||e.scale!==void 0)){let s=e.offset!==void 0?Number(e.offset):0,E=e.scale!==void 0?Number(e.scale):1;if(E===0)return null;let a=(Number(F)-s)/E,C=`(defaultValue - offset) / scale -> (${F} - ${s}) / ${E}`;return e.type.startsWith("float")?a%1===0&&(a=a.toFixed(1)):(a=Math.round(a),C=`Rounded value of: ${C}`),{calculated:a,reason:C}}return null}};function li(t){return`${`onUplinkApply_${t}()`};`}function xt(t,e,F){e.libraries.forEach(i=>{let s=i0.generateHashForLibraryName(i);t(` #ifdef _${s}${F}_${e.title}`),t(` _${s}${F}_${e.title}(); // ${i}`),t(" #endif")})}function ci(t,e){t("stock _onUplinkEvent(ev, param) {"),e.forEach(F=>{let s=`_${i0.generateHashForLibraryName(F)}UplinkEvent`;t(` #ifdef ${s}`),t(` ${s}(ev, param);`),t(" #endif")}),t(" onUplinkEvent(ev, param);"),t("}")}function di(t){let e=[],F=[];for(let[i,s]of Object.entries(t.containers))SA[i].ctype===J0.cx&&([d0.up,d0.upPlus,d0.deviceOnly].includes(s.transferDirection)&&F.push(s),[d0.bothPlus,d0.both,d0.downPlus,d0.down].includes(s.transferDirection)&&e.push(s));return{containerApply:e,containerRestore:F}}function ji(t,e){e.length&&t("");for(let F of e)F.knownNames.forEach(i=>{t(`forward onUplinkRestore_${i}();`)}),t(""),t(`stock restoreUplink${F.name}() {`),t(` _DDE_${F.name}_read();`),xt(t,F,"Restore"),u0.hasContainerAppFields(F)&&t(` onUplinkRestore_${F.title}();`),t("}");if(t("#pragma warning push"),t("stock _onUplinkRestore(cfgId) {"),e.length){t(" switch(cfgId) {");for(let F of e)t(` case DDE_${F.title}_id: restoreUplink${F.name}(); // ${F.name}`);t(" }")}else t(" #pragma warning disable 203"),t(" // no containers to restore");t("}"),t("#pragma warning pop")}function pi(t,e){e.length&&t("");for(let F of e)F.knownNames.forEach(i=>{t(`forward onUplinkApply_${i}();`)}),t(""),t(`stock applyUplink${F.name}() {`),t(` _DDE_${F.name}_read();`),xt(t,F,"Apply"),u0.hasContainerAppFields(F)&&t(` ${li(F.title)}`),t(" return(OK);"),t("}");if(t("#pragma warning push"),t("stock _onUplinkApply(cfgId) {"),e.length){t(" switch(cfgId) {");for(let F of e)t(` case DDE_${F.title}_id: return applyUplink${F.name}(); // ${F.name}`);t(" }"),t(" return ERROR;")}else t(" #pragma warning disable 203"),t(" // no containers to apply"),t(" return OK;");t("}"),t("#pragma warning pop")}function At(t,e){let F=[],i=F.push.bind(F);ci(i,e);let{containerApply:s,containerRestore:E}=di(t);return ji(i,E),pi(i,s),F.join(`
1649
- `)}var ui=ni.map(t=>`_DDE_${t}_write`);function rt(t){let e=[],F=e.push.bind(e),i=[...ui];for(let[s,E]of Object.entries(t.containers)){let a=De(E.containerType,E.transferDirection),C=SA[s];if(!a||!E.fields||C.ctype!==J0.cx)continue;let l=`DDE_${E.name}`,d=`DDE_${E.title}_id`;if([d0.both,d0.bothPlus,d0.none,d0.deviceOnly,d0.up,d0.upPlus].includes(E.transferDirection)){let u=`_${l}_write`;F(`stock ${u}() {`),F(` dde_wbegin(${d});`),Ye(F,E,"write"),F(" return dde_wend();"),F("}"),i.splice(i.indexOf(u),1)}if(C.ctype===J0.cx){let u=`_${l}_read`;F(`stock ${u}() {`),F(` if (dde_rbegin(${d})) return ERROR;`),Ye(F,E,"read"),F(" dde_rend();"),F(" return OK;"),F("}")}}if(i.length){F(""),F("// Dummy functions needed by the dde library");for(let s of i)F(`stock ${s}() { return OK; }`)}return e.join(`
1650
- `)}function Ye(t,e,F){e.libraries.forEach(i=>{let s=i0.generateHashForLibraryName(i);t(` #ifdef __${s}${e.title}_${F}`),t(` __${s}${e.title}_${F}();`),t(" #endif")}),u0.hasContainerAppFields(e)&&(t(` #ifdef _DDE_${e.title}_${F}`),t(` _DDE_${e.title}_${F}();`),t(" #endif"))}async function et(t,e){let F=[],i=await _0.getApmPartDependencies(t,e,F0.Part.dlo);await MA(t,e,F,X.fileNames.autoInc);let s=await bi(t,e,i);for(let E of i)E.name==="local-data-interface"&&await MA(t,e,F,X.fileNames.autoLocalDataInc),F.push(`#include <${E.name}>`),E.name==="dlo-core"&&(F.push(...s),await MA(t,e,F,X.fileNames.autoDdeInc.replace("X","app")),await MA(t,e,F,X.fileNames.autoDdeInc.replace("X","main")));return i.some(E=>E.name==="dlo-core")&&await MA(t,e,F,X.fileNames.autoUplinkInc),F.join(`
1651
- `)}async function bi(t,e,F){let i=[];for(let s of F){let E=X.filePaths.studio.auto.dlo.autoDdeInc.replace("X",s.name);await e.stat(le.Utils.joinPath(t,E))&&i.push(`#include "${X.fileNames.autoDdeInc.replace("X",s.name)}"`)}return i}async function MA(t,e,F,i){let s=le.Utils.joinPath(t,X.filePaths.studio.auto.dlo.path,i);await e.stat(s)&&F.push(`#include "${i}"`)}var nt=z0(require("semver")),it=require("yaml");var vx=u0.ContainerType,Cr=u0.TransferDirection,mi=u0.fieldTypeDefinitions,EA={$ref:"#/components/parameters/contextId"},hi={$ref:"#/components/parameters/addonId"},gi={$ref:"#/components/parameters/appId"},tt={$ref:"#/components/schemas/histdataResponse"},ki={$ref:"#/components/schemas/histdataRequest"},fr={$ref:"#/components/schemas/rapidM2MStamp"},yi={$ref:"#/components/schemas/timeseriesRequestBase"},Br="rapidM2M Stamp",px={description:"Successful operation"},Ft={parameters:{contextId:{name:"siteUid",in:"path",description:"The site uid",schema:{type:"string"},required:!0},appId:{name:"appUid",in:"path",description:"The app uid",schema:{type:"string"},required:!0}},schemas:{rapidM2MStamp:{type:"string",format:"YYYYMMDDhhmmssSSS",description:'Special format of an UTC timestamp. Important: The trailing 0 are truncated. eg.: "2024-02-10" -> "2024021"'}}},st={...structuredClone(Ft)};Object.assign(st.schemas,{histdataResponse:{type:"array",description:"Array of histdata records. Array starts with the youngest record",items:{type:"array",description:'First item is always the rapidM2M timestamp of the record. All following values are in the order of the "select" array.',items:{anyOf:[fr,{type:"string"},{type:"number"}]}}},histdataRequest:{type:"object",additionalProperties:!1,required:["from","until"],properties:{from:{type:"string",format:Br,description:"items to include must be older or equal, UTC w/o time saving."},until:{type:"string",format:Br,description:"items to include must be younger, UTC w/o time saving. Reply set is limited like that: from <= item.stamp < until."},count:{type:"integer",description:"limits the number of returned records, negative values will count the records from the end of the result set."},offset:{type:"integer",description:"skips the given number of records in the result set."}}},timeseriesRequestBase:{type:"object",additionalProperties:!1,properties:{count:{type:"integer",description:"limits the number of returned records, negative values will count the records from the end of the result set.",minimum:-1e3,maximum:1e3,default:1e3},from:{type:"string",format:Br,description:"items to include must be older or equal, UTC w/o time saving"},until:{type:"string",format:Br,description:"items to include must be younger, UTC w/o time saving. Reply set is limited like that: from <= item.stamp < until"},offset:{type:"integer",description:"Skips the given number of records in the result set",minimum:0,default:0}}}});var OA={content:{"application/json":{schema:{type:"object",additionalProperties:!1,properties:{err:{type:"string",description:"Information what went wrong"}}}}}},Hx={401:{description:"Permission denied",...OA},403:{description:"Forbidden",...OA},404:{description:"Resource not found",...OA},500:{description:"Internal error",...OA}};function de(t,e,F=null){let i=nt.coerce(e.version)?.version,s={openapi:"3.0.3",info:{description:e.description,title:e.name,version:i||""},tags:[],paths:{},components:{parameters:{},schemas:{}}};F?Object.assign(s.components,structuredClone(Ft)):Object.assign(s.components,structuredClone(st));let E=R.isAddon(e),a=R.isAnalytics(e);E&&(s.components.parameters.addonId={name:"addonUid",in:"path",description:"The addon uid",schema:{type:"string"},required:!0});for(let C of Object.values(t.containers))F&&(!C.libraries.includes(F)||C.containerType===vx.hx)||!F&&!u0.hasContainerAppFields(C)||C.containerType===vx.aloha||(wi(s,C),$i(s,C,F),Ni(s,C,E,a),!E&&!a&&(_i(s,C,F),Pi(s,C)));return s.tags.push({name:"app-center",description:"App Center related routes"}),(0,it.stringify)(s)}function wi(t,e){t.tags.push({name:nx(e.title),description:`Transfer direction ${e.transferDirection}`})}function nx(t){return t.split("_").join(" ")}function _i(t,e,F){let i=`${e.name}`,s={type:"object",description:`Container: "${e.title}"`,additionalProperties:!1,properties:{}},E=[];e.containerType===vx.hx&&(i+="Select",E.push("select"),s.properties.select={type:"array",items:{type:"string",enum:[]}});for(let a of e.fields)a.library!==F||a.type==="shadow"||(e.containerType===vx.hx?s.properties.select.items.enum.push(a.id):(s.properties[a.id]=at(a),!a.readPermission&&!a.writePermission&&E.push(a.id)));s.required=E.length?E:void 0,t.components.schemas[i]=s}function $i(t,e,F=null){let i=`${e.title}`,s={type:"object",description:`Container: "${e.title}" with device transfer direction "${e.transferDirection}"`,additionalProperties:!1,properties:{}},E=[],a=e.containerType===vx.hx;for(let l of e.fields)l.library!==F||l.type==="shadow"||(s.properties[l.name]=at(l),!l.readPermission&&!l.writePermission&&E.push(l.name));s.required=E.length?E:void 0,t.components.schemas[i]=s;let C=s.properties;if(a){s.required=s.required?.map(d=>d.toLowerCase());let l={};for(let[d,u]of Object.entries(s.properties))l[d.toLowerCase()]=u;s.properties=l}if(a){let l={type:"object",description:`Request schema of "${e.title}"`,additionalProperties:!1,properties:{select:{type:"array",description:"Optional selection of specific fields of the given container",items:{type:"string",enum:Object.keys(C)}}}};t.components.schemas[`${i}RequestSingle`]=l,t.components.schemas[`${i}Request`]={allOf:[yi,l]},s.properties.stamp=fr,E.push("stamp")}}function at(t){let F={...mi[t.type].openApi},i=qi(t);return F.default=i,F.example=i,F.description=t.description,F}function qi(t){return t.defaultValue===void 0?t.defaultValue:t.type==="binary"?`${t.defaultValue.substring(2)}`:t.defaultValue}function Pi(t,e){let F=`/api/1/sites/{siteUid}/${e.name}`,i={get:void 0,put:void 0};if([vx.cx,vx.cb].includes(e.containerType))i.get={deprecated:!0,tags:[nx(e.title)],summary:`Retrieve the data of the "${nx(e.title)}" container`,parameters:[EA],responses:{200:{...px,content:{"application/json":{schema:{allOf:[{type:"object",required:["stamp"],properties:{stamp:fr}},{$ref:`#/components/schemas/${e.name}`}]}}}},...Hx}},[Cr.down,Cr.backendOnly].includes(e.transferDirection)&&(i.put={deprecated:!0,tags:[nx(e.title)],summary:`Modify the data of the "${nx(e.title)}" container`,parameters:[EA],requestBody:{content:{"application/json":{schema:{$ref:`#/components/schemas/${e.name}`}}}},responses:{201:{...px},204:{...px},...Hx}});else if(e.containerType===vx.hx){let s=`${F}`;F+="/youngest",i.get={deprecated:!0,tags:[nx(e.title)],summary:`Retrieve the youngest data of the "${nx(e.title)}" container`,parameters:[EA,{name:"json",in:"query",required:!0,schema:{$ref:`#/components/schemas/${e.name}Select`}}],responses:{200:{...px,content:{"application/json":{schema:tt}}},...Hx}},t.paths[s]={get:{deprecated:!0,tags:[nx(e.title)],summary:`Get the historical data of the "${nx(e.title)}" container.`,parameters:[EA,{name:"json",in:"query",required:!0,schema:{allOf:[{$ref:`#/components/schemas/${e.name}Select`},ki]}}],responses:{200:{...px,content:{"application/json":{schema:tt}}},...Hx}}}}t.paths[F]=i}function Ni(t,e,F=!1,i=!1){let E=e.containerType===vx.hx?"timeseries":"containers",a=[],C=nx(e.title);i||a.push({path:`/api/1/sites/{siteUid}/${E}/${e.title}`,params:[EA],tags:[C]}),F&&(a=[{path:`/api/1/sites/{siteUid}/addons/{addonUid}/${E}/${e.title}`,params:[EA,hi],tags:[C]}]);let l={path:`/api/1/app-center/apps/{appUid}/${E}/${e.title}`,params:[gi],tags:["app-center"]};i&&l.tags.push(C),a.push(l);let d={get:void 0,put:void 0,post:void 0},u={tags:[],summary:`Retrieve the data of the "${nx(e.title)}" container`,parameters:[],responses:{200:{...px,content:{"application/json":{schema:{allOf:[{type:"object",required:["stamp"],properties:{stamp:fr}},{$ref:`#/components/schemas/${e.title}`}]}}}},...Hx}};if([vx.cx,vx.cb].includes(e.containerType)&&(d.get=u,[Cr.down,Cr.backendOnly].includes(e.transferDirection)&&(d.put={tags:[],summary:`Modify the data of the "${nx(e.title)}" container`,parameters:[],requestBody:{content:{"application/json":{schema:{$ref:`#/components/schemas/${e.title}`}}}},responses:{201:{...px},204:{...px},...Hx}}),a.forEach(p=>{let k=structuredClone(d);Object.values(k).forEach(w=>{w?.parameters?.unshift(...p.params),w?.tags?.unshift(...p.tags)}),t.paths[p.path]=k})),e.containerType===vx.hx){d.get={tags:[],summary:`Get the historical data of "${e.title}"`,parameters:[{name:"json",in:"query",required:!1,schema:{$ref:`#/components/schemas/${e.title}Request`}}],responses:{200:{...px,content:{"application/json":{schema:{type:"array",items:{$ref:`#/components/schemas/${e.title}`}}}}},...Hx}},F&&(d.post={tags:[],summary:`Insert data into the "${nx(e.title)}" container`,parameters:[{name:"allow_future_date",in:"query",description:"Allow inserting records with a stamp value in the future",schema:{type:"boolean"}}],requestBody:{content:{"application/json":{schema:{$ref:`#/components/schemas/${e.title}`}}}},responses:{201:{...px},400:{description:"Bad request",...OA},...Hx}});let p=a[0],k=structuredClone(d);Object.values(k).forEach(M=>{M?.parameters?.unshift(...p.params),M?.tags?.unshift(...p.tags)}),t.paths[p.path]=k;let w={...px,content:{"application/json":{schema:{$ref:`#/components/schemas/${e.title}`}}}},b=`${p.path}/youngest`,y={get:structuredClone(k.get)};y.get.summary=`Get the youngest record of "${e.title}" container`,y.get.responses[200]=w;let $=F?2:1;y.get.parameters[$].schema.$ref=`#/components/schemas/${e.title}RequestSingle`,t.paths[b]=y;let P=`${p.path}/oldest`,N={get:structuredClone(k.get)};N.get.summary=`Get the oldest record of "${e.title}" container`,N.get.responses[200]=w,N.get.parameters[$].schema.$ref=`#/components/schemas/${e.title}RequestSingle`,t.paths[P]=N}}var vt=u0.TransferDirection,Dr=" new szTemp{64};",lr=" return strcat(aData, szTemp, sizeof(szTemp));";function Et(t){if(!t.printf&&t.printfFormat==="memtostr")return"bin";if(!t.printf)return null;let e=t.rwp||"%n",F=e.includes("["),s=e.includes("{")||F;if(t.printfFormat==="stampToISOString")return s?null:"stamp";switch(t.printf){case"%d":return s?null:"d";case"%f":return s?null:"f";case"%s":return F?null:"s";default:return null}}function je(t){if(t.type==="shadow"||t.shadowRef)return null;let e=ox(t);return!e||e==="skip"?null:Et(e)}function Bt(t){return[u0.ContainerType.hx,u0.ContainerType.cx].includes(t.containerType)&&t.transferDirection!==vt.backendOnly}function Li(t){if(t.type==="shadow"||t.shadowRef)return!1;let e=ox(t);return!!e&&e!=="skip"}function Gi(t,e,F){let i=t.name.indexOf("]"),s=i>=0?t.name.substring(i+1):"",E=`${t.arrayRef.name}|${s}|${e}`;F.has(E)||F.set(E,{fields:[],formatType:e}),F.get(E).fields.push(t)}function Ti(t){let e=[],F=new Map,i=new Set,s=!1;for(let E of t){if(!Li(E))continue;let a=je(E);E.arrayRef&&a?Gi(E,a,F):(e.push(E),a?i.add(a):s=!0)}return{standaloneFields:e,groupMap:F,usedFormats:i,hasInlineFields:s}}function Ii(t,e,F){F.sort((d,u)=>d.arrayRef.index-u.arrayRef.index);let i=F.map(d=>d.byteOffset),s=i[1]-i[0];if(!(s>0&&i.every((d,u)=>u===0||d-i[u-1]===s)))return null;let[a,C]=e.split("|"),l=F[0].library?`_${i0.generateHashForLibraryName(F[0].library)}`:"DDE_";return{arrayName:a,subField:C,fields:F,startOffset:i[0],endOffset:i[i.length-1],step:s,formatType:je(F[0]),pawnVarBase:`${l}${t}_${a}`}}function Mi(t,e){let{standaloneFields:F,groupMap:i,usedFormats:s,hasInlineFields:E}=Ti(e),a=[];for(let[C,l]of i){let{fields:d,formatType:u}=l;if(d.length<2){F.push(...d),s.add(u);continue}let p=Ii(t,C,d);p?(s.add(u),a.push(p)):(F.push(...d),s.add(u))}return F.sort((C,l)=>C.byteOffset-l.byteOffset),{arrayGroups:a,standaloneFields:F,usedFormats:s,hasInlineFields:E}}function Si(t){let e=new Set;for(let[,F]of Object.entries(t.containers))if(Bt(F))for(let i of F.fields){let s=je(i);s&&e.add(s)}return e}function Ri(t,e){e.has("d")&&(t("stock _DDE_fmt_d(aData{}, value) {"),t(Dr),t(' sprintf(szTemp, _, "%d", value);'),t(lr),t("}")),e.has("f")&&(t(""),t("stock _DDE_fmt_f(aData{}, Float:value) {"),t(Dr),t(' sprintf(szTemp, _, "%.3f", value);'),t(lr),t("}")),e.has("s")&&(t(""),t("stock _DDE_fmt_s(aData{}, value{}) {"),t(Dr),t(' sprintf(szTemp, _, "%s", value);'),t(lr),t("}")),e.has("stamp")&&(t(""),t("stock _DDE_fmt_stamp(aData{}, value) {"),t(Dr),t(' sprintf(szTemp, _, "%s", (stampToISOString(value)));'),t(lr),t("}")),e.has("bin")&&(t(""),t("stock _DDE_fmt_bin(aData{}, mem{}, dim) {"),t(" #pragma warning disable 224"),t(" memtostr(aData, mem, 0, dim);"),t(" #pragma warning disable 224"),t(" return dim;"),t("}"))}function Oi(t,e){return e===1?t===0?"idx":`idx - ${t}`:t===0?`idx / ${e}`:`(idx - ${t}) / ${e}`}function Ui(t,e,F){let i=`idx >= ${t} && idx <= ${e}`;if(F===1)return i;let s=t===0?`idx % ${F} == 0`:`(idx - ${t}) % ${F} == 0`;return`${i} && ${s}`}function Hi(t,e){let{startOffset:F,endOffset:i,step:s,formatType:E,pawnVarBase:a,subField:C}=e,l=Oi(F,s),d=Ui(F,i,s);if(t(` if (${d}) {`),E==="bin"){let u=`${a}[${l}]${C}`,p=C?C.substring(1):"",k=p?`${a}_${p}_dim`:`${a}_dim`;t(` return _DDE_fmt_bin(aData, ${u}, ${k});`)}else t(` return _DDE_fmt_${E}(aData, ${a}[${l}]${C});`);t(" }")}function zi(t,e,F){if(F.type==="shadow"||F.shadowRef)return;let i=ox(F);if(!i||i==="skip")return;let E=`${F.library?`_${i0.generateHashForLibraryName(F.library)}`:"DDE_"}${e}_${F.name}`,a=Et(i);if(a==="bin")t(` case ${F.byteOffset}: return _DDE_fmt_bin(aData, ${E}, ${E}_dim);`);else if(a)t(` case ${F.byteOffset}: return _DDE_fmt_${a}(aData, ${E});`);else{if(t(` case ${F.byteOffset}: {`),i.printf){let C=E;i.printfFormat&&(C=`(${i.printfFormat}(${C}))`),t(` sprintf(szTemp, _, "${i.printf}", ${C});`),t(" return (strcat(aData, szTemp, sizeof(szTemp)));")}t(" }")}}function Ji(t,e,F){t(` case '${e.at(-1)}': {`),t(` return _DDE_local_${F.title}(aData, idx);`),t(" }")}function ot(t,e,F){let i=F===u0.ContainerType.cx?"c":"h",s=F===u0.ContainerType.cx?"config":"histdata";t(` if(cname{0} == '${i}'){`),t(" switch(cname{1}) {");for(let[E,a]of Object.entries(e.containers))F===a.containerType&&E.startsWith(s)&&a.transferDirection!==vt.backendOnly&&Ji(t,E,a);t(" default:"),t(" return OK;"),t(" }"),t(" return OK;"),t(" }")}function Ki(t,e){let F=Mi(e.title,e.fields);t(""),t(`stock _DDE_local_${e.title}(aData{}, idx) {`),F.hasInlineFields&&t(" new szTemp{64};");for(let i of F.arrayGroups)Hi(t,i);if(F.standaloneFields.length>0){t(" switch(idx) {");for(let i of F.standaloneFields)zi(t,e.title,i);t(" default:"),t(" return OK;"),t(" }")}t(" return OK;"),t("}")}function Vi(t,e){for(let[,F]of Object.entries(e.containers))Bt(F)&&Ki(t,F)}function Ct(t){let e=[],F=e.push.bind(e),i=Si(t);return Ri(F,i),i.size>0&&F(""),F("stock DDE_get_local_data(cname{}, aData{}, idx) {"),ot(F,t,u0.ContainerType.cx),ot(F,t,u0.ContainerType.hx),F(" return OK;"),F("}"),Vi(F,t),e.join(`
1652
- `)}var ct=i0.yamlRangeToLineInformation,UA=X.filePaths.dde.path,Ex;(W=>{let t=u0.DDEJson,e=i0.convertBlobToString;W.DDE_SCHEMA=Ke;async function i(g,_){let G=await _.readFile(g);return e(G)}W.readYamlFile=i;async function s(g,_,G=X.fileNames.mainDDE,U){let J=[],I=await R.read(g,_),H=await ft(g,_,I);if(U)for(let z of H){let{result:T,unresolvedKeys:Q}=M0.replaceDefineTemplates(z.yaml,U);z.yaml=T;for(let r0 of Q)J.push({file:z.path,level:"error",message:`Unresolved define template: {{${r0}}}`,line:0,startCharacter:0,endCharacter:0})}for(let z of H)J.push(...l(z.path,z.yaml));let K=P0.Utils.joinPath(g,UA,G),Y=await i(K,_);if(U){let{result:z,unresolvedKeys:T}=M0.replaceDefineTemplates(Y,U);Y=z;for(let Q of T)J.push({file:K,level:"error",message:`Unresolved define template: {{${Q}}}`,line:0,startCharacter:0,endCharacter:0})}return J.push(...l(K,Y)),{manifest:I,libraryFiles:H,main:{path:K,yaml:Y},diagnostics:J}}W.validate=s;async function E(g,_,G,U=X.fileNames.mainDDE){let J=await R.read(g,_),I=await M0.read(g,_,G),H=await s(g,_,U,I.flat);if(H.diagnostics.filter(n0=>n0.level==="error").length>0)return{ddeJSON:null,diagnostics:H.diagnostics};let Y=await w(g,_,G),z=new ar.PreCompiler(J,H.libraryFiles,Y),T=z.parseLibraries();if(T.find(n0=>n0.level==="error"))return{ddeJSON:null,diagnostics:[...H.diagnostics,...T]};let{ddeJSON:r0,diagnostics:t0}=z.parseMainDDE(H.main.path,H.main.yaml);return{ddeJSON:r0,diagnostics:[...H.diagnostics,...t0]}}W.compileDDE=E;let a=new Dt.default({strict:!1,allErrors:!0,verbose:!0});(0,lt.default)(a);let C=a.compile(W.DDE_SCHEMA);function l(g,_){let G=new cr.LineCounter,U=(0,cr.parseDocument)(_,{lineCounter:G,keepSourceTokens:!0}),J=[];for(let K of U.errors){let Y=K.pos?ct(G,[K.pos[0],K.pos[1],K.pos[1]]):{line:0,startCharacter:0,endCharacter:0};J.push({file:g,level:"error",message:K.message,...Y})}if(J.length>0)return J;let I=U.toJSON();if(!C(I)){let Y=(C.errors||[]).filter(T=>T.keyword!=="if"),z=new Set;for(let T of Y){let Q=Yi(T);if(z.has(Q))continue;z.add(Q);let r0=Qi(U,G,T);J.push({file:g,level:"error",message:Q,...r0})}}return J}W.validateJsonSchema=l,W.PreCompiler=(g,_,G)=>new ar.PreCompiler(g,_,G);function u(g,_){return Be(g,_)}W.generateMyDatanetXML=u;async function p(g,_,G,U){let J=await R.read(g,_),I=Be(J,U),H=P0.Utils.joinPath(g,X.filePaths.dist.ddeXmlPath);await _.writeFile(H,I),G.log("Generated",X.filePaths.dist.ddeXmlPath)}W.exportMyDatanetXML=p;async function k(g,_,G,U,J){let I=P0.Utils.joinPath(g,X.filePaths.studio.auto.dde.historyJson);await _.rm(I).catch(console.error);let H=await R.read(g,_);if(!R.isApp(H)||!H.registry?.id)return;if(!J){G.warn("Could not fetch dde of previous version: No API token provided.");return}let K=mx.coerce(H.version);try{let T=(await y0.getExistingApplication(J,H.publisher,H.registry.id,U)).versions.find(n0=>!mx.prerelease(n0.version)&&mx.lte(n0.version,K)),Q=T?.files.find(n0=>n0.name==="dde.json");if(!Q){G.warn("Could not find a valid previous released app version to fetch the previous dde from.");return}let r0=await fetch(Q.downloadUrl,{headers:{...sx(J),...y0.injectSemverHeader(!0)}});if(r0.status!==200){G.warn(`Could not fetch the dde.json of version "${T?.version}"`);return}let t0=await r0.text();await _.writeFile(I,t0),G.log(`Saved history.json of previous app version ${T.version}`)}catch(Y){G.error("Failed to fetch the dde of previous version",Y)}}W.fetchPreviousHistoryJson=k;async function w(g,_,G){try{let U=P0.Utils.joinPath(g,X.filePaths.studio.auto.dde.historyJson);if(await _.stat(U)){let I=await _.readFile(U);return JSON.parse(e(I))}let J=P0.Utils.joinPath(g,UA,"history.json");if(await _.stat(J)){G.warn(`"${X.filePaths.studio.auto.dde.historyJson}" does not exist - fallback to "${UA}history.json"`);let I=await _.readFile(J),H=JSON.parse(e(I)),K=await R.read(g,_),Y=mx.coerce(K.version)?.version,z=Object.keys(H||{}).sort(mx.rcompare).find(Q=>Q!==Y);if(!z)return null;let T=H[z];return{version:z,...T}}}catch(U){G.error("Failed to read history.json",U)}return G.warn("history.json does not exist"),null}W.getHistoryJson=w;function b(g,_){return{version:mx.coerce(_.version)?.version||"1.0.0",...structuredClone(g)}}W.buildHistoryJson=b;async function y(g,_,G,U){let J=await R.read(g,_),I=b(U,J),H=P0.Utils.joinPath(g,X.filePaths.dist.historyJson);await _.writeFile(H,JSON.stringify(I,null," ")),G.log("Generated",X.filePaths.dist.historyJson)}W.exportHistoryJson=y;async function $(g,_){return _.rm(P0.Utils.joinPath(g,X.filePaths.studio.auto.dlo.path))}W.clearAutoDloDir=$;async function P(g,_,G,U){await $(g,_);let J=await R.read(g,_),I=await ft(g,_,J),H=await M0.read(g,_,G),K=Qe(U,H,J),z=new RA(J,U,null).generate();for(let K0 of I){let Nx=new RA(J,U,K0.libraryName),{globals:Lx,helper:Kx}=Nx.generate(),Q0=[...Lx,...Kx].join(`\r
1653
- `),Gx=X.filePaths.studio.auto.dlo.autoDdeInc.replace("X",K0.libraryName),Vx=P0.Utils.joinPath(g,Gx);Q0.length&&(G.log("Generated",Gx),await _.writeFile(Vx,Q0))}let T=rt(U),Q=At(U,I.map(K0=>K0.libraryName)),r0=Ct(U),t0=P0.Utils.joinPath(g,X.filePaths.studio.auto.dlo.autoInc);await _.writeFile(t0,K),G.log("Generated",X.filePaths.studio.auto.dlo.autoInc);let n0=P0.Utils.joinPath(g,X.filePaths.studio.auto.dlo.autoUplinkInc);await _.writeFile(n0,Q),G.log("Generated",X.filePaths.studio.auto.dlo.autoUplinkInc);let f0=P0.Utils.joinPath(g,X.filePaths.studio.auto.dlo.autoLocalDataInc);await _.writeFile(f0,r0),G.log("Generated",X.filePaths.studio.auto.dlo.autoLocalDataInc);let l0=P0.Utils.joinPath(g,X.filePaths.studio.auto.dlo.autoDdeInc.replace("X","app"));await _.writeFile(l0,[...z.globals,...z.helper].join(`
1654
- `)),G.log("Generated",X.filePaths.studio.auto.dlo.autoDdeInc.replace("X","app"));let L0=P0.Utils.joinPath(g,X.filePaths.studio.auto.dlo.autoDdeInc.replace("X","main"));await _.writeFile(L0,T),G.log("Generated",X.filePaths.studio.auto.dlo.autoDdeInc.replace("X","main")),await M(g,_,G)}W.exportAutoDloFiles=P;async function N(g,_,G,U){let J=await R.read(g,_),I=R.isLibrary(J),H=P0.Utils.joinPath(g,X.filePaths.dist.path,"dde-api.yaml");await _.rm(H).catch(()=>{});let K=P0.Utils.joinPath(g,X.filePaths.dist.ddeApi);if(await _.writeFile(K,de(U,J)),G.log("Generated",X.filePaths.dist.ddeApi),I){let Y=P0.Utils.joinPath(g,X.filePaths.dist.ddeApiPath,`${J.name}.yaml`),z=de(U,J,J.name);z.length&&(await _.writeFile(Y,z),G.log("Generated",X.filePaths.dist.ddeApiPath+`${J.name}.yaml`))}}W.exportOpenApi=N;async function M(g,_,G){let U=P0.Utils.joinPath(g,X.filePaths.studio.auto.dlo.defaultInc),J=await et(g,_);await _.writeFile(U,J),G.log("Generated",X.filePaths.studio.auto.dlo.defaultInc)}W.exportDefaultInc=M})(Ex||={});async function ft(t,e,F){let i=[],s=await _0.getAll(F);for(let E in s){let a=_0.dependencyToPath(t,E),C=_0.dependencyIdToName(E),l=P0.Utils.joinPath(a,`${UA}/${C}.dde`);await e.stat(l)&&i.push({libraryName:C,path:l,yaml:await Ex.readYamlFile(l,e)})}if(R.isLibrary(F)){let E=P0.Utils.joinPath(t,`/${UA}/${F.name}.dde`);await e.stat(E)&&i.push({libraryName:F.name,path:E,yaml:await Ex.readYamlFile(E,e)})}return i}function Wi(t,e,F){if(typeof t=="string")return t;if(typeof t!="object"||t===null)return"";let i=t[e];if(typeof i=="string")return i;if(typeof i!="object"||i===null)return"";let s=F?.missingProperty;return s?i[s]??"":""}function Xi(t,e,F,i){let E={required:()=>`Missing required property '${e.missingProperty}'.`,additionalProperties:()=>`Unknown property '${e.additionalProperty}' is not allowed.`,type:()=>`Must be of type '${e.type}'.`,enum:()=>`Must be one of the allowed values: ${JSON.stringify(e.allowedValues)}.`,pattern:()=>`Value does not match the required pattern. ${i?.patternErrorMessage??F}`,minimum:()=>`${F}.`,maximum:()=>`${F}.`,exclusiveMinimum:()=>`${F}.`,exclusiveMaximum:()=>`${F}.`,not:()=>`This value is not allowed here. ${i?.description??""}`.trimEnd(),anyOf:()=>`Value does not match any of the allowed schemas. ${i?.description??""}`.trimEnd(),oneOf:()=>`Value does not match any of the allowed schemas. ${i?.description??""}`.trimEnd()}[t];return E?E():F}function Yi(t){let e=t.instancePath||"/",F=t.parentSchema,i=Wi(F?.errorMessage,t.keyword,t.params);if(i)return`${e}: ${i}`;let s=t.message||"unknown validation error";return`${e}: ${Xi(t.keyword,t.params,s,F)}`}function Zi(t,e){let F=e.split("/").filter(Boolean).map(i=>{let s=Number(i);return Number.isNaN(s)?i:s});for(let i=F.length;i>=0;i--){let s=F.slice(0,i),E=t.getIn(s,!0);if(E?.range)return E.range}return null}function Qi(t,e,F){let i=Zi(t,F.instancePath||"");return i?ct(e,i):{line:0,startCharacter:0,endCharacter:0}}var pe=require("vscode-uri");var BA=class{dloFileMap={};rootUri=pe.URI.parse("");constructor(){}set workspacePath(e){this.rootUri=e}getSequenceForFile(e){let F=e.substring(this.rootUri.path.length||0);if(this.rootUri.scheme!=="file"){let s=this.rootUri.toString();F=e.substring(s.length+1)}if(Object.hasOwn(this.dloFileMap,F))return this.dloFileMap[F];let i=i0.generateHashForFilePath(F);return this.dloFileMap[F]=i,i}getFilePathForSequence(e){let F=Object.entries(this.dloFileMap).find(([,i])=>i===e);return F?pe.URI.parse(`${this.rootUri.path}${F[0]}`).path:null}};var pt=require("vscode-uri");var xF=/^(?:\s*#options\s+)(.*)(?:\s*)$/,AF=/^(?:\s*#preinclude\s+)(.*)(?:\s*)$/,rF=/^(?:\s*#ifdef\s+)(.*)$/,eF=/^(?:\s*#ifndef\s+)(.*)$/,tF=/^(?:\s*#elseifdef\s+)(.*)$/,nF=/^(?:\s*#elseifndef\s+)(.*)$/,ut=/^(\s*)(?:#callback\s+)(\w*)(?:\s*\(\s*)(.*?)(?:\s*\)\s*)(\{*){1}(?:\s*)$/,bt=/^(.*)(^|\s+)(?:assert\s*\(\s*)(.*?)(?:\s*,\s*)(.*?)(?:\s*\)\s*;*\s*)$/,mt=/^(.*)(^|\s+)(?:assert\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/,ht=/^(.*)(^|\s+)(?:assert\s*\(\s*\);*\s*)$/,gt=/^(.*)(^|\s+)(?:catch\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/,iF=/^\s*#include\s*</,FF=/^\s*#endinput\s*/,sF=/^\s*#pragma\s+dynamic\s+(\S+)\s*(\/\/.*|\/\*.*|)$/,kt=/^(.*)(^|\s+)(?:applog(|_ok|_warning|_alarm|_debug|_fatal)\s*\(\s*)(.*?)(?:\s*,\s*)(.*?)(?:\s*\)\s*;*\s*)$/,yt=/^(.*)(^|\s*)(?:applog(|_ok|_warning|_alarm|_debug|_fatal)\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/;function dt(t,e=""){let F=" ",i=t;return e.length?F={fatal:"\xA7",alarm:"!",warning:"?",debug:"~",ok:"$"}[e]||null:["!","?","~","$","\xA7"].includes(t.substring(1,1))&&(F=t.substring(1,1),i=`"${t.substring(2,t.length-1)}"`),{priority:`'${F}'`,code:i}}var wt=/^(.*)(^|\s+)(?:log(|_debug|_info|_warn|_error)\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/,_t=(s=>(s[s.debug=0]="debug",s[s.info=1]="info",s[s.warn=2]="warn",s[s.error=3]="error",s))(_t||{}),aF=/^(.*)(^|\s*)DDE_(state|result|aloha|volatile|setting|command)_/,oF=/^(.*)(^|\s*)onUplink(Restore|Apply)_(state|result|aloha|volatile|setting|command)/,vF=/^(.*)(^|\s*)onUplinkEvent/,EF=/(?:^|\s)(?:assert|catch|applog(?:_ok|_warning|_alarm|_debug|_fatal)?|log(?:_debug|_info|_warn|_error)?)\s*\(/,BF=/^\s*#callback\s+\w+\s*\(/;function jt(t){let e=0,F=!1,i="";for(let s=0;s<t.length;s++){let E=t[s];if(F){if(E==="\\"){s++;continue}E===i&&(F=!1);continue}if(E==='"'||E==="'"){F=!0,i=E;continue}E==="("?e++:E===")"&&e--}return e}function $t(t){return ut.test(t)||ht.test(t)||bt.test(t)||mt.test(t)||gt.test(t)||kt.test(t)||yt.test(t)||wt.test(t)}function CF(t,e,F){if(!(EF.test(F)||BF.test(F)))return null;let s=jt(F);if(s<=0)return null;let E=s,a=[t[e]],C=[F],l=e+1,d=100;for(;E>0&&l<t.length&&l-e<d;){let k=t[l],w=k.split("//",1)[0];a.push(k),C.push(w),E+=jt(w),l++}if(a.length<=1||E>0)return null;let u=a.map((k,w)=>w===0?k:k.trim()).join(" "),p=C.map((k,w)=>w===0?k:k.trim()).join(" ");return $t(p)?{joinedOriginal:u,joinedStripped:p,extraLineCount:a.length-1}:null}var CA=class{pragmaDynamic=null;dloFileSequencer=new BA;constructor(){}get pragmaDynamicFlag(){return this.pragmaDynamic?`-S${this.pragmaDynamic}`:null}preCompileDloFile(e,F,i,s,E){this.dloFileSequencer.workspacePath=e;let a=[],C=s.path,l=!1,d=pt.Utils.basename(s);if(C.includes(X.filePaths.studio.auto.dlo.path)){let b=d.substring(0,d.length-8);!["app","main"].includes(b)&&d.endsWith("-dde.inc")&&(l=i0.generateHashForLibraryName(b))}else if(C.includes(X.filePaths.studio.libdeps)){let b=C.split("libdeps/")[1],[y]=b.split("/");["dlo-core"].includes(y)||(l=i0.generateHashForLibraryName(y))}else R.isLibrary(i)&&(d.endsWith(".dlo")||C.includes("/dlo/examples/")||C.includes("/dlo/test/")?F.log("Skipping dde mangling for project file",d):l=i0.generateHashForLibraryName(i.name));if(C.endsWith(".auto/default.inc"))return{data:E.join(`
1655
- `),diagnostics:a};let u=[],p=this.dloFileSequencer.getSequenceForFile(C);u.push(`stock static __file{} = "${p}";`),u.push(`stock static __refid{} = "${p}";`),u.push('stock static __applog_src_id{} = "A\\0\\0\\0\\0\\0\\0\\0";'),u.push("#line 0");let w=0;for(let b=0;b<E.length;b++){let y=E[b],$=y.split("//",1)[0],P=null,N=0;if(!$t($)){let M=CF(E,b,$);M&&(y=M.joinedOriginal,$=M.joinedStripped,N=M.extraLineCount)}if(P=xF.exec($))y="// "+y,a.push({file:s,level:"error",line:b,message:"#options is not supported here. Use the DLO settings instead."});else if(P=AF.exec($))y="// "+y,a.push({file:s,level:"error",line:b,message:"#preinclude is not supported here. Use the DLO settings instead."});else if(P=sF.exec($)){let M=Number(P[1].startsWith("(")?P[1].substring(1,P[1].length-1):P[1]);!Number.isInteger(M)||M<64?a.push({file:s,level:"error",line:b,message:"#pragma dynamic only supports integer values and must be greater than 63"}):(!this.pragmaDynamic||M>this.pragmaDynamic)&&(this.pragmaDynamic=M)}else if(P=rF.exec($))y=y.replace("#ifdef ","#if defined ");else if(P=eF.exec($))y=y.replace("#ifndef ","#if !defined ");else if(P=tF.exec($))y=y.replace("#elseifdef ","#elseif defined ");else if(P=nF.exec($))y=y.replace("#elseifndef ","#elseif !defined ");else if(P=ut.exec($)){let[,M,W,g,_]=P;y=`${M}#define ${W} _catch_funcidx( "___${W}")
1656
- forward ___${W}( ${g});
1641
+ Accepts a number or a relation link (\`@container.field\`).`,$ref:"#/$defs/relationLinkPattern"}}};var Pt=require("yaml");var le=require("yaml");var Kr;(x=>x.CODE={ddeFieldLength:"field_name_length"})(Kr||={});var R0;(H=>{let A;(B0=>(B0.state="state",B0.result="result",B0.aloha="aloha",B0.volatile="volatile",B0.setting="setting",B0.command="command",B0.storage="storage",B0.relations="relations"))(A=H.DDEContainerName||={});let x;(f0=>(f0.configA="configA",f0.configB="configB",f0.configC="configC",f0.config0="config0",f0.config1="config1",f0.config2="config2",f0.config3="config3",f0.config4="config4",f0.config5="config5",f0.config6="config6",f0.config7="config7",f0.config8="config8",f0.config9="config9",f0.histdata0="histdata0",f0.histdata1="histdata1",f0.histdata2="histdata2",f0.histdata3="histdata3",f0.histdata4="histdata4",f0.histdata5="histdata5",f0.histdata6="histdata6",f0.histdata7="histdata7",f0.histdata8="histdata8",f0.histdata9="histdata9",f0.aloha="aloha",f0.alerts="alerts",f0.applog="applog"))(x=H.ContainerName||={});let e;(U=>(U.cx="cx",U.hx="hx",U.cb="cb",U.aloha="aloha",U.applog="applog"))(e=H.ContainerType||={});let r;(q0=>(q0.up="up",q0.down="down",q0.upPlus="up+",q0.downPlus="down+",q0.none="none",q0.backendOnly="backend-only",q0.deviceOnly="device-only",q0.both="both",q0.bothPlus="both+",q0.noneBackend="none-be"))(r=H.TransferDirection||={});function t(z,i0){return z==="cx"&&!["backend-only"].includes(i0)?"DDE_CID_CONFIG":z==="hx"?"DDE_CID_HISTDATA":z==="aloha"?"DDE_CID_ALOHA":null}H.CONTAINER_DEF_DLO_CID_BASE=t;let s=["up","up+","down","down+","both","none","both+","backend-only","device-only"],n=["up","up+","backend-only"];H.CONTAINER_DEFS={configA:{ctype:"cb",cnum:"a",alias:"",flds:"field",xmits:["backend-only"]},configB:{ctype:"cb",cnum:"b",alias:"",flds:"field",xmits:["backend-only"]},configC:{ctype:"cb",cnum:"c",alias:"",flds:"field",xmits:["backend-only"]},config0:{ctype:"cx",cnum:0,alias:"",flds:"field",xmits:s},config1:{ctype:"cx",cnum:1,alias:"",flds:"field",xmits:s},config2:{ctype:"cx",cnum:2,alias:"",flds:"field",xmits:s},config3:{ctype:"cx",cnum:3,alias:"",flds:"field",xmits:s},config4:{ctype:"cx",cnum:4,alias:"",flds:"field",xmits:s},config5:{ctype:"cx",cnum:5,alias:"",flds:"field",xmits:s},config6:{ctype:"cx",cnum:6,alias:"",flds:"field",xmits:s},config7:{ctype:"cx",cnum:7,alias:"",flds:"field",xmits:s},config8:{ctype:"cx",cnum:8,alias:"",flds:"field",xmits:s},config9:{ctype:"cx",cnum:9,alias:"",flds:"field",xmits:s},histdata0:{ctype:"hx",cnum:0,alias:"",flds:"ch",xmits:n},histdata1:{ctype:"hx",cnum:1,alias:"",flds:"ch",xmits:n},histdata2:{ctype:"hx",cnum:2,alias:"",flds:"ch",xmits:n},histdata3:{ctype:"hx",cnum:3,alias:"",flds:"ch",xmits:n},histdata4:{ctype:"hx",cnum:4,alias:"",flds:"ch",xmits:n},histdata5:{ctype:"hx",cnum:5,alias:"",flds:"ch",xmits:n},histdata6:{ctype:"hx",cnum:6,alias:"",flds:"ch",xmits:n},histdata7:{ctype:"hx",cnum:7,alias:"",flds:"ch",xmits:n},histdata8:{ctype:"hx",cnum:8,alias:"",flds:"ch",xmits:n},histdata9:{ctype:"hx",cnum:9,alias:"",flds:"ch",xmits:n},aloha:{ctype:"aloha",cnum:void 0,alias:"aloha",flds:null,xmits:["up","up+"]},alerts:{ctype:void 0,cnum:void 0,alias:"alerts",flds:null,xmits:["up"]},applog:{ctype:"applog",cnum:void 0,alias:"applog",flds:null,xmits:["up+"]}},H.HISTDATA_CONTAINER=["histdata0","histdata1","histdata2","histdata3","histdata4","histdata5","histdata6","histdata7","histdata8","histdata9"],H.CONFIG_CONTAINER=["config0","config1","config2","config3","config4","config5","config6","config7","config8","config9"],H.SERVER_CONTAINER=["configA","configB","configC"],H.regexRelation=/^(@[a-zA-Z_][a-zA-Z0-9_]*\.[a-zA-Z_][a-zA-Z0-9_]*(\[[^\]]+\])?(\.[a-zA-Z_][a-zA-Z0-9_]*)*|lib:[a-zA-Z0-9_-]+@[a-zA-Z_][a-zA-Z0-9_]*\.[a-zA-Z_][a-zA-Z0-9_]*(\[[^\]]+\])?(\.[a-zA-Z_][a-zA-Z0-9_]*)*)$/;let j=["astring","nstring","cstring","wstring","ustring"],_=["int8","int16","int32","int64","uint8","uint16","uint32","float16","float32","float64"];H.allowedRelationTypes={title:j,unit:j,chartMinimum:_,chartMaximum:_,scale:_,offset:_,decimalPlaces:["uint8","uint16","uint32","int8","int16","int32","int64"],channelMode:["uint8","uint16","uint32"],chartAlarmLow:_,chartAlarmHigh:_,chartWarningLow:_,chartWarningHigh:_,chartHysteresis:_,chartTriggerThreshold:_,chartTriggerRelation:_,chartSetPoint:_};function S(z,i0,r0){let Z=i0[z];if(Z!==void 0)if(H.regexRelation.exec(`${Z}`)){let n0=z==="chartSetPoint",[U,...F0]=Z.split("."),[,v0]=U.split("@"),B0=Object.values(r0.containers).find(ox=>ox.title===v0),d0=F0.join("."),q0=n0?";":"%",M0=(n0?"":"%")+(B0?.name||v0)+q0;if(M0=M0+`${d0}`,n0){let ox=r0.setPointList[i0.name];M0=M0+`;actual_output_value_${ox}`}return M0}else return Z}H.parseXMLValueWithRelation=S;function P(z){let{bitmask:i0}=z;if(!i0)return;let r0="$",Z=i0.replaceAll(" ","");if(i0.startsWith("0x"))r0+=Z.substring(2);else if(Z.startsWith("0b")){let n0=Z.substring(2).replaceAll(" ","");r0+=parseInt(n0,2).toString(16).toUpperCase()}return r0}H.parseXMLBitmask=P;function N(z){return z.type==="binary"?z.defaultValue.substring(2):z.defaultValue==="NaN"?"NAN":z.defaultValue}H.parseXMLDefaultValue=N,H.TDEF_NUMBER={xmlOut(z,i0,r0){z.decpl=S("decimalPlaces",i0,r0),z.decpl===void 0&&(z.decpl=0),z.vscale=S("scale",i0,r0),z.vofs=S("offset",i0,r0),z.min=S("chartMinimum",i0,r0),z.max=S("chartMaximum",i0,r0)}};let O={isBlob:1,xmlOut(z,i0){z.max=i0.byteSize}},s0={xmlOut(z){z.decpl=-1,z.param0="local",z.units="UTC"}};H.TYPE_DEFS={u8:{dde:"uint8",dim:1,len:1,...H.TDEF_NUMBER,rdef:1,xml:{type:"u8"},pwn:{rwfunc:"u8",htype:"s32",printf:"%d"},openApi:{type:"number",minimum:0}},u16:{dde:"uint16",dim:1,len:2,...H.TDEF_NUMBER,rdef:1,xml:{type:"u16"},pwn:{rwfunc:"u16",htype:"s32",printf:"%d"},openApi:{type:"number",minimum:0}},u32:{dde:"uint32",dim:1,len:4,...H.TDEF_NUMBER,rdef:1,xml:{type:"u32"},pwn:{rwfunc:"u32",htype:"s32",printf:"%d"},openApi:{type:"number",minimum:0}},s8:{dde:"int8",dim:1,len:1,...H.TDEF_NUMBER,rdef:1,xml:{type:"s8"},pwn:{rwfunc:"s8",htype:"s32",printf:"%d"},openApi:{type:"number"}},s16:{dde:"int16",dim:1,len:2,...H.TDEF_NUMBER,rdef:1,xml:{type:"s16"},pwn:{rwfunc:"s16",htype:"s32",printf:"%d"},openApi:{type:"number"}},s32:{dde:"int32",dim:1,len:4,...H.TDEF_NUMBER,rdef:1,xml:{type:"s32"},pwn:{rwfunc:"s32",printf:"%d"},openApi:{type:"number"}},s64:{dde:"int64",dim:0,len:8,...H.TDEF_NUMBER,rdef:1,xml:{type:"s64"},pwn:{rwfunc:"s64",rwp:"%n{%l}",htype:"{%l}",printf:"%d"},openApi:{type:"number"}},f16:{dde:"float16",dim:1,len:2,...H.TDEF_NUMBER,rdef:1,xml:{type:"floatm16"},pwn:{rwfunc:"f16",rwp:"Float:%n",htype:"f32",printf:"%f"},openApi:{type:"number"}},f32:{dde:"float32",dim:1,len:4,...H.TDEF_NUMBER,rdef:1,xml:{type:"f32"},pwn:{rwfunc:"f32",rwp:"Float:%n",printf:"%f"},openApi:{type:"number"}},f64:{dde:"float64",dim:0,len:8,...H.TDEF_NUMBER,rdef:0,xml:{type:"f64"},pwn:{rwfunc:"f64",rwp:"%n{%l}",htype:"{%l}",printf:"%f"},openApi:{type:"number"}},stamp32:{dde:"stamp32",dim:1,len:4,...s0,rdef:0,xml:{type:"stamp4"},pwn:{rwfunc:"stamp32",printf:"%s",printfFormat:"stampToISOString"},openApi:{type:"string",format:"YYYYMMDDhhmmssSSS",description:"UTC"}},stamp40:{dde:"stamp40",dim:0,len:5,...s0,rdef:0,xml:{type:"stamp"},pwn:{rwfunc:"stamp40",rwp:"%n{%l}",htype:"{%l}",printf:"%s",printfFormat:"stampToISOString"},openApi:{type:"string",format:"YYYYMMDDhhmmssSSS",description:"UTC"}},bin:{dde:"binary",dim:0,...O,rdef:0,lenUnits:"byte",xml:{type:"string",editmask:"%HEX%"},pwn:{rwfunc:"bin",rwlen:1,rwp:"%n{%l}",htype:"{%l}",printf:null,printfFormat:"memtostr"},openApi:{type:"string",description:"HEX string"}},astr:{dde:"astring",dim:0,...O,rdef:1,lenUnits:"char",xml:{type:"string",param1:"nocodepage"},pwn:{rwfunc:"astr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},nstr:{dde:"nstring",dim:0,...O,rdef:1,lenUnits:"byte",xml:{type:"string"},pwn:{rwfunc:"nstr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},wstr:{dde:"wstring",dim:0,...O,rdef:1,lenUnits:"byte",xml:{type:"string"},pwn:{rwfunc:"wstr",rwlen:1,rwp:"%n[%l+1]",htype:"[%l+1]",printf:"%s"},openApi:{type:"string"}},ustr:{dde:"ustring",dim:0,...O,rdef:0,lenUnits:"byte",xml:{type:"string"},pwn:{rwfunc:"ustr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},cstr:{dde:"cstring",dim:0,...O,rdef:1,lenUnits:"char",xml:{type:"string",editmask:"%HEX%"},pwn:{rwfunc:"cstr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},_siteref:{dim:0,len:80,rdef:0,xml:{type:"string",max:"80",editmask:"%QUERY%all_sites;-name;!id;class;name;%EMPTY%"},pwn:{rwfunc:"astr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}"},js:{rwfunc:"String"}}},H.fieldTypeDefinitions={uint8:H.TYPE_DEFS.u8,uint16:H.TYPE_DEFS.u16,uint32:H.TYPE_DEFS.u32,int8:H.TYPE_DEFS.s8,int16:H.TYPE_DEFS.s16,int32:H.TYPE_DEFS.s32,int64:H.TYPE_DEFS.s64,float16:H.TYPE_DEFS.f16,float32:H.TYPE_DEFS.f32,float64:H.TYPE_DEFS.f64,stamp32:H.TYPE_DEFS.stamp32,stamp40:H.TYPE_DEFS.stamp40,binary:H.TYPE_DEFS.bin,astring:H.TYPE_DEFS.astr,nstring:H.TYPE_DEFS.nstr,wstring:H.TYPE_DEFS.wstr,ustring:H.TYPE_DEFS.ustr,cstring:H.TYPE_DEFS.cstr};let M=["_id","id","_stamp","stamp","tag","_uid","customer_id","site_id","_rec_flags__","applog"];function Y(z){let i0=z.toLowerCase();return M.includes(i0)||/^field\d+$/.test(i0)||/^ch\d+$/.test(i0)}H.checkForReservedFieldName=Y;function W(z){return!!z.fields.find(i0=>i0.library===null&&i0.type!=="shadow")}H.hasContainerAppFields=W})(R0||={});var ce=R0.DDEContainerName,ki=R0.allowedRelationTypes,Gv=R0.regexRelation,Uv=R0.ContainerType,Hv=R0.checkForReservedFieldName,jt=R0.ContainerName,_i=R0.CONTAINER_DEFS,zv=R0.SERVER_CONTAINER,Kv=R0.HISTDATA_CONTAINER,Jv=R0.CONFIG_CONTAINER,vr=R0.TransferDirection,wi=R0.fieldTypeDefinitions,aA=m0.yamlRangeToLineInformation,ht;(x=>{class A{constructor(r,t,s){this.manifest=r;this.libraryFiles=t;this.ddeHistory=s}manifest;libraryFiles;ddeHistory;fieldNamesPerContainer={};usedContainerNames={};fileDiagnostics=[];libraryDDE=[];libraryYaml={};parseLibraries(){this.libraryDDE.length=0;let r=[];return this.libraryFiles.forEach(t=>{let{parsedDDE:s,diagnostics:n,parsedYaml:F}=this.parseYamlFile(t.path,t.yaml,t.libraryName);r.push(...n),this.libraryDDE.push(s),this.libraryYaml[t.libraryName]=F}),r}get previousVersion(){return{setPointList:{...this.ddeHistory?.setPointList},containers:{...this.ddeHistory?.containers}}}getContainerOfPreviousVersion(r){let t=this.previousVersion,s=r.startsWith("timeseries_")?r.substring(11):r;return Object.values(t.containers).find(n=>n.title===s)||null}parseMainDDE(r,t){let{parsedDDE:s,diagnostics:n}=this.parseYamlFile(r,t);return n.find(c=>c.level==="error")?{ddeJSON:null,diagnostics:n}:{ddeJSON:this.mergeAndFormat(s),diagnostics:n}}parseYamlFile(r,t,s){this.fileDiagnostics.length=0;let n=new le.LineCounter,F=(0,le.parseDocument)(t,{lineCounter:n});if(!F.contents)return{parsedDDE:{containers:{},setPointList:{}},diagnostics:[],parsedYaml:null};let f=F.contents||new le.YAMLMap;return this.validateContainerDefinition(f.items).forEach(D=>{this.validateAllowedContainer(r,D,n,s),this.validateContainerFields(F,r,D,n)}),{parsedDDE:this.yamlDocToDdeJson(F.toJS({mapAsMap:!0}),s),diagnostics:[...this.fileDiagnostics],parsedYaml:F}}yamlDocToDdeJson(r,t){let s={containers:{},setPointList:{}},n=new Map,F=[...Object.values(ce)];if(r.get("cloudProject")){let c=Object.values(this.previousVersion.containers).map(p=>p.title),D=[...new Set([...F,...c])];F.length=0,F.push(...D)}for(let c of F)r.has(c)&&n.set(c,r.get(c));let f=r.get("timeseries");if(f)for(let[c,D]of f)n.set(c,D);for(let[c,D]of n){let{realContainer:p,transferDirection:j,legacyTitle:_}=this.getRealContainerInformation(c);if(!p)continue;let k=_i[p],S=c.includes("timeseries_")?c.replace("timeseries_",""):c,P={name:p,title:S,previousTitle:_,containerType:k.ctype,volatile:c===ce.volatile,transferDirection:j,fieldCount:D.size,knownNames:[],libraries:[],arrays:{},shadows:{},fields:[],size:0,fieldIndex:0};t&&P.libraries.push(t);for(let[N,L]of D){let O=[],s0=L.get("type"),R=wi[s0];if(!(!R&&s0!=="array")){if(s0==="array"){let g=[],M=L.get("length"),Y=L.get("fields"),W={name:N,length:M,library:t||null,fields:[]};P.arrays[N]=W;for(let H=0;H<M;H++){let z={name:N,index:H};for(let[i0,r0]of Y){let Z=wi[r0.get("type")];if(!Z)continue;W.fields?.find(v0=>v0.name===i0)||W.fields.push({name:i0,type:r0.get("type"),byteSize:Z.len||r0.get("bytes")||r0.get("length")});let n0=`${N}[${H}].${i0}`,{fields:U,shadowInfo:F0}=this.createDDEJsonFields(n0,t,Z,r0);U.forEach(v0=>{v0.arrayRef=z}),F0&&(P.shadows[F0.name]=F0),g.push(...U)}}O.push(...g)}else{let{arrayInfo:g,fields:M,shadowInfo:Y}=this.createDDEJsonFields(N,t,R,L);g&&(P.arrays[g.name]=g),Y&&(P.shadows[Y.name]=Y),O.push(...M)}O.forEach(g=>{g.index=++P.fieldIndex,P.fields.push(g),P.size+=g.byteSize})}}s.containers[p]=P}return s}getRealContainerInformation(r){let t,s,n;if(this.previousVersion){let F=r.startsWith("timeseries_")?r.substring(11):r,{name:f,direction:c,previousTitle:D}=this.findPreviousUsedContainer(F);t=f,s=c,n=D}if(!t){let F=Object.entries(this.usedContainerNames).find(([,f])=>f===r);F&&(t=F[0])}return t||(t=this.findNextFreeContainer(r)),this.usedContainerNames[t]=r,s||(s=[ce.setting,ce.command].includes(r)?vr.down:vr.up),s===vr.up&&t&&_i[t].xmits.includes(vr.upPlus)&&(s=vr.upPlus),t&&[jt.configA,jt.configB].includes(t)&&(s=vr.backendOnly),{realContainer:t,transferDirection:s,legacyTitle:n}}findNextFreeContainer(r){if(r===jt.aloha)return jt.aloha;let t=Jv;r.startsWith("timeseries_")?t=Kv:[ce.relations,ce.storage].includes(r)&&(t=zv);let s=this.previousVersion?.containers;return s&&(t=t.filter(n=>!Object.hasOwn(s,n))),t.find(n=>!Object.hasOwn(this.usedContainerNames,n))}findPreviousUsedContainer(r){let t=this.previousVersion.containers,s=Object.values(t).find(n=>n.title===r);return{name:s?.name,direction:s?.transferDirection,previousTitle:s?.previousTitle}}createDDEJsonFields(r,t,s,n){let F=n.get("array"),f=[],c,D;if(F){c={name:r,library:t||null,length:F};for(let p=0;p<F;p++){let j=`${r.toLowerCase()}[${p}]`;f.push(this.buildDDEJsonField(j,n,{name:r,index:p},s,t,null))}}else{let p=this.buildDDEJsonField(r,n,null,s,t,null);f.push(p);let j=n.get("shadowFields");if(j){D={name:p.name,byteSize:p.byteSize,byteOffset:p.byteOffset};for(let[_,k]of j){let S=_;r.includes(".")&&(S=r.split(".")[0]+`.${_}`),f.push(this.buildDDEJsonField(S,k,null,s,t,p.name))}}}return{arrayInfo:c,shadowInfo:D,fields:f}}buildDDEJsonField(r,t,s,n,F,f){return{id:r.toLowerCase(),name:r,index:0,library:F||null,byteOffset:0,byteSize:n.len||t.get("bytes")||t.get("length"),type:t.get("type"),title:t.get("title")||null,arrayRef:s,shadowRef:f,unit:t.get("unit"),hex:t.get("hex"),decimalPlaces:t.get("decimalPlaces"),writePermission:this.parseUserLevel(t.get("writePermission")),readPermission:this.parseUserLevel(t.get("readPermission")),channelMode:this.parseChannelMode(t.get("channelMode")),defaultValue:t.get("defaultValue"),scale:t.get("scale"),offset:t.get("offset"),chartMinimum:t.get("chartMinimum"),description:t.get("description"),chartMaximum:t.get("chartMaximum"),chartAlarmLow:t.get("chartAlarmLow"),chartAlarmHigh:t.get("chartAlarmHigh"),chartWarningLow:t.get("chartWarningLow"),chartWarningHigh:t.get("chartWarningHigh"),chartHysteresis:t.get("chartHysteresis"),chartTriggerThreshold:t.get("chartTriggerThreshold"),chartTriggerRelation:this.parseTriggerUndershoot(t.get("chartTriggerRelation")),chartSetPoint:t.get("chartSetPoint"),utilsTransferInterval:!!t.get("utilsTransferInterval"),bitmask:t.get("bitmask")}}resolvePossibleAlias(r,t){return(0,le.isAlias)(t)?t.resolve(r).value:t?.value}validateContainerDefinition(r){let t=[];return r.forEach(s=>{let F=s.key.value;F==="timeseries"?s.value.items.forEach(f=>{f.key.value=`timeseries_${f.key}`,t.push(f)}):["dde","cloudProject","constants"].includes(F)||t.push(s)}),t}parseUserLevel(r){if(r==="read-only")return 99;if(r?.startsWith("UL"))return Number(r.substring(2))}parseChannelMode(r){if(r)return{digital:1,"day-counter":2,"interval-counter":3,analog:6,"infinite-counter":12}[r]??r}parseTriggerUndershoot(r){if(r)return{"greater-or-equal":0,"less-or-equal":1}[r]??r}validateAllowedContainer(r,t,s,n){if(!t.value)return;let f=t.key.value;if(n&&(f.startsWith("aloha")||f.startsWith("timeseries"))){let c=f.includes("_")?f.split("_")[1]:f;this.fileDiagnostics.push({file:r,level:"error",message:`"${c}" not allowed within a library`,...aA(s,t.key.range)})}if(J.isAnalytics(this.manifest)&&![ce.relations,ce.storage].includes(f)){let c=f.includes("_")?f.split("_")[1]:f;this.fileDiagnostics.push({file:r,level:"error",message:`"${c}" not allowed within an analytics app. Only "relations" and "storage" are allowed.`,...aA(s,t.key.range)})}}validateContainerFields(r,t,s,n){let F=s.value;if(!F)return;let f=s.key.value;Object.hasOwn(this.fieldNamesPerContainer,f)||(this.fieldNamesPerContainer[f]=[]);let c=this.getContainerOfPreviousVersion(f);F.items.forEach(D=>{let j=D.key.value;this.checkForContainerRelation(D,r,t,n),this.validateFieldName(D,f,t,n),this.checkFieldNameLength(D,f,t,n);let _=c?.fields.find(O=>O.id===j.toLowerCase()),k=D.value,S=k.get("type",!0),P=this.resolvePossibleAlias(r,S),N=k.get("bytes",!0),L=this.resolvePossibleAlias(r,N);_&&(S&&P&&_.type!==P&&this.fileDiagnostics.push({file:t,level:"warning",message:`Field type changed from "${_.type}" to "${P}".
1642
+ Changing the type of an existing field can result in data loss or unexpected behaviour.`,...aA(n,S.range)}),N&&L&&_.byteSize!==L&&this.fileDiagnostics.push({file:t,level:"warning",message:`Byte size changed from '${_.byteSize}' to '${L}'.
1643
+ Changing the size of an existing field can result in data loss or unexpected behaviour.`,...aA(n,N.range)}))})}checkForContainerRelation(r,t,s,n){let F=r.value.get("fields");F&&F.items.forEach(c=>{this.checkForContainerRelation(c,t,s,n)}),r.value.items.forEach(c=>{let D=c.value;if(D?.value&&Gv.exec(`${D.value}`)){let p=c.key.value;if(p){if(!Object.hasOwn(ki,p))return this.fileDiagnostics.push({file:s,level:"error",message:`Property "${p}" does not allow relations.`,...aA(n,D.range)});if(["scale","offset"].includes(p))return this.fileDiagnostics.push({file:s,level:"warning",message:`Container relations for "${p}" are not available within the dlo source.`,...aA(n,D.range)})}return this.validateContainerRelation(p,D,t,s,n)}})}validateFieldName(r,t,s,n){let F=this.fieldNamesPerContainer[t],f=r.key,c=f.value;Hv(c)&&this.fileDiagnostics.push({file:s,level:"error",message:`Reserved property "${c}" is not allowed.`,...aA(n,f.range)});let D=r.value.get("shadowFields");D&&D.items.forEach(p=>{this.validateFieldName(p,t,s,n)}),F.includes(c.toLowerCase())?this.fileDiagnostics.push({file:s,level:"error",message:`Field name "${c}" is already occupied`,...aA(n,f.range)}):F.push(c.toLowerCase())}checkFieldNameLength(r,t,s,n){let F=r.key,f=F.value,D=`DDE_${t.startsWith("timeseries")?t.substring(10):t}_`,p=31-D.length;D.length+f.length>31&&this.fileDiagnostics.push({file:s,level:"error",code:Kr.CODE.ddeFieldLength,message:`Field name "${f}" to long. ${p} characters allowed for this field/container.`,...aA(n,F.range)})}validateContainerRelation(r,t,s,n,F){let[f,c,D]=t.value.split(".",3),[p,j]=f.split("@"),_=p?p.split(":")[1]:null,S=(_&&this.libraryYaml[_]?this.libraryYaml[_]:s).contents?.get(j),P=c.split("[")[0],N=null;if(S){let L=S.get(P);if(L)if(D){let O=L.get("fields");O&&O.get(D)&&(N=O.get(D))}else N=L;else N=this.findRelatedShadowField(S,P)}if(N){let L=ki[r],O=N.get("type");L.includes(O)||this.fileDiagnostics.push({file:n,level:"error",message:`Related field type "${O}" is not allowed for attribute "${r}".`,...aA(F,t.range)})}else _&&!this.libraryYaml[_]?this.fileDiagnostics.push({file:n,level:"error",message:`Related library "${_}" does not exist.`,...aA(F,t.range)}):this.fileDiagnostics.push({file:n,level:"error",message:`Related field "${t.value}" does not exist.`,...aA(F,t.range)})}findRelatedShadowField(r,t){for(let s of r.items){let F=s.value.get("shadowFields");if(!F)continue;let f=F.get(t);if(f)return f}}mergeAndFormat(r){let t={containers:{},setPointList:{}};for(let s of this.libraryDDE)this.combineDDE(t,s);return this.combineDDE(t,r),this.sortContainerFields(t),this.generateSetPointList(t),t}combineDDE(r,t){for(let[s,n]of Object.entries(t.containers)){let F=r.containers[s];F?(F.title=n.title,F.knownNames.unshift(n.title),F.libraries.push(...n.libraries),F.fields.push(...n.fields),F.arrays={...F.arrays,...n.arrays},F.shadows={...F.shadows,...n.shadows}):(F=r.containers[s]=structuredClone(n),F.knownNames.unshift(n.title),F.fieldCount=F.fields.length,F.fieldIndex=0);let f=this.initialContainerByteOffset(F);for(let[c,D]of F.fields.entries()){if(D.shadowRef){let p=F.shadows[D.shadowRef];D.byteOffset=p.byteOffset}else D.byteOffset=f,this.updateShadowFieldInformation(r.containers[s],D),f+=D.byteSize||0;c>F.fieldCount-1&&(D.index+=F.fieldIndex)}F.fieldIndex+=n.fieldIndex,F.knownNames=[...new Set(F.knownNames)],F.libraries=[...new Set(F.libraries)],F.fieldCount=F.fields.length}}initialContainerByteOffset(r){return r.containerType===Uv.hx?1:0}updateShadowFieldInformation(r,t){t&&Object.hasOwn(r.shadows,t.name)&&(r.shadows[t.name].byteOffset=t.byteOffset)}sortContainerFields(r){for(let t of Object.values(r.containers)){let{sortedFields:s,containerSize:n}=this.sortFields(t);t.fields=s,t.size=n,t.fieldCount=t.fields.length}}sortFields(r){let t=r.fields.filter(p=>!p.shadowRef),s=r.fields.filter(p=>p.shadowRef),n=[],F=r.name;if(this.previousVersion.containers[F]){let p=this.sortPreviousContainerFields(r,t);n.push(...p)}else n.push(...t);n.forEach(p=>{this.updateShadowFieldInformation(r,p)});let c=n[n.length-1],D=c.byteSize+c.byteOffset;return s.forEach(p=>{p.byteOffset=r.shadows[p.shadowRef].byteOffset,n.push(p)}),{sortedFields:n,containerSize:D}}sortPreviousContainerFields(r,t){let s=r.name,n=this.previousVersion.containers[s],F=[],f=this.initialContainerByteOffset(r);for(let c of n.fields){if(c.shadowRef)continue;let D=t.findIndex(j=>c.id===j.name?.toLowerCase());if(D===-1){f=c.byteOffset+c.byteSize;continue}let p=t[D];if(c.type!==p.type&&c.byteSize!==p.byteSize){f=c.byteOffset+c.byteSize;continue}p.byteOffset=c.byteOffset,t.splice(D,1),F.push(p),f=this.initialContainerByteOffset(r)}if(f>this.initialContainerByteOffset(r)){let c=t.shift();F.push(...this.generatePlaceholderFieldIfNeeded(f,c)),this.updateShadowFieldInformation(r,c)}for(let c of t){if(c.shadowRef)c.byteOffset=r.shadows[c.shadowRef].byteOffset;else{this.updateShadowFieldInformation(r,c);let D=F[F.length-1];D.shadowRef&&(D=r.shadows[D.shadowRef]),c.byteOffset=D.byteOffset+D.byteSize}F.push(c)}return F}generatePlaceholderFieldIfNeeded(r,t){let s=[];if(t)t.byteOffset=r,s.push(t);else{let n={byteOffset:r,byteSize:0,id:"_shadow",library:null,name:"_shadow",type:"shadow",arrayRef:null,shadowRef:null,title:null,index:0};s.push(n)}return s}generateSetPointList(r){r.setPointList={...this.previousVersion.setPointList||{}};for(let t of Object.values(r.containers))for(let s of t.fields)s.chartSetPoint&&(Object.hasOwn(r.setPointList,s.name)||(r.setPointList[s.name]=this.getNextSetpointValue(r.setPointList)))}getNextSetpointValue(r){let t=[...Object.values(r),0];return Math.max(...t)+1}}x.PreCompiler=A})(ht||={});var Wx=R0.TransferDirection,uA=R0.parseXMLValueWithRelation,Vv=R0.parseXMLBitmask,Wv=R0.parseXMLDefaultValue,Xv=R0.fieldTypeDefinitions;function Nn(A,x){let r=[];function t(F,f=!0){if(f){if(Array.isArray(F)){r.push.apply(r,F);return}r.push(""+F)}}function s(F,f){F!=="mergeofs"&&t(`${F}=${f}`)}t("// DDE STRUCTURE created by Microtronics Studio");let n="source=rm2mraw";for(let[F,f]of Object.entries(x.containers)){F.startsWith("histdata")&&f.transferDirection!==Wx.deviceOnly&&(t("<split>"),t(n),t("target="+F),t("key=0"+F.substr(-1,1)),t("</split>")),t("<table>"),s("name",F),s("alias",f.title),s("title",f.title.replace("_"," "));let c={};[Wx.none,Wx.backendOnly,Wx.deviceOnly,Wx.down,Wx.downPlus].includes(f.transferDirection)&&s("upload","0"),[Wx.none,Wx.backendOnly,Wx.deviceOnly,Wx.up,Wx.upPlus].includes(f.transferDirection)&&s("download","0"),(J.isIotApp(A)||J.isLibrary(A))&&[Wx.up,Wx.upPlus].includes(f.transferDirection)&&s("edit","99");for(let D of f.fields){if(D.type==="shadow")continue;let p=Yv(D),j=Xv[p.type],_=uA("title",p,x)||p.name;!_.startsWith("%")&&p.library&&(_=`${p.library}: ${_}`);let k={title:_,alias:p.name,index:D.index,...c};k.byteofs=`${p.byteOffset}`;for(let[S,P]of Object.entries(j.xml))k[S]=P;Object.hasOwn(j,"xmlOut")&&j.xmlOut(k,p,x),k.units=uA("unit",p,x),k.chmode=uA("channelMode",p,x),k.ialarm_high=uA("chartAlarmHigh",p,x),k.ialarm_low=uA("chartAlarmLow",p,x),k.iwarn_high=uA("chartWarningHigh",p,x),k.iwarn_low=uA("chartWarningLow",p,x),k.hysterese=uA("chartHysteresis",p,x),k.itrigger=uA("chartTriggerThreshold",p,x),k.itriggerus=uA("chartTriggerRelation",p,x),k.setpoint=uA("chartSetPoint",p,x),k.bitmask=Vv(p),p.hex&&(k.editmask="%HEX%"),p.readPermission&&(k.view=p.readPermission),p.writePermission&&(k.edit=p.writePermission),p.defaultValue!==void 0&&(k.default=Wv(p)),p.utilsTransferInterval===!0&&(k.param0="%FFFF0005%transfer_interval"),t("<field>"),p.library&&t(`// declared by ${p.library} library`,!0);for(let[S,P]of Object.entries(k))P!==void 0&&s(S,`${P}`);t("</field>")}["alerts","applog"].includes(F)||(t("</table>"),t("// "+f.size+" bytes total size"))}return t("<split>"),t(n),t("target=alarm0"),t("key=20"),t("</split>"),t("<split>"),t(n),t("target=applog0"),t("key=28"),t("</split>"),r.join(`
1644
+ `)}function Yv(A){let x=structuredClone(A),e=A.arrayRef?.index;if(e===void 0)return x;for(let[r,t]of Object.entries(x))x[r]=m0.patchValueWithArrayInfo(t,e);return x}var MA=cx(require("semver"));var bA=cx(require("semver"));var fr={DP_registry_sz:1024,DP_config_sz:4e3,DP_histdata_sz:1024,DP_DISPLAY_CNT:0,DP_LED_CNT:0,DP_BUTTON_CNT:0,DP_GPIO_CNT:0,DP_IRQ_CNT:0,DP_DIGOUT_CNT:0,DP_UIN_CNT:0,DP_TEMP_CNT:0,DP_I2C_CNT:0,DP_SPI_CNT:0,DP_UART_CNT:0,DP_RS485_CNT:0,DP_RS232_CNT:0,DP_WIFI_CNT:0,DP_BLE_CNT:0,DP_LORA_CNT:0,DP_NBIOT_CNT:0},In={max_size:1e5,max_fields:1e3},IA={max_size:4e3,max_fields:1e3},pA={max_size:1024,max_fields:1e3},Er={configA:In,configB:In,configC:In,config0:IA,config1:IA,config2:IA,config3:IA,config4:IA,config5:IA,config6:IA,config7:IA,config8:IA,config9:IA,histdata0:pA,histdata1:pA,histdata2:pA,histdata3:pA,histdata4:pA,histdata5:pA,histdata6:pA,histdata7:pA,histdata8:pA,histdata9:pA,aloha:{...pA,warn_fields:10},alerts:{max_size:13,max_fields:0,exact_match:!0},applog:{max_size:125,max_fields:0,exact_match:!1}},gt={m22x:{name:"M22x",dpid:"m22x",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M M2 HW1.0"],alt_ids:[],generation:"M2",prog_mem:256*1024,data_mem:64*1024,total_mem:256*1024,hw_reqd:!1,dde:Er,auto_inc:{...fr,DP_LED_CNT:1,DP_GPIO_CNT:6,DP_IRQ_CNT:2,DP_I2C_CNT:1,DP_SPI_CNT:1,DP_UART_CNT:2,DP_WIFI_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}},m23x:{name:"M23x",dpid:"m23x",interface:{type:"usb",filter:{vendorId:1155},fileChunk:4096},usb_ids:["rapidM2M M23 HW2.0","rapidM2M M23 HW1.0"],alt_ids:[],generation:"M23",prog_mem:8*1024*1024,data_mem:8*1024*1024,total_mem:8*1024*1024,hw_reqd:!1,dde:Er,auto_inc:{...fr,DP_LED_CNT:1,DP_GPIO_CNT:6,DP_IRQ_CNT:2,DP_I2C_CNT:1,DP_SPI_CNT:1,DP_UART_CNT:1,DP_WIFI_CNT:1},usbcaps:{dbgItfMayHangFixed:"99v999"},dlo:{compileRestrictions:{}}},nrf91:{name:"NRF91",dpid:"nrf91",interface:{type:"usb",filter:{vendorId:9540},fileChunk:2048},usb_ids:["rapidM2M NRF91 HW1.0","ONE NRF91 HW1.0","rapidM2M Evolve HW1.0"],alt_ids:[],generation:"NRF91",prog_mem:256*1024,data_mem:64*1024,total_mem:256*1024,hw_reqd:!1,dde:Er,auto_inc:{...fr,DP_LED_CNT:1,DP_GPIO_CNT:32,DP_IRQ_CNT:6,DP_I2C_CNT:2,DP_SPI_CNT:2,DP_UART_CNT:2,DP_AIN_CNT:8,DP_PWM_CNT:3},usbcaps:{}},m2blegw:{name:"BLE Gateway",dpid:"m2blegw",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M BLEGW HW1.0"],alt_ids:[],generation:"M2",prog_mem:256*1024,data_mem:256*1024,total_mem:256*1024,hw_reqd:!1,dde:Er,auto_inc:{...fr,DP_DISPLAY_CNT:1,DP_DISPLAY_TYPE:"xc",DP_BUTTON_CNT:1,DP_BLE_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}},m2easyv3:{name:"myDatalogEasy V3",dpid:"m2easyv3",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M Easy HW3.0"],alt_ids:["rapidM2M EasyIoT HW1.0","rapidM2M M220 HW1.0"],generation:"M2",prog_mem:256*1024,data_mem:256*1024,total_mem:256*1024,hw_reqd:!1,dde:Er,auto_inc:{...fr,DP_LED_CNT:1,DP_BUTTON_CNT:1,DP_DIGOUT_CNT:1,DP_UIN_CNT:4,DP_TEMP_CNT:1,DP_RS485_CNT:1,DP_RS232_CNT:1,DP_BLE_CNT:1,DP_LORA_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}},m2easyiot:{name:"myDatalogEasy IoT",dpid:"m2easyiot",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M EasyIoT HW1.0"],alt_ids:[],generation:"M2",prog_mem:256*1024,data_mem:256*1024,total_mem:256*1024,hw_reqd:!1,dde:Er,auto_inc:{...fr,DP_LED_CNT:1,DP_BUTTON_CNT:1,DP_DIGOUT_CNT:1,DP_UIN_CNT:4,DP_TEMP_CNT:1,DP_RS485_CNT:1,DP_RS232_CNT:1,DP_BLE_CNT:1,DP_LORA_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}}};var Rn=require("vscode-uri");var yx=R0.ContainerType,I0=R0.TransferDirection,Jr=R0.regexRelation,Qv=R0.CONFIG_CONTAINER,Ln=R0.CONTAINER_DEF_DLO_CID_BASE,Wr=R0.CONTAINER_DEFS,kt=R0.fieldTypeDefinitions,$i=m0.isNumeric;function oA(A){let x=kt[A.type];return x.pwn.rwp||(x.pwn.rwp="%n"),x.pwn.htype||(x.pwn.htype=x.pwn.rwfunc),x.pwn}var yt="Microtronics/dlo-core";function On(A){return J.isLibrary(A)&&A.name==="dlo-core"?A.version:A.libraryDependencies&&Object.hasOwn(A.libraryDependencies,yt)?Q0.rangeToVersion(A.libraryDependencies[yt]):A.libraryDevDependencies&&Object.hasOwn(A.libraryDevDependencies,yt)?Q0.rangeToVersion(A.libraryDevDependencies[yt]):null}function Zv(A){let x=On(A);return x===null||bA.gte(x,"0.3.0")?bA.valid(A.version)?A.version:bA.coerce(`${A.version}`):bA.coerce(A.version)?.major}function Mn(A){let x=On(A);if(x===null)return!1;let e=bA.coerce(x);return bA.gte(e,"1.1.0")}function xf(A){let x=On(A);if(x===null)return!1;let e=bA.coerce(x);return bA.gte(e,"1.15.0")}var Af=["u8","u16","u32","s8","s16","s32","s64","f16","f32","f64"];function ef(A){if(A.type==="ustring")return!1;if(A.defaultValue!=="NaN")return!0;let x=oA(A);return!x||x==="skip"?!1:Af.includes(`${x.rwfunc}`)}function rf(A,x,e){A("PROJECT META");let{dpid:r,registry:t}=e;if(!r)throw new Error('Setting "dpid" is required to generate dlo files');let{auto_inc:s}=gt[r];x("APM_DPID",`${r}`),x(`APM_DPID_${r}`,"1"),x(`APM_DPID_${r.toUpperCase()}`,"1"),x("APM_ID",t?.id||"");let n=Zv(e);x("APM_VERSION",`${n}`),x("APM_NAME",`${e.name}`),x("APM_AUTHOR",`${e.publisher}`);for(let[F,f]of Object.entries(s))$i(f)?x(F,`${f}`):x(F,`"${f}"`)}function tf(A,x,e,r){let t=r.flat,{definesWithSource:s}=r;x("GLOBAL DEFINES");for(let[n,F]of Object.entries(t)){let f=s[n]?.comment;if(f){let D=f.split(`
1645
+ `);if(D.length===1)A(`/** ${D[0]} */`);else{A("/**");for(let p of D)A(` * ${p}`);A(" */")}}let c=Object.hasOwn(t,F);e(n,`${F}`,c)}}function nf(A,x,e,r){let t=parseInt(A.substring(6)),s=1<<t;e[t]=x.size,r.cx_isupm|=[I0.both,I0.none,I0.deviceOnly,I0.up,I0.upPlus].includes(x.transferDirection)?s:0,r.cx_isvolatilem|=x.volatile?s:0,r.cx_isdnm|=[I0.both,I0.none,I0.deviceOnly,I0.down,I0.downPlus].includes(x.transferDirection)?s:0,r.cx_isvlm|=[I0.bothPlus,I0.upPlus,I0.downPlus].includes(x.transferDirection)?s:0}function sf(A,x,e,r){let t=parseInt(A.substring(8));e[t]=x.size,r.hx_isvlm|=[I0.upPlus].includes(x.transferDirection)?1<<t:0}function af(A){return[I0.upPlus].includes(A.transferDirection)}function of(A,x,e){let r=0,t=Array(10).fill(0),s={cx_isupm:0,cx_isvolatilem:0,cx_isdnm:0,cx_isvlm:0},n=0,F=Array(10).fill(0),f={hx_isvlm:0},c;for(let[p,j]of Object.entries(e.containers))j.containerType===yx.cx&&j.transferDirection!==I0.backendOnly?(nf(p,j,t,s),r=Math.max(r,j.size)):j.containerType===yx.hx?(sf(p,j,F,f),r=Math.max(r,j.size)):j.containerType===yx.aloha&&(c=af(j),r=Math.max(r,j.size));x("DDE CORE"),A(`#define _DDE_BUF_BYTES (${r}+10)`),A(""),A("// c0 c1 c2 c3 c4 c5 c6 c7 c8 c9"),A(`stock _DDE_CONFIGS_size[] =[ ${t.join(", ")}];`),A(`#define _DDE_CONFIGS_upm 0b${s.cx_isupm.toString(2)} // ..is tolerant when reading back container with under-length`),A(`#define _DDE_CONFIGS_volatilem 0b${s.cx_isvolatilem.toString(2)} // inits container as volatile`),A(`#define _DDE_CONFIGS_downm 0b${s.cx_isdnm.toString(2)} // reading the container expects strict length`),A(`#define _DDE_CONFIGS_varlenm 0b${s.cx_isvlm.toString(2)} // allow partial write (dde_wxxx)`),A(`#define _DDE_CONFIGS_rdef 0b${n.toString(2)} // ..apply defaults reading a container with under-length`),A(""),A("// h0 h1 h2 h3 h4 h5 h6 h7 h8 h9"),A(`stock _DDE_HISTS_size[] =[ ${F.join(", ")}];`),A(`#define _DDE_HISTS_varlenm 0b${f.hx_isvlm.toString(2)} // allow partial write (dde_wxxx)`);let D=[...F];Object.hasOwn(e,"applog")&&D.push(125),Object.hasOwn(e,"alerts")&&D.push(13),A(`#define _DDE_HISTS_maxsize ${Math.max(...D)}`),A(""),c!==void 0&&(A(`#define _DDE_ALOHA_varlen ${c?1:0}`),A(""))}function Ff(A,x,e){for(let[r,t]of Object.entries(e.containers)){if(t.containerType==="applog")continue;x(`${t.title.toUpperCase()} - ${t.transferDirection} via #${r}`);let s=Ln(t.containerType,t.transferDirection);if(!s){A("// ... container not available in DLO");continue}let n=`DDE_${t.containerType===yx.aloha?yx.aloha:t.title}`,F=Wr[r];A(`// ${n}_id - container identifier required for ${n}_read/_write operations`),A(`#define ${n}_id (${s}+${F.cnum||0})`),A(`// ${n}_sz - [byte] container total size`),A(`#define ${n}_sz ${t.size}`),F.cnum!==void 0&&(A(`// ${n}_idx - 0+ container index number`),A(`#define ${n}_idx ${F.cnum}`))}}function qi(A,x,e){let r=[],t=r.push.bind(r);function s(F){t(`
1646
+ // === ${F} ===
1647
+ `)}function n(F,f,c=!1){let D=$i(f)?"":'"';c&&(D=""),t(`#define ${F} ${D}${f}${D}`)}return rf(s,n,e),tf(t,s,n,x),of(t,s,A),Ff(t,s,A),r.join(`
1648
+ `)}var Xr=class{constructor(x,e,r){this.manifest=x;this.ddeMap=e;this.context=r;this.sourceType="pawnSource"}manifest;ddeMap;context;globalVariables=[];pawnGlobalSource=[];pawnHelperSource=[];timeSeriesSource=[];readWriteSource=[];definesSource=[];defaultDefinesSource=[];knownDefines=[];pawnIndent=0;sourceType;pawn(x,e){e&&x==="<"&&this.pawnIndent--,{pawnSource:this.pawnGlobalSource,globalVariables:this.globalVariables,timeseries:this.timeSeriesSource,readWrite:this.readWriteSource,defines:this.definesSource,defaultDefines:this.defaultDefinesSource}[this.sourceType].push(" ".repeat(this.pawnIndent)+(e||x)),e&&x===">"&&this.pawnIndent++}generate(){for(let[x,e]of Object.entries(this.ddeMap.containers))this.context&&!e.libraries.includes(this.context)||!Ln(e.containerType,e.transferDirection)||!e.fields||!this.context&&!R0.hasContainerAppFields(e)||Wr[x].ctype!==yx.cx&&this.context||(this.generateGlobalVarsForContainer(e),this.generateReadWriteFunctions(e));return this.mergeSourceTypes(),{globals:this.pawnGlobalSource,helper:this.pawnHelperSource}}createGlobalVar(x,e){this.sourceType="globalVariables";let r=e?this.variableNameForPawnDefinition(x,e):x;if(e){let t=this.generateCommentForField(e);t&&(Array.isArray(t)?(this.pawn("/**"),t.forEach(s=>{this.pawn(` * ${s}`)}),this.pawn(" */")):this.pawn(`// ${t}`))}this.pawn(`stock ${r}${e?this.initialiserForGlobalVar(e):""};`)}initialiserForGlobalVar(x){if(x.defaultDloDefine===void 0||x.arrayRef)return"";let e=oA(x);return!e||e==="skip"||`${e.rwp||""}`.includes("%l")?"":` = ${x.defaultDloDefine}`}insertSection(x){this.pawn(""),this.pawn("// ============================================================================="),this.pawn(`// ${x}`),this.pawn("// ============================================================================="),this.pawn("")}mergeSourceTypes(){this.sourceType="pawnSource",this.definesSource.length&&(this.insertSection("Defines"),this.pawnGlobalSource.push(...this.definesSource)),this.defaultDefinesSource.length&&(this.insertSection("Field defaults"),this.pawnGlobalSource.push(...this.defaultDefinesSource)),this.globalVariables.length&&(this.insertSection("Global Variables"),this.pawnGlobalSource.push(...this.globalVariables)),this.readWriteSource.length&&(this.insertSection("Internal read/write calls"),this.pawnHelperSource.push(...this.readWriteSource)),this.pawn("")}generateGlobalVarsForContainer(x){this.sourceType="globalVariables",this.pawn(""),this.pawn(`// Container '${x.title.replace("_"," ")}'`),this.pawn("");let e=`DDE_${x.title}`;this.generateArrayDefines(e,x);for(let r of x.fields){if(r.type==="shadow"||r.shadowRef||r.library!==this.context)continue;if(r.arrayRef!==null){let s=x.arrays[r.arrayRef.name],n=`${e}_${r.arrayRef.name}`;s.fields?.length&&(n+=`_${r.name.split(".")[1]}`),this.createDefaultDefineForField(n,r);continue}let t=this.generateFieldVariableName(e,r);this.createDefaultDefineForField(t,r),this.createGlobalVar(`${t}`,r)}}generateArrayDefines(x,e){for(let r of Object.values(e.arrays)){if(this.context!==r.library)continue;let t=`${x}_${r.name}_dim`;if(this.sourceType="defines",this.pawn(`#define ${t} ${r.length}`),r.fields){for(let F of r.fields)kt[F.type]?.isBlob&&F.byteSize&&this.addDefine(`${x}_${r.name}_${F.name}_dim`,F.byteSize);let s={...e};s.fields=[],r.fields.forEach(F=>{s.fields.push({arrayRef:null,shadowRef:null,byteOffset:0,byteSize:F.byteSize,id:F.name,library:r.library,name:F.name,type:F.type,title:null,index:0})});let n=`${x}_${r.name}_def`;this.generateTypeDefinitions(s,n),this.createGlobalVar(`${x}_${r.name}[${t}][${n}]`)}else this.createGlobalVar(`${x}_${r.name}[${t}]`)}}generateCommentForField(x){let e=[`@type ${x.type}`];if(x.description&&e.unshift(x.description),x.defaultValue!==void 0){let{value:r,reason:t}=this.parseFieldDefault(x);e.push(`@default ${r} ${t||""}`)}return e}generateFieldVariableName(x,e){let r=`${x}_${e.name}`,t=Object.hasOwn(kt,e.type)&&kt[e.type].isBlob,s=e.byteSize;return s&&t&&(this.sourceType="defines",this.pawn(`#define ${x}_${e.name}_dim ${s}`),this.pawn(`#define ${x}_${e.name}_iter() for(new i=0;i<${s};i++)`)),this.sourceType="globalVariables",r}generateTypeDefinitions(x,e){this.sourceType="defines";let r=x.fields;if(!r)return;let t=[];this.pawn(">",`#define ${e} [`);for(let s of r){let n=this.generateFieldTypeDefinition(s,x,t,e);n!==null&&this.pawn(n)}this.pawn("<","]")}handleArrayFieldDedup(x,e,r,t){let s=x.arrayRef;if(s){let f=e.arrays[s.name];if(!r.includes(s.name)&&!f.fields)r.push(s.name);else return null}let n=x.arrayRef?x.arrayRef.name:x.name,F=x.arrayRef?`[${t}_${n}_dim]`:"";return{fieldName:n,fld_dim:F}}generateFieldTypeDefinition(x,e,r,t){if(x.type==="shadow"||x.shadowRef||x.library!==this.context)return null;let s=this.handleArrayFieldDedup(x,e,r,t);if(s===null)return null;let{fieldName:n,fld_dim:F}=s,f="";if(x.type==="struct")f="// ."+n+F;else{let c=oA(x);if(!c)return null;c==="skip"?f=`// skipped - .${n}${F}`:f+=c.rwp.replace("%n",`.${n}${F}`).replace("%l",x.byteSize)}return f+=",",x.library&&(f+=` // declared by ${x.library} library`),f}variableNameForPawnDefinition(x,e){let r=oA(e);return r&&r!=="skip"?r.rwp.replace("%n",`${x}`).replace("%l",e.byteSize):x}createDefaultDefineForField(x,e){if(this.sourceType="defaultDefines",e.scale!==void 0&&this.addDefine(`${x}_scale`,e.scale),e.offset!==void 0&&this.addDefine(`${x}_offset`,e.offset),e.defaultValue!==void 0&&ef(e)){let{value:r,reason:t}=this.parseFieldDefault(e),s=`${x}_default`;this.addDefine(s,r,t)&&(e.defaultDloDefine=s)}}addDefine(x,e,r){return Jr.exec(`${e}`)?!1:(this.knownDefines.includes(x)||(r&&this.pawn(`// ${r}`),this.pawn(`#define ${x} ${e}`),this.knownDefines.push(x)),!0)}generateReadWriteFunctions(x){let e=x.name,r=Wr[e],t=`DDE_${x.containerType===yx.aloha?yx.aloha:x.title}`;[I0.both,I0.bothPlus,I0.none,I0.deviceOnly,I0.up,I0.upPlus].includes(x.transferDirection)&&this.generateWriteMethod(t,x),r.ctype===yx.cx&&this.generateReadMethod(t,x)}generateWriteMethod(x,e){this.sourceType="readWrite";let r=`DDE_${e.title}_id`,t=[yx.hx,yx.aloha].includes(e.containerType),s=e.containerType===yx.hx,n=e.containerType===yx.aloha,F=`_${x}_write`,f=Mn(this.manifest)?", flags":"",c=s?`stamp${f}`:"",D=Mn(this.manifest)?"const stamp=0, const flags=0":"const stamp=0";this.pawn(">",`stock ${F}(${s?D:""}) {`),t&&this.pawn(`dde_wbegin(DDE_${n?yx.aloha:e.title}_id);`),this.generateRWFunctionBody(x,e,"dde_w"),t&&this.pawn(`return dde_wend(${c});`),this.pawn("<","}"),this.pawn(""),this.sourceType="globalVariables";let p=`${x}_transfer`,j=`${x}_persist`,_=this.functionArgumentsForDdeWrite(s,t);if(this.pawn(">",`${this.context?"stock ":""}${p}(${_}) {`),t)this.pawn(`${F}(${c});`);else{let k=e.name.slice(-1);this.pawn(`dde_flush(${k}, immediate);`)}this.pawn("<","}"),this.pawn(""),e.volatile&&(this.pawn(">",`stock ${j}() {`),this.pawn(`return rM2M_CfgFlush(${r});`),this.pawn("<","}"))}functionArgumentsForDdeWrite(x,e){let r=Mn(this.manifest)?", const flags=0":"";return x?`const stamp=0${r}`:e?"":"bool:immediate=false"}generateReadMethod(x,e){this.sourceType="readWrite";let r=`_${x}_read`;this.pawn(">",`stock ${r}() {`),this.generateRWFunctionBody(x,e,"dde_r"),this.pawn("<","}"),this.pawn("")}isFieldSkipped(x){return x.type==="shadow"||!!x.shadowRef||x.library!==this.context}emitFieldRW(x,e,r,t,s,n,F){if(!e.arrayRef)return this.emitSingleField(x,e,r,t,F);let f=e.arrayRef.name,c=s.get(f);return c?n.has(f)?F:(n.add(f),this.emitArrayLoop(x,c,r)):this.emitSingleField(x,e,r,t,F)}generateRWFunctionBody(x,e,r){let t=e.fields,s=this.analyzeArrayGroups(t,x,e),n=new Set,F=-1;for(let f of t){if(this.isFieldSkipped(f))continue;let c=oA(f);!c||c==="skip"||(F=this.emitFieldRW(x,f,r,c,s,n,F))}}defaultArgumentFor(x,e){return x.defaultDloDefine===void 0?"":e==="dde_r"||xf(this.manifest)?`, ${x.defaultDloDefine}`:""}emitSingleField(x,e,r,t,s){e.byteOffset!==s&&this.pawn(`_dde_idx = ${e.byteOffset};`);let n="";n+=r,n+=t.rwfunc;let F=`${x}_${e.name}`;return n+=`(${F}`,t.rwlen&&(n+=`, ${e.byteSize}`),n+=this.defaultArgumentFor(e,r),this.pawn(n+");"),e.byteOffset+e.byteSize}emitArrayLoop(x,e,r){this.pawn(">",`for (new _i = 0; _i < ${e.dimDefine}; _i++) {`);let t=-1;for(let s of e.templateFields){let n=oA(s);if(!n||n==="skip")continue;let F=s.byteOffset;F!==t&&this.pawn(`_dde_idx = ${F} + (_i * ${e.stride});`),t=F+s.byteSize;let f=`${x}_${s.name.replace(/\[\d+\]/,"[_i]")}`,c=`${r}${n.rwfunc}(${f}`;n.rwlen&&(c+=`, ${s.byteSize}`),c+=this.defaultArgumentFor(s,r),this.pawn(c+");")}return this.pawn("<","}"),-1}analyzeArrayGroups(x,e,r){let t=this.collectArrayFieldsByIndex(x);return this.buildArrayGroups(t,e,r)}collectArrayFieldsByIndex(x){let e=new Map;for(let r of x){if(this.isFieldSkipped(r)||!r.arrayRef)continue;let t=oA(r);if(!t||t==="skip")continue;let{name:s,index:n}=r.arrayRef;e.has(s)||e.set(s,new Map);let F=e.get(s);F.has(n)||F.set(n,[]),F.get(n).push(r)}return e}validateArrayStride(x,e){let r=e[0].byteOffset-x[0].byteOffset;if(r<=0)return null;for(let t=0;t<x.length;t++)if(e[t].byteOffset-x[t].byteOffset!==r)return null;return r}buildArrayGroups(x,e,r){let t=new Map;for(let[s,n]of x){let F=r.arrays[s];if(!F||F.length<2)continue;let f=n.get(0),c=n.get(1);if(!f||!c||f.length===0||c.length===0||f.length!==c.length)continue;let D=this.validateArrayStride(f,c);D!==null&&t.set(s,{arrayName:s,dimDefine:`${e}_${s}_dim`,stride:D,templateFields:f})}return t}parseFieldDefault(x){let e=oA(x),r=x.defaultValue;function t(n,F){return{value:n,reason:F}}switch(x.type){case"astring":case"nstring":case"cstring":return t(`"${r}"`);case"wstring":return t(`''${r}''`);case"ustring":return t(`/* default not supported: ${r} */`);case"binary":{let F=`{ 0x${(r.substring(2).replace(/\s+/g,"").match(/.{1,2}/g)||[]).join(", 0x")} }`;return t(F)}}if(r==="NaN"){let n=e.rwfunc;return t(`${n}_NaN`.toUpperCase())}let s=this.parseFieldScaleOffset(x);return s?t(s.calculated,s.reason):(r!==void 0&&!Jr.exec(`${r}`)&&x.type.startsWith("float")&&r%1===0&&(r=r.toFixed(x.decimalPlaces||1)),t(`${r}`))}parseFieldScaleOffset(x){let e=x.defaultValue;if(!(!!Jr.exec(`${x.offset}`)||!!Jr.exec(`${x.scale}`)||!!Jr.exec(`${x.defaultValue}`))&&(x.offset!==void 0||x.scale!==void 0)){let t=x.offset!==void 0?Number(x.offset):0,s=x.scale!==void 0?Number(x.scale):1;if(s===0)return null;let n=(Number(e)-t)/s,F=`(defaultValue - offset) / scale -> (${e} - ${t}) / ${s}`;return x.type.startsWith("float")?n%1===0&&(n=n.toFixed(1)):(n=Math.round(n),F=`Rounded value of: ${F}`),{calculated:n,reason:F}}return null}};function vf(A){return`${`onUplinkApply_${A}()`};`}function Pi(A,x,e){x.libraries.forEach(r=>{let t=m0.generateHashForLibraryName(r);A(` #ifdef _${t}${e}_${x.title}`),A(` _${t}${e}_${x.title}(); // ${r}`),A(" #endif")})}function ff(A,x){A("stock _onUplinkEvent(ev, param) {"),x.forEach(e=>{let t=`_${m0.generateHashForLibraryName(e)}UplinkEvent`;A(` #ifdef ${t}`),A(` ${t}(ev, param);`),A(" #endif")}),A(" onUplinkEvent(ev, param);"),A("}")}function Ef(A){let x=[],e=[];for(let[r,t]of Object.entries(A.containers))Wr[r].ctype===yx.cx&&([I0.up,I0.upPlus,I0.deviceOnly].includes(t.transferDirection)&&e.push(t),[I0.bothPlus,I0.both,I0.downPlus,I0.down].includes(t.transferDirection)&&x.push(t));return{containerApply:x,containerRestore:e}}function lf(A,x){x.length&&A("");for(let e of x)e.knownNames.forEach(r=>{A(`forward onUplinkRestore_${r}();`)}),A(""),A(`stock restoreUplink${e.name}() {`),A(` _DDE_${e.name}_read();`),Pi(A,e,"Restore"),R0.hasContainerAppFields(e)&&A(` onUplinkRestore_${e.title}();`),A("}");if(A("#pragma warning push"),A("stock _onUplinkRestore(cfgId) {"),x.length){A(" switch(cfgId) {");for(let e of x)A(` case DDE_${e.title}_id: restoreUplink${e.name}(); // ${e.name}`);A(" }")}else A(" #pragma warning disable 203"),A(" // no containers to restore");A("}"),A("#pragma warning pop")}function cf(A,x){x.length&&A("");for(let e of x)e.knownNames.forEach(r=>{A(`forward onUplinkApply_${r}();`)}),A(""),A(`stock applyUplink${e.name}() {`),A(` _DDE_${e.name}_read();`),Pi(A,e,"Apply"),R0.hasContainerAppFields(e)&&A(` ${vf(e.title)}`),A(" return(OK);"),A("}");if(A("#pragma warning push"),A("stock _onUplinkApply(cfgId) {"),x.length){A(" switch(cfgId) {");for(let e of x)A(` case DDE_${e.title}_id: return applyUplink${e.name}(); // ${e.name}`);A(" }"),A(" return ERROR;")}else A(" #pragma warning disable 203"),A(" // no containers to apply"),A(" return OK;");A("}"),A("#pragma warning pop")}function Ti(A,x){let e=[],r=e.push.bind(e);ff(r,x);let{containerApply:t,containerRestore:s}=Ef(A);return lf(r,s),cf(r,t),e.join(`
1649
+ `)}var Bf=Qv.map(A=>`_DDE_${A}_write`);function Ni(A){let x=[],e=x.push.bind(x),r=[...Bf];for(let[t,s]of Object.entries(A.containers)){let n=Ln(s.containerType,s.transferDirection),F=Wr[t];if(!n||!s.fields||F.ctype!==yx.cx)continue;let f=`DDE_${s.name}`,c=`DDE_${s.title}_id`;if([I0.both,I0.bothPlus,I0.none,I0.deviceOnly,I0.up,I0.upPlus].includes(s.transferDirection)){let D=`_${f}_write`;e(`stock ${D}() {`),e(` dde_wbegin(${c});`),Si(e,s,"write"),e(" return dde_wend();"),e("}"),r.splice(r.indexOf(D),1)}if(F.ctype===yx.cx){let D=`_${f}_read`;e(`stock ${D}() {`),e(` if (dde_rbegin(${c})) return ERROR;`),Si(e,s,"read"),e(" dde_rend();"),e(" return OK;"),e("}")}}if(r.length){e(""),e("// Dummy functions needed by the dde library");for(let t of r)e(`stock ${t}() { return OK; }`)}return x.join(`
1650
+ `)}function Si(A,x,e){x.libraries.forEach(r=>{let t=m0.generateHashForLibraryName(r);A(` #ifdef __${t}${x.title}_${e}`),A(` __${t}${x.title}_${e}();`),A(" #endif")}),R0.hasContainerAppFields(x)&&(A(` #ifdef _DDE_${x.title}_${e}`),A(` _DDE_${x.title}_${e}();`),A(" #endif"))}async function Ii(A,x){let e=[],r=await Q0.getApmPartDependencies(A,x,j0.Part.dlo);await Vr(A,x,e,e0.fileNames.autoInc);let t=await Cf(A,x,r);for(let s of r)s.name==="local-data-interface"&&await Vr(A,x,e,e0.fileNames.autoLocalDataInc),e.push(`#include <${s.name}>`),s.name==="dlo-core"&&(e.push(...t),await Vr(A,x,e,e0.fileNames.autoDdeInc.replace("X","app")),await Vr(A,x,e,e0.fileNames.autoDdeInc.replace("X","main")));return r.some(s=>s.name==="dlo-core")&&await Vr(A,x,e,e0.fileNames.autoUplinkInc),e.join(`
1651
+ `)}async function Cf(A,x,e){let r=[];for(let t of e){let s=e0.filePaths.studio.auto.dlo.autoDdeInc.replace("X",t.name);await x.stat(Rn.Utils.joinPath(A,s))&&r.push(`#include "${e0.fileNames.autoDdeInc.replace("X",t.name)}"`)}return r}async function Vr(A,x,e,r){let t=Rn.Utils.joinPath(A,e0.filePaths.studio.auto.dlo.path,r);await x.stat(t)&&e.push(`#include "${r}"`)}var Li=cx(require("semver")),Ri=require("yaml");var FA=R0.ContainerType,wt=R0.TransferDirection,df=R0.fieldTypeDefinitions,lr={$ref:"#/components/parameters/contextId"},Df={$ref:"#/components/parameters/addonId"},uf={$ref:"#/components/parameters/appId"},Mi={$ref:"#/components/schemas/histdataResponse"},pf={$ref:"#/components/schemas/histdataRequest"},St={$ref:"#/components/schemas/rapidM2MStamp"},bf={$ref:"#/components/schemas/timeseriesRequestBase"},_t="rapidM2M Stamp",mA={description:"Successful operation"},Oi={parameters:{contextId:{name:"siteUid",in:"path",description:"The site uid",schema:{type:"string"},required:!0},appId:{name:"appUid",in:"path",description:"The app uid",schema:{type:"string"},required:!0}},schemas:{rapidM2MStamp:{type:"string",format:"YYYYMMDDhhmmssSSS",description:'Special format of an UTC timestamp. Important: The trailing 0 are truncated. eg.: "2024-02-10" -> "2024021"'}}},Gi={...structuredClone(Oi)};Object.assign(Gi.schemas,{histdataResponse:{type:"array",description:"Array of histdata records. Array starts with the youngest record",items:{type:"array",description:'First item is always the rapidM2M timestamp of the record. All following values are in the order of the "select" array.',items:{anyOf:[St,{type:"string"},{type:"number"}]}}},histdataRequest:{type:"object",additionalProperties:!1,required:["from","until"],properties:{from:{type:"string",format:_t,description:"items to include must be older or equal, UTC w/o time saving."},until:{type:"string",format:_t,description:"items to include must be younger, UTC w/o time saving. Reply set is limited like that: from <= item.stamp < until."},count:{type:"integer",description:"limits the number of returned records, negative values will count the records from the end of the result set."},offset:{type:"integer",description:"skips the given number of records in the result set."}}},timeseriesRequestBase:{type:"object",additionalProperties:!1,properties:{count:{type:"integer",description:"limits the number of returned records, negative values will count the records from the end of the result set.",minimum:-1e3,maximum:1e3,default:1e3},from:{type:"string",format:_t,description:"items to include must be older or equal, UTC w/o time saving"},until:{type:"string",format:_t,description:"items to include must be younger, UTC w/o time saving. Reply set is limited like that: from <= item.stamp < until"},offset:{type:"integer",description:"Skips the given number of records in the result set",minimum:0,default:0}}}});var Yr={content:{"application/json":{schema:{type:"object",additionalProperties:!1,properties:{err:{type:"string",description:"Information what went wrong"}}}}}},Be={401:{description:"Permission denied",...Yr},403:{description:"Forbidden",...Yr},404:{description:"Resource not found",...Yr},500:{description:"Internal error",...Yr}};function Gn(A,x,e=null){let r=Li.coerce(x.version)?.version,t={openapi:"3.0.3",info:{description:x.description,title:x.name,version:r||""},tags:[],paths:{},components:{parameters:{},schemas:{}}};e?Object.assign(t.components,structuredClone(Oi)):Object.assign(t.components,structuredClone(Gi));let s=J.isAddon(x),n=J.isAnalytics(x);s&&(t.components.parameters.addonId={name:"addonUid",in:"path",description:"The addon uid",schema:{type:"string"},required:!0});for(let F of Object.values(A.containers))e&&(!F.libraries.includes(e)||F.containerType===FA.hx)||!e&&!R0.hasContainerAppFields(F)||F.containerType===FA.aloha||(mf(t,F),hf(t,F,e),kf(t,F,s,n),!s&&!n&&(jf(t,F,e),yf(t,F)));return t.tags.push({name:"app-center",description:"App Center related routes"}),(0,Ri.stringify)(t)}function mf(A,x){A.tags.push({name:Xx(x.title),description:`Transfer direction ${x.transferDirection}`})}function Xx(A){return A.split("_").join(" ")}function jf(A,x,e){let r=`${x.name}`,t={type:"object",description:`Container: "${x.title}"`,additionalProperties:!1,properties:{}},s=[];x.containerType===FA.hx&&(r+="Select",s.push("select"),t.properties.select={type:"array",items:{type:"string",enum:[]}});for(let n of x.fields)n.library!==e||n.type==="shadow"||(x.containerType===FA.hx?t.properties.select.items.enum.push(n.id):(t.properties[n.id]=Ui(n),!n.readPermission&&!n.writePermission&&s.push(n.id)));t.required=s.length?s:void 0,A.components.schemas[r]=t}function hf(A,x,e=null){let r=`${x.title}`,t={type:"object",description:`Container: "${x.title}" with device transfer direction "${x.transferDirection}"`,additionalProperties:!1,properties:{}},s=[],n=x.containerType===FA.hx;for(let f of x.fields)f.library!==e||f.type==="shadow"||(t.properties[f.name]=Ui(f),!f.readPermission&&!f.writePermission&&s.push(f.name));t.required=s.length?s:void 0,A.components.schemas[r]=t;let F=t.properties;if(n){t.required=t.required?.map(c=>c.toLowerCase());let f={};for(let[c,D]of Object.entries(t.properties))f[c.toLowerCase()]=D;t.properties=f}if(n){let f={type:"object",description:`Request schema of "${x.title}"`,additionalProperties:!1,properties:{select:{type:"array",description:"Optional selection of specific fields of the given container",items:{type:"string",enum:Object.keys(F)}}}};A.components.schemas[`${r}RequestSingle`]=f,A.components.schemas[`${r}Request`]={allOf:[bf,f]},t.properties.stamp=St,s.push("stamp")}}function Ui(A){let e={...df[A.type].openApi},r=gf(A);return e.default=r,e.example=r,e.description=A.description,e}function gf(A){return A.defaultValue===void 0?A.defaultValue:A.type==="binary"?`${A.defaultValue.substring(2)}`:A.defaultValue}function yf(A,x){let e=`/api/1/sites/{siteUid}/${x.name}`,r={get:void 0,put:void 0};if([FA.cx,FA.cb].includes(x.containerType))r.get={deprecated:!0,tags:[Xx(x.title)],summary:`Retrieve the data of the "${Xx(x.title)}" container`,parameters:[lr],responses:{200:{...mA,content:{"application/json":{schema:{allOf:[{type:"object",required:["stamp"],properties:{stamp:St}},{$ref:`#/components/schemas/${x.name}`}]}}}},...Be}},[wt.down,wt.backendOnly].includes(x.transferDirection)&&(r.put={deprecated:!0,tags:[Xx(x.title)],summary:`Modify the data of the "${Xx(x.title)}" container`,parameters:[lr],requestBody:{content:{"application/json":{schema:{$ref:`#/components/schemas/${x.name}`}}}},responses:{201:{...mA},204:{...mA},...Be}});else if(x.containerType===FA.hx){let t=`${e}`;e+="/youngest",r.get={deprecated:!0,tags:[Xx(x.title)],summary:`Retrieve the youngest data of the "${Xx(x.title)}" container`,parameters:[lr,{name:"json",in:"query",required:!0,schema:{$ref:`#/components/schemas/${x.name}Select`}}],responses:{200:{...mA,content:{"application/json":{schema:Mi}}},...Be}},A.paths[t]={get:{deprecated:!0,tags:[Xx(x.title)],summary:`Get the historical data of the "${Xx(x.title)}" container.`,parameters:[lr,{name:"json",in:"query",required:!0,schema:{allOf:[{$ref:`#/components/schemas/${x.name}Select`},pf]}}],responses:{200:{...mA,content:{"application/json":{schema:Mi}}},...Be}}}}A.paths[e]=r}function kf(A,x,e=!1,r=!1){let s=x.containerType===FA.hx?"timeseries":"containers",n=[],F=Xx(x.title);r||n.push({path:`/api/1/sites/{siteUid}/${s}/${x.title}`,params:[lr],tags:[F]}),e&&(n=[{path:`/api/1/sites/{siteUid}/addons/{addonUid}/${s}/${x.title}`,params:[lr,Df],tags:[F]}]);let f={path:`/api/1/app-center/apps/{appUid}/${s}/${x.title}`,params:[uf],tags:["app-center"]};r&&f.tags.push(F),n.push(f);let c={get:void 0,put:void 0,post:void 0},D={tags:[],summary:`Retrieve the data of the "${Xx(x.title)}" container`,parameters:[],responses:{200:{...mA,content:{"application/json":{schema:{allOf:[{type:"object",required:["stamp"],properties:{stamp:St}},{$ref:`#/components/schemas/${x.title}`}]}}}},...Be}};if([FA.cx,FA.cb].includes(x.containerType)&&(c.get=D,[wt.down,wt.backendOnly].includes(x.transferDirection)&&(c.put={tags:[],summary:`Modify the data of the "${Xx(x.title)}" container`,parameters:[],requestBody:{content:{"application/json":{schema:{$ref:`#/components/schemas/${x.title}`}}}},responses:{201:{...mA},204:{...mA},...Be}}),n.forEach(p=>{let j=structuredClone(c);Object.values(j).forEach(_=>{_?.parameters?.unshift(...p.params),_?.tags?.unshift(...p.tags)}),A.paths[p.path]=j})),x.containerType===FA.hx){c.get={tags:[],summary:`Get the historical data of "${x.title}"`,parameters:[{name:"json",in:"query",required:!1,schema:{$ref:`#/components/schemas/${x.title}Request`}}],responses:{200:{...mA,content:{"application/json":{schema:{type:"array",items:{$ref:`#/components/schemas/${x.title}`}}}}},...Be}},e&&(c.post={tags:[],summary:`Insert data into the "${Xx(x.title)}" container`,parameters:[{name:"allow_future_date",in:"query",description:"Allow inserting records with a stamp value in the future",schema:{type:"boolean"}}],requestBody:{content:{"application/json":{schema:{$ref:`#/components/schemas/${x.title}`}}}},responses:{201:{...mA},400:{description:"Bad request",...Yr},...Be}});let p=n[0],j=structuredClone(c);Object.values(j).forEach(O=>{O?.parameters?.unshift(...p.params),O?.tags?.unshift(...p.tags)}),A.paths[p.path]=j;let _={...mA,content:{"application/json":{schema:{$ref:`#/components/schemas/${x.title}`}}}},k=`${p.path}/youngest`,S={get:structuredClone(j.get)};S.get.summary=`Get the youngest record of "${x.title}" container`,S.get.responses[200]=_;let P=e?2:1;S.get.parameters[P].schema.$ref=`#/components/schemas/${x.title}RequestSingle`,A.paths[k]=S;let N=`${p.path}/oldest`,L={get:structuredClone(j.get)};L.get.summary=`Get the oldest record of "${x.title}" container`,L.get.responses[200]=_,L.get.parameters[P].schema.$ref=`#/components/schemas/${x.title}RequestSingle`,A.paths[N]=L}}var zi=R0.TransferDirection,$t=" new szTemp{64};",qt=" return strcat(aData, szTemp, sizeof(szTemp));";function Ki(A){if(!A.printf&&A.printfFormat==="memtostr")return"bin";if(!A.printf)return null;let x=A.rwp||"%n",e=x.includes("["),t=x.includes("{")||e;if(A.printfFormat==="stampToISOString")return t?null:"stamp";switch(A.printf){case"%d":return t?null:"d";case"%f":return t?null:"f";case"%s":return e?null:"s";default:return null}}function Un(A){if(A.type==="shadow"||A.shadowRef)return null;let x=oA(A);return!x||x==="skip"?null:Ki(x)}function Ji(A){return[R0.ContainerType.hx,R0.ContainerType.cx].includes(A.containerType)&&A.transferDirection!==zi.backendOnly}function _f(A){if(A.type==="shadow"||A.shadowRef)return!1;let x=oA(A);return!!x&&x!=="skip"}function wf(A,x,e){let r=A.name.indexOf("]"),t=r>=0?A.name.substring(r+1):"",s=`${A.arrayRef.name}|${t}|${x}`;e.has(s)||e.set(s,{fields:[],formatType:x}),e.get(s).fields.push(A)}function Sf(A){let x=[],e=new Map,r=new Set,t=!1;for(let s of A){if(!_f(s))continue;let n=Un(s);s.arrayRef&&n?wf(s,n,e):(x.push(s),n?r.add(n):t=!0)}return{standaloneFields:x,groupMap:e,usedFormats:r,hasInlineFields:t}}function $f(A,x,e){e.sort((c,D)=>c.arrayRef.index-D.arrayRef.index);let r=e.map(c=>c.byteOffset),t=r[1]-r[0];if(!(t>0&&r.every((c,D)=>D===0||c-r[D-1]===t)))return null;let[n,F]=x.split("|"),f=e[0].library?`_${m0.generateHashForLibraryName(e[0].library)}`:"DDE_";return{arrayName:n,subField:F,fields:e,startOffset:r[0],endOffset:r[r.length-1],step:t,formatType:Un(e[0]),pawnVarBase:`${f}${A}_${n}`}}function qf(A,x){let{standaloneFields:e,groupMap:r,usedFormats:t,hasInlineFields:s}=Sf(x),n=[];for(let[F,f]of r){let{fields:c,formatType:D}=f;if(c.length<2){e.push(...c),t.add(D);continue}let p=$f(A,F,c);p?(t.add(D),n.push(p)):(e.push(...c),t.add(D))}return e.sort((F,f)=>F.byteOffset-f.byteOffset),{arrayGroups:n,standaloneFields:e,usedFormats:t,hasInlineFields:s}}function Pf(A){let x=new Set;for(let[,e]of Object.entries(A.containers))if(Ji(e))for(let r of e.fields){let t=Un(r);t&&x.add(t)}return x}function Tf(A,x){x.has("d")&&(A("stock _DDE_fmt_d(aData{}, value) {"),A($t),A(' sprintf(szTemp, _, "%d", value);'),A(qt),A("}")),x.has("f")&&(A(""),A("stock _DDE_fmt_f(aData{}, Float:value) {"),A($t),A(' sprintf(szTemp, _, "%.3f", value);'),A(qt),A("}")),x.has("s")&&(A(""),A("stock _DDE_fmt_s(aData{}, value{}) {"),A($t),A(' sprintf(szTemp, _, "%s", value);'),A(qt),A("}")),x.has("stamp")&&(A(""),A("stock _DDE_fmt_stamp(aData{}, value) {"),A($t),A(' sprintf(szTemp, _, "%s", (stampToISOString(value)));'),A(qt),A("}")),x.has("bin")&&(A(""),A("stock _DDE_fmt_bin(aData{}, mem{}, dim) {"),A(" #pragma warning disable 224"),A(" memtostr(aData, mem, 0, dim);"),A(" #pragma warning disable 224"),A(" return dim;"),A("}"))}function Nf(A,x){return x===1?A===0?"idx":`idx - ${A}`:A===0?`idx / ${x}`:`(idx - ${A}) / ${x}`}function If(A,x,e){let r=`idx >= ${A} && idx <= ${x}`;if(e===1)return r;let t=A===0?`idx % ${e} == 0`:`(idx - ${A}) % ${e} == 0`;return`${r} && ${t}`}function Mf(A,x){let{startOffset:e,endOffset:r,step:t,formatType:s,pawnVarBase:n,subField:F}=x,f=Nf(e,t),c=If(e,r,t);if(A(` if (${c}) {`),s==="bin"){let D=`${n}[${f}]${F}`,p=F?F.substring(1):"",j=p?`${n}_${p}_dim`:`${n}_dim`;A(` return _DDE_fmt_bin(aData, ${D}, ${j});`)}else A(` return _DDE_fmt_${s}(aData, ${n}[${f}]${F});`);A(" }")}function Lf(A,x,e){if(e.type==="shadow"||e.shadowRef)return;let r=oA(e);if(!r||r==="skip")return;let s=`${e.library?`_${m0.generateHashForLibraryName(e.library)}`:"DDE_"}${x}_${e.name}`,n=Ki(r);if(n==="bin")A(` case ${e.byteOffset}: return _DDE_fmt_bin(aData, ${s}, ${s}_dim);`);else if(n)A(` case ${e.byteOffset}: return _DDE_fmt_${n}(aData, ${s});`);else{if(A(` case ${e.byteOffset}: {`),r.printf){let F=s;r.printfFormat&&(F=`(${r.printfFormat}(${F}))`),A(` sprintf(szTemp, _, "${r.printf}", ${F});`),A(" return (strcat(aData, szTemp, sizeof(szTemp)));")}A(" }")}}function Rf(A,x,e){A(` case '${x.at(-1)}': {`),A(` return _DDE_local_${e.title}(aData, idx);`),A(" }")}function Hi(A,x,e){let r=e===R0.ContainerType.cx?"c":"h",t=e===R0.ContainerType.cx?"config":"histdata";A(` if(cname{0} == '${r}'){`),A(" switch(cname{1}) {");for(let[s,n]of Object.entries(x.containers))e===n.containerType&&s.startsWith(t)&&n.transferDirection!==zi.backendOnly&&Rf(A,s,n);A(" default:"),A(" return OK;"),A(" }"),A(" return OK;"),A(" }")}function Of(A,x){let e=qf(x.title,x.fields);A(""),A(`stock _DDE_local_${x.title}(aData{}, idx) {`),e.hasInlineFields&&A(" new szTemp{64};");for(let r of e.arrayGroups)Mf(A,r);if(e.standaloneFields.length>0){A(" switch(idx) {");for(let r of e.standaloneFields)Lf(A,x.title,r);A(" default:"),A(" return OK;"),A(" }")}A(" return OK;"),A("}")}function Gf(A,x){for(let[,e]of Object.entries(x.containers))Ji(e)&&Of(A,e)}function Vi(A){let x=[],e=x.push.bind(x),r=Pf(A);return Tf(e,r),r.size>0&&e(""),e("stock DDE_get_local_data(cname{}, aData{}, idx) {"),Hi(e,A,R0.ContainerType.cx),Hi(e,A,R0.ContainerType.hx),e(" return OK;"),e("}"),Gf(e,A),x.join(`
1652
+ `)}var Qi=m0.yamlRangeToLineInformation,Qr=e0.filePaths.dde.path,vA;(s0=>{let A=R0.DDEJson,x=m0.convertBlobToString;s0.DDE_SCHEMA=yi;async function r(R,g){let M=await g.readFile(R);return x(M)}s0.readYamlFile=r;async function t(R,g,M=e0.fileNames.mainDDE,Y){let W=[],H=await J.read(R,g),z=await Wi(R,g,H);if(Y)for(let Z of z){let{result:n0,unresolvedKeys:U}=Bx.replaceDefineTemplates(Z.yaml,Y);Z.yaml=n0;for(let F0 of U)W.push({file:Z.path,level:"error",message:`Unresolved define template: {{${F0}}}`,line:0,startCharacter:0,endCharacter:0})}for(let Z of z)W.push(...f(Z.path,Z.yaml));let i0=Cx.Utils.joinPath(R,Qr,M),r0=await r(i0,g);if(Y){let{result:Z,unresolvedKeys:n0}=Bx.replaceDefineTemplates(r0,Y);r0=Z;for(let U of n0)W.push({file:i0,level:"error",message:`Unresolved define template: {{${U}}}`,line:0,startCharacter:0,endCharacter:0})}return W.push(...f(i0,r0)),{manifest:H,libraryFiles:z,main:{path:i0,yaml:r0},diagnostics:W}}s0.validate=t;async function s(R,g,M,Y=e0.fileNames.mainDDE){let W=await J.read(R,g),H=await Bx.read(R,g,M),z=await t(R,g,Y,H.flat);if(z.diagnostics.filter(B0=>B0.level==="error").length>0)return{ddeJSON:null,diagnostics:z.diagnostics};let r0=await _(R,g,M),Z=new ht.PreCompiler(W,z.libraryFiles,r0),n0=Z.parseLibraries();if(n0.find(B0=>B0.level==="error"))return{ddeJSON:null,diagnostics:[...z.diagnostics,...n0]};let{ddeJSON:F0,diagnostics:v0}=Z.parseMainDDE(z.main.path,z.main.yaml);return{ddeJSON:F0,diagnostics:[...z.diagnostics,...v0]}}s0.compileDDE=s;let n=new Xi.default({strict:!1,allErrors:!0,verbose:!0});(0,Yi.default)(n);let F=n.compile(s0.DDE_SCHEMA);function f(R,g){let M=new Pt.LineCounter,Y=(0,Pt.parseDocument)(g,{lineCounter:M,keepSourceTokens:!0}),W=[];for(let i0 of Y.errors){let r0=i0.pos?Qi(M,[i0.pos[0],i0.pos[1],i0.pos[1]]):{line:0,startCharacter:0,endCharacter:0};W.push({file:R,level:"error",message:i0.message,...r0})}if(W.length>0)return W;let H=Y.toJSON();if(!F(H)){let r0=(F.errors||[]).filter(n0=>n0.keyword!=="if"),Z=new Set;for(let n0 of r0){let U=zf(n0);if(Z.has(U))continue;Z.add(U);let F0=Jf(Y,M,n0);W.push({file:R,level:"error",message:U,...F0})}}return W}s0.validateJsonSchema=f,s0.PreCompiler=(R,g,M)=>new ht.PreCompiler(R,g,M);function D(R,g){return Nn(R,g)}s0.generateMyDatanetXML=D;async function p(R,g,M,Y){let W=await J.read(R,g),H=Nn(W,Y),z=Cx.Utils.joinPath(R,e0.filePaths.dist.ddeXmlPath);await g.writeFile(z,H),M.log("Generated",e0.filePaths.dist.ddeXmlPath)}s0.exportMyDatanetXML=p;async function j(R,g,M,Y,W){let H=Cx.Utils.joinPath(R,e0.filePaths.studio.auto.dde.historyJson);await g.rm(H).catch(console.error);let z=await J.read(R,g);if(!J.isApp(z)||!z.registry?.id)return;if(!W){M.warn("Could not fetch dde of previous version: No API token provided.");return}let i0=MA.coerce(z.version);try{let n0=(await ex.getExistingApplication(W,z.publisher,z.registry.id,Y)).versions.find(B0=>!MA.prerelease(B0.version)&&MA.lte(B0.version,i0)),U=n0?.files.find(B0=>B0.name==="dde.json");if(!U){M.warn("Could not find a valid previous released app version to fetch the previous dde from.");return}let F0=await fetch(U.downloadUrl,{headers:{...iA(W),...ex.injectSemverHeader(!0)}});if(F0.status!==200){M.warn(`Could not fetch the dde.json of version "${n0?.version}"`);return}let v0=await F0.text();await g.writeFile(H,v0),M.log(`Saved history.json of previous app version ${n0.version}`)}catch(r0){M.error("Failed to fetch the dde of previous version",r0)}}s0.fetchPreviousHistoryJson=j;async function _(R,g,M){try{let Y=Cx.Utils.joinPath(R,e0.filePaths.studio.auto.dde.historyJson);if(await g.stat(Y)){let H=await g.readFile(Y);return JSON.parse(x(H))}let W=Cx.Utils.joinPath(R,Qr,"history.json");if(await g.stat(W)){M.warn(`"${e0.filePaths.studio.auto.dde.historyJson}" does not exist - fallback to "${Qr}history.json"`);let H=await g.readFile(W),z=JSON.parse(x(H)),i0=await J.read(R,g),r0=MA.coerce(i0.version)?.version,Z=Object.keys(z||{}).sort(MA.rcompare).find(U=>U!==r0);if(!Z)return null;let n0=z[Z];return{version:Z,...n0}}}catch(Y){M.error("Failed to read history.json",Y)}return M.warn("history.json does not exist"),null}s0.getHistoryJson=_;function k(R,g){return{version:MA.coerce(g.version)?.version||"1.0.0",...structuredClone(R)}}s0.buildHistoryJson=k;async function S(R,g,M,Y){let W=await J.read(R,g),H=k(Y,W),z=Cx.Utils.joinPath(R,e0.filePaths.dist.historyJson);await g.writeFile(z,JSON.stringify(H,null," ")),M.log("Generated",e0.filePaths.dist.historyJson)}s0.exportHistoryJson=S;async function P(R,g){return g.rm(Cx.Utils.joinPath(R,e0.filePaths.studio.auto.dlo.path))}s0.clearAutoDloDir=P;async function N(R,g,M,Y){await P(R,g);let W=await J.read(R,g),H=await Wi(R,g,W),z=await Bx.read(R,g,M),i0=qi(Y,z,W),Z=new Xr(W,Y,null).generate();for(let ox of H){let Hx=new Xr(W,Y,ox.libraryName),{globals:hA,helper:gA}=Hx.generate(),sx=[...hA,...gA].join(`\r
1653
+ `),Z0=e0.filePaths.studio.auto.dlo.autoDdeInc.replace("X",ox.libraryName),xA=Cx.Utils.joinPath(R,Z0);sx.length&&(M.log("Generated",Z0),await g.writeFile(xA,sx))}let n0=Ni(Y),U=Ti(Y,H.map(ox=>ox.libraryName)),F0=Vi(Y),v0=Cx.Utils.joinPath(R,e0.filePaths.studio.auto.dlo.autoInc);await g.writeFile(v0,i0),M.log("Generated",e0.filePaths.studio.auto.dlo.autoInc);let B0=Cx.Utils.joinPath(R,e0.filePaths.studio.auto.dlo.autoUplinkInc);await g.writeFile(B0,U),M.log("Generated",e0.filePaths.studio.auto.dlo.autoUplinkInc);let d0=Cx.Utils.joinPath(R,e0.filePaths.studio.auto.dlo.autoLocalDataInc);await g.writeFile(d0,F0),M.log("Generated",e0.filePaths.studio.auto.dlo.autoLocalDataInc);let q0=Cx.Utils.joinPath(R,e0.filePaths.studio.auto.dlo.autoDdeInc.replace("X","app"));await g.writeFile(q0,[...Z.globals,...Z.helper].join(`
1654
+ `)),M.log("Generated",e0.filePaths.studio.auto.dlo.autoDdeInc.replace("X","app"));let M0=Cx.Utils.joinPath(R,e0.filePaths.studio.auto.dlo.autoDdeInc.replace("X","main"));await g.writeFile(M0,n0),M.log("Generated",e0.filePaths.studio.auto.dlo.autoDdeInc.replace("X","main")),await O(R,g,M)}s0.exportAutoDloFiles=N;async function L(R,g,M,Y){let W=await J.read(R,g),H=J.isLibrary(W),z=Cx.Utils.joinPath(R,e0.filePaths.dist.path,"dde-api.yaml");await g.rm(z).catch(()=>{});let i0=Cx.Utils.joinPath(R,e0.filePaths.dist.ddeApi);if(await g.writeFile(i0,Gn(Y,W)),M.log("Generated",e0.filePaths.dist.ddeApi),H){let r0=Cx.Utils.joinPath(R,e0.filePaths.dist.ddeApiPath,`${W.name}.yaml`),Z=Gn(Y,W,W.name);Z.length&&(await g.writeFile(r0,Z),M.log("Generated",e0.filePaths.dist.ddeApiPath+`${W.name}.yaml`))}}s0.exportOpenApi=L;async function O(R,g,M){let Y=Cx.Utils.joinPath(R,e0.filePaths.studio.auto.dlo.defaultInc),W=await Ii(R,g);await g.writeFile(Y,W),M.log("Generated",e0.filePaths.studio.auto.dlo.defaultInc)}s0.exportDefaultInc=O})(vA||={});async function Wi(A,x,e){let r=[],t=await Q0.getAll(e);for(let s in t){let n=Q0.dependencyToPath(A,s),F=Q0.dependencyIdToName(s),f=Cx.Utils.joinPath(n,`${Qr}/${F}.dde`);await x.stat(f)&&r.push({libraryName:F,path:f,yaml:await vA.readYamlFile(f,x)})}if(J.isLibrary(e)){let s=Cx.Utils.joinPath(A,`/${Qr}/${e.name}.dde`);await x.stat(s)&&r.push({libraryName:e.name,path:s,yaml:await vA.readYamlFile(s,x)})}return r}function Uf(A,x,e){if(typeof A=="string")return A;if(typeof A!="object"||A===null)return"";let r=A[x];if(typeof r=="string")return r;if(typeof r!="object"||r===null)return"";let t=e?.missingProperty;return t?r[t]??"":""}function Hf(A,x,e,r){let s={required:()=>`Missing required property '${x.missingProperty}'.`,additionalProperties:()=>`Unknown property '${x.additionalProperty}' is not allowed.`,type:()=>`Must be of type '${x.type}'.`,enum:()=>`Must be one of the allowed values: ${JSON.stringify(x.allowedValues)}.`,pattern:()=>`Value does not match the required pattern. ${r?.patternErrorMessage??e}`,minimum:()=>`${e}.`,maximum:()=>`${e}.`,exclusiveMinimum:()=>`${e}.`,exclusiveMaximum:()=>`${e}.`,not:()=>`This value is not allowed here. ${r?.description??""}`.trimEnd(),anyOf:()=>`Value does not match any of the allowed schemas. ${r?.description??""}`.trimEnd(),oneOf:()=>`Value does not match any of the allowed schemas. ${r?.description??""}`.trimEnd()}[A];return s?s():e}function zf(A){let x=A.instancePath||"/",e=A.parentSchema,r=Uf(e?.errorMessage,A.keyword,A.params);if(r)return`${x}: ${r}`;let t=A.message||"unknown validation error";return`${x}: ${Hf(A.keyword,A.params,t,e)}`}function Kf(A,x){let e=x.split("/").filter(Boolean).map(r=>{let t=Number(r);return Number.isNaN(t)?r:t});for(let r=e.length;r>=0;r--){let t=e.slice(0,r),s=A.getIn(t,!0);if(s?.range)return s.range}return null}function Jf(A,x,e){let r=Kf(A,e.instancePath||"");return r?Qi(x,r):{line:0,startCharacter:0,endCharacter:0}}var Hn=require("vscode-uri");var cr=class{dloFileMap={};rootUri=Hn.URI.parse("");constructor(){}set workspacePath(x){this.rootUri=x}getSequenceForFile(x){let e=x.substring(this.rootUri.path.length||0);if(this.rootUri.scheme!=="file"){let t=this.rootUri.toString();e=x.substring(t.length+1)}if(Object.hasOwn(this.dloFileMap,e))return this.dloFileMap[e];let r=m0.generateHashForFilePath(e);return this.dloFileMap[e]=r,r}getFilePathForSequence(x){let e=Object.entries(this.dloFileMap).find(([,r])=>r===x);return e?Hn.URI.parse(`${this.rootUri.path}${e[0]}`).path:null}};var Aa=require("vscode-uri");var Vf=/^(?:\s*#options\s+)(.*)(?:\s*)$/,Wf=/^(?:\s*#preinclude\s+)(.*)(?:\s*)$/,Xf=/^(?:\s*#ifdef\s+)(.*)$/,Yf=/^(?:\s*#ifndef\s+)(.*)$/,Qf=/^(?:\s*#elseifdef\s+)(.*)$/,Zf=/^(?:\s*#elseifndef\s+)(.*)$/,ea=/^(\s*)(?:#callback\s+)(\w*)(?:\s*\(\s*)(.*?)(?:\s*\)\s*)(\{*){1}(?:\s*)$/,ra=/^(.*)(^|\s+)(?:assert\s*\(\s*)(.*?)(?:\s*,\s*)(.*?)(?:\s*\)\s*;*\s*)$/,ta=/^(.*)(^|\s+)(?:assert\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/,na=/^(.*)(^|\s+)(?:assert\s*\(\s*\);*\s*)$/,sa=/^(.*)(^|\s+)(?:catch\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/,xE=/^\s*#include\s*</,AE=/^\s*#endinput\s*/,eE=/^\s*#pragma\s+dynamic\s+(\S+)\s*(\/\/.*|\/\*.*|)$/,ia=/^(.*)(^|\s+)(?:applog(|_ok|_warning|_alarm|_debug|_fatal)\s*\(\s*)(.*?)(?:\s*,\s*)(.*?)(?:\s*\)\s*;*\s*)$/,aa=/^(.*)(^|\s*)(?:applog(|_ok|_warning|_alarm|_debug|_fatal)\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/;function Zi(A,x=""){let e=" ",r=A;return x.length?e={fatal:"\xA7",alarm:"!",warning:"?",debug:"~",ok:"$"}[x]||null:["!","?","~","$","\xA7"].includes(A.substring(1,1))&&(e=A.substring(1,1),r=`"${A.substring(2,A.length-1)}"`),{priority:`'${e}'`,code:r}}var oa=/^(.*)(^|\s+)(?:log(|_debug|_info|_warn|_error)\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/,Fa=(t=>(t[t.debug=0]="debug",t[t.info=1]="info",t[t.warn=2]="warn",t[t.error=3]="error",t))(Fa||{}),rE=/^(.*)(^|\s*)DDE_(state|result|aloha|volatile|setting|command)_/,tE=/^(.*)(^|\s*)onUplink(Restore|Apply)_(state|result|aloha|volatile|setting|command)/,nE=/^(.*)(^|\s*)onUplinkEvent/,sE=/(?:^|\s)(?:assert|catch|applog(?:_ok|_warning|_alarm|_debug|_fatal)?|log(?:_debug|_info|_warn|_error)?)\s*\(/,iE=/^\s*#callback\s+\w+\s*\(/;function xa(A){let x=0,e=!1,r="";for(let t=0;t<A.length;t++){let s=A[t];if(e){if(s==="\\"){t++;continue}s===r&&(e=!1);continue}if(s==='"'||s==="'"){e=!0,r=s;continue}s==="("?x++:s===")"&&x--}return x}function va(A){return ea.test(A)||na.test(A)||ra.test(A)||ta.test(A)||sa.test(A)||ia.test(A)||aa.test(A)||oa.test(A)}function aE(A,x,e){if(!(sE.test(e)||iE.test(e)))return null;let t=xa(e);if(t<=0)return null;let s=t,n=[A[x]],F=[e],f=x+1,c=100;for(;s>0&&f<A.length&&f-x<c;){let j=A[f],_=j.split("//",1)[0];n.push(j),F.push(_),s+=xa(_),f++}if(n.length<=1||s>0)return null;let D=n.map((j,_)=>_===0?j:j.trim()).join(" "),p=F.map((j,_)=>_===0?j:j.trim()).join(" ");return va(p)?{joinedOriginal:D,joinedStripped:p,extraLineCount:n.length-1}:null}var Br=class{pragmaDynamic=null;dloFileSequencer=new cr;constructor(){}get pragmaDynamicFlag(){return this.pragmaDynamic?`-S${this.pragmaDynamic}`:null}preCompileDloFile(x,e,r,t,s){this.dloFileSequencer.workspacePath=x;let n=[],F=t.path,f=!1,c=Aa.Utils.basename(t);if(F.includes(e0.filePaths.studio.auto.dlo.path)){let k=c.substring(0,c.length-8);!["app","main"].includes(k)&&c.endsWith("-dde.inc")&&(f=m0.generateHashForLibraryName(k))}else if(F.includes(e0.filePaths.studio.libdeps)){let k=F.split("libdeps/")[1],[S]=k.split("/");["dlo-core"].includes(S)||(f=m0.generateHashForLibraryName(S))}else J.isLibrary(r)&&(c.endsWith(".dlo")||F.includes("/dlo/examples/")||F.includes("/dlo/test/")?e.log("Skipping dde mangling for project file",c):f=m0.generateHashForLibraryName(r.name));if(F.endsWith(".auto/default.inc"))return{data:s.join(`
1655
+ `),diagnostics:n};let D=[],p=this.dloFileSequencer.getSequenceForFile(F);D.push(`stock static __file{} = "${p}";`),D.push(`stock static __refid{} = "${p}";`),D.push('stock static __applog_src_id{} = "A\\0\\0\\0\\0\\0\\0\\0";'),D.push("#line 0");let _=0;for(let k=0;k<s.length;k++){let S=s[k],P=S.split("//",1)[0],N=null,L=0;if(!va(P)){let O=aE(s,k,P);O&&(S=O.joinedOriginal,P=O.joinedStripped,L=O.extraLineCount)}if(N=Vf.exec(P))S="// "+S,n.push({file:t,level:"error",line:k,message:"#options is not supported here. Use the DLO settings instead."});else if(N=Wf.exec(P))S="// "+S,n.push({file:t,level:"error",line:k,message:"#preinclude is not supported here. Use the DLO settings instead."});else if(N=eE.exec(P)){let O=Number(N[1].startsWith("(")?N[1].substring(1,N[1].length-1):N[1]);!Number.isInteger(O)||O<64?n.push({file:t,level:"error",line:k,message:"#pragma dynamic only supports integer values and must be greater than 63"}):(!this.pragmaDynamic||O>this.pragmaDynamic)&&(this.pragmaDynamic=O)}else if(N=Xf.exec(P))S=S.replace("#ifdef ","#if defined ");else if(N=Yf.exec(P))S=S.replace("#ifndef ","#if !defined ");else if(N=Qf.exec(P))S=S.replace("#elseifdef ","#elseif defined ");else if(N=Zf.exec(P))S=S.replace("#elseifndef ","#elseif !defined ");else if(N=ea.exec(P)){let[,O,s0,R,g]=N;S=`${O}#define ${s0} _catch_funcidx( "___${s0}")
1656
+ forward ___${s0}( ${R});
1657
1657
  #line
1658
- ${w}
1659
- public ___${W}( ${g})${_}`}else if(P=ht.exec($)){let[,M,W]=P;y=`${M}${W}{_log_string="";_assert(__refid,__line);}`}else if(P=bt.exec($)){let[,M,W,g,_]=P;y=`${M}${W}{ if (!(${g})) { sprintf(_log_string,_,${_.replace(/%%/g,"\xFF")});_assert(__refid,__line); }}`}else if(P=mt.exec($)){let[,M,W,g]=P;y=`${M}${W}{ if (!(${g})) { _log_string="";_assert(__refid,__line); }}`}else if(P=gt.exec($)){let[,M,W,g]=P;y=`${M}${W}_catch(__refid,__line,${g});`}else if(P=kt.exec($)){let[,M,W,g,_,G]=P,{priority:U,code:J}=dt(_,g.substring(1));U!==null&&(y=`${M}${W}{new params_str{DDE_APPLOG_SIZE_PARAMS};sprintf(params_str,_,${G});DDE_applog_write(${U}, ${J}, params_str, __applog_src_id);}`)}else if(P=yt.exec($)){let[,M,W,g,_]=P,{priority:G,code:U}=dt(_,g.substring(1));G!==null&&(y=`${M}${W}DDE_applog_write(${G}, ${U}, "", __applog_src_id);`)}else if(P=wt.exec($)){let[,M,W,g,_]=P,G=g.substring(1),U=_t[G];y=`${M}${W}{ if(_log_level <= ${U}){ sprintf(_log_string,_,${_.replace(/%%/g,"\xFF")}); _log${g}(__refid,__line); }}`}else(P=iF.exec($))&&!C.includes(X.filePaths.studio.auto.path)?(C.includes(X.filePaths.studio.libdeps)||a.push({file:s,level:"warning",line:b,message:"Libraries are included automatically - remove this #include line"}),y="// Libraries are included automatically! - "+$):(P=FF.exec($))&&(a.push({file:s,level:"error",line:b,message:"#endinput is not supported - use #if/#endif instead"}),y=$);l&&!i.legacyProject&&(aF.exec($)&&(y=y.replaceAll("DDE_",`_${l}`)),oF.exec($)&&(y=y.replace("onUplink",`_${l}`)),vF.exec($)&&(y=y.replace("onUplink",`_${l}Uplink`))),u.push(y),w++;for(let M=0;M<N;M++)u.push(""),w++,b++}if(d!=="main.dlo"){let b=d.split(".")[0].replace(/[^a-zA-Z0-9]/g,"_"),y=`_inc_${b}`.substring(0,31),$=`_inc_${b}_inc`.substring(0,31);u.push(`#if defined ${y}`),u.push(`#undef ${y}`),u.push("#endif"),u.push(`#if defined ${$}`),u.push(`#undef ${$}`),u.push("#endif")}return{data:u.join(`
1660
- `),diagnostics:a}}};var hx=require("vscode-uri");var C0=z0(require("fs")),w0=require("vscode-uri");var Lt=z0(require("iconv-lite")),fF=i0.convertBlobToStringArray,Gt=16384,Tt=511,ue=Gt|Tt,DF=32768,lF=438,qt=DF|lF,cF=new CA,fA={};function It(){let t=[];for(let e of Object.keys(fA))t.push(...fA[e].diagnostics);return t}var dr=!!process.env.DLO_PROFILE,$x={precompileCount:0,cacheHits:0,precompileMs:0};function Mt(t){dr&&(t.log(`[DLO_PROFILE] precompile: ${$x.precompileCount} runs, ${$x.cacheHits} cache hits, ${$x.precompileMs.toFixed(1)}ms`),$x.precompileCount=0,$x.cacheHits=0,$x.precompileMs=0)}var be=(t,e,F,i)=>{let s={getattr(a){let C=w0.Utils.joinPath(w0.URI.parse(a.mount.opts.root),t.getPath(a)),l=C.fsPath;if(!C0.existsSync(l))throw new t.ErrnoError(44);let d=Nt(e,i,F,C),u=C0.statSync(l),p=d?.length||u.size;return{mode:u.isDirectory()?ue:qt,size:p,atime:u.atime,mtime:u.mtime,ctime:u.ctime}},setattr(a,C){let l=w0.Utils.joinPath(w0.URI.parse(a.mount.opts.root),t.getPath(a)).fsPath;if(!C0.existsSync(l))throw new t.ErrnoError(44);if(typeof C.size=="number"&&C0.truncateSync(l,C.size),typeof C.mode=="number"&&C0.chmodSync(l,C.mode),C.atime||C.mtime){let d=C0.statSync(l);C0.utimesSync(l,C.atime??d.atime,C.mtime??d.mtime)}},lookup(a,C){let d=w0.Utils.joinPath(w0.URI.parse(a.mount.opts.root),t.getPath(a),C).fsPath;if(!C0.existsSync(d))throw new t.ErrnoError(44);let u=C0.statSync(d),p=t.createNode(a,C,u.isDirectory()?ue:qt,0);return p.node_ops=a.node_ops,p.stream_ops=a.stream_ops,p},readdir(a){let C=w0.Utils.joinPath(w0.URI.parse(a.mount.opts.root),t.getPath(a)).fsPath;return[".","..",...C0.readdirSync(C)]},mknod(a,C,l,d){let u=w0.Utils.joinPath(w0.URI.parse(a.mount.opts.root),t.getPath(a),C).fsPath;C0.writeFileSync(u,"");let p=t.createNode(a,C,l,d);return p.node_ops=a.node_ops,p.stream_ops=a.stream_ops,p},unlink(a,C){let l=w0.Utils.joinPath(w0.URI.parse(a.mount.opts.root),t.getPath(a),C).fsPath;C0.unlinkSync(l)},mkdir(a,C,l){let d=w0.Utils.joinPath(w0.URI.parse(a.mount.opts.root),t.getPath(a),C).fsPath;C0.mkdirSync(d,{mode:l});let u=t.createNode(a,C,l|ue,0);return u.node_ops=a.node_ops,u.stream_ops=a.stream_ops,u},rmdir(a,C){let l=w0.Utils.joinPath(w0.URI.parse(a.mount.opts.root),t.getPath(a),C).fsPath;C0.rmdirSync(l)},rename(a,C,l){let d=w0.Utils.joinPath(w0.URI.parse(a.mount.opts.root),t.getPath(a)).fsPath,u=w0.Utils.joinPath(w0.URI.parse(C.mount.opts.root),t.getPath(C),l).fsPath;C0.renameSync(d,u)}},E={open(a){let C=w0.Utils.joinPath(w0.URI.parse(a.node.mount.opts.root),t.getPath(a.node));a.modifiedContent=Nt(e,i,F,C),a.modifiedContent||(a.nfd=C0.openSync(C.fsPath,Pt(a.flags)))},close(a){a.nfd&&C0.closeSync(a.nfd)},read(a,C,l,d,u){if(!a.modifiedContent)return C0.readSync(a.nfd,C,l,d,u);let p=a.modifiedContent;if(u>=p.length)return 0;let k=p.length-u,w=Math.min(d,k);return dF(p,C,l,u,u+w),w},write(a,C,l,d,u){return C0.writeSync(a.nfd,C,l,d,u)},flagsToMode:Pt,llseek(a,C,l){let d=C;if(l===1)d+=a.position;else if(l===2){let u=C0.fstatSync(a.nfd);d+=u.size}if(d<0)throw new t.ErrnoError(28);return a.position=d,d}};return{mount(){let a=qx(e),C=t.createNode(null,a,Gt|Tt,0);return C.node_ops=s,C.stream_ops=E,C},node_ops:s,stream_ops:E}};function Pt(t){let e=t&2097155;if(e===0)return"r";if(e===1)return"r+";if(e===65)return"w";if(e===577)return"w+";if(e===1089)return"a";if(e===1217)return"a+";throw new Error(`Unknown file open flags: ${t}`)}function dF(t,e,F,i,s){if(Buffer.isBuffer(t)&&Buffer.isBuffer(e))t.copy(e,F,i,s);else{let E=t.subarray(i,s);Buffer.isBuffer(e)?Uint8Array.prototype.set.call(e,E,F):e.set(E,F)}}function Nt(t,e,F,i){let s=i.fsPath;if(!s.endsWith(".dlo")&&!s.endsWith(".inc"))return;let E=jF(s);if(!E){delete fA[s];return}let a=fA[s];if(a&&a.mtimeMs===E.mtimeMs&&a.size===E.size)return dr&&$x.cacheHits++,a.buffer;let C=dr?performance.now():0,l=pF(t,e,F,i);return dr&&($x.precompileCount++,$x.precompileMs+=performance.now()-C),fA[s]={buffer:l.buffer,mtimeMs:E.mtimeMs,size:E.size,diagnostics:l.diagnostics},fA[s].buffer}function jF(t){try{return C0.statSync(t)}catch{return null}}function pF(t,e,F,i){let s=C0.readFileSync(i.fsPath),E=fF(s),a=cF.preCompileDloFile(t,e,F,i,E);return{buffer:Lt.encode(a.data,"cp1252"),diagnostics:a.diagnostics}}function qx(t){return t.fsPath.replace(/\\/g,"/")}function HA(t,e){let F=qx(t);return qx(e).replace(F,"")}var Kt=Jt(),JA=Kt.createPawnCC,Vt=Kt.createPawnDbg;var DA=class{constructor(e,F,i){this.cwd=e;this.fs=F;this.logger=i;this.dloCC=null}cwd;fs;logger;dloCC;stdout=[];stderr=[];async initDloCC(e=!1){this.stdout.length=0,this.stderr.length=0,this.dloCC=await JA({noExitRuntime:e,print:a=>{let C=me(this.cwd,a);this.logger.log(C?C.message:a),this.stdout.push(a)},printErr:a=>{let C=me(this.cwd,a);a.includes(": warning")?this.logger.warn(C?C.message:a):this.logger.error(C?C.message:a),this.stderr.push(a),this.stdout.push(a)}});let F=qx(this.cwd),[i]=F.split("/"),s=this.dloCC.FS,E=await R.read(this.cwd,this.fs);s.filesystems.NODEFS_TS=be(s,this.cwd,E,this.logger),s.mkdir(i),s.mount(s.filesystems.NODEFS_TS,{root:"/"},i),s.chdir(qx(this.cwd))}async compile(e,F){let i=await R.read(e,F);if(!await R.isApmPartEnabled(e,F,F0.Part.dlo,i))return this.logger.log("DLO not enabled. Skipped."),{code:0,stdout:[],stderr:[],diagnostics:[]};await this.initDloCC(),await F.mkdir(hx.Utils.joinPath(e,"dist/dlo"));let s=hx.Utils.joinPath(e,i.dlo?.mainFile||X.filePaths.dlo.mainDLO),E=[],a=hx.Utils.joinPath(e,X.filePaths.studio.auto.dlo.cfg),C=HA(e,a);E.push(`-T.${C}`);let l=0;try{let d=`.${HA(e,s)}`;l=await this.dloCC.callMain([d,...E])}catch(d){this.logger.error(d)}return{code:l,stdout:this.stdout,stderr:this.stderr,diagnostics:[...It(),...he(e,this.stderr,s)]}}async getDloSymbols(e,F){let i=F.map(u=>{let p=u.substring(0,2);return["-D","-e","-i","-o","-p","-r","-T"].includes(p)?`${p}.${u.substring(2)}`:u}),s=!!process.env.DLO_PROFILE,E=s?performance.now():0,{compiler:a,print:C}=await this.getSymbolCompiler(),l=s?performance.now()-E:0,d=s?performance.now():0;try{if(await a.callMain(["."+e,...i,"-R"]))return null}catch(u){if(u.stack?.startsWith("RuntimeError"))return null;throw u}finally{if(s){let u=performance.now()-d;this.logger.log(`[DLO_PROFILE] instantiate: ${l.toFixed(1)}ms, callMain: ${u.toFixed(1)}ms`),Mt(this.logger)}}return[...C.stdout,...C.stderr]}async getSymbolCompiler(){let e={stdout:[],stderr:[]},F=await JA({noExitRuntime:!1,print:C=>{e.stdout.push(C)},printErr:C=>{e.stderr.push(C)}}),i=qx(this.cwd),[s]=i.split("/"),E=F.FS,a=await R.read(this.cwd,this.fs);return E.filesystems.NODEFS_TS=be(E,this.cwd,a,this.logger),E.mkdir(s),E.mount(E.filesystems.NODEFS_TS,{root:"/"},s),{compiler:F,print:e}}};function he(t,e,F){let i=[],s=e.filter(E=>!!E.trim());for(let E of s){if((E.includes("Assertion failed:")||E.includes("Compilation aborted."))&&F){i.push({file:F,level:"error",line:0,message:E});continue}let a=me(t,E);a&&i.push({file:hx.URI.parse(`file:///${a?.posixPath}`),level:a.level,line:Number(a.lineNumber)-1,message:a.msg})}return i}function me(t,e){let F=e.indexOf(" : "),i=e.indexOf(": ",F+3),s=e.substring(0,F).trim(),E=e.substring(F+3,i).trim(),a=e.substring(i+2).trim();if(!s||!E||!a)return null;let[C,l]=s.split(/[()(-)]/),d=E.split(" "),u=d[d.length-2],k=hx.Utils.joinPath(t,C).fsPath.replace(/\\/g,"/");k.startsWith("/")&&(k=k.substring(1));let w=e.replace(C,k);return{level:u,msg:a,posixPath:k,lineNumber:l,message:w}}async function Wt(t,e,F){let i=["-M","-v2"],s=hx.Utils.joinPath(t,X.filePaths.studio.auto.dlo.defaultInc);i.push(`-p.${HA(t,s)}`);let E=await _0.getApmPartDependencies(t,e,F0.Part.dlo);for(let C of E){let l=hx.Utils.dirname(C.path);i.push(`-i.${HA(t,l)}`)}let a=F.dlo;return a&&i.push(...a.compileOptions),i.push("-o./dist/dlo/main.amx"),{path:hx.Utils.joinPath(t,X.filePaths.studio.auto.dlo.cfg),data:i.join(`
1661
- `)}}var KA;(l=>{l.createPawnCC=JA,l.createPawnDbg=Vt,l.FileSequencer=BA,l.PreCompiler=CA,l.Compiler=DA,l.uriToMemFs=qx,l.parseCompilerWarningsAndErrors=he;async function C(d,u,p){let k=await R.read(d,u),w=await Wt(d,u,k);await u.writeFile(w.path,w.data),p.log("Generated",X.filePaths.studio.auto.dlo.cfg)}l.exportDloConfig=C})(KA||={});var ge=require("vscode-uri");var Yt=z0(require("node:child_process"));var jr;(F=>{async function t(i,s,E){let a=await R.read(i,s);if(await R.isApmPartEnabled(i,s,F0.Part.pov)){E.info("Executing POV build script",a.pov?.details.buildCommand);let{buildCommand:C,workingPath:l}=a.pov.details,d=ge.Utils.joinPath(i,l);try{await Xt(d,C,E)}catch(u){throw u.code?new Error(`APM part '${F0.Part.pov}' has errors. Aborted.`):u}}}F.tryBuildPov=t;async function e(i,s,E){let a=await R.read(i,s);if(await R.isApmPartEnabled(i,s,F0.Part.blo,a)){E.info("Executing BLO build script",a.blo?.buildCommand);let{buildCommand:C,workingPath:l}=a.blo,d=ge.Utils.joinPath(i,l);try{await Xt(d,C,E)}catch(u){throw u.code?new Error(`APM part '${F0.Part.blo}' has errors. Aborted.`):u}}}F.tryBuildBlo=e})(jr||={});async function Xt(t,e,F){return new Promise((i,s)=>{Yt.exec(e,{cwd:t.fsPath,env:process.env},(E,a,C)=>{F.log(a),C&&F.error(C),E&&s(E),i(null)})})}var Qt=require("vscode-uri");var ye=require("minimatch");var xn=require("@gera2ld/tarjs"),GF=i0.convertBlobToString,TF=require("pako"),An=".studioignore",rn=[".vscodeignore","package-lock.json","npm-debug.log","yarn.lock","yarn-error.log","npm-shrinkwrap.json",".editorconfig",".npmrc",".yarnrc",".gitattributes","*.todo","tslint.yaml",".eslintrc*",".babelrc*",".prettierrc*",".cz-config.js",".commitlintrc*","webpack.config.js","ISSUE_TEMPLATE.md","CONTRIBUTING.md","PULL_REQUEST_TEMPLATE.md","CODE_OF_CONDUCT.md",".github",".travis.yml","appveyor.yml","**/.git","**/.git/**","**/*.vsix","**/.DS_Store","**/*.vsixmanifest","**/.vscode-test/**","**/.vscode-test-web/**"];rn.push("**/.studio/**","**/node_modules/**",An,"dist/defines.app.ts");var Zt={dot:!0},eA;(i=>{async function t(s,E){let a=new xn.TarWriter;(await e(s,E)).forEach(d=>{a.addFile(d.name,d.data)});let l=await a.write();return TF.gzip(await l.arrayBuffer())}i.createArchive=t;async function e(s,E){let a=[],{ignore:C,negate:l}=await IF(s,E),u=(await E.findFiles(s,"**/*")).filter(({path:p})=>{let k=p.slice(s.path.length+1);return!C.some(w=>(0,ye.minimatch)(k,w,Zt))||l.some(w=>(0,ye.minimatch)(k,w.slice(1),Zt))});for(let p of u){let k=p.path.slice(s.path.length+1),[w,b]=await Promise.all([E.stat(p),E.readFile(p)]);w&&a.push({name:k,data:b,modifyTime:new Date(w.mtime)})}return a}i.getFilesForArchive=e;async function F(s,E,a,C=M0.ENV.production){let{publisher:l,name:d,version:u}=E,p=await X0.readFilesFromTarGz(a,["CHANGELOG.md","README.md","studio.json"]),k={"CHANGELOG.md":await ke(p["CHANGELOG.md"]),"README.md":await ke(p["README.md"]),"studio.json":await ke(p["studio.json"]),"library.tar.gz":a};return await y0.publishLibraryVersion(s,l,d,u,k,C)}i.publishPackage=F})(eA||={});async function IF(t,e){let F=["!studio.json","!README.md"],s=(await MF(t,e)).split(/[\n\r]/).map(d=>d.trim()).filter(d=>!!d).filter(d=>!/^\s*#/.test(d)),E=[...s,...s.filter(d=>!/(^|\/)[^/]*\*[^/]*$/.test(d)).map(d=>/\/$/.test(d)?`${d}**`:`${d}/**`)],a=[...rn,...E,...F],[C,l]=a.reduce((d,u)=>/^\s*!/.test(u)?[d[0],[...d[1],u]]:[[...d[0],u],d[1]],[[],[]]);return{ignore:C,negate:l}}async function MF(t,e){let F=Qt.Utils.joinPath(t,An);if(await e.stat(F)){let s=await e.readFile(F);return GF(s)}else return""}async function ke(t){return new Uint8Array(await t.arrayBuffer())}var gx=require("vscode-uri");var zx=require("yaml");var SF=i0.convertBlobToString,pr=i0.yamlRangeToLineInformation,VA;(a=>{let t;(u=>(u.static="static",u.dynamic="dynamic",u.appDynamic="app-dynamic"))(t=a.Type||={});let e;(p=>(p.crcStamp="crc_stamp",p.stampOnly="stamp_only",p.onlyDown="only_down",p.onlyUp="only_up"))(e=a.SyncLogic||={});let F;(u=>(u.down="down",u.up="up",u.off="off"))(F=a.Force||={});async function i(C,l,d){let{properties:u,diagnostics:p,libraryFiles:k}=await s(C,l),w=gx.Utils.joinPath(C,X.filePaths.dist.dfilesPath);await l.stat(w)&&await l.rm(w);for(let[b,y]of Object.entries(u))await OF(C,l,b,y,k);return Object.keys(u).length&&(d.done(`${Object.keys(u).length} dfiles processed.`),await l.writeFile(gx.Utils.joinPath(C,X.filePaths.dist.dfilesProperties),JSON.stringify(u,null," "))),p}a.process=i;async function s(C,l){let d=[],u={},p=await _0.getApmPartDependencies(C,l,F0.Part.dfiles);for(let b of p){let{properties:y,diagnostics:$}=await E(l,b.path,b.name);Object.assign(u,y),d.push(...$)}let{properties:k,diagnostics:w}=await E(l,gx.Utils.joinPath(C,X.filePaths.dfiles.mainDFILES),null);return Object.assign(u,k),d.push(...w),{properties:u,diagnostics:d,libraryFiles:p}}a.parseDfile=s;async function E(C,l,d){let u=[],p={};if(!await C.stat(l))return{properties:p,diagnostics:u};let k=await C.readFile(l),w=SF(k),b=new zx.LineCounter,$=(0,zx.parseDocument)(w,{lineCounter:b}).contents||new zx.YAMLMap;for(let P of $.items){let N=P.key.value,M=(0,zx.isMap)(P.value)?P.value:null,W=pr(b,P.key.range),g=M?M.has("syncMode"):!1,_=g?M.get("syncMode"):"crc_stamp";if(g){let H=Object.values(a.SyncLogic);if(!H.includes(_)){let K=M.items.find(z=>z.key.value==="syncMode"),Y=pr(b,K.key.range);u.push({file:l,code:"",message:`Property syncMode does not match any of "${H.join(", ")}"`,line:Y.line,startCharacter:Y.startCharacter,endCharacter:Y.endCharacter,level:"error"})}}else u.push({file:l,code:"",message:'Property "syncMode" missing',line:W.line,startCharacter:W.startCharacter,endCharacter:W.endCharacter,level:"error"});let G=M?M.has("type"):!1,U=G?M.get("type"):"static";if(G){let H=Object.values(a.Type);if(!H.includes(U)){let K=M.items.find(z=>z.key.value==="type"),Y=pr(b,K.key.range);u.push({file:l,code:"",message:`Property type does not match any of "${H.join(", ")}"`,line:Y.line,startCharacter:Y.startCharacter,endCharacter:Y.endCharacter,level:"error"})}}N.match(/^[a-z0-9._-]*$/)||u.push({file:l,code:"",message:'Filename does not match pattern "a-z0-9._-"',line:W.line,startCharacter:W.startCharacter,endCharacter:W.endCharacter,level:"error"});let J=gx.Utils.joinPath(gx.Utils.dirname(l),N),I=await RF(C,J);if(I)p[N]={crc:I.crc,force:"off",readable:!1,size:I.size,stamp:I.stamp,sync_logic:_,type:U,library:d};else{let H=pr(b,P.key.range);u.push({file:l,code:"",message:`Could not find file "${N}"`,line:H.line,startCharacter:H.startCharacter,endCharacter:H.endCharacter,level:"error"})}}return{properties:p,diagnostics:u}}a.parseYamlFile=E})(VA||={});async function RF(t,e){let F=await t.stat(e);if(!F)return null;let i=await t.readFile(e);return{size:F.size,stamp:Math.trunc(F.ctime),crc:i0.generateCRC32ForFileContent(i)}}async function OF(t,e,F,i,s){let a=i.library!==null?gx.Utils.dirname(s.find(d=>d.name===i.library).path):gx.Utils.joinPath(t,X.filePaths.dfiles.path),C=gx.Utils.joinPath(t,X.filePaths.dist.dfilesPath,F),l=gx.Utils.joinPath(a,F);await e.copy(l,C)}var we=require("vscode-uri");var en=z0(require("semver")),UF="package.json",HF=["peerDependencies","dependencies","optionalDependencies"],zF=" ",lA;(i=>{i.PART_DIST_PATHS=[X.filePaths.dist.bloPath,X.filePaths.dist.povDetailsPath];async function e(s,E,a,C){let l=we.Utils.joinPath(s,UF),d=`${a.name}/${YF(s)}`;if(!await E.stat(l))return!1;let p=await JF(E,l,d,C);if(!p)return!1;let k=p.pkg;if(typeof k!="object"||k===null||Array.isArray(k))return C.warn(`"${d}/package.json" does not contain a JSON object - skipped normalizing it.`),!1;if(!en.valid(a.version))return C.warn(`Library manifest version "${a.version}" is not a valid semantic version - skipped normalizing "${d}/package.json".`),!1;KF(k,a,d,C);let w=VF(k,a.version);k=w.pkg;let b=w.changed;b&&C.warn(`Patched version "${w.oldVersion??"<none>"}" -> "${a.version}" in "${d}/package.json" (studio.json is the source of truth).`);let y=XF(a);if(WF(k,y,d,C)&&(b=!0),!b)return!1;let $=ZF(p.raw),P=p.raw.endsWith(`
1662
- `),N=JSON.stringify(k,null,$)+(P?`
1663
- `:"");try{await E.writeFile(l,N)}catch(M){return C.warn(`Could not write "${d}/package.json": ${M}`),!1}return!0}i.normalizePartPackageJson=e;async function F(s,E,a,C){for(let l of i.PART_DIST_PATHS){let d=we.Utils.joinPath(s,l);await e(d,E,a,C)}}i.normalizeLibraryParts=F})(lA||={});async function JF(t,e,F,i){try{let s=await t.readFile(e),E=i0.convertBlobToString(s),a=JSON.parse(E);return{raw:E,pkg:a}}catch(s){return i.warn(`Could not read/parse "${F}/package.json": ${s}`),null}}function KF(t,e,F,i){t.name!==void 0&&t.name!==e.name&&i.warn(`"${F}/package.json" name "${t.name}" does not match library name "${e.name}".`)}function VF(t,e){if(t.version===e)return{pkg:t,changed:!1,oldVersion:t.version};let F=t.version;if(t.version===void 0&&Object.hasOwn(t,"name")){let{name:i,...s}=t;t={name:i,version:e,...s}}else t.version=e;return{pkg:t,changed:!0,oldVersion:F}}function WF(t,e,F,i){let s=!1;for(let E of HF){let a=t[E];if(!a)continue;let C=!1;for(let l of Object.keys(a)){if(!e.has(l))continue;let d=a[l];if(typeof d!="string"||d.startsWith("npm:")||d.includes("://")){i.warn(`Left "${l}" in ${E} of ${F}/package.json untouched - its value "${d}" does not look like a Studio library reference.`);continue}delete a[l],C=!0,s=!0,i.warn(`Removed "${l}" from ${E} of ${F}/package.json - Studio libraries must be declared in studio.json "libraryDependencies" (npm ranges never match prereleases across minor versions).`)}C&&Object.keys(a).length===0&&delete t[E]}return s}function XF(t){let e=[...Object.keys(t.libraryDependencies||{}),...Object.keys(t.libraryDevDependencies||{})];return new Set(e.map(F=>F.split("/")[1]))}function YF(t){let e=t.path.replace(/\\/g,"/");for(let F of lA.PART_DIST_PATHS)if(e===F||e.endsWith(`/${F}`))return F;return e}function ZF(t){let e=t.match(/^\{\r?\n([ \t]+)/);return e?e[1].startsWith(" ")?" ":e[1]:zF}var WA=require("@gera2ld/tarjs"),tn=i0.convertBlobToString,_e=require("pako"),X0;(p=>{class t extends Error{_mergedDiagnostics;constructor(w,b){super(w),this.name="BuildError",this._mergedDiagnostics=b}get mergedDiagnostics(){return this._mergedDiagnostics}}p.BuildError=t;async function e(k,w,b,y,$,P=!0,N){P=QF(b,P),await xs(k,w,b,y,$,P);try{let g=await M0.read(k,w,b);await As(k,w,b,g)}catch(g){b.warn("Could not generate defines.ts:",g)}let M={[F0.Part.dde]:[],[F0.Part.dlo]:[],[F0.Part.dfiles]:[]},W={[F0.Part.dde]:rs,[F0.Part.dlo]:es,[F0.Part.dfiles]:ts};try{for(let g of[F0.Part.dde,F0.Part.dlo,F0.Part.dfiles])if(P.includes(g)&&(b.info(`Building ${g.toUpperCase()}...`),await ss(b,g,W[g],M[g],k,w)))return M}catch(g){throw N?new t(g?.message,M):g}return P.includes(F0.Part.pov)?await jr.tryBuildPov(k,w,b):b.info("Skipping pov build"),P.includes(F0.Part.blo)?await jr.tryBuildBlo(k,w,b):b.info("Skipping blo build"),await ns(k,w,b),await is(k,w,b),b.done("Project build completed."),M}p.buildAll=e;async function F(k,w,b,y,$,P,N){let M=await R.read(k,w);return R.isLibrary(M)?(b.info("Library project detected. Publishing library..."),E(k,w,b,$,y)):(b.info("App project detected. Publishing app..."),s(k,w,b,$,P,N,y))}p.release=F;async function i(k,w,b,y,$,P){let N=await R.read(k,w),M=`${N.name}-${N.version}.tar.gz`,W=null;if(R.isLibrary(N))b.info("Library project detected. Packing library..."),W=await nn(k,w,b,$,y);else{b.info("App project detected. Packing app...");let _=await Fn(k,w,b,$,P,y);W=await os(_)}let g=tA.Utils.joinPath(k,M);W!==null?(await w.writeFile(g,W),b.done(`Packaged: ${g.fsPath}`)):b.error(`Could not create archive: ${g.fsPath}`)}p.pack=i;async function s(k,w,b,y,$,P=null,N){if(!await F0.validateAccess(k,w,y,!1,N))throw new Error("Could not validate access to application");let W=await Fn(k,w,b,y,$,N);await F0.updateProfile(k,w,y,N);let g=await F0.publishTag(k,w,y,W,N);if(P!==null){let _=await R.read(k,w);await y0.updateExistingApplicationVersion(y,_.publisher,_.registry?.id,_.version,{allowedBackends:P},N),b.info(`Tag "${g.version}" with phase "${g.phase}" shared with ${[...P].join(";")}!`)}b.done(`Tag "${g.version}" with phase "${g.phase}" published!`)}p.releaseAPM=s;async function E(k,w,b,y,$){let P=await R.read(k,w),N=await nn(k,w,b,y,$);await eA.publishPackage(y,P,N,$),b.done(`Library "${P.publisher}/${P.name}" with version "${P.version}" published!`)}p.releaseLibrary=E;async function a(k,w,b,y,$,P,N,M=null){if(P==="*"){let I=await R.read(k,w);P=`${I.name}-${I.version}.tar.gz`,b.info(`Publishing detected archive package "${P}"...`)}let W=tA.Utils.joinPath(k,P);if(!await w.stat(W))throw new Error(`Archive package not found: ${W.fsPath}`);let g=await w.readFile(W),_=await vs(g),{publisher:G,registry:U,version:J}=_;R.isLibrary(_)?(await eA.publishPackage(y,_,g,$),b.done(`Library "${G}/${_.name}" with version "${_.version}" published!`)):(await y0.updateApplicationFile(y,G,U.id,J,"app.tar.gz",g,$),await y0.updateExistingApplicationVersion(y,G,U?.id,J,{allowedBackends:M||void 0,phase:N||void 0},$),b.info(`Tag "${J}" with phase "${N}" shared with ${[...M||""].join(";")}!`),b.done(`Tag "${J}" with phase "${N}" published!`))}p.publishArchive=a;async function C(k,w,b){let y;try{y=await w.readFile(tA.Utils.joinPath(k,"README.md"))}catch{throw new Error('Could not find "README.md". "README.md" is required for publishing.')}if(tn(y)===X.readme(b))throw new Error('"README.md" matches the default template. Please write a brief project description.');return y}p.getReadmeFile=C;async function l(k,w){let b;try{b=await w.readFile(tA.Utils.joinPath(k,"CHANGELOG.md"))}catch{throw new Error('Could not find "CHANGELOG.md". "CHANGELOG.md" is required for publishing.')}if(tn(b)===X.changelog)throw new Error('"CHANGELOG.md" matches the default template.');return b}p.getChangelogFile=l;async function d(k,w,b,y){let $=await R.read(k,w),{name:P,publisher:N,description:M}=$,W=R.validateProjectName(P,R.isLibrary($));if(W)throw new Error(`name: ${W}`);let g=R.validateDescription(M);if(g)throw new Error(`description: ${g}`);let _=R.validatePublisherId(N)||await R.validatePublisherOnline(b,N,y);if(_)throw new Error(`publisher: ${_}`);if(!R.isLibrary($)&&(await R.validateApplicationIcon(k,w,$),R.validateEngineSettings($),R.isApp($)&&await R.isApmPartEnabled(k,w,F0.Part.dlo,$)&&(!$.dpid||!Object.values(R.DeviceProfiles).includes($.dpid))))throw new Error("dpid: The device profile is needed to compile a dlo")}p.validatePublishSettings=d;async function u(k,w){let b=_e.ungzip(k),y=await WA.TarReader.load(b),$={};for(let P of y.fileInfos)w.includes(P.name)&&($[P.name]=y.getFileBlob(P.name));return $}p.readFilesFromTarGz=u})(X0||={});function QF(t,e){let F=Object.values(F0.Part);return e===!0?(t.info("Building project..."),F):e===!1?[]:e}async function xs(t,e,F,i,s,E){E.includes(F0.Part.dde)&&await Ex.fetchPreviousHistoryJson(t,e,F,i,s)}async function As(t,e,F,i){i.defaultsOnly?(await M0.exportDefinesTs(t,e,i.defaultsOnly),F.log("Generated",X.filePaths.dist.definesTs,"(defaults only)"),await M0.exportDefinesTs(t,e,i,X.filePaths.dist.definesAppTs),F.log("Generated",X.filePaths.dist.definesAppTs,"(with app.ini overrides)")):(await M0.exportDefinesTs(t,e,i),F.log("Generated",X.filePaths.dist.definesTs))}async function rs(t,e,F){let i=await Ex.compileDDE(t,e,F);if(i.ddeJSON){await Ex.exportMyDatanetXML(t,e,F,i.ddeJSON);let s=await R.read(t,e);R.isLibrary(s)||await Ex.exportHistoryJson(t,e,F,i.ddeJSON),await Ex.exportOpenApi(t,e,F,i.ddeJSON),await R.isApmPartEnabled(t,e,F0.Part.dlo,s)&&(await Ex.exportAutoDloFiles(t,e,F,i.ddeJSON),await KA.exportDloConfig(t,e,F))}return i.diagnostics}async function es(t,e,F){let i=new DA(t,e,F),{diagnostics:s}=await i.compile(t,e);return s}async function ts(t,e,F){return await VA.process(t,e,F)}async function ns(t,e,F){let i=await R.read(t,e);R.isLibrary(i)&&await lA.normalizeLibraryParts(t,e,i,F)}async function is(t,e,F){let i=tA.Utils.joinPath(t,X.fileNames.reportTemplate);if(await e.stat(i)){let s=tA.Utils.joinPath(t,X.filePaths.dist.reportTemplate);await e.copy(i,s),F.log(`Copied "${X.fileNames.reportTemplate}" to dist folder.`)}}function Fs(t,e,F){e!==F0.Part.dlo&&as(t,F);let i=F.some(s=>s.level==="error");if(i){let s=`APM part "${e}" has errors. Aborted.`;throw new Error(s)}return i}async function ss(t,e,F,i,s,E){let a=await F(s,E,t);return i.push(...a),Fs(t,e,a)}function as(t,e){e.forEach(F=>{let i=F.startCharacter?`:${F.startCharacter+1}`:"",s=`${F.file.path}:${F.line+1}${i} - ${F.message}`;F.level==="error"?t.error(s):F.level==="warning"?t.warn(s):t.log(s)})}async function nn(t,e,F,i,s){let E=await R.read(t,e);return await R.validateBasicManifest(t,e,E),await X0.buildAll(t,e,F,s,i),await eA.createArchive(t,e)}async function Fn(t,e,F,i,s,E){if(!Object.values(F0.TagPhase).includes(s))throw new Error(`ReleasePhase: ${s} is not a valid release phase`);return await R.validateBasicManifest(t,e,null),await X0.buildAll(t,e,F,E,i),await F0.createTag(t,e,s)}async function os(t){let e=new WA.TarWriter;for(let[i,s]of t.entries())if(i==="tag"){let E=s;e.addFile(i,E)}else{let E=s;e.addFile(i,await E.arrayBuffer())}let F=await e.write();return _e.gzip(await F.arrayBuffer())}async function vs(t){let e=await Es(t,["studio.json","src/studio.json"]);if(!e)throw new Error('Could not find "studio.json" in archive');return JSON.parse(await e.text())}async function Es(t,e){let F=_e.ungzip(t),i=await WA.TarReader.load(F);for(let s of i.fileInfos)if(e.includes(s.name))return i.getFileBlob(s.name);return null}var Bs=i0.bufferToBase64;var F0;(u=>{let t;(N=>(N.alpha="alpha",N.beta="beta",N.rc="rc",N.release="release",N.stage="stage",N.passive="passive",N.withdrawn="withdrawn"))(t=u.TagPhase||={});let e;($=>($.dde="dde",$.dlo="dlo",$.pov="pov",$.blo="blo",$.dfiles="dfiles"))(e=u.Part||={});function F(p){let{description:k,name:w,pov:b,engines:y,blo:$,publisher:P,type:N}=p,M=N||R.ProjectTypes.app,W={name:w,abstract:k,author:P||"",pov_location:R.PovLocation.embedded,pov_details_lowlevel:!1,required_be:y?.backend,required_hwfw:y?.hwfw?.join(";"),required_productcode:y?.productId?.join(";"),blo_level:$?.accessLevel||R.BloAccessLevel.restricted,pip_id:""};return b&&b.details&&(W.pov_location=R.PovLocation.pure,W.pov_details_lowlevel=!!b.details.lowLevel),M==="addon"&&(W.required_hwfw=void 0,W.required_productcode=void 0,W.addon_max_sources=1,W.addon_max_per_site=p.maxInstancesPerSite),W}u.createBaseTagHeader=F;async function i(p,k,w){let b=await R.read(p,k),y=F(b),$={version:b.version,...y,phase:w};return await E(p,k,b,$)}u.createTag=i;async function s(p,k){let w=await R.read(p,k),y={...F(w),blo_autostart:!1};return E(p,k,w,y)}u.createDevTag=s;async function E(p,k,w,b){let y=new FormData;y.append("tag",JSON.stringify(b)),y.append(`src/${R.fileName}`,new Blob([await R.readAsBlob(p,k)]));let $=new Blob([await k.readFile(Px.Utils.joinPath(p,X.filePaths.dist.ddeXmlPath))]);if(y.append("bin/dde/xml",$),w.icon){let N=await k.readFile(Px.Utils.joinPath(p,w.icon)),M=Bs(N);y.append("previews/00.png",new Blob([`data:image/png;base64,${M}`]))}if(Object.hasOwn(b,"phase")){let N=await X0.getReadmeFile(p,k,b.name),M=await X0.getChangelogFile(p,k);y.append("previews/README.md",new Blob([N])),y.append("previews/CHANGELOG.md",new Blob([M]))}if(await R.isApmPartEnabled(p,k,"dlo")){let N=new Blob([await k.readFile(Px.Utils.joinPath(p,X.filePaths.dist.mainAmxPath))]);y.append("bin/dlo/amx",N)}if(await R.isApmPartEnabled(p,k,"pov",w)){await sn(p,k,y,X.filePaths.dist.povDetailsPath,"bin/pov/details");let N=new TextEncoder().encode('<!DOCTYPE html><html lang="en">');y.append("bin/pov/list/index.html",new Blob([N]))}let P=await k.findFiles(p,`${X.filePaths.dist.dfilesPath}/*`);for(let N of P){let M=new Blob([await k.readFile(N)]);y.append(`bin/dfiles/${Px.Utils.basename(N)}`,M)}return await R.isApmPartEnabled(p,k,"blo",w)&&await sn(p,k,y,X.filePaths.dist.bloPath,"bin/blo"),await Cs(p,k,y),y}u.createBuffer=E;async function a(p,k,w,b,y){let $=await R.read(p,k);b||await X0.validatePublishSettings(p,k,w,y);let{registry:P}=$,N=P?.id;if(!N&&!b&&(N=await C(p,k,w,$,y)),N){let{publisher:M}=$;if(!M)return null;try{return{id:N,...await y0.getExistingApplication(w,M,N,y)}}catch(W){if(W?.message==="Could not find given application")return N=await C(p,k,w,$,y),{id:N,...await y0.getExistingApplication(w,M,N,y)}}}return null}u.validateAccess=a;async function C(p,k,w,b,y){let $="myDatanet",{publisher:P,name:N,description:M,registry:W}=b,g={id:W?.id,type:b.type||R.ProjectTypes.app,name:N,targetSystem:$,description:M||"",allowedBackends:null};R.isAddon(b)&&(g.allowedApplications=null);let _=await y0.createNewApplication(w,P,g,y);if(!_)throw new Error("Failed to initialize application");return b.registry={id:_},await R.write(p,k,b),_}u.registerNew=C;async function l(p,k,w,b){let{name:y,publisher:$,description:P,registry:N}=await R.read(p,k),M=N?.id;await y0.updateExistingApplication(w,$,M,{description:P,name:y,targetSystem:"myDatanet"},b)}u.updateProfile=l;async function d(p,k,w,b,y){let{publisher:$,registry:P,version:N}=await R.read(p,k);return await y0.publishApplicationVersion(w,$,P?.id,N,b,y)}u.publishTag=d})(F0||={});async function sn(t,e,F,i,s){let E=await e.findFiles(t,`${i}/**`);for(let a of E){let C=Px.Utils.joinPath(t,i),l=a.path.substring(C.path.length+1),d=new Blob([await e.readFile(Px.Utils.joinPath(t,`${i}/${l}`))]);F.append(`${s}/${l}`,d)}}async function Cs(t,e,F){let i=Px.Utils.joinPath(t,X.filePaths.dist.reportTemplate);if(await e.stat(i)){let E=new Blob([await e.readFile(i)]);F.append("bin/pov/mdn_report_template.json",E)}let s=Px.Utils.joinPath(t,X.filePaths.dist.historyJson);await e.stat(s)&&F.append("src/dde/history.json",new Blob([await e.readFile(s)]))}var Cn=require("deepmerge-ts"),fs=i0.isNumeric,an="52v007",on="53v001",Ds="54v001",ls="56v001",Bx={_manifest:null,_stat:null,_overwrites:null,get manifest(){return(0,Cn.deepmerge)(structuredClone(this._manifest),Bx._overwrites||{})},set manifest(t){this._manifest=t},set overwrites(t){this._overwrites=t},get stat(){return this._stat},set stat(t){this._stat=t},clear(){this._stat=null,this._manifest=null}},R;(z=>{let t=i0.convertBlobToString;z.fileName="studio.json";let F;(l0=>(l0.m22x="m22x",l0.m23x="m23x",l0.nrf91="nrf91",l0.m2blegw="m2blegw",l0.m2easyv3="m2easyv3",l0.m2easyiot="m2easyiot"))(F=z.DeviceProfiles||={});let i;(n0=>(n0.app="app",n0.library="library",n0.addon="addon",n0.analytics="analytics"))(i=z.ProjectTypes||={});let s;(r0=>(r0.restricted="restricted",r0.global="global"))(s=z.BloAccessLevel||={});let E;(r0=>(r0.embedded="$embedded",r0.pure="$pure"))(E=z.PovLocation||={});function a(T){Bx.overwrites=T}z.setOverwrites=a;function C(){Bx.overwrites=null}z.clearOverwrites=C;async function l(T,Q){let r0=cA.Utils.joinPath(T,z.fileName),t0=await Q.stat(r0);if(Bx.manifest===null||r0?.fsPath!==Bx.stat?.path.fsPath||t0?.ctime!==Bx.stat?.ctime||t0?.mtime!==Bx.stat?.mtime||t0?.size!==Bx.stat?.size){let n0=await Q.readFile(r0),f0=t(n0);Bx.manifest=JSON.parse(f0),Bx.stat={...t0,path:r0}}return Bx.manifest}z.read=l;async function d(T,Q){return await Q.readFile(cA.Utils.joinPath(T,z.fileName))}z.readAsBlob=d;async function u(T,Q){let r0=cA.Utils.joinPath(T,z.fileName),t0=await Q.readFile(r0),n0=t(t0);return JSON.parse(n0)}z.readRaw=u;async function p(T,Q,r0){return Bx.clear(),ms(r0),Q.writeFile(cA.Utils.joinPath(T,z.fileName),JSON.stringify(r0,null," "))}z.write=p;function k(T){return T.library!==void 0?T.library:T.type==="library"}z.isLibrary=k;function w(T){return T.type==="addon"}z.isAddon=w;function b(T){return T.type===void 0&&!k(T)?!0:T.type==="app"}z.isApp=b;function y(T){return T.type===void 0?!0:T.type==="app"}z.isIotApp=y;function $(T){return T.type==="analytics"}z.isAnalytics=$;async function P(T,Q,r0){r0||(r0=await l(T,Q)),bs(r0),cs(r0),ds(r0),us(r0)}z.validateBasicManifest=P;function N(T){let Q="Library name can only contain 'a' through 'z', '0' through '9', '_' and '-'. The Library name must start with an alphabetic or numeric character.";if(T.match(/^[a-z0-9-_]+$/)){let t0=["-","_"];if(t0.includes(T[0])||t0.includes(T[T.length-1]))return Q}else return Q;return T.length<3||T.length>20?"The library name is beyond permissible length of 20 characters.":null}z.validateLibraryName=N;function M(T,Q){if(Q)return N(T);{let r0="Project name can only contain 'A' through 'Z', 'a' through 'z', '0' through '9', ' ', '_' and '-'. The Project name must start with an alphabetic or numeric character.";if(!T.match(/^([a-zA-Z0-9 _-]+)$/))return r0;if(T.length<3||T.length>40)return"The project name is beyond permissible length of 40 characters.";let n0=["-","_"," "];return n0.includes(T[0])||n0.includes(T[T.length-1])?r0:null}}z.validateProjectName=M;function W(T){return T.length<5?"The description must have at least 5 characters.":null}z.validateDescription=W;function g(T){if(!T)return"No publisher set yet";let Q="Publisher can only contain 'A' through 'Z', 'a' through 'z', '0' through '9' and '-'. The Publisher start with an alphabetic or numeric character.";if(T.match(/^[a-zA-Z0-9-]+$/)){let t0=["_"];if(t0.includes(T[0])||t0.includes(T[T.length-1]))return Q}else return Q;return null}z.validatePublisherId=g;async function _(T,Q,r0){return await y0.getPublisher(T,Q,r0)?null:`Publisher '${Q}' does not exist.`}z.validatePublisherOnline=_;let G=/^(((?!-))(xn--)?[a-z0-9\-_]{0,61}[a-z0-9]{1,1}\.)*(xn--)?([a-z0-9-]{1,61}|[a-z0-9-]{1,30})\.[a-z]{2,}$/;async function U(T){if(T===void 0)return"Allowed backends not specified yet";if(T===null)return null;if(Array.isArray(T)||T?.includes(";")){let Q=T?.includes(";")?T.split(";"):T;for(let r0 of Q)if(!r0.match(G))return`Domain "${r0}" is invalid`}else if(!T?.match(G)&&T!=="*")return'Invalid value for "allowedBackends"';return null}z.validateRegistryAllowedBackends=U;let J=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;async function I(T){if(T===void 0)return"Allowed applications not specified yet";if(T===null)return null;if(Array.isArray(T)||T?.includes(";")){let Q=T?.includes(";")?T.split(";"):T;for(let r0 of Q)if(!r0.match(J))return`Application id "${r0}" is invalid`}else if(!T?.match(J)&&T!=="*")return'Invalid value for "allowedApplications"';return null}z.validateRegistryAllowedApplications=I;async function H(T,Q,r0){let t0=r0.icon;if(!t0)throw new Error("App icon is required for publishing an application!");let n0=cA.Utils.joinPath(T,t0);if(!await Q.stat(n0))throw new Error(`Could not load icon "${t0}"`);let l0=await Q.readFile(n0),L0=(0,vn.imageDimensionsFromData)(l0);if(!L0)throw new Error("App icon could not be validated!");if(L0?.width!==L0?.height)throw new Error("App icon has to be a square!");if(L0.width>512||L0.width<75)throw new Error("App icon size should be between 75px and 512px!");if(!(0,En.isPNG)(l0))throw new Error("App icon has to be of type PNG!")}z.validateApplicationIcon=H;function K(T){let{engines:Q}=T;if(Q?.backend&&!Q.backend.match(/(^[5-9][2-9]|[6-9]\d+|\d{3,})v(0(0[0-9]|[1-9]\d)|[1-9]\d{2}|[1-9]\d{3,})$/))throw new Error('Setting "engines.backend" is invalid');js(T),ps(T)}z.validateEngineSettings=K;async function Y(T,Q,r0,t0){t0||(t0=await z.read(T,Q));let n0=z.isAddon(t0),f0=z.isAnalytics(t0);switch(r0){case F0.Part.dlo:return!!t0?.dlo?.mainFile&&!n0&&!f0;case F0.Part.blo:return!!(t0.blo?.buildCommand&&t0.blo?.workingPath);case F0.Part.pov:return!!(t0.pov?.details?.buildCommand&&t0.pov.details.workingPath);case F0.Part.dde:case F0.Part.dfiles:return!0;default:return!1}}z.isApmPartEnabled=Y})(R||={});function cs(t){let{pov:e}=t;if(e&&e.details){if(!Object.hasOwn(e.details,"buildCommand"))throw new Error('Setting "pov.details.buildCommand" missing!');if(!Object.hasOwn(e.details,"workingPath"))throw new Error('Setting "pov.details.workingPath" missing!')}}function ds(t){let{blo:e}=t;if(e){if(!Object.hasOwn(e,"buildCommand"))throw new Error('Setting "blo.buildCommand" missing!');if(!Object.hasOwn(e,"workingPath"))throw new Error('Setting "blo.workingPath" missing!');if(e.accessLevel&&!["restricted","global"].includes(e.accessLevel))throw new Error('Only "restricted" or "global" are allowed as value for "blo.accessLevel"!')}}function js(t){let{backend:e,productId:F,hwfw:i}=t.engines;if(R.isAddon(t)&&(F||i))throw new Error('For project type "addon", "engines.hwfw" or "engines.productId" is not allowed!"');if(e&&e>=an){if(i&&F)throw new Error('Only "engines.hwfw" or "engines.productId" is allowed!"')}else if(F)throw new Error(`"engines.productId" requires "engines.backend" to be "${an}"`)}function ps(t){if(!R.isAddon(t)&&!R.isAnalytics(t))return;let{backend:e}=t.engines,F=R.isAddon(t)?Ds:ls;if(!e||e<F)throw new Error(`Project type "${t.type}" requires "engines.backend" to be ">=${F}"`);if(t.dlo)throw new Error(`For project type "${t.type}", "dlo" is not supported!"`);if(t.dpid)throw new Error(`For project type "${t.type}", "dpid" is not supported!"`)}function us(t){let{maxInstancesPerSite:e}=t;if(e===void 0){if(R.isAddon(t))throw new Error('Property "maxInstancesPerSite" is required for addon projects!');return}if(!R.isAddon(t))throw new Error('Property "maxInstancesPerSite" is only allowed for addon projects!');if(!Number.isInteger(e))throw new Error('Property "maxInstancesPerSite" must be an integer!');if(e<1||e>100)throw new Error('Property "maxInstancesPerSite" must be between 1 and 100!')}function bs(t){if((t.engines?.backend||"00v000")>=on||R.isLibrary(t)){if(!Bn.default.valid(t.version))throw new Error(`From "engines.backend" version >= ${on} onwards "version" has to be a semantic version string!"`)}else if(!fs(t.version))throw new Error('"version" has to be a number!')}function ms(t){t.registry&&(delete t.registry.allowedBackends,delete t.registry.target)}var kx=z0(require("semver"));var ln=z0(require("node:child_process")),cn=require("minimatch");var hs=require("tinytar-fix"),gs=require("pako"),Jx=".studio/libdeps",XA="package.json",ks="package-lock.json",_0;(W=>{async function t(g,_=!1){let G=g.libraryDependencies||{};return _||Object.assign(G,g.libraryDevDependencies||{}),G}W.getAll=t;function e(g){return g.split("/")[1]}W.dependencyIdToName=e;function F(g,_){let G=e(_);return S0.Utils.joinPath(g,Jx,G)}W.dependencyToPath=F;function i(g){return isNaN(g.split("")[0])?g.substring(1):g}W.rangeToVersion=i;function s(g,_,G){if(!kx.satisfies(_,G,{includePrerelease:!0}))throw new Error(`${g}, version ${_} does not satisfy required constraint ${G}`)}W.satisfiesSemverRange=s;async function E(g,_,G={},U=!1){let J=await R.read(g,_),I=J.libraryDependencies||{};U&&Object.assign(I,J.libraryDevDependencies);let H=Object.keys(G);for(let K of H)if(Object.hasOwn(I,K)){let Y=G[K],z=I[K],T=i(Y),Q=i(z),r0=kx.compare(T,Q);r0===1?(I[K]=Y,s(K,T,z)):r0===-1&&(I[K]=z,s(K,Q,Y))}else I[K]=G[K];return I}W.validateDependencyTree=E;async function a(g,_,G,U,J){let I=i(J),H=S0.Utils.joinPath(g,Jx,U);try{let K=await R.read(H,_);return kx.gte(K.version,I)&&K.publisher.toLowerCase()===G.toLowerCase()}catch{return!1}}W.isDependencyInstalled=a;async function C(g,_,G,U){let J=S0.Utils.joinPath(g,Jx,U);await _.rm(J).catch(I=>{G.error("removeExisting",I)})}W.removeExisting=C;async function l(g,_,G,U,J){let I=hs.untar(gs.ungzip(J));await C(g,_,G,U);for(let H of I.values())try{let K=S0.Utils.joinPath(g,Jx,U,H.name);await _.writeFile(K,H.data)}catch(K){G.error("Extracting lib",K)}}W.extractLibraryContent=l;async function d(g,_,G,U,J,I,H,K=!1){let[Y,z]=I.split("/");if(H&&await a(g,_,Y,z,H))return;await C(g,_,G,z);let T=await y0.getLibraryProfile(J,Y,z,U),Q=H?T.versions?.find(Q0=>kx.eq(Q0.name,W.rangeToVersion(H))):T.versions[0];if(!Q)throw new Error(`Library ${I} with version ${H} does not exist!`);let r0=Q.files.find(Q0=>Q0.name==="studio.json"),n0=(await ys(J,r0.downloadUrl)).libraryDependencies||{},f0={...n0};f0[I]=`^${Q.name}`,await E(g,_,f0,K);for(let[Q0,Gx]of Object.entries(n0))await d(g,_,G,U,J,Q0,Gx,K);let l0=Q.files.find(Q0=>Q0.name==="library.tar.gz");if(!l0)throw new Error(`Library ${I} has no content!`);let L0=await y0.fetchCustomContent(J,l0.downloadUrl);await l(g,_,G,z,L0),await N(g,_,G,z,K);let K0=await R.read(g,_),Nx=K0.libraryDependencies||{},Lx=K0.libraryDevDependencies||{},Kx=K?Lx:Nx;Kx[I]=`^${Q.name}`,K0.libraryDependencies=Nx,K0.libraryDevDependencies=Lx,await R.write(g,_,K0)}W.installDependency=d;async function u(g,_,G,U,J){let I=await R.read(g,_),H=I.libraryDependencies||{},K=I.libraryDevDependencies||{},Y=Object.assign(H,K);for(let[z,T]of Object.entries(Y)){let Q=Object.hasOwn(K,z);await d(g,_,G,U,J,z,T,Q)}for(let[z]of Object.entries(Y)){let T=e(z),Q=Object.hasOwn(K,z);await N(g,_,G,T,Q)}G.done(`Installed ${Object.entries(Y).length} dependencies`)}W.installDependencies=u;async function p(g,_,G,U,J){let I=await R.read(g,_),H=I.libraryDependencies||{},K=I.libraryDevDependencies||{},Y=Object.assign(H,K),z=`${U}/${J}`;delete Y[z];let T=await ws(g,_,Y);if(!Object.hasOwn(T,z))await M(g,_,G,J),await C(g,_,G,J),delete K[z],delete H[z],await R.write(g,_,I);else throw new Error(`Library '${J}' not removed. This library is a dependency of other libraries.`)}W.uninstallDependency=p;async function k(g,_){try{let U=(await dn(S0.Utils.joinPath(g,XA),_)).workspaces;if(Array.isArray(U)&&U.every(I=>typeof I=="string")&&U.length>0)return U;let J=U?.packages;return Array.isArray(J)&&J.every(I=>typeof I=="string")&&J.length>0?J:null}catch{return null}}W.readNpmWorkspacePatterns=k;function w(g,_){let G=J=>J.replace(/\\/g,"/").replace(/^\.\//,"").replace(/\/$/,""),U=G(g);return _.some(J=>{let I=G(J);return I===U||(0,cn.minimatch)(U,I)})}W.isPathInWorkspaces=w;function b(g,_){if(!_)return{rootInstall:!1,partInstalls:g.map(J=>J.workingPath)};let G=[],U=!1;for(let J of g)w(J.workingPath,_)?U=!0:G.push(J.workingPath);return{rootInstall:U,partInstalls:G}}W.planNpmInstalls=b;async function y(g,_,G){let U=await R.read(g,_),J=new Set([...Object.keys(U.libraryDependencies||{}),...Object.keys(U.libraryDevDependencies||{})].map(e)),I=new Set,H=[...J];for(;H.length>0;){let K=H.shift();if(I.has(K))continue;I.add(K);let Y=S0.Utils.joinPath(g,Jx,K);try{let z=S0.Utils.joinPath(Y,R.fileName);if(!await _.stat(z))continue;let T=await R.readRaw(Y,_);await lA.normalizeLibraryParts(Y,_,T,G),H.push(...[...Object.keys(T.libraryDependencies||{}),...Object.keys(T.libraryDevDependencies||{})].map(e))}catch(z){G.warn(`Could not normalize library parts for "${K}": ${z}`)}}}W.normalizeInstalledLibraryParts=y;async function $(g,_,G){await y(g,_,G);let U=await R.read(g,_),J=[];U.pov?.details?.workingPath&&J.push({name:"pov",workingPath:U.pov.details.workingPath}),U.blo?.workingPath&&J.push({name:"blo",workingPath:U.blo.workingPath});let I=[];for(let z of J){let T=S0.Utils.joinPath(g,z.workingPath),Q=S0.Utils.joinPath(T,XA);await _.stat(Q)&&I.push(z)}if(I.length===0)return;let H=await k(g,_),{rootInstall:K,partInstalls:Y}=b(I,H);if(K){let z=I.filter(T=>!Y.includes(T.workingPath)).map(T=>T.workingPath).join(", ");G.info(`npm workspaces detected in root package.json - installing dependencies once at the project root (${z}) using 'npm install' (an in-sync package-lock.json is installed as-is and left unchanged)`),await ur(g,"npm install --no-audit --no-fund",G)}for(let z of I){if(!Y.includes(z.workingPath))continue;H?G.warn(`${z.workingPath} (${z.name}) is not covered by any workspace pattern in the root package.json - installing it separately.`):G.info(`Installing npm dependencies for ${z.name} (${z.workingPath})...`);let T=S0.Utils.joinPath(g,z.workingPath);await qs(T,_,G)}}W.installNpmInApmParts=$;async function P(g,_,G){let U=await R.read(g,_),J=await t(U),I=[],H=X.filePaths[G].path,K=G===F0.Part.dlo?"inc":"dfiles";for(let Y in J){let z=W.dependencyToPath(g,Y),T=W.dependencyIdToName(Y),Q=S0.Utils.joinPath(z,H,`${T}.${K}`);await _.stat(Q)&&I.push({name:T,path:Q})}if(R.isLibrary(U)){let Y=S0.Utils.joinPath(g,H,`${U.name}.${K}`);await _.stat(Y)&&I.push({name:U.name,path:Y})}return I}W.getApmPartDependencies=P;async function N(g,_,G,U,J){let I=await R.read(g,_),H=[{partName:"blo",partDistPath:"blo",workingPath:I.blo?.workingPath},{partName:"pov",partDistPath:"pov/details",workingPath:I.pov?.details?.workingPath}];for(let{partName:K,partDistPath:Y,workingPath:z}of H){if(!z)continue;let T=S0.Utils.joinPath(g,Jx,U,"dist",...Y.split("/"),XA);if(await _.stat(T))try{let r0=await fn(g,_,z),t0=J?"devDependencies":"dependencies";r0[t0]=r0[t0]||{};let n0=z.split("/").length,f0=Array(n0).fill("..").join("/");r0[t0][U]=`file:${f0}/${Jx}/${U}/dist/${Y}`,await Dn(g,_,z,r0),G.info(`Linked ${U} to ${K} (${z})`)}catch(r0){G.warn(`Could not link ${U} to ${K}: ${r0}`)}}}W.linkLibraryApmParts=N;async function M(g,_,G,U){let J=await R.read(g,_),I=[{partName:"blo",workingPath:J.blo?.workingPath},{partName:"pov",workingPath:J.pov?.details?.workingPath}];for(let{partName:H,workingPath:K}of I)if(K)try{let Y=await fn(g,_,K),z=!1;Y.dependencies?.[U]?.startsWith("file:")&&(delete Y.dependencies[U],z=!0),Y.devDependencies?.[U]?.startsWith("file:")&&(delete Y.devDependencies[U],z=!0),z&&(await Dn(g,_,K,Y),G.info(`Unlinked ${U} from ${H}`))}catch(Y){G.warn(`Could not unlink ${U} from ${H}: ${Y}`)}}W.unlinkLibraryApmParts=M})(_0||={});async function dn(t,e){let F=await e.readFile(t);return JSON.parse(i0.convertBlobToString(F))}function fn(t,e,F){return dn(S0.Utils.joinPath(t,F,XA),e)}async function Dn(t,e,F,i){let s=S0.Utils.joinPath(t,F,XA),E=JSON.stringify(i,null," ")+`
1664
- `;await e.writeFile(s,E)}async function ys(t,e){return await y0.fetchCustomContent(t,e,!0)}async function ws(t,e,F){let i={};function s(d,u,p,k=!1){let w=i[d],b=_0.rangeToVersion(p),y=_0.rangeToVersion(p);(!w||kx.gt(b,y))&&(i[d]={publisherId:u,version:p,installed:k})}let E=Object.entries(F).map(([d,u])=>{let[p,k]=d.split("/");return s(k,p,u,!0),k}),a={};for(let d of E)try{let u=await _s(t,e,d);a[d]=Object.entries(u).map(([p,k])=>{let[w,b]=p.split("/");return s(b,w,k),b}),E.push(...a[d])}catch{let p=i[d];throw new Error(`Please import "${p.publisherId}/${d}" first.`)}let C=[];for(;;){let d=E.filter(u=>C.includes(u)?!1:(a[u]||[]).every(k=>C.includes(k)));if(C.push(...d),E.length===C.length||!d.length)break}let l={};return[...new Set(C)].forEach(d=>{let{version:u,publisherId:p}=i[d],k=$s(p,d,u);l[k.libraryId]=k.libraryVersion}),l}async function _s(t,e,F){let i=S0.Utils.joinPath(t,Jx,F);return(await R.read(i,e))?.libraryDependencies||{}}function $s(t,e,F){return{libraryName:e,publisherId:t,libraryVersion:F[0]==="^"?F:"^"+F,libraryId:`${t}/${e}`}}function ur(t,e,F){return new Promise((i,s)=>{ln.exec(e,{cwd:t.fsPath,env:process.env},(E,a,C)=>{if(a&&F.log(a),C&&F.error(C),E){s(new Error(`${E.message}
1665
- ${a}
1666
- ${C}`));return}i()})})}async function qs(t,e,F){let i=S0.Utils.joinPath(t,ks);if(!await e.stat(i)){F.warn(`No package-lock.json found in ${t.fsPath} - running 'npm install' instead of 'npm ci'.`),await ur(t,"npm install",F);return}try{await ur(t,"npm ci",F)}catch{F.warn(`'npm ci' failed in ${t.fsPath} - falling back to 'npm install'. If package-lock.json changed afterwards, commit it.`),await ur(t,"npm install",F)}}var jn=z0(require("dotenv")),pn=require("vscode-uri");var Ps=".env.local",$e;(e=>{async function t(F,i){let s=pn.Utils.joinPath(F,Ps);if(await i.stat(s)){let E=await i.readFile(s);return jn.default.parse(i0.convertBlobToString(E))}return{}}e.read=t})($e||={});var YA=z0(require("chalk")),qe;(i=>{let t;(d=>(d[d.log=0]="log",d[d.done=1]="done",d[d.info=2]="info",d[d.warning=3]="warning",d[d.error=4]="error"))(t=i.LogMessageType||={}),i.LOG_PREFIX={1:YA.default.bgGreen.black(" DONE "),0:"",2:YA.default.bgBlueBright.black(" INFO "),3:YA.default.bgYellow.black(" WARNING "),4:YA.default.bgRed.black(" ERROR ")};class F{_logHandler;_silent=!1;constructor(E=console){this._logHandler=E}_log(E,a,...C){this._silent&&E!==4||(C=[i.LOG_PREFIX[E],a,...C],this._logHandler.log(...C))}set silent(E){this._silent=E}log(E,...a){this._log(0,E,...a)}debug(E,...a){this._log(0,E,...a)}error(E,...a){this._log(4,E,...a)}info(E,...a){this._log(2,E,...a)}warn(E,...a){this._log(3,E,...a)}done(E,...a){this._log(1,E,...a)}}i.Logger=F})(qe||={});var un=require("uuid"),Ns="b4baec47-0ba4-4e37-b237-8f9cde42b8dd",Pe=(s=>(s.Get="GET",s.Post="POST",s.Put="PUT",s.Delete="DELETE",s))(Pe||{});var br=class{domain;auth;logger;userInfo=null;constructor(e,F,i){if(typeof e=="object"){let{serverUrl:s,apiToken:E,authHeader:a,logger:C}=e;this.domain=this.normalizeServerUrl(s),this.auth=a||(E?`Bearer ${E}`:""),this.logger=C}else this.domain=this.normalizeServerUrl(e),typeof F=="string"?(this.auth=`Bearer ${F}`,this.logger=i):(this.auth="",this.logger=F)}setAuth(e){this.auth=e}getDomain(){return this.domain}normalizeServerUrl(e){return!e.startsWith("http://")&&!e.startsWith("https://")?`https://${e}`:e}trimDomain(e){return e.replace(/(^\w+:|^)\/\//,"")}async fetchJSON(e,F,i){let s=`${this.domain}${F}`,E={Authorization:this.auth},a={method:e,headers:E};i&&(i instanceof FormData?a.body=i:(E["Content-Type"]="application/json",a.body=JSON.stringify(i)));let C=await fetch(s,a);if(!C.ok){let l=await C.text().catch(()=>"Unknown error");throw new Error(`HTTP ${C.status}: ${l}`)}return C.json()}async authenticate(){this.logger?.info(`Authenticating with ${this.trimDomain(this.domain)}...`);try{let{user:e,customers:F}=await this.fetchJSON("GET","/api/1/me");return this.userInfo={name:e.name,email:e.email,group:e.group,customers:F},this.logger?.info(`Authenticated as ${this.userInfo.name}`),this.userInfo}catch(e){throw new Error(`Authentication failed: ${e instanceof Error?e.message:String(e)}`)}}getUserInfo(){return this.userInfo}async uploadDevTag(e,F){this.logger?.info(`Uploading development tag ${e}...`);let{applid:i}=await this.fetchJSON("POST",`/api/1/app-center/__dev/${e}`,F);return this.logger?.info(`Development tag uploaded, application ID: ${i}`),i}async getCustomer(e){let{_uid:F,name:i}=await this.fetchJSON("GET",`/api/1/customers/${e}`);return{_uid:F,name:i}}async getCustomers(){return this.fetchJSON("GET","/api/1/customers")}async getDeviceSite(e){try{return await this.fetchJSON("GET",`/api/1/devices/${e}/site`)}catch{return null}}async getDevice(e){try{return await this.fetchJSON("GET",`/api/1/devices/${e}`)}catch{return null}}async getSite(e,F){try{return await this.fetchJSON("GET",`/api/1/customers/${e}/sites/${F}`)}catch{return null}}async createDevelopmentSite(e,F,i){if(this.logger?.info(`Creating development site "${F.name}"...`),F.serialNumber){let E=await this.getSite(e,F.name.toLowerCase());if(E)try{return await this.fetchJSON("POST",`/api/1/customers/${e}/sites/${E._uid}/cn-attach-device`,{device_id:F.serialNumber,allow_overwrite:!0,detach_from_old_site:!0,acquire:!0,create:!0}),this.logger?.info(`Device attached to existing site ${E._uid}`),E._uid}catch(a){if(a.message&&!a.message.includes("304"))this.logger?.warn(`Could not attach device to existing site: ${a.message}`);else return E._uid}}let{_uid:s}=await this.fetchJSON("POST",`/api/1/customers/${e}/sites`,{name:F.name,create:!0,force:!0,note:"This is a Studio development site",applid:F.applicationId,device_id:F.serialNumber,reg_code:i,servicetariff:"0000000000000000",servicetariff_indiv_cost:0});return this.logger?.info(`Development site created: ${s}`),s}async updateSiteName(e,F){try{await this.fetchJSON("PUT",`/api/1/sites/${e}`,{name:F})}catch{}}};function Ne(t){return(0,un.v5)(t,Ns)}async function bn(t,e,F,i,s,E,a){let C=await R.read(t,e),l=s.replaceAll(" ","_").replace(/[^a-zA-Z0-9-]+/g,""),d=C.name.replaceAll(" ","_").replace(/[^a-zA-Z0-9-]+/g,""),u=await R.isApmPartEnabled(t,e,F0.Part.dlo,C),p=u&&i,k=p?i.toUpperCase():`${d}_${l}`,w=p?i:k,b=a||k;return b.length>50&&(F.warn(`Site name "${b}" is too long. Truncating to 50 characters.`),b=b.substring(0,50)),{apmId:Ne(w),applicationId:null,name:b,version:1,serialNumber:u?i:void 0,siteUid:null,customerUid:E}}async function Ls(t,e,F,i,s,E,a=!1){if(E.length>0)for(let C of E){let[l,d]=C.split("@");await _0.installDependency(t,e,F,i,s,l,d||null,a)}else await _0.installDependencies(t,e,F,i,s);await _0.installNpmInApmParts(t,e,F)}async function Gs(t,e,F,i,s=null,E=!0,a){return await R.validateBasicManifest(t,e,null),X0.buildAll(t,e,F,i,s,E,a)}async function Ts(t){let e=null;if(t){e=t==="*"?t:t.split(";");let F=await R.validateRegistryAllowedBackends(e);if(F)throw new Error(F)}return e}async function Is(t,e,F,i,s,E,a,C){F.info("Publishing package...");let l=await Ts(E);if(C)await X0.publishArchive(t,e,F,s,i,C,a,l);else return await X0.validatePublishSettings(t,e,s,i),X0.release(t,e,F,i,s,a,l)}async function Ms(t,e,F,i,s,E){return X0.pack(t,e,F,i,s,E)}0&&(module.exports={APM,DDE,DDE_Core,DFILES,DLO,DefaultFiles,Dependencies,DeviceProfiles,Diagnostics,ENV,Globals,Helper,HttpMethod,Library,Log,Manifest,MyDatanetClient,Package,Registry,build,buildDevelopmentInstallInfo,generateDevApmId,install,pack,publish});
1658
+ ${_}
1659
+ public ___${s0}( ${R})${g}`}else if(N=na.exec(P)){let[,O,s0]=N;S=`${O}${s0}{_log_string="";_assert(__refid,__line);}`}else if(N=ra.exec(P)){let[,O,s0,R,g]=N;S=`${O}${s0}{ if (!(${R})) { sprintf(_log_string,_,${g.replace(/%%/g,"\xFF")});_assert(__refid,__line); }}`}else if(N=ta.exec(P)){let[,O,s0,R]=N;S=`${O}${s0}{ if (!(${R})) { _log_string="";_assert(__refid,__line); }}`}else if(N=sa.exec(P)){let[,O,s0,R]=N;S=`${O}${s0}_catch(__refid,__line,${R});`}else if(N=ia.exec(P)){let[,O,s0,R,g,M]=N,{priority:Y,code:W}=Zi(g,R.substring(1));Y!==null&&(S=`${O}${s0}{new params_str{DDE_APPLOG_SIZE_PARAMS};sprintf(params_str,_,${M});DDE_applog_write(${Y}, ${W}, params_str, __applog_src_id);}`)}else if(N=aa.exec(P)){let[,O,s0,R,g]=N,{priority:M,code:Y}=Zi(g,R.substring(1));M!==null&&(S=`${O}${s0}DDE_applog_write(${M}, ${Y}, "", __applog_src_id);`)}else if(N=oa.exec(P)){let[,O,s0,R,g]=N,M=R.substring(1),Y=Fa[M];S=`${O}${s0}{ if(_log_level <= ${Y}){ sprintf(_log_string,_,${g.replace(/%%/g,"\xFF")}); _log${R}(__refid,__line); }}`}else(N=xE.exec(P))&&!F.includes(e0.filePaths.studio.auto.path)?(F.includes(e0.filePaths.studio.libdeps)||n.push({file:t,level:"warning",line:k,message:"Libraries are included automatically - remove this #include line"}),S="// Libraries are included automatically! - "+P):(N=AE.exec(P))&&(n.push({file:t,level:"error",line:k,message:"#endinput is not supported - use #if/#endif instead"}),S=P);f&&!r.legacyProject&&(rE.exec(P)&&(S=S.replaceAll("DDE_",`_${f}`)),tE.exec(P)&&(S=S.replace("onUplink",`_${f}`)),nE.exec(P)&&(S=S.replace("onUplink",`_${f}Uplink`))),D.push(S),_++;for(let O=0;O<L;O++)D.push(""),_++,k++}if(c!=="main.dlo"){let k=c.split(".")[0].replace(/[^a-zA-Z0-9]/g,"_"),S=`_inc_${k}`.substring(0,31),P=`_inc_${k}_inc`.substring(0,31);D.push(`#if defined ${S}`),D.push(`#undef ${S}`),D.push("#endif"),D.push(`#if defined ${P}`),D.push(`#undef ${P}`),D.push("#endif")}return{data:D.join(`
1660
+ `),diagnostics:n}}};var LA=require("vscode-uri");var $0=cx(require("fs")),rx=require("vscode-uri");var ca=cx(require("iconv-lite")),oE=m0.convertBlobToStringArray,Ba=16384,Ca=511,zn=Ba|Ca,FE=32768,vE=438,fa=FE|vE,fE=new Br,Cr={};function da(){let A=[];for(let x of Object.keys(Cr))A.push(...Cr[x].diagnostics);return A}var Tt=!!process.env.DLO_PROFILE,ZA={precompileCount:0,cacheHits:0,precompileMs:0};function Da(A){Tt&&(A.log(`[DLO_PROFILE] precompile: ${ZA.precompileCount} runs, ${ZA.cacheHits} cache hits, ${ZA.precompileMs.toFixed(1)}ms`),ZA.precompileCount=0,ZA.cacheHits=0,ZA.precompileMs=0)}var Kn=(A,x,e,r)=>{let t={getattr(n){let F=rx.Utils.joinPath(rx.URI.parse(n.mount.opts.root),A.getPath(n)),f=F.fsPath;if(!$0.existsSync(f))throw new A.ErrnoError(44);let c=la(x,r,e,F),D=$0.statSync(f),p=c?.length||D.size;return{mode:D.isDirectory()?zn:fa,size:p,atime:D.atime,mtime:D.mtime,ctime:D.ctime}},setattr(n,F){let f=rx.Utils.joinPath(rx.URI.parse(n.mount.opts.root),A.getPath(n)).fsPath;if(!$0.existsSync(f))throw new A.ErrnoError(44);if(typeof F.size=="number"&&$0.truncateSync(f,F.size),typeof F.mode=="number"&&$0.chmodSync(f,F.mode),F.atime||F.mtime){let c=$0.statSync(f);$0.utimesSync(f,F.atime??c.atime,F.mtime??c.mtime)}},lookup(n,F){let c=rx.Utils.joinPath(rx.URI.parse(n.mount.opts.root),A.getPath(n),F).fsPath;if(!$0.existsSync(c))throw new A.ErrnoError(44);let D=$0.statSync(c),p=A.createNode(n,F,D.isDirectory()?zn:fa,0);return p.node_ops=n.node_ops,p.stream_ops=n.stream_ops,p},readdir(n){let F=rx.Utils.joinPath(rx.URI.parse(n.mount.opts.root),A.getPath(n)).fsPath;return[".","..",...$0.readdirSync(F)]},mknod(n,F,f,c){let D=rx.Utils.joinPath(rx.URI.parse(n.mount.opts.root),A.getPath(n),F).fsPath;$0.writeFileSync(D,"");let p=A.createNode(n,F,f,c);return p.node_ops=n.node_ops,p.stream_ops=n.stream_ops,p},unlink(n,F){let f=rx.Utils.joinPath(rx.URI.parse(n.mount.opts.root),A.getPath(n),F).fsPath;$0.unlinkSync(f)},mkdir(n,F,f){let c=rx.Utils.joinPath(rx.URI.parse(n.mount.opts.root),A.getPath(n),F).fsPath;$0.mkdirSync(c,{mode:f});let D=A.createNode(n,F,f|zn,0);return D.node_ops=n.node_ops,D.stream_ops=n.stream_ops,D},rmdir(n,F){let f=rx.Utils.joinPath(rx.URI.parse(n.mount.opts.root),A.getPath(n),F).fsPath;$0.rmdirSync(f)},rename(n,F,f){let c=rx.Utils.joinPath(rx.URI.parse(n.mount.opts.root),A.getPath(n)).fsPath,D=rx.Utils.joinPath(rx.URI.parse(F.mount.opts.root),A.getPath(F),f).fsPath;$0.renameSync(c,D)}},s={open(n){let F=rx.Utils.joinPath(rx.URI.parse(n.node.mount.opts.root),A.getPath(n.node));n.modifiedContent=la(x,r,e,F),n.modifiedContent||(n.nfd=$0.openSync(F.fsPath,Ea(n.flags)))},close(n){n.nfd&&$0.closeSync(n.nfd)},read(n,F,f,c,D){if(!n.modifiedContent)return $0.readSync(n.nfd,F,f,c,D);let p=n.modifiedContent;if(D>=p.length)return 0;let j=p.length-D,_=Math.min(c,j);return EE(p,F,f,D,D+_),_},write(n,F,f,c,D){return $0.writeSync(n.nfd,F,f,c,D)},flagsToMode:Ea,llseek(n,F,f){let c=F;if(f===1)c+=n.position;else if(f===2){let D=$0.fstatSync(n.nfd);c+=D.size}if(c<0)throw new A.ErrnoError(28);return n.position=c,c}};return{mount(){let n=xe(x),F=A.createNode(null,n,Ba|Ca,0);return F.node_ops=t,F.stream_ops=s,F},node_ops:t,stream_ops:s}};function Ea(A){let x=A&2097155;if(x===0)return"r";if(x===1)return"r+";if(x===65)return"w";if(x===577)return"w+";if(x===1089)return"a";if(x===1217)return"a+";throw new Error(`Unknown file open flags: ${A}`)}function EE(A,x,e,r,t){if(Buffer.isBuffer(A)&&Buffer.isBuffer(x))A.copy(x,e,r,t);else{let s=A.subarray(r,t);Buffer.isBuffer(x)?Uint8Array.prototype.set.call(x,s,e):x.set(s,e)}}function la(A,x,e,r){let t=r.fsPath;if(!t.endsWith(".dlo")&&!t.endsWith(".inc"))return;let s=lE(t);if(!s){delete Cr[t];return}let n=Cr[t];if(n&&n.mtimeMs===s.mtimeMs&&n.size===s.size)return Tt&&ZA.cacheHits++,n.buffer;let F=Tt?performance.now():0,f=cE(A,x,e,r);return Tt&&(ZA.precompileCount++,ZA.precompileMs+=performance.now()-F),Cr[t]={buffer:f.buffer,mtimeMs:s.mtimeMs,size:s.size,diagnostics:f.diagnostics},Cr[t].buffer}function lE(A){try{return $0.statSync(A)}catch{return null}}function cE(A,x,e,r){let t=$0.readFileSync(r.fsPath),s=oE(t),n=fE.preCompileDloFile(A,x,e,r,s);return{buffer:ca.encode(n.data,"cp1252"),diagnostics:n.diagnostics}}function xe(A){return A.fsPath.replace(/\\/g,"/")}function Zr(A,x){let e=xe(A);return xe(x).replace(e,"")}var ya=ga(),At=ya.createPawnCC,ka=ya.createPawnDbg;var dr=class{constructor(x,e,r){this.cwd=x;this.fs=e;this.logger=r;this.dloCC=null}cwd;fs;logger;dloCC;stdout=[];stderr=[];async initDloCC(x=!1){this.stdout.length=0,this.stderr.length=0,this.dloCC=await At({noExitRuntime:x,print:n=>{let F=Jn(this.cwd,n);this.logger.log(F?F.message:n),this.stdout.push(n)},printErr:n=>{let F=Jn(this.cwd,n);n.includes(": warning")?this.logger.warn(F?F.message:n):this.logger.error(F?F.message:n),this.stderr.push(n),this.stdout.push(n)}});let e=xe(this.cwd),[r]=e.split("/"),t=this.dloCC.FS,s=await J.read(this.cwd,this.fs);t.filesystems.NODEFS_TS=Kn(t,this.cwd,s,this.logger),t.mkdir(r),t.mount(t.filesystems.NODEFS_TS,{root:"/"},r),t.chdir(xe(this.cwd))}async compile(x,e){let r=await J.read(x,e);if(!await J.isApmPartEnabled(x,e,j0.Part.dlo,r))return this.logger.log("DLO not enabled. Skipped."),{code:0,stdout:[],stderr:[],diagnostics:[]};await this.initDloCC(),await e.mkdir(LA.Utils.joinPath(x,"dist/dlo"));let t=LA.Utils.joinPath(x,r.dlo?.mainFile||e0.filePaths.dlo.mainDLO),s=[],n=LA.Utils.joinPath(x,e0.filePaths.studio.auto.dlo.cfg),F=Zr(x,n);s.push(`-T.${F}`);let f=0;try{let c=`.${Zr(x,t)}`;f=await this.dloCC.callMain([c,...s])}catch(c){this.logger.error(c)}return{code:f,stdout:this.stdout,stderr:this.stderr,diagnostics:[...da(),...Vn(x,this.stderr,t)]}}async getDloSymbols(x,e){let r=e.map(D=>{let p=D.substring(0,2);return["-D","-e","-i","-o","-p","-r","-T"].includes(p)?`${p}.${D.substring(2)}`:D}),t=!!process.env.DLO_PROFILE,s=t?performance.now():0,{compiler:n,print:F}=await this.getSymbolCompiler(),f=t?performance.now()-s:0,c=t?performance.now():0;try{if(await n.callMain(["."+x,...r,"-R"]))return null}catch(D){if(D.stack?.startsWith("RuntimeError"))return null;throw D}finally{if(t){let D=performance.now()-c;this.logger.log(`[DLO_PROFILE] instantiate: ${f.toFixed(1)}ms, callMain: ${D.toFixed(1)}ms`),Da(this.logger)}}return[...F.stdout,...F.stderr]}async getSymbolCompiler(){let x={stdout:[],stderr:[]},e=await At({noExitRuntime:!1,print:F=>{x.stdout.push(F)},printErr:F=>{x.stderr.push(F)}}),r=xe(this.cwd),[t]=r.split("/"),s=e.FS,n=await J.read(this.cwd,this.fs);return s.filesystems.NODEFS_TS=Kn(s,this.cwd,n,this.logger),s.mkdir(t),s.mount(s.filesystems.NODEFS_TS,{root:"/"},t),{compiler:e,print:x}}};function Vn(A,x,e){let r=[],t=x.filter(s=>!!s.trim());for(let s of t){if((s.includes("Assertion failed:")||s.includes("Compilation aborted."))&&e){r.push({file:e,level:"error",line:0,message:s});continue}let n=Jn(A,s);n&&r.push({file:LA.URI.parse(`file:///${n?.posixPath}`),level:n.level,line:Number(n.lineNumber)-1,message:n.msg})}return r}function Jn(A,x){let e=x.indexOf(" : "),r=x.indexOf(": ",e+3),t=x.substring(0,e).trim(),s=x.substring(e+3,r).trim(),n=x.substring(r+2).trim();if(!t||!s||!n)return null;let[F,f]=t.split(/[()(-)]/),c=s.split(" "),D=c[c.length-2],j=LA.Utils.joinPath(A,F).fsPath.replace(/\\/g,"/");j.startsWith("/")&&(j=j.substring(1));let _=x.replace(F,j);return{level:D,msg:n,posixPath:j,lineNumber:f,message:_}}async function _a(A,x,e){let r=["-M","-v2"],t=LA.Utils.joinPath(A,e0.filePaths.studio.auto.dlo.defaultInc);r.push(`-p.${Zr(A,t)}`);let s=await Q0.getApmPartDependencies(A,x,j0.Part.dlo);for(let F of s){let f=LA.Utils.dirname(F.path);r.push(`-i.${Zr(A,f)}`)}let n=e.dlo;return n&&r.push(...n.compileOptions),r.push("-o./dist/dlo/main.amx"),{path:LA.Utils.joinPath(A,e0.filePaths.studio.auto.dlo.cfg),data:r.join(`
1661
+ `)}}var et;(f=>{f.createPawnCC=At,f.createPawnDbg=ka,f.FileSequencer=cr,f.PreCompiler=Br,f.Compiler=dr,f.uriToMemFs=xe,f.parseCompilerWarningsAndErrors=Vn;async function F(c,D,p){let j=await J.read(c,D),_=await _a(c,D,j);await D.writeFile(_.path,_.data),p.log("Generated",e0.filePaths.studio.auto.dlo.cfg)}f.exportDloConfig=F})(et||={});var Wn=require("vscode-uri");var Sa=cx(require("node:child_process"));var Nt;(e=>{async function A(r,t,s){let n=await J.read(r,t);if(await J.isApmPartEnabled(r,t,j0.Part.pov)){s.info("Executing POV build script",n.pov?.details.buildCommand);let{buildCommand:F,workingPath:f}=n.pov.details,c=Wn.Utils.joinPath(r,f);try{await wa(c,F,s)}catch(D){throw D.code?new Error(`APM part '${j0.Part.pov}' has errors. Aborted.`):D}}}e.tryBuildPov=A;async function x(r,t,s){let n=await J.read(r,t);if(await J.isApmPartEnabled(r,t,j0.Part.blo,n)){s.info("Executing BLO build script",n.blo?.buildCommand);let{buildCommand:F,workingPath:f}=n.blo,c=Wn.Utils.joinPath(r,f);try{await wa(c,F,s)}catch(D){throw D.code?new Error(`APM part '${j0.Part.blo}' has errors. Aborted.`):D}}}e.tryBuildBlo=x})(Nt||={});async function wa(A,x,e){return new Promise((r,t)=>{Sa.exec(x,{cwd:A.fsPath,env:process.env},(s,n,F)=>{e.log(n),F&&e.error(F),s&&t(s),r(null)})})}var qa=require("vscode-uri");var Yn=require("minimatch");var Pa=require("@gera2ld/tarjs"),wE=m0.convertBlobToString,SE=require("pako"),Ta=".studioignore",Na=[".vscodeignore","package-lock.json","npm-debug.log","yarn.lock","yarn-error.log","npm-shrinkwrap.json",".editorconfig",".npmrc",".yarnrc",".gitattributes","*.todo","tslint.yaml",".eslintrc*",".babelrc*",".prettierrc*",".cz-config.js",".commitlintrc*","webpack.config.js","ISSUE_TEMPLATE.md","CONTRIBUTING.md","PULL_REQUEST_TEMPLATE.md","CODE_OF_CONDUCT.md",".github",".travis.yml","appveyor.yml","**/.git","**/.git/**","**/*.vsix","**/.DS_Store","**/*.vsixmanifest","**/.vscode-test/**","**/.vscode-test-web/**"];Na.push("**/.studio/**","**/node_modules/**",Ta,"dist/defines.app.ts");var $a={dot:!0},Pe;(r=>{async function A(t,s){let n=new Pa.TarWriter;(await x(t,s)).forEach(c=>{n.addFile(c.name,c.data)});let f=await n.write();return SE.gzip(await f.arrayBuffer())}r.createArchive=A;async function x(t,s){let n=[],{ignore:F,negate:f}=await $E(t,s),D=(await s.findFiles(t,"**/*")).filter(({path:p})=>{let j=p.slice(t.path.length+1);return!F.some(_=>(0,Yn.minimatch)(j,_,$a))||f.some(_=>(0,Yn.minimatch)(j,_.slice(1),$a))});for(let p of D){let j=p.path.slice(t.path.length+1),[_,k]=await Promise.all([s.stat(p),s.readFile(p)]);_&&n.push({name:j,data:k,modifyTime:new Date(_.mtime)})}return n}r.getFilesForArchive=x;async function e(t,s,n,F=Bx.ENV.production){let{publisher:f,name:c,version:D}=s,p=await jx.readFilesFromTarGz(n,["CHANGELOG.md","README.md","studio.json"]),j={"CHANGELOG.md":await Xn(p["CHANGELOG.md"]),"README.md":await Xn(p["README.md"]),"studio.json":await Xn(p["studio.json"]),"library.tar.gz":n};return await ex.publishLibraryVersion(t,f,c,D,j,F)}r.publishPackage=e})(Pe||={});async function $E(A,x){let e=["!studio.json","!README.md"],t=(await qE(A,x)).split(/[\n\r]/).map(c=>c.trim()).filter(c=>!!c).filter(c=>!/^\s*#/.test(c)),s=[...t,...t.filter(c=>!/(^|\/)[^/]*\*[^/]*$/.test(c)).map(c=>/\/$/.test(c)?`${c}**`:`${c}/**`)],n=[...Na,...s,...e],[F,f]=n.reduce((c,D)=>/^\s*!/.test(D)?[c[0],[...c[1],D]]:[[...c[0],D],c[1]],[[],[]]);return{ignore:F,negate:f}}async function qE(A,x){let e=qa.Utils.joinPath(A,Ta);if(await x.stat(e)){let t=await x.readFile(e);return wE(t)}else return""}async function Xn(A){return new Uint8Array(await A.arrayBuffer())}var RA=require("vscode-uri");var Ce=require("yaml");var PE=m0.convertBlobToString,It=m0.yamlRangeToLineInformation,rt;(n=>{let A;(D=>(D.static="static",D.dynamic="dynamic",D.appDynamic="app-dynamic"))(A=n.Type||={});let x;(p=>(p.crcStamp="crc_stamp",p.stampOnly="stamp_only",p.onlyDown="only_down",p.onlyUp="only_up"))(x=n.SyncLogic||={});let e;(D=>(D.down="down",D.up="up",D.off="off"))(e=n.Force||={});async function r(F,f,c){let{properties:D,diagnostics:p,libraryFiles:j}=await t(F,f),_=RA.Utils.joinPath(F,e0.filePaths.dist.dfilesPath);await f.stat(_)&&await f.rm(_);for(let[k,S]of Object.entries(D))await NE(F,f,k,S,j);return Object.keys(D).length&&(c.done(`${Object.keys(D).length} dfiles processed.`),await f.writeFile(RA.Utils.joinPath(F,e0.filePaths.dist.dfilesProperties),JSON.stringify(D,null," "))),p}n.process=r;async function t(F,f){let c=[],D={},p=await Q0.getApmPartDependencies(F,f,j0.Part.dfiles);for(let k of p){let{properties:S,diagnostics:P}=await s(f,k.path,k.name);Object.assign(D,S),c.push(...P)}let{properties:j,diagnostics:_}=await s(f,RA.Utils.joinPath(F,e0.filePaths.dfiles.mainDFILES),null);return Object.assign(D,j),c.push(..._),{properties:D,diagnostics:c,libraryFiles:p}}n.parseDfile=t;async function s(F,f,c){let D=[],p={};if(!await F.stat(f))return{properties:p,diagnostics:D};let j=await F.readFile(f),_=PE(j),k=new Ce.LineCounter,P=(0,Ce.parseDocument)(_,{lineCounter:k}).contents||new Ce.YAMLMap;for(let N of P.items){let L=N.key.value,O=(0,Ce.isMap)(N.value)?N.value:null,s0=It(k,N.key.range),R=O?O.has("syncMode"):!1,g=R?O.get("syncMode"):"crc_stamp";if(R){let z=Object.values(n.SyncLogic);if(!z.includes(g)){let i0=O.items.find(Z=>Z.key.value==="syncMode"),r0=It(k,i0.key.range);D.push({file:f,code:"",message:`Property syncMode does not match any of "${z.join(", ")}"`,line:r0.line,startCharacter:r0.startCharacter,endCharacter:r0.endCharacter,level:"error"})}}else D.push({file:f,code:"",message:'Property "syncMode" missing',line:s0.line,startCharacter:s0.startCharacter,endCharacter:s0.endCharacter,level:"error"});let M=O?O.has("type"):!1,Y=M?O.get("type"):"static";if(M){let z=Object.values(n.Type);if(!z.includes(Y)){let i0=O.items.find(Z=>Z.key.value==="type"),r0=It(k,i0.key.range);D.push({file:f,code:"",message:`Property type does not match any of "${z.join(", ")}"`,line:r0.line,startCharacter:r0.startCharacter,endCharacter:r0.endCharacter,level:"error"})}}L.match(/^[a-z0-9._-]*$/)||D.push({file:f,code:"",message:'Filename does not match pattern "a-z0-9._-"',line:s0.line,startCharacter:s0.startCharacter,endCharacter:s0.endCharacter,level:"error"});let W=RA.Utils.joinPath(RA.Utils.dirname(f),L),H=await TE(F,W);if(H)p[L]={crc:H.crc,force:"off",readable:!1,size:H.size,stamp:H.stamp,sync_logic:g,type:Y,library:c};else{let z=It(k,N.key.range);D.push({file:f,code:"",message:`Could not find file "${L}"`,line:z.line,startCharacter:z.startCharacter,endCharacter:z.endCharacter,level:"error"})}}return{properties:p,diagnostics:D}}n.parseYamlFile=s})(rt||={});async function TE(A,x){let e=await A.stat(x);if(!e)return null;let r=await A.readFile(x);return{size:e.size,stamp:Math.trunc(e.ctime),crc:m0.generateCRC32ForFileContent(r)}}async function NE(A,x,e,r,t){let n=r.library!==null?RA.Utils.dirname(t.find(c=>c.name===r.library).path):RA.Utils.joinPath(A,e0.filePaths.dfiles.path),F=RA.Utils.joinPath(A,e0.filePaths.dist.dfilesPath,e),f=RA.Utils.joinPath(n,e);await x.copy(f,F)}var Qn=require("vscode-uri");var Ia=cx(require("semver")),IE="package.json",ME=["peerDependencies","dependencies","optionalDependencies"],LE=" ",Dr;(r=>{r.PART_DIST_PATHS=[e0.filePaths.dist.bloPath,e0.filePaths.dist.povDetailsPath];async function x(t,s,n,F){let f=Qn.Utils.joinPath(t,IE),c=`${n.name}/${zE(t)}`;if(!await s.stat(f))return!1;let p=await RE(s,f,c,F);if(!p)return!1;let j=p.pkg;if(typeof j!="object"||j===null||Array.isArray(j))return F.warn(`"${c}/package.json" does not contain a JSON object - skipped normalizing it.`),!1;if(!Ia.valid(n.version))return F.warn(`Library manifest version "${n.version}" is not a valid semantic version - skipped normalizing "${c}/package.json".`),!1;OE(j,n,c,F);let _=GE(j,n.version);j=_.pkg;let k=_.changed;k&&F.warn(`Patched version "${_.oldVersion??"<none>"}" -> "${n.version}" in "${c}/package.json" (studio.json is the source of truth).`);let S=HE(n);if(UE(j,S,c,F)&&(k=!0),!k)return!1;let P=KE(p.raw),N=p.raw.endsWith(`
1662
+ `),L=JSON.stringify(j,null,P)+(N?`
1663
+ `:"");try{await s.writeFile(f,L)}catch(O){return F.warn(`Could not write "${c}/package.json": ${O}`),!1}return!0}r.normalizePartPackageJson=x;async function e(t,s,n,F){for(let f of r.PART_DIST_PATHS){let c=Qn.Utils.joinPath(t,f);await x(c,s,n,F)}}r.normalizeLibraryParts=e})(Dr||={});async function RE(A,x,e,r){try{let t=await A.readFile(x),s=m0.convertBlobToString(t),n=JSON.parse(s);return{raw:s,pkg:n}}catch(t){return r.warn(`Could not read/parse "${e}/package.json": ${t}`),null}}function OE(A,x,e,r){A.name!==void 0&&A.name!==x.name&&r.warn(`"${e}/package.json" name "${A.name}" does not match library name "${x.name}".`)}function GE(A,x){if(A.version===x)return{pkg:A,changed:!1,oldVersion:A.version};let e=A.version;if(A.version===void 0&&Object.hasOwn(A,"name")){let{name:r,...t}=A;A={name:r,version:x,...t}}else A.version=x;return{pkg:A,changed:!0,oldVersion:e}}function UE(A,x,e,r){let t=!1;for(let s of ME){let n=A[s];if(!n)continue;let F=!1;for(let f of Object.keys(n)){if(!x.has(f))continue;let c=n[f];if(typeof c!="string"||c.startsWith("npm:")||c.includes("://")){r.warn(`Left "${f}" in ${s} of ${e}/package.json untouched - its value "${c}" does not look like a Studio library reference.`);continue}delete n[f],F=!0,t=!0,r.warn(`Removed "${f}" from ${s} of ${e}/package.json - Studio libraries must be declared in studio.json "libraryDependencies" (npm ranges never match prereleases across minor versions).`)}F&&Object.keys(n).length===0&&delete A[s]}return t}function HE(A){let x=[...Object.keys(A.libraryDependencies||{}),...Object.keys(A.libraryDevDependencies||{})];return new Set(x.map(e=>e.split("/")[1]))}function zE(A){let x=A.path.replace(/\\/g,"/");for(let e of Dr.PART_DIST_PATHS)if(x===e||x.endsWith(`/${e}`))return e;return x}function KE(A){let x=A.match(/^\{\r?\n([ \t]+)/);return x?x[1].startsWith(" ")?" ":x[1]:LE}var tt=require("@gera2ld/tarjs"),Ma=m0.convertBlobToString,Zn=require("pako"),jx;(p=>{class A extends Error{_mergedDiagnostics;constructor(_,k){super(_),this.name="BuildError",this._mergedDiagnostics=k}get mergedDiagnostics(){return this._mergedDiagnostics}}p.BuildError=A;async function x(j,_,k,S,P,N=!0,L){N=JE(k,N),await VE(j,_,k,S,P,N);try{let R=await Bx.read(j,_,k);await WE(j,_,k,R)}catch(R){k.warn("Could not generate defines.ts:",R)}let O={[j0.Part.dde]:[],[j0.Part.dlo]:[],[j0.Part.dfiles]:[]},s0={[j0.Part.dde]:XE,[j0.Part.dlo]:YE,[j0.Part.dfiles]:QE};try{for(let R of[j0.Part.dde,j0.Part.dlo,j0.Part.dfiles])if(N.includes(R)&&(k.info(`Building ${R.toUpperCase()}...`),await el(k,R,s0[R],O[R],j,_)))return O}catch(R){throw L?new A(R?.message,O):R}return N.includes(j0.Part.pov)?await Nt.tryBuildPov(j,_,k):k.info("Skipping pov build"),N.includes(j0.Part.blo)?await Nt.tryBuildBlo(j,_,k):k.info("Skipping blo build"),await ZE(j,_,k),await xl(j,_,k),k.done("Project build completed."),O}p.buildAll=x;async function e(j,_,k,S,P,N,L){let O=await J.read(j,_);return J.isLibrary(O)?(k.info("Library project detected. Publishing library..."),s(j,_,k,P,S)):(k.info("App project detected. Publishing app..."),t(j,_,k,P,N,L,S))}p.release=e;async function r(j,_,k,S,P,N){let L=await J.read(j,_),O=`${L.name}-${L.version}.tar.gz`,s0=null;if(J.isLibrary(L))k.info("Library project detected. Packing library..."),s0=await La(j,_,k,P,S);else{k.info("App project detected. Packing app...");let g=await Ra(j,_,k,P,N,S);s0=await tl(g)}let R=Te.Utils.joinPath(j,O);s0!==null?(await _.writeFile(R,s0),k.done(`Packaged: ${R.fsPath}`)):k.error(`Could not create archive: ${R.fsPath}`)}p.pack=r;async function t(j,_,k,S,P,N=null,L){if(!await j0.validateAccess(j,_,S,!1,L))throw new Error("Could not validate access to application");let s0=await Ra(j,_,k,S,P,L);await j0.updateProfile(j,_,S,L);let R=await j0.publishTag(j,_,S,s0,L);if(N!==null){let g=await J.read(j,_);await ex.updateExistingApplicationVersion(S,g.publisher,g.registry?.id,g.version,{allowedBackends:N},L),k.info(`Tag "${R.version}" with phase "${R.phase}" shared with ${[...N].join(";")}!`)}k.done(`Tag "${R.version}" with phase "${R.phase}" published!`)}p.releaseAPM=t;async function s(j,_,k,S,P){let N=await J.read(j,_),L=await La(j,_,k,S,P);await Pe.publishPackage(S,N,L,P),k.done(`Library "${N.publisher}/${N.name}" with version "${N.version}" published!`)}p.releaseLibrary=s;async function n(j,_,k,S,P,N,L,O=null){if(N==="*"){let H=await J.read(j,_);N=`${H.name}-${H.version}.tar.gz`,k.info(`Publishing detected archive package "${N}"...`)}let s0=Te.Utils.joinPath(j,N);if(!await _.stat(s0))throw new Error(`Archive package not found: ${s0.fsPath}`);let R=await _.readFile(s0),g=await nl(R),{publisher:M,registry:Y,version:W}=g;J.isLibrary(g)?(await Pe.publishPackage(S,g,R,P),k.done(`Library "${M}/${g.name}" with version "${g.version}" published!`)):(await ex.updateApplicationFile(S,M,Y.id,W,"app.tar.gz",R,P),await ex.updateExistingApplicationVersion(S,M,Y?.id,W,{allowedBackends:O||void 0,phase:L||void 0},P),k.info(`Tag "${W}" with phase "${L}" shared with ${[...O||""].join(";")}!`),k.done(`Tag "${W}" with phase "${L}" published!`))}p.publishArchive=n;async function F(j,_,k){let S;try{S=await _.readFile(Te.Utils.joinPath(j,"README.md"))}catch{throw new Error('Could not find "README.md". "README.md" is required for publishing.')}if(Ma(S)===e0.readme(k))throw new Error('"README.md" matches the default template. Please write a brief project description.');return S}p.getReadmeFile=F;async function f(j,_){let k;try{k=await _.readFile(Te.Utils.joinPath(j,"CHANGELOG.md"))}catch{throw new Error('Could not find "CHANGELOG.md". "CHANGELOG.md" is required for publishing.')}if(Ma(k)===e0.changelog)throw new Error('"CHANGELOG.md" matches the default template.');return k}p.getChangelogFile=f;async function c(j,_,k,S){let P=await J.read(j,_),{name:N,publisher:L,description:O}=P,s0=J.validateProjectName(N,J.isLibrary(P));if(s0)throw new Error(`name: ${s0}`);let R=J.validateDescription(O);if(R)throw new Error(`description: ${R}`);let g=J.validatePublisherId(L)||await J.validatePublisherOnline(k,L,S);if(g)throw new Error(`publisher: ${g}`);if(!J.isLibrary(P)&&(await J.validateApplicationIcon(j,_,P),J.validateEngineSettings(P),J.isApp(P)&&await J.isApmPartEnabled(j,_,j0.Part.dlo,P)&&(!P.dpid||!Object.values(J.DeviceProfiles).includes(P.dpid))))throw new Error("dpid: The device profile is needed to compile a dlo")}p.validatePublishSettings=c;async function D(j,_){let k=Zn.ungzip(j),S=await tt.TarReader.load(k),P={};for(let N of S.fileInfos)_.includes(N.name)&&(P[N.name]=S.getFileBlob(N.name));return P}p.readFilesFromTarGz=D})(jx||={});function JE(A,x){let e=Object.values(j0.Part);return x===!0?(A.info("Building project..."),e):x===!1?[]:x}async function VE(A,x,e,r,t,s){await Q0.validateMinimumBackendVersion(A,x,e),s.includes(j0.Part.dde)&&await vA.fetchPreviousHistoryJson(A,x,e,r,t)}async function WE(A,x,e,r){r.defaultsOnly?(await Bx.exportDefinesTs(A,x,r.defaultsOnly),e.log("Generated",e0.filePaths.dist.definesTs,"(defaults only)"),await Bx.exportDefinesTs(A,x,r,e0.filePaths.dist.definesAppTs),e.log("Generated",e0.filePaths.dist.definesAppTs,"(with app.ini overrides)")):(await Bx.exportDefinesTs(A,x,r),e.log("Generated",e0.filePaths.dist.definesTs))}async function XE(A,x,e){let r=await vA.compileDDE(A,x,e);if(r.ddeJSON){await vA.exportMyDatanetXML(A,x,e,r.ddeJSON);let t=await J.read(A,x);J.isLibrary(t)||await vA.exportHistoryJson(A,x,e,r.ddeJSON),await vA.exportOpenApi(A,x,e,r.ddeJSON),await J.isApmPartEnabled(A,x,j0.Part.dlo,t)&&(await vA.exportAutoDloFiles(A,x,e,r.ddeJSON),await et.exportDloConfig(A,x,e))}return r.diagnostics}async function YE(A,x,e){let r=new dr(A,x,e),{diagnostics:t}=await r.compile(A,x);return t}async function QE(A,x,e){return await rt.process(A,x,e)}async function ZE(A,x,e){let r=await J.read(A,x);J.isLibrary(r)&&await Dr.normalizeLibraryParts(A,x,r,e)}async function xl(A,x,e){let r=Te.Utils.joinPath(A,e0.fileNames.reportTemplate);if(await x.stat(r)){let t=Te.Utils.joinPath(A,e0.filePaths.dist.reportTemplate);await x.copy(r,t),e.log(`Copied "${e0.fileNames.reportTemplate}" to dist folder.`)}}function Al(A,x,e){x!==j0.Part.dlo&&rl(A,e);let r=e.some(t=>t.level==="error");if(r){let t=`APM part "${x}" has errors. Aborted.`;throw new Error(t)}return r}async function el(A,x,e,r,t,s){let n=await e(t,s,A);return r.push(...n),Al(A,x,n)}function rl(A,x){x.forEach(e=>{let r=e.startCharacter?`:${e.startCharacter+1}`:"",t=`${e.file.path}:${e.line+1}${r} - ${e.message}`;e.level==="error"?A.error(t):e.level==="warning"?A.warn(t):A.log(t)})}async function La(A,x,e,r,t){let s=await J.read(A,x);return await J.validateBasicManifest(A,x,s),await jx.buildAll(A,x,e,t,r),await Pe.createArchive(A,x)}async function Ra(A,x,e,r,t,s){if(!Object.values(j0.TagPhase).includes(t))throw new Error(`ReleasePhase: ${t} is not a valid release phase`);return await J.validateBasicManifest(A,x,null),await jx.buildAll(A,x,e,s,r),await j0.createTag(A,x,t)}async function tl(A){let x=new tt.TarWriter;for(let[r,t]of A.entries())if(r==="tag"){let s=t;x.addFile(r,s)}else{let s=t;x.addFile(r,await s.arrayBuffer())}let e=await x.write();return Zn.gzip(await e.arrayBuffer())}async function nl(A){let x=await sl(A,["studio.json","src/studio.json"]);if(!x)throw new Error('Could not find "studio.json" in archive');return JSON.parse(await x.text())}async function sl(A,x){let e=Zn.ungzip(A),r=await tt.TarReader.load(e);for(let t of r.fileInfos)if(x.includes(t.name))return r.getFileBlob(t.name);return null}var il=m0.bufferToBase64;var j0;(D=>{let A;(L=>(L.alpha="alpha",L.beta="beta",L.rc="rc",L.release="release",L.stage="stage",L.passive="passive",L.withdrawn="withdrawn"))(A=D.TagPhase||={});let x;(P=>(P.dde="dde",P.dlo="dlo",P.pov="pov",P.blo="blo",P.dfiles="dfiles"))(x=D.Part||={});function e(p){let{description:j,name:_,pov:k,engines:S,blo:P,publisher:N,type:L}=p,O=L||J.ProjectTypes.app,s0={name:_,abstract:j,author:N||"",pov_location:J.PovLocation.embedded,pov_details_lowlevel:!1,required_be:S?.backend,required_hwfw:S?.hwfw?.join(";"),required_productcode:S?.productId?.join(";"),blo_level:P?.accessLevel||J.BloAccessLevel.restricted,pip_id:""};return k&&k.details&&(s0.pov_location=J.PovLocation.pure,s0.pov_details_lowlevel=!!k.details.lowLevel),O==="addon"&&(s0.required_hwfw=void 0,s0.required_productcode=void 0,s0.addon_max_sources=1,s0.addon_max_per_site=p.maxInstancesPerSite),s0}D.createBaseTagHeader=e;async function r(p,j,_){let k=await J.read(p,j),S=e(k),P={version:k.version,...S,phase:_};return await s(p,j,k,P)}D.createTag=r;async function t(p,j){let _=await J.read(p,j),S={...e(_),blo_autostart:!1};return s(p,j,_,S)}D.createDevTag=t;async function s(p,j,_,k){let S=new FormData;S.append("tag",JSON.stringify(k)),S.append(`src/${J.fileName}`,new Blob([await J.readAsBlob(p,j)]));let P=new Blob([await j.readFile(Ae.Utils.joinPath(p,e0.filePaths.dist.ddeXmlPath))]);if(S.append("bin/dde/xml",P),_.icon){let L=await j.readFile(Ae.Utils.joinPath(p,_.icon)),O=il(L);S.append("previews/00.png",new Blob([`data:image/png;base64,${O}`]))}if(Object.hasOwn(k,"phase")){let L=await jx.getReadmeFile(p,j,k.name),O=await jx.getChangelogFile(p,j);S.append("previews/README.md",new Blob([L])),S.append("previews/CHANGELOG.md",new Blob([O]))}if(await J.isApmPartEnabled(p,j,"dlo")){let L=new Blob([await j.readFile(Ae.Utils.joinPath(p,e0.filePaths.dist.mainAmxPath))]);S.append("bin/dlo/amx",L)}if(await J.isApmPartEnabled(p,j,"pov",_)){await Oa(p,j,S,e0.filePaths.dist.povDetailsPath,"bin/pov/details");let L=new TextEncoder().encode('<!DOCTYPE html><html lang="en">');S.append("bin/pov/list/index.html",new Blob([L]))}let N=await j.findFiles(p,`${e0.filePaths.dist.dfilesPath}/*`);for(let L of N){let O=new Blob([await j.readFile(L)]);S.append(`bin/dfiles/${Ae.Utils.basename(L)}`,O)}return await J.isApmPartEnabled(p,j,"blo",_)&&await Oa(p,j,S,e0.filePaths.dist.bloPath,"bin/blo"),await al(p,j,S),S}D.createBuffer=s;async function n(p,j,_,k,S){let P=await J.read(p,j);k||await jx.validatePublishSettings(p,j,_,S);let{registry:N}=P,L=N?.id;if(!L&&!k&&(L=await F(p,j,_,P,S)),L){let{publisher:O}=P;if(!O)return null;try{return{id:L,...await ex.getExistingApplication(_,O,L,S)}}catch(s0){if(s0?.message==="Could not find given application")return L=await F(p,j,_,P,S),{id:L,...await ex.getExistingApplication(_,O,L,S)}}}return null}D.validateAccess=n;async function F(p,j,_,k,S){let P="myDatanet",{publisher:N,name:L,description:O,registry:s0}=k,R={id:s0?.id,type:k.type||J.ProjectTypes.app,name:L,targetSystem:P,description:O||"",allowedBackends:null};J.isAddon(k)&&(R.allowedApplications=null);let g=await ex.createNewApplication(_,N,R,S);if(!g)throw new Error("Failed to initialize application");return k.registry={id:g},await J.write(p,j,k),g}D.registerNew=F;async function f(p,j,_,k){let{name:S,publisher:P,description:N,registry:L}=await J.read(p,j),O=L?.id;await ex.updateExistingApplication(_,P,O,{description:N,name:S,targetSystem:"myDatanet"},k)}D.updateProfile=f;async function c(p,j,_,k,S){let{publisher:P,registry:N,version:L}=await J.read(p,j);return await ex.publishApplicationVersion(_,P,N?.id,L,k,S)}D.publishTag=c})(j0||={});async function Oa(A,x,e,r,t){let s=await x.findFiles(A,`${r}/**`);for(let n of s){let F=Ae.Utils.joinPath(A,r),f=n.path.substring(F.path.length+1),c=new Blob([await x.readFile(Ae.Utils.joinPath(A,`${r}/${f}`))]);e.append(`${t}/${f}`,c)}}async function al(A,x,e){let r=Ae.Utils.joinPath(A,e0.filePaths.dist.reportTemplate);if(await x.stat(r)){let s=new Blob([await x.readFile(r)]);e.append("bin/pov/mdn_report_template.json",s)}let t=Ae.Utils.joinPath(A,e0.filePaths.dist.historyJson);await x.stat(t)&&e.append("src/dde/history.json",new Blob([await x.readFile(t)]))}var Ja=require("deepmerge-ts"),ol=m0.isNumeric,Ga="52v007",Ua="53v001",Fl="54v001",vl="56v001",fA={_manifest:null,_stat:null,_overwrites:null,get manifest(){return(0,Ja.deepmerge)(structuredClone(this._manifest),fA._overwrites||{})},set manifest(A){this._manifest=A},set overwrites(A){this._overwrites=A},get stat(){return this._stat},set stat(A){this._stat=A},clear(){this._stat=null,this._manifest=null}},J;(n0=>{let A=m0.convertBlobToString;n0.fileName="studio.json";let e;(M0=>(M0.m22x="m22x",M0.m23x="m23x",M0.nrf91="nrf91",M0.m2blegw="m2blegw",M0.m2easyv3="m2easyv3",M0.m2easyiot="m2easyiot"))(e=n0.DeviceProfiles||={});let r;(d0=>(d0.app="app",d0.library="library",d0.addon="addon",d0.analytics="analytics"))(r=n0.ProjectTypes||={});let t;(v0=>(v0.restricted="restricted",v0.global="global"))(t=n0.BloAccessLevel||={});let s;(v0=>(v0.embedded="$embedded",v0.pure="$pure"))(s=n0.PovLocation||={});function n(U){fA.overwrites=U}n0.setOverwrites=n;function F(){fA.overwrites=null}n0.clearOverwrites=F;async function f(U,F0){let v0=ur.Utils.joinPath(U,n0.fileName),B0=await F0.stat(v0);if(fA.manifest===null||v0?.fsPath!==fA.stat?.path.fsPath||B0?.ctime!==fA.stat?.ctime||B0?.mtime!==fA.stat?.mtime||B0?.size!==fA.stat?.size){let d0=await F0.readFile(v0),q0=A(d0);fA.manifest=JSON.parse(q0),fA.stat={...B0,path:v0}}return fA.manifest}n0.read=f;async function c(U,F0){return await F0.readFile(ur.Utils.joinPath(U,n0.fileName))}n0.readAsBlob=c;async function D(U,F0){let v0=ur.Utils.joinPath(U,n0.fileName),B0=await F0.readFile(v0),d0=A(B0);return JSON.parse(d0)}n0.readRaw=D;async function p(U,F0,v0){return fA.clear(),dl(v0),F0.writeFile(ur.Utils.joinPath(U,n0.fileName),JSON.stringify(v0,null," "))}n0.write=p;function j(U){return U.library!==void 0?U.library:U.type==="library"}n0.isLibrary=j;function _(U){return U.type==="addon"}n0.isAddon=_;function k(U){return U.type===void 0&&!j(U)?!0:U.type==="app"}n0.isApp=k;function S(U){return U.type===void 0?!0:U.type==="app"}n0.isIotApp=S;function P(U){return U.type==="analytics"}n0.isAnalytics=P;async function N(U,F0,v0){v0||(v0=await f(U,F0)),Cl(v0),fl(v0),El(v0),Bl(v0)}n0.validateBasicManifest=N;function L(U){let F0="Library name can only contain 'a' through 'z', '0' through '9', '_' and '-'. The Library name must start with an alphabetic or numeric character.";if(U.match(/^[a-z0-9-_]+$/)){let B0=["-","_"];if(B0.includes(U[0])||B0.includes(U[U.length-1]))return F0}else return F0;return U.length<3||U.length>20?"The library name is beyond permissible length of 20 characters.":null}n0.validateLibraryName=L;function O(U,F0){if(F0)return L(U);{let v0="Project name can only contain 'A' through 'Z', 'a' through 'z', '0' through '9', ' ', '_' and '-'. The Project name must start with an alphabetic or numeric character.";if(!U.match(/^([a-zA-Z0-9 _-]+)$/))return v0;if(U.length<3||U.length>40)return"The project name is beyond permissible length of 40 characters.";let d0=["-","_"," "];return d0.includes(U[0])||d0.includes(U[U.length-1])?v0:null}}n0.validateProjectName=O;function s0(U){return U.length<5?"The description must have at least 5 characters.":null}n0.validateDescription=s0;function R(U){if(!U)return"No publisher set yet";let F0="Publisher can only contain 'A' through 'Z', 'a' through 'z', '0' through '9' and '-'. The Publisher start with an alphabetic or numeric character.";if(U.match(/^[a-zA-Z0-9-]+$/)){let B0=["_"];if(B0.includes(U[0])||B0.includes(U[U.length-1]))return F0}else return F0;return null}n0.validatePublisherId=R;async function g(U,F0,v0){return await ex.getPublisher(U,F0,v0)?null:`Publisher '${F0}' does not exist.`}n0.validatePublisherOnline=g;let M=/^(((?!-))(xn--)?[a-z0-9\-_]{0,61}[a-z0-9]{1,1}\.)*(xn--)?([a-z0-9-]{1,61}|[a-z0-9-]{1,30})\.[a-z]{2,}$/;async function Y(U){if(U===void 0)return"Allowed backends not specified yet";if(U===null)return null;if(Array.isArray(U)||U?.includes(";")){let F0=U?.includes(";")?U.split(";"):U;for(let v0 of F0)if(!v0.match(M))return`Domain "${v0}" is invalid`}else if(!U?.match(M)&&U!=="*")return'Invalid value for "allowedBackends"';return null}n0.validateRegistryAllowedBackends=Y;let W=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;async function H(U){if(U===void 0)return"Allowed applications not specified yet";if(U===null)return null;if(Array.isArray(U)||U?.includes(";")){let F0=U?.includes(";")?U.split(";"):U;for(let v0 of F0)if(!v0.match(W))return`Application id "${v0}" is invalid`}else if(!U?.match(W)&&U!=="*")return'Invalid value for "allowedApplications"';return null}n0.validateRegistryAllowedApplications=H;async function z(U,F0,v0){let B0=v0.icon;if(!B0)throw new Error("App icon is required for publishing an application!");let d0=ur.Utils.joinPath(U,B0);if(!await F0.stat(d0))throw new Error(`Could not load icon "${B0}"`);let M0=await F0.readFile(d0),ox=(0,Ha.imageDimensionsFromData)(M0);if(!ox)throw new Error("App icon could not be validated!");if(ox?.width!==ox?.height)throw new Error("App icon has to be a square!");if(ox.width>512||ox.width<75)throw new Error("App icon size should be between 75px and 512px!");if(!(0,za.isPNG)(M0))throw new Error("App icon has to be of type PNG!")}n0.validateApplicationIcon=z;function i0(U){let{engines:F0}=U;if(F0?.backend&&!F0.backend.match(/(^[5-9][2-9]|[6-9]\d+|\d{3,})v(0(0[0-9]|[1-9]\d)|[1-9]\d{2}|[1-9]\d{3,})$/))throw new Error('Setting "engines.backend" is invalid');ll(U),cl(U)}n0.validateEngineSettings=i0;function r0(U,F0){let v0=q0=>{let M0=/^(\d+)v(\d+)$/.exec(q0);return M0?[Number(M0[1]),Number(M0[2])]:null},B0=v0(U),d0=v0(F0);return B0&&d0?B0[0]-d0[0]||B0[1]-d0[1]:U===F0?0:U<F0?-1:1}n0.compareBackendVersion=r0;async function Z(U,F0,v0,B0){B0||(B0=await n0.read(U,F0));let d0=n0.isAddon(B0),q0=n0.isAnalytics(B0);switch(v0){case j0.Part.dlo:return!!B0?.dlo?.mainFile&&!d0&&!q0;case j0.Part.blo:return!!(B0.blo?.buildCommand&&B0.blo?.workingPath);case j0.Part.pov:return!!(B0.pov?.details?.buildCommand&&B0.pov.details.workingPath);case j0.Part.dde:case j0.Part.dfiles:return!0;default:return!1}}n0.isApmPartEnabled=Z})(J||={});function fl(A){let{pov:x}=A;if(x&&x.details){if(!Object.hasOwn(x.details,"buildCommand"))throw new Error('Setting "pov.details.buildCommand" missing!');if(!Object.hasOwn(x.details,"workingPath"))throw new Error('Setting "pov.details.workingPath" missing!')}}function El(A){let{blo:x}=A;if(x){if(!Object.hasOwn(x,"buildCommand"))throw new Error('Setting "blo.buildCommand" missing!');if(!Object.hasOwn(x,"workingPath"))throw new Error('Setting "blo.workingPath" missing!');if(x.accessLevel&&!["restricted","global"].includes(x.accessLevel))throw new Error('Only "restricted" or "global" are allowed as value for "blo.accessLevel"!')}}function ll(A){let{backend:x,productId:e,hwfw:r}=A.engines;if(J.isAddon(A)&&(e||r))throw new Error('For project type "addon", "engines.hwfw" or "engines.productId" is not allowed!"');if(x&&x>=Ga){if(r&&e)throw new Error('Only "engines.hwfw" or "engines.productId" is allowed!"')}else if(e)throw new Error(`"engines.productId" requires "engines.backend" to be "${Ga}"`)}function cl(A){if(!J.isAddon(A)&&!J.isAnalytics(A))return;let{backend:x}=A.engines,e=J.isAddon(A)?Fl:vl;if(!x||x<e)throw new Error(`Project type "${A.type}" requires "engines.backend" to be ">=${e}"`);if(A.dlo)throw new Error(`For project type "${A.type}", "dlo" is not supported!"`);if(A.dpid)throw new Error(`For project type "${A.type}", "dpid" is not supported!"`)}function Bl(A){let{maxInstancesPerSite:x}=A;if(x===void 0){if(J.isAddon(A))throw new Error('Property "maxInstancesPerSite" is required for addon projects!');return}if(!J.isAddon(A))throw new Error('Property "maxInstancesPerSite" is only allowed for addon projects!');if(!Number.isInteger(x))throw new Error('Property "maxInstancesPerSite" must be an integer!');if(x<1||x>100)throw new Error('Property "maxInstancesPerSite" must be between 1 and 100!')}function Cl(A){if((A.engines?.backend||"00v000")>=Ua||J.isLibrary(A)){if(!Ka.default.valid(A.version))throw new Error(`From "engines.backend" version >= ${Ua} onwards "version" has to be a semantic version string!"`)}else if(!ol(A.version))throw new Error('"version" has to be a number!')}function dl(A){A.registry&&(delete A.registry.allowedBackends,delete A.registry.target)}var OA=cx(require("semver"));var Ya=cx(require("node:child_process")),Qa=require("minimatch");var Dl=require("tinytar-fix"),ul=require("pako"),ee=".studio/libdeps",nt="package.json",pl="package-lock.json";function Va(A){return[...Object.keys(A.libraryDependencies||{}),...Object.keys(A.libraryDevDependencies||{})].map(Q0.dependencyIdToName)}async function bl(A,x,e,r){let t=Dx.Utils.joinPath(A,ee,r);try{return await x.stat(Dx.Utils.joinPath(t,J.fileName))?await J.readRaw(t,x):null}catch(s){return e.warn(`Could not read manifest for library "${r}": ${s}`),null}}async function ml(A,x,e,r){let t=new Set,s=Va(r),n=null;for(;s.length>0;){let F=s.shift();if(t.has(F))continue;t.add(F);let f=await bl(A,x,e,F);if(!f)continue;let c=f.engines?.backend;c&&(!n||J.compareBackendVersion(c,n.backend)>0)&&(n={backend:c,requiredBy:`${f.publisher}/${f.name}`}),s.push(...Va(f))}return n}var Q0;(R=>{async function A(g,M=!1){let Y=g.libraryDependencies||{};return M||Object.assign(Y,g.libraryDevDependencies||{}),Y}R.getAll=A;function x(g){return g.split("/")[1]}R.dependencyIdToName=x;function e(g,M){let Y=x(M);return Dx.Utils.joinPath(g,ee,Y)}R.dependencyToPath=e;function r(g){return isNaN(g.split("")[0])?g.substring(1):g}R.rangeToVersion=r;function t(g,M,Y){if(!OA.satisfies(M,Y,{includePrerelease:!0}))throw new Error(`${g}, version ${M} does not satisfy required constraint ${Y}`)}R.satisfiesSemverRange=t;async function s(g,M,Y={},W=!1){let H=await J.read(g,M),z=H.libraryDependencies||{};W&&Object.assign(z,H.libraryDevDependencies);let i0=Object.keys(Y);for(let r0 of i0)if(Object.hasOwn(z,r0)){let Z=Y[r0],n0=z[r0],U=r(Z),F0=r(n0),v0=OA.compare(U,F0);v0===1?(z[r0]=Z,t(r0,U,n0)):v0===-1&&(z[r0]=n0,t(r0,F0,Z))}else z[r0]=Y[r0];return z}R.validateDependencyTree=s;async function n(g,M,Y,W,H){let z=r(H),i0=Dx.Utils.joinPath(g,ee,W);try{let r0=await J.read(i0,M);return OA.gte(r0.version,z)&&r0.publisher.toLowerCase()===Y.toLowerCase()}catch{return!1}}R.isDependencyInstalled=n;async function F(g,M,Y,W){let H=Dx.Utils.joinPath(g,ee,W);await M.rm(H).catch(z=>{Y.error("removeExisting",z)})}R.removeExisting=F;async function f(g,M,Y,W,H){let z=Dl.untar(ul.ungzip(H));await F(g,M,Y,W);for(let i0 of z.values())try{let r0=Dx.Utils.joinPath(g,ee,W,i0.name);await M.writeFile(r0,i0.data)}catch(r0){Y.error("Extracting lib",r0)}}R.extractLibraryContent=f;async function c(g,M,Y,W,H,z,i0,r0=!1){let[Z,n0]=z.split("/");if(i0&&await n(g,M,Z,n0,i0))return;await F(g,M,Y,n0);let U=await ex.getLibraryProfile(H,Z,n0,W),F0=i0?U.versions?.find(Z0=>OA.eq(Z0.name,R.rangeToVersion(i0))):U.versions[0];if(!F0)throw new Error(`Library ${z} with version ${i0} does not exist!`);let v0=F0.files.find(Z0=>Z0.name==="studio.json"),d0=(await jl(H,v0.downloadUrl)).libraryDependencies||{},q0={...d0};q0[z]=`^${F0.name}`,await s(g,M,q0,r0);for(let[Z0,xA]of Object.entries(d0))await c(g,M,Y,W,H,Z0,xA,r0);let M0=F0.files.find(Z0=>Z0.name==="library.tar.gz");if(!M0)throw new Error(`Library ${z} has no content!`);let ox=await ex.fetchCustomContent(H,M0.downloadUrl);await f(g,M,Y,n0,ox),await O(g,M,Y,n0,r0);let Hx=await J.read(g,M),hA=Hx.libraryDependencies||{},gA=Hx.libraryDevDependencies||{},sx=r0?gA:hA;sx[z]=`^${F0.name}`,Hx.libraryDependencies=hA,Hx.libraryDevDependencies=gA,await J.write(g,M,Hx)}R.installDependency=c;async function D(g,M,Y,W,H){let z=await J.read(g,M),i0=z.libraryDependencies||{},r0=z.libraryDevDependencies||{},Z=Object.assign(i0,r0);for(let[n0,U]of Object.entries(Z)){let F0=Object.hasOwn(r0,n0);await c(g,M,Y,W,H,n0,U,F0)}for(let[n0]of Object.entries(Z)){let U=x(n0),F0=Object.hasOwn(r0,n0);await O(g,M,Y,U,F0)}Y.done(`Installed ${Object.entries(Z).length} dependencies`)}R.installDependencies=D;async function p(g,M,Y,W,H){let z=await J.read(g,M),i0=z.libraryDependencies||{},r0=z.libraryDevDependencies||{},Z=Object.assign(i0,r0),n0=`${W}/${H}`;delete Z[n0];let U=await hl(g,M,Z);if(!Object.hasOwn(U,n0))await s0(g,M,Y,H),await F(g,M,Y,H),delete r0[n0],delete i0[n0],await J.write(g,M,z);else throw new Error(`Library '${H}' not removed. This library is a dependency of other libraries.`)}R.uninstallDependency=p;async function j(g,M){try{let W=(await Za(Dx.Utils.joinPath(g,nt),M)).workspaces;if(Array.isArray(W)&&W.every(z=>typeof z=="string")&&W.length>0)return W;let H=W?.packages;return Array.isArray(H)&&H.every(z=>typeof z=="string")&&H.length>0?H:null}catch{return null}}R.readNpmWorkspacePatterns=j;function _(g,M){let Y=H=>H.replace(/\\/g,"/").replace(/^\.\//,"").replace(/\/$/,""),W=Y(g);return M.some(H=>{let z=Y(H);return z===W||(0,Qa.minimatch)(W,z)})}R.isPathInWorkspaces=_;function k(g,M){if(!M)return{rootInstall:!1,partInstalls:g.map(H=>H.workingPath)};let Y=[],W=!1;for(let H of g)_(H.workingPath,M)?W=!0:Y.push(H.workingPath);return{rootInstall:W,partInstalls:Y}}R.planNpmInstalls=k;async function S(g,M,Y){let W=await J.read(g,M),H=new Set([...Object.keys(W.libraryDependencies||{}),...Object.keys(W.libraryDevDependencies||{})].map(x)),z=new Set,i0=[...H];for(;i0.length>0;){let r0=i0.shift();if(z.has(r0))continue;z.add(r0);let Z=Dx.Utils.joinPath(g,ee,r0);try{let n0=Dx.Utils.joinPath(Z,J.fileName);if(!await M.stat(n0))continue;let U=await J.readRaw(Z,M);await Dr.normalizeLibraryParts(Z,M,U,Y),i0.push(...[...Object.keys(U.libraryDependencies||{}),...Object.keys(U.libraryDevDependencies||{})].map(x))}catch(n0){Y.warn(`Could not normalize library parts for "${r0}": ${n0}`)}}}R.normalizeInstalledLibraryParts=S;async function P(g,M,Y){let W=await J.read(g,M),H=await ml(g,M,Y,W);if(!H)return;let z=W.engines?.backend;if(!z||J.compareBackendVersion(H.backend,z)>0){let i0=z?`"${z}"`:"none",r0=J.isLibrary(W)?"library":"application",Z=J.isLibrary(W)?" Every application using this library must then satisfy that version as well.":"";throw new Error(`Library "${H.requiredBy}" requires "engines.backend" >= "${H.backend}" but the ${r0} "${W.publisher}/${W.name}" declares ${i0}. Raise "engines.backend" in studio.json to at least "${H.backend}".${Z}`)}}R.validateMinimumBackendVersion=P;async function N(g,M,Y){await S(g,M,Y);let W=await J.read(g,M),H=[];W.pov?.details?.workingPath&&H.push({name:"pov",workingPath:W.pov.details.workingPath}),W.blo?.workingPath&&H.push({name:"blo",workingPath:W.blo.workingPath});let z=[];for(let n0 of H){let U=Dx.Utils.joinPath(g,n0.workingPath),F0=Dx.Utils.joinPath(U,nt);await M.stat(F0)&&z.push(n0)}if(z.length===0)return;let i0=await j(g,M),{rootInstall:r0,partInstalls:Z}=k(z,i0);if(r0){let n0=z.filter(U=>!Z.includes(U.workingPath)).map(U=>U.workingPath).join(", ");Y.info(`npm workspaces detected in root package.json - installing dependencies once at the project root (${n0}) using 'npm install' (an in-sync package-lock.json is installed as-is and left unchanged)`),await Mt(g,"npm install --no-audit --no-fund",Y)}for(let n0 of z){if(!Z.includes(n0.workingPath))continue;i0?Y.warn(`${n0.workingPath} (${n0.name}) is not covered by any workspace pattern in the root package.json - installing it separately.`):Y.info(`Installing npm dependencies for ${n0.name} (${n0.workingPath})...`);let U=Dx.Utils.joinPath(g,n0.workingPath);await kl(U,M,Y)}}R.installNpmInApmParts=N;async function L(g,M,Y){let W=await J.read(g,M),H=await A(W),z=[],i0=e0.filePaths[Y].path,r0=Y===j0.Part.dlo?"inc":"dfiles";for(let Z in H){let n0=R.dependencyToPath(g,Z),U=R.dependencyIdToName(Z),F0=Dx.Utils.joinPath(n0,i0,`${U}.${r0}`);await M.stat(F0)&&z.push({name:U,path:F0})}if(J.isLibrary(W)){let Z=Dx.Utils.joinPath(g,i0,`${W.name}.${r0}`);await M.stat(Z)&&z.push({name:W.name,path:Z})}return z}R.getApmPartDependencies=L;async function O(g,M,Y,W,H){let z=await J.read(g,M),i0=[{partName:"blo",partDistPath:"blo",workingPath:z.blo?.workingPath},{partName:"pov",partDistPath:"pov/details",workingPath:z.pov?.details?.workingPath}];for(let{partName:r0,partDistPath:Z,workingPath:n0}of i0){if(!n0)continue;let U=Dx.Utils.joinPath(g,ee,W,"dist",...Z.split("/"),nt);if(await M.stat(U))try{let v0=await Wa(g,M,n0),B0=H?"devDependencies":"dependencies";v0[B0]=v0[B0]||{};let d0=n0.split("/").length,q0=Array(d0).fill("..").join("/");v0[B0][W]=`file:${q0}/${ee}/${W}/dist/${Z}`,await Xa(g,M,n0,v0),Y.info(`Linked ${W} to ${r0} (${n0})`)}catch(v0){Y.warn(`Could not link ${W} to ${r0}: ${v0}`)}}}R.linkLibraryApmParts=O;async function s0(g,M,Y,W){let H=await J.read(g,M),z=[{partName:"blo",workingPath:H.blo?.workingPath},{partName:"pov",workingPath:H.pov?.details?.workingPath}];for(let{partName:i0,workingPath:r0}of z)if(r0)try{let Z=await Wa(g,M,r0),n0=!1;Z.dependencies?.[W]?.startsWith("file:")&&(delete Z.dependencies[W],n0=!0),Z.devDependencies?.[W]?.startsWith("file:")&&(delete Z.devDependencies[W],n0=!0),n0&&(await Xa(g,M,r0,Z),Y.info(`Unlinked ${W} from ${i0}`))}catch(Z){Y.warn(`Could not unlink ${W} from ${i0}: ${Z}`)}}R.unlinkLibraryApmParts=s0})(Q0||={});async function Za(A,x){let e=await x.readFile(A);return JSON.parse(m0.convertBlobToString(e))}function Wa(A,x,e){return Za(Dx.Utils.joinPath(A,e,nt),x)}async function Xa(A,x,e,r){let t=Dx.Utils.joinPath(A,e,nt),s=JSON.stringify(r,null," ")+`
1664
+ `;await x.writeFile(t,s)}async function jl(A,x){return await ex.fetchCustomContent(A,x,!0)}async function hl(A,x,e){let r={};function t(c,D,p,j=!1){let _=r[c],k=Q0.rangeToVersion(p),S=Q0.rangeToVersion(p);(!_||OA.gt(k,S))&&(r[c]={publisherId:D,version:p,installed:j})}let s=Object.entries(e).map(([c,D])=>{let[p,j]=c.split("/");return t(j,p,D,!0),j}),n={};for(let c of s)try{let D=await gl(A,x,c);n[c]=Object.entries(D).map(([p,j])=>{let[_,k]=p.split("/");return t(k,_,j),k}),s.push(...n[c])}catch{let p=r[c];throw new Error(`Please import "${p.publisherId}/${c}" first.`)}let F=[];for(;;){let c=s.filter(D=>F.includes(D)?!1:(n[D]||[]).every(j=>F.includes(j)));if(F.push(...c),s.length===F.length||!c.length)break}let f={};return[...new Set(F)].forEach(c=>{let{version:D,publisherId:p}=r[c],j=yl(p,c,D);f[j.libraryId]=j.libraryVersion}),f}async function gl(A,x,e){let r=Dx.Utils.joinPath(A,ee,e);return(await J.read(r,x))?.libraryDependencies||{}}function yl(A,x,e){return{libraryName:x,publisherId:A,libraryVersion:e[0]==="^"?e:"^"+e,libraryId:`${A}/${x}`}}function Mt(A,x,e){return new Promise((r,t)=>{Ya.exec(x,{cwd:A.fsPath,env:process.env},(s,n,F)=>{if(n&&e.log(n),F&&e.error(F),s){t(new Error(`${s.message}
1665
+ ${n}
1666
+ ${F}`));return}r()})})}async function kl(A,x,e){let r=Dx.Utils.joinPath(A,pl);if(!await x.stat(r)){e.warn(`No package-lock.json found in ${A.fsPath} - running 'npm install' instead of 'npm ci'.`),await Mt(A,"npm install",e);return}try{await Mt(A,"npm ci",e)}catch{e.warn(`'npm ci' failed in ${A.fsPath} - falling back to 'npm install'. If package-lock.json changed afterwards, commit it.`),await Mt(A,"npm install",e)}}var xo=cx(require("dotenv")),Ao=require("vscode-uri");var _l=".env.local",xs;(x=>{async function A(e,r){let t=Ao.Utils.joinPath(e,_l);if(await r.stat(t)){let s=await r.readFile(t);return xo.default.parse(m0.convertBlobToString(s))}return{}}x.read=A})(xs||={});var st=cx(require("chalk")),Ne;(r=>{let A;(c=>(c[c.log=0]="log",c[c.done=1]="done",c[c.info=2]="info",c[c.warning=3]="warning",c[c.error=4]="error"))(A=r.LogMessageType||={}),r.LOG_PREFIX={1:st.default.bgGreen.black(" DONE "),0:"",2:st.default.bgBlueBright.black(" INFO "),3:st.default.bgYellow.black(" WARNING "),4:st.default.bgRed.black(" ERROR ")};class e{_logHandler;_silent=!1;constructor(s=console){this._logHandler=s}_log(s,n,...F){this._silent&&s!==4||(F=[r.LOG_PREFIX[s],n,...F],this._logHandler.log(...F))}set silent(s){this._silent=s}log(s,...n){this._log(0,s,...n)}debug(s,...n){this._log(0,s,...n)}error(s,...n){this._log(4,s,...n)}info(s,...n){this._log(2,s,...n)}warn(s,...n){this._log(3,s,...n)}done(s,...n){this._log(1,s,...n)}}r.Logger=e})(Ne||={});var ri=require("node:child_process");var l8=require("node:events"),Zs=require("vscode-uri");var Wo=require("events");var uF=require("events");var bF=require("events"),hF=require("events"),gF=require("events"),kF=require("events");var wl=Object.create,ys=Object.defineProperty,Sl=Object.getOwnPropertyDescriptor,Lo=Object.getOwnPropertyNames,$l=Object.getPrototypeOf,ql=Object.prototype.hasOwnProperty,Pl=(A,x,e)=>x in A?ys(A,x,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[x]=e,eo=(A=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(A,{get:(x,e)=>(typeof require<"u"?require:x)[e]}):A)(function(A){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+A+'" is not supported')}),Tl=(A,x)=>function(){try{return x||(0,A[Lo(A)[0]])((x={exports:{}}).exports,x),x.exports}catch(r){throw x=0,r}},Nl=(A,x,e,r)=>{if(x&&typeof x=="object"||typeof x=="function")for(let t of Lo(x))!ql.call(A,t)&&t!==e&&ys(A,t,{get:()=>x[t],enumerable:!(r=Sl(x,t))||r.enumerable});return A},Il=(A,x,e)=>(e=A!=null?wl($l(A)):{},Nl(x||!A||!A.__esModule?ys(e,"default",{value:A,enumerable:!0}):e,A)),l0=(A,x,e)=>Pl(A,typeof x!="symbol"?x+"":x,e),Ml=Tl({"mdn_com_wasm/bin/mdnCOM.js"(A,x){"use strict";var e=(()=>{var r=globalThis.document?.currentScript?.src;return async function(t={}){var s;(function(){function l(A0){A0=A0.split("-")[0];for(var c0=A0.split(".").slice(0,3);c0.length<3;)c0.push("00");return c0=c0.map((u0,W0,K0)=>u0.padStart(2,"0")),c0.join("")}var C=A0=>[A0/1e4|0,(A0/100|0)%100,A0%100].join("."),h=2147483647,q=typeof process<"u"&&process.versions?.node?l(process.versions.node):h;if(q<180300)throw new Error(`This emscripten-generated code requires node v${C(180300)} (detected v${C(q)})`);var T=typeof navigator<"u"&&navigator.userAgent;if(T){var Q=T.includes("Safari/")&&!T.includes("Chrome/")&&T.match(/Version\/(\d+\.?\d*\.?\d*)/)?l(T.match(/Version\/(\d+\.?\d*\.?\d*)/)[1]):h;if(Q<15e4)throw new Error(`This emscripten-generated code requires Safari v${C(15e4)} (detected v${Q})`);var X=T.match(/Firefox\/(\d+(?:\.\d+)?)/)?parseFloat(T.match(/Firefox\/(\d+(?:\.\d+)?)/)[1]):h;if(X<79)throw new Error(`This emscripten-generated code requires Firefox v79 (detected v${X})`);var x0=T.match(/Chrome\/(\d+(?:\.\d+)?)/)?parseFloat(T.match(/Chrome\/(\d+(?:\.\d+)?)/)[1]):h;if(x0<85)throw new Error(`This emscripten-generated code requires Chrome v85 (detected v${x0})`)}})();var n=t,F=!!globalThis.window,f=!!globalThis.WorkerGlobalScope,c=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer",D=!F&&!c&&!f,p=[],j="./this.program",_=(l,C)=>{throw C};typeof __filename<"u"?r=__filename:f&&(r=self.location.href);var k="",S,P;if(c){if(!(globalThis.process?.versions?.node&&globalThis.process?.type!="renderer"))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 N=eo("fs");k=__dirname+"/",P=C=>{C=M(C)?new URL(C):C;var h=N.readFileSync(C);return g(Buffer.isBuffer(h)),h},S=async(C,h=!0)=>{C=M(C)?new URL(C):C;var q=N.readFileSync(C,h?void 0:"utf8");return g(h?Buffer.isBuffer(q):typeof q=="string"),q},process.argv.length>1&&(j=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),_=(C,h)=>{throw process.exitCode=C,h}}else if(!D)if(F||f){try{k=new URL(".",r).href}catch{}if(!(globalThis.window||globalThis.WorkerGlobalScope))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?)");f&&(P=l=>{var C=new XMLHttpRequest;return C.open("GET",l,!1),C.responseType="arraybuffer",C.send(null),new Uint8Array(C.response)}),S=async l=>{if(M(l))return new Promise((h,q)=>{var T=new XMLHttpRequest;T.open("GET",l,!0),T.responseType="arraybuffer",T.onload=()=>{if(T.status==200||T.status==0&&T.response){h(T.response);return}q(T.status)},T.onerror=q,T.send(null)});var C=await fetch(l,{credentials:"same-origin"});if(C.ok)return C.arrayBuffer();throw new Error(C.status+" : "+C.url)}}else throw new Error("environment detection error");var L=console.log.bind(console),O=console.error.bind(console);g(!D,"shell environment detected but not enabled at build time (add `shell` to `-sENVIRONMENT` to enable)");var s0;globalThis.WebAssembly||O("no native wasm support detected");var R=!1;function g(l,C){l||sx("Assertion failed"+(C?": "+C:""))}var M=l=>l.startsWith("file://");function Y(){var l=Sn();g((l&3)==0),l==0&&(l+=4),g0[l>>2]=34821223,g0[l+4>>2]=2310721022,g0[0]=1668509029}function W(){if(!R){var l=Sn();l==0&&(l+=4);var C=g0[l>>2],h=g0[l+4>>2];(C!=34821223||h!=2310721022)&&sx(`Stack overflow! Stack cookie has been overwritten at ${fx(l)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${fx(h)} ${fx(C)}`),g0[0]!=1668509029&&sx("Runtime error: The application has corrupted its heap memory area (address zero)!")}}class H{}class z extends H{}var i0=!0;(()=>{var l=new Int16Array(1),C=new Int8Array(l.buffer);l[0]=25459,(C[0]!==115||C[1]!==99)&&sx("Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)")})();function r0(l){Object.getOwnPropertyDescriptor(n,l)||Object.defineProperty(n,l,{configurable:!0,set(){sx(`Attempt to set \`Module.${l}\` after it has already been processed. This can happen, for example, when code is injected via '--post-js' rather than '--pre-js'`)}})}function Z(l){return()=>g(!1,`call to '${l}' via reference taken before Wasm module initialization`)}function n0(l){Object.getOwnPropertyDescriptor(n,l)&&sx(`\`Module.${l}\` was supplied but \`${l}\` not included in INCOMING_MODULE_JS_API`)}function U(l){return l==="FS_createPath"||l==="FS_createDataFile"||l==="FS_createPreloadedFile"||l==="FS_preloadFile"||l==="FS_unlink"||l==="addRunDependency"||l==="FS_createLazyFile"||l==="FS_createDevice"||l==="removeRunDependency"}function F0(l){v0(l)}function v0(l){Object.getOwnPropertyDescriptor(n,l)||Object.defineProperty(n,l,{configurable:!0,get(){var C=`'${l}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`;U(l)&&(C+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),sx(C)}})}function B0(l){for(var C=0,h=l.length,q=new Uint8Array(h),T;C<h;++C)T=l.charCodeAt(C),q[C]=~T>>8&T;return q}var d0,q0,M0=!1;function ox(){var l=Dt.buffer;zx=new Int8Array(l),yA=new Int16Array(l),n.HEAPU8=ux=new Uint8Array(l),nx=new Uint16Array(l),kA=new Int32Array(l),g0=new Uint32Array(l),Ye=new Float32Array(l),ne=new Float64Array(l),Xe=new BigInt64Array(l),eA=new BigUint64Array(l)}g(globalThis.Int32Array&&globalThis.Float64Array&&Int32Array.prototype.subarray&&Int32Array.prototype.set,"JS engine does not provide full typed array support");function Hx(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)wr(n.preRun.shift());r0("preRun"),lA(E0)}function hA(){g(!M0),M0=!0,W(),ar.__wasm_call_ctors()}function gA(){if(W(),n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)_A(n.postRun.shift());r0("postRun"),lA(rA)}function sx(l){n.onAbort?.(l),l=`Aborted(${l})`,O(l),R=!0;var C=new WebAssembly.RuntimeError(l);throw q0?.(C),C}function Z0(){sx("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM")}var xA={init:Z0,createDataFile:Z0,createPreloadedFile:Z0,createLazyFile:Z0,open:Z0,mkdev:Z0,registerDevice:Z0,analyzePath:Z0,ErrnoError:Z0};function U0(l,C){return(...h)=>{g(M0,`native function \`${l}\` called before runtime initialization`);var q=ar[l];return g(q,`exported native function \`${l}\` not found`),g(h.length<=C,`native function \`${l}\` called with ${h.length} args but expects ${C}`),q(...h)}}var O0;function H0(){return B0(`\0asm\0\0\0\xCF\`\x7F\0\`\x7F\x7F\0\`\x7F\x7F\`\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\`\x7F\x7F\x7F\0\`\0\0\`\x7F\x7F\x7F\x7F\0\`\0\x7F\`\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F~\x7F~\`
1667
+ \x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F\x7F\x7F\x7F\`\x7F|\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\x7F\x7F|\`\r\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\b\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F~~\0\`\x7F~\x7F\x7F\x7F\`\x07\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`|\x7F|\`\x07\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`~\x7F\x7F\xA7\x07env_emval_new_cstring\0env_emval_get_property\0env\r_emval_decref\0\0env_emval_create_invoker\0env\r_emval_incref\0\0env\r_emval_invoke\0env_emval_run_destructors\0\0env_emval_get_module_property\0env_embind_register_value_object\0\venv#_embind_register_value_object_field\0\renv_embind_finalize_value_object\0\0env_embind_register_class\0env"_embind_register_class_constructor\0\venv_embind_register_class_property\0\renv_embind_register_function\0env\v__cxa_throw\0env_embind_register_void\0env_embind_register_bool\0\x07env_embind_register_integer\0
1668
+ env_embind_register_bigint\0env_embind_register_float\0env\x1B_embind_register_std_string\0env_embind_register_std_wstring\0env_embind_register_emval\0\0env_embind_register_memory_view\0wasi_snapshot_preview1
1669
+ random_get\0env _abort_js\0wasi_snapshot_preview1\bfd_write\0 wasi_snapshot_preview1\bfd_close\0wasi_snapshot_preview1\x07fd_seek\0envemscripten_resize_heap\0\xB6\xB4 \0\b\0\0\0\b\b\0\b\0 \0\0\b\0\b\0\0 \x07  \x07
1670
+ \0\0\0\0\0\0\x07\x07\0\0 \0\f
1671
+ \x07
1672
+ \f\0\b\b\b\b\0\x07\x07\x07
1673
+
1674
+ \v\v\0\0\bp\0Z\x07\x82\x80\x80\x7FA\xD0\xF6\v\x7FA\0\v\x7FA\0\v\x07\xCCmemory\0__wasm_call_ctors\0\r__getTypeName\0+malloc\0\xB2free\0\xB3__indirect_function_table\0MdnCom_ESCHandler\0/\vMdnCom_Free\x002\fMdnCom_RawRx\x003MdnCom_CryptoSelfTest\x005MdnCom_SetCompanionKeypair\x006\x1BMdnCom_InitiateEcsHandshake\x007MdnCom_SetSecDebug\x008MdnCom_GetEcsState\x009MdnCom_ResetEcs\0:#MdnCom_RegisterEcsHandshakeCallback\0;\vMdnCom_Init\0<\fSendUtoQuery\0=\rSendUtoCmdExt\0>fflush\0\xD1emscripten_stack_get_end\0\xB9emscripten_stack_get_base\0\xB8\bstrerror\0\xD2emscripten_stack_init\0\xB6emscripten_stack_get_free\0\xB7_emscripten_stack_restore\0\xCE_emscripten_stack_alloc\0\xCFemscripten_stack_get_current\0\xD0 y\0A\vY"!,210/4-.DEFGHIJEKLFGHIMNOP?@QRS<K5T679U:V;V8W3X=Y>ZA[B\xCBC\x96"\x8A\x8B\x8De\xA1\xA2\xAD\xAE\xB0\xB1\xBC2\x98\x98\xBD2\xBF\xCA\xC8\xC22\xC9\xC7\xC32\xC4\xCC\xCD\xCC\f-
1675
+ \xD9\x88\x07\xB4\x95\0A\xD0\xF6$A\xD0\xF6$A\xBC\xBAA6\0A\xC0\xBAA\x006\0,A\xC0\xBAA\xB8\xBA(\x006\0A\xB8\xBAA\xBC\xBA6\0A\x80\xE5A:6\0A\x84\xE5A\x006\0CA\x84\xE5A\xB8\xBA(\x006\0A\xB8\xBAA\x80\xE56\0A\xB4\xE9A\xD0\xF66\0A\x9C\xE9A*6\0A\xB8\xE9A\x80\x806\0A\xBC\xE9A\xF0\xB7(\x006\0\v"\x7F@ \0"(\0"\0\r\0\v  6\0 A\x006\0A\0\vB\0#\0Ak"\0$\0  l"\xB2"E@ \0 6\b \0A\x006 \0A\x8B6\0A\x98. \0\x97\v \0Aj$\0 \v\x07\0 \xB3\v\xA8
1676
+ \x7F#\0Ak"$\0 \0A\x006( \0A6$ \0A6 \0A\x80\b6 \0 6\fA\x7F!A\x7F!@@\x7F@@ Ak\0\v\x7FAzA\xFD$-\0\0A1G\r\0A~ \0E\r\0 \0A\x006 \0( "E@ \0A\x006( \0A;6 A;!\v \0($E@ \0A<6$\vA| \0((AA\xC4- \0"E\r\0 \0 6 A\x006 A6  \x006\0 A\v6P A\x806L A
1677
+ 60 A\xFF6T A\x80\b6, A6X A\xFF\x0764  \0((A\x80\bA \0( \x0068  \0(( (,A \0( \x006@ \0(( (LA \0( \0! A\x006\xC0-  6D A\x80\b6\x9C-  \0((A\x80\bA \0( \0"6\b  (\x9C-"At6\f@@ (8E\r\0 (@E\r\0 (DE\r\0 \r\v A\x9A6 \0A\xA8\x9B(\x006 \0\x86A|\f\v A\x006\x88 A6\x84 A\b:\0$   Alj6\x98-   A~qj6\xA4-A~!@ \0E\r\0 \0("E\r\0 \0( E\r\0 \0($E\r\0 \0A6, \0A\x006\b \0B\x007 A\x006  (\b6 \x7F ("A\0H@ A\0 k6A*\f\vA*A\xF1\0 \x1B\v6A\0! \0A\0A\0A\0\x8560 A\x006( A\x006\xBC- A\0;\xB8- A\xDC\xB76\xB8 A\xC8\xB76\xAC A\xB4\xB76\xA0 A\b6\xB4-  A\xFCj6\xB0  A\x88j6\xA4  A\x94j6\x98 \x90  (,At6< (D (LAtjAkA\0;\0 (LAtAk"\0@ (DA\0 \0\xFC\v\0\v B\x80\x80\x80\x80 7t B\x007h B\x80\x80\x80\x80 7\\ A\x006H  (\x84A\fl"\0A\xF4\xF1\0j/\x006\x90  \0A\xF0\xF1\0j/\x006\x8C  \0A\xF2\xF1\0j/\x006\x80  \0A\xF6\xF1\0j/\x006|\v \v\f\v\x7FAz!@A\xFD$-\0\0A1G\r\0A~! \0E\r\0 \0A\x006 \0( "E@ \0A\x006( \0A;6 A;!\v \0($E@ \0A<6$\vA| \0((AA\xCC7 \0"E\r \0 6 A\x0064@ \0("E\r\0@ (4"\x07E\r\0 ($E\r\0 \0(( \x07 \0($\0 A\x0064\v A\x006$ A6\b \0("E\r\0 A\x006 \0A60 \0A\x006\b \0B\x007  A\xB0
1678
+ j"\x006l B\x0078 A\x0060 B\x007( A\x006 A\x80\x806 A\x006\f B\x007\0  \x006P B\x81\x80\x80\x80p7\xC07  \x006LA\0\f\v \0((  \0($\0 \0A\x006\v \v\v"\r\0A\0!\f\v  6\b  6 A\xE8\v6\0A\x96/ \x97\v Aj$\0 \v\x7F\x7F#\0Ak"$\0 \0A\x80\b6 \0 6\fA\0!@\x7F@@ Ak\0\v \0A\0\x87\f\v \0\x8E\v!\0A\x7F! \0A\0N@ \0!\f\v  \x006\b  6 A\xBB6\0A\x96/ \x97\v Aj$\0 \v|\x7F#\0Ak"$\0 \0 6 \0 6\0A\x7F!@@@ Ak\0\v \0A\0\x87!\f\v \0\x8E!\v@ A\0N\r\0 A{F\r\0  6\b  6 A\x97\r6\0A\x96/ \x97\v Aj$\0 \v\`\x7F@A\xD4\xBB(\0"\0E\r\0A\xDC\xBB(\0"E\r\0 \0(4"@A\xE0\xBB(\0  \0A\xDC\xBB(\0!A\xD4\xBB(\0!\0\vA\xE0\xBB(\0 \0 \0A\xD4\xBBA\x006\0\v\v\x9E\x7FA\xFF\xFF!@ E\r\0 AG@ Aq A~q!A\0!@ \0-\0 \0-\0\0 sA\xFFqAt/\xC05" A\bvssA\xFFqAt/\xC05 A\bvs! \0Aj!\0 Aj" G\r\0\vE\r\v \0-\0\0 sA\xFFqAt/\xC05 A\x80\xFEqA\bvs!\v A\xFF\xFFq\v\xBF\x7F#\0A k"$\0A\x80\xBBA\x80\xBB(\0"Aj6\0  \0:\0\0A\x84\xBBA\x84\xBB(\0"\0Ak"6\0@ \r\0A\xF8\xBA(\0AF@A\x97\xBB-\0\0Av"A\x88\xBB(\0G@A\x88\xBB 6\0A\x84\xBB \0Aj6\0\f\vA\x8C\xBBA\x80\xBB(\0A\xF2\xC4jA\xFF\xFFq"\0' \0A\x8C\xBBj"\0-\0\0A\bt \0-\0rG@A\xF8\xBAA\x006\0 A\xD36\0A\xCD. \x97\f\vA\x98\xBB-\0\0!\0A\x88\xBB(\0AF@A\x99\xBB-\0\0 \0A\btr!\0\v \0@A\xF8\xBAA6\0A\x84\xBB \0Aj"\x006\0A\xFC\xBA \0A\xEC\xBA(\0\0"\x006\0A\x80\xBB \x006\0 \0\rA\xF8\xBAA\x006\0\f\vA\xF8\xBAA6\0)\f\vA\x98\xBB-\0\0!\0A\x88\xBB(\0AF@A\x99\xBB-\0\0 \0A\btr!\0\vA\xFC\xBA(\0" \0' \0 j"\0-\0\0A\bt \0-\0rF@A\xF8\xBAA6\0)\f\vA\xF8\xBAA\x006\0 A\xD36A\xE7. Aj\x97\v A j$\0\v\xA5\x7F#\0A\x90k"\0$\0 \0A\x8C\xBB-\0\0:\0w \0A\x8D\xBB-\0\0:\0v \0A\x8E\xBB-\0\0:\0u \0A\x8F\xBB-\0\0:\0t \0A\x90\xBB/\0\0"A\bt A\bvr;\x84 \0A\x92\xBB-\0\0:\0\x7F \0A\x93\xBB-\0\0:\0~ \0A\x94\xBB-\0\0:\0} \0A\x95\xBB-\0\0:\0| \0A\x96\xBB-\0\0:\0\x80 \0A\x97\xBB-\0\0Aq:\0x@ \0\x7F@@@A\x88\xBB(\0\0\v \0A\x98\xBB/\0\0"A\bt A\bvr;\x86 \0A\x9A\xBB-\0\0:\0\x88A\x9B\xBB-\0\0\f\vA\xF8\xBAA\x006\0\f\vA\x98\xBB-\0\0! \0A\0:\0\x88 \0 ;\x86A\0\v:\0\x89 \0A\x9C6\` \0 \0(t6dA\x801 \0A\xE0\0j\x97 \0A\x9C6P \0 \0/\x846TA\x9F1 \0A\xD0\0j\x97 \0A\x9C6@ \0 \0(|6D \0 \0-\0\x806HA\xBC1 \0A@k\x97 \0A\x9C60 \0 \0-\0x64A\x952 \0A0j\x97 \0A\x9C6 \0 \0/\x866$A\xB12 \0A j\x97 \0A\x9C6 \0 \0-\0\x886A\xF91 \0Aj\x97 \0A\x9C6\0 \0 \0-\0\x896A\xDD1 \0\x97 \0A\x006\x8CA\xFC\xBA(\0"@ \0 6\x8CA\xFC\xBAA\x006\0\v@A$A\xEC\xBA(\0\0"@ A\xE0\xBA6  \0)t7\b  \0)|7  \0)\x847  \0(\x8C6 A\xB4\xBA  E\r\vA\xF8\xBAA\x006\0A\xFC\xBA \0(\x8C6\0\f\vA\xE8\xBA(\0"@A\0A\0 \0\vA\xF8\xBAA\x006\0\v \0A\x90j$\0\v\xF6\x7F#\0A\xB0k"$\0A\x7F!@A\xF4\xBA-\0\0Aq\r\0@A\xC2\xCC/\0A\xE4\0I\r\0A\xB4\xBB(\0\r\0A\xAC\xCC-\0\0A\xC2I\r\0A\xF0\xBBA\xA8\xC4A#A\0H\r\0 A\x9B;\0\x90@A\xE0\xBA(\0"\0@A\xB4\xBB(\0E@ A\x90jAA \0\0\f\vA\bA\xEC\xBA(\0\0"\0E\r \0A\x07:\0A\xA8\xCC \0 \f\v A\xF86\x80A\x945 A\x80j\x97\vA\xB4\xBBA6\0\v A\x006\x8C@@@@@@A\xAC\xBB(\0"\x07E@A\xC5\xCCA\0:\0\0A\xB4\xCC-\0\0!\x7F@@@A\x88\xBB(\0\0\vA! A\xC2\xCC/\0A\xC9I\r A\x7F6\x8C\f \v A\xDB60A\xC64 A0j\x97 A\x7F6\x8C\f\b\vA! A r\v! A\x90j""\0A\xB0\xCC-\0\0:\0 \0A\xB1\xCC-\0\0:\0 \0A\xB2\xCC-\0\0:\0 \0A\xB3\xCC-\0\0:\0\0 A\xC0\xCC/\0"\0A\bt \0A\bvr;\x94 Ar"\0A\xB8\xCC-\0\0:\0 \0A\xB9\xCC-\0\0:\0 \0A\xBA\xCC-\0\0:\0 \0A\xBB\xCC-\0\0:\0\0A\xBC\xCC-\0\0!\0  :\0\x9B  \0:\0\x9A A\fr!\0@@@A\x88\xBB(\0\0\v A\xC2\xCC-\0\0:\0\x9C A\x90jA\rr!\0\f\v A\xC2\xCC/\0"\0A\bt \0A\bvr;\x9C A\xC4\xCC-\0\0:\0\x9E A\xC5\xCC-\0\0:\0\x9F A\xA0j!\0\v E! \0 A\x90j Ak'"\bA\bt \bA\bv"\vr;\0\0A\0!\x07@@A\xB4\xBB(\0"\0\0\v Aq!A\0! A\x90j! !@ \0AAA -\0\0"\x07A\x1BF\x1B \x07A\xF0F\x1Bj!\0 Ak! Aj! Aj" G\r\0\v@ \0AAA -\0\0"A\x1BF\x1B A\xF0F\x1BjAAA -\0"\0A\x1BF\x1B \0A\xF0F\x1BjAAA -\0"\0A\x1BF\x1B \0A\xF0F\x1BjAAA -\0"\0A\x1BF\x1B \0A\xF0F\x1Bj!\0 Aj! Ak"\r\0\v \0Aj! A\xC2\xCC/\0"\0@A\xC8\xCC(\0 \0'"\vA\bv!\b@A\xC2\xCC/\0"\0E@A\0!\0\f\v \0Aq!A\xC8\xCC(\0!A\0!@ \0AI@A\0!\0\f\v \0A\xFC\xFFq!\x07A\0!\0A\0!@ \0AAA -\0\0"
1679
+ A\x1BF\x1B
1680
+ A\xF0F\x1BjAAA -\0"\0A\x1BF\x1B \0A\xF0F\x1BjAAA -\0"\0A\x1BF\x1B \0A\xF0F\x1BjAAA -\0"\0A\x1BF\x1B \0A\xF0F\x1Bj!\0 Aj! Aj" \x07G\r\0\v E\r\v@ \0AAA -\0\0"A\x1BF\x1B A\xF0F\x1Bj!\0 Aj! Aj" G\r\0\v\v \0AAA \bA\x1BF\x1B \bA\xF0F\x1B jAAA \vA\xFFq"A\x1BF\x1B A\xF0F\x1Bjj! \v A\xFF\xFFqA\xEC\xBA(\0\0"\x07E@ A\x7F6\x8C\f\b\v \x07A\xF0:\0\0 Aq!
1681
+ Aq A\x90j!A\0! \x07Aj"!\0@\x7F@@ -\0\0"A\x1BG@ A\xF0G\r \0A\x1B;\0\0\f\v \0A\x9B\xD6\0;\0\0\f\v \0Aj! \0 :\0\0A\f\v \0Aj!A\v j\x7F@@ -\0"\0A\xF0G@ \0A\x1BG\r A\x9B\xD6\0;\0\0\f\v A\x1B;\0\0\f\v  \0:\0\0A! Aj\f\vA! Aj\v!\0 Aj! j! \fAj"\f
1682
+ G\r\0\v@\x7F@ -\0\0"A\xF0G@ A\x1BG\r \0A\x9B\xD6\0;\0\0A\f\v \0A\x1B;\0\0A\f\v \0 :\0\0A\v j!\vA\xC2\xCC/\0"\0E\r\0  j!A\xC8\xCC(\0!A\0!@@ \0AF@ !\0\f\v \0Aq \0A\xFE\xFFq!\r !\0A\0!\f@\x7F@@ -\0\0"A\x1BG@ A\xF0G\r \0A\x1B;\0\0\f\v \0A\x9B\xD6\0;\0\0\f\v \0Aj! \0 :\0\0A\f\v \0Aj!A\v j\x7F@@ -\0"\0A\xF0G@ \0A\x1BG\r A\x9B\xD6\0;\0\0\f\v A\x1B;\0\0\f\v  \0:\0\0A! Aj\f\vA! Aj\v!\0 Aj! j! \fAj"\f \rG\r\0\vE\r\v\x7F@ -\0\0"A\xF0G@ A\x1BG\r \0A\x9B\xD6\0;\0\0A\f\v \0A\x1B;\0\0A\f\v \0 :\0\0A\v j!\v  j!\0\x7F@ \bA\xFFq"A\x1BG@ A\xF0G\r \0A\x1B;\0\0 \0Aj\f\v \0A\x9B\xD6\0;\0\0 \0Aj\f\v \0 \b:\0\0 \0Aj\v!\0 \vA\xFFq"A\xF0G@ A\x1BF@ \0A\x9B\xD6\0;\0\0\f\v \0 \v:\0\0\f\v \0A\x1B;\0\0\v (\x8C\rA\xE0\xBA(\0"\r\f\vA\xE0\xBA(\0"\r\f\vA\xC2\xCC/\0"\0AjA\0 \0\x1B j" A\xFF\xFFqA\xEC\xBA(\0\0"\x07E@ A\x7F6\x8C\f\v @ \x07 A\x90j \xFC
1683
+ \0\0\vA\xC2\xCC/\0"\0@  \x07j! \0@ A\xC8\xCC(\0 \0\xFC
1684
+ \0\0\v A\xC2\xCC/\0"\0jA\xC8\xCC(\0 \0'"\0A\bt \0A\bvr;\0\0\v A\xF0\xBB \x07 A\xFF\xFFqA%"\x006\x8C@ \0A\0N\r\0 \0A{F\r\0  \x006t A\xDB6pA\xB2/ A\xF0\0j\x97A\xE8\xBA(\0"\0@A A\x8Cj \0\0\v A\x7F6\x8C\f\vA\x80\xBC(\0 A\x006\x8CA\xE0\xBA(\0"E\r \0A{F\r\0\r\vA\xB4\xBB(\0AF@A\x80\xBC(\0!A\xAC\xBB(\0!@@ A\xA8\xC4A\x80\b kA\xFF\xFFqA\bA\xE0\xBA(\0\0"\x006\x8C \0A\0H\r\0 \0AF@ E@ A\x006\x8C\vA\xAC\xBB \x076\0A\0!\x07\f\v @ A6\x8C\vA\xAC\xBBA\x006\0 A\xF0\xBBA\xA8\xC4A$"\x006\x88@ \0A\0N\r\0 \0A{F\r\0  \x006d A\xDB6\`A\xB2/ A\xE0\0j\x97A\xE8\xBA(\0"\0E\r\0A A\x88j \0\0\vA\x80\xBC(\0"E\r (\x88A{F\r\v\vA\x80\xBC(\0!\0 A\xF4\xBB(\x006X  \x006T A\xDB6PA\xEF0 A\xD0\0j\x97\f\v  \x07 A\xFF\xFFq  \x006\x8C\f\v A\xDB6@A\x945 A@k\x97 A\x7F6\x8C\v \x07E\r\v \x07A\xF0\xBA(\0\0\0\vA\xC8\xCC(\0"\0@ \0A\xF0\xBA(\0\0\0\v (\x8C"A\0H@A\xAC\xBBA\x006\0\vA\xB4\xBB(\0AG\r\0@@#\0A k"\0$\0@@A\xF0\xBBA\x87"A\0H@ A{F\r \0 6 \0A\x936\0A\x8F0 \0\x97\f\v AG\rA\xF8\xBB(\0! \0A\x84\xBC(\x006 \0 6 \0A\x936A\xEA- \0Aj\x97\vA\xF0\xBB\x86\v \0A j$\0  6\x90@ A\0N\r\0 A{F\r\0  6 A\xAF6A\xE1/ Aj\x97A\xE8\xBA(\0"\0@A A\x90j \0\0\v (\x90E\r\f\vA\xE0\xBA(\0"\0@A\xA8\xC4A\x80\bA\x80\xBC/\0kA\xFF\xFFqA\b \0\0AF\r (\x90AF\r A\xF0\xBBA\xA8\xC4A\0$"\x006\x90 \0E\r\f\v\v A\xAF6 A\x945 A j\x97 A\x7F6\x90\vA\xB4\xBBA\x006\0A\xA8\xCC(\0"\0@A\xA8\xCC \0(\x006\0\v \0"E\r\0@  -\0":\0\x8D A\x1B:\0\x8C@A\xE0\xBA(\0"\0@A\xB4\xBB(\0E@ A\x8CjAA \0\0\f\vA\bA\xEC\xBA(\0\0"\0E\r \0 :\0A\xA8\xCC \0 \f\v A\xF86\0A\x945 \x97\v A\xF0\xBA(\0\0\0A\xA8\xCC(\0"\0@A\xA8\xCC \0(\x006\0\v \0"\r\0\v\v A\xB0j$\0 \v'\x7F \0("\0\xA3Aj"\xB2"\x7F  \0 \x9CA\0\v\v\xED\0A\xA4\xA2A\xEFA\xB4\xA2A\xEBAA\0A\xC0\xA2A\xCEAA\x80\x7FA\xFF\0A\xD8\xA2A\xC7AA\x80\x7FA\xFF\0A\xCC\xA2A\xC5AA\0A\xFFA\xE4\xA2A\xB8\vAA\x80\x80~A\xFF\xFFA\xF0\xA2A\xAF\vAA\0A\xFF\xFFA\xFC\xA2A\xD4\vAA\x80\x80\x80\x80xA\xFF\xFF\xFF\xFF\x07A\x88\xA3A\xCB\vAA\0A\x7FA\x94\xA3A\xD7AA\x80\x80\x80\x80xA\xFF\xFF\xFF\xFF\x07A\xA0\xA3A\xCEAA\0A\x7FA\xAC\xA3A\xC4A\bB\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7FB\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0A\xB8\xA3A\xBBA\bB\0B\x7FA\xC4\xA3A\xE2\fAA\xD0\xA3A\xADA\bA\xCC\xC1\0A\xF6A\xC09AA\xDCA\x88:AA\x82A\xD4:AA\x91A\x80\xC1\0A\xA0;A\0A\xF2"A\xC8;A\0A\xB7#A\xA4\xC3\0AA\x90#A\xF0;AA\xBFA\x98<AA\xDEA\xC0<AA\x86 A\xE8<AA\xA3 A\x90=AA\xDC#A\xB8=AA\xFA#A\xC8;A\0A\x89!A\xA4\xC3\0AA\xE8 A\xF0;AA\xCB!A\x98<AA\xA9!A\xC0<AA\xD1"A\xE8<AA\xAF"A\xE0=A\bA\x8E"A\x88>A A\xEC!A\xB0>AA\xC9 A\xD8>A\x07A\xA1$\v\xA7\x7F#\0A k"$\0  6 A\xCE\fA\xEFA\xD8\xBA(\0\x1B6A\xF6) Aj\x97 A\x81\bO@ A\x80\b6  6\0A\xC5) \x97A\x80\b!\v @A\xF0\xCC \0 \xFC
1685
+ \0\0\vA\xE8\xCCA\xF0\xCC6\0A\xF0\xD4 ;\0A\xEC\xCC ;\0A\xD8\xBA(\0"\0\x7F \0\0A\x9B'A\xE3
1686
+ \v\x9F A j$\0\vT\x7F#\0Ak"$\0  \x006\0 A\xCE\fA\xEFA\xDC\xBA(\0\x1B6A\x9F* \x97@A\xDC\xBA(\0"@ \0 \0\0\f\vA\xA0\x9F\v Aj$\0\v\xD1\b\x7F#\0A0k"$\0\x7FA\xA8\xE5(\0"\x07A}q@#\0Ak"$\0A\xB0\xB7(\0@  \x006\0 A\xE8\xE6(\x006 A\xEC\xE6(\x006\b A\xF0\xE6-\0\x006\fA\x83
1687
+ \x97\x9B\v@\x7F@@@@A\xE8\xE6(\0Ak\0\vA!A\xE8\xE6A6\0\f\vA\xE8\xE6A6\0A\xF1\xE6 \0:\0\0A!\f\vA\xF0\xE6 \0:\0\0A\xEC\xE6A\x006\0A\0 \0E\rA\xE8\xE6A6\0A!\f\vA\xEC\xE6(\0"A\xFFM@  \0:\0\x80\xE7\vA!A\xEC\xE6 Aj"6\0 A\xF0\xE6-\0\0I\rA\0\v!A\xE8\xE6A\x006\0#\0A\xF0k"$\0A\xB0\xB7(\0@ A\xA8\xE5(\x006\xB0 A\xF1\xE6-\0\x006\xB4 A\xF0\xE6-\0\x006\xB8 A\xEC\xE6(\x006\xBCA\xC2 A\xB0j\x97\x9B\v@A\xA8\xE5(\0"AG@@A\xB0\xB7(\0E@A\xA8\xE5A6\0\f\v  6\xA0A\x96( A\xA0j\x97\x9BA\xA8\xE5A6\0A\xB0\xB7(\0E\r\0 Az6\x90 A\xCE\fA\xEFA\xA4\xE5(\0\x1B6\x94A\xFA A\x90j\x97\x9B\vA\xA4\xE5(\0"@Az \0\0\f\vA\xB0\xB7(\0E\rA\xF9A\0\x97\x9B\f\vA\xF1\xE6-\0\0"@@A\xB0\xB7(\0E@A\xA8\xE5A6\0\f\v  6\x80A\xDF( A\x80j\x97\x9BA\xA8\xE5A6\0A\xB0\xB7(\0E\r\0 Az6\xF0 A\xCE\fA\xEFA\xA4\xE5(\0\x1B6\xF4A\xFA A\xF0j\x97\x9B\vA\xA4\xE5(\0"@Az \0\0\f\vA\xB0\xB7(\0E\rA\xF9A\0\x97\x9B\f\vA\xF0\xE6-\0\0"A&G@@A\xB0\xB7(\0E@A\xA8\xE5A6\0\f\v A&6\xE4  6\xE0A\xDB& A\xE0j\x97\x9BA\xA8\xE5A6\0A\xB0\xB7(\0E\r\0 Az6\xD0 A\xCE\fA\xEFA\xA4\xE5(\0\x1B6\xD4A\xFA A\xD0j\x97\x9B\vA\xA4\xE5(\0"@Az \0\0\f\vA\xB0\xB7(\0E\rA\xF9A\0\x97\x9B\f\v A\x9E\xE7)\x007\xE6 A\x98\xE7)\x007\xE0 A\x90\xE7)\x007\xD8 A\x88\xE7)\x007\xD0 A\x80\xE7)\x007\xC8A\xB0\xB7(\0@ A 6\xC4 A\x996\xC0A\xAB) A\xC0j\x97  -\0\xCE6\xB0A\xA0 A\xB0j\x97  -\0\xCF6\xA0A\xA0 A\xA0j\x97  -\0\xD06\x90A\xA0 A\x90j\x97  -\0\xD16\x80A\xA0 A\x80j\x97  -\0\xD26\xF0A\xA0 A\xF0j\x97  -\0\xD36\xE0A\xA0 A\xE0j\x97  -\0\xD46\xD0A\xA0 A\xD0j\x97  -\0\xD56\xC0A\xA0 A\xC0j\x97A\x8E%A\0\x97\x9B\v -\0\xC8"@@A\xB0\xB7(\0E@A\xA8\xE5A6\0\f\v A\x006\xB4  6\xB0A\xA1& A\xB0j\x97\x9BA\xA8\xE5A6\0A\xB0\xB7(\0E\r\0 A~6\xA0 A\xCE\fA\xEFA\xA4\xE5(\0\x1B6\xA4A\xFA A\xA0j\x97\x9B\vA\xA4\xE5(\0"@A~ \0\0\f\vA\xB0\xB7(\0E\rA\xF9A\0\x97\x9B\f\vA\xAC\xE5(\0#\0A0k"$\0 Aj"\b A\xC8jArj A 6\fA\bj \b A\xA0j A\fjf \bA h A0j$\0A\xB0\xB7(\0!A\0H@ @A\x85A\0\x97\x9B\vA\xA8\xE5A6\0 B\x007\xB8 B\x007\xB0 B\x007\xA8 B\x007\xA0A}_\f\v @ A 6\x94 A\xD2\f6\x90A\xAB) A\x90j\x97  -\0\xA06\x80A\xA0 A\x80j\x97  -\0\xA16pA\xA0 A\xF0\0j\x97  -\0\xA26\`A\xA0 A\xE0\0j\x97  -\0\xA36PA\xA0 A\xD0\0j\x97  -\0\xA46@A\xA0 A@k\x97  -\0\xA560A\xA0 A0j\x97  -\0\xA66 A\xA0 A j\x97  -\0\xA76A\xA0 Aj\x97A\x8E%A\0\x97\x9B\vA\xB8\xE6B\x007\0A\xB0\xE6B\x007\0A\xA8\xE6B\x007\0A\xA0\xE6B\x007\0A\xAC\xE5(\0 A\xA0jAaA\0H@A\xB0\xB7(\0@A\x9D\x1BA\0\x97\x9B\vA\xA8\xE5A6\0 B\x007\xB8 B\x007\xB0 B\x007\xA8 B\x007\xA0A{_\f\vA\xBE\vA\xAC\xE5(\0A\xE0jA] B\x007\xB8 B\x007\xB0 B\x007\xA8 B\x007\xA0A\xB0\xB7(\0@A\xF4A\0\x97\x9B\v  )\xC87\xF6  )\xD07\xFE  )\xD87\x86  )\xE07\x8E  )\xE67\0\x94 A\xDE\xE6)\0\x007\xEE A\xD8\xE6)\0\x007\xE8 A\xD0\xE6)\0\x007\xE0 A\xC8\xE6)\0\x007\xD8 A\xC0\xE6)\0\x007\xD0 A\xD1j"A\0A\xFF\xFC\v\0 A\xC3\x82\x846\0\xCD\x7FA\xAC\xE5(\0 A\xD0jA\xCC\0A\xD0\xE5A\xB0\xE5 \`A\0H@A\xB0\xB7(\0@A\xC0\x1BA\0\x97\x9B\vA\xA8\xE5A6\0A|\f\vA\xC3 A\xC0\0] -\0\xCFAj!A\xB0\xB7(\0@  6\0A\x92% \x97\x9B\v A\xCDj ^A\xA8\xE5A6\0A\0A\xB0\xB7(\0E\r\0A\xE6A\0\x97\x9BA\0\v_\v A\xF0j$\0\v Aj$\0  6(  \x076$  \x006 A\x84- A j\x97 A\0G\f\v@ \0A\xF0qA\xC0F@  \x006\0A\x88+ \x97#\0Ak"\0$\0 \0A\xC2:\0 \0A\x1B:\0\x7F@A\xE0\xBA(\0"@A\xB4\xBB(\0E@ \0AjAA \0\f\vA\bA\xEC\xBA(\0\0"E\r A\xC2:\0A\xA8\xCC  \f\v \0A\xF86\0A\x945 \0\x97\vA\0\v \0Aj$\0\f\v  \x076  \x006A\xBD, Aj\x97\vA\0\v A0j$\0\v\x84\0#\0A@j"$\0@@@@ \0\0\vA\xB4\xBA(\0"\0\x7F \0@A\xB4\xBA \0(\x006\0\v  \0(6<A\xE4\xCC \0( 6\0A\xDC\xCC \0)7\0A\xD4\xCC \0)7\0A\xCC\xCC \0)\b7\0 \0 \0((\0\0A\0A\x7F\v@ A\xD8\v6A\xE34 Aj\x97\f\vA\xDC\xCC/\0E@A\xC4\xBAA\xCC\xCC(\x006\0\v A\xD8\v6\0A\x8B4 \x97A\xD4\xBA(\0\0\f\v A\xD8\v6 A\x923 A j\x97\f\v A\xD8\v60A\xE92 A0j\x97\v A@k$\0\v7\x7F#\0Ak"$\0 \0\xB2"E@  \x006 A\x006\0A\x89. \x97\v Aj$\0 \v\x07\0 \0\xB3\v\xFC \b\x7F#\0Ak"$\0 \0(\0 \0 \0,\0\v"A\0H"\x1B!A\xA8\xE5(\0AF!  \0(  \x1B"A\xFF\xFFq"\0\x7F -\0\0A\0\v6\b  6  \x006\0A\xC8+ \x97A\xA8\xE5(\0"AF@#\0Ak"$\0@A\xAC\xE5(\0"E\r\0 AG\r\0 \0E\r\0  \x006\f    A\fjd\v Aj$\0\v !\0#\0A0k"$\0@ A\xFF\xFFq"E\r\0@@@@@@@@A\xB0\xBB(\0\0\v Ak! \0Aj@A\xE4\xBA(\0"@ \0-\0\0 \0\r\vA\xB0\xBBA\x006\0A\xB0\xBAA\0:\0\0A\xAD\xCCA\0:\0\0\v!\0\f\v Ak! \0Aj!@ \0-\0\0"A\x1BG@ A\xF0G\rA\x80\xBBA\x8C\xBB6\0A\xF8\xBAA6\0A\x84\xBBAAA\x88\xBB(\0\x1B6\0\f\vA\xB0\xBAA:\0\0 !\0\f\vA\xB0\xBA-\0\0@A\xB0\xBAA\0:\0\0@@@@@ 
1688
+ \0\b\b\b\b\b\b\b\vA\xF0!\f\vA\xB8\xBBA\xA8\xBCA#A\0H@ !\0\f \vA\x80\xBBA\x8C\xBB6\0A\xF8\xBAA6\0A\xB0\xBBA6\0A\x84\xBBAAA\x88\xBB(\0\x1B6\0 !\0\f\b\vA\xAD\xCCA\0:\0\0A\xB0\xBBA6\0 !\0\f\x07\vA\x1B! A+G\r\vA\xAD\xCC-\0\0@A\xE4\xBA(\0"\0\r\v !\v@@A\xF8\xBA(\0\0\0\v ( !\0\f\v A\xDC6\0A\xCF2 \x97A\xF8\xBAA\x006\0 !\0\f\v A\xDC6  A\xFF\xFFq"6$A\xAD. A j\x97A\xB8\xBB \0 A%"A{F!\x07@ A{G A\0Hq\r\0@A\xC8\xBB(\0"A\xFF\xFFqA\x80\bG@A\x80\b k!A\xA8\xBC!@ -\0\0(@A\xF8\xBA(\0\r\0A\x80\xBBA\x8C\xBB6\0A\xF8\xBAA6\0A\x84\xBBAAA\x88\xBB(\0\x1B6\0A\xFC\xBA(\0"\bE\r\0 \bA\xF0\xBA(\0\0\0A\xFC\xBAA\x006\0\v Aj! Ak"A\xFF\xFFq\r\0\v\v AF@A\xC0\xBB(\0! A\xCC\xBB(\x006  6 A\xDC6A\xC9- Aj\x97 A\xBC\xBB(\0"k!A\xB0\xBB(\0AF@&A\xB0\xBBA\x006\0\v \0 j!\0A\xF8\xBAA\x006\0\f\v@ \x07E@A\xC8\xBB(\0\r\vA\xB8\xBBA\xA8\xBCA$"A{F!\x07 A\0N\r A{F\r\f\v\vA\xB8\xBBA\xA8\xBCA\0$ A\0N\r\vA\xB0\xBB(\0AF@&A\xB0\xBBA\x006\0\vA\xF8\xBAA\x006\0\f\vA\xB0\xBA  \0\0"\0:\0\0A\xAD\xCC \0:\0\0 !\0\f\v A\xF0qA\xC0F@A\xAC\xCC :\0\0\vA\xE4\xBA(\0"\0E@ !\0\f\vA\xB0\xBA  \0\0"\0:\0\0A\xAD\xCC \0:\0\0 !\0\f\vA\xFC\xBA(\0"\0E@ !\0\f\v \0A\xF0\xBA(\0\0\0A\xFC\xBAA\x006\0 !\0\v A\xFF\xFFq\r\0\v\v A0j$\0 Aj$\0\v\xA4\x7F@A\xA8\xE5(\0AG@ \0!\f\vA\x80\xD5!A\x80  A\x80O\x1B"@A\x80\xD5 \0 \xFC
1689
+ \0\0\v#\0Ak"\0$\0@A\xAC\xE5(\0"E\r\0A\xA8\xE5(\0AG\r\0 E\r\0 \0 6\f A\x80\xD5A\x80\xD5 \0A\fjb\v \0Aj$\0\vA\xEC\xCC ;\0A\xE8\xCC 6\0A\xD8\xBA(\0\0A\0\v\xD1 \x7F\b~#\0A\xA0k"$\0A!\0@\xB4"\x07E@A\x7F!\0\f\v \x07A6\0 A\xA0?-\0\0:\0\xD0 A\x98?)\x007\xC8 A\x90?)\x007\xC0 A\x88?)\x007\xB8 A\x80?)\x007\xB0 \x07B\x80\x82\x80\x80\x80\xC0\x007\b \x07A\x006@#\0A\xE0\0k"\0$\0A\x7F! \0A@k"gE@  \0)X7\0\x98  \0)P7\0\x90  \0)H7\0\x88  \0)@7\0\x80 \0 A\xE0j \x81 \0A\xC0\0hA\0!\v \0A\xE0\0j$\0 A\0H@A!\0\f\v A\xB0jA A\x80j A\xE0j A\xF0\0j\`A\0H@A!\0\f\v#\0A\xC0k"$\0 B\xF9\xC2\xF8\x9B\x91\xA3\xB3\xF0\xDB\x007\` B\xEB\xFA\x86\xDA\xBF\xB5\xF6\xC17X B\x9F\xD8\xF9\xD9\xC2\x91\xDA\x82\x9B\x7F7P B\xD1\x85\x9A\xEF\xFA\xCF\x94\x87\xD1\x007H B\xF1\xED\xF4\xF8\xA5\xA7\xFD\xA7\xA5\x7F7@ B\xAB\xF0\xD3\xF4\xAF\xEE\xBC\xB7<78 B\xBB\xCE\xAA\xA6\xD8\xD0\xEB\xB3\xBB\x7F70 B\x88\x92\xF3\x9D\xFF\xCC\xF9\x84\xEA\x007( A\xE8\0jA\0A\x94\xFC\v\0 A(j" A\xF0\0j"\0A ~  A\xE0j"A ~  A\xB0jA ~  A\x80j"\x80  p#\0A\xA0\bk"$\0 \x005\0<! \x005\x008!
1690
+ \x005\x004!\v \x005\x000!\f \x005\0,!\r \x005\0(! \x005\0$! \x005\0 !A\x7F!@ A\xE0j" s\r\0 A\xC0j \0s\r\0
1691
+ \v \f \r   B\x93\xD8\xA8\x98
1692
+ |B \x88|B\xE5\xB9\xB6\xBF
1693
+ |B \x88|B\xA9\xC6\xA1\xE8|B \x88|B\xA1\x8C\x84\xD9|B \x88|B\xFF\xFF\xFF\xFF|B \x88|B\xFF\xFF\xFF\xFF|B \x88|B\xFF\xFF\xFF\xFF|B \x88 |B\x80\x80\x80\x80V\r\0 \0A j! A\x80\x07j"  A\xE0\0j"\0t A\x80j"\b u \0  \bv A\xA0j \0uA\xFC!\0@@  \0Avj-\0\0 \0A\x07qvAq@ \0!\f\v  \0Ak"Avj-\0\0 A\x07qvAq\r  \0Ak"Avj-\0\0 A\x07qvAq\r \0AJ \0Ak!\0\r\0\vA\0!\v A\xFF:\0^ A\xFF\xFF;\\  Aj":\0_A\xFC!\0@@  \0Avj-\0\0 \0A\x07qvAq@ \0!\f\v  \0Ak"Avj-\0\0 A\x07qvAq\r  \0Ak"Avj-\0\0 A\x07qvAq\r \0AJ \0Ak!\0\r\0\vA\0!\v A\xFF\xFF;X B\x007\xE0 B\x007\xE8 B\x007\xF0 B\x007\xF8 B\x007\x80 B\x007\x8C B\x007\x94 B\x007\x9C B\x007\xA4 B\x80\x80\x80\x807\xAC A6\x88  Aj"\0:\0[ A\xFF:\0Z A\xB4jA\0A\xCC\0\xFC\v\0 A\xFFq" \0A\xFFq"\0 \0 I\x1B!\0@ A\xE0j"\b \b A\xE0\0jt A\xDC\0jA \0" w!\0 A\xD8\0jA  w!@ \0A\0J@ \b \b A\x80j \0AvA\xA0ljv\f\v \0A\0N\r\0  A\x80jA\0 \0kAvA\xA0lj"\0(\x006\xA8\x07  \0(6\xAC\x07  \0(\b6\xB0\x07  \0(\f6\xB4\x07  \0(6\xB8\x07  \0(6\xBC\x07  \0(6\xC0\x07  \0(6\xC4\x07  \0( 6\xC8\x07  \0($6\xCC\x07  \0((6\x80\x07  \0(,6\x84\x07  \0(06\x88\x07  \0(46\x8C\x07  \0(86\x90\x07  \0(<6\x94\x07  \0(@6\x98\x07  \0(D6\x9C\x07  \0(H6\xA0\x07  \0(L6\xA4\x07  \0(P6\xD0\x07  \0(T6\xD4\x07  \0(X6\xD8\x07  \0(\\6\xDC\x07  \0(\`6\xE0\x07  \0(d6\xE4\x07  \0(h6\xE8\x07  \0(l6\xEC\x07  \0(p6\xF0\x07  \0(t6\xF4\x07 A\0 \0(xk6\xF8\x07 A\0 \0(|k6\xFC\x07 A\0 \0(\x80k6\x80\b A\0 \0(\x84k6\x84\b A\0 \0(\x88k6\x88\b A\0 \0(\x8Ck6\x8C\b A\0 \0(\x90k6\x90\b A\0 \0(\x94k6\x94\b A\0 \0(\x98k6\x98\b A\0 \0(\x9Ck6\x9C\b A\xE0j"\0 \0 A\x80\x07jv\v@ A\0J@ A\xE0j"\0 \0 AvA\xF8\0lA\xF0\xC3\0j A0j x\f\v A\0N\r\0 A\0 kAvA\xF8\0l"\0)\x90D7\xC8\x07  \0)\x88D7\xC0\x07  \0)\x80D7\xB8\x07  \0)\xF8C7\xB0\x07  \0)\xF0C7\xA8\x07  \0)\xB8D7\xA0\x07  \0)\xB0D7\x98\x07  \0)\xA8D7\x90\x07  \0)\xA0D7\x88\x07  \0)\x98D7\x80\x07 A\0 \0(\xE4Dk6\xF4\x07 A\0 \0(\xE0Dk6\xF0\x07 A\0 \0(\xDCDk6\xEC\x07 A\0 \0(\xD8Dk6\xE8\x07 A\0 \0(\xD4Dk6\xE4\x07 A\0 \0(\xD0Dk6\xE0\x07 A\0 \0(\xCCDk6\xDC\x07 A\0 \0(\xC8Dk6\xD8\x07 A\0 \0(\xC4Dk6\xD4\x07 A\0 \0(\xC0Dk6\xD0\x07 A\xE0j"\0 \0 A\x80\x07j A0j x\v Ak!\0 A\0J\r\0\v A\x80\x07j" A\xC0j"u A\xE0j"\0 \0 v \0 \0 t \0 \0 t \0 \0 t A\xE0\0j \0y )x )p )h )\`B\x85\x84\x84\x84" B \x88 B\xFF\xFF\xFF\xFF\x83\x84B}B \x88\xA7AqAk!\v A\xA0\bj$\0 A\xC0j$\0A\x7FA\0 \x1B@A!\0\f\v B\x98\xB2\xE8\xD8\xC1\xA3\x87\x8F7h B\x90\xA2\xC8\x98\xC1\xA2\x85\x8B7\` B\x88\x92\xA8\xD8\xC0\xA1\x83\x877X B\x80\x82\x88\x98\xC0\xA0\x81\x83\x077P\xB4"E@A!\0\f\v A6\0\x7F B\x80\x82\x80\x80\x80\xC0\x007\b A\x006A\x07 \x07 A\xD0\0j"\0AaA\0H\r\0A\b  \0A\0aA\0H\r\0 B\xDA\xB6\xE1\xCA\xE5\xEB\x97\xAE\xDD\x0070 B\xD2\xA6\xC1\x8A\xE5\xEA\x95\xAA\xD5\x0078 B\xCA\x96\xA1\xCA\xE4\xE9\x93\xA6\xCD\x007@ B\xC2\x86\x81\x8A\xE4\xE8\x91\xA2\xC5\x007H B\xD2\xA6\xC1\x8A\xE5\xEA\x95\xAA\xD5\x007 B\xC2\x86\x81\x8A\xE4\xE8\x91\xA2\xC5\x007( B\xCA\x96\xA1\xCA\xE4\xE9\x93\xA6\xCD\x007 B\xDA\xB6\xE1\xCA\xE5\xEB\x97\xAE\xDD\x007 A 6\fA \x07 Aj"\0 \0 A\fjb\r\0A
1694
+ ) )0\x85 ) )8\x85\x84 ) A@k)\0\x85 )( )H\x85\x84\x84P\r\0 A 6\bA\v  \0 \0 A\bjd\r\0A\0A\f ) )0\x85 ) )8\x85\x84 ) A@k)\0\x85 )( )H\x85\x84\x84P\x1B\v!\0 \xB3\v \x07\xB3\v A\xA0j$\0 \0\v\xE8\x7FA\x7F!@ \0( \0,\0\v" A\0H"\x1BA G\r\0 ( ,\0\v" A\0H"\x1BA G\r\0 \0(\0 \0 \x1B! (\0  \x1B!\0A\0!#\0A\xA0k"$\0@\x7F A\0 \0\x1BE@A\x99!A\x7F"A\xB0\xB7(\0\r\f\vA\xC8\xE5 )\07\0A\xC0\xE5 )\07\0A\xB8\xE5 )\0\b7\0A\xB0\xE5 )\0\x007\0A\xD0\xE5 \0)\0\x007\0A\xD8\xE5 \0)\0\b7\0A\xE0\xE5 \0)\07\0A\xE8\xE5 \0)\07\0A\xF0\xE5A:\0\0A\xB0\xB7(\0E\r A 6\x94 A\xC36\x90A\xAB) A\x90j\x97 A\xB0\xE5-\0\x006\x80A\xA0 A\x80j\x97 A\xB1\xE5-\0\x006\xF0A\xA0 A\xF0j\x97 A\xB2\xE5-\0\x006\xE0A\xA0 A\xE0j\x97 A\xB3\xE5-\0\x006\xD0A\xA0 A\xD0j\x97 A\xB4\xE5-\0\x006\xC0A\xA0 A\xC0j\x97 A\xB5\xE5-\0\x006\xB0A\xA0 A\xB0j\x97 A\xB6\xE5-\0\x006\xA0A\xA0 A\xA0j\x97 A\xB7\xE5-\0\x006\x90A\xA0 A\x90j\x97A\x8E%!A\x8E%A\0\x97\x9BA\xB0\xB7(\0E\r A 6\x84 A\xE1'6\x80A\xAB) A\x80j\x97 A\xD0\xE5-\0\x006pA\xA0 A\xF0\0j\x97 A\xD1\xE5-\0\x006\`A\xA0 A\xE0\0j\x97 A\xD2\xE5-\0\x006PA\xA0 A\xD0\0j\x97 A\xD3\xE5-\0\x006@A\xA0 A@k\x97 A\xD4\xE5-\0\x0060A\xA0 A0j\x97 A\xD5\xE5-\0\x006 A\xA0 A j\x97 A\xD6\xE5-\0\x006A\xA0 Aj\x97 A\xD7\xE5-\0\x006\0A\xA0 \x97A\0\v! A\0\x97\x9B\v A\xA0j$\0\v \v\x81\x7F~#\0Ak"$\0A\x80\b\x9F#\0A\xB0k"\0$\0A\xB0\xB7(\0@ \0A\xA8\xE5(\x006\xA0 \0A\xF0\xE5-\0\x006\xA4A\xD0 \0A\xA0j\x97\x9B\v@A\xAC\xE5(\0E@Az!A\xB0\xB7(\0E\rA\xA8A\0\x97\x9B\f\vA\xF0\xE5-\0\0E@A\x7F!A\xB0\xB7(\0E\rA\xF3A\0\x97\x9B\f\vA\xA0\xE6g\x7FA\x7FA\x80\xE6A\xD0\xC3\0jA\0\vA\xB0\xB7(\0!A\0H@ @A\xE6A\0\x97\x9B\vA\xA8\xE5A6\0A}!\f\vA! @ \0A 6\x94 \0A\xA96\x90A\xAB) \0A\x90j\x97 \0A\x80\xE6-\0\x006\x80A\xA0 \0A\x80j\x97 \0A\x81\xE6-\0\x006pA\xA0 \0A\xF0\0j\x97 \0A\x82\xE6-\0\x006\`A\xA0 \0A\xE0\0j\x97 \0A\x83\xE6-\0\x006PA\xA0 \0A\xD0\0j\x97 \0A\x84\xE6-\0\x006@A\xA0 \0A@k\x97 \0A\x85\xE6-\0\x0060A\xA0 \0A0j\x97 \0A\x86\xE6-\0\x006 A\xA0 \0A j\x97 \0A\x87\xE6-\0\x006A\xA0 \0Aj\x97A\x8E%A\0\x97\x9BA\xB0\xB7(\0E!\v \0A\xAEjA\0A\x82\xFC\v\0A\xDE\xE6A\x98\xE6)\0"7\0\0 \0A:\0\xB5 \0A\x006\0\xB1 \0A\x80\xE6)\x007\0\xB6A\xC0\xE6 \0)\0\xB07\0\0 \0A\x88\xE6)\x007\0\xBEA\xC8\xE6 \0)\0\xB87\0\0 \0A\x90\xE6)\x007\0\xC6A\xD0\xE6 \0)\0\xC07\0\0 \0 7\0\xCEA\xD8\xE6 \0)\0\xC87\0\0 \0A(:\0\xAD \0A&:\0\xAFA\xA8\xE5A6\0A\xE8\xE6A\x006\0A\xEC\xE6A\x006\0 E@ \0A&6\b \0B\xA9\x80\x80\x8007\0A\xBF% \0\x97\x9B\v \0A\xADjA)^A\xB0\xB7(\0@A\xABA\0\x97\x9B\vA\0!\v \0A\xB0j$\0  6\0A\xD6* \x97 Aj$\0 \v\0A\xB0\xB7 \0A\0G6\0\v \0A\xA8\xE5(\0\v\xA4\0A\x98\xE6B\x007\0A\x90\xE6B\x007\0A\x88\xE6B\x007\0A\x80\xE6B\x007\0A\xA0\xE6B\x007\0A\xA8\xE6B\x007\0A\xB0\xE6B\x007\0A\xB8\xE6B\x007\0A\xC0\xE6B\x007\0\0A\xC8\xE6B\x007\0\0A\xD0\xE6B\x007\0\0A\xD8\xE6B\x007\0\0A\xDE\xE6B\x007\0\0A\xE8\xE6A\x006\0A\xF1\xE6A\0:\0\0A\xF0\xE6A\0:\0\0A\xEC\xE6A\x006\0A\xA8\xE5A\x006\0\v:\x7F#\0Ak"$\0  \x006\0 A\xF0A\xEF \0\x1B6A\x82, \x97A\xDC\xBA \x006\0 Aj$\0\v\x8C\x7F~#\0A k"$\0A\xD4\xBA 6\0A\xD8\xBA \x006\0A\xF0\xBAA6\0A\xEC\xBAA6\0A\xE8\xBAA6\0A\xE4\xBAA\x076\0A\xE0\xBAA\b6\0A\xF4\xBAA\x006\0#\0Ak"$\0A\xB0\xB7(\0@ A\xCE\f6 A\xCE\f6\0A\xC9 \x97\x9B\vA\xA4\xE5A
1695
+ 6\0A\xA0\xE5A 6\0A\x80\xE6B\x007\0A\x88\xE6B\x007\0A\x90\xE6B\x007\0A\x98\xE6B\x007\0A\xA0\xE6B\x007\0A\xA8\xE6B\x007\0A\xB0\xE6B\x007\0A\xB8\xE6B\x007\0A\xC0\xE6B\x007\0\0A\xC8\xE6B\x007\0\0A\xD0\xE6B\x007\0\0A\xD8\xE6B\x007\0\0A\xDE\xE6B\x007\0\0A\xA8\xE5A\x006\0A\xE8\xE6A\x006\0A\xF1\xE6A\0:\0\0A\xEC\xE6A\x006\0A\xF0\xE6A\0:\0\0@A\xAC\xE5(\0E@A\xAC\xE5\xB4"6\0 E@A\xB0\xB7(\0E\rA\xE0\x1BA\0\x97\x9B\f\v A6\0 B\x80\x82\x80\x80\x80\xC0\x007\b A\x006A\xB0\xB7(\0E\rA\xA7A\0\x97\x9B\f\vA\xB0\xB7(\0E\r\0A\xE2\bA\0\x97\x9B\v Aj$\0A\x7F!@A\xEC\xBA(\0"E\r\0A\xF0\xBA(\0"E\r\0A\xE0\xBA)\0!\bA\xE8\xBA(\0!A\xF4\xBA(\0!\x07A\0!A\xFC\xBAA\0A\xB4\xFC\v\0A\xB0\xBBA\x006\0A\xF8\xBAA\x006\0A\xF4\xBA \x076\0A\xF0\xBA 6\0A\xEC\xBA 6\0A\xE8\xBA 6\0A\xE0\xBA \b7\0\v@ A\0H@  6\0A\xFF. \x97\f\v  6  \x006  6A\xF13 Aj\x97\v A j$\0 \v\xCE\x7F#\0A0k"$\0A\xB4\xCCA:\0\0A\xB0\xCCA\xC4\xBA(\x006\0A\xB8\xCC (\0"6\0A\xBC\xCC -\0":\0\0  6 A\xC4\xCCA\xC4\xCC-\0\0Aj:\0\0A\xC0\xCC \0;\0  6  6  \x006 A\xC5\b6A\xC5\xCCA\0:\0\0A\xC8\xCCA\x006\0A\xC2\xCCA\0;\0A\xC63 Aj\x97@*A\0H@A\x7F!\f\v A\xC5\b6\0A\xBA3 \x97\v A0j$\0 \v\xDC\x7F|#\0A\xD0\0k"$\0A\xB4\xCC \0:\0\0A\xB0\xCCA\xC4\xBA(\x006\0A\xB8\xCC (\0"6\0A\xBC\xCC -\0"\b:\0\0A\xC0\xCC ;\0A\xC2\xCCA\0;\0A\xC8\xCCA\x006\0 (A\x8C\0"! A O@ \vA\x8C\xE5-\0\0AqE@AA\x88\xC3\0A!A\x8C\xE5A:\0\0A\x88\xE5 6\0\v A O@ \v  6@ A\x006<A\x88\xE5(\0 A\0 A<j A@k (<"@ \v\xFC! A O@ \v@@ E@A\xC2\xCC/\0!\f\v \xB2"\x07E@  64 A\x0060A\x89. A0j\x97A\x7F!\f\vA\xE3$\x07!A\x94\xE5-\0\0AqE@AA\x90\xC3\0A! A\x94\xE5A:\0\0A\x90\xE5 6\0\v ("A O@ \v  \x076H  6@ A\x006<A\x90\xE5(\0 A\xCE\f A<j A@k (<"@ \v A O@ \vA\xC8\xCC \x076\0A\xC2\xCC ;\0\v  6  \b6$  A\xFF\xFFq6(A\0!A\xC4\xCCA\xC4\xCC-\0\0Aj:\0\0A\xC5\xCCA\0:\0\0 A\xBF
1696
+ 6  \x006  6  6A\xB00 Aj\x97*A\0H@A\x7F!\f\v A\xBF
1697
+ 6\0A\xBA3 \x97\v A\xD0\0j$\0 \v\x9F\x7F|#\0Ak"$\0 (! /!@A\x9C\xE5-\0\0Aq@A\x98\xE5(\0!\f\vAA\x9C\xC3\0A!A\x9C\xE5A:\0\0A\x98\xE5 6\0\v  6\f  6\b A\x006 A\0A\0 Aj A\bj! (! \0 \xFC6 @ \v Aj$\0\v\f\0 \0 (6\v2\0 \0A\xE4\xCC(\x006 \0A\xDC\xCC)\x007 \0A\xD4\xCC)\x007\b \0A\xCC\xCC)\x007\0\v\xA3\x7F|#\0Ak"$\0A\xE8\xCC(\0!A\xEC\xCC/\0!@A\x9C\xE5-\0\0Aq@A\x98\xE5(\0!\f\vAA\x9C\xC3\0A!A\x9C\xE5A:\0\0A\x98\xE5 6\0\v  6\f  6\b A\x006 A\0A\0 Aj A\bj! (! \0 \xFC6 @ \v Aj$\0\v\xAB\x07\x7FA\xA4?A\xA1A\xBC?A\vA\xBE?A\f\bA\xBA"\0A\x006\0A\xBA"A\x006\0A\xA4?A\x91A\xA0\xA3A\xC1?A\r \0A\xA0\xA3A\xC5?A  A\xBA"\0A6\0A\xBA"A6\0A\xA4?A\x87A\xCC\xA2A\xCA?A \0A\xCC\xA2A\xCE?A  A\xA4?
1698
+ A\xD4?A\xF4?A\x9C\xC0\0A\0A\xC5\xC0\0AA\xC8\xC0\0A\0A\xC8\xC0\0A\0A\x82\rA\xCA\xC0\0A\vA\xD4?AA\xD0\xC0\0A\xD4\xC0\0AA\fA\xBA"\0A\x006\0A\xBA"A\x006\0A\xD4?A\x83%A\xA0\xA3A\xD7\xC0\0A \0A\xA0\xA3A\xDB\xC0\0A \rA\xBA"\0A6\0A\xBA"A6\0A\xD4?A\xDB$A\xCC\xA2A\xE0\xC0\0A \0A\xCC\xA2A\xE4\xC0\0A \rA\xBA"\0A\b6\0A\xBA"A\b6\0A\xD4?A\xFE\rA\xA4?A\xE9\xC0\0A \0A\xA4?A\xED\xC0\0A \rA\xBA"\0A6\0A\xBA"A6\0A\xD4?A\xF4$A\xF0\xA2A\xF2\xC0\0A\x1B \0A\xF0\xA2A\xF6\xC0\0A \rA\xBA"\0A6\0A\xBA"A6\0A\xD4?A\xEA$A\xF0\xA2A\xF2\xC0\0A\x1B \0A\xF0\xA2A\xF6\xC0\0A \rA\xBA"\0A6\0A\xBA"A6\0A\xD4?A\xD3$A\xCC\xA2A\xE0\xC0\0A \0A\xCC\xA2A\xE4\xC0\0A \rA\xBA"\0A6\0A\xBA"A6\0A\xD4?A\xCB$A\xCC\xA2A\xE0\xC0\0A \0A\xCC\xA2A\xE4\xC0\0A \rA\xBA"\0A6\0A\xBA"A6\0A\xD4?A\xC1$A\x80\xC1\0A\x9B\xC1\0A \0A\xD4?A\x9F\xC1\0A \rA\xFB\vAA\xA4\xC1\0A\xB0\xC1\0A!A"A\0A\0A\xCD
1699
+ AA\xB8\xC1\0A\xBC\xC1\0A#A$A\0A\0A\xFEAA\xC0\xC1\0A\x93\xC2\0A%A&A\0A\0A\xB4AA\xB8\xC1\0A\xBC\xC1\0A#A'A\0A\0A\x98AA\xB8\xC1\0A\xBC\xC1\0A#A(A\0A\0A\xEE\rAA\x98\xC2\0A\x9C\xC2\0A)A*A\0A\0A\xCAAA\xA0\xC2\0A\xA8\xC2\0A+A,A\0A\0A\xA8AA\xAC\xC2\0A\xB4\xC2\0A-A.A\0A\0A\x93 AA\xB8\xC2\0A\xC0\xC2\0A/A0A\0A\0A\xBE\bAA\xC4\xC2\0A\xD0\xC2\0A1A2A\0A\0A\xB8
1700
+ AA\xE0\xC2\0A\xF4\xC2\0A3A4A\0A\0A\xAFAA\xFC\xC2\0A\x80\xC3\0A5A6A\0A\0A\xD8AA\xFC\xC0\0A\x83\xC3\0A7A8A\0A\0\v\x7FA\b\xBA"\0B\x007\0 \0\v\f\0 \0@ \0\xB3\v\v\r\0  \0(\0j(\0\v\0  \0(\0j 6\0\v\r\0  \0(\0j-\0\0\v\0  \0(\0j :\0\0\v\0A\xD4?\v\x07\0 \0\b\0\v'\x7FA\xBA"\0A\x006 \0B\x007 \0B\x007\b \0B\x007\0 \0\v\x7F \0(\0!\0A\b\xBA" \0 j)\x007\0 \v\0  \0(\0j )\x007\0\v\r\0  \0(\0j/\0\v\0  \0(\0j ;\0\v(\x7F#\0Ak"$\0 A\bj  \0(\0\0 (\f Aj$\0\v\0   \0(\0\0\v\v\0   \0\0\v\xD0\x7F#\0A k"$\0@ (\0"A\xF7\xFF\xFF\xFF\x07O\r\0@@ A\vO@ A\x07r"Aj\xBA!  A\xFF\xFF\xFF\xFF\x07k6  6  6\f\v  :\0 Aj! E\r\v E\r\0  Aj \xFC
1701
+ \0\0\v  jA\0:\0\0 (\0"A\xF7\xFF\xFF\xFF\x07O\r\0@@ A\vO@ A\x07r"Aj\xBA!  A\xFF\xFF\xFF\xFF\x07k6  6\b  6\f\f\v  :\0 A\bj! E\r\v E\r\0  Aj \xFC
1702
+ \0\0\v  jA\0:\0\0 Aj A\bj \0\0 ,\0A\0H@ ( (\b\xB3\v ,\0A\0H@ ( (\xB3\v A j$\0\v\\\0\v\x07\0 \0\0\v \0  \0\0\0\v\xB6\x7F#\0Ak"$\0 (\0"A\xF7\xFF\xFF\xFF\x07I@@@ A\vO@ A\x07r"Aj\xBA!  A\xFF\xFF\xFF\xFF\x07k6\f  6  6\b\f\v  :\0 Aj! E\r\v E\r\0  Aj \xFC
1703
+ \0\0\v  jA\0:\0\0 Aj \0\0\0 ,\0A\0H@ (\f (\xB3\v Aj$\0\v\\\0\v2\x7F~#\0Ak"$\0  )\0"7\0  7\b   \0\0 Aj$\0\vV\x7F~#\0A k"$\0 )\0!  6  7  7\b   A\bj Aj \0 \0 ("A O@ \v A j$\0\vM\x7F#\0A k"$\0 Aj \0\0\0A\xBA"\0 (6 \0 )7 \0 )\f7\b \0 )7\0 A j$\0 \0\v#\x7F#\0Ak"$\0 A\bj \0\0\0 (\f Aj$\0\vq\x7FA\xD8\0\xB2A\xD0\0j"A\x9C\xA56\0A\xE9\xA3"A\rj\xBA"\0A\x006\b \0 6 \0 6\0 \0A\fj!\0 Aj"@ \0A\xE9 \xFC
1704
+ \0\0\v  \x006 A\xCC\xA56\0 A\xD8\xA5A9\0\vz\x7F#\0A k"$\0A\xB0\xB7(\0@  \x006  6A\xAB) Aj\x97A\b  A\bO\x1B!\0@   j-\0\x006\0A\xA0 \x97 Aj" \0G\r\0\v A\bK@A\x8E%A\0\x97\v\x9B\v A j$\0\v\xAB\x7F#\0A\xC0k"$\0 A\x9B;0 @ A0jAr \0 \xFC
1705
+ \0\0\v Aj!@A\xB0\xB7(\0E\r\0  6  6$ A\xCE\fA\xEFA\xA0\xE5(\0\x1B6(A\x87 A j\x97\x9BA\xB0\xB7(\0E\r\0 A\x82(6  6A\xAB) Aj\x97A\b  A\bO\x1B!A\0!\0@  A0j \0j-\0\x006\0A\xA0 \x97 \0Aj"\0 G\r\0\v AK@A\x8E%A\0\x97\v\x9B\v@A\xA0\xE5(\0"\0@ A0j  \0\0A\xB0\xB7(\0E\rA\x8EA\0\x97\x9B\f\vA\xB0\xB7(\0E\r\0A\xDFA\0\x97\x9B\v A\xC0j$\0\vp\x7F#\0Ak"$\0A\xB0\xB7(\0@  \x006\0 A\xCE\fA\xEFA\xA4\xE5(\0\x1B6A\xFA \x97\x9B\v@A\xA4\xE5(\0"@ \0 \0\0\f\vA\xB0\xB7(\0E\r\0A\xF9A\0\x97\x9B\v Aj$\0\v\xCB\x7F~#\0A\x80k"$\0  )\07x  )\07p  )\0\b7h  )\0\x007\` A j"  A\xE0\0j\x81A\x7F! )\0\b )\0\b\x85 )\0\0 )\0\0\x85\x84 )\0 )\0\x85\x84 )\0 )\0\x85\x84"\vB \x88 \vB\xFF\xFF\xFF\xFF\x83\x84B}B \x88\xA7Aq@#\0A\xC0k"$\0 B\xF9\xC2\xF8\x9B\x91\xA3\xB3\xF0\xDB\x007\xE0 B\xEB\xFA\x86\xDA\xBF\xB5\xF6\xC17\xD8 B\x9F\xD8\xF9\xD9\xC2\x91\xDA\x82\x9B\x7F7\xD0 B\xD1\x85\x9A\xEF\xFA\xCF\x94\x87\xD1\x007\xC8 B\xF1\xED\xF4\xF8\xA5\xA7\xFD\xA7\xA5\x7F7\xC0 B\xAB\xF0\xD3\xF4\xAF\xEE\xBC\xB7<7\xB8 B\xBB\xCE\xAA\xA6\xD8\xD0\xEB\xB3\xBB\x7F7\xB0 B\x88\x92\xF3\x9D\xFF\xCC\xF9\x84\xEA\x007\xA8 A\xE8j"
1706
+ A\0A\x94\xFC\v\0 A\xA8j" A ~  A\xE0\0j"\x80  i B\xF9\xC2\xF8\x9B\x91\xA3\xB3\xF0\xDB\x007\xE0 B\xEB\xFA\x86\xDA\xBF\xB5\xF6\xC17\xD8 B\x9F\xD8\xF9\xD9\xC2\x91\xDA\x82\x9B\x7F7\xD0 B\xD1\x85\x9A\xEF\xFA\xCF\x94\x87\xD1\x007\xC8 B\xF1\xED\xF4\xF8\xA5\xA7\xFD\xA7\xA5\x7F7\xC0 B\xAB\xF0\xD3\xF4\xAF\xEE\xBC\xB7<7\xB8 B\xBB\xCE\xAA\xA6\xD8\xD0\xEB\xB3\xBB\x7F7\xB0 B\x88\x92\xF3\x9D\xFF\xCC\xF9\x84\xEA\x007\xA8
1707
+ A\0A\x94\xFC\v\0 A\0A\0~  A\x80jA ~  \0 ~  A\x80j"\x07\x80 A@k"\b \x07p  \bz B\xF9\xC2\xF8\x9B\x91\xA3\xB3\xF0\xDB\x007\xE0 B\xEB\xFA\x86\xDA\xBF\xB5\xF6\xC17\xD8 B\x9F\xD8\xF9\xD9\xC2\x91\xDA\x82\x9B\x7F7\xD0 B\xD1\x85\x9A\xEF\xFA\xCF\x94\x87\xD1\x007\xC8 B\xF1\xED\xF4\xF8\xA5\xA7\xFD\xA7\xA5\x7F7\xC0 B\xAB\xF0\xD3\xF4\xAF\xEE\xBC\xB7<7\xB8 B\xBB\xCE\xAA\xA6\xD8\xD0\xEB\xB3\xBB\x7F7\xB0 B\x88\x92\xF3\x9D\xFF\xCC\xF9\x84\xEA\x007\xA8
1708
+ A\0A\x94\xFC\v\0 A\0A\0~  A ~  A jA ~  \0 ~  \x07\x80 A j"\0 \x07p  )7\0  )7\0  )\b7\0\b  )\x007\0\0 A j \0  \br A\xC0\0h \bA h A\xC0j$\0A\0!\v A jA\xC0\0h A\x80j$\0 \v\x97\x7F#\0Ak"$\0 \0A\0:\0A\x7F! \0Aj" )\07\0  )\07\0  )\0\b7\0\b  )\0\x007\0\0 A 6\f \0A\bj!@\x7F E@   \0A\xE0j" A\fjfA\0H\rA\x80\f\v   \0A\x80j" A\fjfA\0H\rA\xE0\v! A 6\f   \0 j A\fjfA\0H\r\0  \0A8j\x83 \0A:\0\xC8 \0 \0)\0\xE87\0\xB0 \0 \0)\0\xE07\0\xA8  \0A\xCCj\x83 \0A:\0\xDC \0 \0)\0\x887\0\xC4 \0 \0)\0\x807\0\xBCA\0!\v Aj$\0 \v\0 \0-\0\x7FA\x7F \0A8j   (\0cA\0\v\v\xA57\x1B\x7F @ \0A\x80j! \0A\xF0j!@ \0-\0\x90"
1709
+ AF@#\0Ak"$\0 -\0!\f -\0!\r -\0! -\0 ! -\0\r! -\0! -\0
1710
+ ! -\0! -\0! -\0\x07! -\0! -\0\v! -\0\0!\v \0(\0!\x07 -\0!
1711
+ \0(! -\0\b! \0(\b!\b  -\0\f \0(\f" Avs-\0\xB0a:\0   \bAvs-\0\xB0a:\0 
1712
+ Avs-\0\xB0a:\0  \v \x07Avs-\0\xB0a:\0\0  \b sA\xFFq-\0\xB0a:\0  sA\xFFq-\0\xB0a:\0\f   sA\xFFq-\0\xB0a:\0  \x07 sA\xFFq-\0\xB0a:\0\r   \x07A\bvA\xFFqs-\0\xB0a:\0
1713
+   \bA\bvA\xFFqs-\0\xB0a:\0\b   \x07AvA\xFFqs-\0\xB0a:\0\x07   AvA\xFFqs-\0\xB0a:\0   \bAvA\xFFqs-\0\xB0a:\0   AvA\xFFqs-\0\xB0a:\0  \r A\bvA\xFFqs-\0\xB0a:\0\v  \f A\bvA\xFFqs-\0\xB0a:\0 \x82 \0(!\x07 \0(! \0(!\b -\0\v!\f -\0 !\r -\0! -\0! -\0\x07! -\0! -\0
1714
+ ! -\0\b! -\0\f! -\0\r! -\0! -\0! -\0\0!\v -\0!
1715
+ -\0!  -\0 \0(" Avs-\0\xB0a:\0   \bAvs-\0\xB0a:\0 
1716
+ Avs-\0\xB0a:\0  \v \x07Avs-\0\xB0a:\0\0  \b sA\xFFq-\0\xB0a:\0  sA\xFFq-\0\xB0a:\0\f   sA\xFFq-\0\xB0a:\0  \x07 sA\xFFq-\0\xB0a:\0\r   \x07A\bvA\xFFqs-\0\xB0a:\0
1717
+   \bA\bvA\xFFqs-\0\xB0a:\0\b   \x07AvA\xFFqs-\0\xB0a:\0\x07   AvA\xFFqs-\0\xB0a:\0   \bAvA\xFFqs-\0\xB0a:\0   AvA\xFFqs-\0\xB0a:\0  \r A\bvA\xFFqs-\0\xB0a:\0\v  \f A\bvA\xFFqs-\0\xB0a:\0 \x82 \0( !\x07 \0($! \0((!\b -\0\v!\f -\0 !\r -\0! -\0! -\0\x07! -\0! -\0
1718
+ ! -\0\b! -\0\f! -\0\r! -\0! -\0! -\0\0!\v -\0!
1719
+ -\0!  -\0 \0(," Avs-\0\xB0a:\0   \bAvs-\0\xB0a:\0 
1720
+ Avs-\0\xB0a:\0  \v \x07Avs-\0\xB0a:\0\0  \b sA\xFFq-\0\xB0a:\0  sA\xFFq-\0\xB0a:\0\f   sA\xFFq-\0\xB0a:\0  \x07 sA\xFFq-\0\xB0a:\0\r   \x07A\bvA\xFFqs-\0\xB0a:\0
1721
+   \bA\bvA\xFFqs-\0\xB0a:\0\b   \x07AvA\xFFqs-\0\xB0a:\0\x07   AvA\xFFqs-\0\xB0a:\0   \bAvA\xFFqs-\0\xB0a:\0   AvA\xFFqs-\0\xB0a:\0  \r A\bvA\xFFqs-\0\xB0a:\0\v  \f A\bvA\xFFqs-\0\xB0a:\0 \x82 \0(0!\x07 \0(4! \0(8!\b -\0\v!\f -\0 !\r -\0! -\0! -\0\x07! -\0! -\0
1722
+ ! -\0\b! -\0\f! -\0\r! -\0! -\0! -\0\0!\v -\0!
1723
+ -\0!  -\0 \0(<" Avs-\0\xB0a:\0   \bAvs-\0\xB0a:\0 
1724
+ Avs-\0\xB0a:\0  \v \x07Avs-\0\xB0a:\0\0  \b sA\xFFq-\0\xB0a:\0  sA\xFFq-\0\xB0a:\0\f   sA\xFFq-\0\xB0a:\0  \x07 sA\xFFq-\0\xB0a:\0\r   \x07A\bvA\xFFqs-\0\xB0a:\0
1725
+   \bA\bvA\xFFqs-\0\xB0a:\0\b   \x07AvA\xFFqs-\0\xB0a:\0\x07   AvA\xFFqs-\0\xB0a:\0   \bAvA\xFFqs-\0\xB0a:\0   AvA\xFFqs-\0\xB0a:\0  \r A\bvA\xFFqs-\0\xB0a:\0\v  \f A\bvA\xFFqs-\0\xB0a:\0 \x82 \0(@!\x07 \0(D! \0(H!\b -\0\v!\f -\0 !\r -\0! -\0! -\0\x07! -\0! -\0
1726
+ ! -\0\b! -\0\f! -\0\r! -\0! -\0! -\0\0!\v -\0!
1727
+ -\0!  -\0 \0(L" Avs-\0\xB0a:\0   \bAvs-\0\xB0a:\0 
1728
+ Avs-\0\xB0a:\0  \v \x07Avs-\0\xB0a:\0\0  \b sA\xFFq-\0\xB0a:\0  sA\xFFq-\0\xB0a:\0\f   sA\xFFq-\0\xB0a:\0  \x07 sA\xFFq-\0\xB0a:\0\r   \x07A\bvA\xFFqs-\0\xB0a:\0
1729
+   \bA\bvA\xFFqs-\0\xB0a:\0\b   \x07AvA\xFFqs-\0\xB0a:\0\x07   AvA\xFFqs-\0\xB0a:\0   \bAvA\xFFqs-\0\xB0a:\0   AvA\xFFqs-\0\xB0a:\0  \r A\bvA\xFFqs-\0\xB0a:\0\v  \f A\bvA\xFFqs-\0\xB0a:\0 \x82 \0(P!\x07 \0(T! \0(X!\b -\0\v!\f -\0 !\r -\0! -\0! -\0\x07! -\0! -\0
1730
+ ! -\0\b! -\0\f! -\0\r! -\0! -\0! -\0\0!\v -\0!
1731
+ -\0!  -\0 \0(\\" Avs-\0\xB0a:\0   \bAvs-\0\xB0a:\0 
1732
+ Avs-\0\xB0a:\0  \v \x07Avs-\0\xB0a:\0\0  \b sA\xFFq-\0\xB0a:\0  sA\xFFq-\0\xB0a:\0\f   sA\xFFq-\0\xB0a:\0  \x07 sA\xFFq-\0\xB0a:\0\r   \x07A\bvA\xFFqs-\0\xB0a:\0
1733
+   \bA\bvA\xFFqs-\0\xB0a:\0\b   \x07AvA\xFFqs-\0\xB0a:\0\x07   AvA\xFFqs-\0\xB0a:\0   \bAvA\xFFqs-\0\xB0a:\0   AvA\xFFqs-\0\xB0a:\0  \r A\bvA\xFFqs-\0\xB0a:\0\v  \f A\bvA\xFFqs-\0\xB0a:\0 \x82 \0(\`!\x07 \0(d! \0(h!\b -\0\v!\f -\0 !\r -\0! -\0! -\0\x07! -\0! -\0
1734
+ ! -\0\b! -\0\f! -\0\r! -\0! -\0! -\0\0!\v -\0!
1735
+ -\0!  -\0 \0(l" Avs-\0\xB0a:\0   \bAvs-\0\xB0a:\0 
1736
+ Avs-\0\xB0a:\0  \v \x07Avs-\0\xB0a:\0\0  \b sA\xFFq-\0\xB0a:\0  sA\xFFq-\0\xB0a:\0\f   sA\xFFq-\0\xB0a:\0  \x07 sA\xFFq-\0\xB0a:\0\r   \x07A\bvA\xFFqs-\0\xB0a:\0
1737
+   \bA\bvA\xFFqs-\0\xB0a:\0\b   \x07AvA\xFFqs-\0\xB0a:\0\x07   AvA\xFFqs-\0\xB0a:\0   \bAvA\xFFqs-\0\xB0a:\0   AvA\xFFqs-\0\xB0a:\0  \r A\bvA\xFFqs-\0\xB0a:\0\v  \f A\bvA\xFFqs-\0\xB0a:\0 \x82 \0(p!\x07 \0(t! \0(x!\b -\0\v!\f -\0 !\r -\0! -\0! -\0\x07! -\0! -\0
1738
+ ! -\0\b! -\0\f! -\0\r! -\0! -\0! -\0\0!\v -\0!
1739
+ -\0!  -\0 \0(|" Avs-\0\xB0a:\0   \bAvs-\0\xB0a:\0 
1740
+ Avs-\0\xB0a:\0  \v \x07Avs-\0\xB0a:\0\0  \b sA\xFFq-\0\xB0a:\0  sA\xFFq-\0\xB0a:\0\f   sA\xFFq-\0\xB0a:\0  \x07 sA\xFFq-\0\xB0a:\0\r   \x07A\bvA\xFFqs-\0\xB0a:\0
1741
+   \bA\bvA\xFFqs-\0\xB0a:\0\b   \x07AvA\xFFqs-\0\xB0a:\0\x07   AvA\xFFqs-\0\xB0a:\0   \bAvA\xFFqs-\0\xB0a:\0   AvA\xFFqs-\0\xB0a:\0  \r A\bvA\xFFqs-\0\xB0a:\0\v  \f A\bvA\xFFqs-\0\xB0a:\0 \x82 \0(\x80!\x07 \0(\x84! \0(\x88!\b -\0\v!\f -\0 !\r -\0! -\0! -\0\x07! -\0! -\0
1742
+ ! -\0\b! -\0\f! -\0\r! -\0! -\0! -\0\0!\v -\0!
1743
+ -\0!  -\0 \0(\x8C" Avs-\0\xB0a:\0   \bAvs-\0\xB0a:\0 
1744
+ Avs-\0\xB0a:\0  \v \x07Avs-\0\xB0a:\0\0  \b sA\xFFq-\0\xB0a:\0  sA\xFFq-\0\xB0a:\0\f   sA\xFFq-\0\xB0a:\0  \x07 sA\xFFq-\0\xB0a:\0\r   \x07A\bvA\xFFqs-\0\xB0a:\0
1745
+   \bA\bvA\xFFqs-\0\xB0a:\0\b   \x07AvA\xFFqs-\0\xB0a:\0\x07   AvA\xFFqs-\0\xB0a:\0   \bAvA\xFFqs-\0\xB0a:\0   AvA\xFFqs-\0\xB0a:\0  \r A\bvA\xFFqs-\0\xB0a:\0\v  \f A\bvA\xFFqs-\0\xB0a:\0 \x82 \0(\x9C"\v -\0s!\f \0(\x98"
1746
+ -\0s!\r \0(\x94" -\0\rs! \0(\x90" -\0\fs! -\0\v \vA\bvs! -\0\x07 \vAvs! -\0 \vAvs! -\0
1747
+
1748
+ A\bvs! -\0
1749
+ Avs! -\0
1750
+ Avs! -\0 A\bvs! -\0 Avs! -\0 Avs!\v -\0\b A\bvs!
1751
+ -\0 Avs!  -\0\0 Avs-\0\xB0a:\0\0 
1752
+ A\xFFq-\0\xB0a:\0
1753
+  A\xFFq-\0\xB0a:\0\b  A\xFFq-\0\xB0a:\0\x07  A\xFFq-\0\xB0a:\0  A\xFFq-\0\xB0a:\0  A\xFFq-\0\xB0a:\0  -\0\xB0a:\0  -\0\xB0a:\0  \v-\0\xB0a:\0  \rA\xFFq-\0\xB0a:\0  \fA\xFFq-\0\xB0a:\0\f  A\xFFq-\0\xB0a:\0\v  A\xFFq-\0\xB0a:\0  A\xFFq-\0\xB0a:\0  A\xFFq-\0\xB0a:\0\r \x82  \0(\xA0" -\0\fs:\0\f  -\0 Avs:\0  -\0\b A\bvs:\0\b  -\0 \0(\xA4"\rA\bvs:\0  \r -\0\rs":\0\r  \0(\xA8" -\0s":\0 \0(\xAC!\f  -\0 Avs-\0\xB0a:\0  -\0 \rAvs-\0\xB0a:\0  -\0\0 Avs-\0\xB0a:\0\0 -\0! -\0! -\0
1754
+ !  -\0 \fAvs-\0\xB0a:\0  \f -\0s":\0 -\0\v! -\0\x07! -\0\f! -\0 !\v -\0!
1755
+ -\0\b!   A\bvA\xFFqs-\0\xB0a:\0\b   \fAvA\xFFqs-\0\xB0a:\0   AvA\xFFqs-\0\xB0a:\0   \rAvA\xFFqs-\0\xB0a:\0  -\0\xB0a:\0
1756
+ 
1757
+ -\0\xB0a:\0\x07  A\xFFq-\0\xB0a:\0  A\xFFq-\0\xB0a:\0\f  \v-\0\xB0a:\0\v   \fA\bvA\xFFqs-\0\xB0a:\0  A\xFFq-\0\xB0a:\0  -\0\xB0a:\0\r \x82 \0(\xB0! \0(\xB4! \0(\xB8! -\0 -\0 -\0 -\0\x07 -\0\b!\f -\0 -\0
1758
+ -\0\v -\0! -\0\f -\0\r -\0 -\0\0!\v -\0!
1759
+ -\0!  -\0 \0(\xBC"\x1BAvs-\0\xB0a:\0   Avs-\0\xB0a:\0 
1760
+ Avs-\0\xB0a:\0  \v Avs-\0\xB0a:\0\0 sA\xFFq-\0\xB0a! sA\xFFq-\0\xB0a! sA\xFFq-\0\xB0a!   \x1Bs":\0 A\xFFq-\0\xB0a! \x1BA\bvA\xFFqs-\0\xB0a! A\bvA\xFFqs-\0\xB0a! A\bvA\xFFqs-\0\xB0a! \x1BAvA\xFFqs-\0\xB0a! AvA\xFFqs-\0\xB0a!\v AvA\xFFqs-\0\xB0a!
1761
+ AvA\xFFqs-\0\xB0a!  \f A\bvA\xFFqs-\0\xB0a:\0
1762
+  :\0\b  :\0\x07  :\0  \v:\0 
1763
+ :\0  :\0  :\0\f  :\0\v  :\0  :\0  :\0\r \x82  \0(\xC0" -\0\fs:\0\f  -\0 Avs:\0  -\0\b A\bvs:\0\b  -\0 \0(\xC4"\rA\bvs:\0  \r -\0\rs":\0\r  \0(\xC8" -\0s":\0 \0(\xCC!\f  -\0 \rAvs-\0\xB0a:\0  -\0\0 Avs-\0\xB0a:\0\0  -\0 Avs-\0\xB0a:\0 -\0! -\0! -\0
1764
+ !  -\0 \fAvs-\0\xB0a:\0  \f -\0s":\0 -\0\v! -\0\x07! -\0\f! -\0 !\v -\0!
1765
+ -\0\b!   A\bvA\xFFqs-\0\xB0a:\0\b   \fAvA\xFFqs-\0\xB0a:\0   AvA\xFFqs-\0\xB0a:\0   \rAvA\xFFqs-\0\xB0a:\0  -\0\xB0a:\0
1766
+ 
1767
+ -\0\xB0a:\0\x07  A\xFFq-\0\xB0a:\0  A\xFFq-\0\xB0a:\0\f  \v-\0\xB0a:\0\v   \fA\bvA\xFFqs-\0\xB0a:\0  A\xFFq-\0\xB0a:\0  -\0\xB0a:\0\r \x82  \0(\xD0" -\0\fs:\0\f  -\0 Avs:\0  -\0\b A\bvs:\0\b  -\0 \0(\xD4"A\bvs:\0   -\0\rs"\b:\0\r  \0(\xD8" -\0s" :\0 -\0 -\0
1768
+ -\0 -\0! -\0!\v -\0\0!
1769
+  -\0 \0(\xDC"Avs-\0\xB0a"\f:\0   -\0s":\0 
1770
+ Avs-\0\xB0a"\r:\0\0  \v Avs-\0\xB0a":\0   Avs-\0\xB0a":\0 -\0\x07 AvA\xFFqs-\0\xB0a \0(\xE8"\x1BAvs! -\0\v A\bvA\xFFqs-\0\xB0a \0(\xE4"\x07A\bvs! AvA\xFFqs-\0\xB0a \x07Avs! A\bvA\xFFqs-\0\xB0a \0(\xE0"A\bvs! AvA\xFFqs-\0\xB0a Avs! A\xFFq-\0\xB0a s! -\0\b-\0\xB0a \x1BA\bvs! -\0\f-\0\xB0a \x07s! A\xFFq-\0\xB0a!\v -\0 -\0\xB0a!
1771
+ -\0-\0\xB0a! \0(\xEC!  \bA\xFFq-\0\xB0a \x1Bs:\0\v  :\0
1772
+  :\0   \x1BAvs:\0\b  :\0\x07  :\0  :\0   \x07Avs:\0  :\0  :\0  :\0  \r Avs:\0\0  \vs:\0 
1773
+ A\bvs:\0   Avs:\0\r  \f Avs:\0\f Aj$\0 \0 \0-\0\xF0Aj":\0\xF0@ A\xFFq F\r\0 \0 \0-\0\xF1Aj":\0\xF1 A\xFFq F\r\0 \0 \0-\0\xF2Aj":\0\xF2 A\xFFq F\r\0 \0 \0-\0\xF3Aj":\0\xF3 A\xFFq F\r\0 \0 \0-\0\xF4Aj":\0\xF4 A\xFFq F\r\0 \0 \0-\0\xF5Aj":\0\xF5 A\xFFq F\r\0 \0 \0-\0\xF6Aj":\0\xF6 A\xFFq F\r\0 \0 \0-\0\xF7Aj":\0\xF7 A\xFFq F\r\0 \0 \0-\0\xF8Aj":\0\xF8 A\xFFq F\r\0 \0 \0-\0\xF9Aj":\0\xF9 A\xFFq F\r\0 \0 \0-\0\xFAAj":\0\xFA A\xFFq F\r\0 \0 \0-\0\xFBAj":\0\xFB A\xFFq F\r\0 \0 \0-\0\xFCAj":\0\xFC A\xFFq F\r\0 \0 \0-\0\xFDAj":\0\xFD A\xFFq F\r\0 \0 \0-\0\xFEAj":\0\xFE A\xFFq F\r\0 \0 \0-\0\xFFAj:\0\xFF\v \0A\0:\0\x90A\0!
1774
+ \v  j-\0\0! \0
1775
+ Aj:\0\x90  j 
1776
+ j-\0\0s:\0\0 Aj" G\r\0\v\v\v \0 \0-\0\x7FA\x7F \0A\xCCj   (\0cA\0\v\v\0A\0\v\xCC\x7F~#\0A\xF0\0k"$\0A\x7F!@ \0(\0A\x80G\r\0 (\0A I\r\0 B\xAB\xB3\x8F\xFC\x91\xA3\xB3\xF0\xDB\x007h B\xFF\xA4\xB9\x88\xC5\x91\xDA\x82\x9B\x7F7\` B\xF2\xE6\xBB\xE3\xA3\xA7\xFD\xA7\xA5\x7F7X B\xE7\xCC\xA7\xD0\xD6\xD0\xEB\xB3\xBB\x7F7P B\x007H A\x006@A\0!\0 (@!@  j \0 j-\0\0:\0\0  (@Aj"6@ A\xC0\0F@  \x84 A\x006@  )HB\x80|7HA\0!\v \0Aj"\0A G\r\0\v  (@"\0j"A\x80:\0\0@ \0A7M@ \0A7F\rA7 \0k"\0E\r AjA\0 \0\xFC\v\0\f\v@ \0Aj"A?K\r\0A? \0k"\0E\r\0  jA\0 \0\xFC\v\0\v  \x84 B\x0070 B\x007( B\x007 B\x007 B\x007 B\x007\b B\x007\0\v  )H (@At\xAD|"7H  <\0?  B\b\x88<\0>  B\x88<\0=  B\x88<\0<  B \x88<\0;  B(\x88<\0:  B0\x88<\x009  B8\x88<\x008  \x84  -\0S:\0\0  -\0W:\0  -\0[:\0\b  -\0_:\0\f  -\0c:\0  -\0g:\0  -\0k:\0  -\0o:\0  /R:\0  /V:\0  /Z:\0  /^:\0\r  /b:\0  /f:\0  /j:\0  /n:\0  (PA\bv:\0  (TA\bv:\0  (XA\bv:\0
1777
+  (\\A\bv:\0  (\`A\bv:\0  (dA\bv:\0  (hA\bv:\0  (lA\bv:\0  (P:\0  (T:\0\x07  (X:\0\v  (\\:\0  (\`:\0  (d:\0  (h:\0\x1B  (l:\0 A 6\0A\0!\v A\xF0\0j$\0 \v \0A\x7FA\0 \0A "\0\x7FA\x80\xE9 \x006\0A\x7FA\0\v\x1B\v\x9E\x7F@ E\r\0 A\x07q! A\bO@ Axq!@ \0 j"A\0:\0\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x07 A\bj! A\bj" G\r\0\v E\r\vA\0!@ \0 jA\0:\0\0 Aj! Aj" G\r\0\v\v\v\xDB\0 \0 -\0\0:\0\0 \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 \0 -\0\x07:\0\x07 \0 -\0\b:\0\b \0 -\0 :\0 \0 -\0
1778
+ :\0
1779
+ \0 -\0\v:\0\v \0 -\0\f:\0\f \0 -\0\r:\0\r \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 \0 -\0\x1B:\0\x1B \0 -\0:\0 \0 -\0:\0 \0 -\0:\0 -\0! \0 \0-\0\0A\xF8q:\0\0 \0 A?qA\xC0\0r:\0\v\x853@\x7F
1780
+ ~#\0A k"$\0A\xA0\xE6-\0\0!( A\xA1\xE6-\0\0:\0 A\xA2\xE6-\0\0:\0 A\xA3\xE6-\0\0:\0 A\xA4\xE6-\0\0:\0 A\xA5\xE6-\0\0:\0 A\xA6\xE6-\0\0:\0 A\xA7\xE6-\0\0:\0\x07 A\xA8\xE6-\0\0:\0\b A\xA9\xE6-\0\0:\0 A\xAA\xE6-\0\0:\0
1781
+ A\xAB\xE6-\0\0:\0\v A\xAC\xE6-\0\0:\0\f A\xAD\xE6-\0\0:\0\r A\xAE\xE6-\0\0:\0 A\xAF\xE6-\0\0:\0 A\xB0\xE6-\0\0:\0 A\xB1\xE6-\0\0:\0 A\xB2\xE6-\0\0:\0 A\xB3\xE6-\0\0:\0 A\xB4\xE6-\0\0:\0 A\xB5\xE6-\0\0:\0 A\xB6\xE6-\0\0:\0 A\xB7\xE6-\0\0:\0 A\xB8\xE6-\0\0:\0 A\xB9\xE6-\0\0:\0 A\xBA\xE6-\0\0:\0 A\xBB\xE6-\0\0:\0\x1B A\xBC\xE6-\0\0:\0 A\xBD\xE6-\0\0:\0 A\xBE\xE6-\0\0:\0A\xBF\xE6-\0\0!  (A\xF8q:\0\0  A?qA\xC0\0r:\0 \0A\xFF!\0#\0A\x80k"$\0 A\xA0j k B\x007\xF4 A6\xF0 B\x007\xFC B\x007\x84 B\x007\x8C A\x006\x94 B\x007\xC0 B\x007\xC8 B\x007\xD0 B\x007\xD8 B\x007\xE0  (\xA06\x90  (\xA46\x94  (\xA86\x98  (\xAC6\x9C  (\xB06\xA0  (\xB46\xA4  (\xB86\xA8  (\xBC6\xAC  (\xC06\xB0  (\xC46\xB4 A6\` A\x006\x84 B\x007| B\x007t B\x007l B\x007d@ (\x88!\b (\xA8! (\xAC! (\x8C!\x07 (\xB0! (\x90!
1782
+ (\xB4!\v (\x94!\f (\x90!\r (\xF0! (\x94! (\xF4! (\x98! (\xF8! (\x9C! (\xFC! (\xA0! (\x80! (\xA4! (\x84! (\`! (\xC0!\x1B A\0   \0Ak"Avj-\0\0 A\x07qvAq"sk" (x" (\xD8")sq"* s"6x    \x1Bs q".s"6\`  (d" (\xC4"+s q"/ s"6d  (h" (\xC8",s q"0 s"6h  (l" (\xCC"-s q"1 s"6l  (p" (\xD0"2s q"3 s" 6p  (t"! (\xD4"4s q"5 !s"!6t (|!" (\xDC!# (\x80!$ (\xE0!% (\x84!& (\xE4!'    \bs q"6s" k6H    s q"7s" !k6D    s q"8s" k6@    s q"9s" k6<    s q":s" k68    s q";s" k64  \r \r s q"<s"\r k60  \v \v \fs q"=s"\v & & 's q">s"&k6T 
1783
+ s q"?s" $ $ %s q"@s"$k6P   \x07 s q"As" " " #s q"s""k6L  \f =s"\f ' >s"'k6$ 
1784
+ ?s"
1785
+ % @s"%k6  \x07 As"\x07  #s"k6  \b 6s"\b ) *s"#k6   7s" 4 5s")k6   8s" 2 3s"*k6   9s" - 1s"-k6\f   :s" , 0s",k6\b   ;s" + /s"+k6   <s" \x1B .s"\x1Bk6\0  \f 'j6\x94 
1786
+ %j6\x90   \x07j6\x8C  \b #j6\x88   )j6\x84   *j6\x80   -j6\xFC   ,j6\xF8   +j6\xF4   \x1Bj6\xF0  \v &j6\xE4  $j6\xE0   "j6\xDC   j6\xD8   !j6\xD4   j6\xD0   j6\xCC   j6\xC8   j6\xC4  \r j6\xC0 A\xE0\0j" A0j" A\xF0j"\bl A\xC0j"  l  m  \bm  (\xC0"\x07 (\`" j6\x90  (\xC4"
1787
+ (d"\vj6\x94  (\xC8"\f (h"\rj6\x98  (\xCC" (l"j6\x9C  (\xD0" (p"j6\xA0  (\xD4" (t"j6\xA4   k6\xD4   k6\xD0  \r \fk6\xC8  \v
1788
+ k6\xC4  \x07k6\xC0   k6\xCC  (\xD8"\x07 (x" j6\xA8  (\xDC"
1789
+ (|"\vj6\xAC  (\xE0"\f (\x80"\rj6\xB0  (\xE4" (\x84"j6\xB4   k6\xE4  \r \fk6\xE0  \v
1790
+ k6\xDC  \x07k6\xD8 \b  l  ( (D"\x07k" 6  ( (@"
1791
+ k"\v6  ( (H"\fk"\r6  (\f (<"k"6\f  (\b (8"k"6\b  (\0 (0"k"6\0  ( (4"k"6  ( (L"k"6  ( (P"k"6  ($ (T"\x1Bk"6$  m A\x90j" m  \f \r\xACB\xC2\xB6\x07~ \xACB\xC2\xB6\x07~ \v\xACB\xC2\xB6\x07~"CB\x80\x80\x80|"EB\x87|"FB\x80\x80\x80\b|"GB\x87|"B BB\x80\x80\x80|"BB\x80\x80\x80\xE0\x83}\xA7j6H   \xACB\xC2\xB6\x07~ \xACB\xC2\xB6\x07~ \xACB\xC2\xB6\x07~"HB\x80\x80\x80|"IB\x87|"JB\x80\x80\x80\b|"KB\x87|"D DB\x80\x80\x80|"DB\x80\x80\x80\xE0\x83}\xA7j68   \xACB\xC2\xB6\x07~ BB\x87|"B BB\x80\x80\x80\b|"BB\x80\x80\x80\xF0\x83}\xA7j6L   \xACB\xC2\xB6\x07~ DB\x87|"D DB\x80\x80\x80\b|"DB\x80\x80\x80\xF0\x83}\xA7j6<   \xACB\xC2\xB6\x07~ BB\x87|"B BB\x80\x80\x80|"BB\x80\x80\x80\xE0\x83}\xA7j6P  \x07 F GB\x80\x80\x80\xF0\x83} C EB\x80\x80\x80\`\x83} DB\x87|"CB\x80\x80\x80|"EB\x88|\xA7j6D 
1792
+ C EB\x80\x80\x80\xE0\x83}\xA7j6@  \x1B \xACB\xC2\xB6\x07~ BB\x87|"C CB\x80\x80\x80\b|"CB\x80\x80\x80\xF0\x83}\xA7j6T   J KB\x80\x80\x80\xF0\x83} H IB\x80\x80\x80\`\x83} CB\x87B~|"CB\x80\x80\x80|"EB\x88|\xA7j64   C EB\x80\x80\x80\xE0\x83}\xA7j60 \0AK  A\xA0j l   l !\0\r\0\v A\0 k"\0 (\x90" (\xF0"sq" s6\xF0   s6\x90  (\x94" (\xF4"s \0q" s6\xF4   s6\x94  (\x98" (\xF8"s \0q" s6\xF8   s6\x98  (\x9C" (\xFC"s \0q" s6\xFC   s6\x9C  (\xA0" (\x80"s \0q" s6\x80   s6\xA0  (\xA4" (\x84"s \0q" s6\x84   s6\xA4  (\xA8" (\x88"s \0q" s6\x88   s6\xA8  (\xAC" (\x8C"s \0q" s6\x8C   s6\xAC  (\xB0" (\x90"s \0q" s6\x90   s6\xB0  (\xB4" (\x94"s \0q" s6\x94   s6\xB4  (\`" (\xC0"s \0q" s6\xC0   s6\`  (d" (\xC4"s \0q" s6\xC4   s6d  (h" (\xC8"s \0q" s6\xC8   s6h  (l" (\xCC"s \0q" s6\xCC   s6l  (p" (\xD0"s \0q" s6\xD0   s6p  (t" (\xD4"s \0q" s6\xD4   s6t  (x" (\xD8"s \0q" s6\xD8   s6x  (|" (\xDC"s \0q" s6\xDC   s6|  (\x80" (\xE0"s \0q" s6\xE0   s6\x80  \0 (\x84" (\xE4"sq"\0 s6\xE4  \0 s6\x84 A\xD0j"\0 m \0 \0n \0 \0m  \0 l A\0:\0\xD0 A\0:\0\xD1 A\0:\0\xD2 A\0:\0\xD3 A\0:\0\xD4 A\0:\0\xD5 A\0:\0\xD6 A\0:\0\xD7 A\0:\0\xD8 A\0:\0\xD9 A\0:\0\xDA A\0:\0\xDB A\0:\0\xDC A\0:\0\xDD A\0:\0\xDE A\0:\0\xDF A\0:\0\xE0 A\0:\0\xE1 A\0:\0\xE2 A\0:\0\xE3 A\0:\0\xE4 A\0:\0\xE5 A\0:\0\xE6 A\0:\0\xE7 A\0:\0\xE8 A\0:\0\xE9 A\0:\0\xEA A\0:\0\xEB A\0:\0\xEC A\0:\0\xED A\0:\0\xEE A\0:\0\xEF A\0:\0\xF0 A\0:\0\xF1 A\0:\0\xF2 A\0:\0\xF3 A\0:\0\xF4 A\0:\0\xF5 A\0:\0\xF6 A\0:\0\xF7 \b \b l \bo A\0:\0\xA0 A\0:\0\xA1 A\0:\0\xA2 A\0:\0\xA3 A\0:\0\xA4 A\0:\0\xA5 A\0:\0\xA6 A\0:\0\xA7 A\0:\0\xA8 A\0:\0\xA9 A\0:\0\xAA A\0:\0\xAB A\0:\0\xAC A\0:\0\xAD A\0:\0\xAE A\0:\0\xAF A\0:\0\xB0 A\0:\0\xB1 A\0:\0\xB2 A\0:\0\xB3 A\0:\0\xB4 A\0:\0\xB5 A\0:\0\xB6 A\0:\0\xB7 A\0:\0\xB8 A\0:\0\xB9 A\0:\0\xBA A\0:\0\xBB A\0:\0\xBC A\0:\0\xBD A\0:\0\xBE A\0:\0\xBF A\0:\0\xC0 A\0:\0\xC1 A\0:\0\xC2 A\0:\0\xC3 A\0:\0\xC4 A\0:\0\xC5 A\0:\0\xC6 A\0:\0\xC7 A\0:\0\xF0 A\0:\0\xF1 A\0:\0\xF2 A\0:\0\xF3 A\0:\0\xF4 A\0:\0\xF5 A\0:\0\xF6 A\0:\0\xF7 A\0:\0\xF8 A\0:\0\xF9 A\0:\0\xFA A\0:\0\xFB A\0:\0\xFC A\0:\0\xFD A\0:\0\xFE A\0:\0\xFF A\0:\0\x80 A\0:\0\x81 A\0:\0\x82 A\0:\0\x83 A\0:\0\x84 A\0:\0\x85 A\0:\0\x86 A\0:\0\x87 A\0:\0\x88 A\0:\0\x89 A\0:\0\x8A A\0:\0\x8B A\0:\0\x8C A\0:\0\x8D A\0:\0\x8E A\0:\0\x8F A\0:\0\x90 A\0:\0\x91 A\0:\0\x92 A\0:\0\x93 A\0:\0\x94 A\0:\0\x95 A\0:\0\x96 A\0:\0\x97 A\0:\0\xC0 A\0:\0\xC1 A\0:\0\xC2 A\0:\0\xC3 A\0:\0\xC4 A\0:\0\xC5 A\0:\0\xC6 A\0:\0\xC7 A\0:\0\xC8 A\0:\0\xC9 A\0:\0\xCA A\0:\0\xCB A\0:\0\xCC A\0:\0\xCD A\0:\0\xCE A\0:\0\xCF A\0:\0\xD0 A\0:\0\xD1 A\0:\0\xD2 A\0:\0\xD3 A\0:\0\xD4 A\0:\0\xD5 A\0:\0\xD6 A\0:\0\xD7 A\0:\0\xD8 A\0:\0\xD9 A\0:\0\xDA A\0:\0\xDB A\0:\0\xDC A\0:\0\xDD A\0:\0\xDE A\0:\0\xDF A\0:\0\xE0 A\0:\0\xE1 A\0:\0\xE2 A\0:\0\xE3 A\0:\0\xE4 A\0:\0\xE5 A\0:\0\xE6 A\0:\0\xE7 A\0:\x000 A\0:\x001 A\0:\x002 A\0:\x003 A\0:\x004 A\0:\x005 A\0:\x006 A\0:\x007 A\0:\x008 A\0:\x009 A\0:\0: A\0:\0; A\0:\0< A\0:\0= A\0:\0> A\0:\0? A\0:\0@ A\0:\0A A\0:\0B A\0:\0C A\0:\0D A\0:\0E A\0:\0F A\0:\0G A\0:\0H A\0:\0I A\0:\0J A\0:\0K A\0:\0L A\0:\0M A\0:\0N A\0:\0O A\0:\0P A\0:\0Q A\0:\0R A\0:\0S A\0:\0T A\0:\0U A\0:\0V A\0:\0W A\0:\0\x90 A\0:\0\x91 A\0:\0\x92 A\0:\0\x93 A\0:\0\x94 A\0:\0\x95 A\0:\0\x96 A\0:\0\x97 A\0:\0\x98 A\0:\0\x99 A\0:\0\x9A A\0:\0\x9B A\0:\0\x9C A\0:\0\x9D A\0:\0\x9E A\0:\0\x9F A\0:\0\xA0 A\0:\0\xA1 A\0:\0\xA2 A\0:\0\xA3 A\0:\0\xA4 A\0:\0\xA5 A\0:\0\xA6 A\0:\0\xA7 A\0:\0\xA8 A\0:\0\xA9 A\0:\0\xAA A\0:\0\xAB A\0:\0\xAC A\0:\0\xAD A\0:\0\xAE A\0:\0\xAF A\0:\0\xB0 A\0:\0\xB1 A\0:\0\xB2 A\0:\0\xB3 A\0:\0\xB4 A\0:\0\xB5 A\0:\0\xB6 A\0:\0\xB7 A\0:\0\` A\0:\0a A\0:\0b A\0:\0c A\0:\0d A\0:\0e A\0:\0f A\0:\0g A\0:\0h A\0:\0i A\0:\0j A\0:\0k A\0:\0l A\0:\0m A\0:\0n A\0:\0o A\0:\0p A\0:\0q A\0:\0r A\0:\0s A\0:\0t A\0:\0u A\0:\0v A\0:\0w A\0:\0x A\0:\0y A\0:\0z A\0:\0{ A\0:\0| A\0:\0} A\0:\0~ A\0:\0\x7F A\0:\0\x80 A\0:\0\x81 A\0:\0\x82 A\0:\0\x83 A\0:\0\x84 A\0:\0\x85 A\0:\0\x86 A\0:\0\x87 A\0:\0\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x07 A\0:\0\b A\0:\0 A\0:\0
1793
+ A\0:\0\v A\0:\0\f A\0:\0\r A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x1B A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0! A\0:\0" A\0:\0# A\0:\0$ A\0:\0% A\0:\0& A\0:\0' A\x80j$\0 A\0:\0\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x07 A\0:\0\b A\0:\0 A\0:\0
1794
+ A\0:\0\v A\0:\0\f A\0:\0\r A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x1B A\0:\0 A\0:\0 A\0:\0 A\0:\0 A j$\0\v\x92~\x7F /\0! -\0! 1\0! 1\0\x1B! 1\0! 1\0! 1\0!\x07 1\0!\b 1\0\f! 1\0\v! 1\0
1795
+ ! 5\0! 1\0!
1796
+ 1\0!\v 1\0\r!\f 1\0! 1\0! 1\0! \0 1\0\bB\r\x86 1\0\x07B\x86\x84 1\0 B\x86\x84 1\0B\x86 1\0B\x86\x84 1\0B\x86\x84 5\0\0"B\x80\x80\x80|"B\x88|"B\x80\x80\x80\b|"B\x88|"\r \rB\x80\x80\x80|"\rB\x80\x80\x80\xE0\x83}>\b \0 B\x86 B\x07\x86\x84 B\x86\x84 \vB
1797
+ \x86 \fB\x86\x84
1798
+ B\x86\x84"
1799
+ B\x80\x80\x80|"\vB\x88|" B\x80\x80\x80\b|"\fB\x88|" B\x80\x80\x80|"B\x80\x80\x80\xE0\x83}> \0 B\v\x86 B\x86\x84 B\x86\x84 \rB\x88|" B\x80\x80\x80\b|"B\x80\x80\x80\xF0\x83}>\f \0 \x07B\r\x86 \bB\x86\x84 B\x86\x84 B\x88|" B\x80\x80\x80\b|"B\x80\x80\x80\xF0\x83}> \0 \fB\x80\x80\x80\xF0\x83}
1800
+ \vB\x80\x80\x80 \x83} B\x88|"\x07B\x80\x80\x80|"\bB\x88|> \0 \x07 \bB\x80\x80\x80\xE0\x83}> \0 B\f\x86 B\x86\x84 B\x86\x84 B\x88|" B\x80\x80\x80|"B\x80\x80\x80\xE0\x83}> \0  AtrA\xFF\xFF\xFFqAt\xAD B\x88|" B\x80\x80\x80\b|"B\x80\x80\x80\xF0\x83}>$ \0  B\x80\x80\x80\xF0\x83}  B\x80\x80\x80\xE0\x83} B\x88B~|"B\x80\x80\x80|"B\x88|> \0  B\x80\x80\x80\xE0\x83}>\0\v\x9D '~\f\x7F \0 ("*\xAC"\v ("+At\xAC"~ 4\0" 4"~| (\b",\xAC"\r 4"\x07~| (\f"-\xAC" (\f".At\xAC"~| ("/\xAC" 4\b"\b~| ("0\xAC" ("1At\xAC"~| ("2\xAC" 4\0" ~| ("3Al\xAC"\f ($"4At\xAC"~| ( "5Al\xAC" 4 "
1801
+ ~| ($"Al\xAC" ("At\xAC"~| \x07 \v~  +\xAC"~| \r .\xAC"\x1B~| \b ~|  1\xAC"~| ~| 2Al\xAC" 4\xAC"~|
1802
+ \f~|  \xAC"~|  ~| \v ~  \x07~| \b \r~|  ~| ~| 0Al\xAC" ~|
1803
+ ~| \f ~|  ~|  ~|""B\x80\x80\x80|"#B\x87|"$B\x80\x80\x80\b|"%B\x87|" B\x80\x80\x80|"B\x80\x80\x80\xE0\x83}> \0 \v ~  \b~| \r~| -Al\xAC" ~|
1804
+ /Al\xAC"~|  ~|  ~| \f ~|  \x07~|  ~| \v~  ~| ,Al\xAC"! ~|
1805
+ ~|  ~|  ~|  ~| \x07 \f~|  \x1B~|  \b~| *Al\xAC ~  ~|
1806
+ !~|  ~|  ~|  ~| \x07 ~| \f ~|  \b~|  ~|"!B\x80\x80\x80|"&B\x87|"'B\x80\x80\x80\b|"(B\x87|" B\x80\x80\x80|")B\x80\x80\x80\xE0\x83}>\b \0  \v~  ~| \r ~| \x07 ~|  \x1B~| \b ~|  ~| 3\xAC"~|  ~| 
1807
+ ~| B\x87|" B\x80\x80\x80\b|"B\x80\x80\x80\xF0\x83}> \0 \b \v~  \x1B~| \r ~| ~|  ~|
1808
+ ~|  ~|  \f~|  ~|  \x07~| )B\x87|" B\x80\x80\x80\b|"B\x80\x80\x80\xF0\x83}>\f \0 \v ~ 
1809
+ ~|  \r~|  ~| \x07 ~|  ~| \b ~|  ~| 5\xAC"\f~|  ~| B\x87|" B\x80\x80\x80|"B\x80\x80\x80\xE0\x83}> \0 $ %B\x80\x80\x80\xF0\x83} " #B\x80\x80\x80\`\x83} B\x87|"B\x80\x80\x80|"B\x88|> \0  B\x80\x80\x80\xE0\x83}> \0
1810
+ \v~  ~| \r ~|  ~|  ~| \x07 ~| \x1B ~| \b ~| \f ~| \xAC~| B\x87|" B\x80\x80\x80\b|"B\x80\x80\x80\xF0\x83}>$ \0 ' (B\x80\x80\x80\xF0\x83} ! &B\x80\x80\x80\`\x83} B\x87B~|"B\x80\x80\x80|"B\x88|> \0  B\x80\x80\x80\xE0\x83}>\0\v\xCB~\x07\x7F \0 (\f"At\xAC"\x07 \xAC"~ ("\xAC" (\b" At\xAC"~| ("At\xAC"\b ("!At\xAC"~| ("\xAC" (\0""At\xAC"~| ( "Al\xAC" \xAC"~| ($"A&l\xAC" ("At\xAC"~|  ~  ~| \xAC"
1811
+ ~|  ~|  ~|  \x07~ \xAC"\v \v~|  ~| A&l\xAC"\f \xAC"~|  At\xAC~|  \b~|"B\x80\x80\x80|"B\x87|"B\x80\x80\x80\b|"B\x87|"\r \rB\x80\x80\x80|"B\x80\x80\x80\xE0\x83}> \0  \v~  !\xAC"~| Al\xAC"\r ~| \b \f~|  At\xAC"~|  \x07~| \b \r~  ~|  \f~|  \x07~|  \v~| A&l\xAC
1812
+ ~ "\xAC" ~| \r ~| \x07 \f~|  ~|  ~|"\rB\x80\x80\x80|"B\x87|"B\x80\x80\x80\b|"\x1BB\x87|" B\x80\x80\x80|"B\x80\x80\x80\xE0\x83}>\b \0
1813
+ ~  \x07~|  ~|  ~|  ~| B\x87|"
1814
+
1815
+ B\x80\x80\x80\b|"
1816
+ B\x80\x80\x80\xF0\x83}> \0  ~  \v~| \f~|  \b~|  ~| B\x87|" B\x80\x80\x80\b|"B\x80\x80\x80\xF0\x83}>\f \0 ~  ~| \x07 \b~|  ~|  ~|  \xAC"\v~|
1817
+ B\x87|" B\x80\x80\x80|"B\x80\x80\x80\xE0\x83}> \0  B\x80\x80\x80\xF0\x83}  B\x80\x80\x80\`\x83} B\x87|"B\x80\x80\x80|"\fB\x88|> \0  \fB\x80\x80\x80\xE0\x83}> \0  \b~ \x07 ~|  ~|  ~|  \v~| B\x87|" B\x80\x80\x80\b|"B\x80\x80\x80\xF0\x83}>$ \0  \x1BB\x80\x80\x80\xF0\x83} \r B\x80\x80\x80\`\x83} B\x87B~|"B\x80\x80\x80|"B\x88|> \0  B\x80\x80\x80\xE0\x83}>\0\v\xF6\x7F#\0A\x90k"$\0 A\xE0\0j" m A0j" m  m   l   l  m   l  m  m  m  m  m   l  m  m  m  m  m  m  m  m  m  m   l  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m   l  m  m  m  m  m  m  m  m  m  m   l  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m   l  mA!@  m Aj"A\xE4\0G\r\0\v A0j"  l  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m A\xE0\0j"  l  m  m   l  m   l B\x007 B\x007 B\x007 B\x007\b B\x007\0  |! B\x007 A6\0 B\x007\f B\x007 B\x007 A\x006$  |!\x07 B\x007 B\x007\f B\x007 B\x007 A\x006$ A\x7F6\0  |! B\xE2\x87\xEC\xFF\xEF\xED\xFC\xA8\x7F7 B\xE1\xE6\xFE\x8B\xE0\xD2\xA67 B\xA0\xE7\x8B\xFA\x9F\x8B\x8A7 B\xE2\xCE\xC3\xFB\x9F\xD0\xA5e7\b B\xD0\xBE\xC5\x8F\xD0\xC5\xCD<7\0  |! \0 A\xB0\xCB\0l \0  rAk" \0(\0" (\`sq s6\0 \0 \0(" (ds q s6 \0 \0(\b" (hs q s6\b \0 \0(\f" (ls q s6\f \0 \0(" (ps q s6 \0 \0(" (ts q s6 \0 \0(" (xs q s6 \0 \0(" (|s q s6 \0 \0( " (\x80s q s6 \0 \0($"\0 (\x84s q \0s6$ A\0:\0\` A\0:\0a A\0:\0b A\0:\0c A\0:\0d A\0:\0e A\0:\0f A\0:\0g A\0:\0h A\0:\0i A\0:\0j A\0:\0k A\0:\0l A\0:\0m A\0:\0n A\0:\0o A\0:\0p A\0:\0q A\0:\0r A\0:\0s A\0:\0t A\0:\0u A\0:\0v A\0:\0w A\0:\0x A\0:\0y A\0:\0z A\0:\0{ A\0:\0| A\0:\0} A\0:\0~ A\0:\0\x7F A\0:\0\x80 A\0:\0\x81 A\0:\0\x82 A\0:\0\x83 A\0:\0\x84 A\0:\0\x85 A\0:\0\x86 A\0:\0\x87 A\0:\x000 A\0:\x001 A\0:\x002 A\0:\x003 A\0:\x004 A\0:\x005 A\0:\x006 A\0:\x007 A\0:\x008 A\0:\x009 A\0:\0: A\0:\0; A\0:\0< A\0:\0= A\0:\0> A\0:\0? A\0:\0@ A\0:\0A A\0:\0B A\0:\0C A\0:\0D A\0:\0E A\0:\0F A\0:\0G A\0:\0H A\0:\0I A\0:\0J A\0:\0K A\0:\0L A\0:\0M A\0:\0N A\0:\0O A\0:\0P A\0:\0Q A\0:\0R A\0:\0S A\0:\0T A\0:\0U A\0:\0V A\0:\0W A\0:\0\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x07 A\0:\0\b A\0:\0 A\0:\0
1818
+ A\0:\0\v A\0:\0\f A\0:\0\r A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x1B A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0! A\0:\0" A\0:\0# A\0:\0$ A\0:\0% A\0:\0& A\0:\0' A\x90j$\0   \x07rr\v\xD7\v\x7F -\0! -\0! -\0\0!#\0A@j" -\0:\0/  :\x000  :\0.  :\0- -\0\x07! -\0! -\0!  -\0:\0+  :\0,  :\0*  :\0) -\0\v! -\0
1819
+ ! -\0\b!  -\0 :\0'  :\0(  :\0&  :\0% -\0! -\0! -\0\f!  -\0\r:\0#  :\0$  :\0"  :\0! -\0! -\0! -\0!  -\0:\0  :\0  :\0  :\0 -\0! -\0! -\0!  -\0:\0\x1B  :\0  :\0  :\0 -\0\x1B! -\0! -\0!  -\0:\0  :\0  :\0  :\0 -\0! -\0! -\0!  -\0:\0  :\0  :\0  :\0 -\0#! -\0"! -\0 !\x07  -\0!"\v:\0  \x07:\0  :\0  :\0\r -\0'!\b -\0&! -\0$!
1820
+  -\0%":\0\v 
1821
+ :\0\f  :\0
1822
+  \b:\0  -\x000 -\0-At -\0.Atr -\0/A\btrr"\f \x07 At Atr \vA\btrr -\0 At Atr -\0A\btrr -\0 -\0At -\0Atr -\0A\btrr -\0 -\0At -\0Atr -\0\x1BA\btrr -\0 -\0At -\0Atr -\0A\btrr -\0$ -\0!At -\0"Atr -\0#A\btrr -\0( -\0%At -\0&Atr -\0'A\btrr -\0, -\0)At -\0*Atr -\0+A\btrr \f
1823
+ \bAt Atr A\btrr"AlA\x80\x80\x80\bjAujAujAujAujAujAujAujAujAujAu jAuAlj":\x000  A\bv:\0/  Av:\0.  AvAq:\0-  -\0, -\0)At -\0*Atr -\0+A\btrr Auj":\0,  Av:\0*  A\bv:\0+  AvAq:\0)  -\0( -\0%At -\0&Atr -\0'A\btrr Auj":\0(  Av:\0&  A\bv:\0'  AvAq:\0%  -\0$ -\0!At -\0"Atr -\0#A\btrr Auj":\0$  A\bv:\0#  Av:\0"  AvAq:\0!  -\0 -\0At -\0Atr -\0A\btrr Auj":\0  A\bv:\0  Av:\0  AvAq:\0  -\0 -\0At -\0Atr -\0\x1BA\btrr Auj":\0  A\bv:\0\x1B  Av:\0  AvAq:\0  -\0 -\0At -\0Atr -\0A\btrr Auj":\0  A\bv:\0  Av:\0  AvAq:\0  -\0 -\0At -\0Atr -\0A\btrr Auj":\0  A\bv:\0  Av:\0  AvAq:\0  -\0 -\0\rAt -\0Atr -\0A\btrr Auj":\0  A\bv:\0  Av:\0  AvAq:\0\r  -\0\f -\0 At -\0
1824
+ Atr -\0\vA\btrr Auj":\0\f  A\bv:\0\v  Av:\0
1825
+  AvAq:\0 -\0+! -\0)! -\0*! \0 -\x000 -\0-At -\0.Atr -\0/A\btrr -\0,"Atr6\0\0 -\0%! -\0&!\x07 \0 -\0'A\bt"\b -\0(rAt  At Atr A\btrrAvr6\0 -\0!! \0 -\0"At" -\0$ -\0#A\btrrA\rt At \x07Atr \brA\rvr6\0\b \0 -\0 -\0At -\0Atr -\0A\btrrAt At rAvr6\0\f -\0! -\0! -\0! \0 -\0 -\0At -\0Atr -\0\x1BA\btrr -\0"Atr6\0 -\0! -\0!\x07 \0 -\0A\bt"\b -\0rAt  At Atr A\btrrA\x07vr6\0 -\0\r! \0 -\0At" -\0 -\0A\btrrA\ft At \x07Atr \brA\rvr6\0 \0 -\0\f -\0 At -\0
1826
+ Atr -\0\vA\btrrAt At rAvr6\0 A\0:\x000 A\0:\0/ A\0:\0. A\0:\0- A\0:\0, A\0:\0+ A\0:\0* A\0:\0) A\0:\0( A\0:\0' A\0:\0& A\0:\0% A\0:\0$ A\0:\0# A\0:\0" A\0:\0! A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x1B A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\r A\0:\0\f A\0:\0\v A\0:\0
1827
+ A\0:\0 \v\xAA\x7F#\0A@j"$\0  )\x00878  )\x00070  )\0(7(  )\0 7  )\07  )\07  )\0\b7\b  )\0\x007\0 \0 q A\0:\0\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x07 A\0:\0\b A\0:\0 A\0:\0
1828
+ A\0:\0\v A\0:\0\f A\0:\0\r A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x1B A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0! A\0:\0" A\0:\0# A\0:\0$ A\0:\0% A\0:\0& A\0:\0' A\0:\0( A\0:\0) A\0:\0* A\0:\0+ A\0:\0, A\0:\0- A\0:\0. A\0:\0/ A\0:\x000 A\0:\x001 A\0:\x002 A\0:\x003 A\0:\x004 A\0:\x005 A\0:\x006 A\0:\x007 A\0:\x008 A\0:\x009 A\0:\0: A\0:\0; A\0:\0< A\0:\0= A\0:\0> A\0:\0? A@k$\0\v\xD1\r\x7F~#\0A\xF0\0k"A\0A\xE4\0\xFC\v\0 5<! 58!
1829
+ 54!\v 50!\b 5,! 5(! 5$!\f 5 !\r 5! 5! 5! 5! 5\f! 5\b! 5! 5\0!@  At"j" 5\0  5\x90L"~|"\x07>\0  5 \x07B \x88|  ~|"\x07>  5\b \x07B \x88|  ~|"\x07>\b  5\f \x07B \x88|  ~|"\x07>\f  5 \x07B \x88|  ~|"\x07>  5 \x07B \x88|  ~|"\x07>  5 \x07B \x88|  ~|"\x07>  5 \x07B \x88|  ~|"\x07>  5 \x07B \x88|  \r~|"\x07>  5$ \x07B \x88|  \f~|"\x07>$  5( \x07B \x88|  ~|"\x07>(  5, \x07B \x88|  ~|"\x07>,  50 \x07B \x88|  \b~|"\x07>0  54 \x07B \x88|  \v~|"\x07>4  58 \x07B \x88| 
1830
+ ~|"\x07>8  5< \x07B \x88|  ~|7< Aj"A G\r\0\v  5 5 5 5 5\f 5\b 5 5\0 (@"\xAD"B\xED\xA7\xD7\xE7~"
1831
+ B\x80\x80\x80\x80p\x84}"\bB \x88| 5D"B\xED\xA7\xD7\xE7~ B\x9A\xC6\xC9\xC0~
1832
+ B \x88|"\vB\xFF\xFF\xFF\xFF\x83|" B\x7F\x85B\xFF\xFF\xFF\xFF\x83|"B \x88| 5H"
1833
+ B\xED\xA7\xD7\xE7~ B\xD6\xB9\xDE\x97
1834
+ ~ \vB \x88|"\fB\xFF\xFF\xFF\xFF\x83 B \x88| B\x9A\xC6\xC9\xC0~|" B\xFF\xFF\xFF\xFF\x83|"\rB\x7F\x85B\xFF\xFF\xFF\xFF\x83|"B \x88| 5L"\vB\xED\xA7\xD7\xE7~ B\xDE\xF3\xFB\xA6~ \fB \x88|"\fB\xFF\xFF\xFF\xFF\x83 B \x88| B\xD6\xB9\xDE\x97
1835
+ ~|" B\xFF\xFF\xFF\xFF\x83 \rB \x88|
1836
+ B\x9A\xC6\xC9\xC0~|"\rB\xFF\xFF\xFF\xFF\x83|"B\x7F\x85B\xFF\xFF\xFF\xFF\x83|"B \x88| 5P"B\xED\xA7\xD7\xE7~ B \x88 \fB \x88| B\xDE\xF3\xFB\xA6~|" B\xFF\xFF\xFF\xFF\x83 \rB \x88|
1837
+ B\xD6\xB9\xDE\x97
1838
+ ~|"\fB\xFF\xFF\xFF\xFF\x83 B \x88| \vB\x9A\xC6\xC9\xC0~|"\rB\xFF\xFF\xFF\xFF\x83|"B\x7F\x85B\xFF\xFF\xFF\xFF\x83|"B \x88| 5T"B\xED\xA7\xD7\xE7~ \fB \x88 B \x88|
1839
+ B\xDE\xF3\xFB\xA6~|"
1840
+ B\xFF\xFF\xFF\xFF\x83 \rB \x88| \vB\xD6\xB9\xDE\x97
1841
+ ~|" B\xFF\xFF\xFF\xFF\x83 B \x88| B\x9A\xC6\xC9\xC0~|"\fB\xFF\xFF\xFF\xFF\x83|"\rB\x7F\x85B\xFF\xFF\xFF\xFF\x83|"B \x88| 5X"B\xED\xA7\xD7\xE7~ B \x88
1842
+ B \x88| \vB\xDE\xF3\xFB\xA6~|"
1843
+ B\xFF\xFF\xFF\xFF\x83 \fB \x88| B\xD6\xB9\xDE\x97
1844
+ ~|"\vB\xFF\xFF\xFF\xFF\x83 \rB \x88| B\x9A\xC6\xC9\xC0~|" B\xFF\xFF\xFF\xFF\x83|"\fB\x7F\x85B\xFF\xFF\xFF\xFF\x83|"\rB \x88|
1845
+ B \x88\xA7 Atj\xAD \vB \x88| B\xDE\xF3\xFB\xA6~| B \x88| B\xD6\xB9\xDE\x97
1846
+ ~| \fB \x88| B\x9A\xC6\xC9\xC0~| 5\\B\xED\xA7\xD7\xE7~|B\x7F\x85|"B\xFF\xFF\xFF\xFF\x83 \rB\xFF\xFF\xFF\xFF\x83"
1847
+ B\xFF\xFF\xFF\xFF\x83"\v B\xFF\xFF\xFF\xFF\x83" B\xFF\xFF\xFF\xFF\x83" B\xFF\xFF\xFF\xFF\x83"\f B\xFF\xFF\xFF\xFF\x83" \bB\xFF\xFF\xFF\xFF\x83"\bB\x93\xD8\xA8\x98
1848
+ |B \x88|B\xE5\xB9\xB6\xBF
1849
+ |B \x88|B\xA9\xC6\xA1\xE8|B \x88|B\xA1\x8C\x84\xD9|B \x88|B\xFF\xFF\xFF\xFF|B \x88|B\xFF\xFF\xFF\xFF|B \x88|B\xFF\xFF\xFF\xFF|B \x88|B\xFF\xFF\xFF\xFF|B \x88"\r \b|A\0 \r\xA7k"A\x92\xD8\xA8\x98zq\xAD|"\b>\0   A\xE5\xB9\xB6\xBFzq\xAD| \bB \x88|"\b>  \f A\xA9\xC6\xA1\xE8q\xAD| \bB \x88|"\b>\b   A\xA1\x8C\x84\xD9~q\xAD| \bB \x88|"\b>\f  \xAD"| \bB \x88|"\b>   \v| \bB \x88|"\v>  
1850
+ | \vB \x88|">  B \x88\xA7 \xA7 A\xFF\xFF\xFF\xFF~qjj6 \0 )\x007\0\0 \0 )7\0 \0 )\b7\0\b \0 )7\0A\0!@  j"\0A\0:\0\0 \0A\0:\0 \0A\0:\0 \0A\0:\0 \0A\0:\0 Aj"A\xE4\0G\r\0\v\v\xC7
1851
+ \x7F~#\0A\x80k"$\0  )\07x  )\07p  )\0\b7h  )\0\x007\`  )\07X  )\07P  )\0\b7H  )\0\x007@  )\07  )\07  )\0\b7\b  )\0\x007\0 B\x007 B\x007( B\x0070 B\x0078 A\xE0\0j! A@k!@  At"j" 5\0 5\0  j"5\0~|"\x07>\0  5 \x07B \x88| 5 5\0~|"\x07>  5\b \x07B \x88| 5\b 5\0~|"\x07>\b  5\f \x07B \x88| 5\f 5\0~|"\x07>\f  5 \x07B \x88| 5 5\0~|"\x07>  5 \x07B \x88| 5 5\0~|"\x07>  5 \x07B \x88| 5 5\0~|"\x07>  5 \x07B \x88| 5 5\0~|7 Aj"A\bG\r\0\v \0 q A\0:\0\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x07 A\0:\0\b A\0:\0 A\0:\0
1852
+ A\0:\0\v A\0:\0\f A\0:\0\r A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x1B A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0! A\0:\0" A\0:\0# A\0:\0$ A\0:\0% A\0:\0& A\0:\0' A\0:\0( A\0:\0) A\0:\0* A\0:\0+ A\0:\0, A\0:\0- A\0:\0. A\0:\0/ A\0:\x000 A\0:\x001 A\0:\x002 A\0:\x003 A\0:\x004 A\0:\x005 A\0:\x006 A\0:\x007 A\0:\x008 A\0:\x009 A\0:\0: A\0:\0; A\0:\0< A\0:\0= A\0:\0> A\0:\0? A\0:\0\` A\0:\0a A\0:\0b A\0:\0c A\0:\0d A\0:\0e A\0:\0f A\0:\0g A\0:\0h A\0:\0i A\0:\0j A\0:\0k A\0:\0l A\0:\0m A\0:\0n A\0:\0o A\0:\0p A\0:\0q A\0:\0r A\0:\0s A\0:\0t A\0:\0u A\0:\0v A\0:\0w A\0:\0x A\0:\0y A\0:\0z A\0:\0{ A\0:\0| A\0:\0} A\0:\0~ A\0:\0\x7F A\0:\0@ A\0:\0A A\0:\0B A\0:\0C A\0:\0D A\0:\0E A\0:\0F A\0:\0G A\0:\0H A\0:\0I A\0:\0J A\0:\0K A\0:\0L A\0:\0M A\0:\0N A\0:\0O A\0:\0P A\0:\0Q A\0:\0R A\0:\0S A\0:\0T A\0:\0U A\0:\0V A\0:\0W A\0:\0X A\0:\0Y A\0:\0Z A\0:\0[ A\0:\0\\ A\0:\0] A\0:\0^ A\0:\0_ A\x80j$\0\v\xC7\r\x7F#\0A k"$\0 \0A(j" k \0B\x007T \0A6P \0B\x007\\ \0B\x007d \0B\x007l \0A\x006t \0A\xF8\0j" m \0 A\xC0\xCC\0l \0 \0(x \0(P"k6x \0 \0(| \0(T"k6| \0 \0(\x80 \0(X"\x07k6\x80 \0 \0(\x84 \0(\\"\bk6\x84 \0 \0(\x88 \0(\`" k6\x88 \0 \0(\x8C \0(d"
1853
+ k6\x8C \0 \0(\x90 \0(h"\vk6\x90 \0 \0(\x94 \0(l"\fk6\x94 \0 \0(\x98 \0(p"\rk6\x98 \0 \0(\x9C \0(t"k6\x9C \0  \0(\0j6\0 \0  \0(j6 \0 \x07 \0(\bj6\b \0 \b \0(\fj6\f \0 \0(j6 \0
1854
+ \0(j6 \0 \v \0(j6 \0 \f \0(j6 \0 \r \0( j6 \0  \0($j6$ \0  \0l \0 \0n\x7F \0  \0l  \0o -\0\0 A\0:\0\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x07 A\0:\0\b A\0:\0 A\0:\0
1855
+ A\0:\0\v A\0:\0\f A\0:\0\r A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x1B A\0:\0 A\0:\0 A\0:\0 A\0:\0Aq -\0A\x07vF@ \0A\0 \0(\0k6\0 \0A\0 \0(k6 \0A\0 \0(\bk6\b \0A\0 \0(\fk6\f \0A\0 \0(k6 \0A\0 \0(k6 \0A\0 \0(k6 \0A\0 \0(k6 \0A\0 \0( k6 \0A\0 \0($k6$\v  \0 lA\0A\x7F\v A j$\0\v\xCA
1856
+ \x7F~  m A(j"\f A(jm A\xD0\0j" A\xD0\0jm 4$!$ 4 !% 4\f!& 4!' 4\b!" 4\0!# 4!  4B\x86 4B\x86 4B\x86"(B\x80\x80\x80|")B\x87|"*B\x80\x80\x80\b|"+B\x87|" B\x80\x80\x80|"!B\x80\x80\x80\xE0\x83}>  "B\x86 B\x86 #B\x86",B\x80\x80\x80|"-B\x87|""B\x80\x80\x80\b|"#B\x87|" B\x80\x80\x80|" B\x80\x80\x80\xE0\x83}>\b  'B\x86 !B\x87|" B\x80\x80\x80\b|"!B\x80\x80\x80\xF0\x83}>  &B\x86 B\x87|" B\x80\x80\x80\b|" B\x80\x80\x80\xF0\x83}>\f  %B\x86 !B\x87|" B\x80\x80\x80|"!B\x80\x80\x80\xE0\x83}>  * +B\x80\x80\x80\xF0\x83} ( )B\x80\x80\x80\`\x83} B\x87|" B\x80\x80\x80|"B\x88|>  B\x80\x80\x80\xE0\x83}>  $B\x86 !B\x87|" B\x80\x80\x80\b|"B\x80\x80\x80\xF0\x83}>$  " #B\x80\x80\x80\xF0\x83} , -B\x80\x80\x80\`\x83} B\x87B~|" B\x80\x80\x80|"B\x88|>  B\x80\x80\x80\xE0\x83}>\0  (( (\0j6x  (, (j6|  (0 (\bj6\x80  (4 (\fj6\x84  (8 (j6\x88  (< (j6\x8C  (@ (j6\x90  (D (j6\x94  (H ( j6\x98  (L ($j6\x9C \0A\xF8\0j" A\xF8\0j"\rm  (\0" (("j"6x  (" (,"\x07j"6|  (\b"\b (0" j"6\x80  (\f"
1857
+ (4"\vj"6\x84  (" (8"j"6\x88  (" (<"j"6\x8C  (" (@"j"6\x90   k"\x1B6<   k"68  \v
1858
+ k"64  \bk"60  \x07 k"\x076,   k"\b6(  (D" ("k" 6D  (H" ( "k"
1859
+ 6H   j"\v6\x94   j"6\x98  (L" ($"k"6L   j"6\x9C   k"6@  \0(x k6\0  \0(| k6  \0(\x80 k6\b  \0(\x84 k6\f  \0(\x88 k6  \0(\x8C k6  \0(\x90 k6  \0(\x94 \vk6  \0(\x98 k6  \0(\x9C k6$  (P \bk6P  (T \x07k6T  (X k6X  (\\ k6\\  (\` k6\`  (d \x1Bk6d  (h k6h  (l k6l  (p
1860
+ k6p  (t k6t \0  l \0A(j \r \fl \0A\xD0\0j \f l   \rl\v\xB8\0 \0 (\0 ((j6\0 \0 ( (,j6 \0 (\b (0j6\b \0 (\f (4j6\f \0 ( (8j6 \0 ( (<j6 \0 ( (@j6 \0 ( (Dj6 \0 ( (Hj6 \0 ($ (Lj6$ \0 (( (\0k6( \0 (, (k6, \0 (0 (\bk60 \0 (4 (\fk64 \0 (8 (k68 \0 (< (k6< \0 (@ (k6@ \0 (D (k6D \0 (H ( k6H \0 (L ($k6L \0 (P6P \0 (T6T \0 (X6X \0 (\\6\\ \0 (\`6\` \0 (d6d \0 (h6h \0 (l6l \0 (p6p \0 (t6t \0A\xF8\0j A\xF8\0jA\xE0\xCB\0l\v\x95 \x7F#\0A\xE0\0k"$\0  (\0" (("\x07j60  ("\b (," j64  (\b"
1861
+ (0"\vj68  (\f"\f (4"\rj6<  (" (8"j6@  (" (<"j6D  (" (@"j6H  (" (D"j6L  ( " (H"j6P ($! (L!   k6   k6   k6   k6   k6  \r \fk6\f  \v
1862
+ k6\b  \bk6  \x07 k6\0   k6$   j6T A0j"  l   A(jl \0 (\0" (0"\x07j6( \0 ("\b (4" j6, \0 (\b"
1863
+ (8"\vj60 \0 (\f"\f (<"\rj64 \0 (" (@"j68 \0 (" (D"j6< \0 (" (H"j6@ \0 (" (L"j6D \0 ( " (P"j6H ($! (T! \0  k6 \0  k6 \0  k6 \0  k6 \0  k6 \0 \r \fk6\f \0 \v
1864
+ k6\b \0 \bk6 \0 \x07 k6\0 \0  k6$ \0  j6L \0 (PAt6P \0 (TAt6T \0 (XAt6X \0 (\\At6\\ \0 (\`At6\` \0 (dAt6d \0 (hAt6h \0 (lAt6l \0 (pAt6p \0 (tAt6t \0A\xD0\0j"  A\xD0\0jl \0A\xF8\0j" A\xF8\0j A\xF8\0jl  \0(x" \0(P"\x07j60  \0(|"\b \0(T" j64  \0(\x80"
1865
+ \0(X"\vj68  \0(\x84"\f \0(\\"\rj6<  \0(\x88" \0(\`"j6@  \0(\x8C" \0(d"j6D  \0(\x90" \0(h"j6H  \0(\x94" \0(l"j6L  \0(\x98" \0(p"j6P \0(\x9C! \0(t!   k6   k6   k6   k6   k6  \r \fk6\f  \v
1866
+ k6\b  \bk6  \x07 k6\0   k6$   j6T  \0 \0A(j"l \0 \0 l   l   l A\xE0\0j$\0\v\xDE\x7F \0-\0"\x07 F@  Avj-\0\0 A\x07qvAq! \0 \x7F  Ak"Avj-\0\0 A\x07qvAqA\0\v F\x7F \x07Ak   Aj"  I\x1B"\bAk"t!A\0!\x7FA\0 k E\r\0  k"A\0N\x7F  Avj-\0\0 A\x07qvAqA\0\v k" AF\r\0A\0! A\x7FN\x7F  Aj"Avj-\0\0 A\x07qvAtAqA\0\v j" AF\r\0A\0! A~N\x7F  Aj"Avj-\0\0 A\x07qvAtAqA\0\v j" AF\r\0A\0! A}N\x7F  Aj"Avj-\0\0 A\x07qvAtA\bqA\0\v j\v!A\0! \0  \bk"A\0N\x7F  Avj-\0\0 A\x07qvAqA\0\v j"AA\0 A\0 kq"A\xCCq\x1B A\xAAqA\0GrAA\0 A\xF0q\x1Br"u:\0 \0  jAj;\0 \x07 \bk\v:\0\vA\0! \0.\0 F\x7F \0,\0A\0\v\v\xA8 \x7F  (\0 ((j6\0  ( (,j6  (\b (0j6\b  (\f (4j6\f  ( (8j6  ( (<j6  ( (@j6  ( (Dj6  ( (Hj6  ($ (Lj6$  (( (\0k6\0  (, (k6  (0 (\bk6\b  (4 (\fk6\f  (8 (k6  (< (k6  (@ (k6  (D (k6  (H ( k6  (L ($k6$   l   A(jl \0 (\0 (\0j6( \0 ( (j6, \0 (\b (\bj60 \0 (\f (\fj64 \0 ( (j68 \0 ( (j6< \0 ( (j6@ \0 ( (j6D \0 ( ( j6H \0 ($ ($j6L \0 (\0 (\0k6\0 \0 ( (k6 \0 (\b (\bk6\b \0 (\f (\fk6\f \0 ( (k6 \0 ( (k6 \0 ( (k6 \0 ( (k6 \0 ( ( k6 \0 ($ ($k6$ \0 (PAt6P \0 (TAt6T \0 (XAt6X \0 (\\At6\\ \0 (\`At6\` \0 (dAt6d \0 (hAt6h \0 (lAt6l \0 (pAt6p \0 (tAt6t \0A\xF8\0j" A\xF8\0j A\xD0\0jl  \0(x \0(Pj6\0  \0(| \0(Tj6  \0(\x80 \0(Xj6\b  \0(\x84 \0(\\j6\f  \0(\x88 \0(\`j6  \0(\x8C \0(dj6  \0(\x90 \0(hj6  \0(\x94 \0(lj6  \0(\x98 \0(pj6  \0(\x9C \0(tj6$  \0(P \0(xk6\0  \0(T \0(|k6  \0(X \0(\x80k6\b  \0(\\ \0(\x84k6\f  \0(\` \0(\x88k6  \0(d \0(\x8Ck6  \0(h \0(\x90k6  \0(l \0(\x94k6  \0(p \0(\x98k6  \0(t \0(\x9Ck6$  \0 \0A(j"l \0 \0 l   l \0A\xD0\0j  l\v\xED\v\x7F#\0A\xB0k"$\0 A\xE0\0j" A\xD0\0j"m  n  m A0j"  l A\0:\0\` A\0:\0a A\0:\0b A\0:\0c A\0:\0d A\0:\0e A\0:\0f A\0:\0g A\0:\0h A\0:\0i A\0:\0j A\0:\0k A\0:\0l A\0:\0m A\0:\0n A\0:\0o A\0:\0p A\0:\0q A\0:\0r A\0:\0s A\0:\0t A\0:\0u A\0:\0v A\0:\0w A\0:\0x A\0:\0y A\0:\0z A\0:\0{ A\0:\0| A\0:\0} A\0:\0~ A\0:\0\x7F A\0:\0\x80 A\0:\0\x81 A\0:\0\x82 A\0:\0\x83 A\0:\0\x84 A\0:\0\x85 A\0:\0\x86 A\0:\0\x87   l  A(j l \0 o A\x90j o -\0\x90! A\0:\0\x90 A\0:\0\x91 A\0:\0\x92 A\0:\0\x93 A\0:\0\x94 A\0:\0\x95 A\0:\0\x96 A\0:\0\x97 A\0:\0\x98 A\0:\0\x99 A\0:\0\x9A A\0:\0\x9B A\0:\0\x9C A\0:\0\x9D A\0:\0\x9E A\0:\0\x9F A\0:\0\xA0 A\0:\0\xA1 A\0:\0\xA2 A\0:\0\xA3 A\0:\0\xA4 A\0:\0\xA5 A\0:\0\xA6 A\0:\0\xA7 A\0:\0\xA8 A\0:\0\xA9 A\0:\0\xAA A\0:\0\xAB A\0:\0\xAC A\0:\0\xAD A\0:\0\xAE A\0:\0\xAF \0 \0-\0 A\x07ts:\0 A\0:\x000 A\0:\x001 A\0:\x002 A\0:\x003 A\0:\x004 A\0:\x005 A\0:\x006 A\0:\x007 A\0:\x008 A\0:\x009 A\0:\0: A\0:\0; A\0:\0< A\0:\0= A\0:\0> A\0:\0? A\0:\0@ A\0:\0A A\0:\0B A\0:\0C A\0:\0D A\0:\0E A\0:\0F A\0:\0G A\0:\0H A\0:\0I A\0:\0J A\0:\0K A\0:\0L A\0:\0M A\0:\0N A\0:\0O A\0:\0P A\0:\0Q A\0:\0R A\0:\0S A\0:\0T A\0:\0U A\0:\0V A\0:\0W A\0:\0\` A\0:\0a A\0:\0b A\0:\0c A\0:\0d A\0:\0e A\0:\0f A\0:\0g A\0:\0h A\0:\0i A\0:\0j A\0:\0k A\0:\0l A\0:\0m A\0:\0n A\0:\0o A\0:\0p A\0:\0q A\0:\0r A\0:\0s A\0:\0t A\0:\0u A\0:\0v A\0:\0w A\0:\0x A\0:\0y A\0:\0z A\0:\0{ A\0:\0| A\0:\0} A\0:\0~ A\0:\0\x7F A\0:\0\x80 A\0:\0\x81 A\0:\0\x82 A\0:\0\x83 A\0:\0\x84 A\0:\0\x85 A\0:\0\x86 A\0:\0\x87 A\0:\0\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x07 A\0:\0\b A\0:\0 A\0:\0
1867
+ A\0:\0\v A\0:\0\f A\0:\0\r A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x1B A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0! A\0:\0" A\0:\0# A\0:\0$ A\0:\0% A\0:\0& A\0:\0' A\xB0j$\0\v\xF5\v\x07\x7F#\0A\xA0k"$\0#\0A\xA0k"$\0 A\x80j" A\xF0\xCC\0A\x90\xCD\0r B\x007\xAC A6\xA8 B\x007\xB4 B\x007\xBC B\x007\xC4 B\x80\x80\x80\x807\xCC A\xD4jA\0A\xCC\0\xFC\v\0 "B\x007 B\x007 B\x007 B\x007\b B\x007\0 B\x007, A6( B\x0074 B\x007< B\x007D B\x80\x80\x80\x807L A\xD4\0jA\0A\xCC\0\xFC\v\0  A\xA8j" A\xD0j" A\xA0j"A\xB0\xCD\0 A{    A\xF0\xD4\0 A\x9F{A!@   A\bjt  A\xA8j" A\xD0j" A\xA0j"\x07A\xB0\xCD\0 A\x80j"\b "{    \x07A\xF0\xD4\0 \b A\x80j{ Ak! \r\0\v A\0:\0\xD0 A\0:\0\xD1 A\0:\0\xD2 A\0:\0\xD3 A\0:\0\xD4 A\0:\0\xD5 A\0:\0\xD6 A\0:\0\xD7 A\0:\0\xD8 A\0:\0\xD9 A\0:\0\xDA A\0:\0\xDB A\0:\0\xDC A\0:\0\xDD A\0:\0\xDE A\0:\0\xDF A\0:\0\xE0 A\0:\0\xE1 A\0:\0\xE2 A\0:\0\xE3 A\0:\0\xE4 A\0:\0\xE5 A\0:\0\xE6 A\0:\0\xE7 A\0:\0\xE8 A\0:\0\xE9 A\0:\0\xEA A\0:\0\xEB A\0:\0\xEC A\0:\0\xED A\0:\0\xEE A\0:\0\xEF A\0:\0\xF0 A\0:\0\xF1 A\0:\0\xF2 A\0:\0\xF3 A\0:\0\xF4 A\0:\0\xF5 A\0:\0\xF6 A\0:\0\xF7A\0!@ A\bj j"A\0:\0\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x07 A\bj"A\xA0G\r\0\v A\0:\0\xA0 A\0:\0\xA1 A\0:\0\xA2 A\0:\0\xA3 A\0:\0\xA4 A\0:\0\xA5 A\0:\0\xA6 A\0:\0\xA7 A\0:\0\xA8 A\0:\0\xA9 A\0:\0\xAA A\0:\0\xAB A\0:\0\xAC A\0:\0\xAD A\0:\0\xAE A\0:\0\xAF A\0:\0\xB0 A\0:\0\xB1 A\0:\0\xB2 A\0:\0\xB3 A\0:\0\xB4 A\0:\0\xB5 A\0:\0\xB6 A\0:\0\xB7 A\0:\0\xB8 A\0:\0\xB9 A\0:\0\xBA A\0:\0\xBB A\0:\0\xBC A\0:\0\xBD A\0:\0\xBE A\0:\0\xBF A\0:\0\xC0 A\0:\0\xC1 A\0:\0\xC2 A\0:\0\xC3 A\0:\0\xC4 A\0:\0\xC5 A\0:\0\xC6 A\0:\0\xC7A\0!@ A\xA8j j"A\0:\0\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x07 A\bj"A\xF8\0G\r\0\v A\0:\0\x80 A\0:\0\x81 A\0:\0\x82 A\0:\0\x83 A\0:\0\x84 A\0:\0\x85 A\0:\0\x86 A\0:\0\x87 A\0:\0\x88 A\0:\0\x89 A\0:\0\x8A A\0:\0\x8B A\0:\0\x8C A\0:\0\x8D A\0:\0\x8E A\0:\0\x8F A\0:\0\x90 A\0:\0\x91 A\0:\0\x92 A\0:\0\x93 A\0:\0\x94 A\0:\0\x95 A\0:\0\x96 A\0:\0\x97 A\0:\0\x98 A\0:\0\x99 A\0:\0\x9A A\0:\0\x9B A\0:\0\x9C A\0:\0\x9D A\0:\0\x9E A\0:\0\x9F A\xA0j$\0 \0 yA\0!\0@ \0 j"A\0:\0\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x07 \0A\bj"\0A\xA0G\r\0\v A\xA0j$\0\v\x84 #\x7F  A\xE0\0jAvj-\0\0 A\x07q"\x07vAq"&AkA\x07q  A@kAvj-\0\0 \x07vAtAq  A jAvj-\0\0 \x07vAtAq  Avj-\0\0 \x07vAqrrs!' A\xD0\0j A(j!) (t! (p!
1868
+ (l!\v (h!\f (d!\r (\`! (\\! (X! (T! (P!\x07 (L! (H! (D! (@! (<! (8! (4! (0! (,! ((!\x1B ($! ( ! (! (! (! (!! (\f!" (\b!# (!$ (\0!%@  \b 'sAtA\x80\x80\x80kAu"  \bA\xF8\0lj"(\0 %sq %s"%6\0  ( $s q $s"$6  (\b #s q #s"#6\b  (\f "s q "s""6\f  ( !s q !s"!6  ( s q s" 6  ( s q s"6  ( s q s"6  ( s q s"6  ($ s q s"6$  (( \x1Bs q \x1Bs"\x1B6(  (, s q s"6,  (0 s q s"60  (4 s q s"64  (8 s q s"68  (< s q s"6<  (@ s q s"6@  (D s q s"6D  (H s q s"6H  (L s q s"6L  (P \x07s q \x07s"\x076P  (T s q s"6T  (X s q s"6X  (\\ s q s"6\\  (\` s q s"6\`  (d \rs q \rs"\r6d  (h \fs q \fs"\f6h  (l \vs q \vs"\v6l  (p
1869
+ s q
1870
+ s"
1871
+ 6p  (t s q s" 6t \bAj"\bA\bG\r\0\v A\0 \x07k6\0 A\0 (Tk6 A\0 (Xk6\b A\0 (\\k6\f A\0 (\`k6 A\0 (dk6 A\0 (hk6 A\0 (lk6 A\0 (pk6 A\0 (tk6$  &E"}  ) } \0 \0   x\v\xC5\x7F\b~#\0A@j"$\0 A j \0o  o ) ! A\0:\0 A\0:\0! A\0:\0" A\0:\0# A\0:\0$ A\0:\0% A\0:\0& A\0:\0' )( A\0:\0( A\0:\0) A\0:\0* A\0:\0+ A\0:\0, A\0:\0- A\0:\0. A\0:\0/ )0! A\0:\x000 A\0:\x001 A\0:\x002 A\0:\x003 A\0:\x004 A\0:\x005 A\0:\x006 A\0:\x007 )8! A\0:\x008 A\0:\x009 A\0:\0: A\0:\0; A\0:\0< A\0:\0= A\0:\0> A\0:\0? )\0!\x07 A\0:\0\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0\x07 )\b A\0:\0\b A\0:\0 A\0:\0
1872
+ A\0:\0\v A\0:\0\f A\0:\0\r A\0:\0 A\0:\0 )! A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 A\0:\0 )!
1873
+ A\0:\0 A\0:\0 A\0:\0 A\0:\0\x1B A\0:\0 A\0:\0 A\0:\0 A\0:\0 A@k$\0\x85  \x07\x85\x84  \x85\x84 
1874
+ \x85\x84"B \x88 B\xFF\xFF\xFF\xFF\x83\x84B}B \x88\xA7Aq\v\x8F\x7F \0A\0 k" \0(\0" (\0sq" s6\0  (\0 s6\0 \0 \0(" (s q" s6  ( s6 \0 \0(\b" (\bs q" s6\b  (\b s6\b \0 \0(\f" (\fs q" s6\f  (\f s6\f \0 \0(" (s q" s6  ( s6 \0 \0(" (s q" s6  ( s6 \0 \0(" (s q" s6  ( s6 \0 \0(" (s q" s6  ( s6 \0 \0( " ( s q" s6  ( s6 \0 \0($"\0 ($s q" \0s6$  ($ s6$\v\xBA\f\x7F~@ E\r\0 \0(\xD0"A\x07q@A\0 kA\x07q"   K\x1B!@ E\r\0 \0A@k" Axqj" )\0 1\0\0 A\x7FsAt\xAD\x86\x847\0 \0 \0(\xD0Aj"6\xD0 AF\r\0  Axqj" )\0 1\0 A\x7FsAt\xAD\x86\x847\0 \0 \0(\xD0Aj"6\xD0 AF\r\0  Axqj" )\0 1\0 A\x7FsAt\xAD\x86\x847\0 \0 \0(\xD0Aj"6\xD0 AF\r\0  Axqj" )\0 1\0 A\x7FsAt\xAD\x86\x847\0 \0 \0(\xD0Aj"6\xD0 AF\r\0  Axqj" )\0 1\0 A\x7FsAt\xAD\x86\x847\0 \0 \0(\xD0Aj"6\xD0 AF\r\0  Axqj" )\0 1\0 A\x7FsAt\xAD\x86\x847\0 \0 \0(\xD0Aj"6\xD0 AF\r\0  Axqj" )\0 1\0 A\x7FsAt\xAD\x86\x847\0 \0 \0(\xD0Aj"6\xD0\v  k!  j!\v A\xFF\0q@A\0!A\0 kA\xFF\0q"   K\x1B"Av"@ \0 AxqjA@k!@  At"\x07j  \x07j)\0\0"\bB8\x86 \bB\x80\xFE\x83B(\x86\x84 \bB\x80\x80\xFC\x07\x83B\x86 \bB\x80\x80\x80\xF8\x83B\b\x86\x84\x84 \bB\b\x88B\x80\x80\x80\xF8\x83 \bB\x88B\x80\x80\xFC\x07\x83\x84 \bB(\x88B\x80\xFE\x83 \bB8\x88\x84\x84\x847\0 Aj" G\r\0\v \0(\xD0!\v \0  A\xF8\0q"j"6\xD0  k!  j!\v A\x80F@ \0 \0)\xC8"\bB\x80\b|7\xC8 \bB\x80xZ@ \0 \0)\xC0B|7\xC0\v \0\x7F \0A\x006\xD0 \0A@kA\0A\x80\xFC\v\0A\0!\v A\x07v"\x07@ \0A@k!A\0!@A\0!@  At"j  j)\0\0"\bB8\x86 \bB\x80\xFE\x83B(\x86\x84 \bB\x80\x80\xFC\x07\x83B\x86 \bB\x80\x80\x80\xF8\x83B\b\x86\x84\x84 \bB\b\x88B\x80\x80\x80\xF8\x83 \bB\x88B\x80\x80\xFC\x07\x83\x84 \bB(\x88B\x80\xFE\x83 \bB8\x88\x84\x84\x847\0 Aj"AG\r\0\v \0 \0)\xC8"\bB\x80\b|7\xC8 \bB\x80xZ@ \0 \0)\xC0B|7\xC0\v \0\x7FA\0! \0A\x006\xD0 A\0A\x80\xFC\v\0 A\x80j! Aj" \x07G\r\0\v\v A\xFF\0q"E\r\0 \0A@k! Av"@A\0!@  At"j  j)\0\0"\bB8\x86 \bB\x80\xFE\x83B(\x86\x84 \bB\x80\x80\xFC\x07\x83B\x86 \bB\x80\x80\x80\xF8\x83B\b\x86\x84\x84 \bB\b\x88B\x80\x80\x80\xF8\x83 \bB\x88B\x80\x80\xFC\x07\x83\x84 \bB(\x88B\x80\xFE\x83 \bB8\x88\x84\x84\x847\0 Aj" G\r\0\v \0(\xD0!\v \0  A\xF8\0q"j"6\xD0 A\x07q"E\r\0  Axqj" )\0  j"1\0\0 A\x7FsAt\xAD\x86\x847\0 \0 \0(\xD0Aj"6\xD0 AF\r\0  Axqj" )\0 1\0 A\x7FsAt\xAD\x86\x847\0 \0 \0(\xD0Aj"6\xD0 AF\r\0  Axqj" )\0 1\0 A\x7FsAt\xAD\x86\x847\0 \0 \0(\xD0Aj"6\xD0 AF\r\0  Axqj" )\0 1\0 A\x7FsAt\xAD\x86\x847\0 \0 \0(\xD0Aj"6\xD0 AF\r\0  Axqj" )\0 1\0 A\x7FsAt\xAD\x86\x847\0 \0 \0(\xD0Aj"6\xD0 AF\r\0  Axqj" )\0 1\0 A\x7FsAt\xAD\x86\x847\0 \0 \0(\xD0Aj"6\xD0 AF\r\0  Axqj" )\0 1\0 A\x7FsAt\xAD\x86\x847\0 \0 \0(\xD0Aj6\xD0\v\v\xDD~\b\x7F \0A@k! \0)\0"\v!\x07 \0)\b"\f! \0)"\r! \0)"! \0) "! \0)("! \0)8"!\b \0)0"! @ ! !
1875
+ ! ! At")\xB0\\ " "\x83 \b|  B\x7F\x85\x83| B2\x89 B.\x89\x85 B\x89\x85||  j)\0|" \x07"B$\x89 B\x89\x85 B\x89\x85  \x85 \x83  \x83\x85||!\x07 
1876
+ |!A! !\b Aj"AG\r\0\v@ Aj"AtA\xB0\xDC\0j!A\0!@ !\b !
1877
+ ! !  At"j" )\0  AjAqAtj)\0"B-\x89 B\x89\x85 B\x88\x85|"7\0    Aj"AqAtj)\0"B?\x89 B8\x89\x85 B\x07\x88\x85|"7\0    A jAqAtj)\0|"7\0  j)\0 " "\x83 | \b B\x7F\x85\x83| B2\x89 B.\x89\x85 B\x89\x85|| |" \x07"B$\x89 B\x89\x85 B\x89\x85  \x85 \x83  \x83\x85||!\x07 
1878
+ |! \b! "AG\r\0\v Aj"AG\r\0\v \0  |78 \0 |70 \0  |7( \0  |7 \0  |7 \0  \r|7 \0  \f|7\b \0 \x07 \v|7\0\v\x9D\x07~\x7F \0(\xD0"E@ \0A@kA\0A\x80\xFC\v\0\v \0A@k" Axqj" )\0B\x80 A\x7FsAt\xAD\x86\x847\0 \0 \0)\xC8" \0(\xD0"At\xAD|"7\xC8  T@ \0 \0)\xC0B|7\xC0\v \0 A\xF0\0O~ \0\x7F A\0A\xF0\0\xFC\v\0 \0)\xC8 \v7\xB8 \0 \0)\xC07\xB0 \0\x7F  \0)\0"B8\x86 B\x80\xFE\x83B(\x86\x84 B\x80\x80\xFC\x07\x83B\x86 B\x80\x80\x80\xF8\x83B\b\x86\x84\x84 B\b\x88B\x80\x80\x80\xF8\x83 B\x88B\x80\x80\xFC\x07\x83\x84 B(\x88B\x80\xFE\x83 B8\x88\x84\x84\x847\0\0  \0)\b"B8\x86 B\x80\xFE\x83B(\x86\x84 B\x80\x80\xFC\x07\x83B\x86 B\x80\x80\x80\xF8\x83B\b\x86\x84\x84 B\b\x88B\x80\x80\x80\xF8\x83 B\x88B\x80\x80\xFC\x07\x83\x84 B(\x88B\x80\xFE\x83 B8\x88\x84\x84\x847\0\b  \0)"B8\x86 B\x80\xFE\x83B(\x86\x84 B\x80\x80\xFC\x07\x83B\x86 B\x80\x80\x80\xF8\x83B\b\x86\x84\x84 B\b\x88B\x80\x80\x80\xF8\x83 B\x88B\x80\x80\xFC\x07\x83\x84 B(\x88B\x80\xFE\x83 B8\x88\x84\x84\x847\0  \0)"B8\x86 B\x80\xFE\x83B(\x86\x84 B\x80\x80\xFC\x07\x83B\x86 B\x80\x80\x80\xF8\x83B\b\x86\x84\x84 B\b\x88B\x80\x80\x80\xF8\x83 B\x88B\x80\x80\xFC\x07\x83\x84 B(\x88B\x80\xFE\x83 B8\x88\x84\x84\x847\0  \0) "B8\x86 B\x80\xFE\x83B(\x86\x84 B\x80\x80\xFC\x07\x83B\x86 B\x80\x80\x80\xF8\x83B\b\x86\x84\x84 B\b\x88B\x80\x80\x80\xF8\x83 B\x88B\x80\x80\xFC\x07\x83\x84 B(\x88B\x80\xFE\x83 B8\x88\x84\x84\x847\0  \0)("B8\x86 B\x80\xFE\x83B(\x86\x84 B\x80\x80\xFC\x07\x83B\x86 B\x80\x80\x80\xF8\x83B\b\x86\x84\x84 B\b\x88B\x80\x80\x80\xF8\x83 B\x88B\x80\x80\xFC\x07\x83\x84 B(\x88B\x80\xFE\x83 B8\x88\x84\x84\x847\0(  \0)0"B8\x86 B\x80\xFE\x83B(\x86\x84 B\x80\x80\xFC\x07\x83B\x86 B\x80\x80\x80\xF8\x83B\b\x86\x84\x84 B\b\x88B\x80\x80\x80\xF8\x83 B\x88B\x80\x80\xFC\x07\x83\x84 B(\x88B\x80\xFE\x83 B8\x88\x84\x84\x847\x000  \0)8"B8\x86 B\x80\xFE\x83B(\x86\x84 B\x80\x80\xFC\x07\x83B\x86 B\x80\x80\x80\xF8\x83B\b\x86\x84\x84 B\b\x88B\x80\x80\x80\xF8\x83 B\x88B\x80\x80\xFC\x07\x83\x84 B(\x88B\x80\xFE\x83 B8\x88\x84\x84\x847\x008 \0A\xD8h\v\xE1\x7F#\0A\xA0k"$\0  )\07  )\07  )\0\b7\b  )\0\x007\0 A h \0 )7\0 \0 )7\0 \0 )\b7\0\b \0 )\x007\0\0 B\xF9\xC2\xF8\x9B\x91\xA3\xB3\xF0\xDB\x007\x80 B\xEB\xFA\x86\xDA\xBF\xB5\xF6\xC17x B\x9F\xD8\xF9\xD9\xC2\x91\xDA\x82\x9B\x7F7p B\xD1\x85\x9A\xEF\xFA\xCF\x94\x87\xD1\x007h B\xF1\xED\xF4\xF8\xA5\xA7\xFD\xA7\xA5\x7F7\` B\xAB\xF0\xD3\xF4\xAF\xEE\xBC\xB7<7X B\xBB\xCE\xAA\xA6\xD8\xD0\xEB\xB3\xBB\x7F7P B\x88\x92\xF3\x9D\xFF\xCC\xF9\x84\xEA\x007H A\x88jA\0A\x94\xFC\v\0 A\xC8\0j" A ~  \x80  i  z \0 -\0\0:\0 \0 -\0:\0! \0 -\0:\0" \0 -\0:\0# \0 -\0:\0$ \0 -\0:\0% \0 -\0:\0& \0 -\0\x07:\0' \0 -\0\b:\0( \0 -\0 :\0) \0 -\0
1879
+ :\0* \0 -\0\v:\0+ \0 -\0\f:\0, \0 -\0\r:\0- \0 -\0:\0. \0 -\0:\0/ \0 -\0:\x000 \0 -\0:\x001 \0 -\0:\x002 \0 -\0:\x003 \0 -\0:\x004 \0 -\0:\x005 \0 -\0:\x006 \0 -\0:\x007 \0 -\0:\x008 \0 -\0:\x009 \0 -\0:\0: \0 -\0\x1B:\0; \0 -\0:\0< \0 -\0:\0= \0 -\0:\0> \0 -\0:\0? A\xC0\0h A\xA0j$\0\v\xA4\x07\x7F \0 \0-\0\b" \0-\0" \0-\0\0"Al"-\0\xF1c \0-\0\f"Al"-\0\xF0csss:\0\f \0   Al"\x07-\0\xF0c -\0\xF1csss:\0\b \0   Al"-\0\xF0c \x07-\0\xF1csss:\0 \0   -\0\xF1c -\0\xF0csss:\0\0 \0 \0-\0\r" \0-\0 " \0-\0"Al"-\0\xF1c \0-\0"Al"-\0\xF0csss:\0 \0   -\0\xF0c Al"-\0\xF1csss:\0 \0   -\0\xF0c Al"-\0\xF1csss:\0 \0   -\0\xF1c -\0\xF0csss:\0\r \0 \0-\0" \0-\0
1880
+ " \0-\0"Al"-\0\xF1c \0-\0"Al"-\0\xF0csss:\0 \0   -\0\xF1c Al"-\0\xF0csss:\0 \0   Al"-\0\xF0c -\0\xF1csss:\0
1881
+ \0   -\0\xF0c -\0\xF1csss:\0 \0 \0-\0\v" \0-\0\x07" \0-\0"Al"-\0\xF1c \0-\0"Al"-\0\xF0csss:\0 \0   Al"\x07-\0\xF0c -\0\xF1csss:\0\v \0   Al"-\0\xF0c \x07-\0\xF1csss:\0\x07 \0   -\0\xF1c -\0\xF0csss:\0\v\xF5\x7F  \0(\0\0"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6\0  \0(\0"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6  \0(\0\b"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6\b  \0(\0\f"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6\f  \0(\0"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6  \0(\0"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6  \0(\0"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6  \0(\0"\0A\xFF\x81\xFC\x07qA\bx \0AxA\xFF\x81\xFC\x07qr6 Aj(\0!A\b!\0@@ E@ \0AkAvAt(\xB0c A\bw"A\bvA\xFFq-\0\xB0aA\bt A\xFFq-\0\xB0ar AvA\xFFq-\0\xB0aAtr Av-\0\xB0aAtrs!\f\v AG\r\0 A\xFFq-\0\xB0a A\bvA\xFFq-\0\xB0aA\btr AvA\xFFq-\0\xB0aAtr Av-\0\xB0aAtr!\v  \0Atj  \0A\bkAtj(\0 s"6\0 Aj"A\0 A\bG\x1B! \0Aj"\0A<G\r\0\v\v\xB1\x07\x7F#\0A\x80k"$\0  (\0\0"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6\0  (\0"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6  (\0\b"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6\b  (\0\f"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6\f  (\0"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6  (\0"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6  (\0"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6  (\0"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6  (\0 "A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6  (\0$"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6$  (\0("A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6(  (\0,"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6,  (\x000"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr60  (\x004"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr64  (\x008"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr68  (\0<"A\xFF\x81\xFC\x07qA\bx AxA\xFF\x81\xFC\x07qr6<A!@  Atj" A@j(\0 Ak(\0 A\bk(\0"Aw A\rws A
1882
+ vsjj A<k(\0"Aw Aws Avsj6\0 Aj"A\xC0\0G\r\0\v \0(P"\r!
1883
+ \0(T"! \0(l"! \0(h"! \0(d"! \0(\`"!\v \0(\\"!\f \0(X"!@ !\x07 ! At"(\xF0o  \v"\bAw \bAws \bA\x07wsj   s \bqsjj  j(\0j"
1884
+ "Aw Aws A
1885
+ ws   \x07sq  \x07qsjj!
1886
+  \fj!\v ! ! \b! \x07!\f Aj" A\xC0\0G\r\0\v \0  j6l \0  j6h \0  j6d \0 \v j6\` \0 \x07 j6\\ \0  j6X \0  j6T \0
1887
+ \rj6P A\x80j$\0\v\xB4\x07\x7F \0A\xFF\xFFq! \0Av!A!\0 AF@  -\0\0j"\0A\xF1\xFFk \0 \0A\xF0\xFFK\x1B"\0 j"At"A\x80\x80<j  A\xF0\xFFK\x1B \0r\v \x7F@@@@ AO@@ A\xAF+K@@A\xDB! !\0@  \0-\0\0j" j  \0-\0j"j  \0-\0j"j  \0-\0j"j  \0-\0j"j  \0-\0j"j  \0-\0j"j  \0-\0\x07j"j  \0-\0\bj"j  \0-\0 j"j  \0-\0
1888
+ j"j  \0-\0\vj"j  \0-\0\fj"j  \0-\0\rj"j  \0-\0j"j  \0-\0j"j! \0Aj!\0 Ak"\r\0\v A\xF1\xFFp! A\xF1\xFFp! A\xB0+j! A\xB0+k"A\xAF+K\r\0\v E\r AI\r\v@  -\0\0j"\0 j \0 -\0j"\0j \0 -\0j"\0j \0 -\0j"\0j \0 -\0j"\0j \0 -\0j"\0j \0 -\0j"\0j \0 -\0\x07j"\0j \0 -\0\bj"\0j \0 -\0 j"\0j \0 -\0
1889
+ j"\0j \0 -\0\vj"\0j \0 -\0\fj"\0j \0 -\0\rj"\0j \0 -\0j"\0j \0 -\0j"j! Aj! Ak"AK\r\0\v E\r\v Aq"\x07\r !\0\f\v@ E\r\0@ Aq"\x07E@ !\0\f\v !\0@ "Aj! \0Ak!\0  -\0\0j" j! Aj" \x07G\r\0\v\v AI\r\0@  -\0\0j" -\0j" -\0j" -\0j"    jjjj! Aj! \0Ak"\0\r\0\v\v A\xF1\xFFpAt A\xF1\xFFk  A\xF0\xFFK\x1Br\vA\0! !\0@ "Aj! \0Ak!\0  -\0\0j" j! Aj" \x07G\r\0\v\v AI\r\0@  -\0\0j" -\0j" -\0j" -\0j"    jjjj! Aj! \0Ak"\0\r\0\v\v A\xF1\xFFp! A\xF1\xFFp!\v At rA\v\v\xFC\x7F@ \0E\r\0 \0("E\r\0@@ ("A\xC5\0k-\0\v A\x9AF\r\0 A*G\r\v (\b"@ \0((  \0($\0 \0(!\v (D"@ \0((  \0($\0 \0(!\v (@"@ \0((  \0($\0 \0(!\v (8"@ \0((  \0($\0 \0(!\v \0((  \0($\0 \0A\x006\v\v\xE2\r\x7FA~!@@@ \0E\r\0 AK\r\0 \0("E\r\0@@ \0(\fE\r\0 \0(\0E@ \0(\r\v (! AF\r A\x9AG\r\v \0A\xA0\x9B(\x006A~\v \0(E\r  \x006\0 ((!  6( A*F@ (0A\ftA\x80\xF0k!A\0!@ (\x88AJ\r\0 (\x84"AH\r\0A\xC0\0! AI\r\0A\x80A\xC0 AF\x1B!\v A\xF1\x006  ("Aj6  (\bj  r"A r  (l\x1B"A\bv:\0\0  ("Aj6  (\bj Ap rAs:\0\0 (l@ \0(0!  ("Aj6  (\bj Av:\0\0  ("Aj6  (\bj Av:\0\0 \0(0!  ("Aj6  (\bj A\bv:\0\0  ("Aj6  (\bj :\0\0\v \0A\0A\0A\0\x8560\v@ (@ \0("(" \0("  I\x1B"\x7F @ \0(\f ( \xFC
1890
+ \0\0\v \0 \0(\f j6\f \0(" ( j6 \0 \0( j6 \0 \0( k6 \0(" ( k6 \0("(E@  (\b6\v \0( \v\r\f\v \0(\r\0 AF\r\0  J\r\0\f\v \0(!@@@ ("A\x9AF@ E\r\f\v \r\v (t\r\0 E@A\0\v A\x9AF\r\v\x7F@@@ (\x88Ak\0\v\x7F A\x94j!@@@ (t\r\0 \x89 (t\r\0 \rA\0\f\v A\x006\` (8 (lj-\0\0! (\xA4- (\xA0-AtjA\0;\0  (\xA0-"Aj6\xA0-  (\x98-j :\0\0  Atj" /\0Aj;\0  (tAk6t  (lAj"6l (\xA0- (\x9C-AkG\r\0  (\\"A\0N\x7F (8 jA\0\v  kA\0\x92  (l6\\@ (\0"("(" ("\x07  \x07I\x1B"E\r\0 @ (\f ( \xFC
1891
+ \0\0\v  (\f j6\f (" ( j6  ( j6  ( k6 (" ( k6 ("(\r\0  (\b6\v (\0(\r\0\vA\0\f\v  (\\"A\0N\x7F (8 jA\0\v (l k AF\x92  (l6\\@ (\0"("(" ("  I\x1B"E\r\0 @ (\f ( \xFC
1892
+ \0\0\v  (\f j6\f (" ( j6  ( j6  ( k6 (" ( k6 ("(\r\0  (\b6\vAA\0 AF"\x1B (\0(E\r\0AA \x1B\v\f\v\x7F A\x88j!
1893
+ A\x98 j!\v A\x94j!\f@@@\x7F@@ (t"\bA\x82O@ A\x006\` (l!\x07\f\v \x89 (t!\b@ \r\0 \bA\x82O\r\0A\0\f\x07\v \bE\r A\x006\` (l!\x07 \bAI\r\v \x07E\r\0 (8 \x07j" Ak-\0\0" -\0\0G\r\0  -\0G\r\0  -\0G\r\0 A\x82j!\rA!@@@@@@@@   j"-\0G\r  -\0G\r  -\0G\r  -\0G\r  -\0G\r  -\0G\r -\0\x07 F@  A\bj"j"-\0\0G\r\b A\xFAI !\r\f\b\v\v A\x07j!\f\v Aj!\f\v Aj!\f\v Aj!\f\v Aj!\f\v Aj!\f\v Aj!\v   \rkA\x82j" \b  \bI\x1B"6\` (\xA0-" AI\r (\xA4- AtjA;\0  (\xA0-"Aj6\xA0-  (\x98-j Ak":\0\0 \v A\xFFq-\0\xA0\x8AAtj" /\0Aj;\0
1894
+ A\xA0\x86-\0\0Atj" /\0Aj;\0 (\`! A\x006\`  (t k6t   (lj"\x076l\f\v (\xA0-\v! (8 \x07j-\0\0! (\xA4- AtjA\0;\0  (\xA0-"Aj6\xA0-  (\x98-j :\0\0 \f Atj" /\0Aj;\0  (tAk6t  (lAj"\x076l\v (\xA0- (\x9C-AkG\r\0  (\\"A\0N\x7F (8 jA\0\v \x07 kA\0\x92  (l6\\@ (\0"("(" ("  I\x1B"E\r\0 @ (\f ( \xFC
1895
+ \0\0\v  (\f j6\f (" ( j6  ( j6  ( k6 (" ( k6 ("(\r\0  (\b6\v (\0(\r\0\vA\0\f\v  (\\"A\0N\x7F (8 jA\0\v (l k AF\x92  (l6\\@ (\0"("(" ("  I\x1B"E\r\0 @ (\f ( \xFC
1896
+ \0\0\v  (\f j6\f (" ( j6  ( j6  ( k6 (" ( k6 ("(\r\0  (\b6\vAA\0 AF"\x1B (\0(E\r\0AA \x1B\v\f\v   (\x84A\flA\xF8\xF1\0j(\0\0\v"A~qAF@ A\x9A6\v A}qE@A\0! \0(\r\f\v AG\r\0@@@ Ak\0\v  /\xB8-A (\xBC-"tr";\xB8- \x7F AN@  ("Aj6  (\bj :\0\0  ("Aj6  (\bj -\0\xB9-:\0\0 AA (\xBC-"kv";\xB8- A\rk\f\v Aj\v"6\xBC- \x7F A
1897
+ N@  ("Aj6  (\bj :\0\0  ("Aj6  (\bj -\0\xB9-:\0\0A\0! A\0;\xB8- (\xBC-A k\f\v A\x07j\v"6\xBC-@ \x7F AF@  ("Aj6  (\bj :\0\0  ("Aj6  (\bj -\0\xB9-:\0\0A\0! A\0;\xB8-A\0\f\v A\bH\r  ("Aj6  (\bj :\0\0  -\0\xB9-";\xB8- (\xBC-A\bk\v"6\xBC-\v@ (\xB4- kA\vjA\bJ\r\0  A tr";\xB8- \x7F AN@  ("Aj6  (\bj :\0\0  ("Aj6  (\bj -\0\xB9-:\0\0 AA (\xBC-"kv";\xB8- A\rk\f\v Aj\v"6\xBC- \x7F A
1898
+ N@  ("Aj6  (\bj :\0\0  ("Aj6  (\bj -\0\xB9-:\0\0A\0! A\0;\xB8- (\xBC-A k\f\v A\x07j\v"6\xBC- \x7F AF@  ("Aj6  (\bj :\0\0  ("Aj6  (\bj -\0\xB9-:\0\0 A\0;\xB8-A\0\f\v A\bH\r  ("Aj6  (\bj :\0\0  -\0\xB9-;\xB8- (\xBC-A\bk\v6\xBC-\v A\x076\xB4-\f\v A\0A\0A\0\x91 AG\r\0 (D (LAtjAkA\0;\0 (LAtAk"@ (DA\0 \xFC\v\0\v (t\r\0 A\x006\\ A\x006l\v \0\x88 \0(\r\0\f\v AG@A\0\vA! (A\0L\r\0 \0(0!  ("Aj6  (\bj Av:\0\0  ("Aj6  (\bj Av:\0\0 \0(0!  ("Aj6  (\bj A\bv:\0\0  ("Aj6  (\bj :\0\0 \0\x88 ("\0A\0J@ A\0 \0k6\v (E!\v \v \0A\xAC\x9B(\x006A{\v A\x7F6(A\0\v\x9B\x7F@ \0("(" \0("  I\x1B"E\r\0 @ \0(\f ( \xFC
1899
+ \0\0\v \0 \0(\f j6\f \0(" ( j6 \0 \0( j6 \0 \0( k6 \0(" ( k6 \0("\0(\r\0 \0 \0(\b6\v\v\xD6\x07\f\x7F \0(,"Aq!\b A\x86k! \0(t! AkAI!
1900
+ @@ \0(<  \0(l"jk! \0(,j M@ @ \0(8"  j \xFC
1901
+ \0\0\v \0 \0(p k6p \0 \0(l k6l \0 \0(\\ k6\\ \0(L"Ak \0(D Atj!A\0! Aq"\x07@@ Ak" /\0"\v k"\fA\0 \v \fO\x1B;\0 Ak! Aj" \x07G\r\0\v\vAO@@ Ak" /\0" k"A\0  O\x1B;\0 Ak" /\0" k"A\0  O\x1B;\0 Ak" /\0" k"A\0  O\x1B;\0 A\bk" /\0" k"A\0  O\x1B;\0 Ak"\r\0\v\v \0(@ Atj!A\0! ! \b@@ Ak" /\0" k"\x07A\0  \x07O\x1B;\0 Ak! Aj" \bG\r\0\v\v
1902
+ E@@ Ak" /\0" k"A\0  O\x1B;\0 Ak" /\0" k"A\0  O\x1B;\0 Ak" /\0" k"A\0  O\x1B;\0 A\bk" /\0" k"A\0  O\x1B;\0 Ak"\r\0\v\v  j!\v \0(\0"("E\r    I\x1B! \0(t! \0 \x7F \0(l! \0(8!\x07   k6 ((AF@  (0 (\0 \x8560\v @  \x07j j (\0 \xFC
1903
+ \0\0\v  (\0 j6\0  (\b j6\b \0(t \v j"6t@ AO@ \0 \0(8 \0(lj"-\0\0"6H \0 \0(T -\0  \0(Xtsq6H A\x85K\r\v \0(\0(\r\v\v \0(<" \0(\xC0-"M\r\0 \0\x7F \0(l j" K@A\x82  k" A\x82O\x1B"@ \0(8 jA\0 \xFC\v\0\v  j\f\v A\x82j" M\r  k"  k"  I\x1B"@ \0(8 jA\0 \xFC\v\0\v \0(\xC0- j\v6\xC0-\v\v\xCE\x7FA\xFF\xFF \0(\fAk" A\xFF\xFFO\x1B!@@@ \0(t"AO@ \0(\\!\f\v \0\x89 \0(t" rE@A\0\v \0(\\! E\r\v \0A\x006t \0 \0(l j"6l A\0  j" K\x1B\x7F  \0 6l \0  k6tA\0! \0 A\0N\x7F \0(8 jA\0\v A\0\x92 \0 \0(l6\\@ \0(\0"("(" ("  I\x1B"E\r\0 @ (\f ( \xFC
1904
+ \0\0\v  (\f j6\f (" ( j6  ( j6  ( k6 (" ( k6 ("(\r\0  (\b6\v \0(\0(E@A\0\v \0(\\! \0(l\v k" \0(,A\x86kI\r\0A\0! \0 A\0N\x7F \0(8 jA\0\v A\0\x92 \0 \0(l6\\@ \0(\0"("(" ("  I\x1B"E\r\0 @ (\f ( \xFC
1905
+ \0\0\v  (\f j6\f (" ( j6  ( j6  ( k6 (" ( k6 ("(\r\0  (\b6\v \0(\0(\r\0\vA\0\vA\0! \0 A\0N\x7F \0(8 jA\0\v \0(l k AF\x92 \0 \0(l6\\@ \0(\0"("(" ("  I\x1B"E\r\0 @ (\f ( \xFC
1906
+ \0\0\v  (\f j6\f (" ( j6  ( j6  ( k6 (" ( k6 ("(\r\0  (\b6\v \0(\0(E@AA\0 AF\x1B\vAA AF\x1B\v\x9A
1907
+ \b\x7F \0A\x88j! \0A\x98 j!\x07 \0A\x94j!\b@@@@ \0(tA\x85M@ \0\x89 \0(t!@ \r\0 A\x86O\r\0A\0\v E\r AI\r\v \0 \0(T \0(l" \0(8j-\0 \0(H \0(Xtsq"6H \0(@  \0(4qAtj \0(D Atj/\0";\0 \0(D \0(HAtj \0(l;\0 E\r\0 \0(,A\x86k \0(l kI\r\0 \0 \0 \x8C"6\`\f\v \0(\`!\v@@ AO@ \0(\xA4- \0(\xA0-Atj \0(l \0(pk";\0 \0 \0(\xA0-"Aj6\xA0-  \0(\x98-j Ak":\0\0 \x07 A\xFFq-\0\xA0\x8AAtj" /\0Aj;\0  AkA\xFF\xFFq"A\xA0\x86j A\x07vA\xA0\x88j A\x80I\x1B-\0\0Atj" /\0Aj;\0 \0 \0(t \0(\`"k"6t \0(\x9C-Ak! \0(\xA0-!  \0(\x80K\r AI\r \0 Ak6\`@ \0 \0(l"Aj"6l \0 \0(T  \0(8j-\0 \0(H \0(Xtsq"6H \0(@ \0(4 qAtj \0(D Atj/\0;\0 \0(D \0(HAtj \0(l;\0 \0 \0(\`Ak"6\` \r\0\v \0 \0(lAj"6l  G\r\f\v \0(8 \0(lj-\0\0! \0(\xA4- \0(\xA0-AtjA\0;\0 \0 \0(\xA0-"Aj6\xA0-  \0(\x98-j :\0\0 \b Atj" /\0Aj;\0 \0 \0(tAk6t \0 \0(lAj"6l \0(\xA0- \0(\x9C-AkG\r\f\v \0A\x006\` \0 \0(l j"6l \0 \0(8 j"-\0\0" 6H \0 \0(T -\0 \0(Xtsq6H  G\r\vA\0! \0 \0(\\"A\0N\x7F \0(8 jA\0\v  kA\0\x92 \0 \0(l6\\@ \0(\0"("(" ("  I\x1B"E\r\0 @ (\f ( \xFC
1908
+ \0\0\v  (\f j6\f (" ( j6  ( j6  ( k6 (" ( k6 ("(\r\0  (\b6\v \0(\0(\r\0\vA\0\vA\0! \0 \0(\\"A\0N\x7F \0(8 jA\0\v \0(l k AF\x92 \0 \0(l6\\@ \0(\0"("(" ("  I\x1B"E\r\0 @ (\f ( \xFC
1909
+ \0\0\v  (\f j6\f (" ( j6  ( j6  ( k6 (" ( k6 ("(\r\0  (\b6\v \0(\0(E@AA\0 AF\x1B\vAA AF\x1B\v\xA4\x7F \0(|" Av \0(x" \0(\x8CI\x1B! \0(l" \0(,kA\x86j"A\0  M\x1B!\f \0(\x90" \0(t"\b  \bI\x1B!\r \0(8" j"\x07A\x82j!  \x07j"-\0\0!
1910
+ Ak-\0\0!\v \0(4! \0(@!@@@  j" j"-\0\0
1911
+ G\r\0 Ak-\0\0 \vG\r\0 -\0\0 \x07-\0\0G\r\0 -\0 \x07-\0G\r\0A! Aj!@@@@@@@@  \x07j"-\0 -\0F@ -\0 -\0G\r -\0 -\0G\r -\0 -\0G\r -\0 -\0G\r -\0 -\0G\r -\0\x07 -\0\x07G\r\x07 \x07 A\bj"j"-\0\0 -\0\bG\r\b A\bj! A\xFAI !\r\f\b\v\v Aj!\f\v Aj!\f\v Aj!\f\v Aj!\f\v Aj!\f\v Aj!\f\v A\x07j!\v  k"A\x82j" L\r\0 \0 6p  \rN@ !\f\v  \x07j-\0\0!
1912
+  \x07j-\0\x81!\v !\v \f   qAtj/\0"O\r\0 Ak" \r\v\v  \b  \bI\x1B\v\xE7\r \x7F \0A\x94j! \0A\x88j!\b \0A\x98 j! @@@@ \0(tA\x85K\r\0 \0\x89 \0(t!@ \r\0 A\x86O\r\0A\0\v E\r AK\r\0 \0 \0(\`"6x \0 \0(p6dA! \0A6\`\f\vA! \0 \0(T \0(l" \0(8j-\0 \0(H \0(Xtsq"6H \0(@  \0(4qAtj \0(D Atj/\0";\0 \0(D \0(HAtj \0(l;\0 \0 \0(\`"6x \0 \0(p6d \0A6\` E\r\0@  \0(\x80O\r\0 \0(,A\x86k \0(l kI\r\0 \0 \0 \x8C"6\` AK\r\0 \0(\x88AG@ AG\rA! \0(l \0(pkA\x81 I\r\vA! \0A6\`\v \0(x!\v@ AI\r\0  I\r\0 \0(t \0(\xA4- \0(\xA0-Atj \0(l" \0(dA\x7Fsj";\0 \0 \0(\xA0-"\x07Aj6\xA0- \x07 \0(\x98-j Ak":\0\0 A\xFFq-\0\xA0\x8AAtj" /\0Aj;\0 \b AkA\xFF\xFFq"A\xA0\x86j A\x07vA\xA0\x88j A\x80I\x1B-\0\0Atj" /\0Aj;\0 \0 \0(x"Ak"6x \0 \0(t kAj6t jAk! \0(\x9C-! \0(\xA0-@ \0 \0(l"
1913
+ Aj"6l \0  M\x7F \0 \0(T \0(8
1914
+ j-\0 \0(H \0(Xtsq"6H \0(@ \0(4 qAtj \0(D Atj/\0;\0 \0(D \0(HAtj \0(l;\0 \0(x \vAk"6x \r\0\v \0A6\` \0A\x006h \0 \0(lAj"6l AkG\rA\0! \0 \0(\\"A\0N\x7F \0(8 jA\0\v  kA\0\x92 \0 \0(l6\\@ \0(\0"("(" ("  I\x1B"E\r\0 @ (\f ( \xFC
1915
+ \0\0\v  (\f j6\f (" ( j6  ( j6  ( k6 (" ( k6 ("(\r\0  (\b6\v \0(\0(\rA\0\v \0(h@ \0(8 \0(ljAk-\0\0! \0(\xA4- \0(\xA0-AtjA\0;\0 \0 \0(\xA0-"Aj6\xA0-  \0(\x98-j :\0\0  Atj" /\0Aj;\0@ \0(\xA0- \0(\x9C-AkG\r\0A\0! \0 \0(\\"A\0N\x7F \0(8 jA\0\v \0(l kA\0\x92 \0 \0(l6\\ \0(\0"("(" ("  I\x1B"E\r\0 @ (\f ( \xFC
1916
+ \0\0\v  (\f j6\f (" ( j6  ( j6  ( k6 (" ( k6 ("(\r\0  (\b6\v \0 \0(lAj6l \0 \0(tAk6t \0(\0(\rA\0 \0A6h \0 \0(lAj6l \0 \0(tAk6t\f\v\0\v\v \0(h@ \0(8 \0(ljAk-\0\0! \0(\xA4- \0(\xA0-AtjA\0;\0 \0 \0(\xA0-"Aj6\xA0-  \0(\x98-j :\0\0  Atj" /\0Aj;\0 \0A\x006h\vA\0! \0 \0(\\"A\0N\x7F \0(8 jA\0\v \0(l k AF\x92 \0 \0(l6\\@ \0(\0"("(" ("  I\x1B"E\r\0 @ (\f ( \xFC
1917
+ \0\0\v  (\f j6\f (" ( j6  ( j6  ( k6 (" ( k6 ("(\r\0  (\b6\v \0(\0(E@AA\0 AF\x1B\vAA AF\x1B\v\xEFE)\x7FA~!@ \0E\r\0 \0("E\r\0 \0(\f"\rE\r\0 \0(\0"E@ \0(\r\v (\0"A\vF@A\f! A\f6\0 \0(\f!\r \0(\0!\v A\xD8\0j!! A\xEE\0j!" A\xF0j! A\xD4\0j!\x1B A\xEC\0j! A\xB0
1918
+ j! A\xF0\0j! (<! (8!A}! \0("!\x07 \0("\v!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\x7F@@@@@@@@@@@@@@@@@@@@@@@ 66666666\b
1919
+ \v\f"\0'6126\v (H!
1920
+ \f%\v (H!
1921
+ \f\v (h\f\v AO\r
1922
+ \x07E\r, A\bj! Aj! \x07Ak!\b -\0\0 t j! AM\r ! \b!\x07 !\f
1923
+ \v A O\r \x07E\r+ Aj! \x07Ak! -\0\0 t j! AM\r ! !\x07\f\v (\bE\r@ AO@ !\f\v \x07E\r+ A\bj! Aj!\b \x07Ak! -\0\0 t j! A\x07K@ \b! !\x07 !\f\v E@ \b!A\0!\x07 ! ! !\f-\v Ar! \x07Ak!\x07 -\0 t j! Aj!\v A\btA\x80\xFEq A\bvjAp@ \0A\x9E6\f/\v AqA\bG@ \0A\xC06\f/\v Av"Aq"\bA\bj! ($" E@  6$\f.\v  M\r- Ak! \0A\xD26 A6\0 (\0!\f/\v A\bj!\b E@ !A\0!\x07 \b! !\f+\v Aj! \x07Ak! -\0 \bt j! AK@ ! !\x07\f\v Aj!\b E@ !A\0!\x07 \b! !\f+\v Aj! \x07Ak! -\0 \bt j! A\x07K@ ! !\x07\f\v Aj! E@ !\f*\v \x07Ak!\x07 -\0 t j! Aj!\v  AxA\xFF\x81\xFC\x07q A\xFF\x81\xFC\x07qA\bxr"6 \0 60 A
1924
+ 6\0A\0!A\0!\v (\fE@ \0 \v6 \0 \r6\f \0 \x076 \0 6\0  6<  68A\v A\0A\0A\0\x85"6 \0 60 A\v6\0\v\x7F@ (E@  AK\r \x07\r\f)\v A6\0  A\x07qv! Axq! (\0!\f-\v \x07Ak!\x07 -\0\0 t j! Aj! A\br\v  Aq6A\r!@@@@@ AvAqAk\0\v A\xA0\xF3\x006L B\x89\x80\x80\x80\xD0\x007T A\xA0\x836P A6\0\f\vA!\f\v \0A\xF46A!\v  6\0\vAk! Av! (\0!\f+\v  A\x07qv!\x7F Axq" AK\r\0 \x07E@A\0!\x07 ! !\f(\v A\bj!\b Aj! \x07Ak! -\0\0 t j! AK@ ! !\x07 \b\f\v E@ !A\0!\x07 \b! !\f(\v Aj! Aj! \x07Ak!
1925
+ -\0 \bt j! AK@ !
1926
+ !\x07 \f\v
1927
+ E@ !A\0!\x07 ! !\f(\v Aj! Aj! \x07Ak!\b -\0 t j! A\x07K@ ! \b!\x07 \f\v \bE@ !A\0!\x07 ! !\f(\v \x07Ak!\x07 -\0 t j! Aj!A \v! A\xFF\xFFq" A\x7FsAvG@ \0A\xD1\r6 A6\0 (\0!\f+\v A6\0  6@A\0!A\0!\v A6\0\v (@"@  \x07  \x07I\x1B" \v  \vI\x1B"E@ !\f&\v @ \r  \xFC
1928
+ \0\0\v  (@ k6@  \rj!\r \v k!\v  j! \x07 k!\x07 (\0!\f)\v A\v6\0 (\0!\f(\v \bE@ !A\0!\x07 ! !\f$\v Ar! \x07Ak!\x07 -\0 t j! Aj!\v  Aq"A\x81j6\`  AvAq"Aj6d  A
1929
+ vAqAj" 6\\ Ak! Av! AI AMqE@ \0A\xAD\r6 A6\0 (\0!\f'\v A6\0A\0! A\x006h\f\v (h" (\\" O\r\v !@ AM@ \x07E\r! \x07Ak!\x07 -\0\0 t j! A\br! Aj!\v  Aj"6h  At/\xF0rAtj A\x07q;\0 Ak! Av! "K\r\0\v\f\v \vE\r \r (@:\0\0 A6\0 \vAk!\v \rAj!\r (\0!\f#\v (\b@@ AK@ !\f\v \x07E\r A\bj! Aj! \x07Ak!\b -\0\0 t j! AK@ \b!\x07 !\f\v \bE@ !A\0!\x07 ! !\f!\v Aj!\b Aj! \x07Ak! -\0 t j! AK@ !\x07 \b!\f\v E@ !A\0!\x07 \b! !\f!\v Aj! Aj! \x07Ak! -\0 \bt j! A\x07K@ !\x07 !\f\v E@ !A\0!\x07 ! !\f!\v A r! Aj! \x07Ak!\x07 -\0 t j!\v \0  \vk" \0(j6  ( j6 \v G@  ( \r k \x85"6 \0 60\v ( AxA\xFF\x81\xFC\x07q A\xFF\x81\xFC\x07qA\bxrG\rA\0!A\0! \v! !\v A6\0\vA!\f\v A\f6\0\f\v \0A\xB56 A6\0 ! \v! (\0!\f\v AM@A\0!\b "Aq"AG@@  At/\xF0rAtjA\0;\0 Aj!  \bAj"\bsAG\r\0\v\v AM@@  At"A\xF0\xF2\0j/\0AtjA\0;\0  A\xF2\xF2\0j/\0AtjA\0;\0  A\xF4\xF2\0j/\0AtjA\0;\0  A\xF6\xF2\0j/\0AtjA\0;\0 Aj"AG\r\0\v\v  6h\v A\x076T  6L  6lA\0 A  \x1B \x8F"@ \0A\xA3\f6 A6\0 (\0!\f\v A6\0 A\x006hA\0!A\0\v" (\`" (dj"I@A\x7F (TtA\x7Fs! (L!\f@ \f  q"Atj-\0" K@ ! \x07!\b ! \x07E\r@@ -\0\0! Aj! \bAk!\b A\bj"
1930
+ \f  t j" q"Atj-\0" O\r\0
1931
+ ! \b\r\f\v\v \b!\x07
1932
+ ! !\v@ \f Atj/"\bAM@  I@@ \x07E\r \x07Ak!\x07 -\0\0 t j! Aj! A\bj" I\r\0\v\v  Aj"6h  Atj \b;\0  k!  v! !\f\v\x7F\x7F@@@ \bAk\0\v Aj" K@@ \x07E\r! \x07Ak!\x07 -\0\0 t j! Aj! A\bj" I\r\0\v\v  k!  v! E@ \0A\xE8\f6 A6\0 ! (\0!\f%\v Ak! Av! AqAj! " Atj/\0\f\v Aj" K@@ \x07E\r \x07Ak!\x07 -\0\0 t j! Aj! A\bj" I\r\0\v\v  v"Av! A\x07qAj!  kAk\f\v A\x07j" K@@ \x07E\r \x07Ak!\x07 -\0\0 t j! Aj! A\bj" I\r\0\v\v  v"A\x07v! A\xFF\0qA\vj!  kA\x07k\v!A\0\v!  j K\rA\0! "\bAq"
1933
+ @@  Atj ;\0 Aj! \bAk!\b Aj"
1934
+ G\r\0\v\v AO@@  Atj" ;\0 ; ; ; Aj! \bAk"\b\r\0\v\v  6h\v  I\r\0\v\v /\xF0E@ \0A\xF96 A6\0 (\0!\f\v A 6T  6L  6lA    \x1B \x8F"@ \0A\x87\f6 A6\0 (\0!\f\v A6X  (l6PA  (\`Atj (d  ! \x8F"@ \0A\xBC\f6 A6\0 (\0!\f\v A6\0A\0!\v A6\0\v@ \x07AI\r\0 \vA\x82I\r\0 \0 \v6 \0 \r6\f \0 \x076 \0 6\0  6<  68 \0(\f"Ak" \0(" kj!#  jAk" \0("(0"
1935
+ jk!$
1936
+ A\x07q!
1937
+ (("%j!& (4Ak!  k!A\x7F (XtA\x7Fs!'A\x7F (TtA\x7Fs!(  jA\x81k! \0(\0Ak" \0(jAk! (P! (L! (<! (8!\f (,!)@ AM\x7F -\0 t \fj -\0 A\bjtj!\f Aj! Ar \v \f (qAtj"-\0"k! \f v!\f /!\v@@@ -\0\0"E\r\0@@@ \x7F \0\x7F@@ A\xFFq! Aq@ \vA\xFF\xFFq!\v\x7F Aq"E@ !\x07 \f\f\v\x7F  M@ ! \f\v A\bj! -\0 t \fj!\f Aj\v!\x07  k! \fA\x7F tA\x7Fsq \vj!\v \f v\v! AM@ \x07-\0 t j \x07-\0 A\bjtj! Ar! \x07Aj!\x07\v    'qAtj"-\0"k!  v!\f /! -\0\0"Aq\r@ A\xC0\0qE@   \fA\x7F tA\x7FsqAtj A\xFF\xFFqAtj"-\0"k! \f v!\f /! -\0\0"AqE\r\f\v\v \x07!A\x99\f\v A\xC0\0qE@  \fA\x7F tA\x7FsqAtj \vA\xFF\xFFqAtj"-\0"k! \f v!\f /!\v -\0\0"E\r\b\f\v\vA\v A q\rA\xFD\f\v A\xFF\xFFq!\r\x7F Aq" M@ ! \x07\f\v \x07-\0 t \fj!\f \x07Aj  A\bj"M\r\0 \x07-\0 t \fj!\f Aj! \x07Aj\v! \fA\x7F tA\x7Fsq!\x07  k! \f v!\f \x07 \rj"  #k"M\r  k"\b )M\r (\xC07E\rA\xEE\v6A\v6\0\f\v@@
1938
+ E@ % \bkj! \b \vO\r \x07 j \rj kA\0!\x07 \b"A\x07q"@@  -\0:\0 Ak! Aj! Aj! \x07Aj"\x07 G\r\0\v\vA\x07I\r@  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0\x07:\0\x07  -\0\b:\0\b A\bj! A\bj! A\bk"\r\0\v\f\v \b
1939
+ K@ & \bkj! \v \b
1940
+ k"\bM\r \x07 $j \rj kA\0!\x07 \b"A\x07q"@@  -\0:\0 Ak! Aj! Aj! \x07Aj"\x07 G\r\0\v\vA\x07O@@  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0\x07:\0\x07  -\0\b:\0\b A\bj! A\bj! A\bk"\r\0\v\v
1941
+ \v \bk"\vO@ !\f\vA\0!\x07
1942
+ ! ! @@  -\0:\0 Ak! Aj! Aj! \x07Aj"\x07 G\r\0\v\v
1943
+ A\bO@@  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0\x07:\0\x07  -\0\b:\0\b A\bj! A\bj! A\bk"\r\0\v\v  k! \v
1944
+ k!\v\f\v
1945
+ \bkj! \b \vO\r \x07 j \rj kA\0!\x07 \b"A\x07q"@@  -\0:\0 Ak! Aj! Aj! \x07Aj"\x07 G\r\0\v\vA\x07I\r\0@  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0\x07:\0\x07  -\0\b:\0\b A\bj! A\bj! A\bk"\r\0\v\v  k! \v \bk!\v\v@ \vAI\r\0A\0! \vAk"\x07AnAjAq"\b@@  -\0:\0  -\0:\0  -\0:\0 \vAk!\v Aj! Aj! Aj" \bG\r\0\v\v \x07A I\r\0@  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0\x07:\0\x07  -\0\b:\0\b  -\0 :\0  -\0
1946
+ :\0
1947
+  -\0\v:\0\v  -\0\f:\0\f A\fj! A\fj! \vA\fk"\vAK\r\0\v\v \vE\r  -\0:\0 \vAF\r Aj!\f\v  k!\x07@ " \x07"-\0:\0  -\0:\0  -\0:\0 Aj! Aj!\x07 \vAk"\vAK\r\0\v \vE\r  -\0:\0 \vAG@ Aj!\f\v  -\0:\0 Aj!\f\v  -\0:\0 Aj!\f\v  \v:\0 Aj!\v  O\r\0  I\r\v\v \0 Aj6\f \0  kA\x81j6 \0  Avk"Aj6\0 \0  kAj6  A\x07q"6<  \fA\x7F tA\x7Fsq68 (<! (8! \0(!\x07 \0(\0! \0(!\v \0(\f!\r (\0A\vG\r A\x7F6\xC47 (\0!\f\v A\x006\xC47 (L" A\x7F (TtA\x7Fs"\fqAtj"
1948
+ -\0"\b M@ ! \x07! ! \f\v ! !\b \x07"\r\f\v \0A\xE8\f6 A6\0 (\0!\f\v@ -\0\0!
1949
+ Aj! Ak! \bA\bj" 
1950
+ \bt j" \fqAtj"
1951
+ -\0"\bO\r !\b \r\0\v\f\v \b!
1952
+ /!\f
1953
+ -\0\0"
1954
+ AkA\xFFqAK@A\0! ! !\x07\f\v   \fAtj" A\x7F 
1955
+ jtA\x7Fs"q vAtj"-\0"\bjO@ ! !\x07\f\v ! !
1956
+ "\x07\r\f\v  \x07j!  \x07Atj!\f\v@@ -\0\0!\b Aj! \x07Ak!\x07
1957
+ A\bj"\f   \b
1958
+ t j" q vAtj"-\0"\bjO\r\0 \f!
1959
+ \x07\r\f\v\v \f! \v k!  v! -\0\0!
1960
+ /!\f\v  \f6@   \bj6\xC47 \bk!  \bv!
1961
+ A\xFFq"E@ A6\0 (\0!\f\v A q@ A\v6\0 A\x7F6\xC47 (\0!\f\v A\xC0\0q@ \0A\xFD6 A6\0 (\0!\f\v A6\0  Aq"
1962
+ 6H\v@
1963
+ E@ (@!\f\v 
1964
+ I@ !\b ! \x07"E\r@@ \bAj! Ak! \b-\0\0 t j! A\bj"
1965
+ O\r\0 !\b \r\f\v\v !\x07 ! !\v  (\xC47
1966
+ j6\xC47  (@ A\x7F
1967
+ tA\x7Fsqj"6@ 
1968
+ k! 
1969
+ v!\v A6\0  6\xC87\v (P"\f A\x7F (XtA\x7Fs"qAtj"
1970
+ -\0"\b M@ ! \x07! ! \f\v ! !\b \x07"\r\f\b\v  j! Atj!\f\f\v@ -\0\0!
1971
+ Aj! Ak! \bA\bj" \f
1972
+ \bt j" qAtj"
1973
+ -\0"\bO\r !\b \r\0\v\f\v
1974
+ /! \x7F
1975
+ -\0\0"\x07AO@ \b!
1976
+ (\xC47\f\v \b \f Atj" A\x7F \x07 \bjtA\x7Fs"q \bvAtj"-\0"
1977
+ jI@ ! ! "\x07E\r @@ -\0\0!
1978
+ Aj! \x07Ak!\x07 A\bj"\f \b 
1979
+ t j" q \bvAtj"-\0"
1980
+ jO\r\0 \f! \x07\r\f\v\v\v \x07! \f! !\v \bk!  \bv! -\0\0!\x07 /! (\xC47 \bj\v
1981
+ j6\xC47
1982
+ k! 
1983
+ v! \x07A\xC0\0q@ \0A\x996 A6\0 ! !\x07 (\0!\f\v A6\0  \x07Aq"
1984
+ 6H  A\xFF\xFFq6D ! !\x07\v
1985
+ @ 
1986
+ I@ !\b ! \x07"E\r\x07@@ \bAj! Ak! \b-\0\0 t j! A\bj"
1987
+ O\r\0 !\b \r\f \v\v !\x07 ! !\v  (\xC47
1988
+ j6\xC47  (D A\x7F
1989
+ tA\x7Fsqj6D 
1990
+ v! 
1991
+ k!\v A6\0\v \v\r\vA\0!\v !\f\b\v\x7F (D"  \vk"K@@  k" (,M\r\0 (\xC07E\r\0 \0A\xEE6 A6\0 (\0!\f\v\x7F (0" I@ (4 ((  k"kj\f\v (4  kj\v!  (@"\b  \bI\x1B\f\v \r k! (@"\b\v!  \b  \v  \vI\x1B" k6@A\0!\b "A\x07q"
1992
+ @@ \r -\0\0:\0\0 Ak! \rAj!\r Aj! \bAj"\b
1993
+ G\r\0\v\v AkA\x07O@@ \r -\0\0:\0\0 \r -\0:\0 \r -\0:\0 \r -\0:\0 \r -\0:\0 \r -\0:\0 \r -\0:\0 \r -\0\x07:\0\x07 \rA\bj!\r A\bj! A\bk"\r\0\v\v \v k!\v (@\r\0 A6\0 (\0!\f\v\v (\0!\f
1994
+ \v  \x07j!  \x07Atj!\f\v  \x07j!  \x07Atj!\f\v  j! Atj!\f\v  \x07j!  \x07Atj!\f\v  \x07j!  \x07Atj!\vA\0!\x07 !\v \0 \v6 \0 \r6\f \0 \x076 \0 6\0  6<  68@ \0 \x7F ((E@ \0(" (\0AK\r   F\r\v\x7F@@ \0("(4"E@A!  \0((A ($tA \0( \0"64 E\r\v (("E@ B\x007, A ($t"6(\v   \0(k"\x07M@ @  \0(\f k \xFC
1995
+ \0\0\v A\x0060\f\v  (0"k" \x07  \x07I\x1B"@  j \0(\f \x07k \xFC
1996
+ \0\0\v  \x07I@ \x07 k"@ (4 \0(\f k \xFC
1997
+ \0\0\v  60\f\vA\0!  (0 j"\x07A\0 \x07 (("G\x1B60 (,"\x07 O\r\0   \x07j6,\v \f\v  ((6,A\0\v\r \0(\v"k" \0(j6 \0 \0(\b  \0("\x07kj6\b  ( j6@ (\bE\r\0  F\r\0  ( \0(\f k \x85"6 \0 60\v \0 (<A\xC0\0A\0 (\x1BjA\x80A\0 (\0"\0A\vF\x1BjA\x80A\x80A\0 \0AF\x1B \0AF\x1Bj6, A{ \x1B   F\x1B  \x07 F\x1B\v A6\0\vA|!\f\v A\x80 \bt6A\0! A\0A\0A\0\x85"6 \0 60 A A\v A\x80\xC0\0q\x1B6\0A\0! (\0!\f\v A6\0 ! (\0!\f\0\v\0\v \v\xE3\x7F#\0A@j"B\x007 B\x007( B\x0070 B\x0078@@\x7F@\x7F @ Aq!\r@ AO@ A|q!@ A j" 
1998
+ Atj"\b/\0Atj"\v \v/\0Aj;\0 \b/At j"\v \v/\0Aj;\0 \b/At j"\v \v/\0Aj;\0 \b/At j"\b \b/\0Aj;\0
1999
+ Aj!
2000
+ \x07Aj"\x07 G\r\0\v \rE\r\v@ A j 
2001
+ Atj/\0Atj"\b \b/\0Aj;\0
2002
+ Aj!
2003
+ Aj" \rG\r\0\v\v (\0"
2004
+ />"E\rA!\b\f\v (\0\v!
2005
+ A\0! /<@A!\b\f\v /:@A\r!\b\f\v /8@A\f!\b\f\v /6@A\v!\b\f\v /4@A
2006
+ !\b\f\v /2@A !\b\f\v /0@A\b!\b\f\v /.@A\x07!\b\f\v /,@A!\b\f\v /*@A!\b\f\v /(@A!\b\f\v /&@A!\b\f\v /$@A!\b\f\v /"@A!\rA!\bA!
2007
+ A\0\f\v  (\0"\0Aj6\0 \0A\xC06\0  (\0"\0Aj6\0 \0A\xC06\0A!\r\f\v
2008
+ \b \b
2009
+ K\x1B! A!
2010
+ @@ A j
2011
+ Atj/\0\r
2012
+ Aj"
2013
+ \bG\r\0\v \b!
2014
+ \v
2015
+
2016
+ K\x1B!\rA\v!\x07A\x7F! /""AK\rA AtkA\xFE\xFFq /$"\vk"A\0H\r At /&"k"A\0H\r At /("k"\fA\0H\r \fAt /*"\fk"A\0H\r At /,"k"A\0H\r At /."k"A\0H\r At /0"k"A\0H\r At /2"k"A\0H\r At /4"k"A\0H\r At /6"k"A\0H\r At /8"k"A\0H\r At /:"k"A\0H\r At /<"k"\x1BA\0H\r \x1BAt"\x1B I\r  \x1BGA\0 \0E \x07r\x1B\rA\0! A\0;  ;  \v j"\x07;  \x07 j"\x07;\b  \x07 j"\x07;
2017
+  \x07 \fj"\x07;\f  \x07 j"\x07;  \x07 j"\x07;  \x07 j"\x07;  \x07 j"\x07;  \x07 j"\x07;  \x07 j"\x07;  \x07 j"\x07;  \x07 j"\x07;  \x07 j;@ E\r\0 AG@ Aq A~q!A\0!\x07@  Atj/\0"\v@  \vAtj"\v \v/\0"\vAj;\0  \vAtj ;\0\v  Ar"\vAtj/\0"@  Atj" /\0"Aj;\0  Atj \v;\0\v Aj! \x07Aj"\x07 G\r\0\vE\r\v  Atj/\0"E\r\0  Atj" /\0"Aj;\0  Atj ;\0\vA!A\0! "!A\0!@@@ \0\0\vA! \rA K\rA\x80!A\xDE\x80!A\x9E\x80!A!\f\v \0AF!A\x7F!A\xE0\x85!A\xA0\x85! \0AG@\f\vA! \rA K\r\vA \rt"Ak! (\0!A\0! \r!\x07A\0!\fA\0!A\x7F!\v@A \x07t!@\x7FA\0  Atj/\0"\x07 H\r\0 \x07 L@A\0!\x07A\xE0\0\f\v  \x07At"\0j/\0!\x07 \0 j-\0\0\v!\0A\x7F
2018
+ \fk"t!   \fvAtj!\x1B ! @ \x1B j" Atj" \x07;  :\0  \0:\0\0 \r\0\vA
2019
+ Akt!\x07@ \x07"\0Av!\x07 \0 q\r\0\v A j
2020
+ Atj" /\0Ak" ;\0 \0Ak q \0j"\x07A\0 \0\x1B! Aj! A\xFF\xFFqE@ \b
2021
+ F@@ E\r\0@@ \fE@A\0!\f\f\v \x07 q \vF\r\0 (\0!A\0!\f \r"\b!\v  \x07 \fvAtj"\0A\0; \0 :\0 \0A\xC0\0:\0\0A \bAkt!
2022
+ @
2023
+ "\0Av!
2024
+ \0 \x07q\r\0\v \0E\r \0Ak \x07q \0j"\x07\r\0\v\v  (\0 Atj6\0\f\v   Atj/\0Atj/\0!
2025
+ \v
2026
+ \rM\r\0  q"\0 \vF\r\0\vA
2027
+ \f \r \f\x1B"\fk"\x07t! \b
2028
+ K@ \b \fk!\v
2029
+ ! @@  A j Atj/\0k"A\0L\r At! \x07Aj"\x07 \fj" \bI\r\0\v \v!\x07\vA \x07t!\vA!   j"A\xD3Kq\r  A\xCFKq\r \0At" (\0j \x07:\0\0 (\0 j \r:\0  (\0"j  Atj" kAv; \0!\v\f\0\v\0\v  \r6\0A\0! \v \v\xDA\x7F \0A\x94j!@  Atj"A\0; A\0;\0 Aj"A\x9EG\r\0\v \0A\0;\xC4 \0A\0;\xC0 \0A\0;\xBC \0A\0;\xB8 \0A\0;\xB4 \0A\0;\xB0 \0A\0;\xAC \0A\0;\xA8 \0A\0;\xA4 \0A\0;\xA0 \0A\0;\x9C \0A\0;\x98 \0A\0;\x94 \0A\0;\x90 \0A\0;\x8C \0A\0;\x88 \0A\0;\x84 \0A\0;\x80 \0A\0;\xFC \0A\0;\xFC \0A\0;\xF8 \0A\0;\xF4 \0A\0;\xF0 \0A\0;\xEC \0A\0;\xE8 \0A\0;\xE4 \0A\0;\xE0 \0A\0;\xDC \0A\0;\xD8 \0A\0;\xD4 \0A\0;\xD0 \0A\0;\xCC \0A\0;\xC8 \0A\0;\xC4 \0A\0;\xC0 \0A\0;\xBC \0A\0;\xB8 \0A\0;\xB4 \0A\0;\xB0 \0A\0;\xAC \0A\0;\xA8 \0A\0;\xA4 \0A\0;\xA0 \0A\0;\x9C \0A\0;\x98 \0A\0;\x94 \0A\0;\x90 \0A\0;\x8C \0A\0;\x88 \0B\x007\xAC- \0A;\x94 \0A\x006\xA8- \0A\x006\xA0-\v\xC5\x7F@\x7F \0(\xBC-"AN@ \0 \0/\xB8-  tr";\xB8- \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \0 A\xFF\xFFqA \0(\xBC-"kv";\xB8- A\rk\f\v \0 \0/\xB8-  tr";\xB8- Aj\v"A N@ \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0\f\v A\0L\r\0 \0 \0("Aj6  \0(\bj :\0\0\v \0A\x006\xBC- \0A\0;\xB8- \0A\b6\xB4- \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj A\bv:\0\0 \0 \0("Aj6  \0(\bj A\xFF\xFFs":\0\0 \0 \0("Aj6  \0(\bj A\bv:\0\0@ E\r\0 Aq\x7F -\0\0! \0 \0("Aj6  \0(\bj :\0\0 Aj! Ak \v! AF\r\0@ -\0\0! \0 \0("Aj6  \0(\bj :\0\0 -\0! \0 \0("Aj6  \0(\bj :\0\0 Aj! Ak"\r\0\v\v\v\x96\f\x7FA!\x7F \0(\x84A\0J@ \0(\0"\x07(,AF@@ \0/\x94\r\0 \0/\x98\r\0 \0/\x9C\r\0 \0/\xA0\r\0 \0/\xA4\r\0 \0/\xA8\r\0 \0/\xAC\r\0 \0/\xCC\r\0 \0/\xD0\r\0 \0/\xD4\r\0 \0/\xD8\r\0 \0/\xDC\r\0 \0/\xE0\r\0 \0/\xE4\r\0 \0/\xE8\r\0 \0/\xEC\r\0 \0/\xF0\r\0 \0/\xF4\r\0 \0/\xF8\r\0 \0/\x84\r\0 \0/\x88\r\0 \0/\x8C\r\0 \0/\x90\r\0@ \0/\xB8\r\0 \0/\xBC\r\0 \0/\xC8\r\0 \0A\x94j!\bA !@ \b Atj"/\0\r /\r /\b\r /\f\r Aj"A\x80G\r\0\v\f\vA!\v \x07 6,\v \0 \0A\x98j\x93 \0 \0A\xA4j\x93 \0/\x96! \0A\x94j" \0(\x9C"\vAtjA\xFF\xFF;A\0! \vA\0N@A\x07A\x8A \x1B!\fAA \x1B! \0A\xFCj!\rA\x7F!\bA\0!\x07@ !  \x07"Aj"\x07Atj/!@@ Aj"
2030
+ \fN\r\0  G\r\0
2031
+ !\f\v@
2032
+ J@ \r Atj" /\0
2033
+ j;\0\f\v @  \bG@ \r Atj" /\0Aj;\0\v \0 \0/\xBCAj;\xBC\f\v A L@ \0 \0/\xC0Aj;\xC0\f\v \0 \0/\xC4Aj;\xC4\vA\0!\x7F E@A! A\x8A\f\vAA  F"\b\x1B! AA\x07 \b\x1B\v!\f !\b\v \v G\r\0\v\v \0/\x8A! \0A\x88j" \0(\xA8"\vAtjA\xFF\xFF;A\0! \vA\0N@A\x07A\x8A \x1B!\fAA \x1B! \0A\xFCj!\rA\x7F!\bA\0!\x07@ !  \x07"Aj"\x07Atj/!@@ Aj"
2034
+ \fN\r\0  G\r\0
2035
+ !\f\v@
2036
+ J@ \r Atj" /\0
2037
+ j;\0\f\v @  \bG@ \r Atj" /\0Aj;\0\v \0 \0/\xBCAj;\xBC\f\v A L@ \0 \0/\xC0Aj;\xC0\f\v \0 \0/\xC4Aj;\xC4\vA\0!\x7F E@A! A\x8A\f\vAA  F"\b\x1B! AA\x07 \b\x1B\v!\f !\b\v \v G\r\0\v\v \0 \0A\xB0j\x93 \0 \0(\xA8-\x7FA \0/\xBA\r\0A \0/\x82\r\0A \0/\xB6\r\0A \0/\x86\r\0A \0/\xB2\r\0A\r \0/\x8A\r\0A\f \0/\xAE\r\0A\v \0/\x8E\r\0A
2038
+ \0/\xAA\r\0A \0/\x92\r\0A\b \0/\xA6\r\0A\x07 \0/\x96\r\0A \0/\xA2\r\0A \0/\x9A\r\0A \0/\x9E\r\0AA \0/\xFE\x1B\v"Alj"Aj6\xA8- \0(\xAC-A
2039
+ jAv" A\x1BjAv"\x07  \x07I\x1B!  \x07M! Aj\f\v Aj!A\v!\x07@@ E\r\0 Aj K\r\0 \0   \x91\f\v \0(\xBC-! A\x7Fs \0(\x88AGqE@ Aj! \0\x7F AN@ \0 \0/\xB8-  tr";\xB8- \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \0 A\xFF\xFFqA \0(\xBC-"kv;\xB8- A\rk\f\v \0 \0/\xB8-  tr;\xB8- Aj\v6\xBC- \0A\xA0\x8CA\xA0\x95\x94\f\v Aj! \0\x7F AN@ \0 \0/\xB8-  tr";\xB8- \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 A\xFF\xFFqA \0(\xBC-"kv! A\rk\f\v \0/\xB8-  tr! Aj\v"6\xBC- \0(\x9C"\bA\x80\xFEj! \0(\xA8!@ A\fN@ \0   tr";\xB8- \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 A\xFF\xFFqA \0(\xBC-"kv! A\vk!\f\v Aj!   tr!\v \0 6\xBC- \0\x7F A\fN@ \0   tr";\xB8- \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 A\xFF\xFFqA \0(\xBC-"kv! A\vk\f\v   tr! Aj\v"6\xBC- \x07A\xFC\xFFj! \0\x7F A\rN@ \0   tr";\xB8- \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 A\xFF\xFFqA \0(\xBC-"kv! A\fk\f\v   tr! Aj\v"6\xBC-A\0!@ \0  \0 -\0\xF0\x98Atj/\xFE" tr";\xB8- \0\x7F AN@ \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \0 A \0(\xBC-"kv";\xB8- A\rk\f\v Aj\v"6\xBC- Aj" \x07G\r\0\v \0 \0A\x94j" \b\x95 \0 \0A\x88j" \x95 \0  \x94\v \0\x90 @@ \0(\xBC-"A N@ \0 \0("Aj6  \0(\bj \0-\0\xB8-:\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0\f\v A\0L\r\0 \0 \0("Aj6  \0(\bj \0-\0\xB8-:\0\0\v \0A\x006\xBC- \0A\0;\xB8-\v\v\xFA\x7F (\0!\v (\b"(\0! (\f! \0B\x80\x80\x80\x80\xD0\xC7\x007\xD0(A\x7F!\rA\0!@ A\0J@ \0A\xD8(j! \0A\xDCj!@@ \v Atj"\b/\0@ \0 \0(\xD0(Aj"\r6\xD0(  \rAtj 6\0  jA\0:\0\0 !\r\f\v \bA\0;\v Aj" G\r\0\v \0(\xD0("AJ\r\v \0A\xD8(j! \0A\xDCj!@ \0 Aj"6\xD0(  Atj \rAj"\bA\0 \rAH" \x1B"6\0 \v At"
2040
+ jA;\0  jA\0:\0\0 \0 \0(\xA8-Ak6\xA8- @ \0 \0(\xAC- 
2041
+ j/k6\xAC-\v \b \r \x1B!\r \0(\xD0("AH\r\0\v\v  \r6 \0(\xD0("AN@ \0A\xD8(j!
2042
+ \0A\xDCj! Av!@ "\bAtj(\0!\x07@ At" \0(\xD0("J\r\0 \x07
2043
+ j! \v \x07Atj! !@\x7F   N\r\0 \v Ar"Atj(\0"\fAtj/\0" \v Atj(\0"Atj/\0"O@   G\r 
2044
+ \fj-\0\0
2045
+ j-\0\0K\r\v \v! /\0" \v Atj(\0"Atj/\0"\fI@ !\f\v@  \fG\r\0 -\0\0 
2046
+ j-\0\0K\r\0 !\f\v Atj 6\0 ! At" \0(\xD0("L\r\0\v\v Atj \x076\0 \bAk! \bAJ\r\0\v \0(\xD0(!\v#\0A k! \0A\xD8(j!
2047
+ \0A\xDCj!\b@ ! \0 Ak"6\xD0( \0(\xE0!\x07 \0 \b Atj(\0"6\xE0A!@ AH\r\0
2048
+ j!A! \v Atj!\fA!@\x7F   N\r\0 \v \b Ar"Atj(\0"Atj/\0" \v \b Atj(\0"Atj/\0"O@   G\r 
2049
+ j-\0\0
2050
+ j-\0\0K\r\v \v! \f/\0" \v \b Atj(\0"Atj/\0"I@ !\f\v@  G\r\0 -\0\0 
2051
+ j-\0\0K\r\0 !\f\v \b Atj 6\0 ! At" \0(\xD0("L\r\0\v\vA! \b Atj 6\0 \0 \0(\xD4(Ak"6\xD4( \0(\xE0! \b Atj \x076\0 \0 \0(\xD4(Ak"6\xD4( \b Atj 6\0 \v Atj" \v Atj"/\0 \v \x07Atj"/\0j;\0 
2052
+ j" \x07
2053
+ j-\0\0"\x07 
2054
+ j-\0\0"  \x07I\x1BAj:\0\0  ;  ; \0 6\xE0A!A!@ \0(\xD0("AH\r\0@\x7F   L\r\0 \v \b Ar"Atj(\0"\x07Atj/\0" \v \b Atj(\0"\fAtj/\0"O@   G\r  \x07
2055
+ j-\0\0
2056
+ \fj-\0\0K\r\v \v! /\0" \v \b Atj(\0"Atj/\0"\x07I@ !\f\v@  \x07G\r\0 -\0\0 
2057
+ j-\0\0K\r\0 !\f\v \b Atj 6\0 ! At" \0(\xD0("L\r\0\v\v Aj! \b Atj 6\0 \0(\xD0("AJ\r\0\v \0 \0(\xD4(Ak"6\xD4( \b Atj \0(\xE06\0 (! (\b"(! (\b! (! (\0!\f (\0! \0B\x007\xD4 \0B\x007\xCC \0B\x007\xC4 \0B\x007\xBCA\0!
2058
+  \b \0(\xD4(Atj(\0AtjA\0;@ \0(\xD4("A\xBBJ\r\0 \0A\xBCj! Aj!A\0!@  \b Atj(\0"At"j"   /Atj/"\x07Aj  \x07L"\x1B";@  J\r\0  Atj"\x07 \x07/\0Aj;\0A\0!\x07  N@   kAtj(\0!\x07\v \0 \0(\xA8- /\0" \x07 jlj6\xA8- \fE\r\0 \0 \0(\xAC- \x07 \f j/j lj6\xAC-\v  j! Aj"A\xBDG\r\0\v E\r\0  Atj!\x07@ !@  "Ak"Atj"/\0"\fE\r\0\v  \fAk;\0  Atj" /\0Aj;\0 \x07 \x07/\0Ak;\0 AJ Ak!\r\0\v E\r\0A\xBD!@  Atj/\0"@@ \b Ak"Atj(\0" J\r\0  Atj"/"\x07 G@ \0 \0(\xA8- /\0  \x07klj6\xA8-  ;\v Ak"\r\0\v\v Ak"\r\0\v\v \0/\xBCAt"; \0A\xBEj/\0 A\xFE\xFFqjAt"; \0A\xC0j/\0 A\xFE\xFFqjAt"; \0A\xC2j/\0 A\xFE\xFFqjAt";\b \0A\xC4j/\0 A\xFE\xFFqjAt";
2059
+ \0A\xC6j/\0 A\xFE\xFFqjAt";\f \0A\xC8j/\0 A\xFE\xFFqjAt"; \0A\xCAj/\0 A\xFE\xFFqjAt"; \0A\xCCj/\0 A\xFE\xFFqjAt"; \0A\xCEj/\0 A\xFE\xFFqjAt"; \0A\xD0j/\0 A\xFE\xFFqjAt";  \0A\xD2j/\0jAt"; \0A\xD4j/\0 jAt"; \0A\xD6j/\0 jAt";  \0A\xD8j/\0jAt; \rA\0N@@ \v
2060
+ Atj"/"\0@ \0Atj" /\0"Aj;\0 \0Aq!A\0!@@ \0AI@A\0!\f\v \0A\xFC\xFFq!\bA\0!A\0!\0@ AvAq AvAq Aq  AqrAtrrAtr"At! Av! \0Aj"\0 \bG\r\0\v E\r\v@  Aqr"At! Av! Aj" G\r\0\v\v  ;\0\v
2061
+ \rG
2062
+ Aj!
2063
+ \r\0\v\v\v\xED\b \x7F@ \0(\xA0-E@ \0(\xBC-!\f\v@ \0(\x98- j-\0\0!@ \0\x7F \0(\xA4- Atj/\0"E@  Atj"/! \0 \0/\xB8- /\0" \0(\xBC-"tr";\xB8-A k H@ \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \0 A \0(\xBC-"kv;\xB8-  jAk\f\v  j\f\v  -\0\xA0\x8A"
2064
+ At"\bj"/\x86\b! \0 \0/\xB8- /\x84\b"\v \0(\xBC-"\x07tr";\xB8- \0\x7FA k \x07H@ \0 \0("\x07Aj6 \x07 \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \0 \vA \0(\xBC-"\x07kv";\xB8-  \x07jAk\f\v  \x07j\v"6\xBC-
2065
+ AkA\xFFqA\xECO@  \b(\x90\x99k! \0\x7FA \b(\xA0\x96"\bk H@ \0   tr";\xB8- \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \0 A\xFF\xFFqA \0(\xBC-"kv";\xB8-  \bjAk\f\v \0   tr";\xB8-  \bj\v"6\xBC-\v  A\x9F\x86j Ak"\bA\x07vA\xA0\x88j A\x81I\x1B-\0\0"\x07At"j"
2066
+ /! \0 
2067
+ /\0"
2068
+ tr";\xB8- \0\x7FA k H@ \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \0
2069
+ A \0(\xBC-"kv";\xB8-  jAk\f\v  j\v"6\xBC- \x07AI\r \b (\x90\x9Ak!A (\xA0\x97"k H@ \0   tr";\xB8- \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \0 A\xFF\xFFqA \0(\xBC-"kv;\xB8-  jAk\f\v \0   tr;\xB8-  j\v"6\xBC-\v Aj" \0(\xA0-I\r\0\v\v /\x82\b! \0 \0/\xB8- /\x80\b" tr" ;\xB8- \0\x7FA k H@ \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \0 A \0(\xBC-"kv;\xB8-  jAk\f\v  j\v6\xBC- \0 /\x82\b6\xB4-\v\xA7\v\v\x7F A\0N@AA /"
2070
+ \x1B!\bA\x07A\x8A
2071
+ \x1B! \0A\xFCj!\fA\x7F!@
2072
+ !  \v"\rAj"\vAtj/!
2073
+ @@ Aj" N\r\0
2074
+ G\r\0 !\f\v@  \bH@ \f Atj!\x07 \0(\xBC-!@ \x07/! \0 \0/\xB8- \x07/\0"\b tr";\xB8- \0\x7FA k H@ \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \0 \bA \0(\xBC-"kv;\xB8-  jAk\f\v  j\v"6\xBC- Ak"\r\0\v\f\v \0(\xBC-! \0\x7F @@  F@ !\f\v \f Atj"/!\x07 \0 \0/\xB8- /\0"\b tr";\xB8- \0\x7FA \x07k H@ \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \0 \bA \0(\xBC-"kv;\xB8-  \x07jAk\f\v  \x07j\v"6\xBC-\v \0/\xB8- \0/\xBC"\b tr!@A \0/\xBE"\x07k H@ \0 ;\xB8- \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \x07 \0(\xBC-"jAk! \bA kv!\f\v  \x07j!\v \0 6\xBC- A\xFD\xFFj! AN@ \0   tr";\xB8- \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \0 A\xFF\xFFqA \0(\xBC-"kv;\xB8- Ak\f\v \0   tr;\xB8- Aj\f\v \0/\xB8-! A L@  \0/\xC0"\b tr!@A \0/\xC2"\x07k H@ \0 ;\xB8- \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \x07 \0(\xBC-"jAk! \bA kv!\f\v  \x07j!\v \0 6\xBC- A\xFE\xFFj! AN@ \0   tr";\xB8- \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \0 A\xFF\xFFqA \0(\xBC-"kv;\xB8- A\rk\f\v \0   tr;\xB8- Aj\f\v  \0/\xC4"\b tr!@A \0/\xC6"\x07k H@ \0 ;\xB8- \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \x07 \0(\xBC-"jAk! \bA kv!\f\v  \x07j!\v \0 6\xBC- A\xF6\xFFj! A
2075
+ N@ \0   tr";\xB8- \0 \0("Aj6  \0(\bj :\0\0 \0 \0("Aj6  \0(\bj \0-\0\xB9-:\0\0 \0 A\xFF\xFFqA \0(\xBC-"kv;\xB8- A k\f\v \0   tr;\xB8- A\x07j\v6\xBC-\vA\0!\x7F
2076
+ E@A\x8A!A\f\vAA\x07
2077
+ F"\x1B!AA \x1B\v!\b !\v  \rG\r\0\v\v\v
2078
+ \0  l\xB2\v*\x7F#\0Ak"$\0  6\fA\xF8\xB7 \0 A\0A\0\xA6 Aj$\0\v\0\vY\x7F \0 \0(H"Ak r6H \0(\0"A\bq@ \0 A r6\0A\x7F\v \0B\x007 \0 \0(,"6 \0 6 \0  \0(0j6A\0\v}\x7F#\0Ak"$\0 A
2079
+ :\0@@ \0("\x7F  \0\x99\r \0(\v \0("F\r\0 \0(PA
2080
+ F\r\0 \0 Aj6 A
2081
+ :\0\0\f\v \0 AjA \0($\0AG\r\0 -\0\v Aj$\0\v\xD7\x7F@A\xC4\xB8(\0"\0A\0N@ \0E\rA\x9C\xE9(\0 \0A\xFF\xFF\xFF\xFFqG\r\v@A\xC8\xB8(\0A
2082
+ F\r\0A\x8C\xB8(\0"\0A\x88\xB8(\0F\r\0A\x8C\xB8 \0Aj6\0 \0A
2083
+ :\0\0\vA\xF8\xB7\x9A\vA\xC4\xB8A\xC4\xB8(\0"\0A\xFF\xFF\xFF\xFF \0\x1B6\0@@A\xC8\xB8(\0A
2084
+ F\r\0A\x8C\xB8(\0"\0A\x88\xB8(\0F\r\0A\x8C\xB8 \0Aj6\0 \0A
2085
+ :\0\0\f\vA\xF8\xB7\x9A\vA\xC4\xB8(\0A\xC4\xB8A\x006\0\v\x8B\x7F A\x80O@ @ \0  \xFC
2086
+ \0\0\v \0\v \0 j!@ \0 sAqE@@ \0AqE@ \0!\f\v E@ \0!\f\v \0!@  -\0\0:\0\0 Aj! Aj"AqE\r  I\r\0\v\v A|q!@ A\xC0\0I\r\0  A@j"K\r\0@  (\x006\0  (6  (\b6\b  (\f6\f  (6  (6  (6  (6  ( 6  ($6$  ((6(  (,6,  (060  (464  (868  (<6< A@k! A@k" M\r\0\v\v  O\r@  (\x006\0 Aj! Aj" I\r\0\v\f\v AI@ \0!\f\v AI@ \0!\f\v Ak! \0!@  -\0\0:\0\0  -\0:\0  -\0:\0  -\0:\0 Aj! Aj" M\r\0\v\v  I@@  -\0\0:\0\0 Aj! Aj" G\r\0\v\v \0\v\xC4\x7F@ ("\x7F  \x99\r (\v ("k I@  \0  ($\0\v@@ (PA\0H\r\0 E\r\0 !@ \0 j"Ak-\0\0A
2087
+ G@ Ak"\r\f\v\v  \0  ($\0" I\r  k! (!\f\v \0!A\0!\v   \x9C  ( j6  j!\v \v%\0 \0  l"\0 \x9D" \0F@ A\0 \x1B\v  n\vX\0 \0A \0\xA3"\0A\xF8\xB7\x9E \0G@\v@A\xC8\xB8(\0A
2088
+ F\r\0A\x8C\xB8(\0"\0A\x88\xB8(\0F\r\0A\x8C\xB8 \0Aj6\0 \0A
2089
+ :\0\0\vA\xF8\xB7\x9A\v\0\0\v\xF4\x07\x7F#\0A k"$\0  \0("6 \0(!  6  6   k"6  j!A!\x07\x7F@@@ \0(< Aj"A A\fj\x1B"\x7FA\x80\xE9 6\0A\x7FA\0\v@ !\f\v@  (\f"F\r A\0H@ !\f\v A\bA\0  ("\bK" \x1Bj"  \bA\0 \x1Bk"\b (\0j6\0 A\fA \x1Bj" (\0 \bk6\0  k! \0(< " \x07 k"\x07 A\fj\x1B"\x7FA\x80\xE9 6\0A\x7FA\0\vE\r\0\v\v A\x7FG\r\v \0 \0(,"6 \0 6 \0  \0(0j6 \f\v \0A\x006 \0B\x007 \0 \0(\0A r6\0A\0 \x07AF\r\0  (k\v A j$\0\v\0B\0\v}\x7F@@ \0"AqE\r\0 -\0\0E@A\0\v@ Aj"AqE\r -\0\0\r\0\v\f\v@ "Aj!A\x80\x82\x84\b (\0"k rA\x80\x81\x82\x84xqA\x80\x81\x82\x84xF\r\0\v@ "Aj! -\0\0\r\0\v\v  \0k\v\x7F\x7F~ \0\xBD"B4\x88\xA7A\xFFq"A\xFFG| E@  \0D\0\0\0\0\0\0\0\0a\x7FA\0 \0D\0\0\0\0\0\0\xF0C\xA2 \xA4!\0 (\0A@j\v6\0 \0\v  A\xFE\x07k6\0 B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x80\x7F\x83B\x80\x80\x80\x80\x80\x80\x80\xF0?\x84\xBF \0\v\v\xF0\x7F~@ E\r\0 \0 :\0\0 \0 j"Ak :\0\0 AI\r\0 \0 :\0 \0 :\0 Ak :\0\0 Ak :\0\0 A\x07I\r\0 \0 :\0 Ak :\0\0 A I\r\0 \0A\0 \0kAq"j" A\xFFqA\x81\x82\x84\bl"\x006\0   kA|q"j"Ak \x006\0 A I\r\0  \x006\b  \x006 A\bk \x006\0 A\fk \x006\0 AI\r\0  \x006  \x006  \x006  \x006\f Ak \x006\0 Ak \x006\0 Ak \x006\0 Ak \x006\0  AqAr"k"A I\r\0 \0\xADB\x81\x80\x80\x80~!  j!@  7  7  7\b  7\0 A j! A k"AK\r\0\v\v\v\xA2\x7F#\0A\xD0k"$\0  6\xCC A\xA0j"A\0A(\xFC\v\0  (\xCC6\xC8A\0  A\xC8j A\xD0\0j   \xA7A\0H\x7FA\x7F \0 \0(\0"\x07A_q6\0\x7F@@ \0(0E@ \0A\xD0\x0060 \0A\x006 \0B\x007 \0(,! \0 6,\f\v \0(\r\vA\x7F \0\x99\r\v \0  A\xC8j A\xD0\0j A\xA0j  \xA7\v! \x7F \0A\0A\0 \0($\0 \0A\x0060 \0 6, \0A\x006 \0(! \0B\x007A\0 \v \0 \0(\0 \x07A qr6\0A\0\v A\xD0j$\0\v\xBD\x7F~#\0A@j"\b$\0 \b 6< \bA)j! \bA'j! \bA(j!@@@@@A\0!\x07@ !\r \x07 A\xFF\xFF\xFF\xFF\x07sJ\r \x07 j!@@@@ "\x07-\0\0"\f@@@@ \fA\xFFq"E@ \x07!\f\v A%G\r \x07!\f@ \f-\0A%G@ \f!\f\v \x07Aj!\x07 \f-\0 \fAj"!\fA%F\r\0\v\v \x07 \rk"\x07 A\xFF\xFF\xFF\xFF\x07s"J\r \0@ \0 \r \x07\xA8\v \x07\r\x07 \b 6< Aj!\x07A\x7F!@ ,\0A0k" A K\r\0 -\0A$G\r\0 Aj!\x07A! !\v \b \x076<A\0!\v@ \x07,\0\0"\fA k"AK@ \x07! \f\v \x07! A t"A\x89\xD1qE\r\0@ \b \x07Aj" 6<  \vr!\v \x07,\0"\fA k"A O\r !\x07A t"A\x89\xD1q\r\0\v\v@ \fA*F@\x7F@ ,\0A0k"A K\r\0 -\0A$G\r\0\x7F \0E@  AtjA
2090
+ 6\0A\0\f\v  Atj(\0\v! Aj!A\f\v \r Aj! \0E@ \b 6<A\0!A\0!\f\v  (\0"\x07Aj6\0 \x07(\0!A\0\v! \b 6< A\0N\rA\0 k! \vA\x80\xC0\0r!\v\f\v \bA<j\xA9"A\0H\r
2091
+ \b(<!\vA\0!\x07A\x7F!
2092
+ \x7FA\0 -\0\0A.G\r\0 -\0A*F@\x7F@ ,\0A0k" A K\r\0 -\0A$G\r\0 Aj!\x7F \0E@  AtjA
2093
+ 6\0A\0\f\v  Atj(\0\v\f\v \r Aj!A\0 \0E\r\0  (\0" Aj6\0 (\0\v!
2094
+ \b 6<
2095
+ A\0N\f\v \b Aj6< \bA<j\xA9!
2096
+ \b(<!A\v!@ \x07!A! ",\0\0"\x07A\xFB\0kAFI\r\v Aj! A:l \x07jA\xFF\x9Aj-\0\0"\x07AkA\xFFqA\bI\r\0\v \b 6<@ \x07A\x1BG@ \x07E\r\f A\0N@ \0E@  Atj \x076\0\f\f\v \b  Atj)\x0070\f\v \0E\r\b \bA0j \x07  \xAA\f\v A\0N\r\vA\0!\x07 \0E\r\b\v \0-\0\0A q\r\v \vA\xFF\xFF{q"\f \v \vA\x80\xC0\0q\x1B!\vA\0!A\xA5 ! ! @@\x7F@@@@@@\x7F@@@@@@@ -\0\0"\xC0"\x07ASq \x07 AqAF\x1B \x07 \x1B"\x07A\xD8\0k! 
2097
+ \0\v@ \x07A\xC1\0k\x07\v\0\v \x07A\xD3\0F\r\v\f\v \b)0!A\xA5 \f\vA\0!\x07@@@@@@@ \b\0\v \b(0 6\0\f\x1B\v \b(0 6\0\f\v \b(0 \xAC7\0\f\v \b(0 ;\0\f\v \b(0 :\0\0\f\v \b(0 6\0\f\v \b(0 \xAC7\0\f\vA\b
2098
+
2099
+ A\bM\x1B!
2100
+ \vA\br!\vA\xF8\0!\x07\v ! \b)0""\x1BB\0R@ \x07A q!\r@ Ak" \x1B\xA7Aq-\0\x90\x9F \rr:\0\0 \x1BB\x88"\x1BB\0R\r\0\v\v !\r P\r \vA\bqE\r \x07AvA\xA5 j!A!\f\v ! \b)0""\x1BB\0R@@ Ak" \x1B\xA7A\x07qA0r:\0\0 \x1BB\x88"\x1BB\0R\r\0\v\v !\r \vA\bqE\r
2101
+  k" 
2102
+ H\x1B!
2103
+ \f\v \b)0"B\0S@ \bB\0 }"70A!A\xA5 \f\v \vA\x80q@A!A\xA6 \f\vA\xA7 A\xA5 \vAq"\x1B\v!  \xAB!\r\v 
2104
+ A\0Hq\r \vA\xFF\xFF{q \v \x1B!\v@ B\0R\r\0
2105
+ \r\0 !\rA\0!
2106
+ \f\v
2107
+ P  \rkj" 
2108
+ H\x1B!
2109
+ \f\r\v \b-\x000!\x07\f\v\v\x7FA\xFF\xFF\xFF\xFF\x07
2110
+
2111
+ A\xFF\xFF\xFF\xFF\x07O\x1B"\v"\x07A\0G! @@@ \b(0"A\x94' \x1B"\r"AqE\r\0 \x07E\r\0@ -\0\0E\r \x07Ak"\x07A\0G! Aj"AqE\r \x07\r\0\v\v E\r@ -\0\0E\r\0 \x07AI\r\0@A\x80\x82\x84\b (\0" k rA\x80\x81\x82\x84xqA\x80\x81\x82\x84xG\r Aj! \x07Ak"\x07AK\r\0\v\v \x07E\r\v@  -\0\0E\r Aj! \x07Ak"\x07\r\0\v\vA\0\v" \rk \v \x1B" \rj!
2112
+ A\0N@ \f!\v !
2113
+ \f\f\v \f!\v !
2114
+ -\0\0\r\f\v\v \b)0"B\0R\rA\0!\x07\f \v
2115
+ @ \b(0\f\vA\0!\x07 \0A A\0 \v\xAC\f\v \bA\x006\f \b >\b \b \bA\bj"\x0760A\x7F!
2116
+ \x07\v!\fA\0!\x07@@ \f(\0"\rE\r\0 \bAj \r\xAF"\rA\0H\r \r
2117
+ \x07kK\r\0 \fAj!\f \x07 \rj"\x07
2118
+ I\r\v\vA=! \x07A\0H\r\f \0A  \x07 \v\xAC \x07E@A\0!\x07\f\vA\0! \b(0!\f@ \f(\0"\rE\r \bAj"
2119
+ \r\xAF"\r j" \x07K\r \0
2120
+ \r\xA8 \fAj!\f \x07 K\r\0\v\v \0A  \x07 \vA\x80\xC0\0s\xAC  \x07 \x07 H\x1B!\x07\f\b\v 
2121
+ A\0Hq\r A=! \0 \b+0 
2122
+ \v \x07 \0"\x07A\0N\r\x07\f
2123
+ \v \x07-\0!\f \x07Aj!\x07\f\0\v\0\v \0\r E\rA!\x07@  \x07Atj(\0"\0@  \x07Atj \0  \xAAA! \x07Aj"\x07A
2124
+ G\r\f\v\v\v \x07A
2125
+ O@A!\f
2126
+ \v@  \x07Atj(\0\rA! \x07Aj"\x07A
2127
+ G\r\0\v\f \vA! \f\v \b \x07:\0'A!
2128
+ !\r \f!\v\v
2129
+ \rk"\f
2130
+ \fJ\x1B"
2131
+ A\xFF\xFF\xFF\xFF\x07sJ\rA=! 
2132
+ j"  H\x1B"\x07 K\r \0A \x07  \v\xAC \0  \xA8 \0A0 \x07  \vA\x80\x80s\xAC \0A0
2133
+ \fA\0\xAC \0 \r \f\xA8 \0A \x07  \vA\x80\xC0\0s\xAC \b(<!\f\v\v\vA\0!\f\vA=! \vA\x80\xE9 6\0\vA\x7F!\v \bA@k$\0 \v\0 \0-\0\0A qE@   \0\x9D\v\vo\x7F \0(\0",\0\0A0k"A K@A\0\v@A\x7F! A\xCC\x99\xB3\xE6\0M@A\x7F  A
2134
+ l"j  A\xFF\xFF\xFF\xFF\x07sK\x1B!\v \0 Aj"6\0 ,\0 ! !A0k"A
2135
+ I\r\0\v \v\xBC\0@@@@@@@@@@@ A k\0\b
2136
+ \b 
2137
+
2138
+
2139
+ \b \x07\v  (\0"Aj6\0 \0 (\x006\0\v  (\0"Aj6\0 \0 2\x007\0\v  (\0"Aj6\0 \0 3\x007\0\v  (\0"Aj6\0 \0 0\0\x007\0\v  (\0"Aj6\0 \0 1\0\x007\0\v  (\0A\x07jAxq"A\bj6\0 \0 +\x009\0\v \0  \0\v\v  (\0"Aj6\0 \0 4\x007\0\v  (\0"Aj6\0 \0 5\x007\0\v  (\0A\x07jAxq"A\bj6\0 \0 )\x007\0\vu\x7F~ \0B\x80\x80\x80\x80Z@@ Ak" \0" \0B
2140
+ \x80"\0B
2141
+ ~}\xA7A0r:\0\0 B\xFF\xFF\xFF\xFF\x9FV\r\0\v\v \0B\0R@ \0\xA7!@ Ak"  A
2142
+ n"A
2143
+ lkA0r:\0\0 A K !\r\0\v\v \vm\x7F#\0A\x80k"$\0@  L\r\0 A\x80\xC0q\r\0    k"A\x80 A\x80I"\x1B\xA5 E@@ \0 A\x80\xA8 A\x80k"A\xFFK\r\0\v\v \0  \xA8\v A\x80j$\0\v\xD6\x7F|~#\0A\xB0k"\f$\0 \fA\x006,@ \xBD"B\0S@A!A\xAF ! \x9A"\xBD!\f\v A\x80q@A!A\xB2 !\f\vA\xB5 A\xB0 Aq"\x1B! E!\v@ B\x80\x80\x80\x80\x80\x80\x80\xF8\xFF\0\x83B\x80\x80\x80\x80\x80\x80\x80\xF8\xFF\0Q@ \0A  Aj" A\xFF\xFF{q\xAC \0  \xA8 \0A\xD4A\xEB A q"\x1BA\xCEA\xF4 \x1B  b\x1BA\xA8 \0A   A\x80\xC0\0s\xAC    J\x1B!\r\f\v \fAj!@@@  \fA,j\xA4" \xA0"D\0\0\0\0\0\0\0\0b@ \f \f(,"Ak6, A r"A\xE1\0G\r\f\v A r"A\xE1\0F\r \f(,!\v\f\v \f Ak"\v6, D\0\0\0\0\0\0\xB0A\xA2!\vA  A\0H\x1B!
2144
+ \fA0jA\xA0A\0 \vA\0N\x1Bj"!\x07@ \x07 \xFC"6\0 \x07Aj!\x07  \xB8\xA1D\0\0\0\0e\xCD\xCDA\xA2"D\0\0\0\0\0\0\0\0b\r\0\v@ \vA\0L@ \v! \x07! !\b\f\v !\b \v! @A AO\x1B!@ \x07Ak" \bI\r\0 \xAD!\x1BB\0!@  5\0 \x1B\x86 |" B\x80\x94\xEB\xDC\x80"B\x80\x94\xEB\xDC~}>\0 Ak" \bO\r\0\v B\x80\x94\xEB\xDCT\r\0 \bAk"\b >\0\v@ \b \x07"I@ Ak"\x07(\0E\r\v\v \f \f(, k" 6, !\x07 A\0J\r\0\v\v A\0H@
2145
+ AjA nAj! A\xE6\0F!@A A\0 k" A O\x1B!\r@  \bM@A\0A \b(\0\x1B!\x07\f\vA\x80\x94\xEB\xDC \rv!A\x7F \rtA\x7Fs!A\0! \b!\x07@ \x07 \x07(\0" \rv j6\0  q l! \x07Aj"\x07 I\r\0\vA\0A \b(\0\x1B!\x07 E\r\0  6\0 Aj!\v \f \f(, \rj" 6,  \x07 \bj"\b \x1B" Atj   kAu J\x1B! A\0H\r\0\v\vA\0! @  \bM\r\0  \bkAuA l! A
2146
+ !\x07 \b(\0"A
2147
+ I\r\0@ Aj!  \x07A
2148
+ l"\x07O\r\0\v\v
2149
+ A\0 A\xE6\0G\x1Bk A\xE7\0F
2150
+ A\0Gqk"  kAuA lA kH@ \fA0jA\x84\`A\xA4b \vA\0H\x1Bj A\x80\xC8\0j"\vA m"Atj!\rA
2151
+ !\x07 \v A lk"A\x07L@@ \x07A
2152
+ l!\x07 Aj"A\bG\r\0\v\v@ \r(\0"\v \v \x07n" \x07lk"E \rAj" Fq\r\0@ AqE@D\0\0\0\0\0\0@C! \x07A\x80\x94\xEB\xDCG\r \b \rO\r \rAk-\0\0AqE\r\vD\0\0\0\0\0@C!\vD\0\0\0\0\0\0\xE0?D\0\0\0\0\0\0\xF0?D\0\0\0\0\0\0\xF8?  F\x1BD\0\0\0\0\0\0\xF8?  \x07Av"F\x1B  K\x1B!@ \r\0 -\0\0A-G\r\0 \x9A! \x9A!\v \r \v k"6\0  \xA0 a\r\0 \r  \x07j"6\0 A\x80\x94\xEB\xDCO@@ \rA\x006\0 \b \rAk"\rK@ \bAk"\bA\x006\0\v \r \r(\0Aj"6\0 A\xFF\x93\xEB\xDCK\r\0\v\v  \bkAuA l! A
2153
+ !\x07 \b(\0"A
2154
+ I\r\0@ Aj!  \x07A
2155
+ l"\x07O\r\0\v\v \rAj"   I\x1B!\v@ "\v \bM"\x07E@ Ak"(\0E\r\v\v@ A\xE7\0G@ A\bq!\f\v A\x7FsA\x7F
2156
+ A
2157
+ \x1B" J A{Jq"\x1B j!
2158
+ A\x7FA~ \x1B j! A\bq"\r\0Aw!@ \x07\r\0 \vAk(\0"E\r\0A
2159
+ !A\0! A
2160
+ p\r\0@ "\x07Aj!  A
2161
+ l"pE\r\0\v \x07A\x7Fs!\v \v kAuA l! A_qA\xC6\0F@A\0!
2162
+  jA k"A\0 A\0J\x1B" 
2163
+ J\x1B!
2164
+ \f\vA\0!
2165
+  j jA k"A\0 A\0J\x1B" 
2166
+ J\x1B!
2167
+ \vA\x7F!\r
2168
+ A\xFD\xFF\xFF\xFF\x07A\xFE\xFF\xFF\xFF\x07
2169
+ r"\x1BJ\r
2170
+ A\0GjAj!@ A_q"\x07A\xC6\0F@ A\xFF\xFF\xFF\xFF\x07sJ\r A\0 A\0J\x1B!\f\v  Au"s k\xAD \xAB"kAL@@ Ak"A0:\0\0  kAH\r\0\v\v Ak" :\0\0 AkA-A+ A\0H\x1B:\0\0  k" A\xFF\xFF\xFF\xFF\x07sJ\r\v  j" A\xFF\xFF\xFF\xFF\x07sJ\r \0A   j" \xAC \0  \xA8 \0A0  A\x80\x80s\xAC@@@ \x07A\xC6\0F@ \fAjA r!  \b \b K\x1B"!\b@ \b5\0 \xAB!@  \bG@  \fAjM\r@ Ak"A0:\0\0  \fAjK\r\0\v\f\v  G\r\0 Ak"A0:\0\0\v \0   k\xA8 \bAj"\b M\r\0\v @ \0A\x90%A\xA8\v \b \vO\r
2171
+ A\0L\r@ \b5\0 \xAB" \fAjK@@ Ak"A0:\0\0  \fAjK\r\0\v\v \0 A
2172
+
2173
+ A N\x1B\xA8
2174
+ A k! \bAj"\b \vO\r
2175
+ A J !
2176
+ \r\0\v\f\v@
2177
+ A\0H\r\0 \v \bAj \b \vI\x1B! \fAjA r!\v \b!\x07@ \v \x075\0 \v\xAB"F@ Ak"A0:\0\0\v@ \x07 \bG@  \fAjM\r@ Ak"A0:\0\0  \fAjK\r\0\v\f\v \0 A\xA8 Aj!
2178
+ rE\r\0 \0A\x90%A\xA8\v \0  \v k"
2179
+ 
2180
+ H\x1B\xA8
2181
+ k!
2182
+ \x07Aj"\x07 O\r
2183
+ A\0N\r\0\v\v \0A0
2184
+ AjAA\0\xAC \0   k\xA8\f\v
2185
+ !\v \0A0 A jA A\0\xAC\v \0A  A\x80\xC0\0s\xAC   J\x1B!\r\f\v  AtAuA qj!
2186
+ @ A\vK\r\0A\f k!D\0\0\0\0\0\x000@!@ D\0\0\0\0\0\x000@\xA2! Ak"\r\0\v
2187
+ -\0\0A-F@  \x9A \xA1\xA0\x9A!\f\v  \xA0 \xA1!\v  \f(,"\x07 \x07Au"s k\xAD \xAB"F@ Ak"A0:\0\0 \f(,!\x07\v A q!\v Ak" Aj:\0\0 AkA-A+ \x07A\0H\x1B:\0\0 A\bqE A\0Lq!\b \fAj!\x07@ \x07" \xFC"A\x90\x9Fj-\0\0 \vr:\0\0  \xB7\xA1D\0\0\0\0\0\x000@\xA2!@ \x07Aj"\x07 \fAjkAG\r\0 D\0\0\0\0\0\0\0\0a \bq\r\0 A.:\0 Aj!\x07\v D\0\0\0\0\0\0\0\0b\r\0\vA\x7F!\r A\xFB\xFF\xFF\xFF\x07   k"\bjkJ\r\0 \0A  Aj \x07 \fAj"k"\v \vAk H\x1B \v \x1B" \b Ar"jj"\x07 \xAC \0
2188
+ \xA8 \0A0  \x07 A\x80\x80s\xAC \0  \v\xA8 \0A0  \vkA\0A\0\xAC \0  \b\xA8 \0A  \x07 A\x80\xC0\0s\xAC  \x07  \x07J\x1B!\r\v \fA\xB0j$\0 \r\v\xB2~\x7F  (\0A\x07jAxq"Aj6\0 \0 )\0! )\b!#\0A k"\0$\0 B\xFF\xFF\xFF\xFF\xFF\xFF?\x83!~ B0\x88B\xFF\xFF\x83"\xA7"\bA\x81\xF8\0kA\xFDM@ B\x86 B<\x88\x84! \bA\x80\xF8\0k\xAD!@ B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83"B\x81\x80\x80\x80\x80\x80\x80\x80\bZ@ B|!\f\v B\x80\x80\x80\x80\x80\x80\x80\x80\bR\r\0 B\x83 |!\vB\0  B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x07V"\x1B! \xAD |\f\v@  \x84P\r\0 B\xFF\xFFR\r\0 B\x86 B<\x88\x84B\x80\x80\x80\x80\x80\x80\x80\x84!B\xFF\f\v \bA\xFE\x87K@B\0!B\xFF\f\vA\x80\xF8\0A\x81\xF8\0 P" \x1B"
2189
+ \bk"A\xF0\0J@B\0!B\0\f\v  B\x80\x80\x80\x80\x80\x80\xC0\0\x84 \x1B!A\0! \b
2190
+ G@ ! !@A\x80 k"\bA\xC0\0q@  \bA@j\xAD\x86!B\0!\f\v \bE\r\0  \b\xAD"\x07\x86 A\xC0\0 \bk\xAD\x88\x84!  \x07\x86!\v \0 7 \0 7 \0) \0)\x84B\0R! \v@ A\xC0\0q@  A@j\xAD\x88!B\0!\f\v E\r\0 A\xC0\0 k\xAD\x86  \xAD"\x88\x84!  \x88!\v \0 7\0 \0 7\b \0)\bB\x86 \0)\0"B<\x88\x84!@ \xAD B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x84"B\x81\x80\x80\x80\x80\x80\x80\x80\bZ@ B|!\f\v B\x80\x80\x80\x80\x80\x80\x80\x80\bR\r\0 B\x83 |!\v B\x80\x80\x80\x80\x80\x80\x80\b\x85  B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x07V"\x1B! \xAD\v! \0A j$\0 B\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7F\x83 B4\x86\x84 \x84\xBF9\0\v\x99\0 \0E@A\0\v\x7F@ \0\x7F A\xFF\0M\r@A\x8C\xB9(\0(\0E@ A\x80\x7FqA\x80\xBFF\r\f\v A\xFFM@ \0 A?qA\x80r:\0 \0 AvA\xC0r:\0\0A\f\v A\x80@qA\x80\xC0G A\x80\xB0OqE@ \0 A?qA\x80r:\0 \0 A\fvA\xE0r:\0\0 \0 AvA?qA\x80r:\0A\f\v A\x80\x80kA\xFF\xFF?M@ \0 A?qA\x80r:\0 \0 AvA\xF0r:\0\0 \0 AvA?qA\x80r:\0 \0 A\fvA?qA\x80r:\0A\f\v\vA\x80\xE9A6\0A\x7FA\v\f\v \0 :\0\0A\v\v\0 \0(<"\0\x7FA\x80\xE9 \x006\0A\x7FA\0\v\vK\x7F \0(<#\0Ak"\0$\0  A\xFFq \0A\bj"\x7FA\x80\xE9 6\0A\x7FA\0\v! \0)\b! \0Aj$\0B\x7F  \x1B\v\xC2,\f\x7F#\0Ak"\v$\0@@@@ \0A\xF4M@A\xD8\xF2(\0"A \0A\vjA\xF8q \0A\vI\x1B"\x07Av"\0v"Aq@@ A\x7FsAq \0j"At"A\x80\xF3j" (\x88\xF3"(\b"\0F@A\xD8\xF2 A~ wq6\0\f\v \0A\xE8\xF2(\0I\r \0(\f G\r \0 6\f  \x006\b\v A\bj!\0  Ar6  j" (Ar6\f\v \x07A\xE0\xF2(\0" M\r @@A \0t"A\0 kr  \0tqh"At"A\x80\xF3j" (\x88\xF3"(\b"\0F@A\xD8\xF2 A~ wq"6\0\f\v \0A\xE8\xF2(\0I\r \0(\f G\r \0 6\f  \x006\b\v  \x07Ar6  \x07j"  \x07k"Ar6  j 6\0 @ AxqA\x80\xF3j!\0A\xEC\xF2(\0!@ A Avt"qE@A\xD8\xF2  r6\0 \0!\f\v \0(\b"A\xE8\xF2(\0I\r\v \0 6\b  6\f  \x006\f  6\b\v A\bj!\0A\xEC\xF2 6\0A\xE0\xF2 6\0\f\vA\xDC\xF2(\0"\fE\r \fhAt(\x88\xF5"(Axq \x07k! !@@ ("\0E@ ("\0E\r\v \0(Axq \x07k"   I"\x1B! \0  \x1B! \0!\f\v\v A\xE8\xF2(\0"\bI\r (!
2191
+ @  (\f"\0G@ (\b" \bI\r (\f G\r \0(\b G\r  \x006\f \0 6\b\f\v@ ("\x7F Aj ("E\r Aj\v!@ ! "\0Aj! \0("\r\0 \0Aj! \0("\r\0\v  \bI\r A\x006\0\f\vA\0!\0\v@
2192
+ E\r\0@ ("At"(\x88\xF5 F@ A\x88\xF5j \x006\0 \0\rA\xDC\xF2 \fA~ wq6\0\f\v \b
2193
+ K\r@ 
2194
+ (F@
2195
+ \x006\f\v
2196
+ \x006\v \0E\r\v \0 \bI\r \0
2197
+ 6 ("@  \bI\r \0 6  \x006\v ("E\r\0  \bI\r \0 6  \x006\v@ AM@   \x07j"\0Ar6 \0 j"\0 \0(Ar6\f\v  \x07Ar6  \x07j" Ar6  j 6\0 @ AxqA\x80\xF3j!\0A\xEC\xF2(\0!@A Avt" qE@A\xD8\xF2  r6\0 \0!\f\v \0(\b" \bI\r\v \0 6\b  6\f  \x006\f  6\b\vA\xEC\xF2 6\0A\xE0\xF2 6\0\v A\bj!\0\f\vA\x7F!\x07 \0A\xBF\x7FK\r\0 \0A\vj"Axq!\x07A\xDC\xF2(\0" E\r\0A!A\0 \x07k! \0A\xF4\xFF\xFF\x07M@ \x07A& A\bvg"\0kvAq \0AtkA>j!\v@@@ At(\x88\xF5"E@A\0!\0\f\vA\0!\0 \x07A AvkA\0 AG\x1Bt!@@ (Axq \x07k" O\r\0 ! "\r\0A\0! !\0\f\v \0 ("   AvAqj("F\x1B \0 \x1B!\0 At! \r\0\v\v \0 rE@A\0!A t"\0A\0 \0kr q"\0E\r \0hAt(\x88\xF5!\0\v \0E\r\v@ \0(Axq \x07k" I!   \x1B! \0  \x1B! \0("\x7F  \0(\v"\0\r\0\v\v E\r\0 A\xE0\xF2(\0 \x07kO\r\0 A\xE8\xF2(\0"I\r (!\b@  (\f"\0G@ (\b" I\r (\f G\r \0(\b G\r  \x006\f \0 6\b\f\v@ ("\x7F Aj ("E\r Aj\v!@ ! "\0Aj! \0("\r\0 \0Aj! \0("\r\0\v  I\r A\x006\0\f\vA\0!\0\v@ \bE\r\0@ ("At"(\x88\xF5 F@ A\x88\xF5j \x006\0 \0\rA\xDC\xF2 A~ wq" 6\0\f\v  \bK\r@  \b(F@ \b \x006\f\v \b \x006\v \0E\r\v \0 I\r \0 \b6 ("@  I\r \0 6  \x006\v ("E\r\0  I\r \0 6  \x006\v@ AM@   \x07j"\0Ar6 \0 j"\0 \0(Ar6\f\v  \x07Ar6  \x07j" Ar6  j 6\0 A\xFFM@ A\xF8qA\x80\xF3j!\0@A\xD8\xF2(\0"A Avt"qE@A\xD8\xF2  r6\0 \0!\f\v \0(\b" I\r\v \0 6\b  6\f  \x006\f  6\b\f\vA!\0 A\xFF\xFF\xFF\x07M@ A& A\bvg"\0kvAq \0AtrA>s!\0\v  \x006 B\x007 \0AtA\x88\xF5j!@@ A \0t"qE@A\xDC\xF2  r6\0  6\0\f\v A \0AvkA\0 \0AG\x1Bt!\0 (\0!@ "(Axq F\r \0Av! \0At!\0  Aqj"\x07("\r\0\v \x07Aj I\r \x07 6\v  6  6\f  6\b\f\v  I\r (\b"\0 I\r \0 6\f  6\b A\x006  6\f  \x006\b\v A\bj!\0\f\v \x07A\xE0\xF2(\0"M@A\xEC\xF2(\0!\0@  \x07k"AO@ \0 \x07j" Ar6 \0 j 6\0 \0 \x07Ar6\f\v \0 Ar6 \0 j" (Ar6A\0!A\0!\vA\xE0\xF2 6\0A\xEC\xF2 6\0 \0A\bj!\0\f\v \x07A\xE4\xF2(\0"I@A\xE4\xF2  \x07k"6\0A\xF0\xF2A\xF0\xF2(\0"\0 \x07j"6\0  Ar6 \0 \x07Ar6 \0A\bj!\0\f\vA\0!\0 \x07A/j"\x7FA\xB0\xF6(\0@A\xB8\xF6(\0\f\vA\xBC\xF6B\x7F7\0A\xB4\xF6B\x80\xA0\x80\x80\x80\x807\0A\xB0\xF6 \vA\fjApqA\xD8\xAA\xD5\xAAs6\0A\xC4\xF6A\x006\0A\x94\xF6A\x006\0A\x80 \v"j"A\0 k"q" \x07M\rA\x90\xF6(\0"@A\x88\xF6(\0"\b j" \bM\r  I\r\v@@A\x94\xF6-\0\0AqE@@@@@A\xF0\xF2(\0"@A\x98\xF6!\0@ \0(\0"\b M@  \b \0(jI\r\v \0(\b"\0\r\0\v\vA\0\xB5"A\x7FF\r !A\xB4\xF6(\0"\0Ak" q@  k  jA\0 \0kqj!\v  \x07M\rA\x90\xF6(\0"\0@A\x88\xF6(\0" j" M\r \0 I\r\v \xB5"\0 G\r\f\v  k q"\xB5" \0(\0 \0(jF\r !\0\v \0A\x7FF\r \x07A0j M@ \0!\f\vA\xB8\xF6(\0"  kjA\0 kq"\xB5A\x7FF\r  j! \0!\f\v A\x7FG\r\vA\x94\xF6A\x94\xF6(\0Ar6\0\v \xB5!A\0\xB5!\0 A\x7FF\r \0A\x7FF\r \0 M\r \0 k" \x07A(jM\r\vA\x88\xF6A\x88\xF6(\0 j"\x006\0A\x8C\xF6(\0 \0I@A\x8C\xF6 \x006\0\v@@@A\xF0\xF2(\0"@A\x98\xF6!\0@  \0(\0" \0("jF\r \0(\b"\0\r\0\v\f\vA\xE8\xF2(\0"\0A\0 \0 M\x1BE@A\xE8\xF2 6\0\vA\0!\0A\x9C\xF6 6\0A\x98\xF6 6\0A\xF8\xF2A\x7F6\0A\xFC\xF2A\xB0\xF6(\x006\0A\xA4\xF6A\x006\0@ \0At" A\x80\xF3j"6\x88\xF3  6\x8C\xF3 \0Aj"\0A G\r\0\vA\xE4\xF2 A(k"\0Ax kA\x07q"k"6\0A\xF0\xF2  j"6\0  Ar6 \0 jA(6A\xF4\xF2A\xC0\xF6(\x006\0\f\v  M\r\0  K\r\0 \0(\fA\bq\r\0 \0  j6A\xF0\xF2 Ax kA\x07q"\0j"6\0A\xE4\xF2A\xE4\xF2(\0 j" \0k"\x006\0  \0Ar6  jA(6A\xF4\xF2A\xC0\xF6(\x006\0\f\vA\xE8\xF2(\0 K@A\xE8\xF2 6\0\v  j!A\x98\xF6!\0@@  \0(\0"G@ \0(\b"\0\r\f\v\v \0-\0\fA\bqE\r\vA\x98\xF6!\0@@ \0(\0" M@   \0(j"I\r\v \0(\b!\0\f\v\vA\xE4\xF2 A(k"\0Ax kA\x07q"k"6\0A\xF0\xF2  j"6\0  Ar6 \0 jA(6A\xF4\xF2A\xC0\xF6(\x006\0  A' kA\x07qjA/k"\0 \0 AjI\x1B"A\x1B6 A\xA0\xF6)\x007 A\x98\xF6)\x007\bA\xA0\xF6 A\bj6\0A\x9C\xF6 6\0A\x98\xF6 6\0A\xA4\xF6A\x006\0 Aj!\0@ \0A\x076 \0A\bj \0Aj!\0 I\r\0\v  F\r\0  (A~q6   k"Ar6  6\0\x7F A\xFFM@ A\xF8qA\x80\xF3j!\0@A\xD8\xF2(\0"A Avt"qE@A\xD8\xF2  r6\0 \0!\f\v \0(\b"A\xE8\xF2(\0I\r\v \0 6\b  6\fA\f!A\b\f\vA!\0 A\xFF\xFF\xFF\x07M@ A& A\bvg"\0kvAq \0AtrA>s!\0\v  \x006 B\x007 \0AtA\x88\xF5j!@@A\xDC\xF2(\0"A \0t"qE@A\xDC\xF2  r6\0  6\0\f\v A \0AvkA\0 \0AG\x1Bt!\0 (\0!@ "(Axq F\r \0Av! \0At!\0  Aqj"("\r\0\vA\xE8\xF2(\0 AjK\r  6\v  6A\b! "!\0A\f\f\v A\xE8\xF2(\0"I\r  (\b"\0K\r \0 6\f  6\b  \x006\bA\0!\0A!A\f\v j 6\0  j \x006\0\vA\xE4\xF2(\0"\0 \x07M\r\0A\xE4\xF2 \0 \x07k"6\0A\xF0\xF2A\xF0\xF2(\0"\0 \x07j"6\0  Ar6 \0 \x07Ar6 \0A\bj!\0\f\vA\x80\xE9A06\0A\0!\0\f\v\xA0\0\v \0 6\0 \0 \0( j6\x7F Ax kA\x07qj" \x07Ar6 Ax kA\x07qj" \x07 j"k!@@A\xF0\xF2(\0 F@A\xF0\xF2 6\0A\xE4\xF2A\xE4\xF2(\0 j"\x006\0  \0Ar6\f\vA\xEC\xF2(\0 F@A\xEC\xF2 6\0A\xE0\xF2A\xE0\xF2(\0 j"\x006\0  \0Ar6 \0 j \x006\0\f\v ("\x07AqAF@ (\f!@ \x07A\xFFM@ (\b"\0 \x07A\xF8qA\x80\xF3j"G@ \0A\xE8\xF2(\0I\r \0(\f G\r\v \0 F@A\xD8\xF2A\xD8\xF2(\0A~ \x07Avwq6\0\f\v  G@ A\xE8\xF2(\0I\r (\b G\r\v \0 6\f  \x006\b\f\v (!\b@  G@ (\b"\0A\xE8\xF2(\0I\r \0(\f G\r (\b G\r \0 6\f  \x006\b\f\v@ ("\0\x7F Aj ("\0E\r Aj\v!@ ! \0"Aj! \0("\0\r\0 Aj! ("\0\r\0\v A\xE8\xF2(\0I\r A\x006\0\f\vA\0!\v \bE\r\0@ ("\0At"(\x88\xF5 F@ A\x88\xF5j 6\0 \rA\xDC\xF2A\xDC\xF2(\0A~ \0wq6\0\f\v \bA\xE8\xF2(\0I\r@  \b(F@ \b 6\f\v \b 6\v E\r\v A\xE8\xF2(\0"I\r  \b6 ("\0@ \0 I\r  \x006 \0 6\v ("\0E\r\0 \0 I\r  \x006 \0 6\v \x07Axq"\0 j! \0 j"(!\x07\v  \x07A~q6  Ar6  j 6\0 A\xFFM@ A\xF8qA\x80\xF3j!\0@A\xD8\xF2(\0"A Avt"qE@A\xD8\xF2  r6\0 \0!\f\v \0(\b"A\xE8\xF2(\0I\r\v \0 6\b  6\f  \x006\f  6\b\f\vA! A\xFF\xFF\xFF\x07M@ A& A\bvg"\0kvAq \0AtrA>s!\v  6 B\x007 AtA\x88\xF5j!\0@@A\xDC\xF2(\0"A t"qE@A\xDC\xF2  r6\0 \0 6\0\f\v A AvkA\0 AG\x1Bt! \0(\0!@ "\0(Axq F\r Av! At! \0 Aqj"("\r\0\vA\xE8\xF2(\0 AjK\r  6\v  \x006  6\f  6\b\f\v \0A\xE8\xF2(\0"I\r  \0(\b"K\r  6\f \0 6\b A\x006  \x006\f  6\b\v A\bj\f\v\xA0\0\v!\0\v \vAj$\0 \0\v\xAE
2198
+ \x7F@@ \0E\r\0 \0A\bk"A\xE8\xF2(\0"I\r \0Ak(\0"AqAF\r  Axq"\0j!@ Aq\r\0 AqE\r  (\0"k" I\r \0 j!\0A\xEC\xF2(\0 G@ (\f! A\xFFM@ (\b" A\xF8qA\x80\xF3j"\x07G@  I\r (\f G\r\v  F@A\xD8\xF2A\xD8\xF2(\0A~ Avwq6\0\f\v  \x07G@  I\r (\b G\r\v  6\f  6\b\f\v (!\b@  G@ (\b" I\r (\f G\r (\b G\r  6\f  6\b\f\v@ ("\x7F Aj ("E\r Aj\v!@ !\x07 "Aj! ("\r\0 Aj! ("\r\0\v  \x07K\r \x07A\x006\0\f\vA\0!\v \bE\r@ ("At"(\x88\xF5 F@ A\x88\xF5j 6\0 \rA\xDC\xF2A\xDC\xF2(\0A~ wq6\0\f\v  \bK\r@  \b(F@ \b 6\f\v \b 6\v E\r\v  I\r  \b6 ("@  I\r  6  6\v ("E\r  I\r  6  6\f\v ("AqAG\r\0A\xE0\xF2 \x006\0  A~q6  \0Ar6  \x006\0\v  O\r ("\bAqE\r@ \bAqE@A\xF0\xF2(\0 F@A\xF0\xF2 6\0A\xE4\xF2A\xE4\xF2(\0 \0j"\x006\0  \0Ar6 A\xEC\xF2(\0G\rA\xE0\xF2A\x006\0A\xEC\xF2A\x006\0\vA\xEC\xF2(\0"
2199
+ F@A\xEC\xF2 6\0A\xE0\xF2A\xE0\xF2(\0 \0j"\x006\0  \0Ar6 \0 j \x006\0\v (\f!@ \bA\xFFM@ (\b" \bA\xF8qA\x80\xF3j"G@  I\r (\f G\r\v  F@A\xD8\xF2A\xD8\xF2(\0A~ \bAvwq6\0\f\v  G@  I\r (\b G\r\v  6\f  6\b\f\v (! @  G@ (\b" I\r (\f G\r (\b G\r  6\f  6\b\f\v@ ("\x7F Aj ("E\r Aj\v!@ !\x07 "Aj! ("\r\0 Aj! ("\r\0\v  \x07K\r \x07A\x006\0\f\vA\0!\v E\r\0@ ("At"(\x88\xF5 F@ A\x88\xF5j 6\0 \rA\xDC\xF2A\xDC\xF2(\0A~ wq6\0\f\v  K\r@  (F@ 6\f\v 6\v E\r\v  I\r  6 ("@  I\r  6  6\v ("E\r\0  I\r  6  6\v  \bAxq \0j"\0Ar6 \0 j \x006\0 
2200
+ G\rA\xE0\xF2 \x006\0\v  \bA~q6  \0Ar6 \0 j \x006\0\v \0A\xFFM@ \0A\xF8qA\x80\xF3j!@A\xD8\xF2(\0"A \0Avt"\0qE@A\xD8\xF2 \0 r6\0 !\0\f\v (\b"\0 I\r\v  6\b \0 6\f  6\f  \x006\b\vA! \0A\xFF\xFF\xFF\x07M@ \0A& \0A\bvg"kvAq AtrA>s!\v  6 B\x007 AtA\x88\xF5j!\x7F@\x7FA\xDC\xF2(\0"A t"\x07qE@A\xDC\xF2  \x07r6\0  6\0A!A\b\f\v \0A AvkA\0 AG\x1Bt! (\0!@ "(Axq \0F\r Av! At!  Aqj"\x07("\r\0\v \x07Aj I\r \x07 6A! !A\b\v!\0 "\f\v  I\r (\b" I\r  6\f  6\bA!\0A\b!A\0\v!\x07  j 6\0  6\f \0 j \x076\0A\xF8\xF2A\xF8\xF2(\0Ak"\0A\x7F \0\x1B6\0\v\v\xA0\0\v,\x7F@A\xC8\xB2"\0E\r\0 \0Ak-\0\0AqE\r\0 \0A\0A\xC8\xA5\v \0\vW\x7F~@A\xA4\xBA(\0"\xAD \0\xADB\x07|B\xF8\xFF\xFF\xFF\x83|"B\xFF\xFF\xFF\xFFX@ \xA7"\0?\0AtM\r \0\r\vA\x80\xE9A06\0A\x7F\vA\xA4\xBA \x006\0 \v\0A\xD0\xF6$A\xD0\xF6$\v\x07\0#\0#k\v\0#\v\0#\v}\x7FA \0 \0AM\x1B!@@ \xB2"\0\r\0A\xC8\xF6(\0"E\r\0 \0\f\v\v \0E@#\0Ak"\0$\0 \0A\x006\fA\xA0\x9F(\0"\0A\xD0A\0A\xC3\0A\xC4\0\xA6A\xD0\xA3A\xCFj-\0\0A
2201
+ G@ \0\xBB\v\xA0\0\v \0\v\xBE\x7F@@ \0(L"A\0N@ E\rA\x9C\xE9(\0 A\xFF\xFF\xFF\xFFqG\r\v@ \0(PA
2202
+ F\r\0 \0(" \0(F\r\0 \0 Aj6 A
2203
+ :\0\0\f\v \0\x9A\f\v \0 \0(L"A\xFF\xFF\xFF\xFF \x1B6L@@ \0(PA
2204
+ F\r\0 \0(" \0(F\r\0 \0 Aj6 A
2205
+ :\0\0\f\v \0\x9A\v \0(L \0A\x006L\v\v\0 \0\v\r\0 \0( (F\vt\x7F E@ \0( (F\v \0 F@A\v ("-\0\0!@ \0("-\0\0"\0E\r\0 \0 G\r\0@ -\0! -\0"\0E\r Aj! Aj! \0 F\r\0\v\v \0 F\v\xFE\x7F#\0A\xD0\0k"$\0@\x7FA \0( (F\r\0A\0 A\xD4\x9F\xC0"E\r\0 (\0"E\r AjA\0A8\xFC\v\0 A:\0K A\x7F6  \x006  6 A6D  Aj A (\0(\x07\0 (,"\0AF@  ($6\0\v \0AF\v A\xD0\0j$\0\v A\x846\b A\xE76 A\xE16\0#\0Ak"$\0A\x9F)A\vAA\xA0\x9F(\0"\0\x9E  6\f \0A\xB6 A\xC3\0A\xC4\0\xA6 \0\xBB\xA0\0\v\x97\x7F#\0A@j"$\0 \0 \0(\0"A\bk(\0"j!@ Ak(\0"( (F@A\0  \x1B!\0\f\v \0 N@ B\x007 A\x006  6\f  \x006\b  6 B\x007 B\x007$ B\x007, A\x006< B\x81\x80\x80\x80\x80\x80\x80\x8074  Aj  AA\0 (\0(\v\0 (\r\v B\x007 A\x006 A\xA4\x9F6\f  \x006\b  6 B\x007 B\x007$ B\x007, B\x007\x003 A\x006< A:\0;  Aj AA\0 (\0(
2206
+ \0A\0!\0@@ ((\0\v (A\0 ($AF\x1BA\0 ( AF\x1BA\0 (,AF\x1B!\0\f\v (AG@ (,\r ( AG\r ($AG\r\v (!\0\v A@k$\0 \0\vv\x7F \0($"E@ \0 6 \0 6 \0A6$ \0 \0(86\v@@ \0( \0(8G\r\0 \0( G\r\0 \0(AG\r \0 6\v \0A:\x006 \0A6 \0 Aj6$\v\v\0 \0( (\b(F@   \xC1\v\v5\0 \0( (\b(F@   \xC1\v \0(\b"\0    \0(\0(\x07\0\v\xD7\x7F#\0A@j"$\0@@@ (A\xAE\xA2F@ A\x006\0\f\v@ \0  \0-\0\bAq\x7FA E\r A\x84\xA0\xC0"E\r -\0\bAqA\0G\v\xBE!\v @A! (\0"\0E\r  \0(\x006\0\f\v A\xB4\xA0\xC0"E\rA\0! (\0"@  (\0"6\0\v (\b"\x07 \0(\b"A\x7FsqA\x07q\r \x07A\x7Fs qA\xE0\0q\r \0(\f"\x07(" (\f"\0(G\r\vA!\f\v A\xAC\xA2F@ \0A\xE4\xA0\xC0E!\f\vA\0! \x07A\xB4\xA0\xC0"@ AqE\r\x7F !A\0!@@A\0 \0E\r \0A\xB4\xA0\xC0"\0E\r \0(\b (\b"A\x7Fsq\rA (\f"( \0(\f"\0(F\r AqE\r A\xB4\xA0\xC0"\r\0\v A\x98\xA1\xC0"E\r\0  \0\xC5!\v \v!\f\v \x07A\x98\xA1\xC0"@ AqE\r  \0\xC5!\f\v \x07A\xD4\x9F\xC0"E\r\0 \0A\xD4\x9F\xC0"\0E\r\0 A\bjA\0A8\xFC\v\0  A\0G:\0; A\x7F6  6\f  \x006 A64 \0 Aj A \0(\0(\x07\0 ("\0AF@  (A\0 \x1B6\0\v \0AF!\v A@k$\0 \vR\x7F@ E\r\0 A\x98\xA1\xC0"E\r\0 (\b \0(\bA\x7Fsq\r\0 \0(\f( (\f(G\r\0 \0(( ((F!\v \v\x9A\0 \0A:\x005@  \0(G\r\0 \0A:\x004@ \0("E@ \0A6$ \0 6 \0 6 AG\r \0(0AF\r\f\v  F@ \0("AF@ \0 6 !\v \0(0AG\r AF\r\f\v \0 \0($Aj6$\v \0A:\x006\v\v\x8A\0@ \0 (\b \xBE@  (G\r (AF\r  6\v \0 (\0 \xBE@@ ( G@  (G\r\v AG\r A6 \v  6 @ (,AF\r\0 A\0;4 \0(\b"\0   A  \0(\0(\v\0 -\x005AF@ A6, -\x004E\r\f\v A6,\v  6  ((Aj6( ($AG\r (AG\r A:\x006\v \0(\b"\0     \0(\0(
2207
+ \0\v\v\xA6\0@ \0 (\b \xBE@  (G\r (AF\r  6\v \0 (\0 \xBEE\r\0@ ( G@  (G\r\v AG\r A6 \v  6  6  ((Aj6(@ ($AG\r\0 (AG\r\0 A:\x006\v A6,\v\v9\0 \0 (\b \xBE@    \xC6\v \0(\b"\0      \0(\0(\v\0\v\0 \0 (\b \xBE@    \xC6\v\v8\x7F \0A\x9C\xA56\0 \0("Ak" (\0Ak"6\0 A\0H@ A\fk\xB3\v \0\v\r\0 \0\xCB \0\xB3\v\x07\0 \0(\v\0 \0$\0\v\0#\0 \0kApq"\0$\0 \0\v\0#\0\v\xCB\x7F \0E@A\x88\xB9(\0"\0@ \0\xD1!\vA\xA0\xBA(\0"\0@ \0\xD1 r!\vA\x88\xEA(\0"\0@@ \0( \0(G@ \0\xD1 r!\v \0(8"\0\r\0\v\v \v@ \0( \0(F\r\0 \0A\0A\0 \0($\0 \0(\r\0A\x7F\v \0(" \0(\b"G@ \0  k\xACA \0((\f\0\v \0A\x006 \0B\x007 \0B\x007A\0\v=\x7FA\xCD!@ \0A\x99K\r\0@ \0E@A\0!\0\f\v \0At/\x90\xA6"\0E\r\v \0A\xC4\xA8j!\v \v\v\xCD\xAD-\0A\x80\b\v\xB7-[bind] MdnCom_InitiateEcsHandshake: entry\0insufficient memory\0MdnCom_SendUtoQuery\0need dictionary\0[mdn_sec] MdnSec_Init: reusing existing TSec_Ctx\0MdnCom_RawRx\0%02x\0-+ 0X0x\0-0X+0X 0X-0x+0x 0x\0[mdn_sec] on_security_frame: state=%d rxCmd=%u rxLen=%u rxGot=%u\0[mdn_sec] FeedEcsByte: 0x%02x rxState=%d rxGot=%u/%u\0MdnCom_SendUtoCmdExt\0MdnCom_CryptoSelfTest\0[bind] SecTxFn: WARN no tx event handler \xE2\x80\x94 bytes will not reach transport\0unsigned short\0 IV_Encrypt\0unsigned int\0MdnCom_UtoEvent\0MdnZlib_StreamInit\0MdnCom_Init\0invalid literal/lengths set\0invalid code lengths set\0invalid distances set\0 shared secret\0float\0invalid bit length repeat\0Uto_FrameTypeGprsB_t\0MdnZlib_StreamProcess\0too many length or distance symbols\0invalid stored block lengths\0MdnCom_ResetEcs\0vStamp_s\0[mdn_sec] send_esc_security_frame: frameLen=%u wireLen=%u pfTx=%s\0[mdn_sec] MdnSec_Init: pfTx=%s pfHandshakeEvt=%s\0[mdn_sec] emit_handshake_event: result=%d pfHandshakeEvt=%s\0%s:%d: %s\0buffer error\0Unknown error\0stream error\0file error\0data error\0MdnCom_SetCompanionKeypair\0[mdn_sec] SetCompanionKeypair: NULL pointer\0unsigned char\0Uto_AddRxChar\0/emsdk/emscripten/system/lib/libcxxabi/src/private_typeinfo.cpp\0TMdnUto_Stamp\0MdnCom_GetRxUto\0incompatible version\0nan\0MdnCom_GetTxStream\0bool\0non-null\0invalid code -- missing end-of-block\0incorrect header check\0incorrect data check\0MdnCom_RegisterEcsHandshakeCallback\0invalid distance too far back\0length\0MdnZlib_StreamFinish\0MdnCom_SetSecDebug\0unsigned long long\0unsigned long\0std::wstring\0basic_string\0std::string\0std::u16string\0std::u32string\0[bind] SecHandshakeEvtFn: WARN no JS handshake callback registered \xE2\x80\x94 Promise will hang\0[mdn_sec] WARN: no handshake callback registered \xE2\x80\x94 JS Promise will hang\0 AUTH sig\0inf\0invalid window size\0[mdn_sec] state\xE2\x86\x92ENCRYPTED; handshake complete\0MdnCom_GetEcsState\0[mdn_sec] InitiateHandshake: returning OK, awaiting device INIT response\0invalid block type\0u8SysTime\0u32SysTime\0Uto_ProcessFrame\0double\0MdnCom_InitiateEcsHandshake\0bad_alloc was thrown in -fno-exceptions mode\0invalid literal/length code\0invalid distance code\0MdnUto_SetTxMode\0unknown compression method\0Uto_Send\0stream end\0void\0[mdn_sec] AES-256-CTR session cipher initialised\0[mdn_sec] MdnSec_Init: TSec_Ctx allocated + initialised\0[mdn_sec] WARN: pfTx is NULL \xE2\x80\x94 frame dropped\0[mdn_sec] send_esc_security_frame: pfTx returned\0[mdn_sec] MdnSec_Init: Sec_Init failed\0[mdn_sec] InitiateHandshake: SecDH_BuildKeypair failed\0[mdn_sec] SecCipher_Setup failed\0[mdn_sec] SecAuth_Sign failed\0[mdn_sec] MdnSec_Init: calloc failed\0[mdn_sec] SecDH_BuildSharedSecret_curve25519 failed\0MdnZlib_StreamReload\0[mdn_sec] InitiateHandshake: entry state=%d haveKeypair=%d\0MdnZlib_Alloc\0 device DH pub\0InitiateHandshake: DH pub\0SetCompanionKeypair: pub\0Uto_DecodeData\0NAN\0NULL\0INF\0Uto_SendESC\0catching a class without an object?\0[mdn_sec] InitiateHandshake: g_pSecCtx is NULL \xE2\x80\x94 MdnSec_Init not called?\0[mdn_sec] InitiateHandshake: no keypair \xE2\x80\x94 SetCompanionKeypair not called?\0emscripten::memory_view<short>\0emscripten::memory_view<unsigned short>\0emscripten::memory_view<int>\0emscripten::memory_view<unsigned int>\0emscripten::memory_view<float>\0emscripten::memory_view<uint8_t>\0emscripten::memory_view<int8_t>\0emscripten::memory_view<uint16_t>\0emscripten::memory_view<int16_t>\0emscripten::memory_view<uint64_t>\0emscripten::memory_view<int64_t>\0emscripten::memory_view<uint32_t>\0emscripten::memory_view<int32_t>\0emscripten::memory_view<char>\0emscripten::memory_view<unsigned char>\0emscripten::memory_view<signed char>\0emscripten::memory_view<long>\0emscripten::memory_view<unsigned long>\0emscripten::memory_view<double>\0vData_pu8\0vRes_u8\0vSeq_u8\0vCmd_u8\0HEAPU8\0vDLen_u16\0vTag_u16\x001.2.5\0vDevID_u32\0...\0[mdn_sec] sending AUTH frame (frameLen=%u)\0[mdn_sec] InitiateHandshake: state\xE2\x86\x92INIT_SENT, sending INIT frameLen=%u (header=%u + payload=%u)\0[mdn_sec] cipher mismatch: device sent %u (expected %u)\0[mdn_sec] protocol error: payload len %u (expected %u)\0(null)\0[bind] SecTxFn: pfUtoRawTxEvt returned (JS read should have happened)\0SetCompanionKeypair: priv (seed)\0 wire bytes (head)\0[mdn_sec] protocol error: SEC frame in state %d (expected INIT_SENT=1)\0[mdn_sec] protocol error: unexpected cmd %u (expected INIT=0)\0libc++abi: \0[mdn_sec] %s (%u bytes): \0[bind] SecTxFn: WARN truncating %u \xE2\x86\x92 %u bytes
2208
+ \0[bind] SecTxFn: len=%u pfUtoRawTxEvt=%s
2209
+ \0[bind] SecHandshakeEvtFn: result=%d pfHandshakeEvt=%s
2210
+ \0[bind] MdnCom_InitiateEcsHandshake: returning %d
2211
+ \0[bind] ESCHandler: CAP byte 0x%02x \xE2\x86\x92 reply MDN_UTO_ESC_CAP02
2212
+ \0[bind] RawRx: %u bytes, encrypted=%d (first byte=0x%02x)
2213
+ \0[bind] RegisterEcsHandshakeCallback: pfHandshake=%zu (%s)
2214
+ \0[bind] ESCHandler: byte 0x%02x ignored (state=%d, not in SEC capture)
2215
+ \0[bind] ESCHandler: byte 0x%02x \xE2\x86\x92 mdn_sec (state=%d, want more=%d)
2216
+ \0# %s - decompressed %lu to %lu\r
2217
+ \0# %s - compressed %lu to %lu\r
2218
+ \0%p %lu Bytes\r
2219
+ \0# %s - %p %d Bytes\r
2220
+ \0# %s - decompressing %d Bytes\r
2221
+ \0# %s - Header CRC Error\r
2222
+ \0# %s - Data CRC Error\r
2223
+ \0ERROR %d MdnUto_Open\r
2224
+ \0# %s - %u failed with %ld\r
2225
+ \0# %s - MdnZlib_StreamProcess failed with %ld\r
2226
+ \0# %s - MdnZlib_StreamFinish failed with %ld\r
2227
+ \0# %s - deflate failed with %ld\r
2228
+ \0# %s - CMD = %02X, TAG = %d, STAMP=%d(%x)(%d(1/256s) DLEN=%d\r
2229
+ \0# %s - %d - %d\r
2230
+ \0# %s - UTO vDevID_u32 = %08X\r
2231
+ \0# %s - UTO vTag_u16 = %04X\r
2232
+ \0# %s - UTO vStamp_s = %08X%02X\r
2233
+ \0# %s - UTO vRes_u8 = %02X\r
2234
+ \0# %s - UTO vSeq_u8 = %02X\r
2235
+ \0# %s - UTO vCmd_u8 = %02X\r
2236
+ \0# %s - UTO vDLen_u16 = %02X\r
2237
+ \0# %s - UTO ERR: RXS_INV\r
2238
+ \0# %s - MDN_UTO_EVENT_STREAMPROCESS_ERR\r
2239
+ \0# %s - MDN_UTO_EVENT_STREAMFINISH_ERR\r
2240
+ \0# %s - OK\r
2241
+ \0# %s - tag = %d, stamp=%d(%x)(%d(1/256s)\r
2242
+ \0MdnUto_Open: %d (%d %d)\r
2243
+ \0# %s - MDN_UTO_EVENT_READY: Got UTO -> start processing!\r
2244
+ \0# %s - unknown Frame Type!\r
2245
+ \0# %s - MDN_UTO_EVENT_READY: Error getting UTO!\r
2246
+ \0# %s - No connection available !!\r
2247
+ \0A\xC25\v\x92\r\xC1\xC0\x81\xC1@\xC3\xC0\x80A\xC2\xC6\xC0\x80\x07A\xC7\0\xC1\xC5\x81\xC4@\xCC\xC0\f\x80\rA\xCD\0\xC1\xCF\x81\xCE@\0
2248
+ \xC1\xCA\x81\xCB@\v\xC9\xC0 \x80\bA\xC8\xD8\xC0\x80A\xD9\0\x1B\xC1\xDB\x81\xDA@\0\xC1\xDE\x81\xDF@\xDD\xC0\x80A\xDC\0\xC1\xD4\x81\xD5@\xD7\xC0\x80A\xD6\xD2\xC0\x80A\xD3\0\xC1\xD1\x81\xD0@\xF0\xC00\x801A\xF1\x003\xC1\xF3\x81\xF2@2\x006\xC1\xF6\x81\xF7@7\xF5\xC05\x804A\xF4\0<\xC1\xFC\x81\xFD@=\xFF\xC0?\x80>A\xFE\xFA\xC0:\x80;A\xFB\x009\xC1\xF9\x81\xF8@8\0(\xC1\xE8\x81\xE9@)\xEB\xC0+\x80*A\xEA\xEE\xC0.\x80/A\xEF\0-\xC1\xED\x81\xEC@,\xE4\xC0$\x80%A\xE5\0'\xC1\xE7\x81\xE6@&\0"\xC1\xE2\x81\xE3@#\xE1\xC0!\x80 A\xE0\xA0\xC0\`\x80aA\xA1\0c\xC1\xA3\x81\xA2@b\0f\xC1\xA6\x81\xA7@g\xA5\xC0e\x80dA\xA4\0l\xC1\xAC\x81\xAD@m\xAF\xC0o\x80nA\xAE\xAA\xC0j\x80kA\xAB\0i\xC1\xA9\x81\xA8@h\0x\xC1\xB8\x81\xB9@y\xBB\xC0{\x80zA\xBA\xBE\xC0~\x80\x7FA\xBF\0}\xC1\xBD\x81\xBC@|\xB4\xC0t\x80uA\xB5\0w\xC1\xB7\x81\xB6@v\0r\xC1\xB2\x81\xB3@s\xB1\xC0q\x80pA\xB0\0P\xC1\x90\x81\x91@Q\x93\xC0S\x80RA\x92\x96\xC0V\x80WA\x97\0U\xC1\x95\x81\x94@T\x9C\xC0\\\x80]A\x9D\0_\xC1\x9F\x81\x9E@^\0Z\xC1\x9A\x81\x9B@[\x99\xC0Y\x80XA\x98\x88\xC0H\x80IA\x89\0K\xC1\x8B\x81\x8A@J\0N\xC1\x8E\x81\x8F@O\x8D\xC0M\x80LA\x8C\0D\xC1\x84\x81\x85@E\x87\xC0G\x80FA\x86\x82\xC0B\x80CA\x83\0A\xC1\x81\x81\x80@@\xE4Q\0\0\xC8\0\0NSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEE\0\0\xE4Q\0\0\0\0NSt3__212basic_stringIDsNS_11char_traitsIDsEENS_9allocatorIDsEEEE\0\0\0\xE4Q\0\0\\\0\0NSt3__212basic_stringIDiNS_11char_traitsIDiEENS_9allocatorIDiEEEE\0\0\0\xE4Q\0\0\xA8\0\0N10emscripten11memory_viewIcEE\0\0\xE4Q\0\0\xD0\0\0N10emscripten11memory_viewIaEE\0\0\xE4Q\0\0\xF8\0\0N10emscripten11memory_viewIsEE\0\0\xE4Q\0\0 \0\0N10emscripten11memory_viewItEE\0\0\xE4Q\0\0H\0\0N10emscripten11memory_viewIiEE\0\0\xE4Q\0\0p\0\0N10emscripten11memory_viewIjEE\0\0\xE4Q\0\0\x98\0\0N10emscripten11memory_viewIlEE\0\0\xE4Q\0\0\xC0\0\0N10emscripten11memory_viewImEE\0\0\xE4Q\0\0\xE8\0\0N10emscripten11memory_viewIxEE\0\0\xE4Q\0\0\0\0N10emscripten11memory_viewIyEE\0\0\xE4Q\0\x008\0\0N10emscripten11memory_viewIfEE\0\0\xE4Q\0\0\`\0\0N10emscripten11memory_viewIdEE\0\0wasm-uto-master crypto self-test\0\0\0\0\xE4Q\0\0\xAC\0\x0013TMdnUto_Stamp\0p\0vp\0ipp\0vppi\0ipp\0vppi\0\0\xE4Q\0\0\xDC\0\x0020Uto_FrameTypeGprsB_t\0\0hR\0\0 \0\0\0\0\0\0\xD4\0\0P20Uto_FrameTypeGprsB_t\0hR\0\0, \0\0\0\0\0\xD4\0\0PK20Uto_FrameTypeGprsB_t\0pp\0v\0vp\0\0\0\0\xF4\0\0pp\0ipp\0vppi\0ipp\0vppi\0ppp\0vppp\0ipp\0vppi\0\0\x80 \0\0\xE4Q\0\0\x88 \0\0N10emscripten3valE\0ppp\0vppp\0\x94Q\0\0\xA0Q\0\0\xA0Q\0\0ipii\0\0\0\0\x94Q\0\0ip\0\0\x94Q\0\0\xCC \0\0\xCC \0\0\xE4Q\0\0\xD4 \0\0NSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE\0ippp\0$Q\0\0vp\0\0$Q\0\0\xA0Q\0\0vpi\0$Q\0\0\x94Q\0\0vpi\0$Q\0\0\xCC \0\0vpp\0\x94Q\0\0pQ\0\0\xA4\0\0ipip\0A\xE0\xC2\0\vq\x94Q\0\0LQ\0\0pQ\0\0\xA4\0\0\x80 \0\0ipiipp\0\0\xD4\0\0pp\0pp\0\0\0\x88Q\0\0\x80 \0\0$Q\0\0\x80 \0\0\x88Q\0\0\x80 \0\0\xA4!\0\0\xE4Q\0\0\xAC!\0\0N10emscripten11memory_viewIhEE\0\0\0\0\0\0 \0A\xF0\xC3\0\v\xE7\x07\x85;\x8C\xBD\xF1$\xFF\xF8%\xC3\`\xDC7\0\xB7L>\xFF\xC3B=\x002L\xA4\xE1\xA4L\xFFL=\xA3\xFFu>\0Q\x91@\xFFvA\0\xA2s\xD6\xFF\x8A.\0|\xE6\xF4\xFF
2249
+ \x8A\x8F\x004\xC2\0\xB8\xF4L\0\x81\x8F)\xBE\xF4\xFF{\xAAz\xFFb\x81D\0y\xD5\x93\0Ve\xFF\xA1g\x9B\0\x8CYC\xFF\xEF\xE5\xBEC\v\xB5\0\xC6\xF0\x89\xFE\xEEE\xBC\xFFC\x97\xEE\0*l\xFF\xE5Uq2D\x87\xFFj \x002g\xFFP\xA8#\x98\xFF\xA8\xB98Y\xE8\xFFe\xD2\xFC\0)\xFAG\0\xCC\xAAO\xFF.\xEF\xFFPM\xEF\0\xBD\xD6K\xFF\x8D\xF9\0&PL\xFF\xBEUu\0V\xE4\xAA\0\x9C\xD8\xD0\xC3\xCF\xA4\xFF\x96BL\xFF\xAF\xE1\xFF\x8DPbL\xDB\xF2\0\xC6\xA2r\0.\xDA\x98\0\x9B+\xF1\xFE\x9B\xA0h\xFF3\xBB\xA5\0\xAF\0BT\xA0\xF7:\0#A5\xFEE\xEC\xBF\0-\x86\xF5\xA3{\xDD\0 n\xFF4\xA5\0\xBA\xD6G\0\xE9\xB0\`\0\xF2\xEF69Y\x8A\0S\0T\xFF\x88\xA0d\0\\\x8Ex\xFEh|\xBE\0\xB5\xB1>\xFF\xFA)U\0\x98\x82*\`\xFC\xF6\0\x97\x97?\xFE\xEF\x85>\0 8\x9C\0-\xA7\xBD\xFF\x8E\x85\xB3\x83V\xD3\0\xBB\xB3\x96\xFE\xFA\xAA\xFF\xD2\xA3N\0%4\x97\0cM\0\xEE\x9C\xD5\xFF\xD5\xC0\xD1I.T\0A)6\xCEO\0\xC9\x83\x92\xFE\xAAo\xFF\xB1!2\xFE\xAB&\xCB\xFFN\xF7t\0\xD1\xDD\x99\0\x85\x80\xB2:,\0\xC9';\xBD\xFC\x001\xE5\xD2u\xBBu\0\xB5\xB3\xB8\0r\xDB\x000^\x93\0\xF5)8\0}\r\xCC\xFE\xF4\xADw\0,\xDD \xFET\xEA\0\xF9\xA0\xC6\xEC~\xEA\xFF/c\xA8\xFE\xAA\xE2\x99\xFFf\xB3\xD8\0\xE2\x8Dz\xFFzB\x99\xFE\xB6\xF5\x86\0\xE3\xE4\xD69\xEB\xFF\xD8\xAD8\xFF\xB5\xE7\xD2\0w\x80\x9D\xFF\x81_\x88\xFFn~3\0\xA9\xB7\xFF\x07\x82b\xFEE\xB0^\xFFt\xE3\xD9\xF2\x91\xFF\xCA\xADi'\xFF.\xAFE\0\xE4/:\xFF\xD7\xE0E\xFE\xCF8E\xFF\xFE\x8B\xFF\xCF\xD4\xFF\xCA~\xFF_\xD5\`\xFF \xB0!\0\xC8\xCF\xFF\xF1*\x80\xFE#!\xC0\xFF\xF8\xE5\xC4\x81x\0\xFBg\x97\xFF\x074p\xFF\x8C8B\xFF(\xE2\xF5\xFF\xD9F%\xFE\xAC\xD6 \xFFHC\x86\x92\xC0\xD6\xFF,&p\0D\xB8K\xFF\xCEZ\xFB\0\x95\xEB\x8D\0\xB5\xAA:\0t\xF4\xEF\0\\\x9D\0f\xADb\0\xE9\x89\`\x7F1\xCB\0\x9B\x94\0\x94 \xFF\xD3z\f\0"\x86\xFF\xDB\xCC\x88\0\x86\b)\xFF\xE0S+\xFEU\xF7\0m\x7F\0\xFE\xA9\x880\0\xEEw\xDB\xFF\xE7\xAD\xD5\0\xCE\xFE\xFE\b\xBA\x07\xFF~ \x07o*H\0o4\xEC\xFE\`?\x8D\0\x93\xBF\x7F\xFE\xCDN\xC0\xFFj\xED\xBB\xDBL\0\xAF\xF3\xBB\xFEiY\xAD\0UY\xA2\xF3\x94\0v\xD1\xFE!\x9E \0\x8B\xA3.\xFF]F(\0l*\x8E\xFEo\xFC\x8E\xFF\x9B\xDF\x90\x003\xE5\xA7\xFFI\xFC\x9B\xFF^t\f\xFF\x98\xA0\xDA\xFF\x9C\xEE%\xFF\xB3\xEA\xCF\xFF\xC5\0\xB3\xFF\x9A\xA4\x8D\0\xE1\xC4h\0
2250
+ #\xFE\xD1\xD4\xF2\xFFa\xFD\xDE\xFE\xB8e\xE5\0\xDE\x7F\xA4\x88\x87\xFF\xCF\x8C\xFE\x92a\xF3\0\x81\xC0\xFE\xC9T!\xFFo
2251
+ N\xFF\x93Q\xB2\xFF\0\xA1\xEE\xD7\xFF\x8D!\x005\xD7\xFF)\xB5\xD0\xFF\xE7\x8B\x9D\0\xB3\xCB\xDD\xFF\xFF\xB9q\0\xBD\xE2\xAC\xFFqB\xD6\xFF\xCA>-\xFFf@\b\xFFN\xAE\xFE\x85uD\xFF\xB0\xA0\xFE\xD3\xC9\x86\xFF\x9E\x8F\0\x7Fi5\0\`\f\xBD\0\xA7\xD7\xFB\xFF\x9FL\x80\xFEje\xE1\xFF\xFC\0\x92\f\xAE\0A\xE0\xCB\0\v'Y\xF1\xB2\xFE
2252
+ \xE5\xA6\xFF{\xDD*\xFE\xD4\0R\x80\x000\xD1\xF3\0wy@\xFF2\xE3\x9C\xFF\0n\xC5g\x1B\x90\0A\x90\xCC\0\v!\x1B,
2253
+ \xA3\xE5\x9C\xED\xA7)c\b]!!\xEB\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0A\xC0\xCC\0\v@\xB6xY\xFF\x85r\xD3\0\xBDn\xFF
2254
+ j\0)\xC0\0\x98\xE8y\xFF\xBC<\xA0\xFF\x99q\xCE\xFF\0\xB7\xE2\xFE\xB4\rH\xFF\0\0\0\0\0\0\0\0\xF7\xE9z.\x8D1 ,k\xCE{Q\xEF|o
2255
+ \0A\x8F\xCD\0\v\xDD\b\x8EJ\xCCF\xBAvk\xB8\xE7\xBE9\xFA\xADwc\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x07\xA7\xFC\x97\xFFA\x89\xDC\xFFK\xC5\xA7\xFE\xCC\xE5\0\xE5\xE9\xC4\x7F\0|1\xE05\0[\xF3\xE4\xFE\x83\xA0\x8A\0C\x9D\x000'\0Up\xE2\0\xAA\xFF\x92\0\xCE#\x81\0[\x83\x80\xFFw\xB6%\xFF/\xD4\xDF\0\xB6S\x91\0+\0D\x9A\xA5\xFE\xE8\xCF\xFF\x84\xF3,\xFF\x8CS\xD3\xFF?\xE1\xFF\x98 *\xFFnv\xC5\0\xF1\xB6\0\x8B\xA1\xB9\0;i\xDB\xFFj\x96D\xFF\xDA\x94\xFF\x9D_\x97\0\xDA=\xD1\xFF\xF5w\xFE\xAE\xAC,\0t\xAEUy^\xFF\xE7\x80)\0\xC5F\xFA\0\x9F\x92\x91\xFFP\xD4\xB7\xFF\xFC(\0\x81o\x9C\xFF\xEE\x8E\xFE\x8D\xC5\f\xFF\xC7\xCE\xA0\xFF'\xE3\xD6\0\xB5P\x99\0]\x96\xBA\0\x9C\xAC.\xFE\xBFA;\xFFS\xB1U\xFF\xCD6\0\x80|P\xFF<\xA4\xFB\0\xF2\xA2_\xFE\xFE\xA6\xFFY\x91\xFF \xDC\f\xFF\xEET\r\x99\xE2\b\0\xDF\xF2\xFF\x9F"\xFD\xFF<\xC8G\xFF\xFC\\\xFF\x83r\xC9\xFE\xD0d\xED\0s\xE0%\xFEKj\xB3\xFF\x90\xA0\xFF\x86\x84\xDD\xFF9\xAD\xB8\xFF?\xD3\xB9\xFFh\x9A\xC1\xFF\xE8\xC0\xBD\0!\xBB"\xFE\x9B-\0/v_\0V\xEC\x9F\0NX,\xFF<\xEB\0f\xB1\xFE\x9B*\xD6\xFF\xF8F\xDB\xFFTe\x85\xFF~<p\0\xFC\xF0\0j@\x9B\xFEkFr\0\bi\0d\x9B
2256
+ \0\xEB\xF4a\xAA(\x93\0\xAA\xE3\xFE\x88B\xAD\x002\xC5\xCC\xFEYza\0_\xE8\x81\xFFrl~\xFF\xB2B\x8A\xFF\xA9e0\xFF\xE2\xC6/\xFF&.\xE1\0A\x83\xD7\xFE\xEC\x9D\x1B\xFF\xEC\x9E\0*>W\xFFeK\xB1\xFE\xAB]\xB8\0\x9FIT\xFF\xF6\xB6\f\xFF@M\x99\0\xE5\x9ER\0C
2257
+ {\xA7e{\0\xAA\xD8\x99\xFF\xB3\x95\x96\0\x84\xBD\xF1\0\xEDm\b\xFF\xE7\x93\0\x8B8\xB4\0\x9E\xAB\x91\xFE\x8A\xC9q\xFF\xE9\xB4;\0A\x98i\xFF3\0\x9D\xD2z\xFFn\xE7w\xFF\xA6\xE4(\xFF\xE3\x9Bn\0\xD4\xC5\xDC\0\\\xF5\x80e\xCCy\xFFc\xE8\xDA\0\x80}\0\xCBza\0\xCDl\x92\xFFz\xB2b\0q\xEEz\xFF\x1B\xB6\xEC\0\xF7\x94\xEB\0\xF2\bp\0\xB2e\xFF.\xBDO"\x91\xFF\xFF[!\0\xA0\x88J\0G3\xA5\0%\xE2l\0\xB2B'\xFF\x80\xD5P\0R\x8C\xA6\xFF:_\xA4\xFF[\xB5\xACE\xA3@\0JF'\xFF\xEC\xE2\0e\xFF\xFE\xDB\x8C:\0\xE8\xAB\xFF2\xF06\xFF \x85<\xFE I\xBC\0>\xDA\xE9\0\xD6\xAF\f\xFF\x7F\x85y\xFF\\\xA9\0\xCE\xD4\xFE\xE5\`\xC6\xFF\xA0\xF4\xB2\0T\x88\x92\0\x83;\xB9\xFFY\xAF\xFF\xD9\x8E\x88\xFFT\x94)\0_\xA0\xDC\x91B\0\xFF\xF8\x91\xFF\x9C\xD3\xE1\0P\xE5G\xFE\xBC\xDCI\0\xB6)H\xFFpu\xFF\xA8\xF1\xE9\xFF\xD1\xD3\0\xBAS'\xFE\x83\xDF\xFF,\xB1\0\x97J\xC3\0c\xC1\x9F\xEE\x83b\xFF\xA2\xB5\xE1\0\`u"\xFF6\xE7P\0X\x8Bz\xFF:\xCC\xFF{\xAE\xC0\xFF#c\xFE\x91\xA4\04\x86\`R\xA0\xFF3\xBB\xFF8\xB8\xF4\0\xB4}\0\xC6}\0\0rbf\xCDC\x92\0Ky\xE7[\xEA\xFF\xD9\xCE.\fN\0\xD5\xB3\xF3\xFEs\xE8\xA7\0S\xA7\xFE}\x8E\xD6\xFF(]\0a\xE4\xE5\xFF\x84i\xBF\xFE\x8D\xC9\xDA\0q}z\0~\xFC|\x005\xA3\xE5\xFE\x87\xC5C\xFF\xF6\x80\xBF\x9B\xA5\xFF\x81\xB0\xEB\0$1r\0\x07\x84/\xFE\xBA\x98\0SR(\xFF\xB5M\xC0\xFF\xB9Y\x9C\0
2258
+ \xFF\x9F\xFC\xFF\xF9-*\xFF\xEE\x89dS\xE6\x008c\x86\xFFq\xEFt\0\x8Fd\xF8c\`\xBC\xFF\xC5 \xF8\xFF\xD5\x88e\0s\x84\0\xA0a\xA0\xFFK\xB1\xFF\x9D\xBEj\0>\xA4\xAD\xFF\xF5i\x95\xFF\xEE?=\x007Oj\0p;I\xFF\xC2l<\0\xC5z\0>HN\0\xC4\xDF\xFF\xAE\xE3\xFF\xC3i\xFEh4 \xFF\x8DI\xF8\0\xECks\xFF\x9A\fk^)\v\0K2v\xFE\xE4\xE2\xC9\xFFxDj\0\x9A@\xB7\xFFQ}\xA7\0\xC5\\\x99\0\x8F\xA6&\0I\x90\xBE\xFF\xC8\xA6\x8A\xFE\xB3\xFBB\xFF\xBD\xC42\xFF\xC8\xE5\xDD\0\rz\xC4\0\x9F\xFF\xD3\0t\xEA\xE5\0h%\x83\0L2;\xA3N\xFF\xCFL0\0\x86\xCE7\xFF\0>\xC9\0\xF0\xE7O\xFF3\xF2[\xFFQE2\xFFJ}\xC3/\x87!\0Nu\xEF\xFF\x8D\x89\xB4\0\xB5 \\\0\x84\x94\xD6\0\f\v\xE1\0&}\x83\xFF\xA0\xCF\xC3\xFET-\xB3\0\xA6\xDE\xF0\xD2\xC8\0lI\0\vw\x9D\xFF\x7F\xC8\xE9\0wP\0\x94\xDB\x84\xAE\xE6\0\xE4z\xEA\xFEY\xB4\x93\xFF\xDB\xE4\x99\xFF\b&!\xFF\xA5\x97\0\xC9\0!\0 \xA2\xFFp\xE3\xE5\xFF\x94JA\0}Y\xD8\xFF\x80\xA3\xFE\f\x9E\x92\xFF\xA0\xDB\x8C\xFE<\xB3\0H\xC0\xA5\xFE\xFCH&\xFF\xAD[\0\x9D-\x8F\0-\xF27\xF0SY\x007\xAFM\xEA\xEA\xFFr\xA3Z\xFF:Q\xD1\0V^~\xFF*\xF9\xF9\0T\xB4\x91\0\xFD#\xB4\xFF\xDDu\xBB\xFF=u\xC4\xFFpU^\0!1<\xFF\xF1O\x96\x9F\x9E\0\xA1Y\xFF\xB4\xBBu\0\x86\x85\0\xE2as\xFF\xF8\xB5 \xFF\xEA;\xBA\xC2\x81\xA9\xFF,\x82@\0\xE4\xB1\x009]5\xFF(!\x86\xFF\x90\xA9\x93\xFF4\xBC\x85\0\xAA\xCA_\xFE\x8F@/\0S\xDB\xC4\xCD\x83t\xFF\x95\x9C;\0\xDA\xE5\xAB\0\xCD\xDB\xB5\0\xB8Z\xEF\0u\v\xF1\xFEl\xD6T\xFF\xD9\xA2[\xFE\xAD\rJ\0\xC5oa\xFE?\xDFg\0\x8D\xDBh\0\xDF\x95\xEF\xFF\x8EtE\xFECb\xD5\0|Nb\xFE\x9E\x98\xD6\xFF_\xE2\xAC\xE5\x925\xFFv\xEB]\0\x92z\xE6\0'\xFF5\0DY\x8D\xFFv2\xD7\0yj\xAB\0+\xF0\xFEj\x99\x8D\0\b=\xD9\xF2%B\0\xA0\x1B\xE4\xFFg\rF\0\x89\xD5\0\0 \xC3\0\xCEj\0'\x99\0\xFFX\xD3\xFD(\xC0\xD4\0\x8E{{\0z\xFFw\xA2U\xFF\x92\xF0\0\xD0\xA6Wb\xD5\xFF\x81g\xDEH\xA5\xB6\xFF<\x89}\xFEOv<\0~^\xBF\0\x9D\x92p\xFFc\x84]\xFE\x92\x88y\0\x93b\x94\xFE\xA7\x8DT\0K\\w\xFE @\x97\xFF\xE8k\xA3\`.\0&lt\xFF\xA0\xE6[\0+\x94]\xFE\xB9\x97\xA1\0\xDB2\x82\xDA\xD1\xE7\xFF0\xCA\xA1\xFEt
2259
+ M\0I&\xDB\x94\xFD\xFFQ\xCE\xD5\xFEzq\xF6\xFF.\xF5\xFEK\f\xFFZ\xE0\xFE\xCC\xDC9\xFFf8l\xFF\x9A\xE0\04\xD1\x8B\xC3u\0s\xC0Z\xFF!\xF3\x92\0u2\xCEXM_\xFF.\xD2W\xFE\xA7;-\xFF\xFB\xECX\0S\x9F\xF5\0\xB1#\x8A\xFE\x9B\x8C\xB8\0\xD4 q\0/\xAB\xAE\0\xCF\xAC=\xA0\xE4\xFF\xEB\x81)\xFF\x90\x84B\0\xEF\xA8\x91\xBC\xBE#\0\xCF\xB2\xFE29\xE7\xFF4\x7F\xA3\xFF\xD2& \0U\xB1I\xFE\xB0\xE2\x89\0\xD1\xA5\xD4\xFE+\xCB8\xFFP\xDB:\xFEVG\xE2\0\x93\xDD\xB9\xFF9\xFB\xD8\0\xC7\xE25\xFE}-\0\x94\x8A\xB8\0,\r/\xFF;W\xA5\xFF\x91\x89k\0G$\xCF\xFF\xD4\xED\xDB\0,H\xFF\xCB|\xFFy v\xFF\xB8\xC2\x91\xFF\xB0D\x8D\0\xC4Y\0\x90\xD4\xCFfB\xA9\xFF"\xAE(\xD7\x98/\x8AB\xCDe\xEF#\x91D7q/;M\xEC\xCF\xFB\xC0\xB5\xBC\xDB\x89\x81\xA5\xDB\xB5\xE98\xB5H\xF3[\xC2V9\xD0\xB6\xF1\xF1Y\x9BO\xAF\xA4\x82?\x92\x81m\xDA\xD5^\xABB\xA3\x98\xAA\x07\xD8\xBEopE[\x83\x8C\xB2\xE4N\xBE\x851$\xE2\xB4\xFF\xD5\xC3}\fUo\x89{\xF2t]\xBEr\xB1\x96;\xFE\xB1\xDE\x805\xC7%\xA7\xDC\x9B\x94&i\xCFt\xF1\x9B\xC1\xD2J\xF1\x9E\xC1i\x9B\xE4\xE3%O8\x86G\xBE\xEF\xB5\xD5\x8C\x8B\xC6\x9D\xC1e\x9C\xACw\xCC\xA1\f$u+Yo,\xE9-\x83\xE4\xA6n\xAA\x84tJ\xD4\xFBA\xBD\xDC\xA9\xB0\\\xB5S\x83\xDA\x88\xF9v\xAB\xDFf\xEERQ>\x982\xB4-m\xC61\xA8?!\xFB\x98\xC8'\xB0\xE4\xEF\xBE\xC7\x7FY\xBF\xC2\x8F\xA8=\xF3\v\xE0\xC6%\xA7
2260
+ \x93G\x91\xA7\xD5o\x82\xE0Qc\xCApn
2261
+ g))\xFC/\xD2F\x85
2262
+ \xB7'&\xC9&\\8!\x1B.\xED*\xC4Z\xFCm,M\xDF\xB3\x95\x9D\r8S\xDEc\xAF\x8BTs
2263
+ e\xA8\xB2w<\xBB
2264
+ jv\xE6\xAE\xEDG.\xC9\xC2\x81;5\x82\x85,r\x92d\xF1L\xA1\xE8\xBF\xA20B\xBCKf\xA8\x91\x97\xF8\xD0p\x8BK\xC20\xBET\xA3Ql\xC7R\xEF\xD6\xE8\x92\xD1\xA9eU$\x99\xD6* qW\x855\xF4\xB8\xD1\xBB2p\xA0j\xC8\xD0\xD2\xB8\xC1\xA4S\xABAQ\bl7\x99\xEB\x8E\xDFLwH'\xA8H\x9B\xE1\xB5\xBC\xB04cZ\xC9\xC5\xB3\f9\xCB\x8AA\xE3J\xAA\xD8Ns\xE3cwO\xCA\x9C[\xA3\xB8\xB2\xD6\xF3o.h\xFC\xB2\xEF]\xEE\x82\x8Ft\`/Coc\xA5xr\xAB\xF0\xA1x\xC8\x84\xEC9d\b\xC7\x8C(c#\xFA\xFF\xBE\x90\xE9\xBD\x82\xDE\xEBlP\xA4y\xC6\xB2\xF7\xA3\xF9\xBE+Sr\xE3\xF2xq\xC6\x9Ca&\xEA\xCE>'\xCA\x07\xC2\xC0!\xC7\xB8\x86\xD1\xEB\xE0\xCD\xD6}\xDA\xEAx\xD1n\xEE\x7FO}\xF5\xBAor\xAAg\xF0\xA6\x98\xC8\xA2\xC5}c
2265
+ \xAE\r\xF9\xBE\x98?\x1BG5\vq\x1B\x84}#\xF5w\xDB(\x93$\xC7@{\xAB\xCA2\xBC\xBE\xC9
2266
+ \xBE\x9E<L\r\x9C\xC4gC\xB6B>\xCB\xBE\xD4\xC5L*~e\xFC\x9C)\x7FY\xEC\xFA\xD6:\xABo\xCB_XGJ\x8CDlc|w{\xF2ko\xC50g+\xFE\xD7\xABv\xCA\x82\xC9}\xFAYG\xF0\xAD\xD4\xA2\xAF\x9C\xA4r\xC0\xB7\xFD\x93&6?\xF7\xCC4\xA5\xE5\xF1q\xD81\xC7#\xC3\x96\x9A\x07\x80\xE2\xEB'\xB2u \x83,\x1BnZ\xA0R;\xD6\xB3)\xE3/\x84S\xD1\0\xED \xFC\xB1[j\xCB\xBE9JLX\xCF\xD0\xEF\xAA\xFBCM3\x85E\xF9\x7FP<\x9F\xA8Q\xA3@\x8F\x92\x9D8\xF5\xBC\xB6\xDA!\xFF\xF3\xD2\xCD\f\xEC_\x97D\xC4\xA7~=d]s\`\x81O\xDC"*\x90\x88F\xEE\xB8\xDE^\v\xDB\xE02:
2267
+ I$\\\xC2\xD3\xACb\x91\x95\xE4y\xE7\xC87m\x8D\xD5N\xA9lV\xF4\xEAez\xAE\b\xBAx%.\xA6\xB4\xC6\xE8\xDDtK\xBD\x8B\x8Ap>\xB5fH\xF6a5W\xB9\x86\xC1\x9E\xE1\xF8\x98i\xD9\x8E\x94\x9B\x87\xE9\xCEU(\xDF\x8C\xA1\x89\r\xBF\xE6BhA\x99-\xB0T\xBB\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0 \0\0\0@\0\0\0\x80\0\0\0\x1B\0\0\x006\0\0\0l\0\0\0\xD8\0\0\0\xAB\0\0\0M\0\0\0\x9A\0A\xF6\xE3\0\v\xEF \v\r\x1B\b\f$,48
2268
+ -'96\f
2269
+ 6:.$ ?1#*HXhp\x1BASe~ZNrlSE\x7Fblt\\He\x7FQF~bFTwiKZ 0\x90\xB0\xD0\xE0"3\x99\xBB\xDD\xEE$6\x82\xA6\xCA\xFC&5\x8B\xAD\xC7\xF2(<\xB4\x9C\xE4\xD8*?\xBD\x97\xE9\xD6,:\xA6\x8A\xFE\xC4.9\xAF\x81\xF3\xCA0(\xD8\xE8\xB8\x902+\xD1\xE3\xB5\x9E4.\xCA\xFE\xA2\x8C6-\xC3\xF5\xAF\x828$\xFC\xC4\x8C\xA8:'\xF5\xCF\x81\xA6<"\xEE\xD2\x96\xB4>!\xE7\xD9\x9B\xBA@\`;{\xBB\xDBBc2p\xB6\xD5Df)m\xA1\xC7Fe f\xAC\xC9HlW\x8F\xE3Jo\\\x82\xEDLj\rA\x95\xFFNiJ\x98\xF1Pxs#\xD3\xABR{z(\xDE\xA5T~a5\xC9\xB7V}h>\xC4\xB9XtW\xE7\x93Zw^\xEA\x9D\\rE\xFD\x8F^qL\xF0\x81\`P\xAB\xCBk;bS\xA2\xC0f5dV\xB9\xDDq'fU\xB0\xD6|)h\\\x8F\xE7_j_\x86\xECR\rlZ\x9D\xF1EnY\x94\xFAHpH\xE3\x93KrK\xEA\x98EtN\xF1\x85WvM\xF8\x8EYxD\xC7\xBF7szG\xCE\xB4:}|B\xD5\xA9-o~A\xDC\xA2 a\x80\xC0v\xF6m\xAD\x82\xC3\x7F\xFD\`\xA3\x84\xC6d\xE0w\xB1\x86\xC5m\xEBz\xBF\x88\xCCR\xDAY\x95\x8A\xCF[\xD1T\x9B\x8C\xCA@\xCCC\x89\x8E\xC9I\xC7N\x87\x90\xD8>\xAE\xDD\x92\xDB7\xA5\b\xD3\x94\xDE,\xB8\xC1\x96\xDD%\xB3\xCF\x98\xD4\x821\xE5\x9A\xD7\x89<\xEB\x9C\xD2\b\x94+\xF9\x9E\xD1\x9F&\xF7\xA0\xF0\xE6F\xBDM\xA2\xF3\xEFM\xB0C\xA4\xF6\xF4P\xA7Q\xA6\xF5\xFD[\xAA_\xA8\xFC\xC2j\x89u\xAA\xFF\xCBa\x84{\xAC\xFA\xD0|\x93i\xAE\xF9\xD9w\x9Eg\xB0\xE8\xAE\xD5=\xB2\xEB\xA7\xD83\xB4\xEE\xBC\b\xCF!\xB6\xED\xB5\xC2/\xB8\xE4\x8A2\xE1\xBA\xE7\x839\xEC\v\xBC\xE2\x98$\xFB\xBE\xE1\x91/\xF6\xC0\xA0M\x8D\xD6v\xC2\xA3D\x86\xDBx\xC4\xA6_\x9B\xCCj\xC6\xA5V\x90\xC1d\xC8\xACi\xA1\xE2N\xCA\xAF\`\xAA\xEF@\xCC\xAA{\xB7\xF8R\xCE\xA9r\xBC\xF5\\\xD0\xB8\xD5\xBE\xD2\xBB\f\xDE\xB3\b\xD4\xBE\xC3\xA4\xD6\xBD\xC8\xA9\xD8\xB4!\xF9\x8A>\xDA\xB7(\xF2\x870\xDC\xB23\xEF\x90"\xDE\xB1:\xE4\x9D,\xE0\x90\xDD=\x96\xE2\x93\xD46\v\x98\xE4\x96\xCF+\x8A\xE6\x95\xC6 \x84\xE8\x9C\xF92\xAE\xEA\x9F\xF0?\xA0\xEC\x9A\xEB\x07(\xB2\xEE\x99\xE2\f%\xBC\xF0\x88\x95en\xE6\xF2\x8B\x9Cnc\xE8\xF4\x8E\x87st\xFA\xF6\x8D\x8Exy\xF4\xF8\x84\xB1IZ\xDE\xFA\x87\xB8BW\xD0\xFC\x82\xA3_@\xC2\xFE\x81\xAATM\xCC\x1B\x9B\xEC\xF7\xDAA\x98\xE5\xFC\xD7O\x9D\xFE\xE1\xC0]\x9E\xF7\xEA\xCDS\x97\xC8\xDB\xEEy\x94\xC1\xD0\xE3w\x91\xDA\xCD\xF4e\x92\xD3\xC6\xF9k\v\x83\xA4\xAF\xB21 \x80\xAD\xA4\xBF?\x85\xB6\xB9\xA8-\r\x86\xBF\xB2\xA5#\x8F\x80\x83\x86 \x8C\x89\x88\x8B\x07\x07\x89\x92\x95\x9C\x8A\x9B\x9E\x91\x1B;\xAB|G
2270
+ \xA19\xA8uL\x07\xAF?\xADnQ\xBD=\xAEgZ\xB33\xA7Xk>\x991\xA4Q\`3\x977\xA1J}$\x855\xA2Cv)\x8B+\xB34b\xD1)\xB0=o\xDF/\xB5& x\xCD-\xB6/u\xC3#\xBF3V\xE9!\xBC8[\xE7'\xB9%L\xF5%\xBA\v.A\xFB[\xFB\xD7\x8Ca\x9AY\xF8\xDE\x87l\x94_\xFD\xC5\x9A{\x86]\xFE\xCC\x91v\x88S\xF7\xF3\xA0U\xA2Q\xF4\xFA\xABX\xACW\xF1\xE1\xB6O\xBEU\xF2\xE8\xBDB\xB0K\xE3\x9F\xD4 \xEAI\xE0\x96\xDF\xE4O\xE5\x8D\xC2\xF6M\xE6\x84\xC9\xF8C\xEF\xBB\xF8=\xD2A\xEC\xB2\xF30\xDCG\xE9\xA9\xEE'\xCEE\xEA\xA0\xE5*\xC0{\xCBG<\xB1zy\xC8N7\xBCt\x7F\xCDU*\xABf}\xCE\\!\xA6hs\xC7c\x85Bq\xC4j\x1B\x88Lw\xC1q\x9F^u\xC2x\r\x92Pk\xD3d\xD9
2271
+ i\xD0o\xD4o\xD5r\xC3m\xD6y\xCEc\xDF+H\xED2a\xDC"C\xE0<g\xD99^\xF7.e\xDA0U\xFA \x9B[\x9A\xB7\xEC\x99X\x93
2272
+ \xBA\xE2\x9F]\x88\xAD\xF0\x9D^\x81\xA0\xFE\x93W\xBE-\x83\xD4\x91T\xB7&\x8E\xDA\x97Q\xAC;\x99\xC8\x95R\xA50\x94\xC6\x8BC\xD2Y\xDF\x9C\x89@\xDBR\xD2\x92\x8FE\xC0O\xC5\x80\x8DF\xC9D\xC8\x8E\x83O\xF6u\xEB\xA4\x81L\xFF~\xE6\xAA\x87I\xE4c\xF1\xB8\x85J\xEDh\xFC\xB6\xBBk
2273
+ \xB1g\f\xB9h\xBAj\xBFm\xA7}\xBDn\xACp\xB3g.\x9DS4\xB1d'\x96^:\xB7a<\x8BI(\xB5b5\x80D&\xABsB\xE9|\xA9pK\xE2r\xAFuP\xFF\`\xADvY\xF4n\xA3\x7Ff\xC5;D\xA1|o\xCE6J\xA7yt\xD3!X\xA5z}\xD8,V\xDB;\xA1z\f7\xD98\xA8q9\xDF=\xB3l+\xDD>\xBAg\x1B%\xD37\x85V8\xD14\x8C]5\xD71\x97@"\xD52\x9EK/\xCB#\xE9"dG\xC9 \xE0)iI\xCF%\xFB4~[\xCD&\xF2?sU\xC3/\xCDP\x7F\xC1,\xC4]q\xC7)\xDFJc\xC5*\xD6Gm\xFB\v1\xCA\xDC\xD7\xF9\b8\xC1\xD1\xD9\xFF\r#\xDC\xC6\xCB\xFD*\xD7\xCB\xC5\xF3\x07\xE6\xE8\xEF\xF1\xED\xE5\xE1\xF7\x07\xF0\xF2\xF3\xF5\xFB\xFF\xFD\xEBy\x92\xB4\xA7\xE9p\x99\xB9\xA9\xEFk\x84\xAE\xBB\xEDb\x8F\xA3\xB5\xE3]\xBE\x80\x9F\xE1T\xB5\x8D\x91\xE7O\xA8\x9A\x83\xE5F\xA3\x97\x8D\x98/\x8AB\x91D7q\xCF\xFB\xC0\xB5\xA5\xDB\xB5\xE9[\xC2V9\xF1\xF1Y\xA4\x82?\x92\xD5^\xAB\x98\xAA\x07\xD8[\x83\xBE\x851$\xC3}\fUt]\xBEr\xFE\xB1\xDE\x80\xA7\xDC\x9Bt\xF1\x9B\xC1\xC1i\x9B\xE4\x86G\xBE\xEF\xC6\x9D\xC1\xCC\xA1\f$o,\xE9-\xAA\x84tJ\xDC\xA9\xB0\\\xDA\x88\xF9vRQ>\x98m\xC61\xA8\xC8'\xB0\xC7\x7FY\xBF\xF3\v\xE0\xC6G\x91\xA7\xD5Qc\xCAg))\x85
2274
+ \xB7'8!\x1B.\xFCm,M\r8STs
2275
+ e\xBB
2276
+ jv.\xC9\xC2\x81\x85,r\x92\xA1\xE8\xBF\xA2Kf\xA8p\x8BK\xC2\xA3Ql\xC7\xE8\x92\xD1$\x99\xD6\x855\xF4p\xA0j\xC1\xA4\bl7LwH'\xB5\xBC\xB04\xB3\f9J\xAA\xD8NO\xCA\x9C[\xF3o.h\xEE\x82\x8Ftoc\xA5xx\xC8\x84\b\xC7\x8C\xFA\xFF\xBE\x90\xEBlP\xA4\xF7\xA3\xF9\xBE\xF2xq\xC6\0\0\0\0\0\0\0\0=\0\0\0\0\0\b\0\0>\0\0\0\0\0\0\b\0>\0\0\0\0\0 \0 \0>\0\0\0\0\0\0\0?\0\0\0\b\0\0 \0 \0?\0\0\0\b\0\0\x80\0\x80\0?\0\0\0\b\0 \0\x80\0\0?\0\0\0 \0\x80\0\0?\0\0\0 \0\0?\0A\xF0\xF2\0\v%\0\0\0\0\0\b\0\x07\0 \0\0
2277
+ \0\0\v\0\0\f\0\0\r\0\0\0\0\0A\xA0\xF3\0\v\xF7"\`\x07\0\0\0\bP\0\0\b\0\bs\0\x07\0\0\bp\0\0\b0\0\0 \xC0\0\x07
2278
+ \0\0\b\`\0\0\b \0\0 \xA0\0\0\b\0\0\0\b\x80\0\0\b@\0\0 \xE0\0\x07\0\0\bX\0\0\b\0\0 \x90\0\x07;\0\0\bx\0\0\b8\0\0 \xD0\0\x07\0\0\bh\0\0\b(\0\0 \xB0\0\0\b\b\0\0\b\x88\0\0\bH\0\0 \xF0\0\x07\0\0\bT\0\0\b\0\b\xE3\0\x07+\0\0\bt\0\0\b4\0\0 \xC8\0\x07\r\0\0\bd\0\0\b$\0\0 \xA8\0\0\b\0\0\b\x84\0\0\bD\0\0 \xE8\0\x07\b\0\0\b\\\0\0\b\0\0 \x98\0\x07S\0\0\b|\0\0\b<\0\0 \xD8\0\x07\0\0\bl\0\0\b,\0\0 \xB8\0\0\b\f\0\0\b\x8C\0\0\bL\0\0 \xF8\0\x07\0\0\bR\0\0\b\0\b\xA3\0\x07#\0\0\br\0\0\b2\0\0 \xC4\0\x07\v\0\0\bb\0\0\b"\0\0 \xA4\0\0\b\0\0\b\x82\0\0\bB\0\0 \xE4\0\x07\x07\0\0\bZ\0\0\b\0\0 \x94\0\x07C\0\0\bz\0\0\b:\0\0 \xD4\0\x07\0\0\bj\0\0\b*\0\0 \xB4\0\0\b
2279
+ \0\0\b\x8A\0\0\bJ\0\0 \xF4\0\x07\0\0\bV\0\0\b\0@\b\0\0\x073\0\0\bv\0\0\b6\0\0 \xCC\0\x07\0\0\bf\0\0\b&\0\0 \xAC\0\0\b\0\0\b\x86\0\0\bF\0\0 \xEC\0\x07 \0\0\b^\0\0\b\0\0 \x9C\0\x07c\0\0\b~\0\0\b>\0\0 \xDC\0\x07\x1B\0\0\bn\0\0\b.\0\0 \xBC\0\0\b\0\0\b\x8E\0\0\bN\0\0 \xFC\0\`\x07\0\0\0\bQ\0\0\b\0\b\x83\0\x07\0\0\bq\0\0\b1\0\0 \xC2\0\x07
2280
+ \0\0\ba\0\0\b!\0\0 \xA2\0\0\b\0\0\b\x81\0\0\bA\0\0 \xE2\0\x07\0\0\bY\0\0\b\0\0 \x92\0\x07;\0\0\by\0\0\b9\0\0 \xD2\0\x07\0\0\bi\0\0\b)\0\0 \xB2\0\0\b \0\0\b\x89\0\0\bI\0\0 \xF2\0\x07\0\0\bU\0\0\b\0\b\x07+\0\0\bu\0\0\b5\0\0 \xCA\0\x07\r\0\0\be\0\0\b%\0\0 \xAA\0\0\b\0\0\b\x85\0\0\bE\0\0 \xEA\0\x07\b\0\0\b]\0\0\b\0\0 \x9A\0\x07S\0\0\b}\0\0\b=\0\0 \xDA\0\x07\0\0\bm\0\0\b-\0\0 \xBA\0\0\b\r\0\0\b\x8D\0\0\bM\0\0 \xFA\0\x07\0\0\bS\0\0\b\0\b\xC3\0\x07#\0\0\bs\0\0\b3\0\0 \xC6\0\x07\v\0\0\bc\0\0\b#\0\0 \xA6\0\0\b\0\0\b\x83\0\0\bC\0\0 \xE6\0\x07\x07\0\0\b[\0\0\b\x1B\0\0 \x96\0\x07C\0\0\b{\0\0\b;\0\0 \xD6\0\x07\0\0\bk\0\0\b+\0\0 \xB6\0\0\b\v\0\0\b\x8B\0\0\bK\0\0 \xF6\0\x07\0\0\bW\0\0\b\0@\b\0\0\x073\0\0\bw\0\0\b7\0\0 \xCE\0\x07\0\0\bg\0\0\b'\0\0 \xAE\0\0\b\x07\0\0\b\x87\0\0\bG\0\0 \xEE\0\x07 \0\0\b_\0\0\b\0\0 \x9E\0\x07c\0\0\b\x7F\0\0\b?\0\0 \xDE\0\x07\x1B\0\0\bo\0\0\b/\0\0 \xBE\0\0\b\0\0\b\x8F\0\0\bO\0\0 \xFE\0\`\x07\0\0\0\bP\0\0\b\0\bs\0\x07\0\0\bp\0\0\b0\0\0 \xC1\0\x07
2281
+ \0\0\b\`\0\0\b \0\0 \xA1\0\0\b\0\0\0\b\x80\0\0\b@\0\0 \xE1\0\x07\0\0\bX\0\0\b\0\0 \x91\0\x07;\0\0\bx\0\0\b8\0\0 \xD1\0\x07\0\0\bh\0\0\b(\0\0 \xB1\0\0\b\b\0\0\b\x88\0\0\bH\0\0 \xF1\0\x07\0\0\bT\0\0\b\0\b\xE3\0\x07+\0\0\bt\0\0\b4\0\0 \xC9\0\x07\r\0\0\bd\0\0\b$\0\0 \xA9\0\0\b\0\0\b\x84\0\0\bD\0\0 \xE9\0\x07\b\0\0\b\\\0\0\b\0\0 \x99\0\x07S\0\0\b|\0\0\b<\0\0 \xD9\0\x07\0\0\bl\0\0\b,\0\0 \xB9\0\0\b\f\0\0\b\x8C\0\0\bL\0\0 \xF9\0\x07\0\0\bR\0\0\b\0\b\xA3\0\x07#\0\0\br\0\0\b2\0\0 \xC5\0\x07\v\0\0\bb\0\0\b"\0\0 \xA5\0\0\b\0\0\b\x82\0\0\bB\0\0 \xE5\0\x07\x07\0\0\bZ\0\0\b\0\0 \x95\0\x07C\0\0\bz\0\0\b:\0\0 \xD5\0\x07\0\0\bj\0\0\b*\0\0 \xB5\0\0\b
2282
+ \0\0\b\x8A\0\0\bJ\0\0 \xF5\0\x07\0\0\bV\0\0\b\0@\b\0\0\x073\0\0\bv\0\0\b6\0\0 \xCD\0\x07\0\0\bf\0\0\b&\0\0 \xAD\0\0\b\0\0\b\x86\0\0\bF\0\0 \xED\0\x07 \0\0\b^\0\0\b\0\0 \x9D\0\x07c\0\0\b~\0\0\b>\0\0 \xDD\0\x07\x1B\0\0\bn\0\0\b.\0\0 \xBD\0\0\b\0\0\b\x8E\0\0\bN\0\0 \xFD\0\`\x07\0\0\0\bQ\0\0\b\0\b\x83\0\x07\0\0\bq\0\0\b1\0\0 \xC3\0\x07
2283
+ \0\0\ba\0\0\b!\0\0 \xA3\0\0\b\0\0\b\x81\0\0\bA\0\0 \xE3\0\x07\0\0\bY\0\0\b\0\0 \x93\0\x07;\0\0\by\0\0\b9\0\0 \xD3\0\x07\0\0\bi\0\0\b)\0\0 \xB3\0\0\b \0\0\b\x89\0\0\bI\0\0 \xF3\0\x07\0\0\bU\0\0\b\0\b\x07+\0\0\bu\0\0\b5\0\0 \xCB\0\x07\r\0\0\be\0\0\b%\0\0 \xAB\0\0\b\0\0\b\x85\0\0\bE\0\0 \xEB\0\x07\b\0\0\b]\0\0\b\0\0 \x9B\0\x07S\0\0\b}\0\0\b=\0\0 \xDB\0\x07\0\0\bm\0\0\b-\0\0 \xBB\0\0\b\r\0\0\b\x8D\0\0\bM\0\0 \xFB\0\x07\0\0\bS\0\0\b\0\b\xC3\0\x07#\0\0\bs\0\0\b3\0\0 \xC7\0\x07\v\0\0\bc\0\0\b#\0\0 \xA7\0\0\b\0\0\b\x83\0\0\bC\0\0 \xE7\0\x07\x07\0\0\b[\0\0\b\x1B\0\0 \x97\0\x07C\0\0\b{\0\0\b;\0\0 \xD7\0\x07\0\0\bk\0\0\b+\0\0 \xB7\0\0\b\v\0\0\b\x8B\0\0\bK\0\0 \xF7\0\x07\0\0\bW\0\0\b\0@\b\0\0\x073\0\0\bw\0\0\b7\0\0 \xCF\0\x07\0\0\bg\0\0\b'\0\0 \xAF\0\0\b\x07\0\0\b\x87\0\0\bG\0\0 \xEF\0\x07 \0\0\b_\0\0\b\0\0 \x9F\0\x07c\0\0\b\x7F\0\0\b?\0\0 \xDF\0\x07\x1B\0\0\bo\0\0\b/\0\0 \xBF\0\0\b\0\0\b\x8F\0\0\bO\0\0 \xFF\0\0\0\x1B\0A\0@\0!\0  \0\b\x81\0@\0\0\0\x81\0\x1B\x07\0a\0\`\01\00\r\0\f\xC1\0@\0\0\0\0\0\0\x07\0\b\0 \0
2284
+ \0\v\0\r\0\0\0\0\0\x1B\0\0#\0+\x003\0;\0C\0S\0c\0s\0\x83\0\xA3\0\xC3\0\xE3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I\0\xC3\0\0\0\0\0\0\0\0\x07\0 \0\r\0\0\0!\x001\0A\0a\0\x81\0\xC1\0\x81\b\f 0@\`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1B\0\x1B\0\0\0\0\0@\0@\0\0\x07\x07\x07\x07\b\b\b\b\b\b\b\b
2285
+
2286
+
2287
+
2288
+
2289
+
2290
+
2291
+
2292
+
2293
+
2294
+
2295
+
2296
+
2297
+
2298
+
2299
+
2300
+ \v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\0\0\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\0\x07\b\b
2301
+
2302
+ \v\v\f\f\f\f\r\r\r\r\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\f\0\b\0\x8C\0\b\0L\0\b\0\xCC\0\b\0,\0\b\0\xAC\0\b\0l\0\b\0\xEC\0\b\0\0\b\0\x9C\0\b\0\\\0\b\0\xDC\0\b\0<\0\b\0\xBC\0\b\0|\0\b\0\xFC\0\b\0\0\b\0\x82\0\b\0B\0\b\0\xC2\0\b\0"\0\b\0\xA2\0\b\0b\0\b\0\xE2\0\b\0\0\b\0\x92\0\b\0R\0\b\0\xD2\0\b\x002\0\b\0\xB2\0\b\0r\0\b\0\xF2\0\b\0
2303
+ \0\b\0\x8A\0\b\0J\0\b\0\xCA\0\b\0*\0\b\0\xAA\0\b\0j\0\b\0\xEA\0\b\0\0\b\0\x9A\0\b\0Z\0\b\0\xDA\0\b\0:\0\b\0\xBA\0\b\0z\0\b\0\xFA\0\b\0\0\b\0\x86\0\b\0F\0\b\0\xC6\0\b\0&\0\b\0\xA6\0\b\0f\0\b\0\xE6\0\b\0\0\b\0\x96\0\b\0V\0\b\0\xD6\0\b\x006\0\b\0\xB6\0\b\0v\0\b\0\xF6\0\b\0\0\b\0\x8E\0\b\0N\0\b\0\xCE\0\b\0.\0\b\0\xAE\0\b\0n\0\b\0\xEE\0\b\0\0\b\0\x9E\0\b\0^\0\b\0\xDE\0\b\0>\0\b\0\xBE\0\b\0~\0\b\0\xFE\0\b\0\0\b\0\x81\0\b\0A\0\b\0\xC1\0\b\0!\0\b\0\xA1\0\b\0a\0\b\0\xE1\0\b\0\0\b\0\x91\0\b\0Q\0\b\0\xD1\0\b\x001\0\b\0\xB1\0\b\0q\0\b\0\xF1\0\b\0 \0\b\0\x89\0\b\0I\0\b\0\xC9\0\b\0)\0\b\0\xA9\0\b\0i\0\b\0\xE9\0\b\0\0\b\0\x99\0\b\0Y\0\b\0\xD9\0\b\x009\0\b\0\xB9\0\b\0y\0\b\0\xF9\0\b\0\0\b\0\x85\0\b\0E\0\b\0\xC5\0\b\0%\0\b\0\xA5\0\b\0e\0\b\0\xE5\0\b\0\0\b\0\x95\0\b\0U\0\b\0\xD5\0\b\x005\0\b\0\xB5\0\b\0u\0\b\0\xF5\0\b\0\r\0\b\0\x8D\0\b\0M\0\b\0\xCD\0\b\0-\0\b\0\xAD\0\b\0m\0\b\0\xED\0\b\0\0\b\0\x9D\0\b\0]\0\b\0\xDD\0\b\0=\0\b\0\xBD\0\b\0}\0\b\0\xFD\0\b\0\0 \0 \0\x93\0 \0\x93 \0S\0 \0S \0\xD3\0 \0\xD3 \x003\0 \x003 \0\xB3\0 \0\xB3 \0s\0 \0s \0\xF3\0 \0\xF3 \0\v\0 \0\v \0\x8B\0 \0\x8B \0K\0 \0K \0\xCB\0 \0\xCB \0+\0 \0+ \0\xAB\0 \0\xAB \0k\0 \0k \0\xEB\0 \0\xEB \0\x1B\0 \0\x1B \0\x9B\0 \0\x9B \0[\0 \0[ \0\xDB\0 \0\xDB \0;\0 \0; \0\xBB\0 \0\xBB \0{\0 \0{ \0\xFB\0 \0\xFB \0\x07\0 \0\x07 \0\x87\0 \0\x87 \0G\0 \0G \0\xC7\0 \0\xC7 \0'\0 \0' \0\xA7\0 \0\xA7 \0g\0 \0g \0\xE7\0 \0\xE7 \0\0 \0 \0\x97\0 \0\x97 \0W\0 \0W \0\xD7\0 \0\xD7 \x007\0 \x007 \0\xB7\0 \0\xB7 \0w\0 \0w \0\xF7\0 \0\xF7 \0\0 \0 \0\x8F\0 \0\x8F \0O\0 \0O \0\xCF\0 \0\xCF \0/\0 \0/ \0\xAF\0 \0\xAF \0o\0 \0o \0\xEF\0 \0\xEF \0\0 \0 \0\x9F\0 \0\x9F \0_\0 \0_ \0\xDF\0 \0\xDF \0?\0 \0? \0\xBF\0 \0\xBF \0\x7F\0 \0\x7F \0\xFF\0 \0\xFF \0\0\0\x07\0@\0\x07\0 \0\x07\0\`\0\x07\0\0\x07\0P\0\x07\x000\0\x07\0p\0\x07\0\b\0\x07\0H\0\x07\0(\0\x07\0h\0\x07\0\0\x07\0X\0\x07\x008\0\x07\0x\0\x07\0\0\x07\0D\0\x07\0$\0\x07\0d\0\x07\0\0\x07\0T\0\x07\x004\0\x07\0t\0\x07\0\0\b\0\x83\0\b\0C\0\b\0\xC3\0\b\0#\0\b\0\xA3\0\b\0c\0\b\0\xE3\0\b\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\f\0\0\0\0\0\0\0\0
2304
+ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\r\0\0\0\0\0\0\0\0\v\0\0\x1B\0\0\x07\0\0\0\0A\xC0\x96\vM\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0A\xB0\x97\ve\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\0\0\0\x07\0\0\0\b\0\0\0\b\0\0\0 \0\0\0 \0\0\0
2305
+ \0\0\0
2306
+ \0\0\0\v\0\0\0\v\0\0\0\f\0\0\0\f\0\0\0\r\0\0\0\r\0A\xE0\x98\v#\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\0\b\x07 
2307
+ \v\f\r\0A\x94\x99\vi\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\0\0\0\b\0\0\0
2308
+ \0\0\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0(\0\0\x000\0\0\x008\0\0\0@\0\0\0P\0\0\0\`\0\0\0p\0\0\0\x80\0\0\0\xA0\0\0\0\xC0\0\0\0\xE0\0A\x94\x9A\vr\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\f\0\0\0\0\0\0\0\0\0 \0\0\x000\0\0\0@\0\0\0\`\0\0\0\x80\0\0\0\xC0\0\0\0\0\0\0\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\f\0\0\0\0\0\0\0\0\0 \0\0\x000\0\0\0@\0\0\0\`\0A\x90\x9B\v&R\0\0d\f\0\0\xB7\0\0\xE8\x07\0\0\xDB\x07\0\0\xF3\x07\0\0*\0\0\xC0\x07\0\0\xBF\b\0\0\xB7\0A\xC0\x9B\vA\0\v\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\v\0\0\0\0\0\0\0\0\0
2309
+
2310
+ 
2311
+ \x07\0\0 \v\0\0 \v\0\0\v\0\0\0\0\0A\x91\x9C\v!\0\0\0\0\0\0\0\0\0\v\r\0\r\0\0\0 \0\0\0 \0\0\0\0A\xCB\x9C\v\f\0A\xD7\x9C\v\0\0\0\0\0\0\0\0 \f\0\0\0\0\0\f\0\0\f\0A\x85\x9D\v\0A\x91\x9D\v\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0A\xBF\x9D\v\0A\xCB\x9D\v\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0A\x82\x9E\v\0\0\0\0\0\0\0\0\0 \0A\xB3\x9E\v\0A\xBF\x9E\v\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0A\xED\x9E\v\0A\xF9\x9E\v\xAF\b\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\x000123456789ABCDEF\x90\\\0\0\fR\0\0\xB0O\0\0\xF8R\0\0N10__cxxabiv116__shim_type_infoE\0\0\0\0\fR\0\0\xE0O\0\0\xA4O\0\0N10__cxxabiv117__class_type_infoE\0\0\0\fR\0\0P\0\0\xA4O\0\0N10__cxxabiv117__pbase_type_infoE\0\0\0\fR\0\0@P\0\0P\0\0N10__cxxabiv119__pointer_type_infoE\0\fR\0\0pP\0\0\xA4O\0\0N10__cxxabiv120__function_type_infoE\0\0\0\0\fR\0\0\xA4P\0\0P\0\0N10__cxxabiv129__pointer_to_member_type_infoE\0\0\0\0\0\0\0\xF0P\0\0G\0\0\0H\0\0\0I\0\0\0J\0\0\0K\0\0\0\fR\0\0\xFCP\0\0\xA4O\0\0N10__cxxabiv123__fundamental_type_infoE\0\xDCP\0\0,Q\0\0v\0Dn\0\0\0\0\xDCP\0\0<Q\0\0b\0\0\0\xDCP\0\0HQ\0\0c\0\0\0\xDCP\0\0TQ\0\0h\0\0\0\xDCP\0\0\`Q\0\0a\0\0\0\xDCP\0\0lQ\0\0s\0\0\0\xDCP\0\0xQ\0\0t\0\0\0\xDCP\0\0\x84Q\0\0i\0\0\0\xDCP\0\0\x90Q\0\0j\0\0\0\xDCP\0\0\x9CQ\0\0l\0\0\0\xDCP\0\0\xA8Q\0\0m\0\0\0\xDCP\0\0\xB4Q\0\0x\0\0\0\xDCP\0\0\xC0Q\0\0y\0\0\0\xDCP\0\0\xCCQ\0\0f\0\0\0\xDCP\0\0\xD8Q\0\0d\0\0\0\0\0\0\0\xD4O\0\0G\0\0\0L\0\0\0I\0\0\0J\0\0\0M\0\0\0N\0\0\0O\0\0\0P\0\0\0\0\0\0\0,R\0\0G\0\0\0Q\0\0\0I\0\0\0J\0\0\0M\0\0\0R\0\0\0S\0\0\0T\0\0\0\fR\0\x008R\0\0\xD4O\0\0N10__cxxabiv120__si_class_type_infoE\0\0\0\0\0\0\0\x004P\0\0G\0\0\0U\0\0\0I\0\0\0J\0\0\0V\0\0\0\xE4Q\0\0\x84R\0\0St9exception\0\0\0\0\0\0\0\0\xA8R\0\x009\0\0\0W\0\0\0X\0\0\0\fR\0\0\xB4R\0\0|R\0\0St11logic_error\0\0\0\0\0\xD8R\0\x009\0\0\0Y\0\0\0X\0\0\0\fR\0\0\xE4R\0\0\xA8R\0\0St12length_error\0\0\0\0\xE4Q\0\0\0S\0\0St9type_info\0\0\0\0\0\0\xA0N\0\xEB\xA7~ u\x86\xFA\0\xB9,\xFD\xB7\x8Az\xBC\0\xCC\xA2\0=I\xD7\0\b\0\x93\b\x8F*_\xB7\xFAX\xD9\xFD\xCA\xBD\xE1\xCD\xDC@x\0}ga\xEC\0\xE5
2312
+ \xD4\0\xCC>Ov\x98\xAF\0\0D\0\xAE\0\xAE\`\0\xFAw!\xEB+\0\`A\x92\0\xA9\xA3nN\0A\xD8\xA7\v\f\0\0\0\0\0\0\0\0*\0A\xF8\xA7\v'9H\0A\x8E\xA8\v\x92\0A\xA2\xA8\v\x8D8R\`S\0\0\xCA\0\0\0\0\0\0\0\0\xBB\xDB\xEB\x07+\x07;\x07P\x07Success\0Illegal byte sequence\0Domain error\0Result not representable\0Not a tty\0Permission denied\0Operation not permitted\0No such file or directory\0No such process\0File exists\0Value too large for defined data type\0No space left on device\0Out of memory\0Resource busy\0Interrupted system call\0Resource temporarily unavailable\0Invalid seek\0Cross-device link\0Read-only file system\0Directory not empty\0Connection reset by peer\0Operation timed out\0Connection refused\0Host is down\0Host is unreachable\0Address in use\0Broken pipe\0I/O error\0No such device or address\0Block device required\0No such device\0Not a directory\0Is a directory\0Text file busy\0Exec format error\0Invalid argument\0Argument list too long\0Symbolic link loop\0Filename too long\0Too many open files in system\0No file descriptors available\0Bad file descriptor\0No child process\0Bad address\0File too large\0Too many links\0No locks available\0Resource deadlock would occur\0State not recoverable\0Owner died\0Operation canceled\0Function not implemented\0No message of desired type\0Identifier removed\0Device not a stream\0No data available\0Device timeout\0Out of streams resources\0Link has been severed\0Protocol error\0Bad message\0File descriptor in bad state\0Not a socket\0Destination address required\0Message too large\0Protocol wrong type for socket\0Protocol not available\0Protocol not supported\0Socket type not supported\0Not supported\0Protocol family not supported\0Address family not supported by protocol\0Address not available\0Network is down\0Network unreachable\0Connection reset by network\0Connection aborted\0No buffer space available\0Socket is connected\0Socket not connected\0Cannot send after socket shutdown\0Operation already in progress\0Operation in progress\0Stale file handle\0Remote I/O error\0Quota exceeded\0No medium found\0Wrong medium type\0Multihop attempted\0Required key not available\0Key has expired\0Key has been revoked\0Key was rejected by service\0A\xB0\xB7\vI\0\0\0 F\0\0 K\0\0\0\0\0\0\0\0\0\xA0J\0\0\xA0K\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 L\0\0\0\0\0\0\0\0\0\x07\0\0\0\0 \0\0\0\0\0\0\0A\x84\xB8\v@\0A\x9C\xB8\vA\0\0\0B\0\0\0u\0\0\0\0A\xB4\xB8\v\0A\xC4\xB8\v\xFF\xFF\xFF\xFF
2313
+ \0A\x88\xB9\v \xF8[\0\x008y\0\0\0A\x9C\xB9\vE\0A\xB4\xB9\v
2314
+ A\0\0\0F\0\0\0Xy\0A\xCC\xB9\v\0A\xDC\xB9\v\b\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0A\xA0\xBA\v\x07\x90\\\0\0P{`)}function ix(l){return l}async function gr(l){return l}async function yr(l,C){try{var h=await gr(l),q=await WebAssembly.instantiate(h,C);return q}catch(T){O(`failed to asynchronously prepare wasm: ${T}`),M(l)&&O(`warning: Loading from a file URI (${l}) 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`),sx(T)}}async function kr(l,C,h){return yr(C,h)}function f0(){var l={env:fi,wasi_snapshot_preview1:fi};return l}async function _r(){function l(X,x0){return ar=X.exports,Dv(ar),ox(),ar}var C=n;function h(X){return g(n===C,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),C=null,l(X.instance)}var q=f0();if(n.instantiateWasm)return new Promise((X,x0)=>{try{n.instantiateWasm(q,(A0,c0)=>{X(l(A0,c0))})}catch(A0){O(`Module.instantiateWasm callback failed with error: ${A0}`),x0(A0)}});O0??(O0=H0());var T=await kr(s0,O0,q),Q=h(T);return Q}class AA{constructor(C){l0(this,"name","ExitStatus"),this.message=`Program terminated with exit(${C})`,this.status=C}}var yA,kA,Xe,zx,Ye,ne,nx,g0,eA,ux,lA=l=>{for(;l.length>0;)l.shift()(n)},rA=[],_A=l=>rA.push(l),E0=[],wr=l=>E0.push(l),be=!0;function fx(l){return g(typeof l=="number",`ptrToString expects a number, got ${typeof l}`),l>>>=0,"0x"+l.toString(16).padStart(8,"0")}var Lx=l=>{Lx.shown||(Lx.shown={}),Lx.shown[l]||(Lx.shown[l]=1,c&&(l="warning: "+l),O(l))};class UA{constructor(C){this.excPtr=C,this.ptr=C-24}set_type(C){g0[this.ptr+4>>2]=C}get_type(){return g0[this.ptr+4>>2]}set_destructor(C){g0[this.ptr+8>>2]=C}get_destructor(){return g0[this.ptr+8>>2]}set_caught(C){C=C?1:0,zx[this.ptr+12]=C}get_caught(){return zx[this.ptr+12]!=0}set_rethrown(C){C=C?1:0,zx[this.ptr+13]=C}get_rethrown(){return zx[this.ptr+13]!=0}init(C,h){this.set_adjusted_ptr(0),this.set_type(C),this.set_destructor(h)}set_adjusted_ptr(C){g0[this.ptr+16>>2]=C}get_adjusted_ptr(){return g0[this.ptr+16>>2]}}var me=0,HA=(l,C,h)=>{var q=new UA(l);q.init(C,h),me++,g(!1,"Exception thrown, but exception catching is not enabled. Compile with -sNO_DISABLE_EXCEPTION_CATCHING or -sEXCEPTION_CATCHING_ALLOWED=[..] to catch.")},Sr=()=>sx("native code called abort()"),xx={},wA=l=>{for(;l.length;){var C=l.pop(),h=l.pop();h(C)}};function t0(l){return this.fromWireType(g0[l>>2])}var SA={},Kx={},tA={},P0=class extends Error{constructor(C){super(C),this.name="InternalError"}},y0=l=>{throw new P0(l)},cA=(l,C,h)=>{l.forEach(x0=>tA[x0]=C);function q(x0){var A0=h(x0);A0.length!==l.length&&y0("Mismatched type converter count");for(var c0=0;c0<l.length;++c0)Sx(l[c0],A0[c0])}var T=new Array(C.length),Q=[],X=0;for(let[x0,A0]of C.entries())Kx.hasOwnProperty(A0)?T[x0]=Kx[A0]:(Q.push(A0),SA.hasOwnProperty(A0)||(SA[A0]=[]),SA[A0].push(()=>{T[x0]=Kx[A0],++X,X===Q.length&&q(T)}));Q.length===0&&q(T)},je=l=>{var C=xx[l];delete xx[l];var h=C.rawConstructor,q=C.rawDestructor,T=C.fields,Q=T.map(X=>X.getterReturnType).concat(T.map(X=>X.setterArgumentType));cA([l],Q,X=>{var x0={};for(var[A0,c0]of T.entries()){let u0=X[A0],W0=c0.getter,K0=c0.getterContext,Y0=X[A0+T.length],Px=c0.setter,mx=c0.setterContext;x0[c0.fieldName]={read:sA=>u0.fromWireType(W0(K0,sA)),write:(sA,TA)=>{var DA=[];Px(mx,sA,Y0.toWireType(DA,TA)),wA(DA)},optional:u0.optional}}return[{name:C.name,fromWireType:u0=>{var W0={};for(var K0 in x0)W0[K0]=x0[K0].read(u0);return q(u0),W0},toWireType:(u0,W0)=>{for(var K0 in x0)if(!(K0 in W0)&&!x0[K0].optional)throw new TypeError(`Missing field: "${K0}"`);var Y0=h();for(K0 in x0)x0[K0].write(Y0,W0[K0]);return u0!==null&&u0.push(q,Y0),Y0},readValueFromPointer:t0,destructorFunction:q}]})},Ex=l=>{for(var C="";;){var h=ux[l++];if(!h)return C;C+=String.fromCharCode(h)}},Fx=class extends Error{constructor(C){super(C),this.name="BindingError"}},p0=l=>{throw new Fx(l)};function he(l,C,h={}){var q=C.name;if(l||p0(`type "${q}" must have a positive integer typeid pointer`),Kx.hasOwnProperty(l)){if(h.ignoreDuplicateRegistrations)return;p0(`Cannot register type '${q}' twice`)}if(Kx[l]=C,delete tA[l],SA.hasOwnProperty(l)){var T=SA[l];delete SA[l],T.forEach(Q=>Q())}}function Sx(l,C,h={}){return he(l,C,h)}var se=(l,C,h)=>{switch(C){case 1:return h?q=>zx[q]:q=>ux[q];case 2:return h?q=>yA[q>>1]:q=>nx[q>>1];case 4:return h?q=>kA[q>>2]:q=>g0[q>>2];case 8:return h?q=>Xe[q>>3]:q=>eA[q>>3];default:throw new TypeError(`invalid integer width (${C}): ${l}`)}},BA=l=>{if(l===null)return"null";var C=typeof l;return C==="object"||C==="array"||C==="function"?l.toString():""+l},$A=(l,C,h,q)=>{if(C<h||C>q)throw new TypeError(`Passing a number "${BA(C)}" from JS side to C/C++ side to an argument of type "${l}", which is outside the valid range [${h}, ${q}]!`)},$r=(l,C,h,q,T)=>{C=Ex(C);let Q=q===0n,X=x0=>x0;if(Q){let x0=h*8;X=A0=>BigInt.asUintN(x0,A0),T=X(T)}Sx(l,{name:C,fromWireType:X,toWireType:(x0,A0)=>{if(typeof A0=="number")A0=BigInt(A0);else if(typeof A0!="bigint")throw new TypeError(`Cannot convert "${BA(A0)}" to ${C}`);return $A(C,A0,q,T),A0},readValueFromPointer:se(C,h,!Q),destructorFunction:null})},o=(l,C,h,q)=>{C=Ex(C),Sx(l,{name:C,fromWireType:function(T){return!!T},toWireType:function(T,Q){return Q?h:q},readValueFromPointer:function(T){return this.fromWireType(ux[T])},destructorFunction:null})},k0=l=>({count:l.count,deleteScheduled:l.deleteScheduled,preservePointerOnDelete:l.preservePointerOnDelete,ptr:l.ptr,ptrType:l.ptrType,smartPtr:l.smartPtr,smartPtrType:l.smartPtrType}),ge=l=>{function C(h){return h.$$.ptrType.registeredClass.name}p0(C(l)+" instance already deleted")},qA=!1,CA=l=>{},qr=l=>{l.smartPtr?l.smartPtrType.rawDestructor(l.smartPtr):l.ptrType.registeredClass.rawDestructor(l.ptr)},ie=l=>{l.count.value-=1;var C=l.count.value===0;C&&qr(l)},Qe=(l,C,h)=>{if(C===h)return l;if(h.baseClass===void 0)return null;var q=Qe(l,C,h.baseClass);return q===null?null:h.downcast(q)},Ze={},Pr={},Tr=(l,C)=>{for(C===void 0&&p0("ptr should not be undefined");l.baseClass;)C=l.upcast(C),l=l.baseClass;return C},Nr=(l,C)=>(C=Tr(l,C),Pr[C]),ae=(l,C)=>{(!C.ptrType||!C.ptr)&&y0("makeClassHandle requires ptr and ptrType");var h=!!C.smartPtrType,q=!!C.smartPtr;return h!==q&&y0("Both smartPtrType and smartPtr must be specified"),C.count={value:1},zA(Object.create(l,{$$:{value:C,writable:!0}}))};function xr(l){var C=this.getPointee(l);if(!C)return this.destructor(l),null;var h=Nr(this.registeredClass,C);if(h!==void 0){if(h.$$.count.value===0)return h.$$.ptr=C,h.$$.smartPtr=l,h.clone();var q=h.clone();return this.destructor(l),q}function T(){return this.isSmartPointer?ae(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:C,smartPtrType:this,smartPtr:l}):ae(this.registeredClass.instancePrototype,{ptrType:this,ptr:l})}var Q=this.registeredClass.getActualType(C),X=Ze[Q];if(!X)return T.call(this);var x0;this.isConst?x0=X.constPointerType:x0=X.pointerType;var A0=Qe(C,this.registeredClass,x0.registeredClass);return A0===null?T.call(this):this.isSmartPointer?ae(x0.registeredClass.instancePrototype,{ptrType:x0,ptr:A0,smartPtrType:this,smartPtr:l}):ae(x0.registeredClass.instancePrototype,{ptrType:x0,ptr:A0})}var zA=l=>globalThis.FinalizationRegistry?(qA=new FinalizationRegistry(C=>{console.warn(C.leakWarning),ie(C.$$)}),zA=C=>{var h=C.$$,q=!!h.smartPtr;if(q){var T={$$:h},Q=h.ptrType.registeredClass,X=new Error(`Embind found a leaked C++ instance ${Q.name} <${fx(h.ptr)}>.
2315
+ We'll free it automatically in this case, but this functionality is not reliable across various environments.
2316
+ Make sure to invoke .delete() manually once you're done with the instance instead.
2317
+ Originally allocated`);"captureStackTrace"in Error&&Error.captureStackTrace(X,xr),T.leakWarning=X.stack.replace(/^Error: /,""),qA.register(C,T,C)}return C},CA=C=>qA.unregister(C),zA(l)):(zA=C=>C,l),oe=[],Ir=()=>{for(;oe.length;){var l=oe.pop();l.$$.deleteScheduled=!1,l.delete()}},Ar,Mr=()=>{let l=KA.prototype;Object.assign(l,{isAliasOf(h){if(!(this instanceof KA)||!(h instanceof KA))return!1;var q=this.$$.ptrType.registeredClass,T=this.$$.ptr;h.$$=h.$$;for(var Q=h.$$.ptrType.registeredClass,X=h.$$.ptr;q.baseClass;)T=q.upcast(T),q=q.baseClass;for(;Q.baseClass;)X=Q.upcast(X),Q=Q.baseClass;return q===Q&&T===X},clone(){if(this.$$.ptr||ge(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var h=zA(Object.create(Object.getPrototypeOf(this),{$$:{value:k0(this.$$)}}));return h.$$.count.value+=1,h.$$.deleteScheduled=!1,h},delete(){this.$$.ptr||ge(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&p0("Object already scheduled for deletion"),CA(this),ie(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||ge(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&p0("Object already scheduled for deletion"),oe.push(this),oe.length===1&&Ar&&Ar(Ir),this.$$.deleteScheduled=!0,this}});let C=Symbol.dispose;C&&(l[C]=l.delete)};function KA(){}var ye=(l,C)=>Object.defineProperty(C,"name",{value:l}),er=(l,C,h)=>{if(l[C].overloadTable===void 0){var q=l[C];l[C]=function(...T){return l[C].overloadTable.hasOwnProperty(T.length)||p0(`Function '${h}' called with an invalid number of arguments (${T.length}) - expects one of (${l[C].overloadTable})!`),l[C].overloadTable[T.length].apply(this,T)},l[C].overloadTable=[],l[C].overloadTable[q.argCount]=q}},rr=(l,C,h)=>{n.hasOwnProperty(l)?((h===void 0||n[l].overloadTable!==void 0&&n[l].overloadTable[h]!==void 0)&&p0(`Cannot register public name '${l}' twice`),er(n,l,l),n[l].overloadTable.hasOwnProperty(h)&&p0(`Cannot register multiple overloads of a function with the same number of arguments (${h})!`),n[l].overloadTable[h]=C):(n[l]=C,n[l].argCount=h)},Lr=48,tr=57,Rr=l=>{g(typeof l=="string"),l=l.replace(/[^a-zA-Z0-9_]/g,"$");var C=l.charCodeAt(0);return C>=Lr&&C<=tr?`_${l}`:l};function Or(l,C,h,q,T,Q,X,x0){this.name=l,this.constructor=C,this.instancePrototype=h,this.rawDestructor=q,this.baseClass=T,this.getActualType=Q,this.upcast=X,this.downcast=x0,this.pureVirtualFunctions=[]}var Fe=(l,C,h)=>{for(;C!==h;)C.upcast||p0(`Expected null or instance of ${h.name}, got an instance of ${C.name}`),l=C.upcast(l),C=C.baseClass;return l};function Gr(l,C){if(C===null)return this.isReference&&p0(`null is not a valid ${this.name}`),0;C.$$||p0(`Cannot pass "${BA(C)}" as a ${this.name}`),C.$$.ptr||p0(`Cannot pass deleted object as a pointer of type ${this.name}`);var h=C.$$.ptrType.registeredClass,q=Fe(C.$$.ptr,h,this.registeredClass);return q}function Ur(l,C){var h;if(C===null)return this.isReference&&p0(`null is not a valid ${this.name}`),this.isSmartPointer?(h=this.rawConstructor(),l!==null&&l.push(this.rawDestructor,h),h):0;(!C||!C.$$)&&p0(`Cannot pass "${BA(C)}" as a ${this.name}`),C.$$.ptr||p0(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&C.$$.ptrType.isConst&&p0(`Cannot convert argument of type ${C.$$.smartPtrType?C.$$.smartPtrType.name:C.$$.ptrType.name} to parameter type ${this.name}`);var q=C.$$.ptrType.registeredClass;if(h=Fe(C.$$.ptr,q,this.registeredClass),this.isSmartPointer)switch(C.$$.smartPtr===void 0&&p0("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:C.$$.smartPtrType===this?h=C.$$.smartPtr:p0(`Cannot convert argument of type ${C.$$.smartPtrType?C.$$.smartPtrType.name:C.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:h=C.$$.smartPtr;break;case 2:if(C.$$.smartPtrType===this)h=C.$$.smartPtr;else{var T=C.clone();h=this.rawShare(h,D0.toHandle(()=>T.delete())),l!==null&&l.push(this.rawDestructor,h)}break;default:p0("Unsupported sharing policy")}return h}function nr(l,C){if(C===null)return this.isReference&&p0(`null is not a valid ${this.name}`),0;C.$$||p0(`Cannot pass "${BA(C)}" as a ${this.name}`),C.$$.ptr||p0(`Cannot pass deleted object as a pointer of type ${this.name}`),C.$$.ptrType.isConst&&p0(`Cannot convert argument of type ${C.$$.ptrType.name} to parameter type ${this.name}`);var h=C.$$.ptrType.registeredClass,q=Fe(C.$$.ptr,h,this.registeredClass);return q}var sr=()=>{Object.assign(JA.prototype,{getPointee(l){return this.rawGetPointee&&(l=this.rawGetPointee(l)),l},destructor(l){this.rawDestructor?.(l)},readValueFromPointer:t0,fromWireType:xr})};function JA(l,C,h,q,T,Q,X,x0,A0,c0,u0){this.name=l,this.registeredClass=C,this.isReference=h,this.isConst=q,this.isSmartPointer=T,this.pointeeType=Q,this.sharingPolicy=X,this.rawGetPointee=x0,this.rawConstructor=A0,this.rawShare=c0,this.rawDestructor=u0,!T&&C.baseClass===void 0?q?(this.toWireType=Gr,this.destructorFunction=null):(this.toWireType=nr,this.destructorFunction=null):this.toWireType=Ur}var ir=(l,C,h)=>{n.hasOwnProperty(l)||y0("Replacing nonexistent public symbol"),n[l].overloadTable!==void 0&&h!==void 0?n[l].overloadTable[h]=C:(n[l]=C,n[l].argCount=h)},VA=[],ke=l=>{var C=VA[l];return C||(VA[l]=C=qe.get(l)),g(qe.get(l)==C,"table mirror is out of date"),C},$x=(l,C,h=!1)=>{g(!h,"async bindings are only supported with JSPI"),l=Ex(l);function q(){var Q=ke(C);return Q}var T=q();return typeof T!="function"&&p0(`unknown function pointer with signature ${l}: ${C}`),T};class Hr extends Error{}var PA=l=>{var C=oi(l),h=Ex(C);return QA(C),h},WA=(l,C)=>{var h=[],q={};function T(Q){if(!q[Q]&&!Kx[Q]){if(tA[Q]){tA[Q].forEach(T);return}h.push(Q),q[Q]=!0}}throw C.forEach(T),new Hr(`${l}: `+h.map(PA).join([", "]))},_e=(l,C,h,q,T,Q,X,x0,A0,c0,u0,W0,K0)=>{u0=Ex(u0),Q=$x(T,Q),x0&&(x0=$x(X,x0)),c0&&(c0=$x(A0,c0)),K0=$x(W0,K0);var Y0=Rr(u0);rr(Y0,function(){WA(`Cannot construct ${u0} due to unbound types`,[q])}),cA([l,C,h],q?[q]:[],Px=>{var mx;Px=Px[0];var sA,TA;q?(sA=Px.registeredClass,TA=sA.instancePrototype):TA=KA.prototype;var DA=ye(u0,function(...$n){if(Object.getPrototypeOf(this)!==or)throw new Fx(`Use 'new' to construct ${u0}`);if(NA.constructor_body===void 0)throw new Fx(`${u0} has no accessible constructor`);var Bi=NA.constructor_body[$n.length];if(Bi===void 0)throw new Fx(`Tried to invoke ctor of ${u0} with invalid number of parameters (${$n.length}) - expected (${Object.keys(NA.constructor_body).toString()}) parameters instead!`);return Bi.apply(this,$n)}),or=Object.create(TA,{constructor:{value:DA}});DA.prototype=or;var NA=new Or(u0,DA,or,K0,sA,Q,x0,c0);NA.baseClass&&((mx=NA.baseClass).__derivedClasses??(mx.__derivedClasses=[]),NA.baseClass.__derivedClasses.push(NA));var bv=new JA(u0,NA,!0,!1,!1),li=new JA(u0+"*",NA,!1,!1,!1),ci=new JA(u0+" const*",NA,!1,!0,!1);return Ze[l]={pointerType:li,constPointerType:ci},ir(Y0,DA),[bv,li,ci]})},lx=(l,C)=>{for(var h=[],q=0;q<l;q++)h.push(g0[C+q*4>>2]);return h};function ve(l){for(var C=1;C<l.length;++C)if(l[C]!==null&&l[C].destructorFunction===void 0)return!0;return!1}function XA(l,C,h,q,T){if(l<C||l>h){var Q=C==h?C:`${C} to ${h}`;T(`function ${q} called with ${l} arguments, expected ${Q}`)}}function a(l,C,h,q){var T=ve(l),Q=l.length-2,X=[],x0=["fn"];C&&x0.push("thisWired");for(var A0=0;A0<Q;++A0)X.push(`arg${A0}`),x0.push(`arg${A0}Wired`);X=X.join(","),x0=x0.join(",");var c0=`return function (${X}) {
2318
+ `;c0+=`checkArgCount(arguments.length, minArgs, maxArgs, humanName, throwBindingError);
2319
+ `,T&&(c0+=`var destructors = [];
2320
+ `);var u0=T?"destructors":"null",W0=["humanName","throwBindingError","invoker","fn","runDestructors","fromRetWire","toClassParamWire"];C&&(c0+=`var thisWired = toClassParamWire(${u0}, this);
2321
+ `);for(var A0=0;A0<Q;++A0){var K0=`toArg${A0}Wire`;c0+=`var arg${A0}Wired = ${K0}(${u0}, arg${A0});
2322
+ `,W0.push(K0)}if(c0+=(h||q?"var rv = ":"")+`invoker(${x0});
2323
+ `,T)c0+=`runDestructors(destructors);
2324
+ `;else for(var A0=C?1:2;A0<l.length;++A0){var Y0=A0===1?"thisWired":"arg"+(A0-2)+"Wired";l[A0].destructorFunction!==null&&(c0+=`${Y0}_dtor(${Y0});
2325
+ `,W0.push(`${Y0}_dtor`))}return h&&(c0+=`var ret = fromRetWire(rv);
2326
+ return ret;
2327
+ `),c0+=`}
2328
+ `,W0.push("checkArgCount","minArgs","maxArgs"),c0=`if (arguments.length !== ${W0.length}){ throw new Error(humanName + "Expected ${W0.length} closure arguments " + arguments.length + " given."); }
2329
+ ${c0}`,new Function(W0,c0)}function E(l){for(var C=l.length-2,h=l.length-1;h>=2&&l[h].optional;--h)C--;return C}function d(l,C,h,q,T,Q){var X=C.length;X<2&&p0("argTypes array size mismatch! Must at least get return value and 'this' types!"),g(!Q,"async bindings are only supported with JSPI");for(var x0=C[1]!==null&&h!==null,A0=ve(C),c0=!C[0].isVoid,u0=X-2,W0=E(C),K0=C[0],Y0=C[1],Px=[l,p0,q,T,wA,K0.fromWireType.bind(K0),Y0?.toWireType.bind(Y0)],mx=2;mx<X;++mx){var sA=C[mx];Px.push(sA.toWireType.bind(sA))}if(!A0)for(var mx=x0?1:2;mx<C.length;++mx)C[mx].destructorFunction!==null&&Px.push(C[mx].destructorFunction);Px.push(XA,W0,u0);var DA=a(C,x0,c0,Q)(...Px);return ye(l,DA)}var b=(l,C,h,q,T,Q)=>{g(C>0);var X=lx(C,h);T=$x(q,T),cA([],[l],x0=>{x0=x0[0];var A0=`constructor ${x0.name}`;if(x0.registeredClass.constructor_body===void 0&&(x0.registeredClass.constructor_body=[]),x0.registeredClass.constructor_body[C-1]!==void 0)throw new Fx(`Cannot register multiple constructors with identical number of parameters (${C-1}) for class '${x0.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return x0.registeredClass.constructor_body[C-1]=()=>{WA(`Cannot construct ${x0.name} due to unbound types`,X)},cA([],X,c0=>(c0.splice(1,0,null),x0.registeredClass.constructor_body[C-1]=d(A0,c0,null,T,Q),[])),[]})},y=(l,C,h)=>(l instanceof Object||p0(`${h} with invalid "this": ${l}`),l instanceof C.registeredClass.constructor||p0(`${h} incompatible with "this" of type ${l.constructor.name}`),l.$$.ptr||p0(`cannot call emscripten binding method ${h} on deleted object`),Fe(l.$$.ptr,l.$$.ptrType.registeredClass,C.registeredClass)),$=(l,C,h,q,T,Q,X,x0,A0,c0)=>{C=Ex(C),T=$x(q,T),cA([],[l],u0=>{u0=u0[0];var W0=`${u0.name}.${C}`,K0={get(){WA(`Cannot access ${W0} due to unbound types`,[h,X])},enumerable:!0,configurable:!0};return A0?K0.set=()=>WA(`Cannot access ${W0} due to unbound types`,[h,X]):K0.set=Y0=>p0(W0+" is a read-only property"),Object.defineProperty(u0.registeredClass.instancePrototype,C,K0),cA([],A0?[h,X]:[h],Y0=>{var Px=Y0[0],mx={get(){var TA=y(this,u0,W0+" getter");return Px.fromWireType(T(Q,TA))},enumerable:!0};if(A0){A0=$x(x0,A0);var sA=Y0[1];mx.set=function(TA){var DA=y(this,u0,W0+" setter"),or=[];A0(c0,DA,sA.toWireType(or,TA)),wA(or)}}return Object.defineProperty(u0.registeredClass.instancePrototype,C,mx),[]}),[]})},G=[],V=[0,1,,1,null,1,!0,1,!1,1],a0=l=>{if(l>9&&--V[l+1]===0){g(V[l]!==void 0,"decref for unallocated handle");var C=V[l];V[l]=void 0,G.push(l)}},D0={toValue:l=>(l||p0(`Cannot use deleted val. handle = ${l}`),g(l===2||V[l]!==void 0&&l%2===0,`invalid handle: ${l}`),V[l]),toHandle:l=>{switch(l){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let C=G.pop()||V.length;return V[C]=l,V[C+1]=1,C}}}},z0={name:"emscripten::val",fromWireType:l=>{var C=D0.toValue(l);return a0(l),C},toWireType:(l,C)=>D0.toHandle(C),readValueFromPointer:t0,destructorFunction:null},N0=l=>Sx(l,z0),S0=(l,C)=>{switch(C){case 4:return function(h){return this.fromWireType(Ye[h>>2])};case 8:return function(h){return this.fromWireType(ne[h>>3])};default:throw new TypeError(`invalid float width (${C}): ${l}`)}},b0=(l,C,h)=>{C=Ex(C),Sx(l,{name:C,fromWireType:q=>q,toWireType:(q,T)=>{if(typeof T!="number"&&typeof T!="boolean")throw new TypeError(`Cannot convert ${BA(T)} to ${C}`);return T},readValueFromPointer:S0(C,h),destructorFunction:null})},Ax=l=>{l=l.trim();let C=l.indexOf("(");return C===-1?l:(g(l.endsWith(")"),"Parentheses for argument names should match."),l.slice(0,C))},px=(l,C,h,q,T,Q,X,x0)=>{var A0=lx(C,h);l=Ex(l),l=Ax(l),T=$x(q,T,X),rr(l,function(){WA(`Cannot call ${l} due to unbound types`,A0)},C-1),cA([],A0,c0=>{var u0=[c0[0],null].concat(c0.slice(1));return ir(l,d(l,u0,null,T,Q,X),C-1),[]})},qx=(l,C,h,q,T)=>{C=Ex(C);let Q=q===0,X=A0=>A0;if(Q){var x0=32-8*h;X=A0=>A0<<x0>>>x0,T=X(T)}Sx(l,{name:C,fromWireType:X,toWireType:(A0,c0)=>{if(typeof c0!="number"&&typeof c0!="boolean")throw new TypeError(`Cannot convert "${BA(c0)}" to ${C}`);return $A(C,c0,q,T),c0},readValueFromPointer:se(C,h,q!==0),destructorFunction:null})},Ix=(l,C,h)=>{var q=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array],T=q[C];function Q(X){var x0=g0[X>>2],A0=g0[X+4>>2];return new T(zx.buffer,A0,x0)}h=Ex(h),Sx(l,{name:h,fromWireType:Q,readValueFromPointer:Q},{ignoreDuplicateRegistrations:!0})},Mx=(l,C,h,q)=>{if(g(typeof l=="string",`stringToUTF8Array expects a string (got ${typeof l})`),!(q>0))return 0;for(var T=h,Q=h+q-1,X=0;X<l.length;++X){var x0=l.codePointAt(X);if(x0<=127){if(h>=Q)break;C[h++]=x0}else if(x0<=2047){if(h+1>=Q)break;C[h++]=192|x0>>6,C[h++]=128|x0&63}else if(x0<=65535){if(h+2>=Q)break;C[h++]=224|x0>>12,C[h++]=128|x0>>6&63,C[h++]=128|x0&63}else{if(h+3>=Q)break;x0>1114111&&Lx(`Invalid Unicode code point ${fx(x0)} encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).`),C[h++]=240|x0>>18,C[h++]=128|x0>>12&63,C[h++]=128|x0>>6&63,C[h++]=128|x0&63,X++}}return C[h]=0,h-T},YA=(l,C,h)=>(g(typeof h=="number","stringToUTF8 requires a third parameter that specifies the length of the output buffer"),Mx(l,ux,C,h)),Rx=l=>{for(var C=0,h=0;h<l.length;++h){var q=l.charCodeAt(h);q<=127?C++:q<=2047?C+=2:q>=55296&&q<=57343?(C+=4,++h):C+=3}return C},dA=globalThis.TextDecoder&&new TextDecoder,ax=(l,C,h,q)=>{var T=C+h;if(q)return T;for(;l[C]&&!(C>=T);)++C;return C},Bt=(l,C=0,h,q)=>{var T=ax(l,C,h,q);if(T-C>16&&l.buffer&&dA)return dA.decode(l.subarray(C,T));for(var Q="";C<T;){var X=l[C++];if(!(X&128)){Q+=String.fromCharCode(X);continue}var x0=l[C++]&63;if((X&224)==192){Q+=String.fromCharCode((X&31)<<6|x0);continue}var A0=l[C++]&63;if((X&240)==224?X=(X&15)<<12|x0<<6|A0:((X&248)!=240&&Lx(`Invalid UTF-8 leading byte ${fx(X)} encountered when deserializing a UTF-8 string in wasm memory to a JS string!`),X=(X&7)<<18|x0<<12|A0<<6|l[C++]&63),X<65536)Q+=String.fromCharCode(X);else{var c0=X-65536;Q+=String.fromCharCode(55296|c0>>10,56320|c0&1023)}}return Q},bn=(l,C,h)=>(g(typeof l=="number",`UTF8ToString expects a number (got ${typeof l})`),l?Bt(ux,l,C,h):""),mn=(l,C)=>{C=Ex(C);var h=!0;Sx(l,{name:C,fromWireType(q){var T=g0[q>>2],Q=q+4,X;if(h)X=bn(Q,T,!0);else{X="";for(var x0=0;x0<T;++x0)X+=String.fromCharCode(ux[Q+x0])}return QA(q),X},toWireType(q,T){T instanceof ArrayBuffer&&(T=new Uint8Array(T));var Q,X=typeof T=="string";X||ArrayBuffer.isView(T)&&T.BYTES_PER_ELEMENT==1||p0("Cannot pass non-string to std::string"),h&&X?Q=Rx(T):Q=T.length;var x0=wn(4+Q+1),A0=x0+4;if(g0[x0>>2]=Q,X)if(h)YA(T,A0,Q+1);else for(var c0=0;c0<Q;++c0){var u0=T.charCodeAt(c0);u0>255&&(QA(x0),p0("String has UTF-16 code units that do not fit in 8 bits")),ux[A0+c0]=u0}else ux.set(T,A0);return q!==null&&q.push(QA,x0),x0},readValueFromPointer:t0,destructorFunction(q){QA(q)}})},Ct=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,jn=(l,C,h)=>{g(l%2==0,"pointer passed to UTF16ToString must be 2-byte aligned");var q=l>>1,T=ax(nx,q,C/2,h);if(T-q>16&&Ct)return Ct.decode(nx.subarray(q,T));for(var Q="",X=q;X<T;++X){var x0=nx[X];Q+=String.fromCharCode(x0)}return Q},hn=(l,C,h)=>{if(g(C%2==0,"pointer passed to stringToUTF16 must be 2-byte aligned"),g(typeof h=="number","stringToUTF16 requires a third parameter that specifies the length of the output buffer"),h??(h=2147483647),h<2)return 0;h-=2;for(var q=C,T=h<l.length*2?h/2:l.length,Q=0;Q<T;++Q){var X=l.charCodeAt(Q);yA[C>>1]=X,C+=2}return yA[C>>1]=0,C-q},dt=l=>l.length*2,zr=(l,C,h)=>{g(l%4==0,"pointer passed to UTF32ToString must be 2-byte aligned");for(var q="",T=l>>2,Q=0;!(Q>=C/4);Q++){var X=g0[T+Q];if(!X&&!h)break;q+=String.fromCodePoint(X)}return q},we=(l,C,h)=>{if(g(C%4==0,"pointer passed to stringToUTF32 must be 4-byte aligned"),g(typeof h=="number","stringToUTF32 requires a third parameter that specifies the length of the output buffer"),h??(h=2147483647),h<4)return 0;for(var q=C,T=q+h-4,Q=0;Q<l.length;++Q){var X=l.codePointAt(Q);if(X>65535&&Q++,kA[C>>2]=X,C+=4,C+4>T)break}return kA[C>>2]=0,C-q},i=l=>{for(var C=0,h=0;h<l.length;++h){var q=l.codePointAt(h);q>65535&&h++,C+=4}return C},v=(l,C,h)=>{h=Ex(h);var q,T,Q;C===2?(q=jn,T=hn,Q=dt):(g(C===4,"only 2-byte and 4-byte strings are currently supported"),q=zr,T=we,Q=i),Sx(l,{name:h,fromWireType:X=>{var x0=g0[X>>2],A0=q(X+4,x0*C,!0);return QA(X),A0},toWireType:(X,x0)=>{typeof x0!="string"&&p0(`Cannot pass non-string to C++ string type ${h}`);var A0=Q(x0),c0=wn(4+A0+C);return g0[c0>>2]=A0/C,T(x0,c0+4,A0+C),X!==null&&X.push(QA,c0),c0},readValueFromPointer:t0,destructorFunction(X){QA(X)}})},B=(l,C,h,q,T,Q)=>{xx[l]={name:Ex(C),rawConstructor:$x(h,q),rawDestructor:$x(T,Q),fields:[]}},u=(l,C,h,q,T,Q,X,x0,A0,c0)=>{xx[l].fields.push({fieldName:Ex(C),getterReturnType:h,getter:$x(q,T),getterContext:Q,setterArgumentType:X,setter:$x(x0,A0),setterContext:c0})},m=(l,C)=>{C=Ex(C),Sx(l,{isVoid:!0,name:C,fromWireType:()=>{},toWireType:(h,q)=>{}})},w=[],I=l=>{var C=w.length;return w.push(l),C},K=(l,C)=>{var h=Kx[l];return h===void 0&&p0(`${C} has unknown type ${PA(l)}`),h},o0=(l,C)=>{for(var h=new Array(l),q=0;q<l;++q)h[q]=K(g0[C+q*4>>2],`parameter ${q}`);return h},_0=(l,C,h)=>{var q=[],T=l(q,h);return q.length&&(g0[C>>2]=D0.toHandle(q)),T},X0={},L0=l=>{var C=X0[l];return C===void 0?Ex(l):C},T0=(l,C,h)=>{var q=8,[T,...Q]=o0(l,C),X=T.toWireType.bind(T),x0=Q.map(Y0=>Y0.readValueFromPointer.bind(Y0));l--;var A0={toValue:D0.toValue},c0=x0.map((Y0,Px)=>{var mx=`argFromPtr${Px}`;return A0[mx]=Y0,`${mx}(args${Px?"+"+Px*q:""})`}),u0;switch(h){case 0:u0="toValue(handle)";break;case 2:u0="new (toValue(handle))";break;case 3:u0="";break;case 1:A0.getStringOrSymbol=L0,u0="toValue(handle)[getStringOrSymbol(methodName)]";break}u0+=`(${c0})`,T.isVoid||(A0.toReturnWire=X,A0.emval_returnValue=_0,u0=`return emval_returnValue(toReturnWire, destructorsRef, ${u0})`),u0=`return function (handle, methodName, destructorsRef, args) {
2330
+ ${u0}
2331
+ }`;var W0=new Function(Object.keys(A0),u0)(...Object.values(A0)),K0=`methodCaller<(${Q.map(Y0=>Y0.name)}) => ${T.name}>`;return I(ye(K0,W0))},h0=l=>(l=L0(l),D0.toHandle(n[l])),vx=(l,C)=>(l=D0.toValue(l),C=D0.toValue(C),D0.toHandle(l[C])),gx=l=>{l>9&&(V[l+1]+=1)},Ox=(l,C,h,q,T)=>w[l](C,h,q,T),Jx=l=>D0.toHandle(L0(l)),Vx=l=>{var C=D0.toValue(l);wA(C),a0(l)},Se=()=>2147483648,nA=(l,C)=>(g(C,"alignment argument is required"),Math.ceil(l/C)*C),fe=l=>{var C=Dt.buffer.byteLength,h=(l-C+65535)/65536|0;try{return Dt.grow(h),ox(),1}catch(q){O(`growMemory: Attempted to grow heap from ${C} bytes to ${l} bytes, but got error: ${q}`)}},bx=l=>{var C=ux.length;l>>>=0,g(l>C);var h=Se();if(l>h)return O(`Cannot enlarge memory, requested ${l} bytes, but the limit is ${h} bytes!`),!1;for(var q=1;q<=4;q*=2){var T=C*(1+.2/q);T=Math.min(T,l+100663296);var Q=Math.min(h,nA(Math.max(l,T),65536)),X=fe(Q);if(X)return!0}return O(`Failed to grow the heap from ${C} bytes to ${Q} bytes, not enough memory!`),!1},P8=l=>{sx("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")},T8=9007199254740992,N8=-9007199254740992,I8=l=>l<N8||l>T8?NaN:Number(l);function M8(l,C,h,q){return C=I8(C),70}var gn=[null,[],[]],yn=(l,C)=>{var h=gn[l];g(h),C===0||C===10?((l===1?L:O)(Bt(h)),h.length=0):h.push(C)},qD=()=>{Fi(0),gn[1].length&&yn(1,10),gn[2].length&&yn(2,10)},L8=(l,C,h,q)=>{for(var T=0,Q=0;Q<h;Q++){var X=g0[C>>2],x0=g0[C+4>>2];C+=8;for(var A0=0;A0<x0;A0++)yn(l,ux[X+A0]);T+=x0}return g0[q>>2]=T,0},R8=()=>{if(c){var l=eo("crypto");return C=>l.randomFillSync(C)}return C=>(crypto.getRandomValues(C),0)},si=l=>(si=R8())(l),O8=(l,C)=>si(ux.subarray(l,l+C)),G8=(l,C)=>{if($e)for(var h=l;h<l+C;h++){var q=ke(h);q&&$e.set(q,h)}},$e,U8=l=>($e||($e=new WeakMap,G8(0,qe.length)),$e.get(l)||0),kn=[],H8=()=>{if(kn.length)return kn.pop();try{return qe.grow(1)}catch(l){if(!(l instanceof RangeError))throw l;sx("Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.")}},_n=(l,C)=>{qe.set(l,C),VA[l]=qe.get(l)},ii=l=>{let C=l.length;return g(C<16384),[C%128|128,C>>7,...l]},z8={i:127,p:127,j:126,f:125,d:124,e:111},ai=l=>ii(Array.from(l,C=>{var h=z8[C];return g(h,`invalid signature char: ${C}`),h})),K8=(l,C)=>{var h=Uint8Array.of(0,97,115,109,1,0,0,0,1,...ii([1,96,...ai(C.slice(1)),...ai(C[0]==="v"?"":C[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),q=new WebAssembly.Module(h),T=new WebAssembly.Instance(q,{e:{f:l}}),Q=T.exports.f;return Q},J8=(l,C)=>{g(typeof l<"u");var h=U8(l);if(h)return h;var q=H8();try{_n(q,l)}catch(Q){if(!(Q instanceof TypeError))throw Q;g(typeof C<"u","Missing signature argument to addFunction: "+l);var T=K8(l,C);_n(q,T)}return $e.set(l,q),q},V8=l=>{$e.delete(ke(l)),_n(l,null),kn.push(l)};Mr(),sr(),g(V.length===10);{if(n.noExitRuntime&&(be=n.noExitRuntime),n.print&&(L=n.print),n.printErr&&(O=n.printErr),n.wasmBinary&&(s0=n.wasmBinary),n.FS_createDataFile=xA.createDataFile,n.FS_createPreloadedFile=xA.createPreloadedFile,Y8(),n.arguments&&(p=n.arguments),n.thisProgram&&(j=n.thisProgram),g(typeof n.memoryInitializerPrefixURL>"u","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),g(typeof n.pthreadMainPrefixURL>"u","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),g(typeof n.cdInitializerPrefixURL>"u","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),g(typeof n.filePackagePrefixURL>"u","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),g(typeof n.read>"u","Module.read option was removed"),g(typeof n.readAsync>"u","Module.readAsync option was removed (modify readAsync in JS)"),g(typeof n.readBinary>"u","Module.readBinary option was removed (modify readBinary in JS)"),g(typeof n.setWindowTitle>"u","Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)"),g(typeof n.TOTAL_MEMORY>"u","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),g(typeof n.ENVIRONMENT>"u","Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)"),g(typeof n.STACK_SIZE>"u","STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time"),g(typeof n.wasmMemory>"u","Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally"),g(typeof n.INITIAL_MEMORY>"u","Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically"),n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()();r0("preInit")}n.addFunction=J8,n.removeFunction=V8;var W8=["writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromI64","readI53FromU64","convertI32PairToI53","convertI32PairToI53Checked","convertU32PairToI53","stackAlloc","getTempRet0","setTempRet0","zeroMemory","exitJS","withStackSave","strError","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","readEmAsmArgs","jstoi_q","getExecutableName","autoResumeAudioContext","getDynCaller","dynCall","handleException","keepRuntimeAlive","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","asyncLoad","asmjsMangle","mmapAlloc","HandleAllocator","getUniqueRunDependency","addRunDependency","removeRunDependency","addOnInit","addOnPostCtor","addOnPreMain","addOnExit","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","ccall","cwrap","intArrayFromString","intArrayToString","stringToAscii","stringToNewUTF8","stringToUTF8OnStack","writeArrayToMemory","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","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","jsStackTrace","getCallstack","convertPCtoSourceLocation","getEnvStrings","checkWasiClock","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","safeSetTimeout","setImmediateWrapped","safeRequestAnimationFrame","clearImmediateWrapped","registerPostMainLoop","registerPreMainLoop","getPromise","makePromise","idsToPromises","makePromiseCallback","findMatchingCatch","incrementUncaughtExceptionCount","decrementUncaughtExceptionCount","Browser_asyncPrepareDataCounter","isLeapYear","ydayFromDate","arraySum","addDays","getSocketFromFD","getSocketAddress","FS_createPreloadedFile","FS_preloadFile","FS_modeStringToFlags","FS_getMode","FS_fileDataToTypedArray","FS_stdin_getChar","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","webgl_enable_EXT_polygon_offset_clamp","webgl_enable_EXT_clip_control","webgl_enable_WEBGL_polygon_mode","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","registerWebGlEventCallback","runAndAbortIfError","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","allocateUTF8","allocateUTF8OnStack","demangle","stackTrace","getNativeTypeSize","getFunctionArgsName","createJsInvokerSignature","getEnumValueType","PureVirtualError","registerInheritedInstance","unregisterInheritedInstance","getInheritedInstanceCount","getLiveInheritedInstances","enumReadValueFromPointer","installIndexedIterator","setDelayFunction","count_emval_handles"];W8.forEach(F0);var X8=["run","out","err","callMain","abort","wasmExports","writeStackCookie","checkStackCookie","INT53_MAX","INT53_MIN","bigintToI53Checked","HEAP8","HEAP16","HEAPU16","HEAP32","HEAPU32","HEAPF32","HEAPF64","HEAP64","HEAPU64","stackSave","stackRestore","createNamedFunction","ptrToString","getHeapMax","growMemory","ENV","ERRNO_CODES","DNS","Protocols","Sockets","timers","warnOnce","readEmAsmArgsArray","alignMemory","wasmTable","wasmMemory","noExitRuntime","addOnPreRun","addOnPostRun","convertJsFunctionToWasm","freeTableIndexes","functionsInTableMap","getEmptyTableSlot","updateTableMap","getFunctionAddress","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","AsciiToString","UTF16Decoder","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","JSEvents","specialHTMLTargets","findCanvasEventTarget","currentFullscreenStrategy","restoreOldWindowedStyle","UNWIND_CACHE","ExitStatus","flush_NO_FILESYSTEM","initRandomFill","randomFill","emSetImmediate","emClearImmediate_deps","emClearImmediate","promiseMap","uncaughtExceptionCount","exceptionCaught","ExceptionInfo","Browser","requestFullscreen","requestFullScreen","setCanvasSize","getUserMedia","createContext","getPreloadedImageData__data","wget","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","SYSCALLS","preloadPlugins","FS_stdin_getChar_buffer","FS_unlink","FS_createPath","FS_createDevice","FS_readFile","FS","FS_root","FS_mounts","FS_devices","FS_streams","FS_nextInode","FS_nameTable","FS_currentPath","FS_initialized","FS_ignorePermissions","FS_filesystems","FS_syncFSRequests","FS_lookupPath","FS_getPath","FS_hashName","FS_hashAddNode","FS_hashRemoveNode","FS_lookupNode","FS_createNode","FS_destroyNode","FS_isRoot","FS_isMountpoint","FS_isFile","FS_isDir","FS_isLink","FS_isChrdev","FS_isBlkdev","FS_isFIFO","FS_isSocket","FS_flagsToPermissionString","FS_nodePermissions","FS_mayLookup","FS_mayCreate","FS_mayDelete","FS_mayOpen","FS_checkOpExists","FS_nextfd","FS_getStreamChecked","FS_getStream","FS_createStream","FS_closeStream","FS_dupStream","FS_doSetAttr","FS_chrdev_stream_ops","FS_major","FS_minor","FS_makedev","FS_registerDevice","FS_getDevice","FS_getMounts","FS_syncfs","FS_mount","FS_unmount","FS_lookup","FS_mknod","FS_statfs","FS_statfsStream","FS_statfsNode","FS_create","FS_mkdir","FS_mkdev","FS_symlink","FS_rename","FS_rmdir","FS_readdir","FS_readlink","FS_stat","FS_fstat","FS_lstat","FS_doChmod","FS_chmod","FS_lchmod","FS_fchmod","FS_doChown","FS_chown","FS_lchown","FS_fchown","FS_doTruncate","FS_truncate","FS_ftruncate","FS_utime","FS_open","FS_close","FS_isClosed","FS_llseek","FS_read","FS_write","FS_mmap","FS_msync","FS_ioctl","FS_writeFile","FS_cwd","FS_chdir","FS_createDefaultDirectories","FS_createDefaultDevices","FS_createSpecialDirectories","FS_createStandardStreams","FS_staticInit","FS_init","FS_quit","FS_findObject","FS_analyzePath","FS_createFile","FS_createDataFile","FS_forceLoadFile","FS_createLazyFile","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","GL","AL","GLUT","EGL","GLEW","IDBStore","SDL","SDL_gfx","print","printErr","jstoi_s","InternalError","BindingError","throwInternalError","throwBindingError","registeredTypes","awaitingDependencies","typeDependencies","tupleRegistrations","structRegistrations","sharedRegisterType","whenDependentTypesAreResolved","getTypeName","getFunctionName","heap32VectorToArray","requireRegisteredType","usesDestructorStack","checkArgCount","getRequiredArgCount","createJsInvoker","UnboundTypeError","EmValType","EmValOptionalType","throwUnboundTypeError","ensureOverloadTable","exposePublicSymbol","replacePublicSymbol","embindRepr","registeredInstances","getBasestPointer","getInheritedInstance","registeredPointers","registerType","integerReadValueFromPointer","floatReadValueFromPointer","assertIntegerRange","readPointer","runDestructors","craftInvokerFunction","embind__requireFunction","genericPointerToWireType","constNoSmartPtrRawPointerToWireType","nonConstNoSmartPtrRawPointerToWireType","init_RegisteredPointer","RegisteredPointer","RegisteredPointer_fromWireType","runDestructor","releaseClassHandle","finalizationRegistry","detachFinalizer_deps","detachFinalizer","attachFinalizer","makeClassHandle","init_ClassHandle","ClassHandle","throwInstanceAlreadyDeleted","deletionQueue","flushPendingDeletes","delayFunction","RegisteredClass","shallowCopyInternalPointer","downcastPointer","upcastPointer","validateThis","char_0","char_9","makeLegalFunctionName","emval_freelist","emval_handles","emval_symbols","getStringOrSymbol","Emval","emval_returnValue","emval_lookupTypes","emval_methodCallers","emval_addMethodCaller"];X8.forEach(v0);function Y8(){n0("fetchSettings"),n0("logReadFiles"),n0("loadSplitModule"),n0("onMalloc"),n0("onRealloc"),n0("onFree"),n0("onSbrkGrow")}var oi=Z("___getTypeName"),wn=Z("_malloc"),QA=Z("_free"),Q8=n._MdnCom_ESCHandler=Z("_MdnCom_ESCHandler"),Z8=n._MdnCom_Free=Z("_MdnCom_Free"),xv=n._MdnCom_RawRx=Z("_MdnCom_RawRx"),Av=n._MdnCom_CryptoSelfTest=Z("_MdnCom_CryptoSelfTest"),ev=n._MdnCom_SetCompanionKeypair=Z("_MdnCom_SetCompanionKeypair"),rv=n._MdnCom_InitiateEcsHandshake=Z("_MdnCom_InitiateEcsHandshake"),tv=n._MdnCom_SetSecDebug=Z("_MdnCom_SetSecDebug"),nv=n._MdnCom_GetEcsState=Z("_MdnCom_GetEcsState"),sv=n._MdnCom_ResetEcs=Z("_MdnCom_ResetEcs"),iv=n._MdnCom_RegisterEcsHandshakeCallback=Z("_MdnCom_RegisterEcsHandshakeCallback"),av=n._MdnCom_Init=Z("_MdnCom_Init"),ov=n._SendUtoQuery=Z("_SendUtoQuery"),Fv=n._SendUtoCmdExt=Z("_SendUtoCmdExt"),Fi=Z("_fflush"),Sn=Z("_emscripten_stack_get_end"),vv=Z("_emscripten_stack_get_base"),fv=Z("_strerror"),vi=Z("_emscripten_stack_init"),Ev=Z("_emscripten_stack_get_free"),lv=Z("__emscripten_stack_restore"),cv=Z("__emscripten_stack_alloc"),Bv=Z("_emscripten_stack_get_current"),Cv=Z("memory"),dv=Z("__indirect_function_table"),Dt=Z("wasmMemory"),qe=Z("wasmTable");function Dv(l){g(typeof l.__getTypeName<"u","missing Wasm export: __getTypeName"),g(typeof l.malloc<"u","missing Wasm export: malloc"),g(typeof l.free<"u","missing Wasm export: free"),g(typeof l.MdnCom_ESCHandler<"u","missing Wasm export: MdnCom_ESCHandler"),g(typeof l.MdnCom_Free<"u","missing Wasm export: MdnCom_Free"),g(typeof l.MdnCom_RawRx<"u","missing Wasm export: MdnCom_RawRx"),g(typeof l.MdnCom_CryptoSelfTest<"u","missing Wasm export: MdnCom_CryptoSelfTest"),g(typeof l.MdnCom_SetCompanionKeypair<"u","missing Wasm export: MdnCom_SetCompanionKeypair"),g(typeof l.MdnCom_InitiateEcsHandshake<"u","missing Wasm export: MdnCom_InitiateEcsHandshake"),g(typeof l.MdnCom_SetSecDebug<"u","missing Wasm export: MdnCom_SetSecDebug"),g(typeof l.MdnCom_GetEcsState<"u","missing Wasm export: MdnCom_GetEcsState"),g(typeof l.MdnCom_ResetEcs<"u","missing Wasm export: MdnCom_ResetEcs"),g(typeof l.MdnCom_RegisterEcsHandshakeCallback<"u","missing Wasm export: MdnCom_RegisterEcsHandshakeCallback"),g(typeof l.MdnCom_Init<"u","missing Wasm export: MdnCom_Init"),g(typeof l.SendUtoQuery<"u","missing Wasm export: SendUtoQuery"),g(typeof l.SendUtoCmdExt<"u","missing Wasm export: SendUtoCmdExt"),g(typeof l.fflush<"u","missing Wasm export: fflush"),g(typeof l.emscripten_stack_get_end<"u","missing Wasm export: emscripten_stack_get_end"),g(typeof l.emscripten_stack_get_base<"u","missing Wasm export: emscripten_stack_get_base"),g(typeof l.strerror<"u","missing Wasm export: strerror"),g(typeof l.emscripten_stack_init<"u","missing Wasm export: emscripten_stack_init"),g(typeof l.emscripten_stack_get_free<"u","missing Wasm export: emscripten_stack_get_free"),g(typeof l._emscripten_stack_restore<"u","missing Wasm export: _emscripten_stack_restore"),g(typeof l._emscripten_stack_alloc<"u","missing Wasm export: _emscripten_stack_alloc"),g(typeof l.emscripten_stack_get_current<"u","missing Wasm export: emscripten_stack_get_current"),g(typeof l.memory<"u","missing Wasm export: memory"),g(typeof l.__indirect_function_table<"u","missing Wasm export: __indirect_function_table"),oi=U0("__getTypeName",1),wn=U0("malloc",1),QA=U0("free",1),Q8=n._MdnCom_ESCHandler=U0("MdnCom_ESCHandler",1),Z8=n._MdnCom_Free=U0("MdnCom_Free",1),xv=n._MdnCom_RawRx=U0("MdnCom_RawRx",1),Av=n._MdnCom_CryptoSelfTest=U0("MdnCom_CryptoSelfTest",0),ev=n._MdnCom_SetCompanionKeypair=U0("MdnCom_SetCompanionKeypair",2),rv=n._MdnCom_InitiateEcsHandshake=U0("MdnCom_InitiateEcsHandshake",0),tv=n._MdnCom_SetSecDebug=U0("MdnCom_SetSecDebug",1),nv=n._MdnCom_GetEcsState=U0("MdnCom_GetEcsState",0),sv=n._MdnCom_ResetEcs=U0("MdnCom_ResetEcs",0),iv=n._MdnCom_RegisterEcsHandshakeCallback=U0("MdnCom_RegisterEcsHandshakeCallback",1),av=n._MdnCom_Init=U0("MdnCom_Init",2),ov=n._SendUtoQuery=U0("SendUtoQuery",2),Fv=n._SendUtoCmdExt=U0("SendUtoCmdExt",4),Fi=U0("fflush",1),Sn=l.emscripten_stack_get_end,vv=l.emscripten_stack_get_base,fv=U0("strerror",1),vi=l.emscripten_stack_init,Ev=l.emscripten_stack_get_free,lv=l._emscripten_stack_restore,cv=l._emscripten_stack_alloc,Bv=l.emscripten_stack_get_current,Cv=Dt=l.memory,dv=qe=l.__indirect_function_table}var fi={__cxa_throw:HA,_abort_js:Sr,_embind_finalize_value_object:je,_embind_register_bigint:$r,_embind_register_bool:o,_embind_register_class:_e,_embind_register_class_constructor:b,_embind_register_class_property:$,_embind_register_emval:N0,_embind_register_float:b0,_embind_register_function:px,_embind_register_integer:qx,_embind_register_memory_view:Ix,_embind_register_std_string:mn,_embind_register_std_wstring:v,_embind_register_value_object:B,_embind_register_value_object_field:u,_embind_register_void:m,_emval_create_invoker:T0,_emval_decref:a0,_emval_get_module_property:h0,_emval_get_property:vx,_emval_incref:gx,_emval_invoke:Ox,_emval_new_cstring:Jx,_emval_run_destructors:Vx,emscripten_resize_heap:bx,fd_close:P8,fd_seek:M8,fd_write:L8,random_get:O8},Ei;function uv(){vi(),Y()}function pv(){uv(),Hx();function l(){g(!Ei),Ei=!0,n.calledRun=!0,!R&&(hA(),d0?.(n),n.onRuntimeInitialized?.(),r0("onRuntimeInitialized"),g(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),gA())}n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>n.setStatus(""),1),l()},1)):l(),W()}var ar;ar=await _r(),pv(),M0?s=n:s=new Promise((l,C)=>{d0=l,q0=C});for(let l of Object.keys(n))l in t||Object.defineProperty(t,l,{configurable:!0,get(){sx(`Access to module property ('${l}') is no longer possible via the module constructor argument; Instead, use the result of the module constructor.`)}});return s}})();typeof A=="object"&&typeof x=="object"?(x.exports=e,x.exports.default=e):typeof define=="function"&&define.amd&&define([],()=>e)}}),Ro=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:Kt,n:Ht,Gx:ro,Gy:to,a:As,d:es,h:Ll}=Ro,ot=32,Rl=(...A)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...A)},wx=(A="")=>{let x=new Error(A);throw Rl(x,wx),x},Ol=A=>typeof A=="bigint",Gl=A=>typeof A=="string",Ul=A=>A instanceof Uint8Array||ArrayBuffer.isView(A)&&A.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in A&&A.BYTES_PER_ELEMENT===1,Ke=(A,x,e="")=>{let r=Ul(A),t=A?.length,s=x!==void 0;if(!r||s&&t!==x){let n=e&&`"${e}" `,F=s?` of length ${x}`:"",f=r?`length=${t}`:`type=${typeof A}`,c=n+"expected Uint8Array"+F+", got "+f;throw r?new RangeError(c):new TypeError(c)}return A},en=A=>new Uint8Array(A),ks=A=>Uint8Array.from(A),Oo=(A,x)=>A.toString(16).padStart(x,"0"),Go=A=>Array.from(Ke(A)).map(x=>Oo(x,2)).join(""),re={_0:48,_9:57,A:65,F:70,a:97,f:102},no=A=>{if(A>=re._0&&A<=re._9)return A-re._0;if(A>=re.A&&A<=re.F)return A-(re.A-10);if(A>=re.a&&A<=re.f)return A-(re.a-10)},Uo=A=>{let x="hex invalid";if(!Gl(A))return wx(x);let e=A.length,r=e/2;if(e%2)return wx(x);let t=en(r);for(let s=0,n=0;s<r;s++,n+=2){let F=no(A.charCodeAt(n)),f=no(A.charCodeAt(n+1));if(F===void 0||f===void 0)return wx(x);t[s]=F*16+f}return t},Ho=()=>globalThis?.crypto,Hl=()=>Ho()?.subtle??wx("crypto.subtle must be defined, consider polyfill"),zo=(...A)=>{let x=0;for(let t of A)x+=Ke(t).length;let e=en(x),r=0;return A.forEach(t=>{e.set(t,r),r+=t.length}),e},zl=(A=ot)=>Ho().getRandomValues(en(A)),Jt=BigInt,Re=(A,x,e,r="bad number: out of range")=>{if(!Ol(A))throw new TypeError(r);if(x<=A&&A<e)return A;throw new RangeError(r)},tx=(A,x=Kt)=>{let e=A%x;return e>=0n?e:x+e},so=(1n<<255n)-1n,C0=A=>{A<0n&&wx("negative coordinate");let x=(A>>255n)*19n+(A&so);return x=(x>>255n)*19n+(x&so),x%Kt},Kl=A=>tx(A,Ht),Jl=(A,x)=>{(A===0n||x<=0n)&&wx("no inverse n="+A+" mod="+x);let e=tx(A,x),r=x,t=0n,s=1n,n=1n,F=0n;for(;e!==0n;){let f=r/e,c=r%e,D=t-n*f,p=s-F*f;r=e,e=c,t=n,s=F,n=D,F=p}return r===1n?tx(t,x):wx("no inverse")},Vl=A=>{let x=tc[A];return typeof x!="function"&&wx("hashes."+A+" not set"),x},Wl=A=>Ke(A,64,"digest"),rs=A=>A instanceof ft?A:wx("Point expected"),cs=2n**256n,_s=class Oe{constructor(x,e,r,t){l0(this,"X"),l0(this,"Y"),l0(this,"Z"),l0(this,"T");let s=cs;this.X=Re(x,0n,s),this.Y=Re(e,0n,s),this.Z=Re(r,1n,s),this.T=Re(t,0n,s),Object.freeze(this)}static CURVE(){return Ro}static fromAffine(x){return new Oe(x.x,x.y,1n,C0(x.x*x.y))}static fromBytes(x,e=!1){let r=es,t=ks(Ke(x,ot)),s=x[31];t[31]=s&-129;let n=Ko(t);Re(n,0n,e?cs:Kt);let f=C0(n*n),c=tx(f-1n),D=C0(r*f+1n),{isValid:p,value:j}=Ql(c,D);p||wx("bad point: y not sqrt");let _=(j&1n)===1n,k=(s&128)!==0;return!e&&j===0n&&k&&wx("bad point: x==0, isLastByteOdd"),k!==_&&(j=tx(-j)),new Oe(j,n,1n,C0(j*n))}static fromHex(x,e){return Oe.fromBytes(Uo(x),e)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let x=As,e=es,r=this;if(r.is0())return wx("bad point: ZERO");let{X:t,Y:s,Z:n,T:F}=r,f=C0(t*t),c=C0(s*s),D=C0(n*n),p=C0(D*D),j=C0(f*x),_=C0(D*(j+c)),k=tx(p+C0(e*C0(f*c)));if(_!==k)return wx("bad point: equation left != right (1)");let S=C0(t*s),P=C0(n*F);return S!==P?wx("bad point: equation left != right (2)"):this}equals(x){let{X:e,Y:r,Z:t}=this,{X:s,Y:n,Z:F}=rs(x),f=C0(e*F),c=C0(s*t),D=C0(r*F),p=C0(n*t);return f===c&&D===p}is0(){return this.equals(He)}negate(){return new Oe(tx(-this.X),this.Y,this.Z,tx(-this.T))}double(){let{X:x,Y:e,Z:r}=this,t=As,s=C0(x*x),n=C0(e*e),F=C0(2n*r*r),f=C0(t*s),c=tx(x+e),D=tx(C0(c*c)-s-n),p=tx(f+n),j=tx(p-F),_=tx(f-n),k=C0(D*j),S=C0(p*_),P=C0(D*_),N=C0(j*p);return new Oe(k,S,N,P)}add(x){let{X:e,Y:r,Z:t,T:s}=this,{X:n,Y:F,Z:f,T:c}=rs(x),D=As,p=es,j=C0(e*n),_=C0(r*F),k=C0(C0(s*p)*c),S=C0(t*f),P=tx(C0(tx(e+r)*tx(n+F))-j-_),N=tx(S-k),L=tx(S+k),O=tx(_-C0(D*j)),s0=C0(P*N),R=C0(L*O),g=C0(P*O),M=C0(N*L);return new Oe(s0,R,M,g)}subtract(x){return this.add(rs(x).negate())}multiply(x,e=!0){if(!e&&x===0n||(Re(x,1n,Ht),!e&&this.is0()))return He;if(x===1n)return this;if(this.equals(mr))return oc(x).p;let r=He,t=mr;for(let s=this;x>0n;s=s.double(),x>>=1n)x&1n?r=r.add(s):e&&(t=t.add(s));return r}multiplyUnsafe(x){return this.multiply(x,!1)}toAffine(){let{X:x,Y:e,Z:r}=this;if(this.equals(He))return{x:0n,y:1n};let t=Jl(r,Kt);C0(r*t)!==1n&&wx("invalid inverse");let s=C0(x*t),n=C0(e*t);return{x:s,y:n}}toBytes(){let{x,y:e}=this.toAffine(),r=Xl(e);return r[31]|=x&1n?128:0,r}toHex(){return Go(this.toBytes())}clearCofactor(){return this.multiply(Jt(Ll),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let x=this.multiply(Ht/2n,!1).double();return Ht%2n&&(x=x.add(this)),x.is0()}};l0(_s,"BASE");l0(_s,"ZERO");var ft=_s,mr=new ft(ro,to,1n,tx(ro*to)),He=new ft(0n,1n,1n,0n);ft.BASE=mr;ft.ZERO=He;var Xl=A=>Uo(Oo(Re(A,0n,cs),64)).reverse(),Ko=A=>Jt("0x"+Go(ks(Ke(A)).reverse())),GA=(A,x)=>{let e=A;for(;x-- >0n;)e=C0(e*e);return e},Yl=A=>{let x=C0(A*A),e=C0(x*A),r=C0(GA(e,2n)*e),t=C0(GA(r,1n)*A),s=C0(GA(t,5n)*t),n=C0(GA(s,10n)*s),F=C0(GA(n,20n)*n),f=C0(GA(F,40n)*F),c=C0(GA(f,80n)*f),D=C0(GA(c,80n)*f),p=C0(GA(D,10n)*s);return{pow_p_5_8:C0(GA(p,2n)*A),b2:e}},io=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,Ql=(A,x)=>{let e=C0(x*C0(x*x)),r=C0(C0(e*e)*x),t=Yl(C0(A*r)).pow_p_5_8,s=C0(A*C0(e*t)),n=C0(x*C0(s*s)),F=s,f=C0(s*io),c=n===A,D=n===tx(-A),p=n===tx(-A*io);return c&&(s=F),(D||p)&&(s=f),(tx(s)&1n)===1n&&(s=tx(-s)),{isValid:c||D,value:s}},Zl=A=>Kl(Ko(A)),xc=(...A)=>Promise.resolve(Vl("sha512Async")(zo(...A))).then(Wl),Ac=A=>{let x=ks(A),e=x.slice(0,32);e[0]&=248,e[31]&=127,e[31]|=64;let r=x.slice(32,64),t=Zl(e),s=mr.multiply(t),n=s.toBytes();return{head:e,prefix:r,scalar:t,point:s,pointBytes:n}},ec=A=>xc(Ke(A,ot)).then(Ac),rc=A=>ec(A).then(x=>x.pointBytes),tc={sha512Async:async A=>{let x=Hl(),e=zo(A);return en(await x.digest("SHA-512",e.buffer))},sha512:void 0},nc=A=>(A=A===void 0?zl(ot):A,Ke(A,ot)),sc=async A=>{let x=nc(A),e=await rc(x);return{secretKey:x,publicKey:e}},Vt=8,ic=256,Jo=Math.ceil(ic/Vt)+1,Bs=2**(Vt-1),ac=()=>{let A=[],x=mr,e=x;for(let r=0;r<Jo;r++){e=x,A.push(e);for(let t=1;t<Bs;t++)e=e.add(x),A.push(e);x=e.double()}return A},ao=void 0,oo=(A,x)=>{let e=x.negate();return A?e:x},oc=A=>{let x=ao||(ao=ac()),e=He,r=mr,t=2**Vt,s=t,n=Jt(t-1),F=Jt(Vt);for(let f=0;f<Jo;f++){let c=Number(A&n);A>>=F,c>Bs&&(c-=s,A+=1n);let D=f*Bs,p=D,j=D+Math.abs(c)-1,_=f%2!==0,k=c<0;c===0?r=r.add(oo(_,x[p])):e=e.add(oo(k,x[j]))}return A!==0n&&wx("invalid wnaf"),{p:e,f:r}},Fc=32,vc=64;async function Fo(){let{secretKey:A,publicKey:x}=await sc(),e=new Uint8Array(vc);return e.set(A,0),e.set(x,Fc),{publicKey:x,privateKey:e}}function Cs(A){let x="";for(let e of A)x+=String.fromCharCode(e);return btoa(x)}function vo(A,x="base64 value"){return Ec(fc(A,x))}function fc(A,x){try{return atob(A)}catch{throw new Error(`malformed ${x}: not valid base64`)}}function Vo(A){return Cs(A).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Ec(A){let x=new Uint8Array(A.length);for(let e=0;e<A.length;e++)x[e]=A.charCodeAt(e);return x}var Wt=class extends Error{constructor(A,x,e){super(e),l0(this,"httpStatus",A),l0(this,"code",x),this.name="CertApiError"}},fo="/api/1/companion/cert",lc=10080*60*1e3,Eo=typeof __COMPANION_AUTH_DEV_PROXY__<"u"&&__COMPANION_AUTH_DEV_PROXY__;async function cc(A,x){let e=A.apiHost.replace(/\/+$/,""),r=Eo?fo:e+fo,t={Authorization:`Bearer ${A.accessToken}`,"Content-Type":"application/json",Accept:"application/json"};Eo&&e&&(t["x-target-host"]=e);let s=await fetch(r,{method:"POST",headers:t,body:JSON.stringify({publicKey:Vo(x.publicKey),subject:x.subject})});if(!s.ok){let F="unknown_error",f=s.statusText||`Cert API request failed (${s.status})`;try{let c=await s.json();c.code&&(F=c.code),c.message&&(f=c.message)}catch{}throw new Wt(s.status,F,f)}let n=await s.json();if(!n.certificate||!n.notAfter)throw new Wt(s.status,"invalid_response","Cert API response missing certificate or notAfter");return{certificateBase64Url:n.certificate,notAfter:n.notAfter}}function Bc(A,x=lc){let e=Date.parse(A);return Number.isFinite(e)?e-Date.now()>x:!1}var Cc=Il(Ml(),1),Lt="[device-master]",ws={debug:(A,...x)=>console.debug(Lt,A,...x),info:(A,...x)=>console.info(Lt,A,...x),warn:(A,...x)=>console.warn(Lt,A,...x),error:(A,...x)=>console.error(Lt,A,...x)},ds={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},dc=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function Xo(A,x=0){let e=~~x^-1;for(let r=0;r<A.length;r++)e=e>>>8^dc[(e^A[r])&255];return(e^-1)>>>0}var lo=Date.UTC(1999,11,31,0,0,0);function co(A,x,e=" "){let r=""+A,t=Math.max(0,Math.abs(x)-r.length),s=e.repeat(t);return x<0?r+s:s+r}function Ie(A,x){return("0000000000000000"+A.toString(16)).substr(-x)}function Bo(A){if(A instanceof Uint8Array)return A;if(A instanceof ArrayBuffer)return new Uint8Array(A);if(A&&Object.hasOwn(A,"type")&&A.type==="Buffer"&&Object.hasOwn(A,"data")&&A.data instanceof Array)return Uint8Array.from(A.data);if(A.buffer)return new Uint8Array(A.buffer,A.byteOffset,A.byteLength);throw new Error("can not convert value to Uint8Array")}var I6=new Uint8Array([0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64]),M6=new Uint8Array([0,192,193,1,195,3,2,194,198,6,7,199,5,197,196,4,204,12,13,205,15,207,206,14,10,202,203,11,201,9,8,200,216,24,25,217,27,219,218,26,30,222,223,31,221,29,28,220,20,212,213,21,215,23,22,214,210,18,19,211,17,209,208,16,240,48,49,241,51,243,242,50,54,246,247,55,245,53,52,244,60,252,253,61,255,63,62,254,250,58,59,251,57,249,248,56,40,232,233,41,235,43,42,234,238,46,47,239,45,237,236,44,228,36,37,229,39,231,230,38,34,226,227,35,225,33,32,224,160,96,97,161,99,163,162,98,102,166,167,103,165,101,100,164,108,172,173,109,175,111,110,174,170,106,107,171,105,169,168,104,120,184,185,121,187,123,122,186,190,126,127,191,125,189,188,124,180,116,117,181,119,183,182,118,114,178,179,115,177,113,112,176,80,144,145,81,147,83,82,146,150,86,87,151,85,149,148,84,156,92,93,157,95,159,158,94,90,154,155,91,153,89,88,152,136,72,73,137,75,139,138,74,78,142,143,79,141,77,76,140,68,132,133,69,135,71,70,134,130,66,67,131,65,129,128,64]);var Dc=[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376],uc=new Map(Dc.map((A,x)=>[A,128+x]));function pc(A){return A<=127||A>=160&&A<=255?A:uc.get(A)??63}var it="uto_script.dat",Yo="uto_fw.dat",Ss=(A=>(A[A.RESULT=0]="RESULT",A[A.QUERY=1]="QUERY",A[A.DELETE=2]="DELETE",A[A.DATA=3]="DATA",A[A.UNS_DATA=4]="UNS_DATA",A[A.LIVE_DATA=5]="LIVE_DATA",A[A.FILE_LIST=7]="FILE_LIST",A[A.FILE_RETR=8]="FILE_RETR",A[A.FILE_STOR=9]="FILE_STOR",A[A.FILE_DELE=10]="FILE_DELE",A[A.SET_VALUE=11]="SET_VALUE",A))(Ss||{});var ue=(A=>(A[A.DEVINFO=0]="DEVINFO",A[A.STAMPS=1]="STAMPS",A[A.LIC_QUERY=2]="LIC_QUERY",A[A.FILEMAP=3]="FILEMAP",A[A.MNTCFG=4]="MNTCFG",A[A.MDNCFG=5]="MDNCFG",A[A.CONTEXT=128]="CONTEXT",A[A.ALERTS=4294901767]="ALERTS",A[A.HISTDATA0=26368]="HISTDATA0",A[A.LOG=26375]="LOG",A[A.SYSCFG=26378]="SYSCFG",A[A.STATE=26389]="STATE",A[A.LOCALS=26402]="LOCALS",A[A.POS=26404]="POS",A[A.CTRLAMX=26405]="CTRLAMX",A[A.DYNPOS__=26406]="DYNPOS__",A[A.CONFIG0=26416]="CONFIG0",A[A.CONFIG1=26417]="CONFIG1",A[A.CONFIG2=26418]="CONFIG2",A[A.CONFIG3=26419]="CONFIG3",A[A.CONFIG4=26420]="CONFIG4",A[A.CONFIG5=26421]="CONFIG5",A[A.CONFIG6=26422]="CONFIG6",A[A.CONFIG7=26423]="CONFIG7",A[A.CONFIG8=26424]="CONFIG8",A[A.CONFIG9=26425]="CONFIG9",A[A.SYSOTP=26432]="SYSOTP",A[A.SYSFLASH=26433]="SYSFLASH",A[A.APPOTP=26434]="APPOTP",A[A.APPFLASH=26435]="APPFLASH",A[A.APPSTATE=26436]="APPSTATE",A[A.SYSINFO=26437]="SYSINFO",A[A.APPINFO=26438]="APPINFO",A[A.SYSSTATE=26439]="SYSSTATE",A[A.HISTDATA1=26528]="HISTDATA1",A[A.HISTDATA2=26529]="HISTDATA2",A[A.HISTDATA3=26530]="HISTDATA3",A[A.HISTDATA4=26531]="HISTDATA4",A[A.HISTDATA5=26532]="HISTDATA5",A[A.HISTDATA6=26533]="HISTDATA6",A[A.HISTDATA7=26534]="HISTDATA7",A[A.HISTDATA8=26535]="HISTDATA8",A[A.HISTDATA9=26536]="HISTDATA9",A[A.HISTDATA_RAW=26623]="HISTDATA_RAW",A[A.CONFIGA=4294928218]="CONFIGA",A[A.CONFIGB=4294928219]="CONFIGB",A[A.CONFIGC=4294928220]="CONFIGC",A))(ue||{});var $s=(A=>(A[A.off=0]="off",A[A.pawn=2]="pawn",A))($s||{});var bc=97;function Ds(A){return A&bc}var Co={config0:26416,config1:26417,config2:26418,config3:26419,config4:26420,config5:26421,config6:26422,config7:26423,config8:26424,config9:26425,histdata0:26368,histdata1:26528,histdata2:26529,histdata3:26530,histdata4:26531,histdata5:26532,histdata6:26533,histdata7:26534,histdata8:26535,histdata9:26536},mc=class{constructor(){}resultToString(A){A|=0;let x=A&256?"+DISC":"";switch(A&255){case 0:return"OK"+x;case 1:return"E_TAG"+x;case 2:return"E_DLEN"+x;case 3:return"E_DATA"+x;case 4:return"E_STAMP"+x;case 5:return"E_EOD"+x;case 6:return"E_CMD"+x;case 7:return"E_CMDDENIED"+x;case 8:return"E_FULL"+x;case 9:return"E_NOTSUPPORTED"+x;case 10:return"E_OLDDATA"+x;case 11:return"E_STORAGE"+x;case 12:return"E_STORAGE"+x}return"E_0x"+Ie(A,4)+x}commandToString(A){switch(A|=0,A){case 0:return"COMMAND_RESULT";case 1:return"COMMAND_QUERY";case 2:return"COMMAND_DEL";case 3:return"COMMAND_DATA";case 4:return"COMMAND_UNS_DATA";case 5:return"COMMAND_LIVE_DATA";case 7:return"COMMAND_FILE_LIST";case 8:return"COMMAND_FILE_RETR";case 9:return"COMMAND_FILE_STOR";case 10:return"COMMAND_FILE_DELE";case 11:return"COMMAND_SET_VALUE"}return"COMMAND_0x"+Ie(A,2)}tagToString(A){A|=0;let x=Object.entries(ue).find(([,e])=>e===A);return x?"TAG_"+x[0]:"TAG_0x"+Ie(A,4)}containerIdToTag(A,x){let e=Co[A]||null;return e&&x&&A.startsWith("histdata")?26623:e}containerIdOf(A){let x=Object.entries(Co).find(([,e])=>e===A.wTag);if(x)return x[0];if(A.wTag===26623){if(!A.data||!A.data.byteLength)return null;let e=A.data.getUint8(0);return e===32?"alerts":e>=0&&e<=9?`histdata${e}`:null}return null}formatSerialNumber(A,x="-"){return A?A.substr(0,4)+x+A.substr(4,4)+x+A.substr(8,4)+x+A.substr(12):"(none)"}decodeUplinkState(A){let x={FAILED:1,ACTIVE:2,STARTED:4,RETRY:8,WAKEUPABLE:16,EXTSIM:32,DISABLED:64,WAKEUP:256,POSUPDATE_ACTIVE:512},e=!!(A&x.WAKEUPABLE),r=[];A&x.POSUPDATE_ACTIVE?r=["locating",!1]:A&x.RETRY?r=["retry",!1]:A&x.STARTED?r=["dialing",!1]:A&x.ACTIVE?r=["active",!1]:A&x.FAILED?r=["failed",e]:A&x.DISABLED?r=["disabled",!1]:r=["offline",e];let t=x.WAKEUPABLE|x.RETRY|x.STARTED|x.ACTIVE|x.POSUPDATE_ACTIVE|x.FAILED|x.DISABLED|x.EXTSIM;return{signal:r[0],wakeupAble:r[1],path:A&x.EXTSIM?"xsim ":"isim ",txStateUnknown:A&~t}}stamp40ToMS(A){let x=Math.trunc(A/256),e=A&255;return Math.round(x*1e3+1e3*e/256)+lo}msToStamp40(A){let x=(A-lo)/1e3,e=Math.trunc(x),r=Math.round((x-e)*256);return e*256+r}stamp40ToDate(A){return new Date(this.stamp40ToMS(A))}utf8Unpack(A,x,e){let r=new TextDecoder("utf-8"),t=0;for(;t<e&&A.getUint8(x+t);)t++;let s=new Uint8Array(A.buffer,x,t);return r.decode(s)}ansiUnpack(A,x,e,r){try{let t=Bo(A),s=new TextDecoder(r),n=0;for(;n<e&&t[x+n];)n++;return s.decode(t.slice(x,x+n))}catch(t){return console.log("?"+t.message,t),`ERR-unknown codepage "${r}"`}}cp1252Unpack(A,x,e){return this.ansiUnpack(A,x,e,"cp1252")}ansiPack(A,x,e,r){let t=Bo(A);t.fill(0,x,x+e);for(let s=0;s<e&&s<r.length;s++)t[x+s]=pc(r.charCodeAt(s))}cp1252Pack(A,x,e,r){return this.ansiPack(A,x,e,r)}dataFrameNotNull(A){if(!A.data)throw new Error("UtoFrame does not have any data!")}decode_DEVINFO(A){this.dataFrameNotNull(A);let x=A.data,e=x.getUint16(0),r=x.getUint16(2),t=x.getUint16(4),s=x.getUint32(6),n=(Ie(s,8)+Ie(A.dwDevSN,8)).toUpperCase(),F=[];for(let f=0;f<(x.byteLength-10)/5;f++){let c=x.getUint8(10+f*5+2),D=x.getUint16(10+f*5);F.push({wTag:D,sTag:this.tagToString(D),size:x.getUint16(10+f*5+3),flags:{historic:!!(c&1),single:!(c&1),up:!!(c&2),down:!!(c&4),variableLength:!!(c&8),setValue:!!(c&16)}})}return{serialNumber:n,class:Ie(e,4),firmwareVersion:`${co(t>>8,2)}v${co(t&255,3,"0")}`,flags:Ie(r,4),utos:F}}decode_STAMPS(A){this.dataFrameNotNull(A);let x=A.data,e={contextId:x.getBigUint64(0,!0).toString(16).toUpperCase(),stamps:[]};for(let r=0;r<(x.byteLength-8)/5;r++)e.stamps.push(x.getUint32(8+r*5+0)*256+x.getUint8(8+r*5+4));return e}decode_CONTEXT(A){this.dataFrameNotNull(A);let x=A.data;return{id:x.getBigUint64(0,!0).toString(16).toUpperCase(),name:this.cp1252Unpack(x,8,50)}}encode_CONTEXT(A){let x=new Uint8Array(58),e=new DataView(x.buffer);return e.setBigUint64(0,BigInt("0x"+A.id),!0),this.cp1252Pack(e,8,50,A.name),x}decode_FILEMAP(A){this.dataFrameNotNull(A);let x=A.data,e=x.getUint16(13,!1),r={stamp:x.getUint32(0,!1)*256+x.getUint8(4),size:x.getUint32(5,!1),crc32:x.getUint32(9,!1),flags:{read:!!(e&1),write:!!(e&2),node:!!(e&4),system:!!(e&8),extra:e&-16},_flags:e,name:this.cp1252Unpack(x,15,x.byteLength-15)};if(r.flags?.extra)throw new Error("?UTO.decode_FILEMAP.unknown-file-flags."+r.flags.extra);return r}encode_FILEMAP(A){if(A.flags){let r=0;A.flags.extra&&(r|=A.flags.extra|0),A.flags.read&&(r|=1),A.flags.write&&(r|=2),A.flags.node&&(r|=4),A.flags.system&&(r|=8),A._flags=r}let x=new Uint8Array(15+A.name.length+1),e=new DataView(x.buffer);return e.setUint32(0,Math.trunc(A.stamp/256),!1),e.setUint8(4,A.stamp&255),e.setUint32(5,A.size,!1),e.setUint32(9,A.crc32,!1),e.setUint16(13,A._flags,!1),this.cp1252Pack(e,15,256,A.name),x}decode_RM2M_STATE(A){this.dataFrameNotNull(A);let x=A.data;return{rssi:x.getInt8(0),uplinkMode:x.getUint8(1),imei:this.cp1252Unpack(x,61,15),hardwareId:this.cp1252Unpack(x,96,50),sim:{id:this.cp1252Unpack(x,2,15),apn:this.cp1252Unpack(x,17,40),iccId:this.cp1252Unpack(x,76,20)},network:{mcc:x.getUint16(57),mnc:x.getUint16(59)}}}},V0=new mc,hr={nowMs:()=>Date.now()},Qo=class{constructor(A="(unnamed)"){l0(this,"name"),l0(this,"_locked"),l0(this,"_chain"),this.name=A,this._locked=0,this._chain=[]}get islocked(){return!!this._locked}requestLock(){if(++this._locked!==1)return new Promise(A=>{this._chain.push(A)})}unlock(){--this._locked,this._chain.length&&this._chain.shift()()}async runExclusive(A){await this.requestLock();try{return await A()}finally{this.unlock()}}},Do=new WeakMap;function jc(A,x){let r=(Do.get(A)??Promise.resolve()).then(()=>hc(A,x));return Do.set(A,r.catch(()=>{})),r}async function hc(A,x){A.interface&&A.interface==="ble"?await gc(async e=>{await A.write(e)},x,A.mtuSize??23):await A.write(x)}async function gc(A,x,e=23){let r=new Uint8Array(x),t=e-3;for(let s=0;s<r.byteLength;s+=t){let n=r.slice(s,s+t);await A(n.buffer)}}var uo=15e3,yc=500,kc=3,_c=1024;function po(A){return A?.utos.find(e=>e.wTag===3)?.size||_c}var qs=class zt extends Wo.EventEmitter{constructor(x,e,r=hr){super(),l0(this,"mdnComInterface"),l0(this,"receiveUto"),l0(this,"sendUto"),l0(this,"rxUto"),l0(this,"txStream"),l0(this,"SendUtoCmdExt"),l0(this,"utoPortLock"),l0(this,"transport"),l0(this,"logger"),l0(this,"ecsHandshakeResolver",null),l0(this,"disposeTransportListener",null),l0(this,"encrypted",!1),l0(this,"lastTxWrite",Promise.resolve()),l0(this,"timeSource"),l0(this,"fileChunkSize",po(null)),this.mdnComInterface=null,this.receiveUto=null,this.sendUto=null,this.rxUto=null,this.txStream=null,this.SendUtoCmdExt=null,this.utoPortLock=new Qo("UTO-Port"),this.transport=x,this.logger=e??ws,this.timeSource=r}async init(){if(this.mdnComInterface!==null)return;this.mdnComInterface=await(0,Cc.default)({print:s=>{this.logger.info(`[mdnCom] ${s}`),this.emit("mdnCom",s)},printErr:s=>{this.logger.error(`[mdnCom] ${s}`),this.emit("mdnComError",s)}});let x=this.mdnComInterface.MdnCom_Init;this.receiveUto=this.mdnComInterface.MdnCom_RawRx,this.sendUto=this.mdnComInterface.MdnCom_SendUtoQuery,this.rxUto=this.mdnComInterface.MdnCom_GetRxUto,this.txStream=this.mdnComInterface.MdnCom_GetTxStream,this.SendUtoCmdExt=this.mdnComInterface.MdnCom_SendUtoCmdExt;let e=this.mdnComInterface.addFunction(()=>{if(this.txStream){let s=this.txStream();this.lastTxWrite=jc(this.transport,s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength))}},"v"),r=this.mdnComInterface.addFunction(()=>{if(this.rxUto){let s=this.rxUto(),n=this.parseUtoFrame(s);this.emit("utoFrame",n)}},"v");await x(e,r);let t=this.mdnComInterface.addFunction(s=>{if(this.logger.info(`[ecs] handshake event from WASM: result=${s} resolverPresent=${this.ecsHandshakeResolver!==null}`),this.ecsHandshakeResolver){let n=this.ecsHandshakeResolver;this.ecsHandshakeResolver=null,n({success:s===0,resultCode:s})}else this.logger.warn("[ecs] handshake event fired but no resolver registered \u2014 Promise will hang")},"vi");this.logger.info(`[ecs] registering handshake callback fn=${t}`),this.mdnComInterface.MdnCom_RegisterEcsHandshakeCallback(t),this.disposeTransportListener=this.transport.onData(async s=>{this.receiveUto&&await this.receiveUto(new Uint8Array(s))}),await this.requestDeviceInfo().catch()}async dispose(x){if(this.logger.info("[dispose] starting dispose"),this.encrypted){if(!x){let e=new Error("[dispose] encrypted session active but no AtCommandHandler provided \u2014 cannot send connection close");throw this.logger.error(e.message),e}try{this.logger.info("[dispose] requesting context for encrypted close");let e=await this.requestContext();e?(this.logger.info("[dispose] writing context back to device"),await this.writeContext(e)):this.logger.warn("[dispose] requestContext returned null \u2014 skipping writeContext")}catch(e){this.logger.error(`[dispose] error during context round trip: ${e}`)}try{this.logger.info("[dispose] sending connection close"),await x.sendConnectionClose(),this.logger.info("[dispose] connection close acknowledged")}catch(e){this.logger.error(`[dispose] error sending connection close: ${e}`)}finally{this.encrypted=!1,this.logger.info("[dispose] encrypted flag cleared")}}if(this.disposeTransportListener&&(this.logger.info("[dispose] removing transport data listener"),this.disposeTransportListener(),this.disposeTransportListener=null),this.mdnComInterface){this.logger.info("[dispose] resetting WASM ECS state");try{this.mdnComInterface.MdnCom_ResetEcs()}catch(e){this.logger.error(`[dispose] error resetting WASM ECS state: ${e}`)}this.ecsHandshakeResolver=null}this.logger.info("[dispose] dispose complete")}isInitialized(){if(!this.mdnComInterface)throw new Error('utoMaster not initialized. Have you called "init()"?')}parseUtoFrame(x){return{dwDevSN:x.vDevID_u32,bCmd:x.vCmd_u8,stamp:x.vStamp_s.u32SysTime*256+x.vStamp_s.u8SysTime,wTag:x.vTag_u16&255,wTagFull:x.vTag_u16,sTag:V0.resultToString(x.vTag_u16),_dbg:x.vDevID_u32.toString(16),bVersion:1,_dlen:x.vDLen_u16,bRes:x.vRes_u8,bSeq:x.vSeq_u8,data:x.vData_pu8.length?new DataView(x.vData_pu8.buffer,x.vData_pu8.byteOffset,x.vData_pu8.length):null}}get utoStampNow(){return{u32SysTime:Math.floor(this.timeSource.nowMs()/1e3)-946598400,u8SysTime:0}}get utoStampNow40(){return this.utoStampNow.u32SysTime*256}async requestUto(x,e=0){await this.utoPortLock.requestLock();try{if(!this.sendUto)return null;let r=Math.trunc(e/256),t=e&255;return await this.sendWithRetry((s,n,F)=>{if(s.bCmd===0){let f=this.resultVerdict(s);f===5||f===0||f===4?n(null):F(s);return}if(s.wTagFull!==x)return F(s);n(s)},async()=>{this.sendUto(x,{u32SysTime:r,u8SysTime:t}),await this.lastTxWrite},{timeoutMessage:`[UtoMaster] requestUto: no response from device for tag=0x${x.toString(16)}`})}finally{this.utoPortLock.unlock()}}copyDataView(x){return new Uint8Array(x.buffer.slice(x.byteOffset,x.byteOffset+x.byteLength))}static resultCode(x){return{verdict:x.wTagFull&-257,disc:(x.wTagFull&256)!==0}}resultVerdict(x){let{verdict:e,disc:r}=zt.resultCode(x);return r&&(this.logger.warn(`[UtoMaster] device requested disconnect (RESULT 0x${x.wTagFull.toString(16).padStart(4,"0")})`),this.emit("deviceDisconnectRequested",x.wTagFull)),e}static concatChunks(x){let e=x.reduce((s,n)=>s+n.length,0),r=new Uint8Array(e),t=0;for(let s of x)r.set(s,t),t+=s.length;return r}sendWithRetry(x,e,r){let t=r?.timeoutMs??yc,s=r?.maxRetries??kc;return new Promise((n,F)=>{let f=0,c=!1,D=()=>{},p,j={resolve:k=>{c=!0,clearTimeout(p),this.removeListener("utoFrame",D),n(k)},reject:k=>{c=!0,clearTimeout(p),this.removeListener("utoFrame",D),F(k)}},_=async()=>{D=k=>x(k,j.resolve,j.reject),this.once("utoFrame",D);try{await e()}catch(k){if(c)return;this.removeListener("utoFrame",D),F(k);return}c||(p=setTimeout(()=>{if(this.removeListener("utoFrame",D),f>=s){F(new Error(r?.timeoutMessage??`[UtoMaster] no response from device after ${s} retries`));return}f++,this.logger.warn(`[UtoMaster] no response within ${t}ms, retrying (${f}/${s})`),_()},t))};_()})}createFrameIdleGuard(x,e,r){let t,s=()=>{t!==void 0&&(clearTimeout(t),t=void 0)};return{arm:()=>{s(),t=setTimeout(()=>{t=void 0,this.removeListener("utoFrame",x),r()},e)},clear:s}}async requestHistoricUtos(x,e,r,t=uo,s=0,n){return await this.utoPortLock.requestLock(),new Promise((F,f)=>{if(!this.sendUto)return F([]);let c=[],D=0,p=Promise.resolve(),j=P=>{if(_.arm(),P.bCmd===0){_.clear(),this.settleHistoricTransfer(P,c,n,p,F,f);return}if(P.wTagFull===x&&P.data&&(c.push({stamp40:P.stamp,data:this.copyDataView(P.data)}),r?.(++D),n&&s>0&&c.length>=s)){let N=c.splice(0);p=p.then(()=>n(N))}this.once("utoFrame",j)},_=this.createFrameIdleGuard(j,t,()=>f(new Error(`[UtoMaster] requestHistoricUtos timed out after ${t}ms (tag=0x${x.toString(16)}, ${D} records received)`)));this.once("utoFrame",j),_.arm();let k=Math.trunc(e/256),S=e&255;this.sendUto(x,{u32SysTime:k,u8SysTime:S})}).finally(()=>{this.utoPortLock.unlock()})}settleHistoricTransfer(x,e,r,t,s,n){let F=this.resultVerdict(x);if(!(F===5||F===0||F===4)){t.then(()=>n(x)).catch(n);return}let c=r&&e.length>0?e.splice(0):null;(c?t.then(()=>r(c)):t).then(()=>s(r?[]:e)).catch(n)}async requestFile(x,e,r=uo){return await this.utoPortLock.requestLock(),new Promise((t,s)=>{if(!this.SendUtoCmdExt)return t(new Uint8Array(0));let n=[],F=0,f=p=>{if(c.arm(),p.bCmd===0){c.clear();let j=this.resultVerdict(p);j===5||j===0?t(zt.concatChunks(n)):s(p);return}if(p.bCmd===3&&p.data){let j=this.copyDataView(p.data);n.push(j),F+=j.byteLength,e?.(F)}this.once("utoFrame",f)},c=this.createFrameIdleGuard(f,r,()=>s(new Error(`[UtoMaster] requestFile timed out after ${r}ms (file="${x}", ${F} bytes received)`)));this.once("utoFrame",f),c.arm();let D=new Uint8Array(x.length+1);for(let p=0;p<x.length;p++)D[p]=x.charCodeAt(p)&255;this.SendUtoCmdExt(8,3,{u32SysTime:0,u8SysTime:0},D)}).finally(()=>{this.utoPortLock.unlock()})}async deleteFile(x){let e=new Uint8Array(x.length+1);for(let r=0;r<x.length;r++)e[r]=x.charCodeAt(r)&255;await this.sendUTOCmdExt(10,3,e,0)}async sendSetValue(x,e,r){this.isInitialized();let t=new Uint8Array(e.length);V0.cp1252Pack(t,0,e.length,e);try{return await this.sendUTOCmdExt(11,x,t,r),{outcome:"ok",resultCode:0}}catch(s){let n=s;if(n&&n.bCmd===0&&typeof n.wTagFull=="number"){let{verdict:F}=zt.resultCode(n),f=n.wTagFull;return F===4?{outcome:"stamp",resultCode:f}:F===7||F===9?{outcome:"denied",resultCode:f}:{outcome:"error",resultCode:f}}return this.logger.error(`[UtoMaster] sendSetValue transport error tag=0x${x.toString(16)}: ${s}`),{outcome:"error"}}}async requestDeviceInfo(){let x=await this.requestUto(0,this.utoStampNow40),e=x?V0.decode_DEVINFO(x):null;return e&&(this.fileChunkSize=po(e)),e}get fileTransferChunkSize(){return this.fileChunkSize}async requestContext(){let x=await this.requestUto(128,this.utoStampNow40);return x?V0.decode_CONTEXT(x):null}async writeContext(x){await this.sendUTOCmdExt(3,128,V0.encode_CONTEXT(x))}async requestFileList(x){return await this.utoPortLock.requestLock(),new Promise((e,r)=>{if(!this.SendUtoCmdExt)return e({});let t={},s=n=>this.handleFileListFrame(n,t,x,e,r,s);this.once("utoFrame",s),this.SendUtoCmdExt(7,3,{u32SysTime:0,u8SysTime:0},new Uint8Array(0))}).finally(()=>{this.utoPortLock.unlock()})}handleFileListFrame(x,e,r,t,s,n){if(x.bCmd===0){let F=this.resultVerdict(x);F===5||F===0?t(r?e[r]?{[r]:e[r]}:{}:e):s(x);return}try{let F=V0.decode_FILEMAP(x);e[F.name]=F}catch(F){s(F);return}this.once("utoFrame",n)}async requestStamps(){let x=await this.requestUto(1,this.utoStampNow40);return x?V0.decode_STAMPS(x):null}async sendFile(x,e,r,t){let s=e;x===2&&(s=new Uint8Array(e.length+1),s.set(new Uint8Array(e),1),s[0]=x);let n={name:t??it,stamp:r===0?0:V0.msToStamp40(r??this.timeSource.nowMs()),size:s.length,_flags:11,crc32:Xo(s)},F=V0.encode_FILEMAP(n);if(!await this.sendUTOCmdExt(9,3,F,0)){let c=this.fileChunkSize;for(let D=0;D<s.length;D+=c){let p=Math.min(c,s.byteLength-D),j=new Uint8Array(s.buffer,s.byteOffset+D,p);await this.sendUTOCmdExt(3,3,j,D*256);let k=(D+p)/s.byteLength*100;this.emit("installing",k.toFixed(0))}}this.emit("installing",null)}async sendUTOCmdExt(x,e,r,t){await this.utoPortLock.requestLock();try{if(!this.SendUtoCmdExt)return null;let s=t??this.utoStampNow40,n=Math.trunc(s/256),F=s&255;return await this.sendWithRetry((f,c,D)=>{if(f.bCmd!==0){D(f);return}this.resultVerdict(f)===0?c(null):D(f)},async()=>{this.SendUtoCmdExt(x,e,{u32SysTime:n,u8SysTime:F},r),await this.lastTxWrite},{timeoutMessage:`[UtoMaster] sendUTOCmdExt: no response from device for cmd=${x} tag=0x${e.toString(16)}`})}finally{this.utoPortLock.unlock()}}async sendUTOData(x,e,r){return this.sendUTOCmdExt(3,x,e,r)}packOtpFlashString(x){let e=new Uint8Array(1024);return V0.cp1252Pack(e,0,1024,x),e}async writeAppOtp(x){await this.sendUTOData(26434,this.packOtpFlashString(x))}async writeAppFlash(x){await this.sendUTOData(26435,this.packOtpFlashString(x))}async writeSysOtp(x){await this.sendUTOData(26432,this.packOtpFlashString(x))}async writeSysFlash(x){await this.sendUTOData(26433,this.packOtpFlashString(x))}async initiateEcsHandshake(x){if(this.isInitialized(),x.companionPublicKey.length!==32)throw new Error(`companionPublicKey must be 32 bytes, got ${x.companionPublicKey.length}`);if(x.companionPrivateKey.length!==32&&x.companionPrivateKey.length!==64)throw new Error(`companionPrivateKey must be 32 bytes (seed) or 64 bytes (seed||public), got ${x.companionPrivateKey.length}`);let e=x.companionPublicKey.slice(0,32),r=x.companionPrivateKey.slice(0,32);this.logger.info(`[ecs] initiateEcsHandshake: pub.len=${e.length} seed.len=${r.length} state(pre)=${this.mdnComInterface.MdnCom_GetEcsState?.()}`);let t=this.mdnComInterface.MdnCom_SetCompanionKeypair(e,r);return this.logger.info(`[ecs] MdnCom_SetCompanionKeypair returned ${t}`),t<0?{success:!1,resultCode:t}:new Promise((s,n)=>{if(x.signal?.aborted){n(new Error("Operation aborted"));return}let F=()=>{this.ecsHandshakeResolver&&(this.logger.warn("[ecs] abort signal fired \u2014 resetting WASM state"),this.ecsHandshakeResolver=null,this.mdnComInterface.MdnCom_ResetEcs(),n(new Error("Operation aborted")))};x.signal?.addEventListener("abort",F,{once:!0}),this.ecsHandshakeResolver=c=>{this.logger.info(`[ecs] resolver invoked: result=${JSON.stringify(c)}`),x.signal?.removeEventListener("abort",F),c.success&&(this.encrypted=!0),s(c)},this.logger.info("[ecs] calling MdnCom_InitiateEcsHandshake()");let f=this.mdnComInterface.MdnCom_InitiateEcsHandshake();this.logger.info(`[ecs] MdnCom_InitiateEcsHandshake returned ${f} state(post)=${this.mdnComInterface.MdnCom_GetEcsState?.()}`),f<0?(this.ecsHandshakeResolver=null,x.signal?.removeEventListener("abort",F),s({success:!1,resultCode:f})):this.logger.info("[ecs] awaiting device INIT response via MdnCom_RawRx ...")})}resetEcs(){this.isInitialized(),this.mdnComInterface.MdnCom_ResetEcs(),this.ecsHandshakeResolver=null}};function Zx(A){return parseInt(A.slice(6),16)}function Gx(A){return"400000"+A.toString(16).toUpperCase().padStart(10,"0")}function Zo(A){return A?new Uint8Array(A):null}function Rt(A){return{...A,data:Zo(A.data)}}function ts(A){return{...A,data:Zo(A.data)}}var wc=/^400000[0-9A-F]{10}$/;function bo(A,x){if(!wc.test(x))throw new Error(`MemoryStorage: uto_data row for tag ${A} has non-canonical stamp "${x}"; expected 16-char uppercase hex output of stamp40ToDbHex ("400000" + 10 hex digits)`)}var rn=class xF{constructor(){l0(this,"metadata",new Map),l0(this,"utoData",new Map),l0(this,"changeRequests",[]),l0(this,"files",new Map)}async getMetadataValue(x){return this.metadata.get(x)??null}async setMetadataValue(x,e){this.metadata.set(x,e)}async deleteMetadataValue(x){this.metadata.delete(x)}async getUtoDataTags(){return[...this.utoData.keys()]}async getLatestStampForTag(x){let e=this.utoData.get(x);return!e||e.size===0?null:[...e.keys()].sort().at(-1)}async getRowForTag(x){let e=await this.getLatestStampForTag(x);return e===null?null:Rt(this.utoData.get(x).get(e))}async replaceUtoRow(x){bo(x.tag,x.stamp),this.utoData.set(x.tag,new Map([[x.stamp,Rt(x)]]))}async insertHistoricRows(x){for(let e of x){bo(e.tag,e.stamp);let r=this.utoData.get(e.tag);r||(r=new Map,this.utoData.set(e.tag,r)),r.has(e.stamp)||r.set(e.stamp,Rt(e))}}async getHistoricRows(x,e){let r=this.utoData.get(x);if(!r)return[];let t=[...r.values()];if(e.fromStamp!==void 0){let n=e.fromStamp;t=t.filter(F=>F.stamp>=n)}if(e.untilStamp!==void 0){let n=e.untilStamp;t=t.filter(F=>F.stamp<=n)}t.sort((n,F)=>e.order==="desc"?F.stamp.localeCompare(n.stamp):n.stamp.localeCompare(F.stamp));let s=e.offset??0;return t.slice(s,s+e.limit).map(Rt)}async getUtoChangeRequests(){return[...this.changeRequests].sort((x,e)=>x.tag-e.tag||x.stamp.localeCompare(e.stamp)).map(x=>({...x}))}async insertUtoChangeRequests(x){for(let e of x)this.changeRequests.push({tag:e.tag,stamp:Gx(e.stamp40),user:e.user??"",json:e.json})}async clearUtoChangeRequests(){this.changeRequests=[]}async getFiles(){return[...this.files.values()].map(ts)}async getFile(x){let e=this.files.get(x);return e?ts(e):null}async upsertFile(x){this.files.set(x.filename,ts(x))}async deleteFile(x){this.files.delete(x)}toJSON(){let x=[];for(let e of this.utoData.values())for(let r of e.values())x.push({tag:r.tag,stamp:r.stamp,flags:r.flags,site_related:r.site_related,data:r.data?Cs(r.data):null});return{metadata:Object.fromEntries(this.metadata),utoData:x,changeRequests:this.changeRequests.map(e=>({...e})),files:[...this.files.values()].map(e=>({filename:e.filename,stamp:e.stamp,crc:e.crc,size:e.size,flags:e.flags,flags_int:e.flags_int,data:e.data?Cs(e.data):null}))}}static fromJSON(x){let e=new xF;for(let[r,t]of Object.entries(x.metadata??{}))e.metadata.set(r,t);for(let r of x.utoData??[]){let t=e.utoData.get(r.tag);t||(t=new Map,e.utoData.set(r.tag,t)),t.set(r.stamp,{tag:r.tag,stamp:r.stamp,flags:r.flags,site_related:r.site_related,data:r.data?vo(r.data,`uto_data.data of tag ${r.tag}`):null})}e.changeRequests=(x.changeRequests??[]).map(r=>({...r}));for(let r of x.files??[])e.files.set(r.filename,{filename:r.filename,stamp:r.stamp,crc:r.crc,size:r.size,flags:r.flags,flags_int:r.flags_int,data:r.data?vo(r.data,`files.data of "${r.filename}"`):null});return e}},Sc=new Set(["link","unknown"]);function Ft(A){return Sc.has(A)}var $c=-2;function De(A){return A.index===$c}var qc=65535,mo={configa:4294928218,configb:4294928219,configc:4294928220};function Ps(A){let x=A.toLowerCase();if(x==="histdata"||x==="histdata0")return"histdata0";let e=/^rm2mconfig([0-9a-c])$/.exec(x);return e?`config${e[1]}`:A}function us(A){let x=Ps(A.trim()).toLowerCase();return Object.prototype.hasOwnProperty.call(mo,x)?mo[x]:V0.containerIdToTag(x,!1)}function br(A){return us(A.name)}function Ts(A,x){let e=A.byNameOrAlias(x);return us(e?e.name:x)}function Ns(A){return Number.isInteger(A)&&A>=0&&A<=qc}var Pc={u8:"u8",s8:"s8",u16:"u16",s16:"s16",u32:"u32",s32:"s32",s64:"s64",f32:"f32",f64:"f64",floatm16:"floatm16",stamp4:"stamp4",stamp:"stamp",stamp8:"stamp8",datetime:"datetime",ufm8:"ufm8",link:"link",string:"string",float:"f32",float32:"f32",float64:"f64",char:"string",bint:"s8",wint:"s16",dint:"s32",qint:"s64",byte:"u8",word:"u16",dword:"u32",time_span:"s64"};function Tc(A){return A===void 0?"unknown":Pc[A.toLowerCase()]??"unknown"}var Nc={u8:1,s8:1,u16:2,s16:2,floatm16:2,u32:4,s32:4,f32:4,stamp4:4,stamp:5,stamp8:8,datetime:8,ufm8:1,link:0,unknown:0,s64:8,f64:8},Ic=new Set(["name","alias","title","index","byteofs","type","max","decpl","vscale","vofs","units","editmask","view","edit","default","bitmask"]),Is="name",Mc="type";function Lc(A){let x=A.indexOf("=");return{key:A.slice(0,x).trim().toLowerCase(),value:A.slice(x+1).trim()}}function Rc(A){return/^config[0-9]$/.test(A)||/^config[A-C]$/i.test(A)?"config":/^histdata[0-9]$/.test(A)?"histdata":"other"}function Ge(A,x){let e=A.get(x);if(e===void 0)return;let r=parseInt(e,10);return Number.isNaN(r)?void 0:r}function Oc(A){let x=A.get("bitmask");if(x===void 0)return;let e=x.startsWith("$")?x.slice(1):x,r=parseInt(e,16);return Number.isNaN(r)?void 0:r}var Gc=/^(.*?)%(config[0-9a-fA-F])%(.+)$/;function AF(A){let x=Gc.exec(A);if(!x)return{};let e=x[1],r=e===""?NaN:Number(e);return{ref:{container:x[2],field:x[3]},prefixValue:Number.isFinite(r)?r:void 0}}function Uc(A){let x=A.get("vscale");if(x===void 0)return{value:1};let e=AF(x);if(e.ref)return{value:e.prefixValue??1,ref:e.ref};let r=Number(x);return Number.isFinite(r)?{value:r}:{value:1}}function Hc(A){let x=A.get("vofs");if(x===void 0)return{value:0};let e=AF(x);if(e.ref)return{value:e.prefixValue??0,ref:e.ref};let r=Number(x);return Number.isFinite(r)?{value:r}:{value:0}}function zc(A,x){return A==="string"?x??0:Nc[A]}function Kc(A){let x={};for(let[e,r]of A)Ic.has(e)||(x[e]=r);return x}function Jc(A,x,e){let r=Tc(A.get(Mc)),t=Ge(A,"max"),s=zc(r,t),n=x.fields[x.fields.length-1],f=Ge(A,"byteofs")??(n?n.byteofs+n.size:x.kind==="histdata"?1:0),c=x.fields.length,D=A.get(Is)??(x.kind==="histdata"?`ch${c}`:`field${c}`),p=Uc(A),j=Hc(A),_=Ge(A,"index");return{name:D,alias:A.get("alias"),title:A.get("title"),index:_,sortIndex:_??e,byteofs:f,type:r,size:s,max:t,decpl:Ge(A,"decpl"),vscale:p.value,vofs:j.value,vscaleRef:p.ref,vofsRef:j.ref,units:A.get("units"),editmask:A.get("editmask"),view:Ge(A,"view"),edit:Ge(A,"edit"),default:A.get("default"),bitmask:Oc(A),attrs:Kc(A)}}function Vc(){return{name:"",kind:"other",fields:[],recordSize:0}}function Wc(A,x,e){switch(x){case Is:{let r=Ps(e);A.name=r,A.kind=Rc(r);break}case"alias":A.alias=e;break;case"title":A.title=e;break;case"upload":A.upload=parseInt(e,10);break;case"download":A.download=parseInt(e,10);break;case"edit":A.edit=parseInt(e,10);break;default:break}}function Xc(A){if(!A.name)throw new Error("?dde.table-without-name");A.recordSize=A.fields.filter(x=>!Ft(x.type)).reduce((x,e)=>Math.max(x,e.byteofs+e.size),0),A.fields.sort((x,e)=>x.sortIndex-e.sortIndex)}function Yc(A){if(A==="*")return{keyBytes:[],matchAll:!0};let x=A.slice(0,2).toLowerCase()==="0x"?A.slice(2):A;x.length%2!==0&&(x=`0${x}`);let e=[];for(let r=0;r<x.length;r+=2){let t=parseInt(x.slice(r,r+2),16);e.push(Number.isNaN(t)?0:t)}return{keyBytes:e,matchAll:!1}}function Qc(A){return A.toLowerCase()==="histdata28"?"applog0":Ps(A)}function Zc(A){let{keyBytes:x,matchAll:e}=Yc(A.get("key")??"00");return{source:A.get("source")??"",target:Qc(A.get("target")??""),key:x[0]??0,keyBytes:x,matchAll:e,keepraw:Ge(A,"keepraw")}}function xB(A,x){return{containers:A,splits:x,byNameOrAlias(e){let r=e.toLowerCase();return A.find(t=>t.name.toLowerCase()===r||(t.alias??"").toLowerCase()===r)??null}}}function AB(A,x){switch(x){case"<table>":return A.container=Vc(),A.expectName=!0,!0;case"</table>":return A.container&&(Xc(A.container),A.containers.push(A.container)),A.container=null,!0;case"<field>":return A.field=new Map,!0;case"</field>":return A.container&&A.field&&A.container.fields.push(Jc(A.field,A.container,A.line)),A.field=null,!0;case"<split>":return A.split=new Map,!0;case"</split>":return A.split&&A.splits.push(Zc(A.split)),A.split=null,!0;default:return!1}}function eB(A,x){let{key:e,value:r}=Lc(x);if(A.split)A.split.set(e,r);else if(A.field)A.field.set(e,r);else if(A.container){if(A.expectName&&e!==Is)throw new Error(`?dde.first-table-attr-not-name."${e}"`);A.expectName=!1,Wc(A.container,e,r)}}function eF(A){let x={containers:[],splits:[],container:null,field:null,split:null,expectName:!1,line:0};for(let[e,r]of A.replace(/\r\n/g,`
2332
+ `).replace(/\r/g,`
2333
+ `).split(`
2334
+ `).entries()){x.line=e;let t=r.trim();t===""||t.startsWith("//")||AB(x,t)||t.includes("=")&&eB(x,t)}return xB(x.containers,x.splits)}var rB=null,tB=4;function at(A){let x=new Date(A),e=(r,t)=>r.toString().padStart(t,"0");return e(x.getUTCFullYear(),4)+e(x.getUTCMonth()+1,2)+e(x.getUTCDate(),2)+e(x.getUTCHours(),2)+e(x.getUTCMinutes(),2)+e(x.getUTCSeconds(),2)+e(x.getUTCMilliseconds(),3)}function Et(A){let x=A.trim();if(x==="*")return rB;if(!/^\d{4,17}$/.test(x))throw new Error(`?apiStamp.invalid-input."${A}"`);let e=(D,p,j)=>{let _=x.slice(D,D+p);return parseInt(_.length?_.padEnd(p,"0"):j,10)},r=parseInt(x.slice(0,tB),10),t=x.length>=6?e(4,2,"01"):1,s=x.length>=8?e(6,2,"01"):1,n=e(8,2,"00"),F=e(10,2,"00"),f=e(12,2,"00"),c=e(14,3,"000");return Date.UTC(r,t-1,s,n,F,f,c)}var vt="NAN",nB="%HEX%",sB=65535,rF=class extends Error{constructor(A){super(`?ddeCodec.unknown-alias."${A}"`),l0(this,"alias",A),this.name="DdeUnknownAliasError"}};function tn(A){return(A.alias??A.name).toLowerCase()}function nn(A){return A==="string"}function Ms(A){return A==="stamp"||A==="stamp4"||A==="stamp8"||A==="datetime"}function tF(A){return(A.editmask??"").toUpperCase()===nB}function nF(A,x){if(!Number.isFinite(A))return A;let e=10**x;return Math.sign(A)*Math.round(Math.abs(A)*e)/e}function iB(A,x){if(!Number.isFinite(A)||A===0)return A;let e=Math.abs(A),r=Math.floor(Math.log10(e));return 10**(r+1)<=e?r+=1:10**r>e&&(r-=1),nF(A,x-1-r)}function aB(A){return A==="floatm16"||A==="f32"||A==="f64"}function oB(A,x){if(!Number.isFinite(x))return x;let e=A.decpl??(aB(A.type)?9:0),r=nF(x,e),t=A.type==="floatm16"?3:A.type==="f32"?7:15;return iB(r,t)}function ps(A,x){let e=BigInt.asUintN(64,BigInt(Math.trunc(A))),r=BigInt.asUintN(64,BigInt(Math.trunc(x))),t=0n,s=1n;for(;r!==0n;)r&1n&&(e&1n&&(t|=s),s<<=1n),e>>=1n,r>>=1n;return Number(t)}function FB(A,x,e){let r=BigInt.asUintN(64,BigInt(Math.trunc(A))),t=BigInt.asUintN(64,BigInt(Math.trunc(x))),s=BigInt.asUintN(64,BigInt(Math.trunc(e))),n=1n;for(;s!==0n;)s&1n&&(r=t&1n?r|n:r&~n,t>>=1n),s>>=1n,n<<=1n;return Number(r)}var vB=new Set(["u8","s8","u16","s16","u32","s32","s64","ufm8"]);function Xt(A){return!!A.bitmask&&vB.has(A.type)}var sF=255,iF=254,aF=253,oF=252,FF=251,fB=207,Ls=65535,Yt=65534,Rs=65533,Os=65532,Gs=65531;function EB(A){switch(A){case sF:return Ls;case iF:return Yt;case aF:return Rs;case oF:return Os;case FF:return Gs;default:return A<=31?A:A>fB?Yt:(A&15|16)<<(A>>4)-1}}function lB(A){switch(A){case Ls:return sF;case Yt:return iF;case Rs:return aF;case Os:return oF;case Gs:return FF;default:{if(A<=31)return A;let x=1,e=A;for(;(e&65504)>0;)e>>=1,x++;return x<<4|e&15}}}var Qt=1023,bs=31,vF=127,ns=8388607,cB=255,ms=15,BB=-14,jo=15;function CB(A){let x=(A&Qt)<<13,e=(A&31744)>>10;if(e===bs)return fF(1024-(A&Qt));e!==0&&(e=e-ms+4+vF);let r=(x|e<<23)>>>0;A&32768&&(r=(r|2147483648)>>>0);let t=new DataView(new ArrayBuffer(4));return t.setUint32(0,r),t.getFloat32(0)}function dB(A){if(typeof A=="string"||Number.isNaN(A))return sB;let x=new DataView(new ArrayBuffer(4));x.setFloat32(0,A);let e=x.getUint32(0),r=e>>>16&32768,t=(e&ns)+4096,s=(t>ns?1:0)+(e>>>23&cB),n=(t&ns)>>>13;return s!==0&&(s=s-vF-4,s<BB?(n=0,s=0):s>jo?(n=Qt,s=jo+ms):s=s+ms),r|s<<10|n}var DB=["OF","UF","OL","SC"],js={u8:{NAN:255,OF:254,UF:253,OL:252,SC:251},u16:{NAN:65535,OF:65534,UF:65533,OL:65532,SC:65531},u32:{NAN:4294967295,OF:4294967294,UF:4294967293,OL:4294967292,SC:4294967291},s8:{NAN:127,OF:126,UF:-126,OL:-127,SC:-128},s16:{NAN:32767,OF:32766,UF:-32766,OL:-32767,SC:-32768},s32:{NAN:2147483647,OF:2147483646,UF:-2147483646,OL:-2147483647,SC:-2147483648},s64:{NAN:0x7fffffffffffffffn,OF:0x7ffffffffffffffen,UF:-0x7ffffffffffffffen,OL:-0x7fffffffffffffffn,SC:-0x8000000000000000n},ufm8:{NAN:Ls,OF:Yt,UF:Rs,OL:Os,SC:Gs}},uB={NAN:65535,OF:65534,UF:65533,OL:65532,SC:65531},Ux={NAN:1,OF:2,UF:3,OL:4,SC:5},pB=new Set(["u8","u16","u32","ufm8"]);function bB(A){let x=Math.floor(A),e=A-x;return e<.5?x:e>.5?x+1:x%2===0?x:x+1}function Us(A){let x=A.replace(/,/g,"").trim();if(!/^[+-]?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(x))return null;let e=Number(x);return Number.isFinite(e)?e:null}function Hs(A,x,e){switch(A){case"u8":return x.getUint8(e);case"s8":return x.getInt8(e);case"u16":return x.getUint16(e,!1);case"s16":return x.getInt16(e,!1);case"u32":return x.getUint32(e,!1);case"s32":return x.getInt32(e,!1);case"s64":return Number(x.getBigInt64(e,!1));case"f32":return x.getFloat32(e,!1);case"f64":return x.getFloat64(e,!1);case"floatm16":return CB(x.getUint16(e,!1));case"ufm8":return EB(x.getUint8(e));default:throw new Error(`?ddeCodec.non-numeric-type."${A}"`)}}function fF(A){switch(A){case Ux.OF:return"OF";case Ux.UF:return"UF";case Ux.OL:return"OL";case Ux.SC:return"SC";default:return vt}}var ho=[["NAN",Ux.NAN],["OF",Ux.OF],["UF",Ux.UF],["OL",Ux.OL],["SC",Ux.SC]];function mB(A,x){let e=A.getUint32(x,!1);if((e&2139095040)!==2139095040)return 0;let r=e&8388607;return r===0?Ux.NAN:(r=r&4194304?8388608-r:r&255,r===0?Ux.NAN:r)}function jB(A,x){let e=A.getBigUint64(x,!1);if((e&0x7ff0000000000000n)!==0x7ff0000000000000n)return 0;let r=Number(e&0xffn);return r===0?Ux.NAN:r}function hB(A,x){if(A.type==="s64"){let t=x.getBigInt64(A.byteofs,!1);Xt(A)&&(t=BigInt(ps(Number(t),A.bitmask)));let s=js.s64;return ho.find(([n])=>t===BigInt(s[n]))?.[1]??0}let e=js[A.type];if(!e)return 0;let r=Hs(A.type,x,A.byteofs);return Xt(A)&&(r=ps(r,A.bitmask)),ho.find(([t])=>r===e[t])?.[1]??0}function EF(A,x){switch(A.type){case"floatm16":{let e=x.getUint16(A.byteofs,!1);return(e>>10&bs)===bs?1024-(e&Qt):0}case"f32":return mB(x,A.byteofs);case"f64":return jB(x,A.byteofs);default:return hB(A,x)}}function lF(A,x){let e=Hs(A.type,x,A.byteofs);return typeof e=="string"||Number.isNaN(e)?NaN:(Xt(A)&&(e=ps(e,A.bitmask)),e*A.vscale+A.vofs)}function gB(A,x){let e=EF(A,x);if(e!==0)return fF(e);let r=lF(A,x);return Number.isNaN(r)?vt:oB(A,r)}function yB(A,x){if(A.byteofs+A.size>x.byteLength)return null;if(nn(A.type)||Ms(A.type))return NaN;let e=new DataView(x.buffer,x.byteOffset,x.byteLength);return EF(A,e)!==0?NaN:lF(A,e)}function kB(A,x){if(tF(A)){let e="";for(let r=0;r<A.size;r++)e+=x.getUint8(A.byteofs+r).toString(16).padStart(2,"0");return e.toUpperCase()}return V0.cp1252Unpack(x,A.byteofs,A.size)}var cF=25569,BF=864e5;function _B(A){return(A-cF)*BF}function wB(A){return A/BF+cF}function SB(A,x){if(A.type==="datetime")return at(_B(x.getFloat64(A.byteofs,!1)));if(A.type==="stamp8"){let r=x.getBigUint64(A.byteofs,!1),t=Number(r&0xffffffffffn);return at(V0.stamp40ToMS(t))}let e=x.getUint32(A.byteofs,!1)*256;return A.size>=5&&(e+=x.getUint8(A.byteofs+4)),at(V0.stamp40ToMS(e))}var $B=new Set(["u8","s8","u16","s16","u32","s32","s64","ufm8"]);function qB(A,x){return/^[+-]?\d+$/.test(A)?parseInt(A,10):/^\$[0-9a-fA-F]+$/.test(A)?parseInt(A.slice(1),16):x}function PB(A){let x=A.default;if(x===void 0)return;if(nn(A.type))return x;let e=x.trim();if(e===""||e.toUpperCase()===vt)return vt;if($B.has(A.type))return qB(e,0);let r=Us(e);return r!==null?r:x}function TB(A,x,e){return A.byteofs+A.size>e?PB(A):nn(A.type)?kB(A,x):Ms(A.type)?SB(A,x):gB(A,x)}function go(A,x){let e=new DataView(x.buffer,x.byteOffset,x.byteLength),r={};for(let t of A.fields)De(t)||Ft(t.type)||(r[tn(t)]=TB(t,e,x.byteLength));return r}function NB(A,x){if(typeof x=="number")return Number.isFinite(x)?{kind:"value",physical:x}:{kind:"sentinel",state:"NAN"};if(typeof x=="string"){if(x.toUpperCase()===vt||x==="")return{kind:"sentinel",state:"NAN"};let e=DB.find(t=>t===x);if(e)return{kind:"sentinel",state:e};if("OUS".includes(x[0]))return{kind:"skip"};let r=Us(x);return r!==null?{kind:"value",physical:r}:yo(A)}return yo(A)}function yo(A){let x=A.default;return x!==void 0&&x.startsWith("%")?{kind:"sentinel",state:"NAN"}:{kind:"value",physical:(x!==void 0?Us(x):null)??0}}function hs(A,x,e){switch(A.type){case"floatm16":return x.setUint16(A.byteofs,uB[e],!1);case"f32":return x.setUint32(A.byteofs,(2139095040|Ux[e])>>>0,!1);case"f64":return x.setBigUint64(A.byteofs,0x7ff0000000000000n|BigInt(Ux[e]),!1);default:break}let r=js[A.type]?.[e];if(r===void 0)throw new Error(`?ddeCodec.non-numeric-type."${A.type}"`);if(A.type==="s64")return x.setBigInt64(A.byteofs,BigInt(r),!1);CF(A,x,Number(r))}function IB(A,x,e){if(A.vscale===0)return;let r=(e-A.vofs)/A.vscale;switch(A.type){case"f32":return x.setFloat32(A.byteofs,r,!1);case"f64":return x.setFloat64(A.byteofs,r,!1);case"floatm16":return x.setUint16(A.byteofs,dB(r),!1);default:break}if(Number.isNaN(r))return hs(A,x,"NAN");if(!Number.isFinite(r))return hs(A,x,"OF");let t=r;pB.has(A.type)&&t<0&&(t=0),CF(A,x,bB(t))}function CF(A,x,e){if(Xt(A)){let r=Hs(A.type,x,A.byteofs);e=FB(r,e,A.bitmask)}MB(A.type,x,A.byteofs,e)}function MB(A,x,e,r){switch(A){case"u8":return x.setUint8(e,r);case"s8":return x.setInt8(e,r);case"u16":return x.setUint16(e,r,!1);case"s16":return x.setInt16(e,r,!1);case"u32":return x.setUint32(e,r,!1);case"s32":return x.setInt32(e,r,!1);case"s64":return x.setBigInt64(e,BigInt(r),!1);case"ufm8":return x.setUint8(e,lB(r));default:throw new Error(`?ddeCodec.non-numeric-type."${A}"`)}}function LB(A,x,e){let r=String(e);if(tF(A)){let t=r.trim();if(t.length%2!==0||t.length>A.size*2)throw new Error(`?ddeCodec.invalid-hex."${tn(A)}"`);for(let s=0;s<A.size;s++){let n=s*2<t.length?parseInt(t.substr(s*2,2),16):0;x.setUint8(A.byteofs+s,n)}return}V0.cp1252Pack(x,A.byteofs,A.size,r)}function RB(A,x,e){let r=Et(String(e));if(r===null)throw new Error(`?ddeCodec.unbounded-stamp."${tn(A)}"`);if(A.type==="datetime"){x.setFloat64(A.byteofs,wB(r),!1);return}let t=V0.msToStamp40(r);if(A.type==="stamp8"){x.setBigUint64(A.byteofs,BigInt(t),!1);return}x.setUint32(A.byteofs,Math.trunc(t/256),!1),A.size>=5&&x.setUint8(A.byteofs+4,t&255)}function OB(A,x,e){if(nn(A.type))return LB(A,x,e);if(Ms(A.type))return RB(A,x,e);let r=NB(A,e);switch(r.kind){case"skip":return;case"sentinel":return hs(A,x,r.state);case"value":return IB(A,x,r.physical)}}function ko(A,x,e){let r=e?new Uint8Array(e):new Uint8Array(A.recordSize),t=new DataView(r.buffer,r.byteOffset,r.byteLength),s=new Map(A.fields.filter(n=>!De(n)&&!Ft(n.type)).map(n=>[tn(n),n]));for(let[n,F]of Object.entries(x)){let f=s.get(n.toLowerCase());if(!f)throw new rF(n);OB(f,t,F)}return r}var _o=99,GB=256,Ue=class extends Error{constructor(A){super(`?ddeMapper.unknown-container."${A}"`),l0(this,"container",A),this.name="DdeUnknownContainerError"}},Zt=class extends Error{constructor(A,x){let e=x?`${A}.${x}`:A;super(`?ddeMapper.write-forbidden."${e}"`),l0(this,"container",A),l0(this,"field",x),this.name="DdeWriteForbiddenError"}},dF=class extends Error{constructor(A){super(`?ddeMapper.unknown-field."${A}"`),l0(this,"field",A),this.name="DdeUnknownFieldError"}};function ss(A){return(A.alias??A.name).toLowerCase()}var DF=class{constructor(A,x,e=hr){l0(this,"model",A),l0(this,"storage",x),l0(this,"timeSource",e)}async readContainer(A){let x=this.model.byNameOrAlias(A);if(!x)return null;let e=br(x);if(e===null)return null;let r=await this.storage.getRowForTag(e);if(!r||!r.data)return null;let t=go(await this.resolveScaleRefs(x),r.data);return delete t.stamp,{stamp:this.rowStamp(r),...t}}async writeContainer(A,x){let e=this.model.byNameOrAlias(A);if(!e)throw new Ue(A);let r=br(e);if(r===null)throw new Ue(A);if(e.edit===_o)throw new Zt(e.name);let{stamp:t,...s}=x;this.assertFieldsWritable(e,s);let n=await this.storage.getRowForTag(r),F=ko(await this.resolveScaleRefs(e),s,n?.data??null),f=V0.msToStamp40(this.recordStampMs(t)??this.timeSource.nowMs()),c=Gx(f);return await this.storage.replaceUtoRow({tag:r,stamp:c,flags:n?.flags??0,site_related:n?.site_related??0,data:F}),{tag:r,stampHex:c,stamp40:f,data:F,devicePushable:Ns(r)&&e.download!==0,upload:e.upload,download:e.download}}async seedContainer(A,x){let e=this.model.byNameOrAlias(A);if(!e)throw new Ue(A);let r=br(e);if(r===null)throw new Ue(A);let{stamp:t,...s}=x,n=ko(await this.resolveScaleRefs(e),s,null),F=V0.msToStamp40(this.recordStampMs(t)??this.timeSource.nowMs());await this.storage.replaceUtoRow({tag:r,stamp:Gx(F),flags:0,site_related:0,data:n})}recordStampMs(A){if(typeof A!="string")return null;try{return Et(A)}catch{return null}}async readTimeseries(A,x){let e=this.model.byNameOrAlias(A);if(!e)throw new Ue(A);let r=this.model.splits.find(c=>c.target.toLowerCase()===e.name.toLowerCase());if(!r)throw new Ue(A);let t=Math.abs(x.count),s=x.offset??0,n=this.buildSelectSet(e,x.select),F=await this.resolveScaleRefs(e);return(await this.collectMatched(F,r,s+t,{fromStamp:this.boundHex(x.fromMs),untilStamp:this.boundHex(x.untilMs),order:x.count<0?"desc":"asc",selectSet:n})).slice(s,s+t)}matchesSplit(A,x){return A.length===0?!1:x.matchAll?!0:A.length<x.keyBytes.length?!1:x.keyBytes.every((e,r)=>A[r]===e)}async collectMatched(A,x,e,r){let t=[];if(e<=0)return t;let s=Math.max(e,GB);for(let n=0;;n+=s){let F=await this.storage.getHistoricRows(26623,{fromStamp:r.fromStamp,untilStamp:r.untilStamp,order:r.order,limit:s,offset:n});for(let f of F)if(f.data&&this.matchesSplit(f.data,x)&&(t.push(this.recordFromRow(A,f,r.selectSet)),t.length>=e))return t;if(F.length<s)return t}}async readTimeseriesEdge(A,x,e){return(await this.readTimeseries(A,{count:x==="youngest"?-1:1,select:e}))[0]??null}recordFromRow(A,x,e){let r=go(A,x.data),t={stamp:this.rowStamp(x)};for(let[s,n]of Object.entries(r))s!=="stamp"&&(!e||e.has(s))&&(t[s]=n);return t}rowStamp(A){return at(V0.stamp40ToMS(Zx(A.stamp)))}boundHex(A){if(A!=null)return Gx(V0.msToStamp40(A))}async resolveScaleRefs(A){if(!A.fields.some(r=>r.vscaleRef||r.vofsRef))return A;let x=new Map,e=[];for(let r of A.fields){if(!r.vscaleRef&&!r.vofsRef){e.push(r);continue}e.push({...r,vscale:r.vscaleRef?await this.resolveRef(r.vscaleRef,x,r.vscale):r.vscale,vofs:r.vofsRef?await this.resolveRef(r.vofsRef,x,r.vofs):r.vofs})}return{...A,fields:e}}async resolveRef(A,x,e){if(!/^config[0-9a-f]$/i.test(A.container))return e;let r=this.referencedField(A);if(!r)return e;let t=A.container.toLowerCase();x.has(t)||x.set(t,await this.referencedRecordData(A.container));let s=x.get(t);if(!s)return e;let n=yB(r,s);return n===null?e:n}referencedField(A){let x=A.field.toLowerCase();return this.model.byNameOrAlias(A.container)?.fields.find(r=>ss(r)===x||r.name.toLowerCase()===x)??null}async referencedRecordData(A){let x=this.model.byNameOrAlias(A);if(!x)return null;let e=br(x);return e===null?null:(await this.storage.getRowForTag(e))?.data??null}assertFieldsWritable(A,x){let e=new Map(A.fields.filter(r=>!De(r)&&!Ft(r.type)).map(r=>[ss(r),r]));for(let r of Object.keys(x)){let t=e.get(r.toLowerCase());if(t&&t.edit===_o)throw new Zt(A.name,t.name)}}buildSelectSet(A,x){if(!x||x.length===0)return null;let e=new Set(A.fields.filter(t=>!De(t)&&!Ft(t.type)).map(t=>ss(t))),r=new Set;for(let t of x){let s=t.toLowerCase();if(s!=="stamp"){if(!e.has(s))throw new dF(t);r.add(s)}}return r}},UB=new Set(["$titles","$meta"]);function wo(A,x){let e=x.toLowerCase();if(UB.has(e))return null;let r=A[e];if(typeof r!="object"||r===null)return null;let t=new Map;for(let[s,n]of Object.entries(r)){if(typeof n!="object"||n===null)continue;let F=n.alias;typeof F=="string"&&F.length>0&&t.set(s.toLowerCase(),F)}return t}function HB(A,x){let e={};for(let[r,t]of Object.entries(A)){if(r==="stamp"){e[r]=t;continue}let s=x?.get(r.toLowerCase());e[s??r]=t}return e}function sn(A,x){if(!A)return null;let e=wo(A,x.name);return e||(x.alias?wo(A,x.alias):null)}var G0="[OfflineSyncManager]",zB=500,KB="site_info",JB=new Set(["local-data-interface.json"]);function Nx(A){if(A?.aborted)throw A.reason??new DOMException("The operation was aborted.","AbortError")}function VB(A){let x=Ds(A);return!!(A&2)||x!==0&&x!==65}function So(A){return A.filter(x=>(x.filename===it||x.filename===Yo)&&x.outcome==="download").map(x=>x.filename)}var Me="skip-equal",pr="skip-device-readonly",is="delete",de="error",as="upload",os="uploading-utos",$o="downloading-utos",Ot="fetching-device-state",Fs="uploading-files",Gt="downloading-files",qo="executing-change-requests",Po="executed",WB="error",vs="skip-old-stamp",pF=class extends uF.EventEmitter{constructor(A,x,e){super(),l0(this,"utoMaster",A),l0(this,"storage",x),l0(this,"logger",e)}emitProgress(A,x,e,r,t){let s={phase:A,item:x,completed:e,total:r,...t};this.emit("progress",s)}async uploadHistoricTag(A,x,e,r,t){try{let s=await this.storage.getRowForTag(A),n=0,F=async f=>{let c=f.filter(D=>D.stamp40>e).map(D=>({tag:A,stamp:Gx(D.stamp40),flags:s?.flags??0,site_related:s?.site_related??0,data:D.data}));await this.storage.insertHistoricRows(c),n+=c.length};return await this.utoMaster.requestHistoricUtos(A,e,t,void 0,zB,F),this.logger?.info(`${G0} historic upload tag=0x${A.toString(16)} +${n} records`),{tag:A,sTag:x.sTag,historic:!0,outcome:"upload",dbStamp40:e,deviceStamp40:r,recordsAppended:n}}catch(s){return this.logger?.error(`${G0} historic upload error tag=0x${A.toString(16)}: ${s}`),{tag:A,sTag:x.sTag,historic:!0,outcome:"error",dbStamp40:e,deviceStamp40:r}}}async uploadSingleTag(A,x,e,r){try{let t=await this.utoMaster.requestUto(A,0);if(!t)return this.logger?.info(`${G0} single upload tag=0x${A.toString(16)} \u2014 device returned no data (skip)`),{tag:A,sTag:x.sTag,historic:!1,outcome:Me,dbStamp40:e,deviceStamp40:r};let s=await this.storage.getRowForTag(A);return await this.storage.replaceUtoRow({tag:A,stamp:Gx(t.stamp),flags:s?.flags??0,site_related:s?.site_related??0,data:t.data?new Uint8Array(t.data.buffer.slice(t.data.byteOffset,t.data.byteOffset+t.data.byteLength)):null}),this.logger?.info(`${G0} single upload tag=0x${A.toString(16)}`),{tag:A,sTag:x.sTag,historic:!1,outcome:"upload",dbStamp40:e,deviceStamp40:r}}catch(t){return this.logger?.error(`${G0} single upload error tag=0x${A.toString(16)}: ${JSON.stringify(t)}`),{tag:A,sTag:x.sTag,historic:!1,outcome:"error",dbStamp40:e,deviceStamp40:r}}}async uploadUtoTags(A,x,e,r){let t=A.length;this.emitProgress(os,null,0,t);let s=0;for(let n of A){Nx(r);let F=x.get(n),{tagInfo:f,dbStamp40:c,deviceStamp40:D}=F;if(this.emitProgress(os,f?.sTag??`0x${n.toString(16)}`,s,t),!f||D===null)e.set(n,{tag:n,sTag:"?",historic:!1,outcome:"unknown-tag",dbStamp40:c,deviceStamp40:D});else if(!(!f.flags.up||D<=c)){let p=f.sTag,j=s,_=f.historic?await this.uploadHistoricTag(n,f,c,D,k=>{this.emitProgress(os,p,j,t,{recordsReceived:k})}):await this.uploadSingleTag(n,f,c,D);e.set(n,_)}++s}}async pullFileFromDevice(A,x,e,r,t,s){let n=x.stamp;try{let F=await this.utoMaster.requestFile(A,c=>{this.emitProgress(Fs,A,s,t,{bytesTransferred:c})}),f=Xo(F);if(f!==x.crc32)throw new Error(`crc32 mismatch: expected 0x${x.crc32.toString(16)}, got 0x${f.toString(16)}`);return await this.storage.upsertFile({filename:A,stamp:Gx(n),crc:x.crc32,size:F.byteLength,flags:x._flags,flags_int:r,data:F}),{filename:A,outcome:as,dbStamp40:e,deviceStamp40:n}}catch(F){return this.logger?.error(`${G0} file upload error ${A}: ${JSON.stringify(F)}`),{filename:A,outcome:de,dbStamp40:e,deviceStamp40:n}}}async autoSyncUploadFile(A,x,e,r,t,s,n,F){let f=x.stamp;if(f>r)return this.fileContentMatches(x,e)?this.convergeFileStamp(A,x,e,r):s?this.pullFileFromDevice(A,x,r,t,n,F):void 0;if(f===r&&this.fileContentMatches(x,e))return{filename:A,outcome:Me,dbStamp40:r,deviceStamp40:f}}async convergeFileStamp(A,x,e,r){let t=x.stamp;try{return await this.storage.upsertFile({filename:A,stamp:Gx(t),crc:x.crc32,size:x.size,flags:x._flags,flags_int:e.flags_int,data:e.data}),{filename:A,outcome:Me,dbStamp40:r,deviceStamp40:t}}catch(s){return this.logger?.error(`${G0} file upload error ${A}: ${JSON.stringify(s)}`),{filename:A,outcome:de,dbStamp40:r,deviceStamp40:t}}}async mirrorUploadFile(A,x,e,r,t,s,n){let F=x.stamp;if(F!==r||!this.fileContentMatches(x,e))return t?this.pullFileFromDevice(A,x,r,e.flags_int,s,n):{filename:A,outcome:pr,dbStamp40:r,deviceStamp40:F}}async decideFileUpload(A,x,e,r){let t=await this.storage.getFile(A),s=!!(x._flags&1);if(!t)return s?this.pullFileFromDevice(A,x,0,16,e,r):void 0;let n=Zx(t.stamp);return x._flags&8?this.autoSyncUploadFile(A,x,t,n,t.flags_int,s,e,r):this.decideNonSystemUpload(A,x,t,n,s,e,r)}pullIfReadable(A,x,e,r,t,s,n){return A?this.pullFileFromDevice(x,e,r,t,s,n):void 0}async decideNonSystemUpload(A,x,e,r,t,s,n){let F=e.flags_int;if(!(F&2))return F&4?this.pullIfReadable(t,A,x,r,F,s,n):this.decideUploadBySyncLogic(A,x,e,r,t,s,n)}async decideUploadBySyncLogic(A,x,e,r,t,s,n){let F=e.flags_int,f=Ds(F);if(f===65)return this.fileContentMatches(x,e)?this.convergeFileStamp(A,x,e,r):this.pullIfReadable(t,A,x,r,F,s,n);if(f===1)return this.autoSyncUploadFile(A,x,e,r,F,t,s,n);if(f===97)return x.stamp>r?this.pullIfReadable(t,A,x,r,F,s,n):void 0;if(f!==33)return this.mirrorUploadFile(A,x,e,r,t,s,n)}async uploadFiles(A,x,e,r){let t=Object.entries(A),s=t.length;this.emitProgress(Fs,null,0,s);let n=0;for(let[F,f]of t){if(Nx(r),!(F===Yo||F===it&&!e)){let D=await this.decideFileUpload(F,f,s,n);D&&x.set(F,D)}this.emitProgress(Fs,F,++n,s)}}fileContentMatches(A,x){return x!==null&&A.crc32===x.crc&&A.size===x.size}async downloadSingleTag(A,x,e,r){try{let t=await this.storage.getRowForTag(A);return t?.data&&await this.utoMaster.sendUTOCmdExt(3,A,t.data,e),{tag:A,sTag:x.sTag,historic:!1,outcome:"download",dbStamp40:e,deviceStamp40:r}}catch(t){return this.logger?.error(`${G0} download error tag=0x${A.toString(16)}: ${t}`),{tag:A,sTag:x.sTag,historic:!1,outcome:"error",dbStamp40:e,deviceStamp40:r}}}async processDownloadTag(A,x,e,r,t){if(e===r&&!t.has(A)){let s=x.flags.up?Me:"skip-db-readonly";t.set(A,{tag:A,sTag:x.sTag,historic:!1,outcome:s,dbStamp40:e,deviceStamp40:r});return}if(e>r){let s=x.flags.down?await this.downloadSingleTag(A,x,e,r):{tag:A,sTag:x.sTag,historic:!1,outcome:pr,dbStamp40:e,deviceStamp40:r};t.set(A,s)}}async downloadUtoTags(A,x,e,r){let t=A.length;this.emitProgress($o,null,0,t);let s=0;for(let n of A){Nx(r);let{tagInfo:F,dbStamp40:f,deviceStamp40:c}=x.get(n);F&&c!==null&&!F.historic&&await this.processDownloadTag(n,F,f,c,e),this.emitProgress($o,F?.sTag??`0x${n.toString(16)}`,++s,t)}}async sendFileToDevice(A,x,e,r,t){let s=A.data.byteLength,n=F=>{if(F!==null){let f=Math.round(s*parseInt(F,10)/100);this.emitProgress(Gt,A.filename,t,r,{bytesTransferred:f,bytesTotal:s})}};this.utoMaster.on("installing",n);try{return await this.utoMaster.sendFile(0,A.data,V0.stamp40ToMS(x),A.filename),{filename:A.filename,outcome:"download",dbStamp40:x,deviceStamp40:e}}catch(F){return this.logger?.error(`${G0} file download error ${A.filename}: ${F}`),{filename:A.filename,outcome:"error",dbStamp40:x,deviceStamp40:e}}finally{this.utoMaster.removeListener("installing",n)}}async processDownloadFile(A,x,e,r,t=!1){if(!A.data)return;let s=x?.stamp??0,n=Zx(A.stamp);if(x!==void 0&&this.fileContentMatches(x,A))return n===s?void 0:{filename:A.filename,outcome:Me,dbStamp40:n,deviceStamp40:s};if(!(!t&&n<s))return!t&&x!==void 0&&!(x._flags&2)?{filename:A.filename,outcome:pr,dbStamp40:n,deviceStamp40:s}:this.sendFileToDevice(A,n,s,e,r)}async isAppInDevPhase(){let A=await this.storage.getMetadataValue(KB);if(!A)return!1;try{return JSON.parse(A).app?.phase==="dev"}catch(x){return this.logger?.error(`${G0} corrupt site_info metadata: ${x}`),!1}}async downloadFiles(A,x,e,r){let t=await this.storage.getFiles(),s=t.filter(p=>p.flags&8),n=t.filter(p=>!(p.flags&8)),F=[...s,...n].filter(p=>p.filename),f=Object.entries(A).filter(([,p])=>p._flags&4).map(([p])=>p),c=F.length;this.emitProgress(Gt,null,0,c);let D=0;for(let p of F){if(Nx(r),e&&p.filename===it){this.emitProgress(Gt,p.filename,++D,c);continue}let j=p.filename===it&&!e,_=await this.decideFileDownload(p,A[p.filename],x.get(p.filename),f,j,c,D);_&&x.set(p.filename,_),this.emitProgress(Gt,p.filename,++D,c)}}async decideFileDownload(A,x,e,r,t,s,n){return x!==void 0?this.decideDownloadExisting(A,x,e,t,s,n):this.decideDownloadMissing(A,r,s,n)}async decideDownloadExisting(A,x,e,r,t,s){if(x._flags&4)return;if(A.flags&8)return e?void 0:this.processDownloadFile(A,x,t,s,r);let n=A.flags_int;if(n&8)return this.handleDeviceDelete(A,x,e);if(!e&&!(n&4))return this.pushToDevice(A,x,t,s)}async pushToDevice(A,x,e,r){let t=x.stamp,s=Zx(A.stamp),n=this.wantDownloadPush(A,x,s,t);if(n==="match")return{filename:A.filename,outcome:Me,dbStamp40:s,deviceStamp40:t};if(n!=="none"&&!(s===0||!A.data||A.data.byteLength===0))return x._flags&2?this.sendFileToDevice(A,s,t,e,r):{filename:A.filename,outcome:pr,dbStamp40:s,deviceStamp40:t}}wantDownloadPush(A,x,e,r){let t=A.flags_int;if(t&2)return"push";let s=this.fileContentMatches(x,A),n=Ds(t);return n===33||n===1&&e>=r?s?"match":"push":n===97&&e>r?"push":"none"}async handleDeviceDelete(A,x,e){let r=x.stamp,t=Zx(A.stamp);if(!(e&&(e.outcome===as||e.outcome===de))){if(!(x._flags&2))return{filename:A.filename,outcome:pr,dbStamp40:t,deviceStamp40:r};try{return await this.utoMaster.deleteFile(A.filename),await this.storage.deleteFile(A.filename),{filename:A.filename,outcome:is,dbStamp40:t,deviceStamp40:r}}catch(s){return this.logger?.error(`${G0} file delete error ${A.filename}: ${JSON.stringify(s)}`),{filename:A.filename,outcome:de,dbStamp40:t,deviceStamp40:r}}}}async decideDownloadMissing(A,x,e,r){let t=A.flags_int,s=Zx(A.stamp);if(t&8)try{return await this.storage.deleteFile(A.filename),{filename:A.filename,outcome:is,dbStamp40:s,deviceStamp40:null}}catch(n){return this.logger?.error(`${G0} file delete error ${A.filename}: ${JSON.stringify(n)}`),{filename:A.filename,outcome:de,dbStamp40:s,deviceStamp40:null}}if(!(A.flags&12)&&VB(t)&&A.flags&2&&this.hasMatchingNode(A.filename,x)&&A.data)return this.sendFileToDevice(A,s,0,e,r)}hasMatchingNode(A,x){return x.some(e=>e.slice(0,-1)===A.slice(0,e.length-1))}async reconcileFileState(A){try{await this.reconcileFileStateUnguarded(A)}catch(x){if(A?.aborted)throw x;this.logger?.error(`${G0} file-state reconciliation failed: ${JSON.stringify(x)}`)}}async reconcileFileStateUnguarded(A){let x=await this.utoMaster.requestFileList(),e=new Set(Object.keys(x)),r=await this.storage.getFiles(),t=new Map(r.map(s=>[s.filename,s]));for(let[s,n]of Object.entries(x))Nx(A),await this.reconcileDeviceFile(s,n,t.get(s)??null);for(let s of r)Nx(A),e.has(s.filename)||await this.dropRowMissingFromDevice(s)}async reconcileDeviceFile(A,x,e){let r=!!((x._flags|(e?.flags??0))&8);if(e?.data&&!this.fileContentMatches(x,e)){this.logger?.info(`${G0} reconcile keep ${A}: row holds undeployed content`);return}if(!e?.data&&!r)return;let t={filename:A,stamp:Gx(x.stamp),crc:x.crc32,size:x.size,flags:x._flags,flags_int:e?.flags_int??16,data:this.keepBlob(A,r)?e?.data??null:null};e&&this.fileRowMatches(e,t)||await this.storage.upsertFile(t)}keepBlob(A,x){return!x||JB.has(A)}fileRowMatches(A,x){return A.stamp===x.stamp&&A.crc===x.crc&&A.size===x.size&&A.flags===x.flags&&A.flags_int===x.flags_int&&(A.data??null)===x.data}async dropRowMissingFromDevice(A){try{await this.storage.deleteFile(A.filename)}catch(x){this.logger?.error(`${G0} reconcile delete error ${A.filename}: ${JSON.stringify(x)}`)}}async validateDevice(A){Nx(A),this.emitProgress("validating",null,0,1);let x=await this.utoMaster.requestDeviceInfo();if(!x)throw new Error(`${G0} requestDeviceInfo returned null`);let e=await this.storage.getMetadataValue("device_id");if(e===null)throw new Error(`${G0} DB metadata missing device_id`);if(e.toUpperCase()!==x.serialNumber.toUpperCase())throw new Error(`${G0} DB device_id "${e}" does not match connected device "${x.serialNumber}"`);return this.emitProgress("validating",null,1,1),x}buildTagMap(A){let x=new Map;for(let e=0;e<A.utos.length;e++){let r=A.utos[e];x.set(r.wTag,{index:e,flags:{up:r.flags.up,down:r.flags.down,setValue:!!r.flags.setValue},historic:r.flags.historic,sTag:r.sTag})}return x}async resolveDbTags(A){let x=await this.storage.getUtoDataTags(),e=new Set(x);for(let[r,t]of A)t.historic&&!e.has(r)&&x.push(r);return x}async buildTagStampCache(A,x,e){let r=new Map;for(let t of A){let s=x.get(t),n=await this.storage.getLatestStampForTag(t),F=n?Zx(n):0,f=s&&s.index<e.stamps.length?e.stamps[s.index]:null;r.set(t,{dbStamp40:F,deviceStamp40:f,tagInfo:s})}return r}async executeChangeRequests(A,x,e,r,t,s){let n=await this.storage.getUtoChangeRequests(),F=this.groupChangeRequests(n),f=F.size;if(this.emitProgress(qo,null,0,f),f===0)return;let c=new Set,D=0;for(let[p,j]of F){Nx(s);let _=A.get(p),k=_?.sTag??`0x${p.toString(16)}`;this.emitProgress(qo,k,D,f),await this.executeChangeRequestTag(p,k,_,j,x,r,t,c),++D}c.size>0&&await this.repullExecutedTags(c,A,e,s)}groupChangeRequests(A){let x=new Map;for(let e of A){let r=x.get(e.tag)??[];r.push({stamp40:Zx(e.stamp),user:e.user,json:e.json}),x.set(e.tag,r)}return x}async executeChangeRequestTag(A,x,e,r,t,s,n,F){if(!e){this.pushChangeResults(n,A,x,r,"unknown-tag");return}if(!e.flags.setValue){this.pushChangeResults(n,A,x,r,"skip-unsupported");return}let f=e.index<t.stamps.length?t.stamps[e.index]:0,c=r.filter(p=>p.stamp40<=f),D=r.filter(p=>p.stamp40>f);this.pushChangeResults(n,A,x,c,vs),D.length>0&&await this.coalesceAndSend(A,x,e,D,s,n,F)}async coalesceAndSend(A,x,e,r,t,s,n){let F=await this.storage.getRowForTag(A);if(t.get(A)?.outcome===de||!F||!F.data){this.pushChangeResults(s,A,x,r,"error");return}let f=this.resolveSetObject(F.data,r,x);if(f===null){this.pushChangeResults(s,A,x,r,"error");return}if(Object.keys(f).length===0){this.pushChangeResults(s,A,x,r,"skip-no-change");return}let c=r[r.length-1].stamp40,D=await this.utoMaster.sendSetValue(A,JSON.stringify(f),c);D.outcome==="ok"||D.outcome==="stamp"?(n.add(A),this.pushChangeResults(s,A,x,r,Po,D.resultCode)):D.outcome==="denied"?(this.logger?.warn(`${G0} change-request denied ${x} (result=${D.resultCode}) \u2014 server will retry`),this.pushChangeResults(s,A,x,r,"denied",D.resultCode)):(this.logger?.error(`${G0} change-request error ${x} (result=${D.resultCode})`),this.pushChangeResults(s,A,x,r,"error",D.resultCode))}resolveSetObject(A,x,e){try{let r=JSON.parse(V0.cp1252Unpack(A,0,A.byteLength));return this.buildSetObject(r,x,e)}catch(r){return this.logger?.error(`${G0} change-request unparseable uto_data ${e}: ${r}`),null}}buildSetObject(A,x,e){let r={};for(let t of x){let s=JSON.parse(t.json);if(!this.isPlainRecord(s))throw new Error(`change-request JSON is not an object on ${e}`);for(let[n,F]of Object.entries(s)){let f=this.resolveChangeField(A[n],F,n,e);f.apply&&(r[n]=f.value,A[n]=f.value)}}return r}resolveChangeField(A,x,e,r){if(this.isBitwiseOp(x)){let{op:t,val:s}=x;return this.resolveBitwiseOp(A,t,s,e,r)}return A===x?{apply:!1}:{apply:!0,value:x}}resolveBitwiseOp(A,x,e,r,t){return x!=="|"&&x!=="&"?(this.logger?.warn(`${G0} change-request unknown op "${x}" on ${t}.${r} \u2014 skipped`),{apply:!1}):typeof e!="number"?(this.logger?.warn(`${G0} change-request op "${x}" with non-number val on ${t}.${r} \u2014 skipped`),{apply:!1}):A===void 0?x==="|"?{apply:!0,value:e}:{apply:!1}:typeof A!="number"?(this.logger?.warn(`${G0} change-request op "${x}" on non-number ${t}.${r} \u2014 skipped`),{apply:!1}):{apply:!0,value:x==="|"?A|e:A&e}}isBitwiseOp(A){return this.isPlainRecord(A)&&"op"in A}isPlainRecord(A){return typeof A=="object"&&A!==null&&!Array.isArray(A)}pushChangeResults(A,x,e,r,t,s){for(let n of r)A.push({tag:x,sTag:e,stamp40:n.stamp40,user:n.user,outcome:t,resultCode:s})}async repullExecutedTags(A,x,e,r){let t=null;try{t=await this.utoMaster.requestStamps()}catch(s){this.logger?.warn(`${G0} change-request STAMPS re-fetch failed \u2014 using per-tag stamps: ${s}`)}for(let s of A)Nx(r),await this.repullExecutedTag(s,x,t,e)}async repullExecutedTag(A,x,e,r){try{let t=await this.utoMaster.requestUto(A,0);if(!t){this.logger?.info(`${G0} change-request re-pull tag=0x${A.toString(16)} \u2014 device returned no data (E_EOD), DB row unchanged`);return}let s=await this.storage.getRowForTag(A),n=t.stamp;await this.storage.replaceUtoRow({tag:A,stamp:Gx(n),flags:s?.flags??0,site_related:s?.site_related??0,data:t.data?new Uint8Array(t.data.buffer.slice(t.data.byteOffset,t.data.byteOffset+t.data.byteLength)):null});let F=r.get(A);if(F){let f=x.get(A),c=e&&f&&f.index<e.stamps.length?e.stamps[f.index]:n;F.dbStamp40=n,F.deviceStamp40=c}this.logger?.info(`${G0} change-request re-pull tag=0x${A.toString(16)} \u2192 stamp ${n}`)}catch(t){this.logger?.error(`${G0} change-request re-pull error tag=0x${A.toString(16)}: ${t}`)}}aggregateResult(A,x,e){let r=[...A.values()],t=[...x.values()],s=So(t);return{tags:r,files:t,changeRequests:e,requiresReconnectSync:s.length>0,rebootFilesDeployed:s,totalTagsUploaded:r.filter(n=>n.outcome==="upload"&&!n.historic).length,totalTagsDownloaded:r.filter(n=>n.outcome==="download").length,totalTagsSkipped:r.filter(n=>n.outcome===Me||n.outcome==="skip-db-readonly"||n.outcome===pr).length,totalHistoricRecordsAppended:r.reduce((n,F)=>n+(F.recordsAppended??0),0),totalFilesUploaded:t.filter(n=>n.outcome===as).length,totalFilesDownloaded:t.filter(n=>n.outcome==="download").length,totalFilesDeleted:t.filter(n=>n.outcome===is).length,totalChangeRequestsExecuted:e.filter(n=>n.outcome===Po).length,totalErrors:r.filter(n=>n.outcome===de).length+t.filter(n=>n.outcome===de).length+e.filter(n=>n.outcome===WB).length}}async sync(A){let{signal:x}=A??{},e=await this.validateDevice(x);Nx(x),this.emitProgress(Ot,null,0,3);let r=this.buildTagMap(e),t=await this.utoMaster.requestStamps();if(!t)throw new Error(`${G0} requestStamps returned null`);this.emitProgress(Ot,"stamps",1,3);let s=await this.utoMaster.requestFileList();this.emitProgress(Ot,"file-list",2,3);let n=await this.resolveDbTags(r);this.emitProgress(Ot,"db-tags",3,3);let F=await this.buildTagStampCache(n,r,t),f=new Map,c=new Map,D=[],p=await this.isAppInDevPhase();return Nx(x),await this.uploadUtoTags(n,F,f,x),Nx(x),await this.uploadFiles(s,c,p,x),Nx(x),await this.executeChangeRequests(r,t,F,f,D,x),Nx(x),await this.downloadUtoTags(n,F,f,x),Nx(x),await this.downloadFiles(s,c,p,x),Nx(x),So([...c.values()]).length===0&&await this.reconcileFileState(x),this.emitProgress("complete",null,0,0),this.aggregateResult(f,c,D)}async executeAdHocChangeRequest(A,x){let e=await this.utoMaster.requestDeviceInfo();if(!e)throw new Error(`${G0} requestDeviceInfo returned null`);let r=this.buildTagMap(e),t=await this.utoMaster.requestStamps();if(!t)throw new Error(`${G0} requestStamps returned null`);let s=r.get(A),n=s?.sTag??`0x${A.toString(16)}`,F=x.map(j=>({stamp40:j.stamp40,user:"",json:j.json})).sort((j,_)=>j.stamp40-_.stamp40),f=new Map,c=[],D=new Set;return await this.executeChangeRequestTag(A,n,s,F,t,f,c,D),D.size>0&&await this.repullExecutedTags(D,r,new Map,void 0),c.find(j=>j.outcome!==vs)?.outcome??vs}};var kx={MNT_CFG:"at+mntcfg?",MDN_CFG:"at+mdncfg?",MNT_SYNC:"at+mntsync",MDN_SYNC:"at+mdnsync",CON_CLOSE:"at+conclose",APP_GET_METADATA:"AT+APP=GETMETADATA",APP_GET_DATAVALUE:"AT+APP=GETDATAVALUE",APP_TRIG_MEASURE:"AT+APP=TRIGMEASURE",APP_TRIG_MEASURE_TEST:"AT+APP=TRIGMEASURE=?",ATI:"ati",RM2M_STATE:"at+rm2mstate?",TX:"at+tx",TX_MAINTENANCE:"at+tx=4",TX_GSM_POSITION:"at+tx=1",TX_MODE_TRIGGERED:"at+txmode=0",TX_MODE_WAKEUP:"at+txmode=1",TX_MODE_ONLINE:"at+txmode=2",COMPANION_CERT:"AT+COMPCERT",COMPANION_CERT_TEST:"AT+COMPCERT=?"},J0={OK:"OK",ERROR:"ERROR",SYNC_START:"+SYNC START",MEASURED:"+MEASURED",CON_CLOSE:"+CONCLOSE",MNT_CFG_PREFIX:"+MNTCFG",MDN_CFG_PREFIX:"+MDNCFG",RM2M_STATE:"+RM2MSTATE",ERROR_PIN_REQUIRED:"ERROR PIN REQUIRED",ERROR_NO_DATA:"ERROR NO DATA",COMPCERT_ERROR:/\+COMPCERT ERROR:\s*(\d+)/},Yx=1e4,XB=9e4,YB=/(?:ERROR PIN REQUIRED|ERROR NO DATA|ERROR|OK)\r\n/;function QB(){return{buffer:"",closedByDevice:!1,reset(){this.buffer="",this.closedByDevice=!1}}}var Le="Operation aborted",Qx=class extends Error{constructor(A="AT command handler was disposed"){super(A),this.name="AtHandlerDisposedError"}},mF=class extends Error{constructor(A="Device returned ERROR response"){super(A),this.name="AtDeviceError"}},jF=class extends bF.EventEmitter{constructor(A,x=ws){super(),l0(this,"transport",A),l0(this,"logger",x),l0(this,"mutex",new Qo("AtCommandHandler")),l0(this,"bufferState",QB()),l0(this,"responseCallback",null),l0(this,"decoder",new TextDecoder),l0(this,"dataHandler"),l0(this,"disposeTransportListener"),l0(this,"isDisposed",!1),l0(this,"activeAbort",null),l0(this,"session"),this.dataHandler=e=>this.handleIncomingData(e),this.disposeTransportListener=this.transport.onData(this.dataHandler),this.session={sendAndWait:(e,r,t=Yx,s)=>this.executeSendAndWait(e,r,t,s),sendRaw:(e,r=Yx)=>this.executeSendRaw(e,r),queryMntServerConfig:e=>this.executeQueryConfig(kx.MNT_CFG,J0.MNT_CFG_PREFIX,e),queryMdnServerConfig:e=>this.executeQueryConfig(kx.MDN_CFG,J0.MDN_CFG_PREFIX,e),initiateMntSync:e=>this.executeInitiateMntSync(e),initiateMdnSync:e=>this.executeInitiateMdnSync(e),sendCompanionCert:(e,r)=>this.executeSendCompanionCert(e,r),queryCompanionCertSupport:e=>this.executeQueryCompanionCertSupport(e),sendConnectionClose:e=>this.executeSendConnectionClose(e)}}get isBusy(){return this.mutex.islocked}get disposed(){return this.isDisposed}async withAtLock(A){await this.mutex.requestLock();try{if(this.isDisposed)throw new Qx;return await A(this.session)}finally{this.mutex.unlock()}}handleIncomingData(A){let x=this.decoder.decode(A);this.bufferState.buffer+=x,this.emit("data",x),this.responseCallback&&this.responseCallback(this.bufferState.buffer),!this.responseCallback&&this.bufferState.buffer.length>1e3&&(this.bufferState.buffer=this.bufferState.buffer.slice(-500))}encodeCommand(A){let x=new Uint8Array(A.length+2);for(let e=0;e<A.length;e++)x[e]=A.charCodeAt(e);return x[A.length]=10,x[A.length+1]=13,x.buffer}makeCleanup(A,x,e){return()=>{this.responseCallback=null,this.activeAbort=null,clearTimeout(A),x&&e&&x.removeEventListener("abort",e)}}makeResponseChecker(A,x,e,r){let t=A instanceof RegExp;return s=>{if(A!==J0.ERROR&&s.includes(J0.ERROR)){x(),r(new mF);return}let n=!1,F=s;if(t){let f=s.match(A);f&&(n=!0,F=f[0])}else n=s.includes(A);if(n){x(),e(F);return}s.length>500&&(this.bufferState.buffer=this.bufferState.buffer.slice(-250))}}executeSendAndWait(A,x,e,r){return new Promise((t,s)=>{if(this.isDisposed){s(new Qx);return}if(r?.aborted){s(new Error(Le));return}A&&(this.bufferState.buffer="");let F=x instanceof RegExp?x.source:x,f={cleanup:()=>{}},c=setTimeout(()=>{f.cleanup(),s(new Error(`Timeout waiting for response: ${F}`))},e),D=()=>{f.cleanup(),s(new Error(Le))};f.cleanup=this.makeCleanup(c,r,D),r&&r.addEventListener("abort",D);let p=this.makeResponseChecker(x,f.cleanup,t,s);this.responseCallback=p,this.activeAbort=()=>{f.cleanup(),s(new Qx)},!A&&this.bufferState.buffer&&p(this.bufferState.buffer),A&&(this.logger.info("TX: "+A),this.transport.write(this.encodeCommand(A)).catch(j=>{f.cleanup(),s(j)}))})}executeSendRaw(A,x){return new Promise((e,r)=>{if(this.isDisposed){r(new Qx);return}this.bufferState.buffer="";let t=setTimeout(()=>{s(),r(new Error(`Timeout waiting for raw AT response to: ${A}`))},x),s=this.makeCleanup(t);this.activeAbort=()=>{s(),r(new Qx)},this.responseCallback=n=>{YB.test(n)&&(s(),this.logger.info("RX: "+n.trim()),e(n))},this.logger.info("TX: "+A),this.transport.write(this.encodeCommand(A)).catch(n=>{s(),r(n)})})}executeQueryConfig(A,x,e){return new Promise((r,t)=>{if(this.isDisposed){t(new Qx);return}if(e?.aborted){t(new Error(Le));return}this.bufferState.buffer="";let s={cleanup:()=>{}},n=setTimeout(()=>{s.cleanup(),this.logger.error(`Timeout waiting for ${x} server config`),t(new Error(`Timeout waiting for ${x} response \u2014 server configuration not available`))},Yx),F=()=>{s.cleanup(),t(new Error(Le))};s.cleanup=this.makeCleanup(n,e,F),e&&e.addEventListener("abort",F);let f=new RegExp(`\\${x}:\\s*<?([^,>\\s]+)>?`);this.activeAbort=()=>{s.cleanup(),t(new Qx)},this.responseCallback=c=>{let D=c.match(f);if(D){s.cleanup();let p=D[1].trim();this.logger.info(`Server config ${x}: ${p}`),r(p);return}c.length>500&&(this.bufferState.buffer=this.bufferState.buffer.slice(-250))},this.logger.info("TX: "+A),this.transport.write(this.encodeCommand(A)).catch(c=>{s.cleanup(),this.logger.error(`Failed to send ${x} command: `+(c instanceof Error?c.message:String(c))),t(c)})})}async sendAndWait(A,x,e=Yx,r){return this.withAtLock(t=>t.sendAndWait(A,x,e,r))}async sendRaw(A,x=Yx){return this.withAtLock(e=>e.sendRaw(A,x))}async queryMntServerConfig(A){return this.withAtLock(x=>x.queryMntServerConfig(A))}async queryMdnServerConfig(A){return this.withAtLock(x=>x.queryMdnServerConfig(A))}async initiateMntSync(A){return this.withAtLock(x=>x.initiateMntSync(A))}async initiateMdnSync(A){return this.withAtLock(x=>x.initiateMdnSync(A))}async sendCompanionCert(A,x){return this.withAtLock(e=>e.sendCompanionCert(A,x))}async executeInitiateMntSync(A){this.logger.info("Initiating MNT sync"),await this.executeSendAndWait(kx.MNT_SYNC,J0.OK,Yx,A)}async executeInitiateMdnSync(A){this.logger.info("Initiating MDN sync");try{await this.executeSendAndWait(kx.MDN_SYNC,J0.OK,Yx,A),await this.executeSendAndWait(null,J0.SYNC_START,Yx,A)}catch(x){this.logger.error("Failed to initiate MDN sync: "+(x instanceof Error?x.message:String(x)))}}async executeSendCompanionCert(A,x){if(this.isDisposed)throw new Qx;if(x?.aborted)throw new Error(Le);let e=A.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-A.length%4)%4),r=e.length,t=await this.executeSendAndWait(`${kx.COMPANION_CERT}=${r}`,J0.OK,Yx,x),s=parseInt(t.match(/(\d+)/)[1],10),n=0;for(;n<r;){let F=Math.min(s,r-n),f=e.slice(n,n+F);await this.executeSendAndWait(`${kx.COMPANION_CERT}=${F},${n},${f}`,J0.OK,Yx,x),n+=F}return this.executeCompanionCertFinalize(r,x)}executeCompanionCertFinalize(A,x){return new Promise((e,r)=>{if(this.isDisposed){r(new Qx);return}if(x?.aborted){r(new Error(Le));return}this.bufferState.buffer="";let t={cleanup:()=>{}},s=setTimeout(()=>{t.cleanup(),r(new Error("Timeout waiting for AT+COMPCERT finalize response"))},Yx),n=()=>{t.cleanup(),r(new Error(Le))};t.cleanup=this.makeCleanup(s,x,n),x&&x.addEventListener("abort",n),this.activeAbort=()=>{t.cleanup(),r(new Qx)},this.responseCallback=f=>{let c=f.match(J0.COMPCERT_ERROR);if(c){t.cleanup(),e({success:!1,errorCode:parseInt(c[1],10)});return}if(f.includes(J0.OK)){t.cleanup(),e({success:!0});return}f.length>500&&(this.bufferState.buffer=this.bufferState.buffer.slice(-250))};let F=`${kx.COMPANION_CERT}=0,${A}`;this.logger.info("TX: "+F),this.transport.write(this.encodeCommand(F)).catch(f=>{t.cleanup(),r(f)})})}async queryCompanionCertSupport(A){return this.withAtLock(x=>x.queryCompanionCertSupport(A))}async executeQueryCompanionCertSupport(A){try{return await this.executeSendAndWait(kx.COMPANION_CERT_TEST,J0.OK,Yx,A),!0}catch(x){if(x instanceof Qx)throw x;return!1}}async sendConnectionClose(A){return this.withAtLock(x=>x.sendConnectionClose(A))}async executeSendConnectionClose(A){try{await this.executeSendAndWait(kx.CON_CLOSE,J0.CON_CLOSE,Yx,A)}catch(x){this.logger.error("Failed to receive +CONCLOSE response: "+(x instanceof Error?x.message:String(x)))}}createConCloseMonitor(A){let x="",e=r=>{x+=r,x.includes(J0.CON_CLOSE)&&(x="",this.bufferState.closedByDevice=!0,A()),x.length>1e3&&(x=x.slice(-500))};return this.on("data",e),()=>{this.off("data",e)}}dispose(){this.isDisposed||(this.isDisposed=!0,this.activeAbort?.(),this.disposeTransportListener(),this.responseCallback=null,this.activeAbort=null,this.removeAllListeners())}};var fs="requesting-cert",Es="cert-revoked",ZB=class gs extends hF.EventEmitter{constructor(){super(...arguments),l0(this,"utoMaster",null)}async authenticate(x){let e=x.logger??ds,{signal:r,atHandler:t}=x,s=()=>{if(r?.aborted)throw new Error("Operation aborted")};try{this.emitPhase("checking-cert"),s();let n=await this.loadOrGenerateKeypair(x.storage),F=await x.storage.getCertificate(x.apiConfig.apiHost);(F===null||!Bc(F.notAfter))&&(e.info("Companion cert missing or near expiry \u2014 requesting new cert"),this.emitPhase(fs),s(),F=await this.requestAndStoreCert(n,x)),this.utoMaster=new qs(x.utoTransport,e,x.timeSource),this.emitPhase("cert-presenting"),s();let f=F;F=await t.withAtLock(async p=>{let j=await this.presentCertWithRefresh(p,f,n,x);return await p.initiateMdnSync(r),j}),this.emitPhase("ecs-handshake"),s(),await this.utoMaster.init();let c=await this.utoMaster.initiateEcsHandshake({companionPublicKey:n.publicKey,companionPrivateKey:n.privateKey,signal:r});if(!c.success)return this.fail("ecs-handshake",`ECS handshake failed (code ${c.resultCode})`);this.emitPhase("connected");let D=this.utoMaster;return this.utoMaster=null,{success:!0,utoMaster:D}}catch(n){return this.handleError(n)}}dispose(){this.utoMaster=null,this.removeAllListeners()}async loadOrGenerateKeypair(x){let e=await x.getKeypair();if(e!==null)return e;let r=await Fo();return await x.saveKeypair(r),r}static async fetchCertOrThrowRevoked(x,e){try{return await cc(e.apiConfig,{publicKey:x.publicKey,subject:e.subject})}catch(r){throw r instanceof Wt&&(r.httpStatus===401||r.httpStatus===404)?(await e.storage.clearCertificate(e.apiConfig.apiHost),new ls(Es,`Companion cert revoked or session expired (HTTP ${r.httpStatus})`,{httpStatus:r.httpStatus,apiCode:r.code})):r}}async requestAndStoreCert(x,e){let r=await gs.fetchCertOrThrowRevoked(x,e),t={base64Url:r.certificateBase64Url,notAfter:r.notAfter};return await e.storage.saveCertificate(t,e.apiConfig.apiHost),t}static async refreshCertificate(x){let e=await x.storage.getKeypair(),r=e!==null?e:await(async()=>{let n=await Fo();return await x.storage.saveKeypair(n),n})(),t=await gs.fetchCertOrThrowRevoked(r,x),s={base64Url:t.certificateBase64Url,notAfter:t.notAfter};return await x.storage.saveCertificate(s,x.apiConfig.apiHost),s}static async clearCredentials(x,e){await x.clearCertificate(e)}async presentCertWithRefresh(x,e,r,t){let s=await x.sendCompanionCert(e.base64Url,t.signal);if(s.success||s.errorCode===3&&((t.logger??ds).info("Device reported EXPIRED \u2014 refreshing cert and retrying"),this.emitPhase(fs),e=await this.requestAndStoreCert(r,t),s=await x.sendCompanionCert(e.base64Url,t.signal),s.success))return e;throw new ls("cert-presenting",`AT+COMPCERT rejected (code ${s.errorCode??"?"})`,{certErrorCode:s.errorCode})}emitPhase(x){this.emit("phase",x)}fail(x,e){return this.emit("phase","error"),{success:!1,phase:x,error:e}}handleError(x){return x instanceof ls?(this.emit("phase",x.phase===Es?Es:"error"),{success:!1,phase:x.phase,error:x.message,certErrorCode:x.certErrorCode,httpStatus:x.httpStatus,apiCode:x.apiCode}):(this.emit("phase","error"),x instanceof Wt?{success:!1,phase:fs,error:x.message,httpStatus:x.httpStatus,apiCode:x.code}:{success:!1,phase:"error",error:x instanceof Error?x.message:String(x)})}};l0(ZB,"encodePublicKeyBase64Url",Vo);var ls=class extends Error{constructor(A,x,e={}){super(x),l0(this,"phase",A),l0(this,"extra",e),this.name="AuthError"}get certErrorCode(){return this.extra.certErrorCode}get httpStatus(){return this.extra.httpStatus}get apiCode(){return this.extra.apiCode}};function xC(A){let x=A.replace(/\r\nOK\r\n$/,"").trim();return x?x.split("\f").map(e=>{let r=e.split(" ");return r.length<4?null:{name:r[0],scale:parseFloat(r[1]),offset:parseFloat(r[2]),unit:r[3]}}).filter(e=>e!==null):[]}function AC(A){let x=A.replace(/^\+[^\r\n]*\r\n/gm,"").replace(/\r\nOK\r\n$/,"").trim();return x?x.split("\f"):[]}function eC(A,x,e){let r=parseFloat(A);return isNaN(r)?A:parseFloat(Number(r*x+e).toFixed(3)).toString()}function To(A,x){return A.map((e,r)=>({name:e.name,displayValue:eC(x[r]??"",e.scale,e.offset),unit:e.unit}))}var rC=2e3,yF=class extends gF.EventEmitter{constructor(A,x=ws){super(),l0(this,"atHandler",A),l0(this,"logger",x),l0(this,"datapoints",[]),l0(this,"values",[]),l0(this,"polling",!1),l0(this,"pollTimer",null),l0(this,"fetchInProgress",!1),l0(this,"fetchPromise",null)}async checkSupport(){this.logger.info("Checking local data support");let A=await this.atHandler.sendRaw(kx.APP_GET_METADATA),x=A.includes(J0.OK)?{supported:!0,pinRequired:!1}:A.includes(J0.ERROR_PIN_REQUIRED)?{supported:!0,pinRequired:!0}:A.includes(J0.ERROR_NO_DATA)?{supported:!1,pinRequired:!1}:A.includes(J0.ERROR)?{supported:!1,pinRequired:!1}:{supported:!1,pinRequired:!1};return this.logger.info("Local data support: "+JSON.stringify(x)),x}async fetchMetadata(A){this.logger.info("Fetching metadata"+(A?" (with PIN)":""));let x=A?`${kx.APP_GET_METADATA}=${A}`:kx.APP_GET_METADATA,e=await this.atHandler.sendRaw(x);if(this.logger.debug("Metadata response: "+e),e.includes(J0.ERROR_PIN_REQUIRED))return this.logger.warn("PIN required/invalid for metadata"),null;if(e.includes(J0.ERROR_NO_DATA))return this.logger.warn("No data available from device"),this.datapoints=[],this.values=[],this.emit("metadata",[]),this.emit("error","No local data available from device"),[];if(e.includes(J0.OK)){let r=xC(e);return this.logger.info("Parsed "+r.length+" datapoints"),this.datapoints=r,this.values=new Array(r.length).fill(""),this.emit("metadata",r),r}return e.includes(J0.ERROR)?(this.logger.error("Metadata fetch error: "+e),this.emit("error","Device returned error during metadata fetch"),[]):[]}async fetchValues(A){return this.readValues(x=>this.atHandler.sendRaw(x),A)}async readValues(A,x){try{this.logger.debug("Fetching values");let e=x?`${kx.APP_GET_DATAVALUE}=${x}`:kx.APP_GET_DATAVALUE,r=await A(e);if(r.includes(J0.OK)){let t=AC(r);return this.logger.debug("Values: "+t.join(", ")),this.values=t,this.emit("values",t),this.emit("displayValues",To(this.datapoints,t)),t}return[]}catch(e){return this.logger.warn("Value fetch error: "+(e instanceof Error?e.message:String(e))),[]}}async checkMeasurementTriggerSupport(){this.logger.info("Checking measurement trigger support");try{let x=(await this.atHandler.sendRaw(kx.APP_TRIG_MEASURE_TEST)).includes(J0.OK);return this.logger.info("Measurement trigger support: "+x),x}catch(A){if(A instanceof Qx)throw A;return this.logger.warn("Measurement trigger probe failed: "+(A instanceof Error?A.message:String(A))),!1}}async triggerMeasurement(A={}){let{pin:x,timeoutMs:e=XB,signal:r}=A;return this.logger.info("Triggering measurement"),this.atHandler.withAtLock(async t=>{let s=await t.sendRaw(kx.APP_TRIG_MEASURE);if(this.logger.debug("Trigger measurement response: "+s),!s.includes(J0.OK))return this.logger.warn("Measurement trigger rejected: "+s.trim()),{outcome:"rejected",values:[],response:s};this.emit("measurementTriggered");try{let n=await t.sendAndWait(null,J0.MEASURED,e,r);return this.emit("measurementCompleted"),{outcome:"measured",values:await this.readValues(f=>t.sendRaw(f),x),response:n}}catch(n){if(n instanceof Qx)throw n;let F="timeout";return n instanceof mF?F="error":r?.aborted&&(F="aborted"),this.logger.warn(`Measurement ${F} while waiting for ${J0.MEASURED}: `+(n instanceof Error?n.message:String(n))),this.emit("measurementFailed",F),{outcome:F,values:[],response:s}}})}async startPolling(A,x=rC){if(this.polling){this.logger.warn("Polling already active \u2014 ignoring startPolling call");return}this.logger.info("Starting polling every "+x+" ms"),this.polling=!0,this.fetchInProgress=!1,this.emit("pollingStarted"),this.fetchPromise=this.fetchValues(A),await this.fetchPromise,this.fetchPromise=null,this.polling&&(this.pollTimer=setInterval(()=>{this.fetchInProgress||(this.fetchInProgress=!0,this.fetchPromise=this.fetchValues(A).finally(()=>{this.fetchInProgress=!1,this.fetchPromise=null}))},x))}async stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null),this.polling&&(this.logger.info("Polling stopped"),this.polling=!1,this.emit("pollingStopped")),this.fetchPromise&&await this.fetchPromise}getSnapshot(){return{datapoints:[...this.datapoints],values:[...this.values],isPolling:this.polling}}getDisplayValues(){return To(this.datapoints,this.values)}dispose(){this.stopPolling(),this.datapoints=[],this.values=[],this.removeAllListeners()}};var tC={0:"trigger",1:"wakeup",2:"online"},nC={0:["2G","","GSM"],1:["2G","Compact","GSM-COMPACT"],2:["3G","","UTRAN"],3:["2G","EDGE","GSM-EGPRS"],4:["3G","HSDPA","UTRAN-HSDPA"],5:["3G","HSUPA","UTRAN-HSUPA"],6:["3G","HSPA+","UTRAN-HSXPA"],7:["4G","","EUTRAN"],8:["4G","LTE-M","LTE-CATM1"],9:["4G","NB-IoT","LTE-CATNB1"],100:["WiFi","","WIFI"],101:["LAN","Ethernet","ETHERNET"],102:["Local","Wireless","WIRELESS"],103:["Local","Wired","WIRED"]},sC={"NO SCRIPT":"none","SCRIPT ERROR":"error","SCRIPT OK":"ok"},_x={FAILED:1,ACTIVE:2,STARTED:4,RETRY:8,WAKEUPABLE:16,EXTSIM:32,DISABLED:64,WAKEUP:256,POSUPDATE_ACTIVE:512},iC=_x.FAILED|_x.ACTIVE|_x.STARTED|_x.RETRY|_x.WAKEUPABLE|_x.EXTSIM|_x.DISABLED|_x.WAKEUP|_x.POSUPDATE_ACTIVE,No=`${J0.RM2M_STATE}: `;function aC(A=0){let x=(A&_x.WAKEUPABLE)!==0,e="offline",r=x;return A&_x.POSUPDATE_ACTIVE?(e="locating",r=!1):A&_x.RETRY?(e="retry",r=!1):A&_x.STARTED?(e="dialing",r=!1):A&_x.ACTIVE?(e="active",r=!1):A&_x.FAILED?(e="failed",r=x):A&_x.DISABLED&&(e="disabled",r=!1),{signal:e,simType:(A&_x.EXTSIM)!==0?"external":"internal",wakeupable:r,unknownFlags:A&~iC}}function oC(A){if(A===void 0)return null;let x=parseInt(A,10);return isNaN(x)?A:tC[x]??A}function FC(A){if(A===void 0)return null;let x=parseInt(A,10);return isNaN(x)?null:nC[x]??["unknown",`itf#${A}`,`itf#${A}`]}function vC(A){if(A.length===0)return null;let x=A.join(",");return sC[x]??x}function fC(A){let x=A.split(","),[e,r,t,s,...n]=x;if(!e||!/^-?\d+$/.test(e)||!r||!/^\d+$/.test(r))return null;let F=parseInt(r,10),f=FC(s),c=s!==void 0?parseInt(s,10):NaN;return{stamp:new Date,rssi:c>=101?null:parseInt(e,10),state:F,uplinkState:aC(F),uplinkMode:oC(t),uplinkInterface:f?f[0]:null,uplinkInterfaceExtended:f?f[1]:null,uplinkInterfaceTechnical:f?f[2]:null,scriptState:vC(n)}}function EC(A){let x=A.indexOf(No);if(x===-1)return null;let e=A.substring(x+No.length),r=e.search(/\r?\n/);if(r===-1)return null;let t=e.substring(0,r).trim();return t?fC(t):null}var lC=5e3,_F=class extends kF.EventEmitter{constructor(A,x=ds){super(),l0(this,"atHandler"),l0(this,"logger"),l0(this,"lastState",null),l0(this,"pollingTimer",null),l0(this,"polling",!1),l0(this,"fetchInProgress",!1),l0(this,"fetchPromise",null),this.atHandler=A,this.logger=x}async fetchState(){try{let A=await this.atHandler.sendRaw(kx.RM2M_STATE),x=EC(A);return x?(this.lastState=x,this.emit("state",x),this.logger.debug("RM2M state fetched successfully")):this.logger.warn("Failed to parse RM2M state response"),x}catch(A){let x=A instanceof Error?A.message:String(A);return this.logger.error(`Failed to fetch RM2M state: ${x}`),this.emit("error",x),null}}startPolling(A=lC){if(this.polling){this.logger.debug("Polling already active, ignoring startPolling call");return}this.logger.info(`Starting RM2M state polling every ${A}ms`),this.polling=!0,this.fetchInProgress=!1,this.emit("pollingStarted"),this.runGuardedFetch(),this.pollingTimer=setInterval(()=>this.runGuardedFetch(),A)}runGuardedFetch(){this.fetchInProgress||(this.fetchInProgress=!0,this.fetchPromise=this.fetchState().finally(()=>{this.fetchInProgress=!1,this.fetchPromise=null}))}async stopPolling(){this.pollingTimer&&(clearInterval(this.pollingTimer),this.pollingTimer=null),this.polling&&(this.logger.info("RM2M state polling stopped"),this.polling=!1,this.emit("pollingStopped")),this.fetchPromise&&await this.fetchPromise}getLastState(){return this.lastState?{...this.lastState,uplinkState:{...this.lastState.uplinkState}}:null}get isPolling(){return this.polling}dispose(){this.stopPolling(),this.lastState=null,this.removeAllListeners()}};var Je={configurationNumber:1,utoInterface:0,utoEndpoint:1,utoSize:64*1024,debugInterface:1,debugEndpoint:2,debugSize:1024};var w0=class extends Error{constructor(A){super(A),this.name="ApiBadRequestError"}},jA=class extends Error{constructor(A){super(A),this.name="ApiNotFoundError"}},zs=class extends Error{constructor(A){super(A),this.name="ApiForbiddenError"}},wF=class extends Error{constructor(A){super(A),this.name="ApiMethodNotAllowedError"}};function EA(A){try{return decodeURIComponent(A)}catch{throw new w0("malformed url encoding")}}var cC=2e3,BC=2136;function SF(A){if(A.length===0)return!0;if(!/^\d{4,17}$/.test(A))return!1;let x=Number(A.slice(0,4));return x>=cC&&x<=BC}function lt(A){if(A)for(let x of["stamp","from","until"]){let e=A[x];if(typeof e=="string"&&!(x==="until"&&e==="*")&&!(x!=="stamp"&&e.trim().length===0)&&!SF(e))throw new w0(`attribute '${x}' is not valid`)}}function CC(A){return typeof A.setMetadataValue=="function"?A:null}function dC(A){return typeof A.insertUtoChangeRequests=="function"?A:null}function $F(){return{lastIssuedStamp40:0,tagMutexTails:new Map}}async function DC(A){return{status:200,body:A.ctx.siteInfo}}async function uC(A){let{blueprint:x}=A.ctx;if(!x)throw new jA("blueprint unavailable");return{status:200,body:x}}async function pC(A){let{me:x}=A.ctx;if(x==null)throw new jA("no profile stored");return{status:200,body:x}}function qF(A,x,e,r){let t=A.push;t&&(async()=>{try{await t.container(x,e,r)}catch(s){A.logger?.error(`[localApi] device push for tag ${x} failed:`,s)}})()}async function bC(A,x,e){let r=A.push;if(!r)return null;try{return await r.adHocChangeRequest(x,e)}catch(t){return A.logger?.error(`[localApi] change request for tag ${x} failed:`,t),null}}var mC=1024;function an(A){let x=A.indexOf(0),e=x<0?A:A.subarray(0,x);try{let r=new TextDecoder("utf-8").decode(e),t=JSON.parse(r);return typeof t!="object"||t===null||Array.isArray(t)?null:t}catch{return null}}function jC(A,x=0){let e=new TextEncoder().encode(A),r=Math.max(mC,x,e.length+1),t=new Uint8Array(r);return t.set(e,0),t}var Ks=26432,jr={aberrant:1,service:2,standby:4,commissioned:8,offline:16,commissioning:65536,online:131072},PF=Object.keys(jr),on=["standby","commissioned","offline","commissioning","online"],Io=on.reduce((A,x)=>A|jr[x],0)>>>0;function hC(A){let x=0;for(let e of PF)A[e]===!0&&(x|=jr[e]);return x>>>0}function TF(A,x){let e={};for(let r of PF)A&jr[r]?e[r]=!0:typeof x?.[r]=="boolean"&&(e[r]=!1);return e}async function gC(A,x){let e=x.device;if(!e)return!1;let r=await A.getRowForTag(Ks);if(!r?.data)return!1;let t=an(r.data);if(!t)return!1;let s=!1;if(typeof t.lifecycleFlags=="number"){let n=TF(t.lifecycleFlags,e.lifecycle_flags);JSON.stringify(e.lifecycle_flags)!==JSON.stringify(n)&&(e.lifecycle_flags=n,s=!0)}return typeof t.lifecycleState=="string"&&e.lifecycle_state!==t.lifecycleState&&(e.lifecycle_state=t.lifecycleState,s=!0),s}var yC=new Set([...on,"service","lifecycle_state"]);function kC(A,x){let e=Math.max(V0.msToStamp40((A.timeSource??hr).nowMs()),x.lastIssuedStamp40+1);return x.lastIssuedStamp40=e+1,e}async function _C(A){let x=qC(A.request.body??null);if(!x)throw new w0("invalid or missing request body");wC(x);let e=A.ctx,r=e.siteInfo.lifecycle_flags;if(!$C(r))throw new w0("this site does not support lifecycle flags!");let t=hC(r),s=t;for(let c of on){let D=x[c];typeof D=="boolean"&&(s=D?s|jr[c]:s&~jr[c])}if(s>>>=0,s===t)return{status:204,body:""};let n=kC(e,A.session),F=[{json:JSON.stringify({lifecycleFlags:{op:"&",val:~Io>>>0}}),stamp40:n},{json:JSON.stringify({lifecycleFlags:{op:"|",val:s&Io}}),stamp40:n+1}],f=dC(e.storage);return f&&await f.insertUtoChangeRequests(F.map(c=>({tag:Ks,stamp40:c.stamp40,json:c.json}))),e.siteInfo.lifecycle_flags=TF(s,r),await NF(e),SC(e,F),{status:204,body:""}}function wC(A){let x=[];for(let[e,r]of Object.entries(A))yC.has(e)?(e==="lifecycle_state"?typeof r!="string":typeof r!="boolean")&&x.push(`"${e}" is not valid`):x.push(`"${e}" is not an allowed lifecycle property`);if(x.length>0)throw new w0(`validation errors: ${x.join(", ")}`);if(Object.keys(A).some(e=>!on.includes(e)))throw new w0("invalid parameters")}async function SC(A,x){try{let e=await bC(A,Ks,x);e==="executed"?await gC(A.storage,A.siteInfo)&&await NF(A):e!==null&&A.logger?.warn(`[localApi] lifecycle change request not applied by the device (outcome=${e})`)}catch(e){A.logger?.error("[localApi] lifecycle device-mirror refresh failed:",e)}}async function NF(A){await CC(A.storage)?.setMetadataValue("site_info",JSON.stringify(A.siteInfo))}function $C(A){return typeof A=="object"&&A!==null&&!Array.isArray(A)}function qC(A){if(!A)return null;let x;try{x=JSON.parse(A)}catch{return null}return typeof x!="object"||x===null||Array.isArray(x)?null:x}function IF(A){if(A!=null){if(Array.isArray(A)&&A.every(x=>typeof x=="string"))return A;throw new w0('"select" must be an array')}}function PC(A){if(A!=null){if(Array.isArray(A)&&A.every(x=>typeof x=="string"))return A;throw new w0("invalid parameter, select must be an array")}}function TC(A,x){let e=new Map;if(x){for(let[r,t]of x)e.set(t,r);return e}for(let r of A?.fields??[]){if(De(r))continue;let t=r.alias??r.name;e.set(t,t.toLowerCase())}return e}function NC(A){let x=new Map;for(let e of A.fields){if(De(e))continue;let r=(e.alias??e.name).toLowerCase();x.set(e.name,r),e.alias&&x.set(e.alias,r)}return x}function IC(A){let x=new Set;for(let e of A.fields)De(e)||x.add((e.alias??e.name).toLowerCase());return x.add("stamp"),x}function MC(A,x,e){if(!e)return null;let r=TC(A,x),t=new Set,s=[];for(let n of e){if(n==="stamp")continue;let F=r.get(n);F?t.add(F):s.push(n)}if(s.length>0)throw MF(s);return t}function LC(A,x){let e=NC(A),r=[],t=[],s=!1;for(let n of x){if(n==="stamp"){s=!0,r.push("stamp");continue}let F=e.get(n);F?r.push(F):t.push(n)}if(t.length>0)throw MF(t);return s||r.unshift("stamp"),r}function RC(A,x){if(x===void 0)return;let e=IC(A),r=x.map(s=>s.toLowerCase()),t=r.filter(s=>!e.has(s));if(t.length>0)throw new w0(`unknown field name(s): ${t.join(",")}`);return r.includes("stamp")?r:["stamp",...r]}function OC(A,x){if(!x)return A;let e={};for(let[r,t]of Object.entries(A))(r==="stamp"||x.has(r))&&(e[r]=t);return e}function Js(A,x){if(!x)return A;let e={};for(let r of x)e[r]=r in A?A[r]:null;return e}function MF(A){return new w0(`Fields [\`${A.join("`, `")}\`] do not exist in this container`)}function Fn(A,x){return A.containers.find(e=>e.name===x||e.alias===x)??null}async function GC(A){let x=A.ctx,e=EA(A.params[1]),r=Fn(x.model,e);if(!r)throw new w0("container does not exist");let t=await x.mapper.readContainer(e);if(!t)throw new jA(`no data for container "${e}"`);let s=HC(x,r,t,UC(A));return{status:200,body:LF(x,e,s)}}function UC(A){let x=A.query.json??{};return IF(x.select)}function HC(A,x,e,r){let t=MC(x,sn(A.blueprint??null,x),r);return OC(e,t)}function LF(A,x,e){let r=A.model.byNameOrAlias(x);return r?HB(e,sn(A.blueprint??null,r)):e}async function zC(A){let x=A.ctx,e=EA(A.params[1]),r=x.model.byNameOrAlias(e);if(!r)throw new jA(`unknown container "${e}"`);let t=await x.mapper.readContainer(e);if(!t)throw new jA(`unknown container "${e}"`);let s=A.query.json??{},n=PC(s.select),F=RC(r,n);return{status:200,body:Js(t,F)}}async function KC(A){let x=EA(A.params[1]);return RF(A,x,"canonical")}async function JC(A){let x=EA(A.params[1]);if(!A.ctx.model.byNameOrAlias(x))throw new jA(`unknown container "${x}"`);return RF(A,x,"legacy")}async function RF(A,x,e){let r=ZC(A);if(!r)throw new w0("invalid or missing request body");lt(r);let{stamp:t,...s}=r;if(e==="canonical"&&t!==void 0&&typeof t!="string")throw new w0("value(s) of field(s) stamp are not valid");let n=A.ctx;if(e==="canonical"&&!Fn(n.model,x))throw new w0("container does not exist");let F=n.model.byNameOrAlias(x);if(F?.kind==="histdata")throw new jA(`unknown container "${x}"`);let f=e==="canonical"?XC(n,F,s):YC(F,s);try{let c=e==="canonical"&&t!==void 0?{...f,stamp:t}:f,D=await n.mapper.writeContainer(x,c);return D.devicePushable&&qF(n,D.tag,D.data,D.stamp40),{status:204,body:""}}catch(c){throw VC(c,x,e,n,F)}}function VC(A,x,e,r,t){if(A instanceof Zt){let s=A.field?WC(r,t,A.field,e):void 0;return e==="canonical"?s?new w0(`no permission to modify container field \`${s}\``):new w0(`no permission to modify container \`${x}\``):s?new zs(`unknown field name(s): ${s}`):new wF(`no permission to modify '${x}'`)}return A}function WC(A,x,e,r){if(!x)return e;let t=x.fields.find(n=>n.name===e||n.name.toLowerCase()===e||(n.alias??n.name).toLowerCase()===e);return t?r==="legacy"?(t.alias??t.name).toLowerCase():sn(A.blueprint??null,x)?.get(e)??t.alias??t.name:e}function XC(A,x,e){if(!x)return e;let r=sn(A.blueprint??null,x),t=new Map;if(r)for(let[s,n]of r)t.set(n,s);else for(let s of x.fields)t.set(s.alias??s.name,(s.alias??s.name).toLowerCase());return OF(x,t,e,s=>new w0(`unknown field name(s): ${s}`))}function YC(A,x){if(!A)return x;let e=new Map;for(let r of A.fields){let t=r.alias??r.name;e.set(t.toLowerCase(),t.toLowerCase()),e.set(t,t.toLowerCase())}return OF(A,e,x,r=>new zs(`unknown field name(s): ${r}`))}var QC=new Set(["stamp","stamp4","stamp8","datetime"]);function OF(A,x,e,r){let t=new Map(A.fields.map(f=>[(f.alias??f.name).toLowerCase(),f])),s={},n=[],F=[];for(let[f,c]of Object.entries(e)){let D=x.get(f);if(!D){n.push(f);continue}let p=t.get(D);if(p&&QC.has(p.type)&&!(typeof c=="string"&&SF(c))){F.push(f);continue}s[D]=c}if(n.length>0)throw r(n.join(","));if(F.length>0)throw new w0(`value(s) of field(s) ${F.join(",")} are not valid`);return s}function ZC(A){let x=A.query.json,e=x!=null&&typeof x=="object"&&!Array.isArray(x)?x:void 0,r=A.request.body;if(!r)return e?{...e}:null;let t=xd(r);if(t===void 0)throw new w0("request supplied data which is not json formatted");return typeof t!="object"||t===null||Array.isArray(t)?null:{...e,...t}}function xd(A){try{return JSON.parse(A)}catch{return}}var Ad="x-mt-backfill",ed="pending";async function Vs(A,x,e){let r=A.push?.backfill;if(!(!r||x===void 0||x===null||e===null))try{return await r.call(A.push,{fromMs:e})==="pending"?{[Ad]:ed}:void 0}catch(t){A.logger?.error("[localApi] historic backfill check failed:",t);return}}var rd=1e3,Ut=1e3,GF="20000101",UF="*";async function td(A){let x=A.query.json??{};WF(x,["from","until","count","offset","select"]),lt(x);let e=A.ctx,r=EA(A.params[1]),{mapperSelect:t,order:s}=zF(e,r,x.select);KF(e,r);let n=xn(x.from,GF,"from"),F=xn(x.until,UF,"until");JF(n,F),F!==null&&(F=sd(F));let f=id(x.count),c=VF(x.offset),D=await Vs(e,x.from,n);return{status:200,body:(await e.mapper.readTimeseries(r,{fromMs:n,untilMs:F,count:f,offset:c,select:t})).map(j=>HF(A,e,r,Js(j,s))),headers:D}}async function nd(A){let x=A.query.json??{};WF(x,["from","until","offset","select"]),lt(x);let e=A.ctx,r=EA(A.params[1]),t=A.params[2],{mapperSelect:s,order:n}=zF(e,r,x.select);KF(e,r);let F=xn(x.from,GF,"from"),f=xn(x.until,UF,"until");JF(F,f);let c=VF(x.offset),D=await Vs(e,x.from,F),j=(await e.mapper.readTimeseries(r,{fromMs:F,untilMs:f,count:t==="youngest"?-1:1,offset:c,select:s}))[0];return j?{status:200,body:HF(A,e,r,Js(j,n)),headers:D}:{status:204,body:JSON.stringify("no timeseries recordData found"),headers:D}}function HF(A,x,e,r){return A.apiVersion==="1"?r:LF(x,e,r)}function zF(A,x,e){let r=IF(e);if(!r)return{mapperSelect:void 0,order:null};let t=Fn(A.model,x);if(!t)return{mapperSelect:r,order:null};let s=LC(t,r),n=s.filter(F=>F!=="stamp");return{mapperSelect:n.length>0?n:void 0,order:s}}function KF(A,x){if(!Fn(A.model,x))throw new w0("timeseries does not exist")}function xn(A,x,e){let t=A==null||typeof A=="string"&&A.trim()===""?x:String(A);if(t==="*")return null;try{return Et(t)}catch{throw new w0(`attribute '${e}' is not valid`)}}function JF(A,x){if(A!==null&&x!==null&&A>x)throw new w0('E_BAD_REQUEST "from" value must be older than "until"')}function sd(A){let x=V0.msToStamp40(A);return V0.stamp40ToMS(x)>=A&&(x-=1),V0.stamp40ToMS(x)}function id(A){if(A==null||A==="")return rd;let x=Number(A);if(!Number.isInteger(x))throw new w0('"count" must be an integer');if(x===0)throw new w0("`count` cannot be 0");if(x<-Ut)throw new w0(`"count" must be greater than or equal to -${Ut}`);if(x>Ut)throw new w0(`"count" must be less than or equal to ${Ut}`);return x}function VF(A){if(A==null||A==="")return 0;let x=Number(A);if(!Number.isInteger(x))throw new w0('"offset" must be an integer');if(x<0)throw new w0('"offset" must be greater than or equal to 0');return x}function WF(A,x){for(let e of Object.keys(A))if(!x.includes(e))throw new w0(`"${e}" is not allowed`)}var ad=1e5,od="20000101",Fd="*";async function vd(A){let e=`histdata${A.params[1]?Number(A.params[1]):0}`,r=A.ctx,t=r.model.byNameOrAlias(e);if(!t)throw new jA(`unknown container "${e}"`);let s=A.query.json??{};lt(s);let{fromMs:n,untilMs:F}=ld(s);cd(n,F);let f=Bd(s),c=Cd(s),D=XF(t,s.select)??["stamp"],p=An(s.from)?await Vs(r,s.from,n):void 0,j=D.filter(S=>S!=="stamp");return{status:200,body:(await r.mapper.readTimeseries(e,{fromMs:n,untilMs:F,count:f,offset:c,select:j.length>0?j:void 0})).map(S=>D.map(P=>P==="stamp"?S.stamp:S[P]??null)),headers:p}}async function fd(A){let e=`histdata${A.params[1]?Number(A.params[1]):0}`,r=A.params[2],t=A.ctx,s=t.model.byNameOrAlias(e);if(!s)throw new jA(`unknown container "${e}"`);let n=A.query.json??{};lt(n);let F=XF(s,n.select)??["stamp"],f=Ed(n),c=F.filter(j=>j!=="stamp"),p=(await t.mapper.readTimeseries(e,{fromMs:null,untilMs:f??null,count:f!==void 0||r==="youngest"?-1:1,select:c.length>0?c:void 0}))[0];return p?{status:200,body:[F.map(j=>j==="stamp"?p.stamp:p[j]??null)]}:{status:200,body:[]}}function Ed(A){if(!(!An(A.until)||A.until==="*"))try{return Et(String(A.until))??void 0}catch{throw new w0("from or until value invalid")}}function ld(A){let x=An(A.from),e=An(A.until);if((!x||!e)&&!Ws(A.count))throw new w0("missing or invalid parameters (from and until and/or count)");return{fromMs:Mo(x?A.from:od),untilMs:Mo(e?A.until:Fd)}}function cd(A,x){if(A!==null&&x!==null&&A>x)throw new w0('"from" value must be older than "until"')}function Mo(A){let x=String(A);try{return Et(x)}catch{throw new w0(`invalid stamp "${x}"`)}}function Bd(A){if(!Ws(A.count))return ad;if(typeof A.count!="number")throw new w0("invalid parameter count");return A.count}function Cd(A){let x=A.offset;if(x==null||x==="")return 0;if(typeof x!="number"||x<0)throw new w0("invalid parameter offset");return x}function XF(A,x){if(x==null)return;if(!Array.isArray(x))throw new w0("invalid parameter, select must be an array");let e=x.map(F=>String(F).toLowerCase()),r=e.filter(F=>F.includes(" "));if(r.length>0)throw new w0(`aggregation suffix not allowed: ${r.join(",")}`);let t=e.includes("stamp")?e:["stamp",...e],s=new Set(A.fields.filter(F=>!De(F)).map(F=>(F.alias??F.name).toLowerCase()));s.add("stamp");let n=t.filter(F=>!s.has(F));if(n.length>0)throw new w0(`invalid channel(s) ${n.join(",")}`);return t}function Ws(A){return!!A}function An(A){return typeof A=="string"?A.trim().length>0:Ws(A)}var dd="device_id";function Dd(A){return async x=>(await vn(x),{status:200,body:await pd(x.ctx,A)})}async function vn(A){let x=EA(A.params[0]),e=await ud(A.ctx);if(!e||e.toLowerCase()!==x.toLowerCase())throw new jA(`unknown device "${x}"`)}async function ud(A){return A.deviceId||A.siteInfo.device?.device_id||A.storage.getMetadataValue(dd)}async function pd(A,x){let e=await A.storage.getRowForTag(x);if(!e||!e.data)return{};let r=an(e.data);return r?(typeof r.pipAppVer=="number"&&(r.pipAppVer=`${r.pipAppVer}.0.0`),r.stamp=at(V0.stamp40ToMS(Zx(e.stamp))),r):{}}function Xs(A,x,e){let t=(A.tagMutexTails.get(x)??Promise.resolve()).then(e);return A.tagMutexTails.set(x,t.catch(()=>{})),t}function bd(A){return async x=>{await vn(x);let e=hd(x.request.body??null);if(!e)throw new w0("invalid or missing request body");return Xs(x.session,A,async()=>{let r=await x.ctx.storage.getRowForTag(A),t=r?.data?an(r.data)??{}:{};return await Ys(x.ctx,A,r,{...t,...e}),{status:204,body:""}})}}function md(A){return async x=>(await vn(x),Xs(x.session,A,async()=>{let e=await x.ctx.storage.getRowForTag(A);return!e||!e.data?{status:204,body:""}:(await Ys(x.ctx,A,e,{}),{status:204,body:""})}))}function jd(A){return async x=>{await vn(x);let e=EA(x.params[1]);return Xs(x.session,A,async()=>{let r=await x.ctx.storage.getRowForTag(A);if(!r||!r.data)return{status:204,body:""};let t=an(r.data)??{},s=e.toLowerCase();for(let n of Object.keys(t))n.toLowerCase()===s&&delete t[n];return await Ys(x.ctx,A,r,t),{status:204,body:""}})}}function hd(A){if(!A)return null;let x;try{x=JSON.parse(A)}catch{return null}return typeof x!="object"||x===null||Array.isArray(x)?null:x}async function Ys(A,x,e,r){let t=jC(JSON.stringify(r),e?.data?.length??0),s=V0.msToStamp40((A.timeSource??hr).nowMs());await A.storage.replaceUtoRow({tag:x,stamp:Gx(s),flags:e?.flags??0,site_related:e?.site_related??0,data:t}),qF(A,x,t,s)}var YF={"content-type":"application/json"},gd=[{method:"GET",pattern:/^\/api\/1\/me$/,handler:pC,checksUid:!1},{method:"GET",pattern:/^\/api\/[12]\/sites\/([^/]+)$/,handler:DC,checksUid:!0},{method:"GET",pattern:/^\/api\/[12]\/sites\/([^/]+)\/blueprint$/,handler:uC,checksUid:!0},{method:"POST",pattern:/^\/api\/1\/sites\/([^/]+)\/cn-set-lifecycle$/,handler:_C,checksUid:!0},{method:"GET",pattern:/^\/api\/[12]\/sites\/([^/]+)\/timeseries\/([^/]+)\/(oldest|youngest)$/,handler:nd,checksUid:!0},{method:"GET",pattern:/^\/api\/[12]\/sites\/([^/]+)\/timeseries\/([^/]+)$/,handler:td,checksUid:!0},{method:"GET",pattern:/^\/api\/[12]\/sites\/([^/]+)\/containers\/([^/]+)$/,handler:GC,checksUid:!0},{method:"PUT",pattern:/^\/api\/[12]\/sites\/([^/]+)\/containers\/([^/]+)$/,handler:KC,checksUid:!0},{method:"GET",pattern:/^\/api\/1\/sites\/([^/]+)\/histdata(\d)?\/(oldest|youngest)$/,handler:fd,checksUid:!0},{method:"GET",pattern:/^\/api\/1\/sites\/([^/]+)\/histdata(\d)?$/,handler:vd,checksUid:!0},{method:"GET",pattern:/^\/api\/1\/sites\/([^/]+)\/(config[0-9a-c]|config[A-C])$/,handler:zC,checksUid:!0},{method:"PUT",pattern:/^\/api\/1\/sites\/([^/]+)\/(config[0-9a-c]|config[A-C])$/,handler:JC,checksUid:!0},...yd()];function yd(){let A={"sys-otp":26432,"sys-flash":26433,"app-otp":26434,"app-flash":26435,"app-state":26436,"sys-info":26437,"app-info":26438},x={"sys-flash":26433,"app-flash":26435},e=Object.entries(A).map(([t,s])=>({method:"GET",pattern:new RegExp(`^/api/1/devices/([^/]+)/${t}$`),handler:Dd(s),checksUid:!1})),r=Object.entries(x).flatMap(([t,s])=>[{method:"PUT",pattern:new RegExp(`^/api/1/devices/([^/]+)/${t}$`),handler:bd(s),checksUid:!1},{method:"DELETE",pattern:new RegExp(`^/api/1/devices/([^/]+)/${t}$`),handler:md(s),checksUid:!1},{method:"DELETE",pattern:new RegExp(`^/api/1/devices/([^/]+)/${t}/([^/]+)$`),handler:jd(s),checksUid:!1}]);return[...e,...r]}var kd=/^\/api\/([12])\/customers\/([^/]+)\/sites\/(.*)$/;function QF(A){let x=$F();return e=>_d(A,e,x)}async function _d(A,x,e=$F()){try{let[r,t]=$d(x.path),s=qd(t),n=Sd(r,A);if(n===null)return ze(404,"E_NOT_FOUND","unknown customer");let F=x.method.toUpperCase();for(let f of gd){if(f.method!==F)continue;let c=f.pattern.exec(n);if(!c)continue;let D=c.slice(1);if(f.checksUid&&!wd(A,D[0]))return ze(404,"E_NOT_FOUND","unknown site");let p=/^\/api\/([12])\//.exec(n)?.[1]??"1",j=await f.handler({request:x,params:D,query:s,ctx:A,session:e,apiVersion:p});return Nd(j)}return ze(404,"E_NOT_FOUND","not found")}catch(r){return Id(r)}}function wd(A,x){return A.allowAnySiteUid===!0||x!==void 0&&EA(x)===A.siteUid}function Sd(A,x){let e=kd.exec(A);if(!e)return A;let r=EA(e[2]).toLowerCase();return(x.siteInfo.customer_id??"").toLowerCase()===r||(x.siteInfo.customer_uid??"").toLowerCase()===r?`/api/${e[1]}/sites/${e[3]}`:null}function $d(A){let x=A.indexOf("?");return x<0?[A,""]:[A.slice(0,x),A.slice(x+1)]}function qd(A){let x={params:{}};if(!A)return x;for(let e of A.split("&"))e&&Pd(x,e);return x}function Pd(A,x){let e=x.indexOf("="),r=EA(e<0?x:x.slice(0,e)),t=e<0?"":EA(x.slice(e+1));r==="json"?A.json=Td(t):A.params[r]=t}function Td(A){try{return JSON.parse(A)}catch{throw new w0("request supplied data which is not json formatted ")}}function Nd(A){let x=typeof A.body=="string"?A.body:JSON.stringify(A.body);return{status:A.status,headers:{...YF,...A.headers},body:x}}function ZF(A,x){return{status:A,headers:{...YF},body:JSON.stringify(x)}}function Id(A){return A instanceof w0||A instanceof dF||A instanceof rF?ze(400,"E_BAD_REQUEST",A.message):A instanceof zs||A instanceof Zt?ze(403,"E_FORBIDDEN",A.message):A instanceof wF?ze(405,"E_METHOD_NOT_ALLOWED",A.message):A instanceof jA||A instanceof Ue?ze(404,"E_NOT_FOUND",A.message):ZF(500,{err:A instanceof Error?A.message:String(A)})}function ze(A,x,e){return ZF(A,{err:`${x} ${e}`})}function x8(A,x){let e=x.apmId??"local",r=x.version??1;return{uid:x.siteUid,name:x.name??x.siteUid,customer_id:e,customer_uid:e,app:{apmid:e,version:String(r)},device:{device_id:x.deviceId,lifecycle_flags:{}},lifecycle_flags:{},containers:A.containers.map(t=>({name:t.name,alias:t.alias??t.name,kind:t.kind}))}}var A8=require("usb");var fn=class{interface="usb";#e=new Set;#x;#r;#t;#A=!1;constructor(x,e){this.#x=x;let t=x.configuration.interfaces[e].alternate.endpoints;this.#r=t.find(s=>s.direction==="in"),this.#t=t.find(s=>s.direction==="out")}async write(x){await this.#x.transferOut(this.#t.endpointNumber,x)}onData(x){let e={cb:x};return this.#e.add(e),this.#A||this.#n(),()=>{this.#e.delete(e)}}async#n(){for(this.#A=!0;this.#A&&this.#x.opened;)try{let x=await this.#x.transferIn(this.#r.endpointNumber,this.#r.packetSize);if(x.data&&x.data.byteLength>0)for(let e of this.#e)e.cb(x.data.buffer)}catch{break}}stop(){this.#A=!1}},En=class extends fn{constructor(x){super(x,Je.utoInterface)}},ln=class extends fn{constructor(x){super(x,Je.debugInterface)}};var Md=9540,Ld=new A8.WebUSB({allowedDevices:[{vendorId:Md}]});async function Rd(A,x){x.info(`Searching for device with serial number: ${A}`);let e=await Ld.getDevices();for(let r of e)if((r.serialNumber||r.productName?.split(" ").pop())?.toLowerCase()===A.toLowerCase())return x.info(`Device found: ${r.productName}`),r;return null}function e8(A){return`Device not found with serial number: ${A}`}function Od(A){return async(x,e=!0)=>{let r=await Rd(x,A);if(!r)throw new Error(e8(x));try{await r.open(),await r.selectConfiguration(Je.configurationNumber),await r.claimInterface(Je.utoInterface),e&&await r.claimInterface(Je.debugInterface)}catch(t){throw r.opened&&await r.close().catch(()=>{}),t}return{uto:new En(r),debug:e?new ln(r):void 0,async close(){r.opened&&await r.close().catch(()=>{})}}}}async function Qs(A,x={}){let e=x.logger??new Ne.Logger,r=x.transportFactory??Od(e),t=x.needDebug!==!1,s=await r(A,t),n=t?s.debug:void 0,F=n?new jF(n,e):void 0,f=new qs(s.uto,e);return{utoMaster:f,atHandler:F,transports:s,serial:A,close:async()=>{try{await f.dispose(F)}catch{}F?.dispose(),await s.close()}}}async function r8(A,x,e,r,t=!1){if(!await e.stat(x))return{success:!1,message:`File not found: ${x.fsPath}`};let n=await e.readFile(x),F;try{F=await Qs(A,{logger:r,debug:t,needDebug:!1});let{utoMaster:f}=F;if(t){f.on("mdnCom",D=>{r.log("mdnCom",D)}),f.on("mdnComError",D=>{r.log("mdnComError",D)});let c=-1;f.on("installing",D=>{D&&D!==c&&(c=D,r.info(`Upload progress: ${D}%`))})}return await f.init(),await f.requestDeviceInfo(),r.info("Device connected, starting upload..."),await f.sendFile($s.pawn,new Uint8Array(n.buffer,n.byteOffset,n.length)),r.done("Upload completed successfully!"),{success:!0,message:"File uploaded successfully"}}catch(f){let c=f instanceof Error?f.message:String(f);return{success:!1,message:c===e8(A)?c:`Upload failed: ${c}`}}finally{await F?.close()}}var t8=require("vscode-uri");var cn=class A{constructor(x,e,r,t,s){this.fs=r;this.persist=t;this.logger=s;this.storage=x,this.file=e}fs;persist;logger;storage;file;lastSerialized=null;static async create(x,e,r={}){let t=t8.Utils.joinPath(x,e0.filePaths.studio.dev.mirror),s=new rn;if(r.persist&&await e.stat(t))try{let n=new TextDecoder().decode(await e.readFile(t));s=rn.fromJSON(JSON.parse(n))}catch(n){r.logger?.warn(`Ignoring unreadable dev mirror snapshot: ${n instanceof Error?n.message:n}`),s=new rn}return new A(s,t,e,r.persist===!0,r.logger)}async save(){if(!this.persist)return;let x=JSON.stringify(this.storage.toJSON());if(x!==this.lastSerialized)try{await this.fs.writeFile(this.file,x),this.lastSerialized=x}catch(e){this.logger?.warn(`Could not write dev mirror snapshot: ${e instanceof Error?e.message:e}`)}}};var i8=require("node:events"),Cn=require("node:fs/promises"),a8=require("node:path"),o8=cx(require("iconv-lite"));var Gd=5e3,n8=500;function s8(A){let x=A.indexOf("\0");return(x>=0?A.slice(0,x):A).trim()}function Ud(A){if(A.length===0)return!1;let x=0,e=0;for(let r of A){e++;let t=r.codePointAt(0)??0;(t===9||t===10||t===13||t>=32&&t!==127)&&x++}return x/e>.8}var Bn=class extends i8.EventEmitter{buffer=[];capacity;logFile;logger;seq=0;disposers=[];writeChain=Promise.resolve();logDirReady=void 0;constructor(x={}){super(),this.capacity=x.capacity??Gd,this.logFile=x.logFile,this.logger=x.logger}push(x,e,r){let t={seq:++this.seq,ts:Date.now(),source:x,text:e};return r&&(t.raw=Buffer.from(r).toString("base64")),this.buffer.push(t),this.buffer.length>this.capacity&&this.buffer.splice(0,this.buffer.length-this.capacity),this.emit("record",t),this.appendToFile(t),t}appendToFile(x){let e=this.logFile;e&&(this.logDirReady??=(0,Cn.mkdir)((0,a8.dirname)(e),{recursive:!0}).then(()=>{}),this.writeChain=this.writeChain.then(async()=>{await this.logDirReady,await(0,Cn.appendFile)(e,`${JSON.stringify(x)}
2335
+ `,"utf8")}).catch(r=>{this.logger?.warn(`Could not append to log file: ${r instanceof Error?r.message:r}`)}))}since(x=0,e=n8){let r=e>0?e:n8;return this.buffer.filter(t=>t.seq>x).slice(-r)}get lastSeq(){return this.seq}attachUtoMaster(x){let e=r=>{if(r.wTagFull!==ue.LOG||!r.data)return;let t=new Uint8Array(r.data.buffer.slice(r.data.byteOffset,r.data.byteOffset+r.data.byteLength));this.pushDecoded("rm2mlog",t)};x.on("utoFrame",e),this.disposers.push(()=>x.off("utoFrame",e))}attachAtHandler(x){let e=r=>{let t=typeof r=="string"?r:String(r);for(let s of t.split(/\r?\n/)){let n=s.trim();n&&this.push("at",n)}};x.on("data",e),this.disposers.push(()=>x.off("data",e))}pushDecoded(x,e){let t=[s8(o8.default.decode(Buffer.from(e),"win1252")),s8(Buffer.from(e).toString("utf8"))].find(Ud);if(t){this.push(x,t);return}let s=Buffer.from(e.subarray(0,32)).toString("hex");this.push(x,`<${e.length} bytes> ${s}${e.length>32?"\u2026":""}`,e)}async dispose(){for(let x of this.disposers)x();this.disposers=[],this.removeAllListeners(),await this.writeChain}};var v8=require("node:events");var Hd=1e3,zd=1e4,Kd=200,F8=new Set([ue.HISTDATA_RAW,ue.LOG,ue.ALERTS]),dn=class extends v8.EventEmitter{opts;tagMap=new Map;relevantTags=new Set;containerByTag=new Map;deviceStamps=new Map;seenStamps=new Map;timer;paused=!1;stopped=!1;inFlight=!1;backoffMs=0;lastTickAt=null;lastChangeAt=null;errorCount=0;constructor(x){super(),this.opts=x;for(let e of x.model.containers){let r=br(e);r!==null&&this.containerByTag.set(r,e)}}get utoMaster(){let x=this.opts.utoMaster();if(!x)throw new Error("Device not connected");return x}async refreshTagMap(){let x=await this.utoMaster.requestDeviceInfo();this.tagMap=new Map,this.relevantTags=new Set,this.seenStamps.clear(),this.deviceStamps.clear(),x&&x.utos.forEach((e,r)=>{this.tagMap.set(e.wTag,{index:r,sTag:e.sTag,historic:e.flags.historic}),(this.containerByTag.has(e.wTag)||F8.has(e.wTag))&&this.relevantTags.add(e.wTag)})}start(){this.opts.intervalMs<=0||(this.stopped=!1,this.schedule(this.opts.intervalMs))}stop(){this.stopped=!0,this.clearTimer()}clearTimer(){this.timer&&(clearTimeout(this.timer),this.timer=void 0)}pause(){this.paused=!0}resume(){this.paused=!1}status(){return{intervalMs:this.opts.intervalMs,lastTick:this.lastTickAt,lastChange:this.lastChangeAt,errors:this.errorCount,paused:this.paused}}deviceStamp(x){return this.deviceStamps.get(x)??null}knowsTag(x){return this.tagMap.has(x)}async refreshStamps(){try{let x=await this.utoMaster.requestStamps();if(!x)return;for(let[e,r]of this.tagMap)r.index<x.stamps.length&&this.deviceStamps.set(e,x.stamps[r.index])}catch(x){this.opts.logger?.warn(`Stamp refresh failed: ${x instanceof Error?x.message:String(x)}`)}}schedule(x){this.stopped||(this.clearTimer(),this.timer=setTimeout(()=>{this.tick().then(()=>this.schedule(this.backoffMs>0?this.backoffMs:this.opts.intervalMs)).catch(()=>this.schedule(this.backoffMs>0?this.backoffMs:this.opts.intervalMs))},x),this.timer.unref?.())}async tick(){if(this.stopped||this.paused||this.opts.session.busy||this.inFlight)return[];this.inFlight=!0;try{let x=await this.utoMaster.requestStamps();return this.lastTickAt=Date.now(),this.backoffMs=0,x?this.pullAdvancedTags(x.stamps):[]}catch(x){return this.errorCount++,this.backoffMs=Math.min(this.backoffMs>0?this.backoffMs*2:Hd,zd),this.opts.logger?.warn(`Stamp poll failed: ${x instanceof Error?x.message:String(x)}`),this.emit("error",x instanceof Error?x:new Error(String(x))),[]}finally{this.inFlight=!1}}async pullAdvancedTags(x){let e=[];for(let r of this.relevantTags){let t=await this.pullIfAdvanced(r,x);t&&e.push(t)}if(e.length>0){this.lastChangeAt=Date.now();for(let r of e)this.emit("container-changed",r)}return e}async pullIfAdvanced(x,e){let r=this.tagMap.get(x);if(!r||r.index>=e.length)return null;let t=e[r.index],s=this.seenStamps.get(x);this.deviceStamps.set(x,t),this.seenStamps.set(x,t);let n=await this.mirrorStamp(x);return(s===void 0?t>n:t!==s)?this.pull(x,r,n,t):null}async pullTags(x){let e=[];for(let r of x){let t=this.tagMap.get(r)??{index:-1,sTag:`0x${r.toString(16)}`,historic:!1},s=await this.mirrorStamp(r),n=await this.pull(r,t,t.historic?s:0,this.deviceStamp(r)??0);n&&(e.push(r),this.emit("container-changed",n))}return e}async mirrorStamp(x){let e=await this.opts.storage.getLatestStampForTag(x);return e?Zx(e):0}async pull(x,e,r,t){return e.historic||F8.has(x)?this.pullHistoric(x,r,t):this.pullSingle(x,t)}async pullSingle(x,e){let r=await this.utoMaster.requestUto(x,0);if(!r)return null;let t=await this.opts.storage.getRowForTag(x);return await this.opts.storage.replaceUtoRow({tag:x,stamp:Gx(r.stamp),flags:t?.flags??0,site_related:t?.site_related??0,data:r.data?Jd(r.data):null}),this.describeChange(x,r.stamp||e)}async pullHistoric(x,e,r){let t=await this.opts.storage.getRowForTag(x),s=0,n=e,F=async f=>{let c=f.filter(D=>D.stamp40>e).map(D=>(n=Math.max(n,D.stamp40),{tag:x,stamp:Gx(D.stamp40),flags:t?.flags??0,site_related:t?.site_related??0,data:D.data}));await this.opts.storage.insertHistoricRows(c),s+=c.length};return await this.utoMaster.requestHistoricUtos(x,e,void 0,void 0,Kd,F),s===0?null:this.describeChange(x,n||r)}async describeChange(x,e){let r=this.containerByTag.get(x);if(!r)return{tag:x,container:null,stamp:e};let t=null;try{t=await this.opts.mapper.readContainer(r.name)}catch{}return{tag:x,container:r.name,alias:r.alias,stamp:e,decoded:t}}};function Jd(A){return new Uint8Array(A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength))}var un=(F=>(F[F.Success=0]="Success",F[F.BuildFailed=1]="BuildFailed",F[F.DeviceNotFound=2]="DeviceNotFound",F[F.UsbFailed=3]="UsbFailed",F[F.ModelMissing=7]="ModelMissing",F[F.UnknownContainer=8]="UnknownContainer",F[F.WriteForbidden=9]="WriteForbidden",F))(un||{}),hx=class extends Error{constructor(e,r){super(e);this.exitCode=r;this.name="DevError"}exitCode},Vd=2e3,Wd=3e3,Xd=3e4,f8="dev",E8="local",Dn="Device not connected",xi=class{tail=Promise.resolve();depth=0;get busy(){return this.depth>0}async run(x,e){this.depth++;let r=this.tail,t=()=>{};this.tail=new Promise(s=>{t=s});try{await Yd(r,e)}catch(s){throw this.depth--,r.then(t,t),s}try{return await x()}finally{this.depth--,t()}}};function Yd(A,x){return new Promise((e,r)=>{let t=setTimeout(()=>r(new hx(`Device busy: waited ${x} ms for the UTO link`,3)),x);t.unref?.(),A.then(()=>{clearTimeout(t),e()})})}var Ve=class extends l8.EventEmitter{logStream;opts;logger;timeSource;device;mirror;model;mapper;apiHandler;poller;stateManager;localData;offlineSync;buildState={running:!1,ok:null,at:null};lastSyncAt=null;firmwareVersion=null;mirrorSaveTimer;stopped=!1;lock=new xi;constructor(x){super(),this.opts=x,this.logger=x.logger,this.timeSource=x.timeSource??hr,this.logStream=new Bn({logFile:x.logFile,logger:x.logger}),this.logStream.on("record",e=>this.emit("log",e))}get serial(){return this.opts.serial}get connected(){return this.device!==void 0}get busy(){return this.lock.busy}get ddeModel(){if(!this.model)throw new hx("DDE model not loaded",7);return this.model}get storage(){if(!this.mirror)throw new hx("Mirror not initialised",7);return this.mirror.storage}async start(){if(this.opts.build){let x=await this.build();if(x.ok===!1)throw new hx(x.message??"Build failed",1)}if(await this.loadModel(),this.mirror=await cn.create(this.opts.cwd,this.opts.fs,{persist:this.opts.persistMirror,logger:this.logger}),this.mapper=new DF(this.ddeModel,this.storage,this.timeSource),await this.connect(),this.opts.flash){let x=await this.flash();if(!x.success)throw new hx(x.message,3)}this.buildApiHandler(),await this.startPoller(),this.opts.persistMirror&&(this.mirrorSaveTimer=setInterval(()=>{this.mirror?.save()},5e3),this.mirrorSaveTimer.unref?.())}async loadModel(){let x=Zs.Utils.joinPath(this.opts.cwd,e0.filePaths.dist.ddeXmlPath);if(!await this.opts.fs.stat(x))throw new hx(`No DDE model at ${e0.filePaths.dist.ddeXmlPath} \u2014 run \`studio build\` first`,7);let e=new TextDecoder().decode(await this.opts.fs.readFile(x));this.model=eF(e)}async connect(){try{this.device=this.opts.createDevice?await this.opts.createDevice(this.opts.serial):await Qs(this.opts.serial,{transportFactory:this.opts.transportFactory,debug:this.opts.debug,logger:this.logger})}catch(r){let t=r instanceof Error?r.message:String(r);throw new hx(`Could not open device ${this.opts.serial}: ${t}`,/not found/i.test(t)?2:3)}let{utoMaster:x,atHandler:e}=this.device;if(!e)throw new hx(`Device ${this.opts.serial} was opened without its debug interface`,3);this.logStream.attachUtoMaster(x),this.logStream.attachAtHandler(e),x.on("utoFrame",r=>this.emit("uto",r));try{await x.init();let r=await x.requestDeviceInfo();this.firmwareVersion=r?.firmwareVersion??null}catch(r){throw new hx(`UTO handshake failed: ${r instanceof Error?r.message:String(r)}`,3)}this.stateManager=new _F(e,this.logger),this.stateManager.on("state",r=>this.emit("state",r)),this.localData=new yF(e,this.logger),this.offlineSync=new pF(x,this.storage,this.logger)}async startPoller(){this.poller=new dn({session:this,utoMaster:()=>this.device?.utoMaster,storage:this.storage,model:this.ddeModel,mapper:this.mapper,intervalMs:this.opts.pollIntervalMs??Vd,logger:this.logger}),this.poller.on("container-changed",x=>{this.emit("container-changed",x),this.logStream.push("uto",`${x.alias??x.container??this.tagLabel(x.tag)} changed`)}),this.poller.on("error",x=>this.emit("error",x)),await this.poller.refreshTagMap(),this.poller.start()}tagLabel(x){return`0x${x.toString(16)}`}get utoMaster(){if(!this.device)throw new hx(Dn,3);return this.device.utoMaster}get atHandler(){if(!this.device?.atHandler)throw new hx(Dn,3);return this.device.atHandler}buildApiHandler(){let x={container:async(r,t,s)=>{await this.withLink(()=>this.utoMaster.sendUTOCmdExt(Ss.DATA,r,t,s))},adHocChangeRequest:async(r,t)=>this.withLink(()=>this.offlineSync.executeAdHocChangeRequest(r,t)),backfill:async()=>(await this.sync(),"ready")},e={siteUid:f8,deviceId:this.opts.serial,model:this.ddeModel,mapper:this.mapper,storage:this.storage,siteInfo:x8(this.ddeModel,{siteUid:f8,deviceId:this.opts.serial,name:`dev-${this.opts.serial}`,apmId:E8}),me:{name:"studio-dev",roles:["developer"]},push:x,logger:this.logger,timeSource:this.timeSource,allowAnySiteUid:!0};this.apiHandler=QF(e)}async handleApi(x){if(!this.apiHandler)throw new hx("Session not started",7);let e=this.writtenTag(x),r=await this.apiHandler(x);if(e===null||r.status>=400)return r;let t=await this.mirrorStamp(e);return await this.awaitDeviceStamp(e,t)||(r.headers={...r.headers,"x-mt-mirror":"stale"}),r}writtenTag(x){let e=x.method.toUpperCase();if(e!=="PUT"&&e!=="POST")return null;let[r,t=""]=x.path.split("?");if(/(^|&)async=1(&|$)/.test(t))return null;let s=/\/sites\/[^/]+\/(?:containers\/)?([^/?]+)$/.exec(r);if(!s)return null;let n=Ts(this.ddeModel,decodeURIComponent(s[1]));return n===null||!Ns(n)||this.poller?.knowsTag(n)===!1?null:n}async awaitDeviceStamp(x,e){let r=this.opts.waitMs??Wd,t=this.poller;if(r<=0||!t)return!0;let s=Date.now()+r;for(;;){let F=await this.withLink(()=>t.refreshStamps()).then(()=>!0,()=>!1)?t.deviceStamp(x):null;if(F!==null&&F>=e)return await this.withLink(()=>t.pullTags([x])).catch(()=>{}),!0;if(Date.now()>=s)return!1;await Qd(100)}}async build(){this.buildState={running:!0,ok:null,at:null},this.emit("build",this.buildState);try{await J.validateBasicManifest(this.opts.cwd,this.opts.fs,null);let x=await jx.buildAll(this.opts.cwd,this.opts.fs,this.logger,this.opts.env??Bx.ENV.production,this.opts.apiToken??null,this.opts.part??!0,!0);this.buildState={running:!1,ok:!0,at:Date.now(),diagnostics:x}}catch(x){this.buildState={running:!1,ok:!1,at:Date.now(),message:x instanceof Error?x.message:String(x),diagnostics:x instanceof jx.BuildError?x.mergedDiagnostics:void 0}}return this.emit("build",this.buildState),this.buildState}async flash(x){let e=Zs.Utils.joinPath(this.opts.cwd,x??e0.filePaths.dist.mainAmxPath);this.poller?.pause();try{return await this.withLink(async()=>{await this.closeDevice();try{return await(this.opts.uploadToDevice??r8)(this.opts.serial,e,this.opts.fs,this.logger,this.opts.debug)}finally{await this.reconnect()}})}finally{this.connected&&await this.poller?.refreshTagMap().catch(()=>{}),this.poller?.resume()}}async reconnect(){try{await this.connect()}catch(x){let e=x instanceof Error?x.message:String(x);this.logger.error(`Could not reopen device ${this.opts.serial} after the flash: ${e}`),this.emit("error",x instanceof Error?x:new Error(e))}}async sync(x){let e=await this.withLink(async()=>{this.poller?.pause();try{return x&&x.length>0?await this.poller.pullTags(x):(await this.offlineSync.sync()).tags.filter(s=>s.outcome==="upload").map(s=>s.tag)}finally{this.poller?.resume()}});this.lastSyncAt=Date.now();let r={tags:e,at:this.lastSyncAt};return this.emit("sync",r),r}async at(x){return this.withLink(async()=>(this.logStream.push("at",`> ${x}`),this.atHandler.sendRaw(x)))}async state(){let x=this.stateManager;if(!x)throw new hx(Dn,3);return x.getLastState()??await x.fetchState()}localDataSnapshot(){return this.localData?.getSnapshot()??null}async measure(){return this.withLink(async()=>{let x=this.localData;if(!x)throw new hx(Dn,3);return x.triggerMeasurement()})}status(){return{serial:this.opts.serial,connected:this.connected,apmId:E8,firmwareVersion:this.firmwareVersion,model:{containers:(this.model?.containers??[]).map(x=>({name:x.name,alias:x.alias,kind:x.kind,tag:Ts(this.ddeModel,x.name)}))},lastSync:this.lastSyncAt,buildState:this.buildState,poll:this.poller?.status()??{intervalMs:0,lastTick:null,lastChange:null,errors:0,paused:!0}}}async tick(){return this.poller?this.poller.tick():[]}async mirrorStamp(x){let e=await this.storage.getLatestStampForTag(x);return e?Zx(e):0}async withLink(x){return this.lock.run(x,this.opts.lockWaitMs??Xd)}async closeDevice(){let x=this.device;this.device=void 0,this.stateManager?.dispose(),this.stateManager=void 0,await this.localData?.stopPolling(),this.localData?.dispose(),this.localData=void 0,this.offlineSync=void 0,await x?.close()}async stop(){this.stopped||(this.stopped=!0,this.mirrorSaveTimer&&clearInterval(this.mirrorSaveTimer),this.poller?.stop(),await this.mirror?.save(),await this.logStream.dispose(),await this.closeDevice(),this.removeAllListeners())}};function Qd(A){return new Promise(x=>setTimeout(x,A))}var D8=cx(require("node:http")),u8=require("vscode-uri"),p8=cx(require("yaml"));var b8=["log","state","sync","build","uto","container-changed","error"],Zd=15e3,c8=4*1024*1024,xD="127.0.0.1",AD=8765,m8="no-store",j8="E_NOT_FOUND",B8="E_BAD_REQUEST",eD=2e3,rD=20;function We(A,x){return JSON.stringify({err:`${A} ${x}`})}function te(A,x,e,r={}){A.writeHead(x,{"content-type":"application/json","cache-control":m8,...r}),A.end(e)}function tD(A){let x=A.replace(/^\[|\]$/g,"").toLowerCase();return x==="localhost"||x==="::1"||x===""||/^127\./.test(x)}function nD(A,x){if(!(tD(x)||A.token)){if(!A.allowRemote)throw new Error(`Refusing to bind to ${x} without --bearer: the device API would be reachable from the network. Pass --bearer <token>, or --allow-remote to bind unauthenticated anyway.`);A.logger.warn(`Serving the unauthenticated device API on ${x} \u2014 anyone who can reach this port can write to and flash the device.`)}}function sD(A){try{let{hostname:x}=new URL(A);return x==="localhost"||x==="127.0.0.1"||x==="[::1]"||x==="::1"}catch{return!1}}function iD(A,x){let e=A.headers.origin;typeof e=="string"&&sD(e)&&(x.setHeader("access-control-allow-origin",e),x.setHeader("access-control-allow-credentials","true"),x.setHeader("vary","origin")),x.setHeader("access-control-allow-methods","GET,POST,PUT,DELETE,OPTIONS"),x.setHeader("access-control-allow-headers","authorization,content-type"),x.setHeader("access-control-expose-headers","x-mt-mirror, x-mt-backfill"),x.setHeader("access-control-max-age","600")}function aD(A,x,e){if(!x)return!0;let r=A.headers.authorization,t=typeof r=="string"?r.replace(/^Bearer\s+/i,"").trim():(e??"").trim();if(t==="")return!1;let s=process.env.MYDATANET_TOKEN;return t===x||s!==void 0&&s!==""&&t===s}var pe=class extends Error{constructor(e,r,t){super(t);this.status=e;this.code=r}status;code};async function h8(A){let x=[],e=0;for await(let r of A){let t=r;if(e+=t.length,e>c8)throw A.pause(),new pe(413,"E_TOO_LARGE",`request body exceeds ${c8} bytes`);x.push(t)}return Buffer.concat(x).toString("utf8")}function g8(A){return A!=="GET"&&A!=="HEAD"}function oD(A){if(!A.trim())return{};let x;try{x=JSON.parse(A)}catch{throw new pe(400,B8,"malformed JSON body")}if(typeof x!="object"||x===null)throw new pe(400,B8,"JSON body must be an object");return x}function C8(A,x){let e=A[x];return typeof e=="string"&&e.length>0?e:void 0}function FD(A,x){let e=A[x];if(!Array.isArray(e))return;let r=e.map(Number).filter(t=>Number.isFinite(t));return r.length>0?r:void 0}function d8(A,x,e){let r=Number.parseInt(A.get(x)??"",10);return Number.isFinite(r)?r:e}var Ai=class{clients=new Set;heartbeat;constructor(){this.heartbeat=setInterval(()=>this.writeAll(`: ping
2336
+
2337
+ `),Zd),this.heartbeat.unref?.()}broadcast(x,e){let r=`event: ${x}
2338
+ data: ${JSON.stringify(e)}
2339
+
2340
+ `;for(let t of this.clients)(!t.types||t.types.has(x))&&this.write(t,r)}writeAll(x){for(let e of this.clients)this.write(e,x)}write(x,e){if(x.res.writableEnded||x.res.destroyed){this.clients.delete(x);return}try{if(x.res.write(e)){x.stalled=0;return}}catch{this.clients.delete(x);return}x.stalled++,x.stalled>=rD&&(this.clients.delete(x),x.res.destroy())}subscribe(x,e,r){let t=new URLSearchParams(r).get("types"),s=t?new Set(t.split(",").map(F=>F.trim()).filter(F=>b8.includes(F))):null;e.writeHead(200,{"content-type":"text/event-stream","cache-control":m8,connection:"keep-alive"}),e.write(`: connected
2341
+
2342
+ `);let n={res:e,types:s,stalled:0};this.clients.add(n),x.on("close",()=>this.clients.delete(n)),e.on("close",()=>this.clients.delete(n)),e.on("error",()=>this.clients.delete(n))}close(){clearInterval(this.heartbeat);for(let x of this.clients)!x.res.writableEnded&&!x.res.destroyed&&x.res.end();this.clients.clear()}};async function vD(A,x,e,r){let t=x.method??"GET",s={path:r,method:t,headers:Object.fromEntries(Object.entries(x.headers).map(([F,f])=>[F,Array.isArray(f)?f.join(","):f??""])),body:g8(t)?await h8(x):null},n=await A.handleApi(s);te(e,n.status,n.body,n.headers)}async function fD(A,x,e,r){let{session:t}=A;switch(x){case"GET /dev/status":return t.status();case"POST /dev/build":return t.build();case"POST /dev/flash":return t.flash(C8(r,"file"));case"POST /dev/sync":return t.sync(FD(r,"tags"));case"GET /dev/logs":return{lastSeq:t.logStream.lastSeq,records:t.logStream.since(d8(e,"since",0),d8(e,"limit",500))};case"POST /dev/at":return ED(t,C8(r,"cmd"));case"GET /dev/state":return t.state();case"GET /dev/localdata":return t.localDataSnapshot();case"POST /dev/localdata/measure":return t.measure();case"GET /dev/openapi.json":return dD(A);default:return}}async function ED(A,x){if(!x)throw new pe(400,"E_BAD_REQUEST","attribute 'cmd' is not valid");return{cmd:x,response:await A.at(x)}}async function lD(A,x,e,r){let[t,s=""]=r.split("?"),n=x.method??"GET",F=g8(n)?await h8(x):"";try{let f=await fD(A,`${n} ${t}`,new URLSearchParams(s),oD(F));if(f===void 0){te(e,404,We(j8,`no route for ${n} ${t}`));return}te(e,200,JSON.stringify(f))}catch(f){if(f instanceof pe){te(e,f.status,We(f.code,f.message));return}te(e,500,We("E_DEV",f instanceof Error?f.message:String(f)))}}async function cD(A,x,e,r){if(iD(e,r),e.method==="OPTIONS"){r.writeHead(204),r.end();return}let t=e.url??"/",s=t.split("?")[1]??"",n=t==="/events"||t.startsWith("/events?"),F=n?new URLSearchParams(s).get("token")??void 0:void 0;if(!aD(e,A.token,F)){te(r,401,We("E_UNAUTHORIZED","invalid or missing bearer token"));return}try{t.startsWith("/api/")?await vD(A.session,e,r,t):n?x.subscribe(e,r,s):t.startsWith("/dev/")?await lD(A,e,r,t):te(r,404,We(j8,`no route for ${t}`))}catch(f){if(f instanceof pe&&!r.headersSent){te(r,f.status,We(f.code,f.message),{connection:"close"});return}throw f}}async function y8(A){let{session:x,logger:e}=A,r=A.host??xD;nD(A,r);let t=new Ai;for(let F of b8)x.on(F,f=>t.broadcast(F,f));let s=D8.default.createServer((F,f)=>{cD(A,t,F,f).catch(c=>{let D=c instanceof Error?c.message:String(c);e.error(`Dev server error: ${D}`),f.headersSent||te(f,500,We("E_INTERNAL",D))})});try{await new Promise((F,f)=>{s.once("error",f),s.listen(A.port??AD,r,()=>{s.off("error",f),F()})})}catch(F){throw t.close(),F}s.on("error",F=>e.error(`Dev server socket error: ${F.message}`));let n=s.address().port;return{url:`http://${r}:${n}`,port:n,async close(){t.close(),s.closeIdleConnections(),s.closeAllConnections(),await Promise.race([new Promise(F=>s.close(()=>F())),BD(eD)])}}}function BD(A){return new Promise(x=>{setTimeout(x,A).unref?.()})}var CD={"/dev/status":{get:{summary:"Session, model and poll status"}},"/dev/build":{post:{summary:"Build the project, returns diagnostics"}},"/dev/flash":{post:{summary:"Upload an AMX to the device"}},"/dev/sync":{post:{summary:"Pull selected/all tags into the mirror"}},"/dev/logs":{get:{summary:"Device log ring buffer (?since, ?limit)"}},"/dev/at":{post:{summary:"Run one AT command"}},"/dev/state":{get:{summary:"Last rm2m state"}},"/dev/localdata":{get:{summary:"Live local-data values"}},"/dev/localdata/measure":{post:{summary:"Trigger a measurement"}},"/dev/openapi.json":{get:{summary:"This document"}},"/events":{get:{summary:"SSE event stream (?types= filters)"}}};async function dD(A){let x={openapi:"3.0.0",info:{title:"studio dev",version:"1"},paths:{}},e=u8.Utils.joinPath(A.cwd,e0.filePaths.dist.ddeApi);if(await A.fs.stat(e))try{let r=new TextDecoder().decode(await A.fs.readFile(e)),t=p8.default.parse(r);typeof t=="object"&&t!==null&&Object.assign(x,t)}catch(r){let t=r instanceof Error?r.message:String(r);A.logger.warn(`Could not parse ${e0.filePaths.dist.ddeApi}: ${t}`)}return x.paths={...x.paths,...CD},x}var ct=require("node:fs"),k8=require("node:path"),_8=require("vscode-uri");var DD=300,uD=new Set([e0.fileNames.projectSettings,e0.filePaths.appIni]);function ei(A){return A instanceof Error?A.message:String(A)}function pD(A){let x=A?.code;return x==="ENOENT"||x==="ENOTDIR"}function bD(A){let x=[],e=r=>{x.push(r);for(let t of(0,ct.readdirSync)(r,{withFileTypes:!0}))t.isDirectory()&&e((0,k8.join)(r,t.name))};try{e(A)}catch{}return x}function w8(A){let{cwd:x,session:e,logger:r}=A,t=A.debounceMs??DD,s=[],n,F=!1,f=!1,c=async()=>{if(F){f=!0;return}F=!0;try{let _=await e.build();if(_.ok!==!0){r.error(`Rebuild failed: ${_.message??"see diagnostics"}`);return}if(A.flash!==!1){let k=await e.flash();if(!k.success){r.error(k.message);return}}await e.sync()}catch(_){r.error(`Watch cycle failed: ${_ instanceof Error?_.message:String(_)}`)}finally{F=!1,f&&(f=!1,D())}};function D(){n&&clearTimeout(n),n=setTimeout(()=>{c()},t),n.unref?.()}let p=_=>(k,S)=>{let P=typeof S=="string"?S.replace(/\\/g,"/"):null;(!_||P!==null&&_(P))&&D()},j=(_,k,S)=>{let P=_8.Utils.joinPath(x,_);try{s.push((0,ct.watch)(P.fsPath,{recursive:k},p(S)))}catch(N){if(pD(N))return;if(k){r.warn(`Recursive file watching is not available on this platform (${ei(N)}) \u2014 watching every directory under ${_} individually.`);for(let L of bD(P.fsPath))try{s.push((0,ct.watch)(L,{recursive:!1},p(S)))}catch(O){r.warn(`Could not watch ${L}: ${ei(O)}`)}return}r.warn(`Could not watch ${_}: ${ei(N)}`)}};return j(e0.filePaths.dlo.path,!0),j(e0.filePaths.dde.path,!0),j(".",!1,_=>uD.has(_)),{close(){n&&clearTimeout(n);for(let _ of s)_.close()}}}var mD="details";async function S8(A,x,e){let r=e.logger??new Ne.Logger,t=new Ve({cwd:A,fs:x,serial:e.serial,transportFactory:e.transportFactory,createDevice:e.createDevice,pollIntervalMs:e.pollIntervalMs,flash:e.flash!==!1,build:e.build!==!1,part:e.part,logger:r,env:e.env,apiToken:e.apiToken,waitMs:e.waitMs,logFile:e.logFile,persistMirror:e.persistMirror!==!1,debug:e.debug});t.on("error",c=>r.warn(c instanceof Error?c.message:String(c)));try{await t.start()}catch(c){throw await t.stop(),c}let s,n,F;try{s=await y8({session:t,cwd:A,fs:x,logger:r,host:e.host,port:e.port,token:e.token,allowRemote:e.allowRemote}),e.watch&&(n=w8({cwd:A,session:t,logger:r,flash:e.flash!==!1})),e.pov&&(F=jD(A,t,s.url,e.pov,r))}catch(c){throw await s?.close(),await t.stop(),c}let f=s;return{url:f.url,port:f.port,session:t,apmId:t.status().apmId,async close(){n?.close(),hD(F,r),await f.close(),await t.stop()}}}function jD(A,x,e,r,t){let n=`pov/${typeof r=="string"&&r.length>0?r:mD}`,F=(0,ri.spawn)("npm",["run","dev","-w",n],{cwd:A.fsPath,env:{...process.env,MYDATANET_HOST:e},shell:process.platform==="win32",detached:process.platform!=="win32",stdio:["ignore","pipe","pipe"]}),f=c=>{for(let D of c.toString("utf8").split(/\r?\n/)){let p=D.trim();p&&x.logStream.push("pov",p)}};return F.stdout?.on("data",f),F.stderr?.on("data",f),F.on("error",c=>t.error(`POV dev server failed: ${c.message}`)),t.info(`POV dev server: npm run dev -w ${n} (MYDATANET_HOST=${e})`),F}function hD(A,x){if(!(!A||A.exitCode!==null||A.signalCode!==null||A.pid===void 0))try{if(process.platform==="win32"){(0,ri.spawn)("taskkill",["/PID",String(A.pid),"/T","/F"],{stdio:"ignore",windowsHide:!0});return}process.kill(-A.pid,"SIGTERM")}catch(e){x.debug(`Could not stop the POV dev server: ${e instanceof Error?e.message:String(e)}`),A.kill()}}var $8=require("uuid"),gD="b4baec47-0ba4-4e37-b237-8f9cde42b8dd",ti=(t=>(t.Get="GET",t.Post="POST",t.Put="PUT",t.Delete="DELETE",t))(ti||{});var pn=class{domain;auth;logger;userInfo=null;constructor(x,e,r){if(typeof x=="object"){let{serverUrl:t,apiToken:s,authHeader:n,logger:F}=x;this.domain=this.normalizeServerUrl(t),this.auth=n||(s?`Bearer ${s}`:""),this.logger=F}else this.domain=this.normalizeServerUrl(x),typeof e=="string"?(this.auth=`Bearer ${e}`,this.logger=r):(this.auth="",this.logger=e)}setAuth(x){this.auth=x}getDomain(){return this.domain}normalizeServerUrl(x){return!x.startsWith("http://")&&!x.startsWith("https://")?`https://${x}`:x}trimDomain(x){return x.replace(/(^\w+:|^)\/\//,"")}async fetchJSON(x,e,r){let t=`${this.domain}${e}`,s={Authorization:this.auth},n={method:x,headers:s};r&&(r instanceof FormData?n.body=r:(s["Content-Type"]="application/json",n.body=JSON.stringify(r)));let F=await fetch(t,n);if(!F.ok){let f=await F.text().catch(()=>"Unknown error");throw new Error(`HTTP ${F.status}: ${f}`)}return F.json()}async authenticate(){this.logger?.info(`Authenticating with ${this.trimDomain(this.domain)}...`);try{let{user:x,customers:e}=await this.fetchJSON("GET","/api/1/me");return this.userInfo={name:x.name,email:x.email,group:x.group,customers:e},this.logger?.info(`Authenticated as ${this.userInfo.name}`),this.userInfo}catch(x){throw new Error(`Authentication failed: ${x instanceof Error?x.message:String(x)}`)}}getUserInfo(){return this.userInfo}async uploadDevTag(x,e){this.logger?.info(`Uploading development tag ${x}...`);let{applid:r}=await this.fetchJSON("POST",`/api/1/app-center/__dev/${x}`,e);return this.logger?.info(`Development tag uploaded, application ID: ${r}`),r}async getCustomer(x){let{_uid:e,name:r}=await this.fetchJSON("GET",`/api/1/customers/${x}`);return{_uid:e,name:r}}async getCustomers(){return this.fetchJSON("GET","/api/1/customers")}async getDeviceSite(x){try{return await this.fetchJSON("GET",`/api/1/devices/${x}/site`)}catch{return null}}async getDevice(x){try{return await this.fetchJSON("GET",`/api/1/devices/${x}`)}catch{return null}}async getSite(x,e){try{return await this.fetchJSON("GET",`/api/1/customers/${x}/sites/${e}`)}catch{return null}}async createDevelopmentSite(x,e,r){if(this.logger?.info(`Creating development site "${e.name}"...`),e.serialNumber){let s=await this.getSite(x,e.name.toLowerCase());if(s)try{return await this.fetchJSON("POST",`/api/1/customers/${x}/sites/${s._uid}/cn-attach-device`,{device_id:e.serialNumber,allow_overwrite:!0,detach_from_old_site:!0,acquire:!0,create:!0}),this.logger?.info(`Device attached to existing site ${s._uid}`),s._uid}catch(n){if(n.message&&!n.message.includes("304"))this.logger?.warn(`Could not attach device to existing site: ${n.message}`);else return s._uid}}let{_uid:t}=await this.fetchJSON("POST",`/api/1/customers/${x}/sites`,{name:e.name,create:!0,force:!0,note:"This is a Studio development site",applid:e.applicationId,device_id:e.serialNumber,reg_code:r,servicetariff:"0000000000000000",servicetariff_indiv_cost:0});return this.logger?.info(`Development site created: ${t}`),t}async updateSiteName(x,e){try{await this.fetchJSON("PUT",`/api/1/sites/${x}`,{name:e})}catch{}}};function ni(A){return(0,$8.v5)(A,gD)}async function q8(A,x,e,r,t,s,n){let F=await J.read(A,x),f=t.replaceAll(" ","_").replace(/[^a-zA-Z0-9-]+/g,""),c=F.name.replaceAll(" ","_").replace(/[^a-zA-Z0-9-]+/g,""),D=await J.isApmPartEnabled(A,x,j0.Part.dlo,F),p=D&&r,j=p?r.toUpperCase():`${c}_${f}`,_=p?r:j,k=n||j;return k.length>50&&(e.warn(`Site name "${k}" is too long. Truncating to 50 characters.`),k=k.substring(0,50)),{apmId:ni(_),applicationId:null,name:k,version:1,serialNumber:D?r:void 0,siteUid:null,customerUid:s}}async function yD(A,x,e,r,t,s,n=!1){if(s.length>0)for(let F of s){let[f,c]=F.split("@");await Q0.installDependency(A,x,e,r,t,f,c||null,n)}else await Q0.installDependencies(A,x,e,r,t);await Q0.installNpmInApmParts(A,x,e)}async function kD(A,x,e,r,t=null,s=!0,n){return await J.validateBasicManifest(A,x,null),jx.buildAll(A,x,e,r,t,s,n)}async function _D(A){let x=null;if(A){x=A==="*"?A:A.split(";");let e=await J.validateRegistryAllowedBackends(x);if(e)throw new Error(e)}return x}async function wD(A,x,e,r,t,s,n,F){e.info("Publishing package...");let f=await _D(s);if(F)await jx.publishArchive(A,x,e,t,r,F,n,f);else return await jx.validatePublishSettings(A,x,t,r),jx.release(A,x,e,r,t,n,f)}async function SD(A,x,e,r,t,s){return jx.pack(A,x,e,r,t,s)}0&&(module.exports={APM,DDE,DDE_Core,DFILES,DLO,DefaultFiles,Dependencies,DevError,DevExitCode,DevSession,DeviceProfiles,Diagnostics,ENV,Globals,Helper,HttpMethod,Library,Log,Manifest,MyDatanetClient,Package,Registry,build,buildDevelopmentInstallInfo,dev,generateDevApmId,install,pack,publish});
2343
+ /*! Bundled license information:
2344
+
2345
+ @microtronics/device-master/dist/esm/index.mjs:
2346
+ (*! Bundled license information:
2347
+
2348
+ @noble/ed25519/index.js:
2349
+ (*! noble-ed25519 - MIT License (c) 2019 Paul Miller (paulmillr.com) *)
2350
+ *)
2351
+ */