trtc-sdk-v5 5.8.2-beta.10 → 5.8.2-beta.11
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/package.json +1 -1
- package/plugins/cdn-streaming/package.json +1 -1
- package/plugins/cross-room/package.json +1 -1
- package/plugins/debug/package.json +1 -1
- package/plugins/device-detector/device-detector.esm.js +8 -8
- package/plugins/device-detector/device-detector.iife.js +8 -8
- package/plugins/device-detector/package.json +1 -1
- package/plugins/video-effect/basic-beauty/package.json +1 -1
- package/plugins/video-effect/beauty/package.json +1 -1
- package/plugins/video-effect/virtual-background/package.json +1 -1
- package/plugins/video-effect/virtual-background/virtual-background.esm.js +1 -1
- package/plugins/video-effect/virtual-background/virtual-background.iife.js +1 -1
- package/plugins/video-effect/watermark/package.json +1 -1
- package/trtc.esm.js +26 -26
- package/trtc.js +1 -1
|
@@ -57,4 +57,4 @@ return ret;
|
|
|
57
57
|
`);return i[0]=="Error"&&i.shift(),Jr(i),pr.last_addr=Ai(i[2]),pr.last_stack=i,pr.last_addr}function Da(i,e,t){var r;pr.last_addr==i?r=pr.last_stack:(r=new Error().stack.split(`
|
|
58
58
|
`),r[0]=="Error"&&r.shift(),Jr(r));for(var o=2;r[o]&&Ai(r[o])!=i;)++o;for(var a=0;a<t&&r[a+o];++a)T[e+a*4>>2]=Ai(r[a+o]);return a}function ba(i){for(var e=Tt();Tt()-e<i;);}function Oa(i){var e=i.getExtension("ANGLE_instanced_arrays");if(e)return i.vertexAttribDivisor=function(t,r){e.vertexAttribDivisorANGLE(t,r)},i.drawArraysInstanced=function(t,r,o,a){e.drawArraysInstancedANGLE(t,r,o,a)},i.drawElementsInstanced=function(t,r,o,a,s){e.drawElementsInstancedANGLE(t,r,o,a,s)},1}function Ba(i){var e=i.getExtension("OES_vertex_array_object");if(e)return i.createVertexArray=function(){return e.createVertexArrayOES()},i.deleteVertexArray=function(t){e.deleteVertexArrayOES(t)},i.bindVertexArray=function(t){e.bindVertexArrayOES(t)},i.isVertexArray=function(t){return e.isVertexArrayOES(t)},1}function Ta(i){var e=i.getExtension("WEBGL_draw_buffers");if(e)return i.drawBuffers=function(t,r){e.drawBuffersWEBGL(t,r)},1}function va(i){return!!(i.dibvbi=i.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function Qa(i){return!!(i.mdibvbi=i.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function Pa(i){return!!(i.multiDrawWebgl=i.getExtension("WEBGL_multi_draw"))}var O={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function(e){O.lastError||(O.lastError=e)},getNewId:function(i){for(var e=O.counter++,t=i.length;t<e;t++)i[t]=null;return e},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup:function(i){return 32-Math.clz32(i===0?0:i-1)},generateTempBuffers:function(i,e){var t=O.log2ceilLookup(O.MAX_TEMP_BUFFER_SIZE);e.tempVertexBufferCounters1=[],e.tempVertexBufferCounters2=[],e.tempVertexBufferCounters1.length=e.tempVertexBufferCounters2.length=t+1,e.tempVertexBuffers1=[],e.tempVertexBuffers2=[],e.tempVertexBuffers1.length=e.tempVertexBuffers2.length=t+1,e.tempIndexBuffers=[],e.tempIndexBuffers.length=t+1;for(var r=0;r<=t;++r){e.tempIndexBuffers[r]=null,e.tempVertexBufferCounters1[r]=e.tempVertexBufferCounters2[r]=0;var o=O.numTempVertexBuffersPerSize;e.tempVertexBuffers1[r]=[],e.tempVertexBuffers2[r]=[];var a=e.tempVertexBuffers1[r],s=e.tempVertexBuffers2[r];a.length=s.length=o;for(var A=0;A<o;++A)a[A]=s[A]=null}if(i){e.tempQuadIndexBuffer=M.createBuffer(),e.GLctx.bindBuffer(34963,e.tempQuadIndexBuffer);for(var c=O.MAX_TEMP_BUFFER_SIZE>>1,u=new Uint16Array(c),r=0,d=0;u[r++]=d,!(r>=c||(u[r++]=d+1,r>=c)||(u[r++]=d+2,r>=c)||(u[r++]=d,r>=c)||(u[r++]=d+2,r>=c)||(u[r++]=d+3,r>=c));)d+=4;e.GLctx.bufferData(34963,u,35044),e.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(e){var t=O.log2ceilLookup(e),r=O.currentContext.tempVertexBuffers1[t],o=O.currentContext.tempVertexBufferCounters1[t];O.currentContext.tempVertexBufferCounters1[t]=O.currentContext.tempVertexBufferCounters1[t]+1&O.numTempVertexBuffersPerSize-1;var a=r[o];if(a)return a;var s=M.getParameter(34964);return r[o]=M.createBuffer(),M.bindBuffer(34962,r[o]),M.bufferData(34962,1<<t,35048),M.bindBuffer(34962,s),r[o]},getTempIndexBuffer:function(e){var t=O.log2ceilLookup(e),r=O.currentContext.tempIndexBuffers[t];if(r)return r;var o=M.getParameter(34965);return O.currentContext.tempIndexBuffers[t]=M.createBuffer(),M.bindBuffer(34963,O.currentContext.tempIndexBuffers[t]),M.bufferData(34963,1<<t,35048),M.bindBuffer(34963,o),O.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(O.currentContext){var e=O.currentContext.tempVertexBuffers1;O.currentContext.tempVertexBuffers1=O.currentContext.tempVertexBuffers2,O.currentContext.tempVertexBuffers2=e,e=O.currentContext.tempVertexBufferCounters1,O.currentContext.tempVertexBufferCounters1=O.currentContext.tempVertexBufferCounters2,O.currentContext.tempVertexBufferCounters2=e;for(var t=O.log2ceilLookup(O.MAX_TEMP_BUFFER_SIZE),r=0;r<=t;++r)O.currentContext.tempVertexBufferCounters1[r]=0}},getSource:function(i,e,t,r){for(var o="",a=0;a<e;++a){var s=r?T[r+a*4>>2]:-1;o+=at(T[t+a*4>>2],s<0?void 0:s)}return o},calcBufLength:function(e,t,r,o){if(r>0)return o*r;var a=O.byteSizeByType[t-O.byteSizeByTypeRoot];return e*a*o},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){O.resetBufferBinding=!1;for(var t=0;t<O.currentContext.maxVertexAttribs;++t){var r=O.currentContext.clientBuffers[t];if(!(!r.clientside||!r.enabled)){O.resetBufferBinding=!0;var o=O.calcBufLength(r.size,r.type,r.stride,e),a=O.getTempVertexBuffer(o);M.bindBuffer(34962,a),M.bufferSubData(34962,0,Se.subarray(r.ptr,r.ptr+o)),r.vertexAttribPointerAdaptor.call(M,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){O.resetBufferBinding&&M.bindBuffer(34962,O.buffers[M.currentArrayBufferBinding])},createContext:function(i,e){e.renderViaOffscreenBackBuffer&&(e.preserveDrawingBuffer=!0),i.getContextSafariWebGL2Fixed||(i.getContextSafariWebGL2Fixed=i.getContext,i.getContext=function(o,a){var s=i.getContextSafariWebGL2Fixed(o,a);return o=="webgl"==s instanceof WebGLRenderingContext?s:null});var t=e.majorVersion>1?i.getContext("webgl2",e):i.getContext("webgl",e);if(!t)return 0;var r=O.registerContext(t,e);return r},enableOffscreenFramebufferAttributes:function(i){i.renderViaOffscreenBackBuffer=!0,i.preserveDrawingBuffer=!0},createOffscreenFramebuffer:function(i){var e=i.GLctx,t=e.createFramebuffer();if(e.bindFramebuffer(36160,t),i.defaultFbo=t,i.defaultFboForbidBlitFramebuffer=!1,e.getContextAttributes().antialias)i.defaultFboForbidBlitFramebuffer=!0;else{var r=navigator.userAgent.toLowerCase().match(/firefox\/(\d\d)/);if(r!=null){var o=r[1];i.defaultFboForbidBlitFramebuffer=o<67}}i.defaultColorTarget=e.createTexture(),i.defaultDepthTarget=e.createRenderbuffer(),O.resizeOffscreenFramebuffer(i),e.bindTexture(3553,i.defaultColorTarget),e.texParameteri(3553,10241,9728),e.texParameteri(3553,10240,9728),e.texParameteri(3553,10242,33071),e.texParameteri(3553,10243,33071),e.texImage2D(3553,0,6408,e.canvas.width,e.canvas.height,0,6408,5121,null),e.framebufferTexture2D(36160,36064,3553,i.defaultColorTarget,0),e.bindTexture(3553,null);var a=e.createRenderbuffer();e.bindRenderbuffer(36161,i.defaultDepthTarget),e.renderbufferStorage(36161,33189,e.canvas.width,e.canvas.height),e.framebufferRenderbuffer(36160,36096,36161,i.defaultDepthTarget),e.bindRenderbuffer(36161,null);var s=[-1,-1,-1,1,1,-1,1,1],A=e.createBuffer();e.bindBuffer(34962,A),e.bufferData(34962,new Float32Array(s),35044),e.bindBuffer(34962,null),i.blitVB=A;var c="attribute vec2 pos;varying lowp vec2 tex;void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }",u=e.createShader(35633);e.shaderSource(u,c),e.compileShader(u);var d="varying lowp vec2 tex;uniform sampler2D sampler;void main() { gl_FragColor = texture2D(sampler, tex); }",h=e.createShader(35632);e.shaderSource(h,d),e.compileShader(h);var I=e.createProgram();e.attachShader(I,u),e.attachShader(I,h),e.linkProgram(I),i.blitProgram=I,i.blitPosLoc=e.getAttribLocation(I,"pos"),e.useProgram(I),e.uniform1i(e.getUniformLocation(I,"sampler"),0),e.useProgram(null),i.defaultVao=void 0,e.createVertexArray&&(i.defaultVao=e.createVertexArray(),e.bindVertexArray(i.defaultVao),e.enableVertexAttribArray(i.blitPosLoc),e.bindVertexArray(null))},resizeOffscreenFramebuffer:function(i){var e=i.GLctx;if(i.defaultColorTarget){var t=e.getParameter(32873);e.bindTexture(3553,i.defaultColorTarget),e.texImage2D(3553,0,6408,e.drawingBufferWidth,e.drawingBufferHeight,0,6408,5121,null),e.bindTexture(3553,t)}if(i.defaultDepthTarget){var r=e.getParameter(36007);e.bindRenderbuffer(36161,i.defaultDepthTarget),e.renderbufferStorage(36161,33189,e.drawingBufferWidth,e.drawingBufferHeight),e.bindRenderbuffer(36161,r)}},blitOffscreenFramebuffer:function(i){var e=i.GLctx,t=e.getParameter(3089);t&&e.disable(3089);var r=e.getParameter(36006);if(e.blitFramebuffer&&!i.defaultFboForbidBlitFramebuffer)e.bindFramebuffer(36008,i.defaultFbo),e.bindFramebuffer(36009,null),e.blitFramebuffer(0,0,e.canvas.width,e.canvas.height,0,0,e.canvas.width,e.canvas.height,16384,9728);else{let $=function(){e.vertexAttribPointer(i.blitPosLoc,2,5126,!1,0,0),e.drawArrays(5,0,4)};var k=$;e.bindFramebuffer(36160,null);var o=e.getParameter(35725);e.useProgram(i.blitProgram);var a=e.getParameter(34964);e.bindBuffer(34962,i.blitVB);var s=e.getParameter(34016);e.activeTexture(33984);var A=e.getParameter(32873);e.bindTexture(3553,i.defaultColorTarget);var c=e.getParameter(3042);c&&e.disable(3042);var u=e.getParameter(2884);u&&e.disable(2884);var d=e.getParameter(2929);d&&e.disable(2929);var h=e.getParameter(2960);if(h&&e.disable(2960),i.defaultVao){var I=e.getParameter(34229);e.bindVertexArray(i.defaultVao),$(),e.bindVertexArray(I)}else{for(var m={buffer:e.getVertexAttrib(i.blitPosLoc,34975),size:e.getVertexAttrib(i.blitPosLoc,34339),stride:e.getVertexAttrib(i.blitPosLoc,34340),type:e.getVertexAttrib(i.blitPosLoc,34341),normalized:e.getVertexAttrib(i.blitPosLoc,34922),pointer:e.getVertexAttribOffset(i.blitPosLoc,34373)},y=e.getParameter(34921),v=[],U=0;U<y;++U){var G=e.getVertexAttrib(U,34338),R=U==i.blitPosLoc;G&&!R&&e.disableVertexAttribArray(U),!G&&R&&e.enableVertexAttribArray(U),v[U]=G}$();for(var U=0;U<y;++U){var G=v[U],D=U==i.blitPosLoc;G&&!D&&e.enableVertexAttribArray(U),!G&&D&&e.disableVertexAttribArray(U)}e.bindBuffer(34962,m.buffer),e.vertexAttribPointer(i.blitPosLoc,m.size,m.type,m.normalized,m.stride,m.offset)}h&&e.enable(2960),d&&e.enable(2929),u&&e.enable(2884),c&&e.enable(3042),e.bindTexture(3553,A),e.activeTexture(s),e.bindBuffer(34962,a),e.useProgram(o)}e.bindFramebuffer(36160,r),t&&e.enable(3089)},registerContext:function(i,e){var t=O.getNewId(O.contexts),r={handle:t,attributes:e,version:e.majorVersion,GLctx:i};i.canvas&&(i.canvas.GLctxObject=r),O.contexts[t]=r,(typeof e.enableExtensionsByDefault=="undefined"||e.enableExtensionsByDefault)&&O.initExtensions(r),r.maxVertexAttribs=r.GLctx.getParameter(34921),r.clientBuffers=[];for(var o=0;o<r.maxVertexAttribs;o++)r.clientBuffers[o]={enabled:!1,clientside:!1,size:0,type:0,normalized:0,stride:0,ptr:0,vertexAttribPointerAdaptor:null};return O.generateTempBuffers(!1,r),e.renderViaOffscreenBackBuffer&&O.createOffscreenFramebuffer(r),t},makeContextCurrent:function(i){return O.currentContext=O.contexts[i],n.ctx=M=O.currentContext&&O.currentContext.GLctx,!(i&&!M)},getContext:function(i){return O.contexts[i]},deleteContext:function(i){O.currentContext===O.contexts[i]&&(O.currentContext=null),typeof w=="object"&&w.removeAllHandlersOnTarget(O.contexts[i].GLctx.canvas),O.contexts[i]&&O.contexts[i].GLctx.canvas&&(O.contexts[i].GLctx.canvas.GLctxObject=void 0),O.contexts[i]=null},initExtensions:function(i){if(i||(i=O.currentContext),!i.initExtensionsDone){i.initExtensionsDone=!0;var e=i.GLctx;Oa(e),Ba(e),Ta(e),va(e),Qa(e),i.version>=2&&(e.disjointTimerQueryExt=e.getExtension("EXT_disjoint_timer_query_webgl2")),(i.version<2||!e.disjointTimerQueryExt)&&(e.disjointTimerQueryExt=e.getExtension("EXT_disjoint_timer_query")),Pa(e);var t=e.getSupportedExtensions()||[];t.forEach(function(r){!r.includes("lose_context")&&!r.includes("debug")&&e.getExtension(r)})}}},w={inEventHandler:0,removeAllEventListeners:function(){for(var i=w.eventHandlers.length-1;i>=0;--i)w._removeHandler(i);w.eventHandlers=[],w.deferredCalls=[]},registerRemoveEventListeners:function(){w.removeEventListenersRegistered||(Nr.push(w.removeAllEventListeners),w.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(i,e,t){function r(s,A){if(s.length!=A.length)return!1;for(var c in s)if(s[c]!=A[c])return!1;return!0}for(var o in w.deferredCalls){var a=w.deferredCalls[o];if(a.targetFunction==i&&r(a.argsList,t))return}w.deferredCalls.push({targetFunction:i,precedence:e,argsList:t}),w.deferredCalls.sort(function(s,A){return s.precedence<A.precedence})},removeDeferredCalls:function(i){for(var e=0;e<w.deferredCalls.length;++e)w.deferredCalls[e].targetFunction==i&&(w.deferredCalls.splice(e,1),--e)},canPerformEventHandlerRequests:function(){return w.inEventHandler&&w.currentEventHandler.allowsDeferredCalls},runDeferredCalls:function(){if(w.canPerformEventHandlerRequests())for(var i=0;i<w.deferredCalls.length;++i){var e=w.deferredCalls[i];w.deferredCalls.splice(i,1),--i,e.targetFunction.apply(null,e.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:function(i,e){for(var t=0;t<w.eventHandlers.length;++t)w.eventHandlers[t].target==i&&(!e||e==w.eventHandlers[t].eventTypeString)&&w._removeHandler(t--)},_removeHandler:function(i){var e=w.eventHandlers[i];e.target.removeEventListener(e.eventTypeString,e.eventListenerFunc,e.useCapture),w.eventHandlers.splice(i,1)},registerOrRemoveHandler:function(i){var e=function(o){++w.inEventHandler,w.currentEventHandler=i,w.runDeferredCalls(),i.handlerFunc(o),w.runDeferredCalls(),--w.inEventHandler};if(i.callbackfunc)i.eventListenerFunc=e,i.target.addEventListener(i.eventTypeString,e,i.useCapture),w.eventHandlers.push(i),w.registerRemoveEventListeners();else for(var t=0;t<w.eventHandlers.length;++t)w.eventHandlers[t].target==i.target&&w.eventHandlers[t].eventTypeString==i.eventTypeString&&w._removeHandler(t--)},getNodeNameForTarget:function(i){return i?i==window?"#window":i==screen?"#screen":i&&i.nodeName?i.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}},de=["default","low-power","high-performance"],yo=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function Ra(i){Re("Rules for selecting event targets in HTML5 API are changing: instead of using document.getElementById() that only can refer to elements by their DOM ID, new event target selection mechanism uses the more flexible function document.querySelector() that can look up element names, classes, and complex CSS selectors. Build with -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 to change to the new lookup rules. See https://github.com/emscripten-core/emscripten/pull/7977 for more details.");try{return!i||(typeof i=="number"&&(i=yo[i]||at(i)),i==="#window")?window:i==="#document"?document:i==="#screen"?screen:i==="#canvas"?n.canvas:typeof i=="string"?document.getElementById(i):i}catch(e){return null}}function qi(i){return typeof i=="number"&&(i=at(i)),!i||i==="#canvas"?typeof O!="undefined"&&O.offscreenCanvases.canvas?O.offscreenCanvases.canvas:n.canvas:typeof O!="undefined"&&O.offscreenCanvases[i]?O.offscreenCanvases[i]:Ra(i)}function eo(i,e){W(e);var t=e>>2,r=T[t+6],o={alpha:!!T[t+0],depth:!!T[t+1],stencil:!!T[t+2],antialias:!!T[t+3],premultipliedAlpha:!!T[t+4],preserveDrawingBuffer:!!T[t+5],powerPreference:de[r],failIfMajorPerformanceCaveat:!!T[t+7],majorVersion:T[t+8],minorVersion:T[t+9],enableExtensionsByDefault:T[t+10],explicitSwapControl:T[t+11],proxyContextToMainThread:T[t+12],renderViaOffscreenBackBuffer:T[t+13]},a=qi(i);if(!a)return 0;if(a.offscreenCanvas&&(a=a.offscreenCanvas),o.explicitSwapControl){var s=a.transferControlToOffscreen||typeof OffscreenCanvas!="undefined"&&a instanceof OffscreenCanvas;if(s||o.renderViaOffscreenBackBuffer||(o.renderViaOffscreenBackBuffer=!0),a.transferControlToOffscreen){if(!a.controlTransferredOffscreen)O.offscreenCanvases[a.id]={canvas:a.transferControlToOffscreen(),canvasSharedPtr:it(12),id:a.id},a.controlTransferredOffscreen=!0;else if(!O.offscreenCanvases[a.id])return 0;a=O.offscreenCanvases[a.id]}}var A=O.createContext(a,o);return A}function Sa(i,e){return eo(i,e)}function Ma(){return O.currentContext?O.currentContext.handle:0}function wo(){return Ma()}n._emscripten_webgl_get_current_context=wo;function to(i){var e=O.makeContextCurrent(i);return e?0:-5}n._emscripten_webgl_make_context_current=to;function Do(i){O.currentContext==i&&(O.currentContext=0),O.deleteContext(i)}function Fa(i,e){if(!e)return-5;if(i=O.contexts[i],!i)return-3;var t=i.GLctx;if(!t)return-3;t=t.getContextAttributes(),T[e>>2]=t.alpha,T[e+4>>2]=t.depth,T[e+8>>2]=t.stencil,T[e+12>>2]=t.antialias,T[e+16>>2]=t.premultipliedAlpha,T[e+20>>2]=t.preserveDrawingBuffer;var r=t.powerPreference&&de.indexOf(t.powerPreference);return T[e+24>>2]=r,T[e+28>>2]=t.failIfMajorPerformanceCaveat,T[e+32>>2]=i.version,T[e+36>>2]=0,T[e+40>>2]=i.attributes.enableExtensionsByDefault,0}function ka(i){W(i);for(var e=i>>2,t=0;t<14;++t)T[e+t]=0;T[e+0]=T[e+1]=T[e+3]=T[e+4]=T[e+8]=T[e+10]=1}var ro={};function no(){return ht||"./this.program"}function Fn(){if(!Fn.strings){var i=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:i,_:no()};for(var t in ro)ro[t]===void 0?delete e[t]:e[t]=ro[t];var r=[];for(var t in e)r.push(t+"="+e[t]);Fn.strings=r}return Fn.strings}function kn(i,e){var t=0;return Fn().forEach(function(r,o){var a=e+t;T[i+o*4>>2]=a,yn(r,a),t+=r.length+1}),0}function xa(i,e){var t=Fn();T[i>>2]=t.length;var r=0;return t.forEach(function(o){r+=o.length+1}),T[e>>2]=r,0}function Ua(i){try{var e=l.getStreamFromFD(i);return f.close(e),0}catch(t){return(typeof f=="undefined"||!(t instanceof f.ErrnoError))&&E(t),t.errno}}function Na(i,e,t,r){try{var o=l.getStreamFromFD(i),a=l.doReadv(o,e,t);return T[r>>2]=a,0}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&E(s),s.errno}}function ja(i,e,t,r,o){try{var a=l.getStreamFromFD(i),s=4294967296,A=t*s+(e>>>0),c=9007199254740992;return A<=-c||A>=c?-61:(f.llseek(a,A,r),ye=[a.position>>>0,(We=a.position,+Math.abs(We)>=1?We>0?(Math.min(+Math.floor(We/4294967296),4294967295)|0)>>>0:~~+Math.ceil((We-+(~~We>>>0))/4294967296)>>>0:0)],T[o>>2]=ye[0],T[o+4>>2]=ye[1],a.getdents&&A===0&&r===0&&(a.getdents=null),0)}catch(u){return(typeof f=="undefined"||!(u instanceof f.ErrnoError))&&E(u),u.errno}}function La(i,e,t,r){try{var o=l.getStreamFromFD(i),a=l.doWritev(o,e,t);return T[r>>2]=a,0}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&E(s),s.errno}}function Ha(){return Cr()}function ci(i,e){ci.randomDevice||(ci.randomDevice=me());for(var t=0;t<e;t++)Ne[i+t>>0]=ci.randomDevice();return 0}function ui(i){M.activeTexture(i)}function Ga(i,e){M.attachShader(O.programs[i],O.shaders[e])}function Ya(i,e,t){M.bindAttribLocation(O.programs[i],e,at(t))}function Xa(i,e){i==34962?M.currentArrayBufferBinding=e:i==34963&&(M.currentElementArrayBufferBinding=e),i==35051?M.currentPixelPackBufferBinding=e:i==35052&&(M.currentPixelUnpackBufferBinding=e),M.bindBuffer(i,O.buffers[e])}function Wa(i,e,t){M.bindBufferBase(i,e,O.buffers[t])}function Va(i,e){M.bindFramebuffer(i,e?O.framebuffers[e]:O.currentContext.defaultFbo)}function za(i,e){M.bindTexture(i,O.textures[e])}function $a(i){M.bindVertexArray(O.vaos[i]);var e=M.getParameter(34965);M.currentElementArrayBufferBinding=e?e.name|0:0}function Ja(i,e,t,r){O.currentContext.version>=2?t?M.bufferData(i,Se,r,t,e):M.bufferData(i,e,r):M.bufferData(i,t?Se.subarray(t,t+e):e,r)}function Ka(i,e){return W(e===(e|0)),(i>>>0)+e*4294967296}function Za(i,e,t,r){return M.clientWaitSync(O.syncs[i],e,Ka(t,r))}function qa(i){M.compileShader(O.shaders[i])}function es(){var i=O.getNewId(O.programs),e=M.createProgram();return e.name=i,e.maxUniformLength=e.maxAttributeLength=e.maxUniformBlockNameLength=0,e.uniformIdCounter=1,O.programs[i]=e,i}function ts(i){var e=O.getNewId(O.shaders);return O.shaders[e]=M.createShader(i),e}function rs(i,e){for(var t=0;t<i;t++){var r=T[e+t*4>>2],o=O.buffers[r];o&&(M.deleteBuffer(o),o.name=0,O.buffers[r]=null,r==M.currentArrayBufferBinding&&(M.currentArrayBufferBinding=0),r==M.currentElementArrayBufferBinding&&(M.currentElementArrayBufferBinding=0),r==M.currentPixelPackBufferBinding&&(M.currentPixelPackBufferBinding=0),r==M.currentPixelUnpackBufferBinding&&(M.currentPixelUnpackBufferBinding=0))}}function ns(i,e){for(var t=0;t<i;++t){var r=T[e+t*4>>2],o=O.framebuffers[r];o&&(M.deleteFramebuffer(o),o.name=0,O.framebuffers[r]=null)}}function is(i){if(i){var e=O.programs[i];if(!e){O.recordError(1281);return}M.deleteProgram(e),e.name=0,O.programs[i]=null}}function os(i){if(i){var e=O.shaders[i];if(!e){O.recordError(1281);return}M.deleteShader(e),O.shaders[i]=null}}function as(i){if(i){var e=O.syncs[i];if(!e){O.recordError(1281);return}M.deleteSync(e),e.name=0,O.syncs[i]=null}}function ss(i,e){for(var t=0;t<i;t++){var r=T[e+t*4>>2],o=O.textures[r];o&&(M.deleteTexture(o),o.name=0,O.textures[r]=null)}}function As(i,e){for(var t=0;t<i;t++){var r=T[e+t*4>>2];M.deleteVertexArray(O.vaos[r]),O.vaos[r]=null}}function cs(i){M.disable(i)}function us(i){var e=O.currentContext.clientBuffers[i];e.enabled=!1,M.disableVertexAttribArray(i)}function ls(i,e,t){O.preDrawHandleClientVertexAttribBindings(e+t),M.drawArrays(i,e,t),O.postDrawHandleClientVertexAttribBindings()}var bo=[];function Oo(i,e){for(var t=bo[i],r=0;r<i;r++)t[r]=T[e+r*4>>2];M.drawBuffers(t)}function ds(i){var e=O.currentContext.clientBuffers[i];e.enabled=!0,M.enableVertexAttribArray(i)}function fs(i,e){var t=M.fenceSync(i,e);if(t){var r=O.getNewId(O.syncs);return t.name=r,O.syncs[r]=t,r}else return 0}function gs(){M.finish()}function Es(){M.flush()}function ps(i,e,t,r,o){M.framebufferTexture2D(i,e,t,O.textures[r],o)}function _s(i,e,t,r,o){M.framebufferTextureLayer(i,e,O.textures[t],r,o)}function li(i,e,t,r){for(var o=0;o<i;o++){var a=M[t](),s=a&&O.getNewId(r);a?(a.name=s,r[s]=a):O.recordError(1282),T[e+o*4>>2]=s}}function di(i,e){li(i,e,"createBuffer",O.buffers)}function hs(i,e){li(i,e,"createFramebuffer",O.framebuffers)}function Is(i,e){li(i,e,"createTexture",O.textures)}function ms(i,e){li(i,e,"createVertexArray",O.vaos)}function Cs(i,e){return M.getAttribLocation(O.programs[i],at(e))}function ys(){var i=M.getError()||O.lastError;return O.lastError=0,i}function ws(i){return Oe[i>>2]+T[i+4>>2]*4294967296}function Ds(i){return Oe[i>>2]+Oe[i+4>>2]*4294967296}function bs(i,e){Oe[i>>2]=e,Oe[i+4>>2]=(e-Oe[i>>2])/4294967296;var t=e>=0?Ds(i):ws(i);t!=e&&Re("writeI53ToI64() out of range: serialized JS Number "+e+" to Wasm heap as bytes lo=0x"+Oe[i>>2].toString(16)+", hi=0x"+Oe[i+4>>2].toString(16)+", which deserializes back to "+t+" instead!")}function Os(i,e,t){if(!e){O.recordError(1281);return}var r=void 0;switch(i){case 36346:r=1;break;case 36344:t!=0&&t!=1&&O.recordError(1280);return;case 34814:case 36345:r=0;break;case 34466:var o=M.getParameter(34467);r=o?o.length:0;break;case 33309:if(O.currentContext.version<2){O.recordError(1282);return}var a=M.getSupportedExtensions()||[];r=2*a.length;break;case 33307:case 33308:if(O.currentContext.version<2){O.recordError(1280);return}r=i==33307?3:0;break}if(r===void 0){var s=M.getParameter(i);switch(typeof s){case"number":r=s;break;case"boolean":r=s?1:0;break;case"string":O.recordError(1280);return;case"object":if(s===null)switch(i){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{r=0;break}default:{O.recordError(1280);return}}else if(s instanceof Float32Array||s instanceof Uint32Array||s instanceof Int32Array||s instanceof Array){for(var A=0;A<s.length;++A)switch(t){case 0:T[e+A*4>>2]=s[A];break;case 2:b[e+A*4>>2]=s[A];break;case 4:Ne[e+A>>0]=s[A]?1:0;break}return}else try{r=s.name|0}catch(c){O.recordError(1280),ge("GL_INVALID_ENUM in glGet"+t+"v: Unknown object returned from WebGL getParameter("+i+")! (error: "+c+")");return}break;default:O.recordError(1280),ge("GL_INVALID_ENUM in glGet"+t+"v: Native code calling glGet"+t+"v("+i+") and it returns "+s+" of type "+typeof s+"!");return}}switch(t){case 1:bs(e,r);break;case 0:T[e>>2]=r;break;case 2:b[e>>2]=r;break;case 4:Ne[e>>0]=r?1:0;break}}function Bs(i,e){Os(i,e,0)}function fi(i){var e=Ze(i)+1,t=it(e);return Ke(i,t,e),t}function gi(i){var e=O.stringCache[i];if(!e){switch(i){case 7939:var t=M.getSupportedExtensions()||[];t=t.concat(t.map(function(c){return"GL_"+c})),e=fi(t.join(" "));break;case 7936:case 7937:case 37445:case 37446:var r=M.getParameter(i);r||O.recordError(1280),e=r&&fi(r);break;case 7938:var o=M.getParameter(7938);O.currentContext.version>=2?o="OpenGL ES 3.0 ("+o+")":o="OpenGL ES 2.0 ("+o+")",e=fi(o);break;case 35724:var a=M.getParameter(35724),s=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/,A=a.match(s);A!==null&&(A[1].length==3&&(A[1]=A[1]+"0"),a="OpenGL ES GLSL ES "+A[1]+" ("+a+")"),e=fi(a);break;default:O.recordError(1280)}O.stringCache[i]=e}return e}function Ts(i,e){return M.getUniformBlockIndex(O.programs[i],at(e))}function vs(i){return parseInt(i)}function Bo(i){return i.slice(-1)=="]"&&i.lastIndexOf("[")}function To(i){var e=i.uniformLocsById,t=i.uniformSizeAndIdsByName,r,o;if(!e)for(i.uniformLocsById=e={},i.uniformArrayNamesById={},r=0;r<M.getProgramParameter(i,35718);++r){var a=M.getActiveUniform(i,r),s=a.name,A=a.size,c=Bo(s),u=c>0?s.slice(0,c):s,d=i.uniformIdCounter;for(i.uniformIdCounter+=A,t[u]=[A,d],o=0;o<A;++o)e[d]=o,i.uniformArrayNamesById[d++]=u}}function Qs(i,e){if(e=at(e),i=O.programs[i]){To(i);var t=i.uniformLocsById,r=0,o=e,a=Bo(e);a>0&&(r=vs(e.slice(a+1))>>>0,o=e.slice(0,a));var s=i.uniformSizeAndIdsByName[o];if(s&&r<s[0]&&(r+=s[1],t[r]=t[r]||M.getUniformLocation(i,e)))return r}else O.recordError(1281);return-1}function Ps(i){i=O.programs[i],M.linkProgram(i),i.uniformLocsById=0,i.uniformSizeAndIdsByName={}}function Rs(i,e){i==3317&&(O.unpackAlignment=e),M.pixelStorei(i,e)}function Ss(i,e,t,r){function o(A,c){return A+c-1&-c}var a=i*t,s=o(a,r);return e*s}function Ms(i){var e={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return e[i-6402]||1}function xn(i){return i-=5120,i==0?Ne:i==1?Se:i==2?be:i==4?T:i==6?b:i==5||i==28922||i==28520||i==30779||i==30782?Oe:ve}function _r(i){return 31-Math.clz32(i.BYTES_PER_ELEMENT)}function Kr(i,e,t,r,o,a){var s=xn(i),A=_r(s),c=1<<A,u=Ms(e)*c,d=Ss(t,r,u,O.unpackAlignment);return s.subarray(o>>A,o+d>>A)}function io(i,e,t,r,o,a,s){if(O.currentContext.version>=2){if(M.currentPixelPackBufferBinding)M.readPixels(i,e,t,r,o,a,s);else{var A=xn(a);M.readPixels(i,e,t,r,o,a,A,s>>_r(A))}return}var c=Kr(a,o,t,r,s,o);if(!c){O.recordError(1280);return}M.readPixels(i,e,t,r,o,a,c)}function Fs(i,e,t,r){var o=O.getSource(i,e,t,r);M.shaderSource(O.shaders[i],o)}function ks(i,e,t,r,o,a,s,A,c){if(O.currentContext.version>=2){if(M.currentPixelUnpackBufferBinding)M.texImage2D(i,e,t,r,o,a,s,A,c);else if(c){var u=xn(A);M.texImage2D(i,e,t,r,o,a,s,A,u,c>>_r(u))}else M.texImage2D(i,e,t,r,o,a,s,A,null);return}M.texImage2D(i,e,t,r,o,a,s,A,c?Kr(A,s,r,o,c,t):null)}function xs(i,e,t){var r=b[t>>2];M.texParameterf(i,e,r)}function Us(i,e,t){M.texParameteri(i,e,t)}function Ns(i,e,t,r,o){M.texStorage2D(i,e,t,r,o)}function js(i,e,t,r,o,a){M.texStorage3D(i,e,t,r,o,a)}function Ls(i,e,t,r,o,a,s,A,c){if(O.currentContext.version>=2){if(M.currentPixelUnpackBufferBinding)M.texSubImage2D(i,e,t,r,o,a,s,A,c);else if(c){var u=xn(A);M.texSubImage2D(i,e,t,r,o,a,s,A,u,c>>_r(u))}else M.texSubImage2D(i,e,t,r,o,a,s,A,null);return}var d=null;c&&(d=Kr(A,s,o,a,c,0)),M.texSubImage2D(i,e,t,r,o,a,s,A,d)}function Hs(i,e,t,r,o,a,s,A,c,u,d){if(M.currentPixelUnpackBufferBinding)M.texSubImage3D(i,e,t,r,o,a,s,A,c,u,d);else if(d){var h=xn(u);M.texSubImage3D(i,e,t,r,o,a,s,A,c,u,h,d>>_r(h))}else M.texSubImage3D(i,e,t,r,o,a,s,A,c,u,null)}function qt(i){var e=M.currentProgram;if(e){var t=e.uniformLocsById[i];return typeof t=="number"&&(e.uniformLocsById[i]=t=M.getUniformLocation(e,e.uniformArrayNamesById[i]+(t>0?"["+t+"]":""))),t}else O.recordError(1282)}function er(i,e){M.uniform1f(qt(i),e)}function Gs(i,e){M.uniform1i(qt(i),e)}var Ei=[];function pi(i,e,t){if(O.currentContext.version>=2){M.uniform2fv(qt(i),b,t>>2,e*2);return}if(e<=144)for(var r=Ei[2*e-1],o=0;o<2*e;o+=2)r[o]=b[t+4*o>>2],r[o+1]=b[t+(4*o+4)>>2];else var r=b.subarray(t>>2,t+e*8>>2);M.uniform2fv(qt(i),r)}function Ys(i,e,t){if(O.currentContext.version>=2){M.uniform4fv(qt(i),b,t>>2,e*4);return}if(e<=72){var r=Ei[4*e-1],o=b;t>>=2;for(var a=0;a<4*e;a+=4){var s=t+a;r[a]=o[s],r[a+1]=o[s+1],r[a+2]=o[s+2],r[a+3]=o[s+3]}}else var r=b.subarray(t>>2,t+e*16>>2);M.uniform4fv(qt(i),r)}var vo=[];function Qo(i,e,t){if(O.currentContext.version>=2){M.uniform4iv(qt(i),T,t>>2,e*4);return}if(e<=72)for(var r=vo[4*e-1],o=0;o<4*e;o+=4)r[o]=T[t+4*o>>2],r[o+1]=T[t+(4*o+4)>>2],r[o+2]=T[t+(4*o+8)>>2],r[o+3]=T[t+(4*o+12)>>2];else var r=T.subarray(t>>2,t+e*16>>2);M.uniform4iv(qt(i),r)}function Xs(i,e,t){i=O.programs[i],M.uniformBlockBinding(i,e,t)}function Ws(i,e,t,r){if(O.currentContext.version>=2){M.uniformMatrix4fv(qt(i),!!t,b,r>>2,e*16);return}if(e<=18){var o=Ei[16*e-1],a=b;r>>=2;for(var s=0;s<16*e;s+=16){var A=r+s;o[s]=a[A],o[s+1]=a[A+1],o[s+2]=a[A+2],o[s+3]=a[A+3],o[s+4]=a[A+4],o[s+5]=a[A+5],o[s+6]=a[A+6],o[s+7]=a[A+7],o[s+8]=a[A+8],o[s+9]=a[A+9],o[s+10]=a[A+10],o[s+11]=a[A+11],o[s+12]=a[A+12],o[s+13]=a[A+13],o[s+14]=a[A+14],o[s+15]=a[A+15]}}else var o=b.subarray(r>>2,r+e*64>>2);M.uniformMatrix4fv(qt(i),!!t,o)}function Vs(i){i=O.programs[i],M.useProgram(i),M.currentProgram=i}function zs(i,e,t,r,o,a){var s=O.currentContext.clientBuffers[i];if(!M.currentArrayBufferBinding){s.size=e,s.type=t,s.normalized=r,s.stride=o,s.ptr=a,s.clientside=!0,s.vertexAttribPointerAdaptor=function(A,c,u,d,h,I){this.vertexAttribPointer(A,c,u,d,h,I)};return}s.clientside=!1,M.vertexAttribPointer(i,e,t,!!r,o,a)}function $s(i,e,t,r){M.viewport(i,e,t,r)}function _i(i,e){var t=new Date(T[i>>2]*1e3);T[e>>2]=t.getUTCSeconds(),T[e+4>>2]=t.getUTCMinutes(),T[e+8>>2]=t.getUTCHours(),T[e+12>>2]=t.getUTCDate(),T[e+16>>2]=t.getUTCMonth(),T[e+20>>2]=t.getUTCFullYear()-1900,T[e+24>>2]=t.getUTCDay(),T[e+36>>2]=0,T[e+32>>2]=0;var r=Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0),o=(t.getTime()-r)/(1e3*60*60*24)|0;return T[e+28>>2]=o,_i.GMTString||(_i.GMTString=Cn("GMT")),T[e+40>>2]=_i.GMTString,e}function hi(i){return i}function Ii(){if(Ii.called)return;Ii.called=!0;var i=new Date().getFullYear(),e=new Date(i,0,1),t=new Date(i,6,1),r=e.getTimezoneOffset(),o=t.getTimezoneOffset(),a=Math.max(r,o);T[rA()>>2]=a*60,T[jn()>>2]=+(r!=o);function s(h){var I=h.toTimeString().match(/\(([A-Za-z ]+)\)$/);return I?I[1]:"GMT"}var A=s(e),c=s(t),u=Cn(A),d=Cn(c);o<r?(T[rn()>>2]=u,T[rn()+4>>2]=d):(T[rn()>>2]=d,T[rn()+4>>2]=u)}function mi(i,e){Ii();var t=new Date(T[i>>2]*1e3);T[e>>2]=t.getSeconds(),T[e+4>>2]=t.getMinutes(),T[e+8>>2]=t.getHours(),T[e+12>>2]=t.getDate(),T[e+16>>2]=t.getMonth(),T[e+20>>2]=t.getFullYear()-1900,T[e+24>>2]=t.getDay();var r=new Date(t.getFullYear(),0,1),o=(t.getTime()-r.getTime())/(1e3*60*60*24)|0;T[e+28>>2]=o,T[e+36>>2]=-(t.getTimezoneOffset()*60);var a=new Date(t.getFullYear(),6,1).getTimezoneOffset(),s=r.getTimezoneOffset(),A=(a!=s&&t.getTimezoneOffset()==Math.min(s,a))|0;T[e+32>>2]=A;var c=T[rn()+(A?4:0)>>2];return T[e+40>>2]=c,e}function Js(i){Ii();var e=new Date(T[i+20>>2]+1900,T[i+16>>2],T[i+12>>2],T[i+8>>2],T[i+4>>2],T[i>>2],0),t=T[i+32>>2],r=e.getTimezoneOffset(),o=new Date(e.getFullYear(),0,1),a=new Date(e.getFullYear(),6,1).getTimezoneOffset(),s=o.getTimezoneOffset(),A=Math.min(s,a);if(t<0)T[i+32>>2]=+(a!=s&&A==r);else if(t>0!=(A==r)){var c=Math.max(s,a),u=t>0?A:c;e.setTime(e.getTime()+(u-r)*6e4)}T[i+24>>2]=e.getDay();var d=(e.getTime()-o.getTime())/(1e3*60*60*24)|0;return T[i+28>>2]=d,T[i>>2]=e.getSeconds(),T[i+4>>2]=e.getMinutes(),T[i+8>>2]=e.getHours(),T[i+12>>2]=e.getDate(),T[i+16>>2]=e.getMonth(),e.getTime()/1e3|0}function Ks(i){ko(i)}function Zs(i){mt(i)}function Ci(i){return i%4===0&&(i%100!==0||i%400===0)}function pn(i,e){for(var t=0,r=0;r<=e;t+=i[r++]);return t}var _n=[31,29,31,30,31,30,31,31,30,31,30,31],Zr=[31,28,31,30,31,30,31,31,30,31,30,31];function qr(i,e){for(var t=new Date(i.getTime());e>0;){var r=Ci(t.getFullYear()),o=t.getMonth(),a=(r?_n:Zr)[o];if(e>a-t.getDate())e-=a-t.getDate()+1,t.setDate(1),o<11?t.setMonth(o+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1));else return t.setDate(t.getDate()+e),t}return t}function Un(i,e,t,r){var o=T[r+40>>2],a={tm_sec:T[r>>2],tm_min:T[r+4>>2],tm_hour:T[r+8>>2],tm_mday:T[r+12>>2],tm_mon:T[r+16>>2],tm_year:T[r+20>>2],tm_wday:T[r+24>>2],tm_yday:T[r+28>>2],tm_isdst:T[r+32>>2],tm_gmtoff:T[r+36>>2],tm_zone:o?at(o):""},s=at(t),A={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var c in A)s=s.replace(new RegExp(c,"g"),A[c]);var u=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],d=["January","February","March","April","May","June","July","August","September","October","November","December"];function h(R,D,k){for(var $=typeof R=="number"?R.toString():R||"";$.length<D;)$=k[0]+$;return $}function I(R,D){return h(R,D,"0")}function m(R,D){function k(Y){return Y<0?-1:Y>0?1:0}var $;return($=k(R.getFullYear()-D.getFullYear()))===0&&($=k(R.getMonth()-D.getMonth()))===0&&($=k(R.getDate()-D.getDate())),$}function y(R){switch(R.getDay()){case 0:return new Date(R.getFullYear()-1,11,29);case 1:return R;case 2:return new Date(R.getFullYear(),0,3);case 3:return new Date(R.getFullYear(),0,2);case 4:return new Date(R.getFullYear(),0,1);case 5:return new Date(R.getFullYear()-1,11,31);case 6:return new Date(R.getFullYear()-1,11,30)}}function v(R){var D=qr(new Date(R.tm_year+1900,0,1),R.tm_yday),k=new Date(D.getFullYear(),0,4),$=new Date(D.getFullYear()+1,0,4),Y=y(k),pe=y($);return m(Y,D)<=0?m(pe,D)<=0?D.getFullYear()+1:D.getFullYear():D.getFullYear()-1}var U={"%a":function(R){return u[R.tm_wday].substring(0,3)},"%A":function(R){return u[R.tm_wday]},"%b":function(R){return d[R.tm_mon].substring(0,3)},"%B":function(R){return d[R.tm_mon]},"%C":function(R){var D=R.tm_year+1900;return I(D/100|0,2)},"%d":function(R){return I(R.tm_mday,2)},"%e":function(R){return h(R.tm_mday,2," ")},"%g":function(R){return v(R).toString().substring(2)},"%G":function(R){return v(R)},"%H":function(R){return I(R.tm_hour,2)},"%I":function(R){var D=R.tm_hour;return D==0?D=12:D>12&&(D-=12),I(D,2)},"%j":function(R){return I(R.tm_mday+pn(Ci(R.tm_year+1900)?_n:Zr,R.tm_mon-1),3)},"%m":function(R){return I(R.tm_mon+1,2)},"%M":function(R){return I(R.tm_min,2)},"%n":function(){return`
|
|
59
59
|
`},"%p":function(R){return R.tm_hour>=0&&R.tm_hour<12?"AM":"PM"},"%S":function(R){return I(R.tm_sec,2)},"%t":function(){return" "},"%u":function(R){return R.tm_wday||7},"%U":function(R){var D=new Date(R.tm_year+1900,0,1),k=D.getDay()===0?D:qr(D,7-D.getDay()),$=new Date(R.tm_year+1900,R.tm_mon,R.tm_mday);if(m(k,$)<0){var Y=pn(Ci($.getFullYear())?_n:Zr,$.getMonth()-1)-31,pe=31-k.getDate(),Fe=pe+Y+$.getDate();return I(Math.ceil(Fe/7),2)}return m(k,D)===0?"01":"00"},"%V":function(R){var D=new Date(R.tm_year+1900,0,4),k=new Date(R.tm_year+1901,0,4),$=y(D),Y=y(k),pe=qr(new Date(R.tm_year+1900,0,1),R.tm_yday);if(m(pe,$)<0)return"53";if(m(Y,pe)<=0)return"01";var Fe;return $.getFullYear()<R.tm_year+1900?Fe=R.tm_yday+32-$.getDate():Fe=R.tm_yday+1-$.getDate(),I(Math.ceil(Fe/7),2)},"%w":function(R){return R.tm_wday},"%W":function(R){var D=new Date(R.tm_year,0,1),k=D.getDay()===1?D:qr(D,D.getDay()===0?1:7-D.getDay()+1),$=new Date(R.tm_year+1900,R.tm_mon,R.tm_mday);if(m(k,$)<0){var Y=pn(Ci($.getFullYear())?_n:Zr,$.getMonth()-1)-31,pe=31-k.getDate(),Fe=pe+Y+$.getDate();return I(Math.ceil(Fe/7),2)}return m(k,D)===0?"01":"00"},"%y":function(R){return(R.tm_year+1900).toString().substring(2)},"%Y":function(R){return R.tm_year+1900},"%z":function(R){var D=R.tm_gmtoff,k=D>=0;return D=Math.abs(D)/60,D=D/60*100+D%60,(k?"+":"-")+("0000"+D).slice(-4)},"%Z":function(R){return R.tm_zone},"%%":function(){return"%"}};for(var c in U)s.includes(c)&&(s=s.replace(new RegExp(c,"g"),U[c](a)));var G=oo(s,!1);return G.length>e?0:(Fr(G,i),G.length-1)}function Po(i,e,t,r){return Un(i,e,t,r)}n.requestFullscreen=function(e,t){Q.requestFullscreen(e,t)},n.requestFullScreen=function(){Q.requestFullScreen()},n.requestAnimationFrame=function(e){Q.requestAnimationFrame(e)},n.setCanvasSize=function(e,t,r){Q.setCanvasSize(e,t,r)},n.pauseMainLoop=function(){Q.mainLoop.pause()},n.resumeMainLoop=function(){Q.mainLoop.resume()},n.getUserMedia=function(){Q.getUserMedia()},n.createContext=function(e,t,r,o){return Q.createContext(e,t,r,o)};var Ro=function(i,e,t,r){i||(i=this),this.parent=i,this.mount=i.mount,this.mounted=null,this.id=f.nextInode++,this.name=e,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=r},Nn=365,en=146;Object.defineProperties(Ro.prototype,{read:{get:function(){return(this.mode&Nn)===Nn},set:function(i){i?this.mode|=Nn:this.mode&=~Nn}},write:{get:function(){return(this.mode&en)===en},set:function(i){i?this.mode|=en:this.mode&=~en}},isFolder:{get:function(){return f.isDir(this.mode)}},isDevice:{get:function(){return f.isChrdev(this.mode)}}}),f.FSNode=Ro,f.staticInit(),n.FS_createPath=f.createPath,n.FS_createDataFile=f.createDataFile,n.FS_createPreloadedFile=f.createPreloadedFile,n.FS_createLazyFile=f.createLazyFile,n.FS_createDevice=f.createDevice,n.FS_unlink=f.unlink,zi(),Gr=n.PureVirtualError=cr(Error,"PureVirtualError"),qn(),Ji(),nt=n.BindingError=cr(Error,"BindingError"),B=n.InternalError=cr(Error,"InternalError"),fr(),Xo(),ut=n.UnboundTypeError=cr(Error,"UnboundTypeError");for(var M,S=0;S<32;++S)bo.push(new Array(S));for(var Dt=new Float32Array(288),S=0;S<288;++S)Ei[S]=Dt.subarray(0,S+1);for(var qs=new Int32Array(288),S=0;S<288;++S)vo[S]=qs.subarray(0,S+1);var Ac=!0;function oo(i,e,t){var r=t>0?t:Ze(i)+1,o=new Array(r),a=Rt(i,o,0,o.length);return e&&(o.length=a),o}var yi=typeof atob=="function"?atob:function(i){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="",r,o,a,s,A,c,u,d=0;i=i.replace(/[^A-Za-z0-9\+\/\=]/g,"");do s=e.indexOf(i.charAt(d++)),A=e.indexOf(i.charAt(d++)),c=e.indexOf(i.charAt(d++)),u=e.indexOf(i.charAt(d++)),r=s<<2|A>>4,o=(A&15)<<4|c>>2,a=(c&3)<<6|u,t=t+String.fromCharCode(r),c!==64&&(t=t+String.fromCharCode(o)),u!==64&&(t=t+String.fromCharCode(a));while(d<i.length);return t};function cc(i){if(typeof It=="boolean"&&It){var e=Buffer.from(i,"base64");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}try{for(var t=yi(i),r=new Uint8Array(t.length),o=0;o<t.length;++o)r[o]=t.charCodeAt(o);return r}catch(a){throw new Error("Converting base64 string to bytes failed.")}}var eA={HaveOffsetConverter:jr,__cxa_allocate_exception:Mi,__cxa_atexit:vn,__cxa_begin_catch:Qn,__cxa_end_catch:Fi,__cxa_find_matching_catch_2:Pn,__cxa_find_matching_catch_3:ki,__cxa_free_exception:Ft,__cxa_rethrow:$n,__cxa_thread_atexit:xi,__cxa_throw:Ui,__resumeException:zn,__sys_fcntl64:Me,__sys_ioctl:Li,__sys_mmap2:Gi,__sys_open:Yi,__sys_stat64:Xi,_embind_create_inheriting_constructor:Wr,_embind_finalize_value_object:X,_embind_register_bigint:L,_embind_register_bool:Z,_embind_register_class:zr,_embind_register_class_class_function:oi,_embind_register_class_constructor:zo,_embind_register_class_function:$o,_embind_register_class_property:ho,_embind_register_emval:mo,_embind_register_float:Jo,_embind_register_function:Ko,_embind_register_integer:qo,_embind_register_memory_view:ea,_embind_register_std_string:ta,_embind_register_std_wstring:ra,_embind_register_value_object:na,_embind_register_value_object_field:ia,_embind_register_void:oa,_emval_call_void_method:Zi,_emval_decref:Io,_emval_get_method_caller:ua,_emval_incref:la,_emval_take_value:da,abort:fa,clock_gettime:Ea,dlopen:pa,dlsym:_a,emscripten_asm_const_int:ha,emscripten_get_heap_max:Ia,emscripten_memcpy_big:ma,emscripten_pc_get_function:Ca,emscripten_resize_heap:wa,emscripten_stack_snapshot:Co,emscripten_stack_unwind_buffer:Da,emscripten_thread_sleep:ba,emscripten_webgl_create_context:Sa,emscripten_webgl_destroy_context:Do,emscripten_webgl_get_context_attributes:Fa,emscripten_webgl_get_current_context:wo,emscripten_webgl_init_context_attributes:ka,emscripten_webgl_make_context_current:to,environ_get:kn,environ_sizes_get:xa,exit:Ri,fd_close:Ua,fd_read:Na,fd_seek:ja,fd_write:La,getTempRet0:Ha,getentropy:ci,glActiveTexture:ui,glAttachShader:Ga,glBindAttribLocation:Ya,glBindBuffer:Xa,glBindBufferBase:Wa,glBindFramebuffer:Va,glBindTexture:za,glBindVertexArray:$a,glBufferData:Ja,glClientWaitSync:Za,glCompileShader:qa,glCreateProgram:es,glCreateShader:ts,glDeleteBuffers:rs,glDeleteFramebuffers:ns,glDeleteProgram:is,glDeleteShader:os,glDeleteSync:as,glDeleteTextures:ss,glDeleteVertexArrays:As,glDisable:cs,glDisableVertexAttribArray:us,glDrawArrays:ls,glDrawBuffers:Oo,glEnableVertexAttribArray:ds,glFenceSync:fs,glFinish:gs,glFlush:Es,glFramebufferTexture2D:ps,glFramebufferTextureLayer:_s,glGenBuffers:di,glGenFramebuffers:hs,glGenTextures:Is,glGenVertexArrays:ms,glGetAttribLocation:Cs,glGetError:ys,glGetIntegerv:Bs,glGetString:gi,glGetUniformBlockIndex:Ts,glGetUniformLocation:Qs,glLinkProgram:Ps,glPixelStorei:Rs,glReadPixels:io,glShaderSource:Fs,glTexImage2D:ks,glTexParameterfv:xs,glTexParameteri:Us,glTexStorage2D:Ns,glTexStorage3D:js,glTexSubImage2D:Ls,glTexSubImage3D:Hs,glUniform1f:er,glUniform1i:Gs,glUniform2fv:pi,glUniform4fv:Ys,glUniform4iv:Qo,glUniformBlockBinding:Xs,glUniformMatrix4fv:Ws,glUseProgram:Vs,glVertexAttribPointer:zs,glViewport:$s,gmtime_r:_i,invoke_diii:DA,invoke_i:vA,invoke_ii:lA,invoke_iii:oA,invoke_iiii:bA,invoke_iiiii:hA,invoke_iiiiii:CA,invoke_iiiiiii:sA,invoke_iiiiiiiddi:JA,invoke_iiiiiiii:wA,invoke_iiiiiiiii:SA,invoke_v:AA,invoke_vdiii:ec,invoke_vi:iA,invoke_vididdii:XA,invoke_vidii:VA,invoke_vii:uA,invoke_viid:Ec,invoke_viidi:qA,invoke_viididii:RA,invoke_viii:dA,invoke_viiid:WA,invoke_viiidd:mA,invoke_viiiddi:TA,invoke_viiidi:QA,invoke_viiii:_A,invoke_viiiid:KA,invoke_viiiidi:PA,invoke_viiiidid:ZA,invoke_viiiidiidiiiiiii:YA,invoke_viiiifiifiiiiiii:GA,invoke_viiiii:aA,invoke_viiiiid:kA,invoke_viiiiif:jA,invoke_viiiiii:fA,invoke_viiiiiid:xA,invoke_viiiiiif:LA,invoke_viiiiiii:gA,invoke_viiiiiiiddi:$A,invoke_viiiiiiidiiii:NA,invoke_viiiiiiifiiii:HA,invoke_viiiiiiii:EA,invoke_viiiiiiiidd:FA,invoke_viiiiiiiidf:MA,invoke_viiiiiiiii:pA,invoke_viiiiiiiiidd:OA,invoke_viiiiiiiiiddi:BA,invoke_viiiiiiiiii:cA,invoke_viiiiiiiiiiddi:zA,invoke_viiiiiiiiiii:IA,invoke_viiiiiiiiiiii:UA,invoke_viiiiiiiiiiiii:yA,llvm_eh_typeid_for:hi,localtime_r:mi,mktime:Js,proc_exit:Ks,setTempRet0:Zs,strftime:Un,strftime_l:Po},tA=On(),Kc=n.___wasm_call_ctors=ue("__wasm_call_ctors"),hr=n._free=ue("free"),it=n._malloc=ue("malloc"),tn=n.___errno_location=ue("__errno_location"),uc=n._fflush=ue("fflush"),lc=n.___getTypeName=ue("__getTypeName"),dc=n.___embind_register_native_and_builtin_types=ue("__embind_register_native_and_builtin_types"),Zc=n._emscripten_main_thread_process_queued_calls=ue("emscripten_main_thread_process_queued_calls"),So=n._emscripten_stack_get_end=function(){return(So=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},rn=n.__get_tzname=ue("_get_tzname"),jn=n.__get_daylight=ue("_get_daylight"),rA=n.__get_timezone=ue("_get_timezone"),ne=n.stackSave=ue("stackSave"),j=n.stackRestore=ue("stackRestore"),te=n.stackAlloc=ue("stackAlloc"),ao=n._emscripten_stack_init=function(){return(ao=n._emscripten_stack_init=n.asm.emscripten_stack_init).apply(null,arguments)},Mo=n._emscripten_stack_get_free=function(){return(Mo=n._emscripten_stack_get_free=n.asm.emscripten_stack_get_free).apply(null,arguments)},fc=n._saveSetjmp=ue("saveSetjmp"),oe=n._setThrew=ue("setThrew"),re=n.___cxa_can_catch=ue("__cxa_can_catch"),Fo=n.___cxa_is_pointer_type=ue("__cxa_is_pointer_type"),nA=n._memalign=ue("memalign"),gc=n._emscripten_builtin_malloc=ue("emscripten_builtin_malloc"),qc=n._emscripten_builtin_free=ue("emscripten_builtin_free"),eu=n._emscripten_builtin_memalign=ue("emscripten_builtin_memalign"),tu=n.dynCall_jii=ue("dynCall_jii"),ru=n.dynCall_viji=ue("dynCall_viji"),nu=n.dynCall_jjj=ue("dynCall_jjj"),iu=n.dynCall_iiiijj=ue("dynCall_iiiijj"),ou=n.dynCall_viijj=ue("dynCall_viijj"),au=n.dynCall_viiijjjj=ue("dynCall_viiijjjj"),su=n.dynCall_ji=ue("dynCall_ji"),Au=n.dynCall_vij=ue("dynCall_vij"),cu=n.dynCall_viijii=ue("dynCall_viijii"),uu=n.dynCall_vj=ue("dynCall_vj"),lu=n.dynCall_viij=ue("dynCall_viij"),du=n.dynCall_viiiiij=ue("dynCall_viiiiij"),fu=n.dynCall_iijjiiii=ue("dynCall_iijjiiii"),gu=n.dynCall_jiji=ue("dynCall_jiji"),Eu=n.dynCall_iiiiij=ue("dynCall_iiiiij"),pu=n.dynCall_iiiiijj=ue("dynCall_iiiiijj"),_u=n.dynCall_iiiiiijj=ue("dynCall_iiiiiijj");function Ec(i,e,t,r){var o=ne();try{K.get(i)(e,t,r)}catch(a){if(j(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function iA(i,e){var t=ne();try{K.get(i)(e)}catch(r){if(j(t),r!==r+0&&r!=="longjmp")throw r;oe(1,0)}}function oA(i,e,t){var r=ne();try{return K.get(i)(e,t)}catch(o){if(j(r),o!==o+0&&o!=="longjmp")throw o;oe(1,0)}}function aA(i,e,t,r,o,a){var s=ne();try{K.get(i)(e,t,r,o,a)}catch(A){if(j(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function sA(i,e,t,r,o,a,s){var A=ne();try{return K.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function AA(i){var e=ne();try{K.get(i)()}catch(t){if(j(e),t!==t+0&&t!=="longjmp")throw t;oe(1,0)}}function cA(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(j(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function uA(i,e,t){var r=ne();try{K.get(i)(e,t)}catch(o){if(j(r),o!==o+0&&o!=="longjmp")throw o;oe(1,0)}}function lA(i,e){var t=ne();try{return K.get(i)(e)}catch(r){if(j(t),r!==r+0&&r!=="longjmp")throw r;oe(1,0)}}function dA(i,e,t,r){var o=ne();try{K.get(i)(e,t,r)}catch(a){if(j(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function fA(i,e,t,r,o,a,s){var A=ne();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function gA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function EA(i,e,t,r,o,a,s,A,c){var u=ne();try{K.get(i)(e,t,r,o,a,s,A,c)}catch(d){if(j(u),d!==d+0&&d!=="longjmp")throw d;oe(1,0)}}function pA(i,e,t,r,o,a,s,A,c,u){var d=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u)}catch(h){if(j(d),h!==h+0&&h!=="longjmp")throw h;oe(1,0)}}function _A(i,e,t,r,o){var a=ne();try{K.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function hA(i,e,t,r,o){var a=ne();try{return K.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function IA(i,e,t,r,o,a,s,A,c,u,d,h){var I=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h)}catch(m){if(j(I),m!==m+0&&m!=="longjmp")throw m;oe(1,0)}}function mA(i,e,t,r,o,a){var s=ne();try{K.get(i)(e,t,r,o,a)}catch(A){if(j(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function CA(i,e,t,r,o,a){var s=ne();try{return K.get(i)(e,t,r,o,a)}catch(A){if(j(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function yA(i,e,t,r,o,a,s,A,c,u,d,h,I,m){var y=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(j(y),v!==v+0&&v!=="longjmp")throw v;oe(1,0)}}function wA(i,e,t,r,o,a,s,A){var c=ne();try{return K.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function DA(i,e,t,r){var o=ne();try{return K.get(i)(e,t,r)}catch(a){if(j(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function bA(i,e,t,r){var o=ne();try{return K.get(i)(e,t,r)}catch(a){if(j(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function OA(i,e,t,r,o,a,s,A,c,u,d,h){var I=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h)}catch(m){if(j(I),m!==m+0&&m!=="longjmp")throw m;oe(1,0)}}function BA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(j(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function TA(i,e,t,r,o,a,s){var A=ne();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function vA(i){var e=ne();try{return K.get(i)()}catch(t){if(j(e),t!==t+0&&t!=="longjmp")throw t;oe(1,0)}}function QA(i,e,t,r,o,a){var s=ne();try{K.get(i)(e,t,r,o,a)}catch(A){if(j(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function PA(i,e,t,r,o,a,s){var A=ne();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function RA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function SA(i,e,t,r,o,a,s,A,c){var u=ne();try{return K.get(i)(e,t,r,o,a,s,A,c)}catch(d){if(j(u),d!==d+0&&d!=="longjmp")throw d;oe(1,0)}}function MA(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(j(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function FA(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(j(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function kA(i,e,t,r,o,a,s){var A=ne();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function xA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function UA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(j(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function NA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(j(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function jA(i,e,t,r,o,a,s){var A=ne();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function LA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function HA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(j(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function GA(i,e,t,r,o,a,s,A,c,u,d,h,I,m,y,v){var U=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m,y,v)}catch(G){if(j(U),G!==G+0&&G!=="longjmp")throw G;oe(1,0)}}function YA(i,e,t,r,o,a,s,A,c,u,d,h,I,m,y,v){var U=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m,y,v)}catch(G){if(j(U),G!==G+0&&G!=="longjmp")throw G;oe(1,0)}}function XA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function WA(i,e,t,r,o){var a=ne();try{K.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function VA(i,e,t,r,o){var a=ne();try{K.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function zA(i,e,t,r,o,a,s,A,c,u,d,h,I,m){var y=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(j(y),v!==v+0&&v!=="longjmp")throw v;oe(1,0)}}function $A(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(j(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function JA(i,e,t,r,o,a,s,A,c,u){var d=ne();try{return K.get(i)(e,t,r,o,a,s,A,c,u)}catch(h){if(j(d),h!==h+0&&h!=="longjmp")throw h;oe(1,0)}}function KA(i,e,t,r,o,a){var s=ne();try{K.get(i)(e,t,r,o,a)}catch(A){if(j(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function ZA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function qA(i,e,t,r,o){var a=ne();try{K.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function ec(i,e,t,r,o){var a=ne();try{K.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}Object.getOwnPropertyDescriptor(n,"intArrayFromString")||(n.intArrayFromString=function(){E("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){E("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){E("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){E("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){E("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){E("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){E("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){E("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){E("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){E("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){E("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){E("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){E("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){E("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){E("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){E("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){E("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){E("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){E("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){E("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){E("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=St,n.removeRunDependency=wr,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){E("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createPath=f.createPath,n.FS_createDataFile=f.createDataFile,n.FS_createPreloadedFile=f.createPreloadedFile,n.FS_createLazyFile=f.createLazyFile,Object.getOwnPropertyDescriptor(n,"FS_createLink")||(n.FS_createLink=function(){E("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createDevice=f.createDevice,n.FS_unlink=f.unlink,Object.getOwnPropertyDescriptor(n,"getLEB")||(n.getLEB=function(){E("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){E("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){E("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){E("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){E("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){E("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){E("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){E("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){E("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){E("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){E("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){E("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){E("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){E("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){E("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){E("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){E("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){E("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){E("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){E("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){E("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){E("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){E("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){E("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){E("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){E("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){E("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){E("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){E("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){E("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){E("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){E("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){E("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){E("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){E("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){E("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){E("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){E("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){E("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){E("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){E("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){E("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){E("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){E("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){E("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){E("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){E("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){E("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){E("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){E("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){E("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){E("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){E("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){E("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){E("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){E("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){E("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){E("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){E("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){E("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){E("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){E("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){E("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){E("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){E("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){E("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){E("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){E("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){E("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){E("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){E("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){E("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){E("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){E("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){E("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){E("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){E("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){E("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){E("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){E("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){E("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){E("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){E("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){E("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){E("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){E("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){E("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){E("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){E("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){E("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){E("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){E("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){E("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){E("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){E("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){E("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){E("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){E("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){E("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){E("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){E("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){E("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){E("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){E("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){E("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){E("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){E("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){E("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){E("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){E("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){E("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){E("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){E("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){E("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){E("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){E("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){E("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){E("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){E("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){E("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){E("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){E("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){E("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){E("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){E("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){E("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){E("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){E("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){E("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){E("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){E("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){E("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){E("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){E("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){E("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){E("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){E("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){E("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){E("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){E("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){E("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){E("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){E("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){E("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){E("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){E("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){E("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){E("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){E("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){E("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){E("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){E("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){E("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=O,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){E("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){E("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){E("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){E("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){E("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){E("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){E("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){E("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){E("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){E("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){E("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){E("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){E("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){E("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){E("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){E("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){E("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){E("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){E("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){E("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){E("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){E("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){E("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){E("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){E("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_free_list")||(n.emval_free_list=function(){E("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){E("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){E("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"count_emval_handles")||(n.count_emval_handles=function(){E("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"get_first_emval")||(n.get_first_emval=function(){E("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){E("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){E("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){E("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){E("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){E("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){E("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){E("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){E("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){E("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){E("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){E("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){E("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){E("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){E("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){E("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){E("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){E("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){E("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){E("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){E("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){E("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){E("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){E("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){E("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){E("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){E("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){E("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){E("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){E("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){E("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){E("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){E("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){E("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_init_charCodes")||(n.embind_init_charCodes=function(){E("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){E("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){E("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){E("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){E("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){E("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){E("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){E("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){E("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){E("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){E("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){E("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){E("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){E("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){E("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){E("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){E("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){E("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){E("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){E("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){E("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){E("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){E("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){E("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){E("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){E("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){E("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){E("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){E("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){E("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){E("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){E("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){E("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){E("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){E("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){E("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){E("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){E("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){E("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){E("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){E("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){E("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){E("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){E("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){E("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){E("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){E("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){E("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){E("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){E("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){E("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){E("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){E("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){E("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){E("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){E("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){E("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){E("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){E("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){E("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){E("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){E("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){E("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){E("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){E("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){E("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){E("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=Ur,n.checkStackCookie=V,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get:function(){E("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(n,"ALLOC_STACK")||Object.defineProperty(n,"ALLOC_STACK",{configurable:!0,get:function(){E("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}});var wi;function hn(i){this.name="ExitStatus",this.message="Program terminated with exit("+i+")",this.status=i}lt=function i(){wi||Ao(),wi||(lt=i)};function so(){ao(),Ur()}function Ao(i){if(i=i||ot,Xt>0||(so(),vi(),Xt>0))return;function e(){wi||(wi=!0,n.calledRun=!0,!Lt&&(Ct(),he(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),W(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),Qi()))}n.setStatus?(n.setStatus("Running..."),setTimeout(function(){setTimeout(function(){n.setStatus("")},1),e()},1)):e(),V()}n.run=Ao;function co(){var i=Je,e=ge,t=!1;Je=ge=function(o){t=!0};try{var r=n._fflush;r&&r(0),["stdout","stderr"].forEach(function(o){var a=f.analyzePath("/dev/"+o);if(a){var s=a.object,A=s.rdev,c=Pe.ttys[A];c&&c.output&&c.output.length&&(t=!0)}})}catch(o){}Je=i,ge=e,t&&Re("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}function tc(i,e){if(Pt=i,co(),Ot()){if(!e){var t="program exited (with status: "+i+"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)";N(t),ge(t)}}else Yt();ko(i)}function ko(i){Pt=i,Ot()||(n.onExit&&n.onExit(i),Lt=!0),$e(i,new hn(i))}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return Ao(),x.ready}}(),bc=Ou;var Bu=(()=>{var x;var J=typeof document!="undefined"?(x=document.currentScript)==null?void 0:x.src:void 0;return function(n={}){var he,N=Object.assign({},n),Ue,we,ot=new Promise((_,g)=>{Ue=_,we=g}),ht=!0,$e=!1,Ye=Object.assign({},N),Ve=[],It="./this.program",Di=(_,g)=>{throw g},Te="",bi,Rr,tr;(ht||$e)&&($e?Te=self.location.href:typeof document!="undefined"&&document.currentScript&&(Te=document.currentScript.src),J&&(Te=J),Te.startsWith("blob:")?Te="":Te=Te.substr(0,Te.replace(/[?#].*/,"").lastIndexOf("/")+1),bi=_=>{var g=new XMLHttpRequest;return g.open("GET",_,!1),g.send(null),g.responseText},$e&&(tr=_=>{var g=new XMLHttpRequest;return g.open("GET",_,!1),g.responseType="arraybuffer",g.send(null),new Uint8Array(g.response)}),Rr=(_,g,C)=>{var B=new XMLHttpRequest;B.open("GET",_,!0),B.responseType="arraybuffer",B.onload=()=>{if(B.status==200||B.status==0&&B.response){g(B.response);return}C()},B.onerror=C,B.send(null)});var nn=N.print||console.log.bind(console),In=N.printErr||console.error.bind(console);Object.assign(N,Ye),Ye=null,N.arguments&&(Ve=N.arguments),N.thisProgram&&(It=N.thisProgram),N.quit&&(Di=N.quit);var Je;N.wasmBinary&&(Je=N.wasmBinary);function ge(_){for(var g=atob(_),C=new Uint8Array(g.length),B=0;B<g.length;++B)C[B]=g.charCodeAt(B);return C}function Re(_){if(Ti(_))return ge(_.slice(Yn.length))}var Ee,tt=!1,Ir,Nt,Xe,mr,mt,Cr,Ie,Hn,jt;function Lt(){var _=Ee.buffer;N.HEAP8=Nt=new Int8Array(_),N.HEAP16=mr=new Int16Array(_),N.HEAPU8=Xe=new Uint8Array(_),N.HEAPU16=mt=new Uint16Array(_),N.HEAP32=Cr=new Int32Array(_),N.HEAPU32=Ie=new Uint32Array(_),N.HEAPF32=Hn=new Float32Array(_),N.HEAPF64=jt=new Float64Array(_)}var Pt=[],W=[],Sr=[],z=!1;function uo(){if(N.preRun)for(typeof N.preRun=="function"&&(N.preRun=[N.preRun]);N.preRun.length;)at(N.preRun.shift());ve(Pt)}function Oi(){z=!0,ve(W)}function Mr(){if(N.postRun)for(typeof N.postRun=="function"&&(N.postRun=[N.postRun]);N.postRun.length;)Ke(N.postRun.shift());ve(Sr)}function at(_){Pt.unshift(_)}function Rt(_){W.unshift(_)}function Ke(_){Sr.unshift(_)}var Ze=0,rr=null,bt=null;function Gn(_){var g;Ze++,(g=N.monitorRunDependencies)==null||g.call(N,Ze)}function Bi(_){var C;if(Ze--,(C=N.monitorRunDependencies)==null||C.call(N,Ze),Ze==0&&(rr!==null&&(clearInterval(rr),rr=null),bt)){var g=bt;bt=null,g()}}function mn(_){var C;(C=N.onAbort)==null||C.call(N,_),_="Aborted("+_+")",In(_),tt=!0,Ir=1,_+=". Build with -sASSERTIONS for more info.";var g=new WebAssembly.RuntimeError(_);throw we(g),g}var Yn="data:application/octet-stream;base64,",Ti=_=>_.startsWith(Yn);function Cn(){var _="data:application/octet-stream;base64,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BSQAAkAgAiADTA0AIARBgMAEcQ0AIAUgASACIANrIgNBgAIgA0GAAkkiARsQIxogAUUEQANAIAAgBUGAAhAcIANBgAJrIgNB/wFLDQALCyAAIAUgAxAcCyAFQYACaiQAC+UDAQV/IwBBEGsiAyQAIAMgACgCACIEQQhrKAIAIgI2AgwgAyAAIAJqNgIEIAMgBEEEaygCADYCCCADKAIIIgQgAUEAEB0hAiADKAIEIQUCQCACBEAgAygCDCEAIwBBQGoiASQAIAFBQGskAEEAIAUgABshAgwBCyMAQUBqIgIkACAAIAVOBEAgAkIANwIcIAJCADcCJCACQgA3AiwgAkIANwIUIAJBADYCECACIAE2AgwgAiAENgIEIAJBADYCPCACQoGAgICAgICAATcCNCACIAA2AgggBCACQQRqIAUgBUEBQQAgBCgCACgCFBEJACAAQQAgAigCHBshBgsgAkFAayQAIAYiAg0AIwBBQGoiAiQAIAJBADYCECACQezIADYCDCACIAA2AgggAiABNgIEQQAhACACQRRqQQBBJxAjGiACQQA2AjwgAkEBOgA7IAQgAkEEaiAFQQFBACAEKAIAKAIYEQgAAkACQAJAIAIoAigOAgABAgsgAigCGEEAIAIoAiRBAUYbQQAgAigCIEEBRhtBACACKAIsQQFGGyEADAELIAIoAhxBAUcEQCACKAIsDQEgAigCIEEBRw0BIAIoAiRBAUcNAQsgAigCFCEACyACQUBrJAAgACECCyADQRBqJAAgAgu0AQEFfyMAQRBrIgYkACAGQQRqIgIQQSMAQRBrIgUkAAJ/IAItAAtBB3YEQCACKAIEDAELIAItAAtB/wBxCyEEA0ACQAJ/IAItAAtBB3YEQCACKAIADAELIAILIQMgBSABOQMAIAICfyADIARBAWogBRBHIgNBAE4EQCADIARNDQIgAwwBCyAEQQF0QQFyCyIEECwMAQsLIAIgAxAsIAAgAhBAIAVBEGokACACEEQgBkEQaiQAC4AEAQN/IAJBgARPBEAgACABIAIQESAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsLACABIAIgABBFGgvyAgICfwF+AkAgAkUNACAAIAE6AAAgACACaiIDQQFrIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0EDayABOgAAIANBAmsgAToAACACQQdJDQAgACABOgADIANBBGsgAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkEEayABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBCGsgATYCACACQQxrIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQRBrIAE2AgAgAkEUayABNgIAIAJBGGsgATYCACACQRxrIAE2AgAgBCADQQRxQRhyIgRrIgJBIEkNACABrUKBgICAEH4hBSADIARqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsgAAsSACABQQF0QYDHAGpBAiAAEEULBQAQaQALiAECAX4FfwJAIABCgICAgBBUBEAgACECDAELA0AgAUEBayIBIAAgAEIKgCICQgp+fadBMHI6AAAgAEL/////nwFWIQYgAiEAIAYNAAsLIAJCAFIEQCACpyEDA0AgAUEBayIBIAMgA0EKbiIEQQpsa0EwcjoAACADQQlLIQcgBCEDIAcNAAsLIAELUgECf0HUzwAoAgAiASAAQQdqQXhxIgJqIQACQCACQQAgACABTRtFBEAgAD8AQRB0TQ0BIAAQEA0BC0HQ0QBBMDYCAEF/DwtB1M8AIAA2AgAgAQt9AQN/AkACQCAAIgFBA3FFDQAgAS0AAEUEQEEADwsDQCABQQFqIgFBA3FFDQEgAS0AAA0ACwwBCwNAIAEiAkEEaiEBQYCChAggAigCACIDayADckGAgYKEeHFBgIGChHhGDQALA0AgAiIBQQFqIQIgAS0AAA0ACwsgASAAawutAgEHfwJ/IAEQKCEDIwBBEGsiBiQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgRBAE8EQAJAIAMgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyICIARrTQRAIANFDQECfyAALQALQQd2BEAgACgCAAwBCyAACyIFIAQEfyMAQRBrIgIkACACIAQgBWo2AgggAiAFNgIMIAIgATYCBCACKAIEIgggAigCDE8EQCACKAIIIAhLIQcLIAJBEGokACADIAVqIAUgBBA1IAEgA0EAIAcbagUgAQsgAxA1IAAgAyAEaiIBEDAgBkEAOgAPIAEgBWogBi0ADzoAAAwBCyAAIAIgAyAEaiACayAEQQAgAyABEEYLIAZBEGokACAADAELECUACwsGACAAEBgLzigBDH8jAEEQayIKJAACQAJAAkACQAJAAkACQAJAAkACQCAAQfQBTQRAQdTRACgCACIEQRAgAEELakH4A3EgAEELSRsiBkEDdiIAdiIBQQNxBEACQCABQX9zQQFxIABqIgJBA3QiAUH80QBqIgAgAUGE0gBqKAIAIgEoAggiBUYEQEHU0QAgBEF+IAJ3cTYCAAwBCyAFIAA2AgwgACAFNgIICyABQQhqIQAgASACQQN0IgJBA3I2AgQgASACaiIBIAEoAgRBAXI2AgQMCwsgBkHc0QAoAgAiCE0NASABBEACQEECIAB0IgJBACACa3IgASAAdHFoIgFBA3QiAEH80QBqIgIgAEGE0gBqKAIAIgAoAggiBUYEQEHU0QAgBEF+IAF3cSIENgIADAELIAUgAjYCDCACIAU2AggLIAAgBkEDcjYCBCAAIAZqIgcgAUEDdCIBIAZrIgVBAXI2AgQgACABaiAFNgIAIAgEQCAIQXhxQfzRAGohAUHo0QAoAgAhAgJ/IARBASAIQQN2dCIDcUUEQEHU0QAgAyAEcjYCACABDAELIAEoAggLIQMgASACNgIIIAMgAjYCDCACIAE2AgwgAiADNgIICyAAQQhqIQBB6NEAIAc2AgBB3NEAIAU2AgAMCwtB2NEAKAIAIgtFDQEgC2hBAnRBhNQAaigCACICKAIEQXhxIAZrIQMgAiEBA0ACQCABKAIQIgBFBEAgASgCFCIARQ0BCyAAKAIEQXhxIAZrIgEgAyABIANJIgEbIQMgACACIAEbIQIgACEBDAELCyACKAIYIQkgAiACKAIMIgBHBEAgAigCCCIBIAA2AgwgACABNgIIDAoLIAIoAhQiAQR/IAJBFGoFIAIoAhAiAUUNAyACQRBqCyEFA0AgBSEHIAEiAEEUaiEFIAAoAhQiAQ0AIABBEGohBSAAKAIQIgENAAsgB0EANgIADAkLQX8hBiAAQb9/Sw0AIABBC2oiAEF4cSEGQdjRACgCACIHRQ0AQQAgBmshAwJAAkACQAJ/QQAgBkGAAkkNABpBHyAGQf///wdLDQAaIAZBJiAAQQh2ZyIAa3ZBAXEgAEEBdGtBPmoLIghBAnRBhNQAaigCACIBRQRAQQAhAAwBC0EAIQAgBkEZIAhBAXZrQQAgCEEfRxt0IQIDQAJAIAEoAgRBeHEgBmsiBCADTw0AIAEhBSAEIgMNAEEAIQMgASEADAMLIAAgASgCFCIEIAQgASACQR12QQRxaigCECIBRhsgACAEGyEAIAJBAXQhAiABDQALCyAAIAVyRQRAQQAhBUECIAh0IgBBACAAa3IgB3EiAEUNAyAAaEECdEGE1ABqKAIAIQALIABFDQELA0AgACgCBEF4cSAGayICIANJIQEgAiADIAEbIQMgACAFIAEbIQUgACgCECIBBH8gAQUgACgCFAsiAA0ACwsgBUUNACADQdzRACgCACAGa08NACAFKAIYIQggBSAFKAIMIgBHBEAgBSgCCCIBIAA2AgwgACABNgIIDAgLIAUoAhQiAQR/IAVBFGoFIAUoAhAiAUUNAyAFQRBqCyECA0AgAiEEIAEiAEEUaiECIAAoAhQiAQ0AIABBEGohAiAAKAIQIgENAAsgBEEANgIADAcLIAZB3NEAKAIAIgVNBEBB6NEAKAIAIQACQCAFIAZrIgFBEE8EQCAAIAZqIgIgAUEBcjYCBCAAIAVqIAE2AgAgACAGQQNyNgIEDAELIAAgBUEDcjYCBCAAIAVqIgEgASgCBEEBcjYCBEEAIQJBACEBC0Hc0QAgATYCAEHo0QAgAjYCACAAQQhqIQAMCQsgBkHg0QAoAgAiAkkEQEHg0QAgAiAGayIBNgIAQezRAEHs0QAoAgAiACAGaiICNgIAIAIgAUEBcjYCBCAAIAZBA3I2AgQgAEEIaiEADAkLQQAhACAGQS9qIgMCf0Gs1QAoAgAEQEG01QAoAgAMAQtBuNUAQn83AgBBsNUAQoCggICAgAQ3AgBBrNUAIApBDGpBcHFB2KrVqgVzNgIAQcDVAEEANgIAQZDVAEEANgIAQYAgCyIBaiIEQQAgAWsiB3EiASAGTQ0IQYzVACgCACIFBEBBhNUAKAIAIgggAWoiCSAITQ0JIAUgCUkNCQsCQEGQ1QAtAABBBHFFBEACQAJAAkACQEHs0QAoAgAiBQRAQZTVACEAA0AgBSAAKAIAIghPBEAgCCAAKAIEaiAFSw0DCyAAKAIIIgANAAsLQQAQJyICQX9GDQMgASEEQbDVACgCACIAQQFrIgUgAnEEQCABIAJrIAIgBWpBACAAa3FqIQQLIAQgBk0NA0GM1QAoAgAiAARAQYTVACgCACIFIARqIgcgBU0NBCAAIAdJDQQLIAQQJyIAIAJHDQEMBQsgBCACayAHcSIEECciAiAAKAIAIAAoAgRqRg0BIAIhAAsgAEF/Rg0BIAZBMGogBE0EQCAAIQIMBAtBtNUAKAIAIgIgAyAEa2pBACACa3EiAhAnQX9GDQEgAiAEaiEEIAAhAgwDCyACQX9HDQILQZDVAEGQ1QAoAgBBBHI2AgALIAEQJyECQQAQJyEAIAJBf0YNBSAAQX9GDQUgACACTQ0FIAAgAmsiBCAGQShqTQ0FC0GE1QBBhNUAKAIAIARqIgA2AgBBiNUAKAIAIABJBEBBiNUAIAA2AgALAkBB7NEAKAIAIgMEQEGU1QAhAANAIAIgACgCACIBIAAoAgQiBWpGDQIgACgCCCIADQALDAQLQeTRACgCACIAQQAgACACTRtFBEBB5NEAIAI2AgALQQAhAEGY1QAgBDYCAEGU1QAgAjYCAEH00QBBfzYCAEH40QBBrNUAKAIANgIAQaDVAEEANgIAA0AgAEEDdCIBQYTSAGogAUH80QBqIgU2AgAgAUGI0gBqIAU2AgAgAEEBaiIAQSBHDQALQeDRACAEQShrIgBBeCACa0EHcSIBayIFNgIAQezRACABIAJqIgE2AgAgASAFQQFyNgIEIAAgAmpBKDYCBEHw0QBBvNUAKAIANgIADAQLIAIgA00NAiABIANLDQIgACgCDEEIcQ0CIAAgBCAFajYCBEHs0QAgA0F4IANrQQdxIgBqIgE2AgBB4NEAQeDRACgCACAEaiICIABrIgA2AgAgASAAQQFyNgIEIAIgA2pBKDYCBEHw0QBBvNUAKAIANgIADAMLQQAhAAwGC0EAIQAMBAtB5NEAKAIAIAJLBEBB5NEAIAI2AgALIAIgBGohBUGU1QAhAAJAA0AgBSAAKAIAIgFHBEAgACgCCCIADQEMAgsLIAAtAAxBCHFFDQMLQZTVACEAA0ACQCADIAAoAgAiAU8EQCABIAAoAgRqIgUgA0sNAQsgACgCCCEADAELC0Hg0QAgBEEoayIAQXggAmtBB3EiAWsiBzYCAEHs0QAgASACaiIBNgIAIAEgB0EBcjYCBCAAIAJqQSg2AgRB8NEAQbzVACgCADYCACADIAVBJyAFa0EHcWpBL2siACAAIANBEGpJGyIBQRs2AgQgAUGc1QApAgA3AhAgAUGU1QApAgA3AghBnNUAIAFBCGo2AgBBmNUAIAQ2AgBBlNUAIAI2AgBBoNUAQQA2AgAgAUEYaiEAA0AgAEEHNgIEIABBCGohDCAAQQRqIQAgDCAFSQ0ACyABIANGDQAgASABKAIEQX5xNgIEIAMgASADayICQQFyNgIEIAEgAjYCAAJ/IAJB/wFNBEAgAkF4cUH80QBqIQACf0HU0QAoAgAiAUEBIAJBA3Z0IgJxRQRAQdTRACABIAJyNgIAIAAMAQsgACgCCAshASAAIAM2AgggASADNgIMQQwhAkEIDAELQR8hACACQf///wdNBEAgAkEmIAJBCHZnIgBrdkEBcSAAQQF0a0E+aiEACyADIAA2AhwgA0IANwIQIABBAnRBhNQAaiEBAkACQEHY0QAoAgAiBUEBIAB0IgRxRQRAQdjRACAEIAVyNgIAIAEgAzYCAAwBCyACQRkgAEEBdmtBACAAQR9HG3QhACABKAIAIQUDQCAFIgEoAgRBeHEgAkYNAiAAQR12IQUgAEEBdCEAIAEgBUEEcWoiBCgCECIFDQALIAQgAzYCEAsgAyABNgIYQQghAiADIgEhAEEMDAELIAEoAggiACADNgIMIAEgAzYCCCADIAA2AghBACEAQRghAkEMCyADaiABNgIAIAIgA2ogADYCAAtB4NEAKAIAIgAgBk0NAEHg0QAgACAGayIBNgIAQezRAEHs0QAoAgAiACAGaiICNgIAIAIgAUEBcjYCBCAAIAZBA3I2AgQgAEEIaiEADAQLQdDRAEEwNgIAQQAhAAwDCyAAIAI2AgAgACAAKAIEIARqNgIEIAJBeCACa0EHcWoiCCAGQQNyNgIEIAFBeCABa0EHcWoiBCAGIAhqIgNrIQcCQEHs0QAoAgAgBEYEQEHs0QAgAzYCAEHg0QBB4NEAKAIAIAdqIgA2AgAgAyAAQQFyNgIEDAELQejRACgCACAERgRAQejRACADNgIAQdzRAEHc0QAoAgAgB2oiADYCACADIABBAXI2AgQgACADaiAANgIADAELIAQoAgQiAEEDcUEBRgRAIABBeHEhCSAEKAIMIQICQCAAQf8BTQRAIAQoAggiASACRgRAQdTRAEHU0QAoAgBBfiAAQQN2d3E2AgAMAgsgASACNgIMIAIgATYCCAwBCyAEKAIYIQYCQCACIARHBEAgBCgCCCIAIAI2AgwgAiAANgIIDAELAkAgBCgCFCIABH8gBEEUagUgBCgCECIARQ0BIARBEGoLIQEDQCABIQUgACICQRRqIQEgACgCFCIADQAgAkEQaiEBIAIoAhAiAA0ACyAFQQA2AgAMAQtBACECCyAGRQ0AAkAgBCgCHCIAQQJ0QYTUAGoiASgCACAERgRAIAEgAjYCACACDQFB2NEAQdjRACgCAEF+IAB3cTYCAAwCCyAGQRBBFCAGKAIQIARGG2ogAjYCACACRQ0BCyACIAY2AhggBCgCECIABEAgAiAANgIQIAAgAjYCGAsgBCgCFCIARQ0AIAIgADYCFCAAIAI2AhgLIAcgCWohByAEIAlqIgQoAgQhAAsgBCAAQX5xNgIEIAMgB0EBcjYCBCADIAdqIAc2AgAgB0H/AU0EQCAHQXhxQfzRAGohAAJ/QdTRACgCACIBQQEgB0EDdnQiAnFFBEBB1NEAIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgAzYCCCABIAM2AgwgAyAANgIMIAMgATYCCAwBC0EfIQIgB0H///8HTQRAIAdBJiAHQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAgsgAyACNgIcIANCADcCECACQQJ0QYTUAGohAAJAAkBB2NEAKAIAIgFBASACdCIFcUUEQEHY0QAgASAFcjYCACAAIAM2AgAMAQsgB0EZIAJBAXZrQQAgAkEfRxt0IQIgACgCACEBA0AgASIAKAIEQXhxIAdGDQIgAkEddiEBIAJBAXQhAiAAIAFBBHFqIgUoAhAiAQ0ACyAFIAM2AhALIAMgADYCGCADIAM2AgwgAyADNgIIDAELIAAoAggiASADNgIMIAAgAzYCCCADQQA2AhggAyAANgIMIAMgATYCCAsgCEEIaiEADAILAkAgCEUNAAJAIAUoAhwiAUECdEGE1ABqIgIoAgAgBUYEQCACIAA2AgAgAA0BQdjRACAHQX4gAXdxIgc2AgAMAgsgCEEQQRQgCCgCECAFRhtqIAA2AgAgAEUNAQsgACAINgIYIAUoAhAiAQRAIAAgATYCECABIAA2AhgLIAUoAhQiAUUNACAAIAE2AhQgASAANgIYCwJAIANBD00EQCAFIAMgBmoiAEEDcjYCBCAAIAVqIgAgACgCBEEBcjYCBAwBCyAFIAZBA3I2AgQgBSAGaiIEIANBAXI2AgQgAyAEaiADNgIAIANB/wFNBEAgA0F4cUH80QBqIQACf0HU0QAoAgAiAUEBIANBA3Z0IgJxRQRAQdTRACABIAJyNgIAIAAMAQsgACgCCAshASAAIAQ2AgggASAENgIMIAQgADYCDCAEIAE2AggMAQtBHyEAIANB////B00EQCADQSYgA0EIdmciAGt2QQFxIABBAXRrQT5qIQALIAQgADYCHCAEQgA3AhAgAEECdEGE1ABqIQECQAJAIAdBASAAdCICcUUEQEHY0QAgAiAHcjYCACABIAQ2AgAgBCABNgIYDAELIANBGSAAQQF2a0EAIABBH0cbdCEAIAEoAgAhAQNAIAEiAigCBEF4cSADRg0CIABBHXYhASAAQQF0IQAgAiABQQRxaiIHKAIQIgENAAsgByAENgIQIAQgAjYCGAsgBCAENgIMIAQgBDYCCAwBCyACKAIIIgAgBDYCDCACIAQ2AgggBEEANgIYIAQgAjYCDCAEIAA2AggLIAVBCGohAAwBCwJAIAlFDQACQCACKAIcIgFBAnRBhNQAaiIFKAIAIAJGBEAgBSAANgIAIAANAUHY0QAgC0F+IAF3cTYCAAwCCyAJQRBBFCAJKAIQIAJGG2ogADYCACAARQ0BCyAAIAk2AhggAigCECIBBEAgACABNgIQIAEgADYCGAsgAigCFCIBRQ0AIAAgATYCFCABIAA2AhgLAkAgA0EPTQRAIAIgAyAGaiIAQQNyNgIEIAAgAmoiACAAKAIEQQFyNgIEDAELIAIgBkEDcjYCBCACIAZqIgUgA0EBcjYCBCADIAVqIAM2AgAgCARAIAhBeHFB/NEAaiEAQejRACgCACEBAn9BASAIQQN2dCIHIARxRQRAQdTRACAEIAdyNgIAIAAMAQsgACgCCAshBCAAIAE2AgggBCABNgIMIAEgADYCDCABIAQ2AggLQejRACAFNgIAQdzRACADNgIACyACQQhqIQALIApBEGokACAACwgAIAAgARBCC7sBAgV/AXwjAEEQayIGJAAgBkEEaiICEEEjAEEQayIFJAAgAbshBwJ/IAItAAtBB3YEQCACKAIEDAELIAItAAtB/wBxCyEEA0ACQAJ/IAItAAtBB3YEQCACKAIADAELIAILIQMgBSAHOQMAIAICfyADIARBAWogBRBHIgNBAE4EQCADIARNDQIgAwwBCyAEQQF0QQFyCyIEECwMAQsLIAIgAxAsIAAgAhBAIAVBEGokACACEEQgBkEQaiQAC+0FAQd/IwBBIGsiAyQAAkAgA0EVaiIGIgIgA0EgaiIIIgVGDQAgAUEATg0AIAJBLToAACACQQFqIQJBACABayEBCyADAn8gBSACayIHQQlMBEBBPSAHQSAgAUEBcmdrQdEJbEEMdSIEIARBAnRB0MYAaigCACABTWpIDQEaCwJ/IAFBv4Q9TQRAIAFBj84ATQRAIAFB4wBNBEAgAUEJTQRAIAIgAUEwajoAACACQQFqDAQLIAIgARAkDAMLIAFB5wdNBEAgAiABQeQAbiIEQTBqOgAAIAJBAWogASAEQeQAbGsQJAwDCyACIAEQNAwCCyABQZ+NBk0EQCACIAFBkM4AbiIEQTBqOgAAIAJBAWogASAEQZDOAGxrEDQMAgsgAiABEDMMAQsgAUH/wdcvTQRAIAFB/6ziBE0EQCACIAFBwIQ9biIEQTBqOgAAIAJBAWogASAEQcCEPWxrEDMMAgsgAiABEDIMAQsgAUH/k+vcA00EQCACIAFBgMLXL24iBEEwajoAACACQQFqIAEgBEGAwtcvbGsQMgwBCyACIAFBgMLXL24iAhAkIAEgAkGAwtcvbGsQMgshBUEACzYCECADIAU2AgwgAygCDCEHIwBBEGsiBCQAIwBBEGsiAyQAIAAhAQJAIAcgBiIAayIFQff///8HTQRAAkAgBUELSQRAIAEgAS0AC0GAAXEgBUH/AHFyOgALIAEgAS0AC0H/AHE6AAsgASECDAELIANBCGogBUELTwR/IAVBCGpBeHEiBiAGQQFrIgYgBkELRhsFQQoLQQFqEC8gAygCDBogASADKAIIIgI2AgAgASABKAIIQYCAgIB4cSADKAIMQf////8HcXI2AgggASABKAIIQYCAgIB4cjYCCCABIAU2AgQLA0AgACAHRwRAIAIgAC0AADoAACACQQFqIQIgAEEBaiEADAELCyADQQA6AAcgAiADLQAHOgAAIANBEGokAAwBCxAlAAsgBEEQaiQAIAgkAAsYAQF/IAEQGyECIAAgATYCBCAAIAI2AgALOAAgAC0AC0EHdgRAIAAgATYCBA8LIAAgAC0AC0GAAXEgAUH/AHFyOgALIAAgAC0AC0H/AHE6AAsL1QIBAn8CQCAAIAFGDQAgASAAIAJqIgRrQQAgAkEBdGtNBEAgACABIAIQIRoPCyAAIAFzQQNxIQMCQAJAIAAgAUkEQCADDQIgAEEDcUUNAQNAIAJFDQQgACABLQAAOgAAIAFBAWohASACQQFrIQIgAEEBaiIAQQNxDQALDAELAkAgAw0AIARBA3EEQANAIAJFDQUgACACQQFrIgJqIgMgASACai0AADoAACADQQNxDQALCyACQQNNDQADQCAAIAJBBGsiAmogASACaigCADYCACACQQNLDQALCyACRQ0CA0AgACACQQFrIgJqIAEgAmotAAA6AAAgAg0ACwwCCyACQQNNDQADQCAAIAEoAgA2AgAgAUEEaiEBIABBBGohACACQQRrIgJBA0sNAAsLIAJFDQADQCAAIAEtAAA6AAAgAEEBaiEAIAFBAWohASACQQFrIgINAAsLCxsAIAAgAUHAhD1uIgAQJCABIABBwIQ9bGsQMwsbACAAIAFBkM4AbiIAECQgASAAQZDOAGxrEDQLGQAgACABQeQAbiIAECQgASAAQeQAbGsQJAsPACACBEAgACABIAIQMQsLvQQDA3wDfwJ+AnwCQCAAvUI0iKdB/w9xIgVByQdrQT9JBEAgBSEEDAELIAVByQdJBEAgAEQAAAAAAADwP6APCyAFQYkISQ0ARAAAAAAAAAAAIAC9IgdCgICAgICAgHhRDQEaIAVB/w9PBEAgAEQAAAAAAADwP6APCyAHQgBTBEAjAEEQayIERAAAAAAAAAAQOQMIIAQrAwhEAAAAAAAAABCiDwsjAEEQayIERAAAAAAAAABwOQMIIAQrAwhEAAAAAAAAAHCiDwtB+DErAwAgAKJBgDIrAwAiAaAiAiABoSIBQZAyKwMAoiABQYgyKwMAoiAAoKAiASABoiIAIACiIAFBsDIrAwCiQagyKwMAoKIgACABQaAyKwMAokGYMisDAKCiIAK9IgenQQR0QfAPcSIFQegyaisDACABoKCgIQEgBUHwMmopAwAgB0IthnwhCCAERQRAAnwgB0KAgICACINQBEAgCEKAgICAgICAiD99vyIAIAGiIACgRAAAAAAAAAB/ogwBCyAIQoCAgICAgIDwP3y/IgIgAaIiASACoCIDRAAAAAAAAPA/YwR8IwBBEGsiBCEGIARCgICAgICAgAg3AwggBiAEKwMIRAAAAAAAABAAojkDCEQAAAAAAAAAACADRAAAAAAAAPA/oCIAIAEgAiADoaAgA0QAAAAAAADwPyAAoaCgoEQAAAAAAADwv6AiACAARAAAAAAAAAAAYRsFIAMLRAAAAAAAABAAogsPCyAIvyIAIAGiIACgCwsIAEGpChBTAAtwAEHYzwBBFzYCAEHczwBBADYCABBWQdzPAEGI0AAoAgA2AgBBiNAAQdjPADYCAEGM0ABBGDYCAEGQ0ABBADYCABBSQZDQAEGI0AAoAgA2AgBBiNAAQYzQADYCAEGs0QBBtNAANgIAQeTQAEEqNgIACxwAIAAgAUEIIAKnIAJCIIinIAOnIANCIIinEA4LCwAgABA7GiAAEBgLMgECfyAAQdzOADYCACAAKAIEQQxrIgEgASgCCEEBayICNgIIIAJBAEgEQCABEBgLIAALmgEAIABBAToANQJAIAAoAgQgAkcNACAAQQE6ADQCQCAAKAIQIgJFBEAgAEEBNgIkIAAgAzYCGCAAIAE2AhAgA0EBRw0CIAAoAjBBAUYNAQwCCyABIAJGBEAgACgCGCICQQJGBEAgACADNgIYIAMhAgsgACgCMEEBRw0CIAJBAUYNAQwCCyAAIAAoAiRBAWo2AiQLIABBAToANgsLTAEBfwJAIAFFDQAgAUHsygAQHyIBRQ0AIAEoAgggACgCCEF/c3ENACAAKAIMIAEoAgxBABAdRQ0AIAAoAhAgASgCEEEAEB0hAgsgAgt2AQF/IAAoAiQiA0UEQCAAIAI2AhggACABNgIQIABBATYCJCAAIAAoAjg2AhQPCwJAAkAgACgCFCAAKAI4Rw0AIAAoAhAgAUcNACAAKAIYQQJHDQEgACACNgIYDwsgAEEBOgA2IABBAjYCGCAAIANBAWo2AiQLC1MBA38jAEEQayICJAAgASAAKAIEIgNBAXVqIQEgACgCACEAIAJBCGogASADQQFxBH8gASgCACAAaigCAAUgAAsRAAAgAigCDCEEIAJBEGokACAEC18BAX8jAEEQayICJAAgAS0ACxogACABKQIANwIAIAAgASgCCDYCCCABQgA3AgAgAUEANgIIIAAtAAtBB3YiAUUEQAJ/IAEEQCAAKAIEDAELIAAtAAsLGgsgAkEQaiQAC0MBAX8jAEEQayIBJAAgAEIANwIAIABBADYCCCABQRBqJAAgACAALQALQQd2BH8gACgCCEH/////B3FBAWsFQQoLEEIL1AQBCX8CfyAALQALQQd2BEAgACgCBAwBCyAALQALQf8AcQsiAiABSQRAIwBBEGsiBiQAIAEgAmsiBQRAIAUgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyICAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgFrSwRAIwBBEGsiBCQAAkAgBSACayABaiIDQff///8HIAJrTQRAAn8gAC0AC0EHdgRAIAAoAgAMAQsgAAshByAEQQRqIgggAkHz////A0kEfyAEIAJBAXQ2AgwgBCACIANqNgIEIwBBEGsiAyQAIAgoAgAgBEEMaiIJKAIASSEKIANBEGokACAJIAggChsoAgAiA0ELTwR/IANBCGpBeHEiAyADQQFrIgMgA0ELRhsFQQoLQQFqBUH3////BwsQLyAEKAIEIQMgBCgCCBogAQRAIAMgByABECILIAJBCkcEQCAHEBgLIAAgAzYCACAAIAAoAghBgICAgHhxIAQoAghB/////wdxcjYCCCAAIAAoAghBgICAgHhyNgIIIARBEGokAAwBCxAlAAsgACABNgIECyABAn8gAC0AC0EHdgRAIAAoAgAMAQsgAAsiAmogBRBDIAAgASAFaiIAEDAgBkEAOgAPIAAgAmogBi0ADzoAAAsgBkEQaiQADwsCfyAALQALQQd2BEAgACgCAAwBCyAACyEEIwBBEGsiAiQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0ACwsaIAAgARAwIAJBADoADyABIARqIAItAA86AAAgAkEQaiQACz0BAX8jAEEQayICJAAgAkEAOgAPA0AgAQRAIAAgAi0ADzoAACABQQFrIQEgAEEBaiEADAELCyACQRBqJAALGgAgAC0AC0EHdgRAIAAoAggaIAAoAgAQGAsL5gEBBX8jAEEQayIFJAAjAEEgayIDJAAjAEEQayIEJAAgBCAANgIMIAQgACABajYCCCADIAQoAgw2AhggAyAEKAIINgIcIARBEGokACADKAIYIQQgAygCHCEGIwBBEGsiASQAIAEgBjYCDCACIAQgBiAEayIEEDUgASACIARqNgIIIAMgASgCDDYCECADIAEoAgg2AhQgAUEQaiQAIAMgACADKAIQIABrajYCDCADIAIgAygCFCACa2o2AgggBSADKAIMNgIIIAUgAygCCDYCDCADQSBqJAAgBSgCDCEHIAVBEGokACAHC/MCAQV/IwBBEGsiByQAIAIgAUF/c0H3////B2pNBEACfyAALQALQQd2BEAgACgCAAwBCyAACyEIIAdBBGoiCSABQfP///8DSQR/IAcgAUEBdDYCDCAHIAEgAmo2AgQjAEEQayICJAAgCSgCACAHQQxqIgooAgBJIQsgAkEQaiQAIAogCSALGygCACICQQtPBH8gAkEIakF4cSICIAJBAWsiAiACQQtGGwVBCgtBAWoFQff///8HCxAvIAcoAgQhAiAHKAIIGiAEBEAgAiAIIAQQIgsgBQRAIAIgBGogBiAFECILIAMgBGshBiADIARHBEAgAiAEaiAFaiAEIAhqIAYQIgsgAUEKRwRAIAgQGAsgACACNgIAIAAgACgCCEGAgICAeHEgBygCCEH/////B3FyNgIIIAAgACgCCEGAgICAeHI2AgggACAEIAVqIAZqIgA2AgQgB0EAOgAMIAAgAmogBy0ADDoAACAHQRBqJAAPCxAlAAvHAwEFfyMAQRBrIgUkACAFIAI2AgwjAEGgAWsiAyQAIAMgACADQZ4BaiABGyIENgKUASADIAFBAWsiAEEAIAAgAU0bNgKYASADQQBBkAEQIyIAQX82AkwgAEEbNgIkIABBfzYCUCAAIABBnwFqNgIsIAAgAEGUAWo2AlQgBEEAOgAAQQAhAyMAQdABayIBJAAgASACNgLMASABQaABaiICQQBBKBAjGiABIAEoAswBNgLIAQJAQQAgAUHIAWogAUHQAGogAhBMQQBIBEBBfyECDAELIAAoAkxBAEghByAAIAAoAgAiBkFfcTYCAAJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQMgACABNgIsDAELIAAoAhANAQtBfyAAEE8NARoLIAAgAUHIAWogAUHQAGogAUGgAWoQTAshAiADBEAgAEEAQQAgACgCJBEDABogAEEANgIwIAAgAzYCLCAAQQA2AhwgACgCFCEDIABCADcDECACQX8gAxshAgsgACAAKAIAIgMgBkEgcXI2AgBBfyACIANBIHEbIQIgBw0ACyABQdABaiQAIABBoAFqJAAgBUEQaiQAIAILngUCBn4EfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQsgASkDACEDIAEpAwghByMAQSBrIggkACAHQv///////z+DIQQCfiAHQjCIQv//AYMiBaciCkGB+ABrQf0PTQRAIARCBIYgA0I8iIQhAiAKQYD4AGutIQUCQCADQv//////////D4MiA0KBgICAgICAgAhaBEAgAkIBfCECDAELIANCgICAgICAgIAIUg0AIAJCAYMgAnwhAgtCACACIAJC/////////wdWIgAbIQIgAK0gBXwMAQsCQCADIASEUA0AIAVC//8BUg0AIARCBIYgA0I8iIRCgICAgICAgASEIQJC/w8MAQtC/w8gCkH+hwFLDQAaQgBBgPgAQYH4ACAFUCIBGyIAIAprIglB8ABKDQAaIAMhAiAEIARCgICAgICAwACEIAEbIgYhBAJAQYABIAlrIgFBwABxBEAgAyABQUBqrYYhBEIAIQIMAQsgAUUNACAEIAGtIgWGIAJBwAAgAWutiIQhBCACIAWGIQILIAggAjcDECAIIAQ3AxgCQCAJQcAAcQRAIAYgCUFAaq2IIQNCACEGDAELIAlF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AgQgAEHM0AA2AgAgAkEQaiQAC2ACAX8BfCMAQRBrIgIkACACQQA2AgwgASgCBEGszAAgAkEMahAJIQMgAigCDCIBBEAgARABCyAAAn8gA5lEAAAAAAAA4EFjBEAgA6oMAQtBgICAgHgLNgI8IAJBEGokAAs3AQF/IwBBEGsiAiQAIAIgASgCPDYCCCAAQazMACACQQhqEAg2AgQgAEHM0AA2AgAgAkEQaiQACwvGRhAAQYAIC5Qic2V0QmVhdXR5AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAdW5zaWduZWQgc2hvcnQAdW5zaWduZWQgaW50AGluaXQAZmxvYXQAdWludDY0X3QAYmx1clJhZGl1cwB2ZWN0b3IAbWlycm9yAGF0dGFjaFNoYWRlcgBkZWxldGVTaGFkZXIAY3JlYXRlU2hhZGVyAGNvbXBpbGVTaGFkZXIAdW5zaWduZWQgY2hhcgBzdGQ6OmV4Y2VwdGlvbgBuYW4AbGlua1Byb2dyYW0AZGVsZXRlUHJvZ3JhbQBjcmVhdGVQcm9ncmFtAGJvb2wAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sATkFOAElORgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgB2ZWMyIGMgPSB2X3RleENvb3JkOwB2ZWMyIGMgPSB2ZWMyKDEuMCAtIHZfdGV4Q29vcmQueCwgdl90ZXhDb29yZC55KTsAQWxsSW4xAC4ALjAsAC4wKSpvKSoAKG51bGwpACkqby55KTsgICAgdmVjMiBjb29yZDIgPSB2ZWMyKGZsb2F0KAAgICAgYyA9IHZlYzIodl90ZXhDb29yZC54LCAxLjAgLSB2X3RleENvb3JkLnkpOyAgICB2ZWMyIGNvb3JkMSA9IHZlYzIoZmxvYXQoACksIChjLnkgLWNvb3JkMS55KSAvIG8ueSAvIGZsb2F0KAApKm8ueSk7ICAgIGlmIChjLnggPiBjb29yZDEueCAmJiBjLnggPCBjb29yZDIueCAmJiBjLnkgPiBjb29yZDEueSAmJiBjLnkgPCBjb29yZDIueSkgeyAgICAgIHZlYzQgd2F0ZXJDb2xvciA9IHRleHR1cmUod2F0ZXJNYXJrLCB2ZWMyKChjLnggLSBjb29yZDEueCkgIC8gby54IC8gZmxvYXQoACkgKiBvLngsIGZsb2F0KAApOyAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgIHNtb290aENvbG9yID0gY2xhbXAocG93KHNtb290aENvbG9yLCB2ZWMzKAApOyAgICBuZXdDb2xvci5yZ2IgPSB2ZWMzKG5ld0NvbG9yLnJnYiArIHZlYzMoAGcrPUcoYyx2ZWMyKAAgICAgdmVjMiBvZmZzZXQgPSB2ZWMyKABdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoADsgACkpLCB2ZWMzKDAuMCksIHZlYzMoMS4wKSk7ICAgIHZlYzMgc2NyZWVuID0gdmVjMygxLjApIC0gKHZlYzMoMS4wKS1zbW9vdGhDb2xvcikgKiAodmVjMygxLjApLW91dENvbG9yLnJnYik7ICAgICB2ZWMzIGxpZ2h0ZW4gPSBtYXgoc21vb3RoQ29sb3IsIG91dENvbG9yLnJnYik7ICAgICB2ZWMzIHNvZnRMaWdodCA9IDIuMCAqIG91dENvbG9yLnJnYipzbW9vdGhDb2xvciArIG91dENvbG9yLnJnYipvdXRDb2xvci5yZ2IgLSAyLjAgKiBvdXRDb2xvci5yZ2Iqb3V0Q29sb3IucmdiICogc21vb3RoQ29sb3I7ICAgICB2ZWM0IG5ld0NvbG9yID0gb3V0Q29sb3I7ICAgICBuZXdDb2xvci5yZ2IgPSBtaXgobWl4KG1peChuZXdDb2xvci5yZ2IsIHNjcmVlbiwgYWxwaGEpLCBsaWdodGVuLCBhbHBoYSksIHNvZnRMaWdodCwgACk7ICAgIGNvbnN0IG1hdDMgc2F0dXJhdGVNYXRyaXggPSBtYXQzKDEuMTEwMiwtMC4wNTk4LC0wLjA2MSwtMC4wNzc0LDEuMDgyNiwtMC4xMTg2LC0wLjAyMjgsLTAuMDIyOCwxLjE3NzIpOyAgICB2ZWMzIHNhdENvbG9yID0gbmV3Q29sb3IucmdiICogc2F0dXJhdGVNYXRyaXg7ICAgIG5ld0NvbG9yLnJnYiA9IG1peChuZXdDb2xvci5yZ2IsIHNhdENvbG9yLCAAICAgIHNhbXBsZUNvbG9yID0gc2FtcGxlQ29sb3IgLyA2Mi4wOyAgICAgZmxvYXQgaGlnaFBhc3MgPSBvdXRDb2xvci5nIC0gc2FtcGxlQ29sb3IgKyAwLjU7ICAgICBmb3IoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7ICAgICAgIGlmIChoaWdoUGFzcyA8PSAwLjUpIHsgICAgICAgICBoaWdoUGFzcyA9IGhpZ2hQYXNzICogaGlnaFBhc3MgKiAyLjA7ICAgICAgIH0gZWxzZSB7ICAgICAgICAgaGlnaFBhc3MgPSAxLjAgLSAoKDEuMCAtIGhpZ2hQYXNzKSooMS4wIC0gaGlnaFBhc3MpICogMi4wKTsgICAgICAgfSAgICAgfSAgICAgY29uc3QgaGlnaHAgdmVjMyBXID0gdmVjMygwLjI5OSwwLjU4NywwLjExNCk7ICAgIGZsb2F0IGx1bWluYW5jZSA9IGRvdChvdXRDb2xvci5yZ2IsIFcpOyAgICAgZmxvYXQgYWxwaGEgPSBwb3cobHVtaW5hbmNlLCAAXSkuZyAqIAApKTsgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3IsIG5ld0NvbG9yLCAxLjApOyAgIAApKSk7ICAgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3Isd2F0ZXJDb2xvciwgIHdhdGVyQ29sb3IuYSk7ICAgIH0gICAgACk7ICAgIHZlYzIgYmx1ckNvb3JkaW5hdGVzWzI0XTsgICAgACAgICBmbG9hdCBzYW1wbGVDb2xvciA9IG91dENvbG9yLmcgKiAyMi4wOyAgICAgACN2ZXJzaW9uIDMwMCBlcwogICAgcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwogICAgdW5pZm9ybSBzYW1wbGVyMkQgZnJhbWU7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBtYXNrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgYmc7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCB3YXRlck1hcms7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBsYXN0TWFzazsKICAgIGluIHZlYzIgdl90ZXhDb29yZDsKICAgIG91dCB2ZWM0IG91dENvbG9yOwogICAgdmVjNCBHKHZlYzIgYyx2ZWMyIHMpewogICAgICByZXR1cm4gdGV4dHVyZShmcmFtZSx0ZXh0dXJlKG1hc2ssYytzKS5hPjAuMz9jOmMrcyk7CiAgICB9CiAgICB2b2lkIG1haW4oKSB7CiAgICAgIAAKICAgIHZlYzQgZyA9IHZlYzQoMC4wKTsKICAgIAAKICAgICAgYy55ID0gMS4wIC0gYy55OwogICAgICB2ZWM0IHNyY19jb2xvciA9IHRleHR1cmUoZnJhbWUsIGMpOwogICAgICBmbG9hdCBhID0gdGV4dHVyZShtYXNrLCBjKS5hOwogICAgICBhID0gYTwwLjU/Mi4wKmEqYToxLjAtMi4wKigxLjAtYSkqKDEuMC1hKTsKICAgICAgLy8gZmxvYXQgYTIgPSB0ZXh0dXJlKGxhc3RNYXNrLCBjKS5hOwogICAgICAvLyBhMiA9IGEyPDAuNT8yLjAqYTIqYTI6MS4wLTIuMCooMS4wLWEyKSooMS4wLWEyKTsKICAgICAgLy8gZmxvYXQgZGVsdGEgPSBhIC0gYTI7CiAgICAgIC8vIGlmIChkZWx0YSA8IDAuMjUgJiYgZGVsdGEgPiAtMC4yNSkKICAgICAgLy8gewogICAgICAvLyAgICAgYSA9IGEgKyAwLjUqZGVsdGE7CiAgICAgIC8vIH0KICAgICAgCiAgICAgIHZlYzIgbyA9IDEuMCAvIHZlYzIodGV4dHVyZVNpemUoZnJhbWUsIDApKTsKICAgIAAKICAgICAgb3V0Q29sb3IgPSBnOwogIAAjdmVyc2lvbiAzMDAgZXMKaW4gdmVjMiBhX3Bvc2l0aW9uOwppbiB2ZWMyIGFfdGV4Q29vcmQ7Cm91dCB2ZWMyIHZfdGV4Q29vcmQ7CnZvaWQgbWFpbigpIHsKICBnbF9Qb3NpdGlvbiA9IHZlYzQoYV9wb3NpdGlvbi54LCBhX3Bvc2l0aW9uLnksIDAsIDEpOwogIHZfdGV4Q29vcmQgPSBhX3RleENvb3JkOwp9CgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLHNyY19jb2xvcixhKTsKAG91dENvbG9yID0gbWl4KHZlYzQoMC4wLDEuMCwwLjAsMS4wKSxzcmNfY29sb3IsYSk7CgA2QWxsSW4xAJAmAABwFAAAUDZBbGxJbjEAAAAAFCcAAIAUAAAAAAAAeBQAAFBLNkFsbEluMQAAABQnAACcFAAAAQAAAHgUAABwcAB2AHZwAIwUAADcFAAATjEwZW1zY3JpcHRlbjN2YWxFAACQJgAAyBQAAHBwcAB2cHBwAAAAAMwlAACMFAAAgCYAAIAmAACAJgAAgCYAAIAmAAB2cHBkZGRkZABBoCoLyAjMJQAAjBQAAIAmAACAJgAAgCYAAIAmAAB2cHBkZGRkAMwlAACMFAAAdnBwAMwlAADcFAAA3BQAAIwUAADcFAAALCYAAMwlAADcFAAAsBUAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAACQJgAAcBUAANwUAADMJQAA3BQAANwUAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAkCYAAMgVAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAkCYAABAWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAJAmAABYFgAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAACQJgAApBYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAAkCYAAPAWAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAAJAmAAAYFwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAACQJgAAQBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAAkCYAAGgXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAAJAmAACQFwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAACQJgAAuBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAAkCYAAOAXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAAJAmAAAIGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAACQJgAAMBgAAE4xMGVtc2NyaXB0ZW4x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";return _}var Fr;function yn(_){if(_==Fr&&Je)return new Uint8Array(Je);var g=Re(_);if(g)return g;if(tr)return tr(_);throw"both async and sync fetching of the wasm failed"}function Xn(_){return Promise.resolve().then(()=>yn(_))}function kr(_,g,C){return Xn(_).then(B=>WebAssembly.instantiate(B,g)).then(C,B=>{In(`failed to asynchronously prepare wasm: ${B}`),mn(B)})}function Ne(_,g,C,B){return kr(g,C,B)}function Se(){return{a:ln}}function be(){var _=Se();function g(B,F){return gt=B.exports,Ee=gt.y,Lt(),Br=gt.B,Rt(gt.z),Bi("wasm-instantiate"),gt}Gn("wasm-instantiate");function C(B){g(B.instance)}if(N.instantiateWasm)try{return N.instantiateWasm(_,g)}catch(B){In(`Module.instantiateWasm callback failed with error: ${B}`),we(B)}return Fr||(Fr=Cn()),Ne(Je,Fr,_,C).catch(we),{}}var ve=_=>{for(;_.length>0;)_.shift()(N)},T=N.noExitRuntime||!0;class Oe{constructor(g){this.excPtr=g,this.ptr=g-24}set_type(g){Ie[this.ptr+4>>2]=g}get_type(){return Ie[this.ptr+4>>2]}set_destructor(g){Ie[this.ptr+8>>2]=g}get_destructor(){return Ie[this.ptr+8>>2]}set_caught(g){g=g?1:0,Nt[this.ptr+12]=g}get_caught(){return Nt[this.ptr+12]!=0}set_rethrown(g){g=g?1:0,Nt[this.ptr+13]=g}get_rethrown(){return Nt[this.ptr+13]!=0}init(g,C){this.set_adjusted_ptr(0),this.set_type(g),this.set_destructor(C)}set_adjusted_ptr(g){Ie[this.ptr+16>>2]=g}get_adjusted_ptr(){return Ie[this.ptr+16>>2]}get_exception_ptr(){var g=Kt(this.get_type());if(g)return Ie[this.excPtr>>2];var C=this.get_adjusted_ptr();return C!==0?C:this.excPtr}}var b=0,Qe=0,ze=(_,g,C)=>{var B=new Oe(_);throw B.init(g,C),b=_,Qe++,b},xr=()=>{mn("")},on=(_,g,C,B,F)=>{},K=()=>{for(var _=new Array(256),g=0;g<256;++g)_[g]=String.fromCharCode(g);Ur=_},Ur,V=_=>{for(var g="",C=_;Xe[C];)g+=Ur[Xe[C++]];return g},Ht={},st={},Nr={},Gt,le=_=>{throw new Gt(_)},an,yr=_=>{throw new an(_)},Ot=(_,g,C)=>{_.forEach(function(L){Nr[L]=g});function B(L){var q=C(L);q.length!==_.length&&yr("Mismatched type converter count");for(var ee=0;ee<_.length;++ee)Ct(_[ee],q[ee])}var F=new Array(g.length),H=[],X=0;g.forEach((L,q)=>{st.hasOwnProperty(L)?F[q]=st[L]:(H.push(L),Ht.hasOwnProperty(L)||(Ht[L]=[]),Ht[L].push(()=>{F[q]=st[L],++X,X===H.length&&B(F)}))}),H.length===0&&B(F)};function vi(_,g,C={}){var B=g.name;if(_||le(`type "${B}" must have a positive integer typeid pointer`),st.hasOwnProperty(_)){if(C.ignoreDuplicateRegistrations)return;le(`Cannot register type '${B}' twice`)}if(st[_]=g,delete Nr[_],Ht.hasOwnProperty(_)){var F=Ht[_];delete Ht[_],F.forEach(H=>H())}}function Ct(_,g,C={}){if(!("argPackAdvance"in g))throw new TypeError("registerType registeredInstance requires argPackAdvance");return vi(_,g,C)}var Yt=8,Qi=(_,g,C,B)=>{g=V(g),Ct(_,{name:g,fromWireType:function(F){return!!F},toWireType:function(F,H){return H?C:B},argPackAdvance:Yt,readValueFromPointer:function(F){return this.fromWireType(Xe[F])},destructorFunction:null})},Pi=_=>({count:_.count,deleteScheduled:_.deleteScheduled,preservePointerOnDelete:_.preservePointerOnDelete,ptr:_.ptr,ptrType:_.ptrType,smartPtr:_.smartPtr,smartPtrType:_.smartPtrType}),wn=_=>{function g(C){return C.$$.ptrType.registeredClass.name}le(g(_)+" instance already deleted")},Dn=!1,Xt=_=>{},nr=_=>{_.smartPtr?_.smartPtrType.rawDestructor(_.smartPtr):_.ptrType.registeredClass.rawDestructor(_.ptr)},lt=_=>{_.count.value-=1;var g=_.count.value===0;g&&nr(_)},At=(_,g,C)=>{if(g===C)return _;if(C.baseClass===void 0)return null;var B=At(_,g,C.baseClass);return B===null?null:C.downcast(B)},ir={},St=()=>Object.keys(Le).length,wr=()=>{var _=[];for(var g in Le)Le.hasOwnProperty(g)&&_.push(Le[g]);return _},E=[],or=()=>{for(;E.length;){var _=E.pop();_.$$.deleteScheduled=!1,_.delete()}},p,bn=_=>{p=_,E.length&&p&&p(or)},ue=()=>{N.getInheritedInstanceCount=St,N.getLiveInheritedInstances=wr,N.flushPendingDeletes=or,N.setDelayFunction=bn},Le={},ce=(_,g)=>{for(g===void 0&&le("ptr should not be undefined");_.baseClass;)g=_.upcast(g),_=_.baseClass;return g},Dr=(_,g)=>(g=ce(_,g),Le[g]),On=(_,g)=>{(!g.ptrType||!g.ptr)&&yr("makeClassHandle requires ptr and ptrType");var C=!!g.smartPtrType,B=!!g.smartPtr;return C!==B&&yr("Both smartPtrType and smartPtr must be specified"),g.count={value:1},ye(Object.create(_,{$$:{value:g,writable:!0}}))};function We(_){var g=this.getPointee(_);if(!g)return this.destructor(_),null;var C=Dr(this.registeredClass,g);if(C!==void 0){if(C.$$.count.value===0)return C.$$.ptr=g,C.$$.smartPtr=_,C.clone();var B=C.clone();return this.destructor(_),B}function F(){return this.isSmartPointer?On(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:g,smartPtrType:this,smartPtr:_}):On(this.registeredClass.instancePrototype,{ptrType:this,ptr:_})}var H=this.registeredClass.getActualType(g),X=ir[H];if(!X)return F.call(this);var L;this.isConst?L=X.constPointerType:L=X.pointerType;var q=At(g,this.registeredClass,L.registeredClass);return q===null?F.call(this):this.isSmartPointer?On(L.registeredClass.instancePrototype,{ptrType:L,ptr:q,smartPtrType:this,smartPtr:_}):On(L.registeredClass.instancePrototype,{ptrType:L,ptr:q})}var ye=_=>typeof FinalizationRegistry=="undefined"?(ye=g=>g,_):(Dn=new FinalizationRegistry(g=>{lt(g.$$)}),ye=g=>{var C=g.$$,B=!!C.smartPtr;if(B){var F={$$:C};Dn.register(g,F,g)}return g},Xt=g=>Dn.unregister(g),ye(_)),Bt=()=>{Object.assign(jr.prototype,{isAliasOf(_){if(!(this instanceof jr)||!(_ instanceof jr))return!1;var g=this.$$.ptrType.registeredClass,C=this.$$.ptr;_.$$=_.$$;for(var B=_.$$.ptrType.registeredClass,F=_.$$.ptr;g.baseClass;)C=g.upcast(C),g=g.baseClass;for(;B.baseClass;)F=B.upcast(F),B=B.baseClass;return g===B&&C===F},clone(){if(this.$$.ptr||wn(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var _=ye(Object.create(Object.getPrototypeOf(this),{$$:{value:Pi(this.$$)}}));return _.$$.count.value+=1,_.$$.deleteScheduled=!1,_},delete(){this.$$.ptr||wn(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&le("Object already scheduled for deletion"),Xt(this),lt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||wn(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&le("Object already scheduled for deletion"),E.push(this),E.length===1&&p&&p(or),this.$$.deleteScheduled=!0,this}})};function jr(){}var br=(_,g)=>Object.defineProperty(g,"name",{value:_}),Tt=(_,g,C)=>{if(_[g].overloadTable===void 0){var B=_[g];_[g]=function(...F){return _[g].overloadTable.hasOwnProperty(F.length)||le(`Function '${C}' called with an invalid number of arguments (${F.length}) - expects one of (${_[g].overloadTable})!`),_[g].overloadTable[F.length].apply(this,F)},_[g].overloadTable=[],_[g].overloadTable[B.argCount]=B}},Or=(_,g,C)=>{N.hasOwnProperty(_)?((C===void 0||N[_].overloadTable!==void 0&&N[_].overloadTable[C]!==void 0)&&le(`Cannot register public name '${_}' twice`),Tt(N,_,_),N.hasOwnProperty(C)&&le(`Cannot register multiple overloads of a function with the same number of arguments (${C})!`),N[_].overloadTable[C]=g):(N[_]=g,C!==void 0&&(N[_].numArguments=C))},Ri=48,Wn=57,Si=_=>{if(_===void 0)return"_unknown";_=_.replace(/[^a-zA-Z0-9_]/g,"$");var g=_.charCodeAt(0);return g>=Ri&&g<=Wn?`_${_}`:_};function Bn(_,g,C,B,F,H,X,L){this.name=_,this.constructor=g,this.instancePrototype=C,this.rawDestructor=B,this.baseClass=F,this.getActualType=H,this.upcast=X,this.downcast=L,this.pureVirtualFunctions=[]}var ar=(_,g,C)=>{for(;g!==C;)g.upcast||le(`Expected null or instance of ${C.name}, got an instance of ${g.name}`),_=g.upcast(_),g=g.baseClass;return _};function Q(_,g){if(g===null)return this.isReference&&le(`null is not a valid ${this.name}`),0;g.$$||le(`Cannot pass "${An(g)}" as a ${this.name}`),g.$$.ptr||le(`Cannot pass deleted object as a pointer of type ${this.name}`);var C=g.$$.ptrType.registeredClass,B=ar(g.$$.ptr,C,this.registeredClass);return B}function P(_,g){var C;if(g===null)return this.isReference&&le(`null is not a valid ${this.name}`),this.isSmartPointer?(C=this.rawConstructor(),_!==null&&_.push(this.rawDestructor,C),C):0;(!g||!g.$$)&&le(`Cannot pass "${An(g)}" as a ${this.name}`),g.$$.ptr||le(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&g.$$.ptrType.isConst&&le(`Cannot convert argument of type ${g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name} to parameter type ${this.name}`);var B=g.$$.ptrType.registeredClass;if(C=ar(g.$$.ptr,B,this.registeredClass),this.isSmartPointer)switch(g.$$.smartPtr===void 0&&le("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:g.$$.smartPtrType===this?C=g.$$.smartPtr:le(`Cannot convert argument of type ${g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:C=g.$$.smartPtr;break;case 2:if(g.$$.smartPtrType===this)C=g.$$.smartPtr;else{var F=g.clone();C=this.rawShare(C,ie.toHandle(()=>F.delete())),_!==null&&_.push(this.rawDestructor,C)}break;default:le("Unsupporting sharing policy")}return C}function Tn(_,g){if(g===null)return this.isReference&&le(`null is not a valid ${this.name}`),0;g.$$||le(`Cannot pass "${An(g)}" as a ${this.name}`),g.$$.ptr||le(`Cannot pass deleted object as a pointer of type ${this.name}`),g.$$.ptrType.isConst&&le(`Cannot convert argument of type ${g.$$.ptrType.name} to parameter type ${this.name}`);var C=g.$$.ptrType.registeredClass,B=ar(g.$$.ptr,C,this.registeredClass);return B}function Lr(_){return this.fromWireType(Ie[_>>2])}var Vn=()=>{Object.assign(sn.prototype,{getPointee(_){return this.rawGetPointee&&(_=this.rawGetPointee(_)),_},destructor(_){var g;(g=this.rawDestructor)==null||g.call(this,_)},argPackAdvance:Yt,readValueFromPointer:Lr,fromWireType:We})};function sn(_,g,C,B,F,H,X,L,q,ee,Z){this.name=_,this.registeredClass=g,this.isReference=C,this.isConst=B,this.isSmartPointer=F,this.pointeeType=H,this.sharingPolicy=X,this.rawGetPointee=L,this.rawConstructor=q,this.rawShare=ee,this.rawDestructor=Z,!F&&g.baseClass===void 0?B?(this.toWireType=Q,this.destructorFunction=null):(this.toWireType=Tn,this.destructorFunction=null):this.toWireType=P}var Mi=(_,g,C)=>{N.hasOwnProperty(_)||yr("Replacing nonexistent public symbol"),N[_].overloadTable!==void 0&&C!==void 0?N[_].overloadTable[C]=g:(N[_]=g,N[_].argCount=C)},lo=(_,g,C)=>{_=_.replace(/p/g,"i");var B=N["dynCall_"+_];return B(g,...C)},vn=[],Br,Mt=_=>{var g=vn[_];return g||(_>=vn.length&&(vn.length=_+1),vn[_]=g=Br.get(_)),g},Wt=(_,g,C=[])=>{if(_.includes("j"))return lo(_,g,C);var B=Mt(g)(...C);return B},Hr=(_,g)=>(...C)=>Wt(_,g,C),vt=(_,g)=>{_=V(_);function C(){return _.includes("j")?Hr(_,g):Mt(g)}var B=C();return typeof B!="function"&&le(`unknown function pointer with signature ${_}: ${g}`),B},Qn=(_,g)=>{var C=br(g,function(B){this.name=g,this.message=B;var F=new Error(B).stack;F!==void 0&&(this.stack=this.toString()+`
|
|
60
|
-
`+F.replace(/^Error(:[^\n]*)?\n/,""))});return C.prototype=Object.create(_.prototype),C.prototype.constructor=C,C.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},C},Vt,Ft=_=>{var g=fn(_),C=V(g);return Qt(g),C},Tr=(_,g)=>{var C=[],B={};function F(H){if(!B[H]&&!st[H]){if(Nr[H]){Nr[H].forEach(F);return}C.push(H),B[H]=!0}}throw g.forEach(F),new Vt(`${_}: `+C.map(Ft).join([", "]))},Fi=(_,g,C,B,F,H,X,L,q,ee,Z,Ce,Be)=>{Z=V(Z),H=vt(F,H),L&&(L=vt(X,L)),ee&&(ee=vt(q,ee)),Be=vt(Ce,Be);var De=Si(Z);Or(De,function(){Tr(`Cannot construct ${Z} due to unbound types`,[B])}),Ot([_,g,C],B?[B]:[],He=>{var Sn,Vr;He=He[0];var Et,ct;B?(Et=He.registeredClass,ct=Et.instancePrototype):ct=jr.prototype;var qe=br(Z,function(...vr){if(Object.getPrototypeOf(this)!==fr)throw new Gt("Use 'new' to construct "+Z);if(xe.constructor_body===void 0)throw new Gt(Z+" has no accessible constructor");var ri=xe.constructor_body[vr.length];if(ri===void 0)throw new Gt(`Tried to invoke ctor of ${Z} with invalid number of parameters (${vr.length}) - expected (${Object.keys(xe.constructor_body).toString()}) parameters instead!`);return ri.apply(this,vr)}),fr=Object.create(ct,{constructor:{value:qe}});qe.prototype=fr;var xe=new Bn(Z,qe,fr,Be,Et,H,L,ee);xe.baseClass&&((Vr=(Sn=xe.baseClass).__derivedClasses)!=null||(Sn.__derivedClasses=[]),xe.baseClass.__derivedClasses.push(xe));var wt=new sn(Z,xe,!0,!1,!1),pt=new sn(Z+"*",xe,!1,!1,!1),gr=new sn(Z+" const*",xe,!1,!0,!1);return ir[_]={pointerType:pt,constPointerType:gr},Mi(De,qe),[wt,pt,gr]})},zn=(_,g)=>{for(var C=[],B=0;B<_;B++)C.push(Ie[g+B*4>>2]);return C},Pn=_=>{for(;_.length;){var g=_.pop(),C=_.pop();C(g)}};function ki(_){for(var g=1;g<_.length;++g)if(_[g]!==null&&_[g].destructorFunction===void 0)return!0;return!1}function $n(_,g,C,B,F,H){var X=g.length;X<2&&le("argTypes array size mismatch! Must at least get return value and 'this' types!");var L=g[1]!==null&&C!==null,q=ki(g),ee=g[0].name!=="void",Z=X-2,Ce=new Array(Z),Be=[],De=[],He=function(...Et){Et.length!==Z&&le(`function ${_} called with ${Et.length} arguments, expected ${Z}`),De.length=0;var ct;Be.length=L?2:1,Be[0]=F,L&&(ct=g[1].toWireType(De,this),Be[1]=ct);for(var qe=0;qe<Z;++qe)Ce[qe]=g[qe+2].toWireType(De,Et[qe]),Be.push(Ce[qe]);var fr=B(...Be);function xe(wt){if(q)Pn(De);else for(var pt=L?1:2;pt<g.length;pt++){var gr=pt===1?ct:Ce[pt-2];g[pt].destructorFunction!==null&&g[pt].destructorFunction(gr)}if(ee)return g[0].fromWireType(wt)}return xe(fr)};return br(_,He)}var xi=(_,g,C,B,F,H)=>{var X=zn(g,C);F=vt(B,F),Ot([],[_],L=>{L=L[0];var q=`constructor ${L.name}`;if(L.registeredClass.constructor_body===void 0&&(L.registeredClass.constructor_body=[]),L.registeredClass.constructor_body[g-1]!==void 0)throw new Gt(`Cannot register multiple constructors with identical number of parameters (${g-1}) for class '${L.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return L.registeredClass.constructor_body[g-1]=()=>{Tr(`Cannot construct ${L.name} due to unbound types`,X)},Ot([],X,ee=>(ee.splice(1,0,null),L.registeredClass.constructor_body[g-1]=$n(q,ee,null,F,H),[])),[]})},Ui=_=>{_=_.trim();let g=_.indexOf("(");return g!==-1?_.substr(0,g):_},Jn=(_,g,C,B,F,H,X,L,q)=>{var ee=zn(C,B);g=V(g),g=Ui(g),H=vt(F,H),Ot([],[_],Z=>{Z=Z[0];var Ce=`${Z.name}.${g}`;g.startsWith("@@")&&(g=Symbol[g.substring(2)]),L&&Z.registeredClass.pureVirtualFunctions.push(g);function Be(){Tr(`Cannot call ${Ce} due to unbound types`,ee)}var De=Z.registeredClass.instancePrototype,He=De[g];return He===void 0||He.overloadTable===void 0&&He.className!==Z.name&&He.argCount===C-2?(Be.argCount=C-2,Be.className=Z.name,De[g]=Be):(Tt(De,g,Ce),De[g].overloadTable[C-2]=Be),Ot([],ee,Et=>{var ct=$n(Ce,Et,Z,H,X,q);return De[g].overloadTable===void 0?(ct.argCount=C-2,De[g]=ct):De[g].overloadTable[C-2]=ct,[]}),[]})},_e=(_,g,C)=>(_ instanceof Object||le(`${C} with invalid "this": ${_}`),_ instanceof g.registeredClass.constructor||le(`${C} incompatible with "this" of type ${_.constructor.name}`),_.$$.ptr||le(`cannot call emscripten binding method ${C} on deleted object`),ar(_.$$.ptr,_.$$.ptrType.registeredClass,g.registeredClass)),me=(_,g,C,B,F,H,X,L,q,ee)=>{g=V(g),F=vt(B,F),Ot([],[_],Z=>{Z=Z[0];var Ce=`${Z.name}.${g}`,Be={get(){Tr(`Cannot access ${Ce} due to unbound types`,[C,X])},enumerable:!0,configurable:!0};return q?Be.set=()=>Tr(`Cannot access ${Ce} due to unbound types`,[C,X]):Be.set=De=>le(Ce+" is a read-only property"),Object.defineProperty(Z.registeredClass.instancePrototype,g,Be),Ot([],q?[C,X]:[C],De=>{var He=De[0],Et={get(){var qe=_e(this,Z,Ce+" getter");return He.fromWireType(F(H,qe))},enumerable:!0};if(q){q=vt(L,q);var ct=De[1];Et.set=function(qe){var fr=_e(this,Z,Ce+" setter"),xe=[];q(ee,fr,ct.toWireType(xe,qe)),Pn(xe)}}return Object.defineProperty(Z.registeredClass.instancePrototype,g,Et),[]}),[]})},dt=[],Pe=[],yt=_=>{_>9&&--Pe[_+1]===0&&(Pe[_]=void 0,dt.push(_))},Ni=()=>Pe.length/2-5-dt.length,Kn=()=>{Pe.push(0,1,void 0,1,null,1,!0,1,!1,1),N.count_emval_handles=Ni},ie={toValue:_=>(_||le("Cannot use deleted val. handle = "+_),Pe[_]),toHandle:_=>{switch(_){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let g=dt.pop()||Pe.length;return Pe[g]=_,Pe[g+1]=1,g}}}},se={name:"emscripten::val",fromWireType:_=>{var g=ie.toValue(_);return yt(_),g},toWireType:(_,g)=>ie.toHandle(g),argPackAdvance:Yt,readValueFromPointer:Lr,destructorFunction:null},ji=_=>Ct(_,se),An=_=>{if(_===null)return"null";var g=typeof _;return g==="object"||g==="array"||g==="function"?_.toString():""+_},f=(_,g)=>{switch(g){case 4:return function(C){return this.fromWireType(Hn[C>>2])};case 8:return function(C){return this.fromWireType(jt[C>>3])};default:throw new TypeError(`invalid float width (${g}): ${_}`)}},l=(_,g,C)=>{g=V(g),Ct(_,{name:g,fromWireType:B=>B,toWireType:(B,F)=>F,argPackAdvance:Yt,readValueFromPointer:f(g,C),destructorFunction:null})},Me=(_,g,C)=>{switch(g){case 1:return C?B=>Nt[B]:B=>Xe[B];case 2:return C?B=>mr[B>>1]:B=>mt[B>>1];case 4:return C?B=>Cr[B>>2]:B=>Ie[B>>2];default:throw new TypeError(`invalid integer width (${g}): ${_}`)}},Li=(_,g,C,B,F)=>{g=V(g),F===-1&&(F=4294967295);var H=Z=>Z;if(B===0){var X=32-8*C;H=Z=>Z<<X>>>X}var L=g.includes("unsigned"),q=(Z,Ce)=>{},ee;L?ee=function(Z,Ce){return q(Ce,this.name),Ce>>>0}:ee=function(Z,Ce){return q(Ce,this.name),Ce},Ct(_,{name:g,fromWireType:H,toWireType:ee,argPackAdvance:Yt,readValueFromPointer:Me(g,C,B!==0),destructorFunction:null})},Hi=(_,g,C)=>{var B=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],F=B[g];function H(X){var L=Ie[X>>2],q=Ie[X+4>>2];return new F(Nt.buffer,q,L)}C=V(C),Ct(_,{name:C,fromWireType:H,argPackAdvance:Yt,readValueFromPointer:H},{ignoreDuplicateRegistrations:!0})},Gi=(_,g,C,B)=>{if(!(B>0))return 0;for(var F=C,H=C+B-1,X=0;X<_.length;++X){var L=_.charCodeAt(X);if(L>=55296&&L<=57343){var q=_.charCodeAt(++X);L=65536+((L&1023)<<10)|q&1023}if(L<=127){if(C>=H)break;g[C++]=L}else if(L<=2047){if(C+1>=H)break;g[C++]=192|L>>6,g[C++]=128|L&63}else if(L<=65535){if(C+2>=H)break;g[C++]=224|L>>12,g[C++]=128|L>>6&63,g[C++]=128|L&63}else{if(C+3>=H)break;g[C++]=240|L>>18,g[C++]=128|L>>12&63,g[C++]=128|L>>6&63,g[C++]=128|L&63}}return g[C]=0,C-F},Yi=(_,g,C)=>Gi(_,Xe,g,C),Xi=_=>{for(var g=0,C=0;C<_.length;++C){var B=_.charCodeAt(C);B<=127?g++:B<=2047?g+=2:B>=55296&&B<=57343?(g+=4,++C):g+=3}return g},Zn=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Wi=(_,g,C)=>{for(var B=g+C,F=g;_[F]&&!(F>=B);)++F;if(F-g>16&&_.buffer&&Zn)return Zn.decode(_.subarray(g,F));for(var H="";g<F;){var X=_[g++];if(!(X&128)){H+=String.fromCharCode(X);continue}var L=_[g++]&63;if((X&224)==192){H+=String.fromCharCode((X&31)<<6|L);continue}var q=_[g++]&63;if((X&240)==224?X=(X&15)<<12|L<<6|q:X=(X&7)<<18|L<<12|q<<6|_[g++]&63,X<65536)H+=String.fromCharCode(X);else{var ee=X-65536;H+=String.fromCharCode(55296|ee>>10,56320|ee&1023)}}return H},cn=(_,g)=>_?Wi(Xe,_,g):"",sr=(_,g)=>{g=V(g);var C=g==="std::string";Ct(_,{name:g,fromWireType(B){var F=Ie[B>>2],H=B+4,X;if(C)for(var L=H,q=0;q<=F;++q){var ee=H+q;if(q==F||Xe[ee]==0){var Z=ee-L,Ce=cn(L,Z);X===void 0?X=Ce:(X+=String.fromCharCode(0),X+=Ce),L=ee+1}}else{for(var Be=new Array(F),q=0;q<F;++q)Be[q]=String.fromCharCode(Xe[H+q]);X=Be.join("")}return Qt(B),X},toWireType(B,F){F instanceof ArrayBuffer&&(F=new Uint8Array(F));var H,X=typeof F=="string";X||F instanceof Uint8Array||F instanceof Uint8ClampedArray||F instanceof Int8Array||le("Cannot pass non-string to std::string"),C&&X?H=Xi(F):H=F.length;var L=Jt(4+H+1),q=L+4;if(Ie[L>>2]=H,C&&X)Yi(F,q,H+1);else if(X)for(var ee=0;ee<H;++ee){var Z=F.charCodeAt(ee);Z>255&&(Qt(q),le("String has UTF-16 code units that do not fit in 8 bits")),Xe[q+ee]=Z}else for(var ee=0;ee<H;++ee)Xe[q+ee]=F[ee];return B!==null&&B.push(Qt,L),L},argPackAdvance:Yt,readValueFromPointer:Lr,destructorFunction(B){Qt(B)}})},Ar=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,rt=(_,g)=>{for(var C=_,B=C>>1,F=B+g/2;!(B>=F)&&mt[B];)++B;if(C=B<<1,C-_>32&&Ar)return Ar.decode(Xe.subarray(_,C));for(var H="",X=0;!(X>=g/2);++X){var L=mr[_+X*2>>1];if(L==0)break;H+=String.fromCharCode(L)}return H},ft=(_,g,C)=>{if(C!=null||(C=2147483647),C<2)return 0;C-=2;for(var B=g,F=C<_.length*2?C/2:_.length,H=0;H<F;++H){var X=_.charCodeAt(H);mr[g>>1]=X,g+=2}return mr[g>>1]=0,g-B},Vi=_=>_.length*2,zi=(_,g)=>{for(var C=0,B="";!(C>=g/4);){var F=Cr[_+C*4>>2];if(F==0)break;if(++C,F>=65536){var H=F-65536;B+=String.fromCharCode(55296|H>>10,56320|H&1023)}else B+=String.fromCharCode(F)}return B},un=(_,g,C)=>{if(C!=null||(C=2147483647),C<4)return 0;for(var B=g,F=B+C-4,H=0;H<_.length;++H){var X=_.charCodeAt(H);if(X>=55296&&X<=57343){var L=_.charCodeAt(++H);X=65536+((X&1023)<<10)|L&1023}if(Cr[g>>2]=X,g+=4,g+4>F)break}return Cr[g>>2]=0,g-B},cr=_=>{for(var g=0,C=0;C<_.length;++C){var B=_.charCodeAt(C);B>=55296&&B<=57343&&++C,g+=4}return g},Gr=(_,g,C)=>{C=V(C);var B,F,H,X;g===2?(B=rt,F=ft,X=Vi,H=L=>mt[L>>1]):g===4&&(B=zi,F=un,X=cr,H=L=>Ie[L>>2]),Ct(_,{name:C,fromWireType:L=>{for(var q=Ie[L>>2],ee,Z=L+4,Ce=0;Ce<=q;++Ce){var Be=L+4+Ce*g;if(Ce==q||H(Be)==0){var De=Be-Z,He=B(Z,De);ee===void 0?ee=He:(ee+=String.fromCharCode(0),ee+=He),Z=Be+g}}return Qt(L),ee},toWireType:(L,q)=>{typeof q!="string"&&le(`Cannot pass non-string to C++ string type ${C}`);var ee=X(q),Z=Jt(4+ee+g);return Ie[Z>>2]=ee/g,F(q,Z+4,ee+g),L!==null&&L.push(Qt,Z),Z},argPackAdvance:Yt,readValueFromPointer:Lr,destructorFunction(L){Qt(L)}})},qn=(_,g)=>{g=V(g),Ct(_,{isVoid:!0,name:g,argPackAdvance:0,fromWireType:()=>{},toWireType:(C,B)=>{}})},ei=(_,g,C)=>Xe.copyWithin(_,g,g+C),ke=(_,g)=>{var C=st[_];return C===void 0&&le(`${g} has unknown type ${Ft(_)}`),C},je=(_,g,C)=>{var B=[],F=_.toWireType(B,C);return B.length&&(Ie[g>>2]=ie.toHandle(B)),F},$i=(_,g,C)=>(_=ie.toValue(_),g=ke(g,"emval::as"),je(g,C,_)),Yr={},ur=_=>{var g=Yr[_];return g===void 0?V(_):g},kt=[],Xr=(_,g,C,B,F)=>(_=kt[_],g=ie.toValue(g),C=ur(C),_(g,g[C],B,F)),Ji=_=>{var g=kt.length;return kt.push(_),g},xt=(_,g)=>{for(var C=new Array(_),B=0;B<_;++B)C[B]=ke(Ie[g+B*4>>2],"parameter "+B);return C},nt=Reflect.construct,ae=(_,g,C)=>{var B=xt(_,g),F=B.shift();_--;var H=new Array(_),X=(q,ee,Z,Ce)=>{for(var Be=0,De=0;De<_;++De)H[De]=B[De].readValueFromPointer(Ce+Be),Be+=B[De].argPackAdvance;var He=C===1?nt(ee,H):ee.apply(q,H);return je(F,Z,He)},L=`methodCaller<(${B.map(q=>q.name).join(", ")}) => ${F.name}>`;return Ji(br(L,X))},Ae=_=>{_>9&&(Pe[_+1]+=1)},Rn=_=>{var g=ie.toValue(_);Pn(g),yt(_)},ti=(_,g)=>{_=ke(_,"_emval_take_value");var C=_.readValueFromPointer(g);return ie.toHandle(C)},zt=_=>{mn("OOM")},$t=_=>{var g=Xe.length;_>>>=0,zt(_)};K(),Gt=N.BindingError=class extends Error{constructor(g){super(g),this.name="BindingError"}},an=N.InternalError=class extends Error{constructor(g){super(g),this.name="InternalError"}},Bt(),ue(),Vn(),Vt=N.UnboundTypeError=Qn(Error,"UnboundTypeError"),Kn();var ln={v:ze,p:xr,o:on,t:Qi,x:Fi,w:xi,h:Jn,k:me,s:ji,n:l,g:Li,a:Hi,m:sr,l:Gr,u:qn,r:ei,j:$i,e:Xr,c:yt,f:ae,d:Ae,b:Rn,i:ti,q:$t},gt=be(),dn=()=>(dn=gt.z)(),Jt=_=>(Jt=gt.A)(_),fn=_=>(fn=gt.C)(_),Qt=_=>(Qt=gt.D)(_),Kt=_=>(Kt=gt.E)(_),Wr=N._vertexShaderSource=10192,lr;bt=function _(){lr||dr(),lr||(bt=_)};function dr(){if(Ze>0||(uo(),Ze>0))return;function _(){lr||(lr=!0,N.calledRun=!0,!tt&&(Oi(),Ue(N),N.onRuntimeInitialized&&N.onRuntimeInitialized(),Mr()))}N.setStatus?(N.setStatus("Running..."),setTimeout(function(){setTimeout(function(){N.setStatus("")},1),_()},1)):_()}if(N.preInit)for(typeof N.preInit=="function"&&(N.preInit=[N.preInit]);N.preInit.length>0;)N.preInit.pop()();return dr(),he=ot,he}})(),Oc=Bu;var xo=class{constructor(x,n){Ge(this,"canvas");Ge(this,"locateFile");Ge(this,"_glName");Ge(this,"_solutionWasm");Ge(this,"ctx");Ge(this,"fileDownloader");Ge(this,"startTime");Ge(this,"lastTimestamp");Ge(this,"pl",{onResults:x=>this.onResults(x.get(0).glName)});this.locateFile=he=>`${x}/${he}`.replace(/([^:]\/)\/+/g,"$1"),this.fileDownloader=n}bindTexture(){var x;(x=this.ctx)==null||x.activeTexture(this.ctx.TEXTURE0),this.bindTexture2d(this._glName)}async initialize(){this._solutionWasm=new this.SolutionWasm;let x=new this.StringList;x.push_back("segmentation_mask");let n=this.PacketListener.implement(this.pl);return this._solutionWasm.attachMultiListener(x,n),x.delete(),this._solutionWasm.loadGraph(await this.fileDownloader.download(this.locateFile("selfie_segmentation.binarypb"),{type:"arraybuffer"})),this}setCanvas(x){this.canvas=x,this.createContext(x,!0,!0,{}),this._glName=this.createTexture()}fetchResponse(x){return this.fileDownloader.downloadWithFetch(x,"fetch-response")}loadWasm(x,n){return this.fileDownloader.loadWasm(x,n)}async changeModel(x="selfie_segmentation_landscape.tflite"){x=typeof x=="string"?await this.fileDownloader.download(this.locateFile(x),{type:"arraybuffer"}):x,this._solutionWasm.overrideFile("third_party/mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite",x);let n=new this.GraphOptionChangeRequestList;n.push_back({calculatorIndex:1,calculatorName:"",calculatorType:"GlScalerCalculator",fieldName:"flip_horizontal",valueBoolean:!1,valueNumber:0,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value",valueBoolean:!1,valueNumber:1,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"InferenceCalculator",calculatorName:"",fieldName:"use_cpu_inference",valueBoolean:!1,valueNumber:0,valueString:""}),this._solutionWasm.changeOptions(n),this.startTime=Date.now()}send(x,n){let he=new this.PacketDataList,N=Date.now()-this.startTime;this.lastTimestamp&&this.lastTimestamp>=N?this.lastTimestamp=N+1:this.lastTimestamp=N,he.pushTexture2d({stream:"input_frames_gpu",timestamp:this.lastTimestamp,glName:this._glName,width:x,height:n}),this._solutionWasm.send(he),he.delete()}close(){var x,n,he;(x=this.canvas)==null||delete x.getContext,delete this.readyPromiseResolve,delete this.readyPromiseReject,this.pl.onResults=null,delete this.onResults,(n=this.deleteTexture)==null||n.call(this,this._glName),(he=this._solutionWasm)==null||he.delete();for(let N of Object.keys(this))delete this[N]}};var Pr=typeof navigator=="undefined"?"":navigator.userAgent,fe=J=>new RegExp(J,"i").test(Pr),et=J=>{if(fe(J)){let x=new RegExp(`${J}\\/([\\d.]+)`),n=Pr.match(x);if(n&&n[1])return n[1]}return""},nc=J=>{if(fe(J)){let x=new RegExp(`${J}\\/(\\d+)`),n=Pr.match(x);if(n&&n[1])return parseFloat(n[1])}return NaN},Bc=/AppleWebKit\/([\d.]+)/i.exec(Pr),Tu=Bc?parseFloat(Bc[1]):NaN,vc=fe("iPad"),Qc=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&fe("Macintosh"),Pc=fe("iPhone")&&!vc,vu=fe("iPod"),Rc=Pc||vc||vu||Qc,Uo=fe("Android"),Sc=function(){if(Uo){let J=Pr.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(J){let x=J[1]&&parseFloat(J[1]),n=J[2]&&parseFloat(J[2]);if(x&&n)return parseFloat(`${J[1]}.${J[2]}`);if(x)return x}}return NaN}(),El=Uo&&fe("webkit")&&Sc<2.3,pl=Uo&&Sc<5&&Tu<537,Qu=fe("Firefox"),Pu=et("Firefox"),_l=nc("Firefox"),Mc=fe("Edge"),Ru=et("Edge"),Fc=fe("Edg"),Su=et("Edg"),hl=nc("Edg"),kc=fe("SogouMobileBrowser"),Mu=et("SogouMobileBrowser"),xc=fe("MetaSr\\s"),Fu=et("MetaSr\\s"),Ln=fe("TBS"),ku=et("TBS"),Uc=fe("XWEB"),xu=et("XWEB"),Il=fe("MSIE\\s8\\.0"),Uu=fe("MSIE\\/\\d+"),ml=function(){if(Uu){let J=/MSIE\s(\d+)\.\d/.exec(Pr),x=J&&parseFloat(J[1]);return!x&&/Trident\/7.0/i.test(Pr)&&/rv:11.0/.test(Pr)&&(x=11),x}return NaN}(),Nu=fe("(micromessenger|webbrowser)"),ju=et("MicroMessenger"),ic=!Ln&&fe("MQQBrowser")&&fe("COVC"),oc=!Ln&&fe("MQQBrowser")&&!fe("COVC"),Tc=oc||ic?et("MQQBrowser"):"",Nc=!Ln&&fe(" QQBrowser"),Lu=et(" QQBrowser"),jc=!Ln&&fe("QQBrowserLite"),Hu=et("QQBrowserLite"),Lc=!Ln&&fe("MQBHD"),Gu=et("MQBHD"),Cl=fe("Windows"),yl=!Rc&&fe("MAC OS X"),wl=!Uo&&fe("Linux"),Dl=fe("CrOS"),bl=fe("MicroMessenger"),Ol=fe("UCBrowser"),Bl=fe("Electron"),Hc=fe("MiuiBrowser"),Yu=et("MiuiBrowser"),Gc=fe("HuaweiBrowser"),Tl=fe("Huawei"),Xu=et("HuaweiBrowser"),Yc=fe("SamsungBrowser"),Wu=et("SamsungBrowser"),Xc=fe("HeyTapBrowser"),Vu=et("HeyTapBrowser"),Wc=fe("VivoBrowser"),zu=et("VivoBrowser"),$u=()=>nc("Chrome"),Vc=fe("Chrome"),Ju=!Mc&&!xc&&!kc&&!Ln&&!Uc&&!Fc&&!Nc&&!Hc&&!Gc&&!Yc&&!Xc&&!Wc&&Vc,vl=fe("HeadlessChrome"),zc=$u(),Ku=et("Chrome"),Zu=!Vc&&!oc&&!ic&&!jc&&!Lc&&fe("Safari");var $c=et("Version"),Ql=/Android.*(wv|.0.0.0)/.test(Pr),Jc=(()=>{if(Qc)return $c;if(Rc){let J=Pr.match(/OS (\d+)_(\d+)/i);if(J&&J[1]){let x=J[1];return J[2]&&(x+=`.${J[2]}`),x}}return""})(),Pl=Number(Jc.split(".")[0]);var Rl=(()=>{let J=Number(Jc.split(".")[0]);return J===14||J===13})(),Sl=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",Ml=(()=>{let J;return()=>{if(typeof J=="undefined")try{J=!!window.localStorage}catch(x){J=!1}return J}})(),Fl=qu();function qu(){let J=new Map([[Qu,["Firefox",Pu]],[Fc,["Edg",Su]],[Ju,["Chrome",Ku]],[Zu,["Safari",$c]],[Ln,["TBS",ku]],[Uc,["XWEB",xu]],[Nu&&Pc,["WeChat",ju]],[Nc,["QQ(Win)",Lu]],[oc,["QQ(Mobile)",Tc]],[ic,["QQ(Mobile X5)",Tc]],[jc,["QQ(Mac)",Hu]],[Lc,["QQ(iPad)",Gu]],[Hc,["MI",Yu]],[Gc,["HW",Xu]],[Yc,["Samsung",Wu]],[Xc,["OPPO",Vu]],[Wc,["VIVO",zu]],[Mc,["EDGE",Ru]],[kc,["SogouMobile",Mu]],[xc,["Sogou",Fu]]]),x="unknown",n="unknown";return J.has(!0)&&([x,n]=J.get(!0)),{name:x,version:n}}var ac=570703;var No=0,jo=class jo{constructor(x){this.core=x;Ge(this,"seq");Ge(this,"_core");Ge(this,"log");Ge(this,"preLoadPromise");Ge(this,"startResolve");Ge(this,"startReject");Ge(this,"mediaPipeSolutions");Ge(this,"assetsPath");Ge(this,"currentType");Ge(this,"onAbort");No=No+1,this.seq=No,this._core=x,this.log=x.log.createChild({id:`${this.getAlias()}${No}`}),this.log.info("created"),x.assetsPath&&(this.preLoadPromise=this.preload(x.assetsPath))}static isSupported(){if(zc<90)return!1;let n=document.createElement("canvas").getContext("webgl2");return!!(n&&n instanceof WebGL2RenderingContext)}async preload(x="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/"){try{this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await Oc()),this.assetsPath=`${x}/selfie_segmentation/`;let n=new xo(this.assetsPath,this._core.fileDownloader);n.onAbort=he=>{var N;this.core.kvStatManager.addEnum({key:ac,value:this.getKVTypeValue(!0)}),this.log.error("mediaPipeSolutions abort",he),this.core.clearStarted(this,this.getGroup()),this.stop(),(N=this.onAbort)==null||N.call(this,he)},n.print=this.log.info.bind(this.log),n.printErr=this.log.warn.bind(this.log),this.mediaPipeSolutions=await(this.core.rtcDectection.isSIMDSupported()?Dc:bc)(n),await this.mediaPipeSolutions.initialize(),await this._core.room.videoManager.initVirtualBackground(this.mediaPipeSolutions)}catch(n){let{RtcError:he,ErrorCode:N}=this._core.errorModule;throw new he({code:N.INVALID_OPERATION,message:`VirtualBackground preload error, please check your assetsPath. detail: ${n}`})}}getName(){return jo.Name}getAlias(){return"vb"}getValidateRule(x){switch(x){case"start":return Cc(this._core);case"update":return yc(this._core);case"stop":return wc(this._core)}}getGroup(){return"vb"}getKVTypeValue(x=!1){switch(this.currentType){case"blur":return x?1:0;case"image":return x?3:2;case"green":return x?5:4}}async start(x){let{type:n="blur",src:he,blurLevel:N=3,onAbort:Ue}=x;this.currentType=n,this.onAbort=Ue,this.core.kvStatManager.addEnum({key:ac,value:this.getKVTypeValue()});let{auth:we,sign:ot,timestamp:ht}=await mc({sdkAppId:x.sdkAppId,userId:x.userId,userSig:x.userSig,core:this._core});if(!we){let{RtcError:$e,ErrorCode:Ye,ErrorCodeDictionary:Ve}=this._core.errorModule;throw new $e({code:Ye.SERVER_ERROR,extraCode:Ve.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:"https://cloud.tencent.com/document/product/647/85386"}})}return this.preLoadPromise||(this.preLoadPromise=this.preload(this._core.assetsPath)),await this.preLoadPromise,this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:he,blurLevel:N,onAbort:$e=>{var Ye;this.core.clearStarted(this,this.getGroup()),this.stop(),(Ye=this.onAbort)==null||Ye.call(this,$e)}})}async update(x){let{type:n,src:he}=x;return n!==this.currentType&&(this.currentType=n,this.core.kvStatManager.addEnum({key:ac,value:this.getKVTypeValue()})),this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:he,blurLevel:x.blurLevel})}async stop(){return this.core.room.videoManager.setVirtualBackground()}};Ge(jo,"Name","VirtualBackground");var sc=jo;var Yl=sc;export{sc as VirtualBackground,Yl as default};
|
|
60
|
+
`+F.replace(/^Error(:[^\n]*)?\n/,""))});return C.prototype=Object.create(_.prototype),C.prototype.constructor=C,C.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},C},Vt,Ft=_=>{var g=fn(_),C=V(g);return Qt(g),C},Tr=(_,g)=>{var C=[],B={};function F(H){if(!B[H]&&!st[H]){if(Nr[H]){Nr[H].forEach(F);return}C.push(H),B[H]=!0}}throw g.forEach(F),new Vt(`${_}: `+C.map(Ft).join([", "]))},Fi=(_,g,C,B,F,H,X,L,q,ee,Z,Ce,Be)=>{Z=V(Z),H=vt(F,H),L&&(L=vt(X,L)),ee&&(ee=vt(q,ee)),Be=vt(Ce,Be);var De=Si(Z);Or(De,function(){Tr(`Cannot construct ${Z} due to unbound types`,[B])}),Ot([_,g,C],B?[B]:[],He=>{var Sn,Vr;He=He[0];var Et,ct;B?(Et=He.registeredClass,ct=Et.instancePrototype):ct=jr.prototype;var qe=br(Z,function(...vr){if(Object.getPrototypeOf(this)!==fr)throw new Gt("Use 'new' to construct "+Z);if(xe.constructor_body===void 0)throw new Gt(Z+" has no accessible constructor");var ri=xe.constructor_body[vr.length];if(ri===void 0)throw new Gt(`Tried to invoke ctor of ${Z} with invalid number of parameters (${vr.length}) - expected (${Object.keys(xe.constructor_body).toString()}) parameters instead!`);return ri.apply(this,vr)}),fr=Object.create(ct,{constructor:{value:qe}});qe.prototype=fr;var xe=new Bn(Z,qe,fr,Be,Et,H,L,ee);xe.baseClass&&((Vr=(Sn=xe.baseClass).__derivedClasses)!=null||(Sn.__derivedClasses=[]),xe.baseClass.__derivedClasses.push(xe));var wt=new sn(Z,xe,!0,!1,!1),pt=new sn(Z+"*",xe,!1,!1,!1),gr=new sn(Z+" const*",xe,!1,!0,!1);return ir[_]={pointerType:pt,constPointerType:gr},Mi(De,qe),[wt,pt,gr]})},zn=(_,g)=>{for(var C=[],B=0;B<_;B++)C.push(Ie[g+B*4>>2]);return C},Pn=_=>{for(;_.length;){var g=_.pop(),C=_.pop();C(g)}};function ki(_){for(var g=1;g<_.length;++g)if(_[g]!==null&&_[g].destructorFunction===void 0)return!0;return!1}function $n(_,g,C,B,F,H){var X=g.length;X<2&&le("argTypes array size mismatch! Must at least get return value and 'this' types!");var L=g[1]!==null&&C!==null,q=ki(g),ee=g[0].name!=="void",Z=X-2,Ce=new Array(Z),Be=[],De=[],He=function(...Et){Et.length!==Z&&le(`function ${_} called with ${Et.length} arguments, expected ${Z}`),De.length=0;var ct;Be.length=L?2:1,Be[0]=F,L&&(ct=g[1].toWireType(De,this),Be[1]=ct);for(var qe=0;qe<Z;++qe)Ce[qe]=g[qe+2].toWireType(De,Et[qe]),Be.push(Ce[qe]);var fr=B(...Be);function xe(wt){if(q)Pn(De);else for(var pt=L?1:2;pt<g.length;pt++){var gr=pt===1?ct:Ce[pt-2];g[pt].destructorFunction!==null&&g[pt].destructorFunction(gr)}if(ee)return g[0].fromWireType(wt)}return xe(fr)};return br(_,He)}var xi=(_,g,C,B,F,H)=>{var X=zn(g,C);F=vt(B,F),Ot([],[_],L=>{L=L[0];var q=`constructor ${L.name}`;if(L.registeredClass.constructor_body===void 0&&(L.registeredClass.constructor_body=[]),L.registeredClass.constructor_body[g-1]!==void 0)throw new Gt(`Cannot register multiple constructors with identical number of parameters (${g-1}) for class '${L.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return L.registeredClass.constructor_body[g-1]=()=>{Tr(`Cannot construct ${L.name} due to unbound types`,X)},Ot([],X,ee=>(ee.splice(1,0,null),L.registeredClass.constructor_body[g-1]=$n(q,ee,null,F,H),[])),[]})},Ui=_=>{_=_.trim();let g=_.indexOf("(");return g!==-1?_.substr(0,g):_},Jn=(_,g,C,B,F,H,X,L,q)=>{var ee=zn(C,B);g=V(g),g=Ui(g),H=vt(F,H),Ot([],[_],Z=>{Z=Z[0];var Ce=`${Z.name}.${g}`;g.startsWith("@@")&&(g=Symbol[g.substring(2)]),L&&Z.registeredClass.pureVirtualFunctions.push(g);function Be(){Tr(`Cannot call ${Ce} due to unbound types`,ee)}var De=Z.registeredClass.instancePrototype,He=De[g];return He===void 0||He.overloadTable===void 0&&He.className!==Z.name&&He.argCount===C-2?(Be.argCount=C-2,Be.className=Z.name,De[g]=Be):(Tt(De,g,Ce),De[g].overloadTable[C-2]=Be),Ot([],ee,Et=>{var ct=$n(Ce,Et,Z,H,X,q);return De[g].overloadTable===void 0?(ct.argCount=C-2,De[g]=ct):De[g].overloadTable[C-2]=ct,[]}),[]})},_e=(_,g,C)=>(_ instanceof Object||le(`${C} with invalid "this": ${_}`),_ instanceof g.registeredClass.constructor||le(`${C} incompatible with "this" of type ${_.constructor.name}`),_.$$.ptr||le(`cannot call emscripten binding method ${C} on deleted object`),ar(_.$$.ptr,_.$$.ptrType.registeredClass,g.registeredClass)),me=(_,g,C,B,F,H,X,L,q,ee)=>{g=V(g),F=vt(B,F),Ot([],[_],Z=>{Z=Z[0];var Ce=`${Z.name}.${g}`,Be={get(){Tr(`Cannot access ${Ce} due to unbound types`,[C,X])},enumerable:!0,configurable:!0};return q?Be.set=()=>Tr(`Cannot access ${Ce} due to unbound types`,[C,X]):Be.set=De=>le(Ce+" is a read-only property"),Object.defineProperty(Z.registeredClass.instancePrototype,g,Be),Ot([],q?[C,X]:[C],De=>{var He=De[0],Et={get(){var qe=_e(this,Z,Ce+" getter");return He.fromWireType(F(H,qe))},enumerable:!0};if(q){q=vt(L,q);var ct=De[1];Et.set=function(qe){var fr=_e(this,Z,Ce+" setter"),xe=[];q(ee,fr,ct.toWireType(xe,qe)),Pn(xe)}}return Object.defineProperty(Z.registeredClass.instancePrototype,g,Et),[]}),[]})},dt=[],Pe=[],yt=_=>{_>9&&--Pe[_+1]===0&&(Pe[_]=void 0,dt.push(_))},Ni=()=>Pe.length/2-5-dt.length,Kn=()=>{Pe.push(0,1,void 0,1,null,1,!0,1,!1,1),N.count_emval_handles=Ni},ie={toValue:_=>(_||le("Cannot use deleted val. handle = "+_),Pe[_]),toHandle:_=>{switch(_){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let g=dt.pop()||Pe.length;return Pe[g]=_,Pe[g+1]=1,g}}}},se={name:"emscripten::val",fromWireType:_=>{var g=ie.toValue(_);return yt(_),g},toWireType:(_,g)=>ie.toHandle(g),argPackAdvance:Yt,readValueFromPointer:Lr,destructorFunction:null},ji=_=>Ct(_,se),An=_=>{if(_===null)return"null";var g=typeof _;return g==="object"||g==="array"||g==="function"?_.toString():""+_},f=(_,g)=>{switch(g){case 4:return function(C){return this.fromWireType(Hn[C>>2])};case 8:return function(C){return this.fromWireType(jt[C>>3])};default:throw new TypeError(`invalid float width (${g}): ${_}`)}},l=(_,g,C)=>{g=V(g),Ct(_,{name:g,fromWireType:B=>B,toWireType:(B,F)=>F,argPackAdvance:Yt,readValueFromPointer:f(g,C),destructorFunction:null})},Me=(_,g,C)=>{switch(g){case 1:return C?B=>Nt[B]:B=>Xe[B];case 2:return C?B=>mr[B>>1]:B=>mt[B>>1];case 4:return C?B=>Cr[B>>2]:B=>Ie[B>>2];default:throw new TypeError(`invalid integer width (${g}): ${_}`)}},Li=(_,g,C,B,F)=>{g=V(g),F===-1&&(F=4294967295);var H=Z=>Z;if(B===0){var X=32-8*C;H=Z=>Z<<X>>>X}var L=g.includes("unsigned"),q=(Z,Ce)=>{},ee;L?ee=function(Z,Ce){return q(Ce,this.name),Ce>>>0}:ee=function(Z,Ce){return q(Ce,this.name),Ce},Ct(_,{name:g,fromWireType:H,toWireType:ee,argPackAdvance:Yt,readValueFromPointer:Me(g,C,B!==0),destructorFunction:null})},Hi=(_,g,C)=>{var B=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],F=B[g];function H(X){var L=Ie[X>>2],q=Ie[X+4>>2];return new F(Nt.buffer,q,L)}C=V(C),Ct(_,{name:C,fromWireType:H,argPackAdvance:Yt,readValueFromPointer:H},{ignoreDuplicateRegistrations:!0})},Gi=(_,g,C,B)=>{if(!(B>0))return 0;for(var F=C,H=C+B-1,X=0;X<_.length;++X){var L=_.charCodeAt(X);if(L>=55296&&L<=57343){var q=_.charCodeAt(++X);L=65536+((L&1023)<<10)|q&1023}if(L<=127){if(C>=H)break;g[C++]=L}else if(L<=2047){if(C+1>=H)break;g[C++]=192|L>>6,g[C++]=128|L&63}else if(L<=65535){if(C+2>=H)break;g[C++]=224|L>>12,g[C++]=128|L>>6&63,g[C++]=128|L&63}else{if(C+3>=H)break;g[C++]=240|L>>18,g[C++]=128|L>>12&63,g[C++]=128|L>>6&63,g[C++]=128|L&63}}return g[C]=0,C-F},Yi=(_,g,C)=>Gi(_,Xe,g,C),Xi=_=>{for(var g=0,C=0;C<_.length;++C){var B=_.charCodeAt(C);B<=127?g++:B<=2047?g+=2:B>=55296&&B<=57343?(g+=4,++C):g+=3}return g},Zn=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Wi=(_,g,C)=>{for(var B=g+C,F=g;_[F]&&!(F>=B);)++F;if(F-g>16&&_.buffer&&Zn)return Zn.decode(_.subarray(g,F));for(var H="";g<F;){var X=_[g++];if(!(X&128)){H+=String.fromCharCode(X);continue}var L=_[g++]&63;if((X&224)==192){H+=String.fromCharCode((X&31)<<6|L);continue}var q=_[g++]&63;if((X&240)==224?X=(X&15)<<12|L<<6|q:X=(X&7)<<18|L<<12|q<<6|_[g++]&63,X<65536)H+=String.fromCharCode(X);else{var ee=X-65536;H+=String.fromCharCode(55296|ee>>10,56320|ee&1023)}}return H},cn=(_,g)=>_?Wi(Xe,_,g):"",sr=(_,g)=>{g=V(g);var C=g==="std::string";Ct(_,{name:g,fromWireType(B){var F=Ie[B>>2],H=B+4,X;if(C)for(var L=H,q=0;q<=F;++q){var ee=H+q;if(q==F||Xe[ee]==0){var Z=ee-L,Ce=cn(L,Z);X===void 0?X=Ce:(X+=String.fromCharCode(0),X+=Ce),L=ee+1}}else{for(var Be=new Array(F),q=0;q<F;++q)Be[q]=String.fromCharCode(Xe[H+q]);X=Be.join("")}return Qt(B),X},toWireType(B,F){F instanceof ArrayBuffer&&(F=new Uint8Array(F));var H,X=typeof F=="string";X||F instanceof Uint8Array||F instanceof Uint8ClampedArray||F instanceof Int8Array||le("Cannot pass non-string to std::string"),C&&X?H=Xi(F):H=F.length;var L=Jt(4+H+1),q=L+4;if(Ie[L>>2]=H,C&&X)Yi(F,q,H+1);else if(X)for(var ee=0;ee<H;++ee){var Z=F.charCodeAt(ee);Z>255&&(Qt(q),le("String has UTF-16 code units that do not fit in 8 bits")),Xe[q+ee]=Z}else for(var ee=0;ee<H;++ee)Xe[q+ee]=F[ee];return B!==null&&B.push(Qt,L),L},argPackAdvance:Yt,readValueFromPointer:Lr,destructorFunction(B){Qt(B)}})},Ar=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,rt=(_,g)=>{for(var C=_,B=C>>1,F=B+g/2;!(B>=F)&&mt[B];)++B;if(C=B<<1,C-_>32&&Ar)return Ar.decode(Xe.subarray(_,C));for(var H="",X=0;!(X>=g/2);++X){var L=mr[_+X*2>>1];if(L==0)break;H+=String.fromCharCode(L)}return H},ft=(_,g,C)=>{if(C!=null||(C=2147483647),C<2)return 0;C-=2;for(var B=g,F=C<_.length*2?C/2:_.length,H=0;H<F;++H){var X=_.charCodeAt(H);mr[g>>1]=X,g+=2}return mr[g>>1]=0,g-B},Vi=_=>_.length*2,zi=(_,g)=>{for(var C=0,B="";!(C>=g/4);){var F=Cr[_+C*4>>2];if(F==0)break;if(++C,F>=65536){var H=F-65536;B+=String.fromCharCode(55296|H>>10,56320|H&1023)}else B+=String.fromCharCode(F)}return B},un=(_,g,C)=>{if(C!=null||(C=2147483647),C<4)return 0;for(var B=g,F=B+C-4,H=0;H<_.length;++H){var X=_.charCodeAt(H);if(X>=55296&&X<=57343){var L=_.charCodeAt(++H);X=65536+((X&1023)<<10)|L&1023}if(Cr[g>>2]=X,g+=4,g+4>F)break}return Cr[g>>2]=0,g-B},cr=_=>{for(var g=0,C=0;C<_.length;++C){var B=_.charCodeAt(C);B>=55296&&B<=57343&&++C,g+=4}return g},Gr=(_,g,C)=>{C=V(C);var B,F,H,X;g===2?(B=rt,F=ft,X=Vi,H=L=>mt[L>>1]):g===4&&(B=zi,F=un,X=cr,H=L=>Ie[L>>2]),Ct(_,{name:C,fromWireType:L=>{for(var q=Ie[L>>2],ee,Z=L+4,Ce=0;Ce<=q;++Ce){var Be=L+4+Ce*g;if(Ce==q||H(Be)==0){var De=Be-Z,He=B(Z,De);ee===void 0?ee=He:(ee+=String.fromCharCode(0),ee+=He),Z=Be+g}}return Qt(L),ee},toWireType:(L,q)=>{typeof q!="string"&&le(`Cannot pass non-string to C++ string type ${C}`);var ee=X(q),Z=Jt(4+ee+g);return Ie[Z>>2]=ee/g,F(q,Z+4,ee+g),L!==null&&L.push(Qt,Z),Z},argPackAdvance:Yt,readValueFromPointer:Lr,destructorFunction(L){Qt(L)}})},qn=(_,g)=>{g=V(g),Ct(_,{isVoid:!0,name:g,argPackAdvance:0,fromWireType:()=>{},toWireType:(C,B)=>{}})},ei=(_,g,C)=>Xe.copyWithin(_,g,g+C),ke=(_,g)=>{var C=st[_];return C===void 0&&le(`${g} has unknown type ${Ft(_)}`),C},je=(_,g,C)=>{var B=[],F=_.toWireType(B,C);return B.length&&(Ie[g>>2]=ie.toHandle(B)),F},$i=(_,g,C)=>(_=ie.toValue(_),g=ke(g,"emval::as"),je(g,C,_)),Yr={},ur=_=>{var g=Yr[_];return g===void 0?V(_):g},kt=[],Xr=(_,g,C,B,F)=>(_=kt[_],g=ie.toValue(g),C=ur(C),_(g,g[C],B,F)),Ji=_=>{var g=kt.length;return kt.push(_),g},xt=(_,g)=>{for(var C=new Array(_),B=0;B<_;++B)C[B]=ke(Ie[g+B*4>>2],"parameter "+B);return C},nt=Reflect.construct,ae=(_,g,C)=>{var B=xt(_,g),F=B.shift();_--;var H=new Array(_),X=(q,ee,Z,Ce)=>{for(var Be=0,De=0;De<_;++De)H[De]=B[De].readValueFromPointer(Ce+Be),Be+=B[De].argPackAdvance;var He=C===1?nt(ee,H):ee.apply(q,H);return je(F,Z,He)},L=`methodCaller<(${B.map(q=>q.name).join(", ")}) => ${F.name}>`;return Ji(br(L,X))},Ae=_=>{_>9&&(Pe[_+1]+=1)},Rn=_=>{var g=ie.toValue(_);Pn(g),yt(_)},ti=(_,g)=>{_=ke(_,"_emval_take_value");var C=_.readValueFromPointer(g);return ie.toHandle(C)},zt=_=>{mn("OOM")},$t=_=>{var g=Xe.length;_>>>=0,zt(_)};K(),Gt=N.BindingError=class extends Error{constructor(g){super(g),this.name="BindingError"}},an=N.InternalError=class extends Error{constructor(g){super(g),this.name="InternalError"}},Bt(),ue(),Vn(),Vt=N.UnboundTypeError=Qn(Error,"UnboundTypeError"),Kn();var ln={v:ze,p:xr,o:on,t:Qi,x:Fi,w:xi,h:Jn,k:me,s:ji,n:l,g:Li,a:Hi,m:sr,l:Gr,u:qn,r:ei,j:$i,e:Xr,c:yt,f:ae,d:Ae,b:Rn,i:ti,q:$t},gt=be(),dn=()=>(dn=gt.z)(),Jt=_=>(Jt=gt.A)(_),fn=_=>(fn=gt.C)(_),Qt=_=>(Qt=gt.D)(_),Kt=_=>(Kt=gt.E)(_),Wr=N._vertexShaderSource=10192,lr;bt=function _(){lr||dr(),lr||(bt=_)};function dr(){if(Ze>0||(uo(),Ze>0))return;function _(){lr||(lr=!0,N.calledRun=!0,!tt&&(Oi(),Ue(N),N.onRuntimeInitialized&&N.onRuntimeInitialized(),Mr()))}N.setStatus?(N.setStatus("Running..."),setTimeout(function(){setTimeout(function(){N.setStatus("")},1),_()},1)):_()}if(N.preInit)for(typeof N.preInit=="function"&&(N.preInit=[N.preInit]);N.preInit.length>0;)N.preInit.pop()();return dr(),he=ot,he}})(),Oc=Bu;var xo=class{constructor(x,n){Ge(this,"canvas");Ge(this,"locateFile");Ge(this,"_glName");Ge(this,"_solutionWasm");Ge(this,"ctx");Ge(this,"fileDownloader");Ge(this,"startTime");Ge(this,"lastTimestamp");Ge(this,"pl",{onResults:x=>this.onResults(x.get(0).glName)});this.locateFile=he=>`${x}/${he}`.replace(/([^:]\/)\/+/g,"$1"),this.fileDownloader=n}bindTexture(){var x;(x=this.ctx)==null||x.activeTexture(this.ctx.TEXTURE0),this.bindTexture2d(this._glName)}async initialize(){this._solutionWasm=new this.SolutionWasm;let x=new this.StringList;x.push_back("segmentation_mask");let n=this.PacketListener.implement(this.pl);return this._solutionWasm.attachMultiListener(x,n),x.delete(),this._solutionWasm.loadGraph(await this.fileDownloader.download(this.locateFile("selfie_segmentation.binarypb"),{type:"arraybuffer"})),this}setCanvas(x){this.canvas=x,this.createContext(x,!0,!0,{}),this._glName=this.createTexture()}fetchResponse(x){return this.fileDownloader.downloadWithFetch(x,"fetch-response")}loadWasm(x,n){return this.fileDownloader.loadWasm(x,n)}async changeModel(x="selfie_segmentation_landscape.tflite"){x=typeof x=="string"?await this.fileDownloader.download(this.locateFile(x),{type:"arraybuffer"}):x,this._solutionWasm.overrideFile("third_party/mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite",x);let n=new this.GraphOptionChangeRequestList;n.push_back({calculatorIndex:1,calculatorName:"",calculatorType:"GlScalerCalculator",fieldName:"flip_horizontal",valueBoolean:!1,valueNumber:0,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value",valueBoolean:!1,valueNumber:1,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"InferenceCalculator",calculatorName:"",fieldName:"use_cpu_inference",valueBoolean:!1,valueNumber:0,valueString:""}),this._solutionWasm.changeOptions(n),this.startTime=Date.now()}send(x,n){let he=new this.PacketDataList,N=Date.now()-this.startTime;this.lastTimestamp&&this.lastTimestamp>=N?this.lastTimestamp++:this.lastTimestamp=N,he.pushTexture2d({stream:"input_frames_gpu",timestamp:this.lastTimestamp,glName:this._glName,width:x,height:n}),this._solutionWasm.send(he),he.delete()}close(){var x,n,he;(x=this.canvas)==null||delete x.getContext,delete this.readyPromiseResolve,delete this.readyPromiseReject,this.pl.onResults=null,delete this.onResults,(n=this.deleteTexture)==null||n.call(this,this._glName),(he=this._solutionWasm)==null||he.delete();for(let N of Object.keys(this))delete this[N]}};var Pr=typeof navigator=="undefined"?"":navigator.userAgent,fe=J=>new RegExp(J,"i").test(Pr),et=J=>{if(fe(J)){let x=new RegExp(`${J}\\/([\\d.]+)`),n=Pr.match(x);if(n&&n[1])return n[1]}return""},nc=J=>{if(fe(J)){let x=new RegExp(`${J}\\/(\\d+)`),n=Pr.match(x);if(n&&n[1])return parseFloat(n[1])}return NaN},Bc=/AppleWebKit\/([\d.]+)/i.exec(Pr),Tu=Bc?parseFloat(Bc[1]):NaN,vc=fe("iPad"),Qc=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&fe("Macintosh"),Pc=fe("iPhone")&&!vc,vu=fe("iPod"),Rc=Pc||vc||vu||Qc,Uo=fe("Android"),Sc=function(){if(Uo){let J=Pr.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(J){let x=J[1]&&parseFloat(J[1]),n=J[2]&&parseFloat(J[2]);if(x&&n)return parseFloat(`${J[1]}.${J[2]}`);if(x)return x}}return NaN}(),El=Uo&&fe("webkit")&&Sc<2.3,pl=Uo&&Sc<5&&Tu<537,Qu=fe("Firefox"),Pu=et("Firefox"),_l=nc("Firefox"),Mc=fe("Edge"),Ru=et("Edge"),Fc=fe("Edg"),Su=et("Edg"),hl=nc("Edg"),kc=fe("SogouMobileBrowser"),Mu=et("SogouMobileBrowser"),xc=fe("MetaSr\\s"),Fu=et("MetaSr\\s"),Ln=fe("TBS"),ku=et("TBS"),Uc=fe("XWEB"),xu=et("XWEB"),Il=fe("MSIE\\s8\\.0"),Uu=fe("MSIE\\/\\d+"),ml=function(){if(Uu){let J=/MSIE\s(\d+)\.\d/.exec(Pr),x=J&&parseFloat(J[1]);return!x&&/Trident\/7.0/i.test(Pr)&&/rv:11.0/.test(Pr)&&(x=11),x}return NaN}(),Nu=fe("(micromessenger|webbrowser)"),ju=et("MicroMessenger"),ic=!Ln&&fe("MQQBrowser")&&fe("COVC"),oc=!Ln&&fe("MQQBrowser")&&!fe("COVC"),Tc=oc||ic?et("MQQBrowser"):"",Nc=!Ln&&fe(" QQBrowser"),Lu=et(" QQBrowser"),jc=!Ln&&fe("QQBrowserLite"),Hu=et("QQBrowserLite"),Lc=!Ln&&fe("MQBHD"),Gu=et("MQBHD"),Cl=fe("Windows"),yl=!Rc&&fe("MAC OS X"),wl=!Uo&&fe("Linux"),Dl=fe("CrOS"),bl=fe("MicroMessenger"),Ol=fe("UCBrowser"),Bl=fe("Electron"),Hc=fe("MiuiBrowser"),Yu=et("MiuiBrowser"),Gc=fe("HuaweiBrowser"),Tl=fe("Huawei"),Xu=et("HuaweiBrowser"),Yc=fe("SamsungBrowser"),Wu=et("SamsungBrowser"),Xc=fe("HeyTapBrowser"),Vu=et("HeyTapBrowser"),Wc=fe("VivoBrowser"),zu=et("VivoBrowser"),$u=()=>nc("Chrome"),Vc=fe("Chrome"),Ju=!Mc&&!xc&&!kc&&!Ln&&!Uc&&!Fc&&!Nc&&!Hc&&!Gc&&!Yc&&!Xc&&!Wc&&Vc,vl=fe("HeadlessChrome"),zc=$u(),Ku=et("Chrome"),Zu=!Vc&&!oc&&!ic&&!jc&&!Lc&&fe("Safari");var $c=et("Version"),Ql=/Android.*(wv|.0.0.0)/.test(Pr),Jc=(()=>{if(Qc)return $c;if(Rc){let J=Pr.match(/OS (\d+)_(\d+)/i);if(J&&J[1]){let x=J[1];return J[2]&&(x+=`.${J[2]}`),x}}return""})(),Pl=Number(Jc.split(".")[0]);var Rl=(()=>{let J=Number(Jc.split(".")[0]);return J===14||J===13})(),Sl=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",Ml=(()=>{let J;return()=>{if(typeof J=="undefined")try{J=!!window.localStorage}catch(x){J=!1}return J}})(),Fl=qu();function qu(){let J=new Map([[Qu,["Firefox",Pu]],[Fc,["Edg",Su]],[Ju,["Chrome",Ku]],[Zu,["Safari",$c]],[Ln,["TBS",ku]],[Uc,["XWEB",xu]],[Nu&&Pc,["WeChat",ju]],[Nc,["QQ(Win)",Lu]],[oc,["QQ(Mobile)",Tc]],[ic,["QQ(Mobile X5)",Tc]],[jc,["QQ(Mac)",Hu]],[Lc,["QQ(iPad)",Gu]],[Hc,["MI",Yu]],[Gc,["HW",Xu]],[Yc,["Samsung",Wu]],[Xc,["OPPO",Vu]],[Wc,["VIVO",zu]],[Mc,["EDGE",Ru]],[kc,["SogouMobile",Mu]],[xc,["Sogou",Fu]]]),x="unknown",n="unknown";return J.has(!0)&&([x,n]=J.get(!0)),{name:x,version:n}}var ac=570703;var No=0,jo=class jo{constructor(x){this.core=x;Ge(this,"seq");Ge(this,"_core");Ge(this,"log");Ge(this,"preLoadPromise");Ge(this,"startResolve");Ge(this,"startReject");Ge(this,"mediaPipeSolutions");Ge(this,"assetsPath");Ge(this,"currentType");Ge(this,"onAbort");No=No+1,this.seq=No,this._core=x,this.log=x.log.createChild({id:`${this.getAlias()}${No}`}),this.log.info("created"),x.assetsPath&&(this.preLoadPromise=this.preload(x.assetsPath))}static isSupported(){if(zc<90)return!1;let n=document.createElement("canvas").getContext("webgl2");return!!(n&&n instanceof WebGL2RenderingContext)}async preload(x="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/"){try{this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await Oc()),this.assetsPath=`${x}/selfie_segmentation/`;let n=new xo(this.assetsPath,this._core.fileDownloader);n.onAbort=he=>{var N;this.core.kvStatManager.addEnum({key:ac,value:this.getKVTypeValue(!0)}),this.log.error("mediaPipeSolutions abort",he),this.core.clearStarted(this,this.getGroup()),this.stop(),(N=this.onAbort)==null||N.call(this,he)},n.print=this.log.info.bind(this.log),n.printErr=this.log.warn.bind(this.log),this.mediaPipeSolutions=await(this.core.rtcDectection.isSIMDSupported()?Dc:bc)(n),await this.mediaPipeSolutions.initialize(),await this._core.room.videoManager.initVirtualBackground(this.mediaPipeSolutions)}catch(n){let{RtcError:he,ErrorCode:N}=this._core.errorModule;throw new he({code:N.INVALID_OPERATION,message:`VirtualBackground preload error, please check your assetsPath. detail: ${n}`})}}getName(){return jo.Name}getAlias(){return"vb"}getValidateRule(x){switch(x){case"start":return Cc(this._core);case"update":return yc(this._core);case"stop":return wc(this._core)}}getGroup(){return"vb"}getKVTypeValue(x=!1){switch(this.currentType){case"blur":return x?1:0;case"image":return x?3:2;case"green":return x?5:4}}async start(x){let{type:n="blur",src:he,blurLevel:N=3,onAbort:Ue}=x;this.currentType=n,this.onAbort=Ue,this.core.kvStatManager.addEnum({key:ac,value:this.getKVTypeValue()});let{auth:we,sign:ot,timestamp:ht}=await mc({sdkAppId:x.sdkAppId,userId:x.userId,userSig:x.userSig,core:this._core});if(!we){let{RtcError:$e,ErrorCode:Ye,ErrorCodeDictionary:Ve}=this._core.errorModule;throw new $e({code:Ye.SERVER_ERROR,extraCode:Ve.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:"https://cloud.tencent.com/document/product/647/85386"}})}return this.preLoadPromise||(this.preLoadPromise=this.preload(this._core.assetsPath)),await this.preLoadPromise,this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:he,blurLevel:N,onAbort:$e=>{var Ye;this.core.clearStarted(this,this.getGroup()),this.stop(),delete this.preLoadPromise,(Ye=this.onAbort)==null||Ye.call(this,$e)}})}async update(x){let{type:n,src:he}=x;return n!==this.currentType&&(this.currentType=n,this.core.kvStatManager.addEnum({key:ac,value:this.getKVTypeValue()})),this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:he,blurLevel:x.blurLevel})}async stop(){return this.core.room.videoManager.setVirtualBackground()}};Ge(jo,"Name","VirtualBackground");var sc=jo;var Yl=sc;export{sc as VirtualBackground,Yl as default};
|