trtc-sdk-v5 5.15.0-beta.9 → 5.15.0-wasm.2
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/assets/av_processing.wasm +0 -0
- package/assets/debug-dialog.js +2 -2
- package/assets/worker.js +17 -0
- package/index.d.ts +15 -0
- package/package.json +4 -6
- package/plugins/cdn-streaming/cdn-streaming.esm.js +1 -1
- package/plugins/cdn-streaming/cdn-streaming.umd.js +1 -1
- package/plugins/cdn-streaming/package.json +1 -1
- package/plugins/chorus/chorus.esm.d.ts +2 -0
- package/plugins/chorus/package.json +1 -1
- package/plugins/cross-room/cross-room.esm.d.ts +2 -0
- package/plugins/cross-room/package.json +1 -1
- package/plugins/custom-encryption/package.json +1 -1
- package/plugins/device-detector/package.json +1 -1
- package/plugins/lebplayer/package.json +1 -1
- package/plugins/small-stream-auto-switcher/package.json +1 -1
- package/plugins/video-decoder/package.json +1 -1
- package/plugins/video-decoder/video-decoder.esm.d.ts +2 -1
- package/plugins/video-decoder/video-decoder.esm.js +1 -1
- package/plugins/video-decoder/video-decoder.umd.js +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/face-detection/face-detection.esm.d.ts +22 -0
- package/plugins/video-effect/face-detection/face-detection.esm.js +1 -0
- package/plugins/video-effect/face-detection/face-detection.umd.js +1 -0
- package/plugins/{fast-webrtc → video-effect/face-detection}/package.json +8 -8
- package/plugins/video-effect/video-mixer/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.umd.js +1 -1
- package/plugins/video-effect/watermark/package.json +1 -1
- package/plugins/voice-changer/package.json +1 -1
- package/trtc.esm.js +69 -45
- package/trtc.js +1 -1
- package/plugins/fast-webrtc/fast-webrtc.esm.d.ts +0 -27
- package/plugins/fast-webrtc/fast-webrtc.esm.js +0 -1
- package/plugins/fast-webrtc/fast-webrtc.umd.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(A,g){"object"==typeof exports&&"undefined"!=typeof module?module.exports=g():"function"==typeof define&&define.amd?define(g):(A="undefined"!=typeof globalThis?globalThis:A||self).VirtualBackground=g()}(this,(function(){"use strict";function A(A,g){(null==g||g>A.length)&&(g=A.length);for(var t=0,I=Array(g);t<g;t++)I[t]=A[t];return I}function g(A,g,t,I,e,r,C){try{var B=A[r](C),n=B.value}catch(A){return void t(A)}B.done?g(n):Promise.resolve(n).then(I,e)}function t(A){return function(){var t=this,I=arguments;return new Promise((function(e,r){var C=A.apply(t,I);function B(A){g(C,e,r,B,n,"next",A)}function n(A){g(C,e,r,B,n,"throw",A)}B(void 0)}))}}function I(A,g,t){return g=B(g),function(A,g){if(g&&("object"==typeof g||"function"==typeof g))return g;if(void 0!==g)throw new TypeError("Derived constructors may only return object or undefined");return function(A){if(void 0===A)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return A}(A)}(A,o()?Reflect.construct(g,t||[],B(A).constructor):g.apply(A,t))}function e(A,g){if(!(A instanceof g))throw new TypeError("Cannot call a class as a function")}function r(A,g){for(var t=0;t<g.length;t++){var I=g[t];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(A,a(I.key),I)}}function C(A,g,t){return g&&r(A.prototype,g),t&&r(A,t),Object.defineProperty(A,"prototype",{writable:!1}),A}function B(A){return B=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(A){return A.__proto__||Object.getPrototypeOf(A)},B(A)}function n(A,g){if("function"!=typeof g&&null!==g)throw new TypeError("Super expression must either be null or a function");A.prototype=Object.create(g&&g.prototype,{constructor:{value:A,writable:!0,configurable:!0}}),Object.defineProperty(A,"prototype",{writable:!1}),g&&Q(A,g)}function o(){try{var A=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(A){}return(o=function(){return!!A})()}function i(){i=function(){return g};var A,g={},t=Object.prototype,I=t.hasOwnProperty,e=Object.defineProperty||function(A,g,t){A[g]=t.value},r="function"==typeof Symbol?Symbol:{},C=r.iterator||"@@iterator",B=r.asyncIterator||"@@asyncIterator",n=r.toStringTag||"@@toStringTag";function o(A,g,t){return Object.defineProperty(A,g,{value:t,enumerable:!0,configurable:!0,writable:!0}),A[g]}try{o({},"")}catch(A){o=function(A,g,t){return A[g]=t}}function Q(A,g,t,I){var r=g&&g.prototype instanceof l?g:l,C=Object.create(r.prototype),B=new R(I||[]);return e(C,"_invoke",{value:M(A,t,B)}),C}function E(A,g,t){try{return{type:"normal",arg:A.call(g,t)}}catch(A){return{type:"throw",arg:A}}}g.wrap=Q;var a="suspendedStart",s="suspendedYield",c="executing",u="completed",h={};function l(){}function f(){}function y(){}var d={};o(d,C,(function(){return this}));var D=Object.getPrototypeOf,w=D&&D(D(b([])));w&&w!==t&&I.call(w,C)&&(d=w);var p=y.prototype=l.prototype=Object.create(d);function G(A){["next","throw","return"].forEach((function(g){o(A,g,(function(A){return this._invoke(g,A)}))}))}function N(A,g){function t(e,r,C,B){var n=E(A[e],A,r);if("throw"!==n.type){var o=n.arg,i=o.value;return i&&"object"==typeof i&&I.call(i,"__await")?g.resolve(i.__await).then((function(A){t("next",A,C,B)}),(function(A){t("throw",A,C,B)})):g.resolve(i).then((function(A){o.value=A,C(o)}),(function(A){return t("throw",A,C,B)}))}B(n.arg)}var r;e(this,"_invoke",{value:function(A,I){function e(){return new g((function(g,e){t(A,I,g,e)}))}return r=r?r.then(e,e):e()}})}function M(g,t,I){var e=a;return function(r,C){if(e===c)throw Error("Generator is already running");if(e===u){if("throw"===r)throw C;return{value:A,done:!0}}for(I.method=r,I.arg=C;;){var B=I.delegate;if(B){var n=F(B,I);if(n){if(n===h)continue;return n}}if("next"===I.method)I.sent=I._sent=I.arg;else if("throw"===I.method){if(e===a)throw e=u,I.arg;I.dispatchException(I.arg)}else"return"===I.method&&I.abrupt("return",I.arg);e=c;var o=E(g,t,I);if("normal"===o.type){if(e=I.done?u:s,o.arg===h)continue;return{value:o.arg,done:I.done}}"throw"===o.type&&(e=u,I.method="throw",I.arg=o.arg)}}}function F(g,t){var I=t.method,e=g.iterator[I];if(e===A)return t.delegate=null,"throw"===I&&g.iterator.return&&(t.method="return",t.arg=A,F(g,t),"throw"===t.method)||"return"!==I&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+I+"' method")),h;var r=E(e,g.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,h;var C=r.arg;return C?C.done?(t[g.resultName]=C.value,t.next=g.nextLoc,"return"!==t.method&&(t.method="next",t.arg=A),t.delegate=null,h):C:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function v(A){var g={tryLoc:A[0]};1 in A&&(g.catchLoc=A[1]),2 in A&&(g.finallyLoc=A[2],g.afterLoc=A[3]),this.tryEntries.push(g)}function m(A){var g=A.completion||{};g.type="normal",delete g.arg,A.completion=g}function R(A){this.tryEntries=[{tryLoc:"root"}],A.forEach(v,this),this.reset(!0)}function b(g){if(g||""===g){var t=g[C];if(t)return t.call(g);if("function"==typeof g.next)return g;if(!isNaN(g.length)){var e=-1,r=function t(){for(;++e<g.length;)if(I.call(g,e))return t.value=g[e],t.done=!1,t;return t.value=A,t.done=!0,t};return r.next=r}}throw new TypeError(typeof g+" is not iterable")}return f.prototype=y,e(p,"constructor",{value:y,configurable:!0}),e(y,"constructor",{value:f,configurable:!0}),f.displayName=o(y,n,"GeneratorFunction"),g.isGeneratorFunction=function(A){var g="function"==typeof A&&A.constructor;return!!g&&(g===f||"GeneratorFunction"===(g.displayName||g.name))},g.mark=function(A){return Object.setPrototypeOf?Object.setPrototypeOf(A,y):(A.__proto__=y,o(A,n,"GeneratorFunction")),A.prototype=Object.create(p),A},g.awrap=function(A){return{__await:A}},G(N.prototype),o(N.prototype,B,(function(){return this})),g.AsyncIterator=N,g.async=function(A,t,I,e,r){void 0===r&&(r=Promise);var C=new N(Q(A,t,I,e),r);return g.isGeneratorFunction(t)?C:C.next().then((function(A){return A.done?A.value:C.next()}))},G(p),o(p,n,"Generator"),o(p,C,(function(){return this})),o(p,"toString",(function(){return"[object Generator]"})),g.keys=function(A){var g=Object(A),t=[];for(var I in g)t.push(I);return t.reverse(),function A(){for(;t.length;){var I=t.pop();if(I in g)return A.value=I,A.done=!1,A}return A.done=!0,A}},g.values=b,R.prototype={constructor:R,reset:function(g){if(this.prev=0,this.next=0,this.sent=this._sent=A,this.done=!1,this.delegate=null,this.method="next",this.arg=A,this.tryEntries.forEach(m),!g)for(var t in this)"t"===t.charAt(0)&&I.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=A)},stop:function(){this.done=!0;var A=this.tryEntries[0].completion;if("throw"===A.type)throw A.arg;return this.rval},dispatchException:function(g){if(this.done)throw g;var t=this;function e(I,e){return B.type="throw",B.arg=g,t.next=I,e&&(t.method="next",t.arg=A),!!e}for(var r=this.tryEntries.length-1;r>=0;--r){var C=this.tryEntries[r],B=C.completion;if("root"===C.tryLoc)return e("end");if(C.tryLoc<=this.prev){var n=I.call(C,"catchLoc"),o=I.call(C,"finallyLoc");if(n&&o){if(this.prev<C.catchLoc)return e(C.catchLoc,!0);if(this.prev<C.finallyLoc)return e(C.finallyLoc)}else if(n){if(this.prev<C.catchLoc)return e(C.catchLoc,!0)}else{if(!o)throw Error("try statement without catch or finally");if(this.prev<C.finallyLoc)return e(C.finallyLoc)}}}},abrupt:function(A,g){for(var t=this.tryEntries.length-1;t>=0;--t){var e=this.tryEntries[t];if(e.tryLoc<=this.prev&&I.call(e,"finallyLoc")&&this.prev<e.finallyLoc){var r=e;break}}r&&("break"===A||"continue"===A)&&r.tryLoc<=g&&g<=r.finallyLoc&&(r=null);var C=r?r.completion:{};return C.type=A,C.arg=g,r?(this.method="next",this.next=r.finallyLoc,h):this.complete(C)},complete:function(A,g){if("throw"===A.type)throw A.arg;return"break"===A.type||"continue"===A.type?this.next=A.arg:"return"===A.type?(this.rval=this.arg=A.arg,this.method="return",this.next="end"):"normal"===A.type&&g&&(this.next=g),h},finish:function(A){for(var g=this.tryEntries.length-1;g>=0;--g){var t=this.tryEntries[g];if(t.finallyLoc===A)return this.complete(t.completion,t.afterLoc),m(t),h}},catch:function(A){for(var g=this.tryEntries.length-1;g>=0;--g){var t=this.tryEntries[g];if(t.tryLoc===A){var I=t.completion;if("throw"===I.type){var e=I.arg;m(t)}return e}}throw Error("illegal catch attempt")},delegateYield:function(g,t,I){return this.delegate={iterator:b(g),resultName:t,nextLoc:I},"next"===this.method&&(this.arg=A),h}},g}function Q(A,g){return Q=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(A,g){return A.__proto__=g,A},Q(A,g)}function E(A,g){return function(A){if(Array.isArray(A))return A}(A)||function(A,g){var t=null==A?null:"undefined"!=typeof Symbol&&A[Symbol.iterator]||A["@@iterator"];if(null!=t){var I,e,r,C,B=[],n=!0,o=!1;try{if(r=(t=t.call(A)).next,0===g);else for(;!(n=(I=r.call(t)).done)&&(B.push(I.value),B.length!==g);n=!0);}catch(A){o=!0,e=A}finally{try{if(!n&&null!=t.return&&(C=t.return(),Object(C)!==C))return}finally{if(o)throw e}}return B}}(A,g)||c(A,g)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(A){var g=function(A,g){if("object"!=typeof A||!A)return A;var t=A[Symbol.toPrimitive];if(void 0!==t){var I=t.call(A,g);if("object"!=typeof I)return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(A)}(A,"string");return"symbol"==typeof g?g:g+""}function s(A){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&"function"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},s(A)}function c(g,t){if(g){if("string"==typeof g)return A(g,t);var I={}.toString.call(g).slice(8,-1);return"Object"===I&&g.constructor&&(I=g.constructor.name),"Map"===I||"Set"===I?Array.from(g):"Arguments"===I||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(I)?A(g,t):void 0}}function u(A){var g="function"==typeof Map?new Map:void 0;return u=function(A){if(null===A||!function(A){try{return-1!==Function.toString.call(A).indexOf("[native code]")}catch(g){return"function"==typeof A}}(A))return A;if("function"!=typeof A)throw new TypeError("Super expression must either be null or a function");if(void 0!==g){if(g.has(A))return g.get(A);g.set(A,t)}function t(){return function(A,g,t){if(o())return Reflect.construct.apply(null,arguments);var I=[null];I.push.apply(I,g);var e=new(A.bind.apply(A,I));return t&&Q(e,t.prototype),e}(A,arguments,B(this).constructor)}return t.prototype=Object.create(A.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),Q(t,A)},u(A)}var h=Object.defineProperty,l=Object.defineProperties,f=Object.getOwnPropertyDescriptors,y=Object.getOwnPropertySymbols,d=Object.prototype.hasOwnProperty,D=Object.prototype.propertyIsEnumerable,w=function(A,g,t){return g in A?h(A,g,{enumerable:!0,configurable:!0,writable:!0,value:t}):A[g]=t},p=function(A,g){for(var t in g||(g={}))d.call(g,t)&&w(A,t,g[t]);if(y){var I,e=function(A,g){var t="undefined"!=typeof Symbol&&A[Symbol.iterator]||A["@@iterator"];if(!t){if(Array.isArray(A)||(t=c(A))||g){t&&(A=t);var I=0,e=function(){};return{s:e,n:function(){return I>=A.length?{done:!0}:{done:!1,value:A[I++]}},e:function(A){throw A},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,C=!0,B=!1;return{s:function(){t=t.call(A)},n:function(){var A=t.next();return C=A.done,A},e:function(A){B=!0,r=A},f:function(){try{C||null==t.return||t.return()}finally{if(B)throw r}}}}(y(g));try{for(e.s();!(I=e.n()).done;){t=I.value;D.call(g,t)&&w(A,t,g[t])}}catch(A){e.e(A)}finally{e.f()}}return A},G=function(A,g,t){return w(A,"symbol"!==s(g)?g+"":g,t)};function N(A){return M.apply(this,arguments)}function M(){return(M=t(i().mark((function A(g){var t,I,e,r,C,B,n,o;return i().wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return t=g.sdkAppId,I=g.userId,e=g.userSig,r=g.core,B=Math.round((new Date).getTime()/1e3),A.prev=2,A.next=5,r.schedule.getAbilityConfig(t,r.schedule.ScheduleRequestType.TRTC_AUTO_CONF,{sdkAppId:t,userId:I,userSig:e,timestamp:B});case 5:if(n=A.sent,r.log.info("virtual background ability response: ".concat(JSON.stringify(n))),o=n.data,!(null==(C=null==o?void 0:o.trtcAutoConf)?void 0:C.web_ar)){A.next=10;break}return A.abrupt("return",{auth:!0,timestamp:B});case 10:return A.abrupt("return",{auth:!1});case 13:return A.prev=13,A.t0=A.catch(2),r.log.error("virtual background fetch error",A.t0),A.abrupt("return",{auth:!1});case 17:case"end":return A.stop()}}),A,null,[[2,13]])})))).apply(this,arguments)}var F={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};var v,m=(v="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(){var A,g,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t;r.ready=new Promise((function(t,I){A=t,g=I}));var B=Object.assign({},r),o="";"undefined"!=typeof document&&document.currentScript&&(o=document.currentScript.src),v&&(o=v),o=0!==o.indexOf("blob:")?o.substr(0,o.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var i,Q,E=r.print||console.log.bind(console),a=r.printErr||console.error.bind(console);function c(A){if(L(A))return function(A){for(var g=atob(A),t=new Uint8Array(g.length),I=0;I<g.length;++I)t[I]=g.charCodeAt(I);return t}(A.slice(S.length))}Object.assign(r,B),B=null,r.arguments&&r.arguments,r.thisProgram&&r.thisProgram,r.quit&&r.quit,r.wasmBinary&&(i=r.wasmBinary),"object"!=("undefined"==typeof WebAssembly?"undefined":s(WebAssembly))&&b("no native wasm support detected");var h,l,f,y,d,D,w,p,G=!1,N=[],M=[],F=[],m=0,R=null;function b(A){r.onAbort&&r.onAbort(A),a(A="Aborted("+A+")"),G=!0,A+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(A);throw g(t),t}var Y,k,S="data:application/octet-stream;base64,",L=function(A){return A.startsWith(S)};function H(A){return Promise.resolve().then((function(){return function(A){if(A==Y&&i)return new Uint8Array(i);var g=c(A);if(g)return g;throw"both async and sync fetching of the wasm failed"}(A)}))}function U(A,g,t,I){return function(A,g,t){return H(A).then((function(A){return WebAssembly.instantiate(A,g)})).then((function(A){return A})).then(t,(function(A){a("failed to asynchronously prepare wasm: ".concat(A)),b(A)}))}(g,t,I)}L(Y="data:application/octet-stream;base64,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IAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAACwsAIAEgAiAAEEIaCxIAIAFBAXRBwMoAakECIAAQQgv5AQEEfwJ/IAEQKiECIwBBEGsiBSQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgRBAE8EQAJAIAIgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyIDIARrTQRAIAJFDQECfyAALQALQQd2BEAgACgCAAwBCyAACyIDIAQEfyACIANqIAMgBBBFIAEgAkEAIAMgBGogAUsbQQAgASADTxtqBSABCyACEEUgACACIARqIgEQMSAFQQA6AA8gASADaiAFLQAPOgAADAELIAAgAyACIARqIANrIARBACACIAEQRAsgBUEQaiQAIAAMAQsQJwALC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRr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ACACQQA6AA8DQCABBEAgACACLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIAJBEGokAAsaACAALQALQQd2BEAgACgCCBogACgCABAZCwvmAQEFfyMAQRBrIgUkACMAQSBrIgMkACMAQRBrIgQkACAEIAA2AgwgBCAAIAFqNgIIIAMgBCgCDDYCGCADIAQoAgg2AhwgBEEQaiQAIAMoAhghBCADKAIcIQYjAEEQayIBJAAgASAGNgIMIAIgBCAGIARrIgQQQyABIAIgBGo2AgggAyABKAIMNgIQIAMgASgCCDYCFCABQRBqJAAgAyAAIAMoAhAgAGtqNgIMIAMgAiADKAIUIAJrajYCCCAFIAMoAgw2AgggBSADKAIINgIMIANBIGokACAFKAIMIQcgBUEQaiQAIAcLDwAgAgRAIAAgASACEDILC/UCAQV/IwBBEGsiByQAIAIgAUF/c0Hv////B2pNBEACfyAALQALQQd2BEAgACgCAAwBCyAACyEIIAdBBGoiCSAAIAFB5////wNJBH8gByABQQF0NgIMIAcgASACajYCBCMAQRBrIgIkACAJKAIAIAdBDGoiCigCAEkhCyACQRBqJAAgCiAJIAsbKAIAIgJBC08EfyACQRBqQXBxIgIgAkEBayICIAJBC0YbBUEKC0EBagVB7////wcLEDAgBygCBCECIAcoAggaIAQEQCACIAggBBAjCyAFBEAgAiAEaiAGIAUQIwsgAyAEayEGIAMgBEcEQCACIARqIAVqIAQgCGogBhAjCyABQQpHBEAgCBAZCyAAIAI2AgAgACAAKAIIQYCAgIB4cSAHKAIIQf////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAQgBWogBmoiADYCBCAHQQA6AAwgACACaiAHLQAMOgAAIAdBEGokAA8LECcACwoAIAAgASACEEMLuQEBBH8jAEEQayIEJAAgBCACNgIMIwBBoAFrIgMkACADIAAgA0GeAWogARsiBjYClAFBfyEFIAMgAUEBayIAQQAgACABTRs2ApgBIANBAEGQARAmIgBBfzYCTCAAQSA2AiQgAEF/NgJQIAAgAEGfAWo2AiwgACAAQZQBajYCVAJAIAFBAEgEQEG43gBBPTYCAAwBCyAGQQA6AAAgAEH9CiACQR8QTSEFCyAAQaABaiQAIARBEGokACAFCwQA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KAIARQ0AIAIgBCgCGDYCAAsgAEEBRiEFDAELQQAhBQsgBEFAayQAIAULMQAgACABKAIIQQAQHgRAIAEgAiADED0PCyAAKAIIIgAgASACIAMgACgCACgCHBEGAAsYACAAIAEoAghBABAeBEAgASACIAMQPQsLnQEBAn8jAEFAaiIDJAACf0EBIAAgAUEAEB4NABpBACABRQ0AGkEAIAFB3MwAECAiAUUNABogA0EMakEAQTQQJhogA0EBNgI4IANBfzYCFCADIAA2AhAgAyABNgIIIAEgA0EIaiACKAIAQQEgASgCACgCHBEGACADKAIgIgBBAUYEQCACIAMoAhg2AgALIABBAUYLIQQgA0FAayQAIAQLCgAgACABQQAQHgtOAgF/AXwjAEEQayICJAAgAkEANgIMIAEoAgRBpM8AIAJBDGoQCSEDIAIoAgwiAQRAIAEQAQsgACADRAAAAAAAAAAAYjoAOCACQRBqJAALNwEBfyMAQRBrIgIkACACIAEtADg2AgggAEGkzwAgAkEIahAHNgIEIABBpNUANgIAIAJBEGokAAuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECIaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECIaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACC5wBAQJ/IwBBEGsiAiQAQcgAEBwhASAAKAIEIgAQAiACIAA2AgggAUGcLSACQQhqEAc2AgQgAUGk1QA2AgAgAUEBNgIcIAFBpNUANgIYIAFBATYCFCABQaTVADYCECABQQE2AgwgAUGk1QA2AgggAUEAOgAgIAFBADYCRCABQoCAgIAwNwI8IAFBADsANyABQQA7ACsgAkEQaiQAIAELigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBSMAQSBrIgAkAAJAIAVC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBUIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBUIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIBQZH3AEkNACADIQIgBUL///////8/g0KAgICAgIDAAIQiBCEGAkAgAUGB9wBrIghBwABxBEAgAyAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAAgAjcDECAAIAY3AxgCQEGB+AAgAWsiAUHAAHEEQCAEIAFBQGqtiCEDQgAhBAwBCyABRQ0AIARBwAAgAWuthiADIAGtIgKIhCEDIAQgAoghBAsgACADNwMAIAAgBDcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACAJIAIgBUKAgICAgICAgIB/g4S/OQMAC0ABAn8jAEEQayICJAAgAiABNgIMIAJBpNUANgIIIAJBCGogABEBACEDIAIoAgwiAQRAIAEQAwsgAkEQaiQAIAMLBABCAAsEAEEAC/YCAQh/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBUECIQcCfwJAAkACQCAAKAI8IANBEGoiAUECIANBDGoQDSIEBH9BuN4AIAQ2AgBBfwVBAAsEQCABIQQMAQsDQCAFIAMoAgwiBkYNAiAGQQBIBEAgASEEDAQLIAEgBiABKAIEIghLIglBA3RqIgQgBiAIQQAgCRtrIgggBCgCAGo2AgAgAUEMQQQgCRtqIgEgASgCACAIazYCACAFIAZrIQUgACgCPCAEIgEgByAJayIHIANBDGoQDSIGBH9BuN4AIAY2AgBBfwVBAAtFDQALCyAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2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Q0EASARAIAYoAjgQGQsgBiwAM0EASARAIAYoAigQGQsgBiwAJ0EATg0AIAYoAhwQGQsgAkEBaiICQQdHDQALIAVBAWoiBUEHRw0ACyMAQRBrIgwkAEHoJRAqIQcCfyAGQYgBaiIFLQALQQd2BEAgBSgCBAwBCyAFLQALQf8AcQshCAJ/An8jAEEQayIJJAAgBkH4AGohAiAHIAhqIgRB7////wdNBEACQCAEQQtJBEAgAkIANwIAIAJBADYCCCACIAItAAtBgAFxIARB/wBxcjoACyACIAItAAtB/wBxOgALDAELIARBC08EfyAEQRBqQXBxIgogCkEBayIKIApBC0YbBUEKC0EBaiIKEBwhCyACIAIoAghBgICAgHhxIApB/////wdxcjYCCCACIAIoAghBgICAgHhyNgIIIAIgCzYCACACIAQ2AgQLIAlBEGokACACDAELECcACyIELQALQQd2BEAgBCgCAAwBCyAECyIEQeglIAcQIyAEIAdqIgQCfyAFLQALQQd2BEAgBSgCAAwBCyAFCyAIECMgBCAIakEBEEAgDEEQaiQAIA0gAkHCKRAaIgIpAgA3AgAgDSACKAIINgIIIAJCADcCACACQQA2AgggBiwAgwFBAEgEQCAGKAJ4EBkLIAYsAJMBQQBIBEAgBigCiAEQGQsgBigClAEiBQRAIAYoApgBIgQgBSICRwRAA0AgBEEMayICKAIAIgcEQCAEQQhrIAc2AgAgBxAZCyACIgQgBUcNAAsgBigClAEhAgsgBiAFNgKYASACEBkLIAZBoAFqJAAgA0EcaiADKAIoIA0gAy0AMyICwEEASCIFGyADKAIsIAIgBRsQGxogAywAM0EATg0DIAMoAigQGQwDCyADQRxqQZshEBoaDAILIANBHGpB/isQGhoMAQsgA0EcakHnKxAaGgsCQAJAIAEoAjAgAS0ANyICIALAIgZBAEgbIgRBAWoiBUHw////B0kEQAJAAkAgBUELTwRAIAVBD3JBAWoiBxAcIQIgAyAFNgIsIAMgAjYCKCADIAdBgICAgHhyNgIwDAELIANBADYCMCADQgA3AyggAyAFOgAzIANBKGohAiAERQ0BCyACIAFBLGoiBSgCACAFIAZBAEgbIAQQMgsgAiAEakEKOwAAIANBHGogAygCKCADQShqIAMtADMiAsBBAEgiBRsgAygC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EGokAAsiAQF+IAEgAq0gA61CIIaEIAQgABEMACIFQiCIpyQBIAWnCzcBAX8jAEEQayICJAAgAiABKAI8NgIIIABB7M8AIAJBCGoQBzYCBCAAQaTVADYCACACQRBqJAALC8NKFQBBgAgL1CVzZXRCZWF1dHkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAB1bnNpZ25lZCBzaG9ydAB1bnNpZ25lZCBpbnQAaW5pdABmbG9hdAB1aW50NjRfdABibHVyUmFkaXVzAHZlY3RvcgBtaXJyb3IAYXR0YWNoU2hhZGVyAGRlbGV0ZVNoYWRlcgBjcmVhdGVTaGFkZXIAY29tcGlsZVNoYWRlcgB1bnNpZ25lZCBjaGFyAHN0ZDo6ZXhjZXB0aW9uAHJvdGF0aW9uAG5hbgBsaW5rUHJvZ3JhbQBkZWxldGVQcm9ncmFtAGNyZWF0ZVByb2dyYW0AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sATkFOAElORgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgB2ZWMyIGMgPSB2X3RleENvb3JkOwB2ZWMyIGMgPSB2ZWMyKDEuMCAtIHZfdGV4Q29vcmQueCwgdl90ZXhDb29yZC55KTsAYyA9IHZlYzIoMS4wIC0gYy54LCAxLjAgLSBjLnkpOwBjID0gdmVjMihjLnksIDEuMCAtIGMueCk7AGMgPSB2ZWMyKDEuMCAtIGMueSwgYy54KTsAQWxsSW4xAC4ALjAsAC4wKSpvKSoAKG51bGwpACkqby55KTsgICAgdmVjMiBjb29yZDIgPSB2ZWMyKGZsb2F0KAAgICAgYyA9IHZlYzIodl90ZXhDb29yZC54LCAxLjAgLSB2X3RleENvb3JkLnkpOyAgICB2ZWMyIGNvb3JkMSA9IHZlYzIoZmxvYXQoACksIChjLnkgLWNvb3JkMS55KSAvIG8ueSAvIGZsb2F0KAApKm8ueSk7ICAgIGlmIChjLnggPiBjb29yZDEueCAmJiBjLnggPCBjb29yZDIueCAmJiBjLnkgPiBjb29yZDEueSAmJiBjLnkgPCBjb29yZDIueSkgeyAgICAgIHZlYzQgd2F0ZXJDb2xvciA9IHRleHR1cmUod2F0ZXJNYXJrLCB2ZWMyKChjLnggLSBjb29yZDEueCkgIC8gby54IC8gZmxvYXQoACkgKiBvLngsIGZsb2F0KABvdXRDb2xvci5yZ2IgKz0gdmVjMygAKTsgICAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgICAgc21vb3RoQ29sb3IgPSBjbGFtcChwb3coc21vb3RoQ29sb3IsIHZlYzMoAGcrPUcoYyx2ZWMyKAAgICAgICB2ZWMyIG9mZnNldCA9IHZlYzIoAF0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigAOyAAKSksIHZlYzMoMC4wKSwgdmVjMygxLjApKTsgICAgICB2ZWMzIHNjcmVlbiA9IHZlYzMoMS4wKSAtICh2ZWMzKDEuMCktc21vb3RoQ29sb3IpICogKHZlYzMoMS4wKS1vdXRDb2xvci5yZ2IpOyAgICAgICB2ZWMzIGxpZ2h0ZW4gPSBtYXgoc21vb3RoQ29sb3IsIG91dENvbG9yLnJnYik7ICAgICAgIHZlYzMgYmVhdXR5Q29sb3IgPSBtaXgobWl4KG91dENvbG9yLnJnYiwgc2NyZWVuLCBhbHBoYSksIGxpZ2h0ZW4sIGFscGhhKTsgICAgICBvdXRDb2xvci5yZ2IgPSBtaXgob3V0Q29sb3IucmdiLCBiZWF1dHlDb2xvciwgAAogICAgICBjb25zdCBtYXQzIHNhdHVyYXRlTWF0cml4ID0gbWF0MygxLjExMDIsLTAuMDU5OCwtMC4wNjEsLTAuMDc3NCwxLjA4MjYsLTAuMTE4NiwtMC4wMjI4LC0wLjAyMjgsMS4xNzcyKTsKICAgICAgdmVjMyB3YXJtQ29sb3IgPSBvdXRDb2xvci5yZ2IgKiBzYXR1cmF0ZU1hdHJpeDsKICAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgd2FybUNvbG9yLCAAICAgICAgc2FtcGxlQ29sb3IgPSBzYW1wbGVDb2xvciAvIDYyLjA7ICAgICAgIGZsb2F0IGhpZ2hQYXNzID0gb3V0Q29sb3IuZyAtIHNhbXBsZUNvbG9yICsgMC41OyAgICAgICBjb25zdCBoaWdocCB2ZWMzIFcgPSB2ZWMzKDAuMjk5LDAuNTg3LDAuMTE0KTsgICAgICBmbG9hdCBsdW1pbmFuY2UgPSBkb3Qob3V0Q29sb3IucmdiLCBXKTsgICAgICAgZmxvYXQgYWxwaGEgPSBwb3cobHVtaW5hbmNlLCAAXSkuZyAqIAApKSk7ICAgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3Isd2F0ZXJDb2xvciwgIHdhdGVyQ29sb3IuYSk7ICAgIH0gICAgACk7ICAgIAApOyAgICAgIHZlYzIgYmx1ckNvb3JkaW5hdGVzWzI0XTsgICAgICAAICAgICAgZmxvYXQgc2FtcGxlQ29sb3IgPSBvdXRDb2xvci5nICogMjIuMDsgICAgICAgACN2ZXJzaW9uIDMwMCBlcwogICAgcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwogICAgdW5pZm9ybSBzYW1wbGVyMkQgZnJhbWU7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBtYXNrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgYmc7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCB3YXRlck1hcms7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBsYXN0TWFzazsKICAgIHVuaWZvcm0gbWF0NCB1X29mZnNldE1hdHJpeDsKICAgIHVuaWZvcm0gdmVjMyB1X2NvbG9yOwogICAgaW4gdmVjMiB2X3RleENvb3JkOwogICAgb3V0IHZlYzQgb3V0Q29sb3I7CiAgICB2ZWM0IEcodmVjMiBjLHZlYzIgcyl7CiAgICAgIHJldHVybiB0ZXh0dXJlKGZyYW1lLHRleHR1cmUobWFzayxjK3MpLnI+MC4zP2M6YytzKTsKICAgIH0KICAgIHZvaWQgbWFpbigpIHsKICAgICAgAAogICAgICB2ZWMyIG9mZnNldE1hc2tVViA9ICh1X29mZnNldE1hdHJpeCAqIHZlYzQoYywgMCwgMSkpLnh5OwogICAgICBmbG9hdCBpc0luc2lkZVggPSAob2Zmc2V0TWFza1VWLnggPj0gMC4wKSAmJiAob2Zmc2V0TWFza1VWLnggPD0gMS4wKSA/IDEuMCA6IDAuMDsKICAgICAgZmxvYXQgaXNJbnNpZGVZID0gKG9mZnNldE1hc2tVVi55ID49IDAuMCkgJiYgKG9mZnNldE1hc2tVVi55IDw9IDEuMCkgPyAxLjAgOiAwLjA7CiAgICAgIGZsb2F0IGlzSW5zaWRlID0gaXNJbnNpZGVYICogaXNJbnNpZGVZOwogICAgICBmbG9hdCBtYXNrZWRBbHBoYSA9IHRleHR1cmUobWFzaywgb2Zmc2V0TWFza1VWKS5yICogaXNJbnNpZGU7CiAgICAgIG1hc2tlZEFscGhhID0gbWFza2VkQWxwaGE8MC41PzIuMCptYXNrZWRBbHBoYSptYXNrZWRBbHBoYToxLjAtMi4wKigxLjAtbWFza2VkQWxwaGEpKigxLjAtbWFza2VkQWxwaGEpOwogICAgICBzcmNfY29sb3IgPSB0ZXh0dXJlKGZyYW1lLCBvZmZzZXRNYXNrVVYgLCBpc0luc2lkZSk7CiAgICAgIG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLCBzcmNfY29sb3IsIG1hc2tlZEFscGhhKTsKICAgIAAKICAgIHZlYzQgZyA9IHZlYzQoMC4wKTsKICAgIAAKICAgICAgYy55ID0gMS4wIC0gYy55OwogICAgICB2ZWM0IHNyY19jb2xvciA9IHRleHR1cmUoZnJhbWUsIGMpOwogICAgICBmbG9hdCBhID0gdGV4dHVyZShtYXNrLCBjKS5yOwogICAgICBhID0gYTwwLjU/Mi4wKmEqYToxLjAtMi4wKigxLjAtYSkqKDEuMC1hKTsKICAgICAgLy8gZmxvYXQgYTIgPSB0ZXh0dXJlKGxhc3RNYXNrLCBjKS5hOwogICAgICAvLyBhMiA9IGEyPDAuNT8yLjAqYTIqYTI6MS4wLTIuMCooMS4wLWEyKSooMS4wLWEyKTsKICAgICAgLy8gZmxvYXQgZGVsdGEgPSBhIC0gYTI7CiAgICAgIC8vIGlmIChkZWx0YSA8IDAuMjUgJiYgZGVsdGEgPiAtMC4yNSkKICAgICAgLy8gewogICAgICAvLyAgICAgYSA9IGEgKyAwLjUqZGVsdGE7CiAgICAgIC8vIH0KICAgICAgCiAgICAgIHZlYzIgbyA9IDEuMCAvIHZlYzIodGV4dHVyZVNpemUoZnJhbWUsIDApKTsKICAgIAAKICAgICAgb3V0Q29sb3IgPSBnOwogIAAjdmVyc2lvbiAzMDAgZXMKaW4gdmVjMiBhX3Bvc2l0aW9uOwppbiB2ZWMyIGFfdGV4Q29vcmQ7Cgp1bmlmb3JtIG1hdDQgdV90ZXh0dXJlTWF0cml4OwoKb3V0IHZlYzIgdl90ZXhDb29yZDsKdm9pZCBtYWluKCkgewogIGdsX1Bvc2l0aW9uID0gdmVjNChhX3Bvc2l0aW9uLngsIGFfcG9zaXRpb24ueSwgMCwgMSk7CiAgdl90ZXhDb29yZCA9KHVfdGV4dHVyZU1hdHJpeCAqIHZlYzQoYV90ZXhDb29yZCwgMCwgMSkpLnh5Owp9CgBzZXRCZWF1dHkgJWYgJWYgJWYgJWYgJWYKAG91dENvbG9yID0gc3JjX2NvbG9yOwoAb3V0Q29sb3IgPSBtaXgodmVjNCh1X2NvbG9yLDEuMCksc3JjX2NvbG9yLGEpOwoANkFsbEluMQAAAFAoAAAuFgAAUDZBbGxJbjEAAAAA1CgAAEAWAAAAAAAAOBYAAFBLNkFsbEluMQAAANQoAABcFgAAAQAAADgWAABpaQB2AHZpAEwWAACcFgAATjEwZW1zY3JpcHRlbjN2YWxFAABQKAAAiBYAAGlpaQB2aWlpAAAAAIwnAABMFgAAQCgAAEAoAABAKAAAQCgAAEAoAAB2aWlkZGRkZABB4C0LyAiMJwAATBYAAEAoAABAKAAAQCgAAEAoAAB2aWlkZGRkAIwnAABMFgAAdmlpAIwnAACcFgAAnBYAAEwWAACcFgAA7CcAAIwnAACcFgAAcBcAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAABQKAAAMBcAAJwWAACMJwAAnBYAAJwWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAUCgAAIgXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAUCgAANAXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAFAoAAAYGAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAABQKAAAZBgAAE4x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")||(k=Y,Y=r.locateFile?r.locateFile(k,o):o+k);var K=function(A){for(;A.length>0;)A.shift()(r)};function J(A){this.excPtr=A,this.ptr=A-24,this.set_type=function(A){D[this.ptr+4>>2]=A},this.get_type=function(){return D[this.ptr+4>>2]},this.set_destructor=function(A){D[this.ptr+8>>2]=A},this.get_destructor=function(){return D[this.ptr+8>>2]},this.set_caught=function(A){A=A?1:0,h[this.ptr+12|0]=A},this.get_caught=function(){return 0!=h[this.ptr+12|0]},this.set_rethrown=function(A){A=A?1:0,h[this.ptr+13|0]=A},this.get_rethrown=function(){return 0!=h[this.ptr+13|0]},this.init=function(A,g){this.set_adjusted_ptr(0),this.set_type(A),this.set_destructor(g)},this.set_adjusted_ptr=function(A){D[this.ptr+16>>2]=A},this.get_adjusted_ptr=function(){return D[this.ptr+16>>2]},this.get_exception_ptr=function(){if(ug(this.get_type()))return D[this.excPtr>>2];var A=this.get_adjusted_ptr();return 0!==A?A:this.excPtr}}r.noExitRuntime;var T,x,j,Z=function(A){for(var g="",t=A;l[t];)g+=T[l[t++]];return g},P={},W={},O={},X=function(A){throw new x(A)},V=function(A){throw new j(A)},z=function(A,g,t){function I(g){var I=t(g);I.length!==A.length&&V("Mismatched type converter count");for(var e=0;e<A.length;++e)q(A[e],I[e])}A.forEach((function(A){O[A]=g}));var e=new Array(g.length),r=[],C=0;g.forEach((function(A,g){W.hasOwnProperty(A)?e[g]=W[A]:(r.push(A),P.hasOwnProperty(A)||(P[A]=[]),P[A].push((function(){e[g]=W[A],++C===r.length&&I(e)})))})),0===r.length&&I(e)};function q(A,g){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!("argPackAdvance"in g))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(A,g){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},I=g.name;if(A||X('type "'.concat(I,'" must have a positive integer typeid pointer')),W.hasOwnProperty(A)){if(t.ignoreDuplicateRegistrations)return;X("Cannot register type '".concat(I,"' twice"))}if(W[A]=g,delete O[A],P.hasOwnProperty(A)){var e=P[A];delete P[A],e.forEach((function(A){return A()}))}}(A,g,t)}var _,$=function(A){X(A.$$.ptrType.registeredClass.name+" instance already deleted")},AA=!1,gA=function(A){},tA=function(A){A.count.value-=1,0===A.count.value&&function(A){A.smartPtr?A.smartPtrType.rawDestructor(A.smartPtr):A.ptrType.registeredClass.rawDestructor(A.ptr)}(A)},IA=function(A,g,t){if(g===t)return A;if(void 0===t.baseClass)return null;var I=IA(A,g,t.baseClass);return null===I?null:t.downcast(I)},eA={},rA=function(){return Object.keys(iA).length},CA=function(){var A=[];for(var g in iA)iA.hasOwnProperty(g)&&A.push(iA[g]);return A},BA=[],nA=function(){for(;BA.length;){var A=BA.pop();A.$$.deleteScheduled=!1,A.delete()}},oA=function(A){_=A,BA.length&&_&&_(nA)},iA={},QA=function(A,g){return g=function(A,g){for(void 0===g&&X("ptr should not be undefined");A.baseClass;)g=A.upcast(g),A=A.baseClass;return g}(A,g),iA[g]},EA=function(A,g){return g.ptrType&&g.ptr||V("makeClassHandle requires ptr and ptrType"),!!g.smartPtrType!=!!g.smartPtr&&V("Both smartPtrType and smartPtr must be specified"),g.count={value:1},sA(Object.create(A,{$$:{value:g}}))};function aA(A){var g=this.getPointee(A);if(!g)return this.destructor(A),null;var t=QA(this.registeredClass,g);if(void 0!==t){if(0===t.$$.count.value)return t.$$.ptr=g,t.$$.smartPtr=A,t.clone();var I=t.clone();return this.destructor(A),I}function e(){return this.isSmartPointer?EA(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:g,smartPtrType:this,smartPtr:A}):EA(this.registeredClass.instancePrototype,{ptrType:this,ptr:A})}var r,C=this.registeredClass.getActualType(g),B=eA[C];if(!B)return e.call(this);r=this.isConst?B.constPointerType:B.pointerType;var n=IA(g,this.registeredClass,r.registeredClass);return null===n?e.call(this):this.isSmartPointer?EA(r.registeredClass.instancePrototype,{ptrType:r,ptr:n,smartPtrType:this,smartPtr:A}):EA(r.registeredClass.instancePrototype,{ptrType:r,ptr:n})}var sA=function(A){return"undefined"==typeof FinalizationRegistry?(sA=function(A){return A},A):(AA=new FinalizationRegistry((function(A){tA(A.$$)})),gA=function(A){return AA.unregister(A)},(sA=function(A){var g=A.$$;if(g.smartPtr){var t={$$:g};AA.register(A,t,A)}return A})(A))};function cA(){}var uA=function(A,g){return Object.defineProperty(g,"name",{value:A})},hA=function(A,g,t){if(void 0===A[g].overloadTable){var I=A[g];A[g]=function(){return A[g].overloadTable.hasOwnProperty(arguments.length)||X("Function '".concat(t,"' called with an invalid number of arguments (").concat(arguments.length,") - expects one of (").concat(A[g].overloadTable,")!")),A[g].overloadTable[arguments.length].apply(this,arguments)},A[g].overloadTable=[],A[g].overloadTable[I.argCount]=I}};function lA(A,g,t,I,e,r,C,B){this.name=A,this.constructor=g,this.instancePrototype=t,this.rawDestructor=I,this.baseClass=e,this.getActualType=r,this.upcast=C,this.downcast=B,this.pureVirtualFunctions=[]}var fA=function(A,g,t){for(;g!==t;)g.upcast||X("Expected null or instance of ".concat(t.name,", got an instance of ").concat(g.name)),A=g.upcast(A),g=g.baseClass;return A};function yA(A,g){if(null===g)return this.isReference&&X("null is not a valid ".concat(this.name)),0;g.$$||X('Cannot pass "'.concat(WA(g),'" as a ').concat(this.name)),g.$$.ptr||X("Cannot pass deleted object as a pointer of type ".concat(this.name));var t=g.$$.ptrType.registeredClass;return fA(g.$$.ptr,t,this.registeredClass)}function dA(A,g){var t;if(null===g)return this.isReference&&X("null is not a valid ".concat(this.name)),this.isSmartPointer?(t=this.rawConstructor(),null!==A&&A.push(this.rawDestructor,t),t):0;g.$$||X('Cannot pass "'.concat(WA(g),'" as a ').concat(this.name)),g.$$.ptr||X("Cannot pass deleted object as a pointer of type ".concat(this.name)),!this.isConst&&g.$$.ptrType.isConst&&X("Cannot convert argument of type ".concat(g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name," to parameter type ").concat(this.name));var I=g.$$.ptrType.registeredClass;if(t=fA(g.$$.ptr,I,this.registeredClass),this.isSmartPointer)switch(void 0===g.$$.smartPtr&&X("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:g.$$.smartPtrType===this?t=g.$$.smartPtr:X("Cannot convert argument of type ".concat(g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name," to parameter type ").concat(this.name));break;case 1:t=g.$$.smartPtr;break;case 2:if(g.$$.smartPtrType===this)t=g.$$.smartPtr;else{var e=g.clone();t=this.rawShare(t,TA.toHandle((function(){return e.delete()}))),null!==A&&A.push(this.rawDestructor,t)}break;default:X("Unsupporting sharing policy")}return t}function DA(A,g){if(null===g)return this.isReference&&X("null is not a valid ".concat(this.name)),0;g.$$||X('Cannot pass "'.concat(WA(g),'" as a ').concat(this.name)),g.$$.ptr||X("Cannot pass deleted object as a pointer of type ".concat(this.name)),g.$$.ptrType.isConst&&X("Cannot convert argument of type ".concat(g.$$.ptrType.name," to parameter type ").concat(this.name));var t=g.$$.ptrType.registeredClass;return fA(g.$$.ptr,t,this.registeredClass)}function wA(A){return this.fromWireType(D[A>>2])}function pA(A,g,t,I,e,r,C,B,n,o,i){this.name=A,this.registeredClass=g,this.isReference=t,this.isConst=I,this.isSmartPointer=e,this.pointeeType=r,this.sharingPolicy=C,this.rawGetPointee=B,this.rawConstructor=n,this.rawShare=o,this.rawDestructor=i,e||void 0!==g.baseClass?this.toWireType=dA:I?(this.toWireType=yA,this.destructorFunction=null):(this.toWireType=DA,this.destructorFunction=null)}var GA,NA,MA=[],FA=function(A){var g=MA[A];return g||(A>=MA.length&&(MA.length=A+1),MA[A]=g=GA.get(A)),g},vA=function(A,g,t){return A.includes("j")?function(A,g,t){var I=r["dynCall_"+A];return t&&t.length?I.apply(null,[g].concat(t)):I.call(null,g)}(A,g,t):FA(g).apply(null,t)},mA=function(A,g){var t,I,e,r=(A=Z(A)).includes("j")?(t=A,I=g,e=[],function(){return e.length=0,Object.assign(e,arguments),vA(t,I,e)}):FA(g);return"function"!=typeof r&&X("unknown function pointer with signature ".concat(A,": ").concat(g)),r},RA=function(A){var g=sg(A),t=Z(g);return cg(g),t},bA=function(A,g){var t=[],I={};throw g.forEach((function A(g){I[g]||W[g]||(O[g]?O[g].forEach(A):(t.push(g),I[g]=!0))})),new NA("".concat(A,": ")+t.map(RA).join([", "]))},YA=function(A,g){for(var t=[],I=0;I<A;I++)t.push(D[g+4*I>>2]);return t},kA=function(A){for(;A.length;){var g=A.pop();A.pop()(g)}};function SA(A,g,t,I,e,r){var C=g.length;C<2&&X("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var B=null!==g[1]&&null!==t,n=!1,o=1;o<g.length;++o)if(null!==g[o]&&void 0===g[o].destructorFunction){n=!0;break}var i="void"!==g[0].name,Q=C-2,E=new Array(Q),a=[],s=[];return uA(A,(function(){var t;arguments.length!==Q&&X("function ".concat(A," called with ").concat(arguments.length," arguments, expected ").concat(Q)),s.length=0,a.length=B?2:1,a[0]=e,B&&(t=g[1].toWireType(s,this),a[1]=t);for(var r=0;r<Q;++r)E[r]=g[r+2].toWireType(s,arguments[r]),a.push(E[r]);return function(A){if(n)kA(s);else for(var I=B?1:2;I<g.length;I++){var e=1===I?t:E[I-2];null!==g[I].destructorFunction&&g[I].destructorFunction(e)}if(i)return g[0].fromWireType(A)}(I.apply(null,a))}))}var LA=function(A,g,t){return A instanceof Object||X("".concat(t,' with invalid "this": ').concat(A)),A instanceof g.registeredClass.constructor||X("".concat(t,' incompatible with "this" of type ').concat(A.constructor.name)),A.$$.ptr||X("cannot call emscripten binding method ".concat(t," on deleted object")),fA(A.$$.ptr,A.$$.ptrType.registeredClass,g.registeredClass)};function HA(){this.allocated=[void 0],this.freelist=[]}var UA=new HA,KA=function(A){A>=UA.reserved&&0==--UA.get(A).refcount&&UA.free(A)},JA=function(){for(var A=0,g=UA.reserved;g<UA.allocated.length;++g)void 0!==UA.allocated[g]&&++A;return A},TA={toValue:function(A){return A||X("Cannot use deleted val. handle = "+A),UA.get(A).value},toHandle:function(A){switch(A){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return UA.allocate({refcount:1,value:A})}}};function xA(A){return this.fromWireType(d[A>>2])}var jA,ZA,PA,WA=function(A){if(null===A)return"null";var g=s(A);return"object"===g||"array"===g||"function"===g?A.toString():""+A},OA=function(A,g){switch(g){case 4:return function(A){return this.fromWireType(w[A>>2])};case 8:return function(A){return this.fromWireType(p[A>>3])};default:throw new TypeError("invalid float width (".concat(g,"): ").concat(A))}},XA=function(A,g,t){switch(g){case 1:return t?function(A){return h[0|A]}:function(A){return l[0|A]};case 2:return t?function(A){return f[A>>1]}:function(A){return y[A>>1]};case 4:return t?function(A){return d[A>>2]}:function(A){return D[A>>2]};default:throw new TypeError("invalid integer width (".concat(g,"): ").concat(A))}},VA="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,zA=function(A,g,t){for(var I=g+t,e=g;A[e]&&!(e>=I);)++e;if(e-g>16&&A.buffer&&VA)return VA.decode(A.subarray(g,e));for(var r="";g<e;){var C=A[g++];if(128&C){var B=63&A[g++];if(192!=(224&C)){var n=63&A[g++];if((C=224==(240&C)?(15&C)<<12|B<<6|n:(7&C)<<18|B<<12|n<<6|63&A[g++])<65536)r+=String.fromCharCode(C);else{var o=C-65536;r+=String.fromCharCode(55296|o>>10,56320|1023&o)}}else r+=String.fromCharCode((31&C)<<6|B)}else r+=String.fromCharCode(C)}return r},qA="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,_A=function(A,g){for(var t=A,I=t>>1,e=I+g/2;!(I>=e)&&y[I];)++I;if((t=I<<1)-A>32&&qA)return qA.decode(l.subarray(A,t));for(var r="",C=0;!(C>=g/2);++C){var B=f[A+2*C>>1];if(0==B)break;r+=String.fromCharCode(B)}return r},$A=function(A,g,t){if(void 0===t&&(t=2147483647),t<2)return 0;for(var I=g,e=(t-=2)<2*A.length?t/2:A.length,r=0;r<e;++r){var C=A.charCodeAt(r);f[g>>1]=C,g+=2}return f[g>>1]=0,g-I},Ag=function(A){return 2*A.length},gg=function(A,g){for(var t=0,I="";!(t>=g/4);){var e=d[A+4*t>>2];if(0==e)break;if(++t,e>=65536){var r=e-65536;I+=String.fromCharCode(55296|r>>10,56320|1023&r)}else I+=String.fromCharCode(e)}return I},tg=function(A,g,t){if(void 0===t&&(t=2147483647),t<4)return 0;for(var I=g,e=I+t-4,r=0;r<A.length;++r){var C=A.charCodeAt(r);if(C>=55296&&C<=57343&&(C=65536+((1023&C)<<10)|1023&A.charCodeAt(++r)),d[g>>2]=C,(g+=4)+4>e)break}return d[g>>2]=0,g-I},Ig=function(A){for(var g=0,t=0;t<A.length;++t){var I=A.charCodeAt(t);I>=55296&&I<=57343&&++t,g+=4}return g},eg=function(A,g){var t=W[A];return void 0===t&&X(g+" has unknown type "+RA(A)),t},rg=function(A,g,t){var I=[],e=A.toWireType(I,t);return I.length&&(D[g>>2]=TA.toHandle(I)),e},Cg={},Bg=[],ng=Reflect.construct,og=[null,[],[]];!function(){for(var A=new Array(256),g=0;g<256;++g)A[g]=String.fromCharCode(g);T=A}(),x=r.BindingError=function(A){function g(A){var t;return e(this,g),(t=I(this,g,[A])).name="BindingError",t}return n(g,A),C(g)}(u(Error)),j=r.InternalError=function(A){function g(A){var t;return e(this,g),(t=I(this,g,[A])).name="InternalError",t}return n(g,A),C(g)}(u(Error)),Object.assign(cA.prototype,{isAliasOf:function(A){if(!(this instanceof cA))return!1;if(!(A instanceof cA))return!1;var g=this.$$.ptrType.registeredClass,t=this.$$.ptr;A.$$=A.$$;for(var I=A.$$.ptrType.registeredClass,e=A.$$.ptr;g.baseClass;)t=g.upcast(t),g=g.baseClass;for(;I.baseClass;)e=I.upcast(e),I=I.baseClass;return g===I&&t===e},clone:function(){if(this.$$.ptr||$(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var A,g=sA(Object.create(Object.getPrototypeOf(this),{$$:{value:(A=this.$$,{count:A.count,deleteScheduled:A.deleteScheduled,preservePointerOnDelete:A.preservePointerOnDelete,ptr:A.ptr,ptrType:A.ptrType,smartPtr:A.smartPtr,smartPtrType:A.smartPtrType})}}));return g.$$.count.value+=1,g.$$.deleteScheduled=!1,g},delete:function(){this.$$.ptr||$(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&X("Object already scheduled for deletion"),gA(this),tA(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted:function(){return!this.$$.ptr},deleteLater:function(){return this.$$.ptr||$(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&X("Object already scheduled for deletion"),BA.push(this),1===BA.length&&_&&_(nA),this.$$.deleteScheduled=!0,this}}),r.getInheritedInstanceCount=rA,r.getLiveInheritedInstances=CA,r.flushPendingDeletes=nA,r.setDelayFunction=oA,Object.assign(pA.prototype,{getPointee:function(A){return this.rawGetPointee&&(A=this.rawGetPointee(A)),A},destructor:function(A){this.rawDestructor&&this.rawDestructor(A)},argPackAdvance:8,readValueFromPointer:wA,deleteObject:function(A){null!==A&&A.delete()},fromWireType:aA}),NA=r.UnboundTypeError=(jA=Error,(PA=uA(ZA="UnboundTypeError",(function(A){this.name=ZA,this.message=A;var g=new Error(A).stack;void 0!==g&&(this.stack=this.toString()+"\n"+g.replace(/^Error(:[^\n]*)?\n/,""))}))).prototype=Object.create(jA.prototype),PA.prototype.constructor=PA,PA.prototype.toString=function(){return void 0===this.message?this.name:"".concat(this.name,": ").concat(this.message)},PA),Object.assign(HA.prototype,{get:function(A){return this.allocated[A]},has:function(A){return void 0!==this.allocated[A]},allocate:function(A){var g=this.freelist.pop()||this.allocated.length;return this.allocated[g]=A,g},free:function(A){this.allocated[A]=void 0,this.freelist.push(A)}}),UA.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),UA.reserved=UA.allocated.length,r.count_emval_handles=JA;var ig,Qg={w:function(A,g,t){throw new J(A).init(g,t),A},q:function(A,g,t,I,e){},u:function(A,g,t,I){q(A,{name:g=Z(g),fromWireType:function(A){return!!A},toWireType:function(A,g){return g?t:I},argPackAdvance:8,readValueFromPointer:function(A){return this.fromWireType(l[A])},destructorFunction:null})},y:function(A,g,t,I,e,C,B,n,o,i,Q,E,a){Q=Z(Q),C=mA(e,C),n&&(n=mA(B,n)),i&&(i=mA(o,i)),a=mA(E,a);var s=function(A){if(void 0===A)return"_unknown";var g=(A=A.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return g>=48&&g<=57?"_".concat(A):A}(Q);!function(A,g,t){r.hasOwnProperty(A)?(X("Cannot register public name '".concat(A,"' twice")),hA(r,A,A),r.hasOwnProperty(t)&&X("Cannot register multiple overloads of a function with the same number of arguments (".concat(t,")!")),r[A].overloadTable[t]=g):r[A]=g}(s,(function(){bA("Cannot construct ".concat(Q," due to unbound types"),[I])})),z([A,g,t],I?[I]:[],(function(g){var t,e;g=g[0],e=I?(t=g.registeredClass).instancePrototype:cA.prototype;var B=uA(Q,(function(){if(Object.getPrototypeOf(this)!==o)throw new x("Use 'new' to construct "+Q);if(void 0===E.constructor_body)throw new x(Q+" has no accessible constructor");var A=E.constructor_body[arguments.length];if(void 0===A)throw new x("Tried to invoke ctor of ".concat(Q," with invalid number of parameters (").concat(arguments.length,") - expected (").concat(Object.keys(E.constructor_body).toString(),") parameters instead!"));return A.apply(this,arguments)})),o=Object.create(e,{constructor:{value:B}});B.prototype=o;var E=new lA(Q,B,o,a,t,C,n,i);E.baseClass&&(void 0===E.baseClass.__derivedClasses&&(E.baseClass.__derivedClasses=[]),E.baseClass.__derivedClasses.push(E));var c=new pA(Q,E,!0,!1,!1),u=new pA(Q+"*",E,!1,!1,!1),h=new pA(Q+" const*",E,!1,!0,!1);return eA[A]={pointerType:u,constPointerType:h},function(A,g,t){r.hasOwnProperty(A)||V("Replacing nonexistant public symbol"),void 0!==r[A].overloadTable&&void 0!==t||(r[A]=g,r[A].argCount=t)}(s,B),[c,u,h]}))},x:function(A,g,t,I,e,r){var C=YA(g,t);e=mA(I,e),z([],[A],(function(A){A=A[0];var t="constructor ".concat(A.name);if(void 0===A.registeredClass.constructor_body&&(A.registeredClass.constructor_body=[]),void 0!==A.registeredClass.constructor_body[g-1])throw new x("Cannot register multiple constructors with identical number of parameters (".concat(g-1,") for class '").concat(A.name,"'! Overload resolution is currently only performed using the parameter count, not actual type info!"));return A.registeredClass.constructor_body[g-1]=function(){bA("Cannot construct ".concat(A.name," due to unbound types"),C)},z([],C,(function(I){return I.splice(1,0,null),A.registeredClass.constructor_body[g-1]=SA(t,I,null,e,r),[]})),[]}))},i:function(A,g,t,I,e,r,C,B,n){var o,i,Q=YA(t,I);g=Z(g),i=(o=(o=g).trim()).indexOf("("),g=-1!==i?o.substr(0,i):o,r=mA(e,r),z([],[A],(function(A){A=A[0];var I="".concat(A.name,".").concat(g);function e(){bA("Cannot call ".concat(I," due to unbound types"),Q)}g.startsWith("@@")&&(g=Symbol[g.substring(2)]),B&&A.registeredClass.pureVirtualFunctions.push(g);var n=A.registeredClass.instancePrototype,o=n[g];return void 0===o||void 0===o.overloadTable&&o.className!==A.name&&o.argCount===t-2?(e.argCount=t-2,e.className=A.name,n[g]=e):(hA(n,g,I),n[g].overloadTable[t-2]=e),z([],Q,(function(e){var B=SA(I,e,A,r,C);return void 0===n[g].overloadTable?(B.argCount=t-2,n[g]=B):n[g].overloadTable[t-2]=B,[]})),[]}))},k:function(A,g,t,I,e,r,C,B,n,o){g=Z(g),e=mA(I,e),z([],[A],(function(A){A=A[0];var I="".concat(A.name,".").concat(g),i={get:function(){bA("Cannot access ".concat(I," due to unbound types"),[t,C])},enumerable:!0,configurable:!0};return i.set=n?function(){return bA("Cannot access ".concat(I," due to unbound types"),[t,C])}:function(A){return X(I+" is a read-only property")},Object.defineProperty(A.registeredClass.instancePrototype,g,i),z([],n?[t,C]:[t],(function(t){var C=t[0],i={get:function(){var g=LA(this,A,I+" getter");return C.fromWireType(e(r,g))},enumerable:!0};if(n){n=mA(B,n);var Q=t[1];i.set=function(g){var t=LA(this,A,I+" setter"),e=[];n(o,t,Q.toWireType(e,g)),kA(e)}}return Object.defineProperty(A.registeredClass.instancePrototype,g,i),[]})),[]}))},t:function(A,g){q(A,{name:g=Z(g),fromWireType:function(A){var g=TA.toValue(A);return KA(A),g},toWireType:function(A,g){return TA.toHandle(g)},argPackAdvance:8,readValueFromPointer:xA,destructorFunction:null})},p:function(A,g,t){q(A,{name:g=Z(g),fromWireType:function(A){return A},toWireType:function(A,g){return g},argPackAdvance:8,readValueFromPointer:OA(g,t),destructorFunction:null})},g:function(A,g,t,I,e){g=Z(g);var r=function(A){return A};if(0===I){var C=32-8*t;r=function(A){return A<<C>>>C}}var B=g.includes("unsigned");q(A,{name:g,fromWireType:r,toWireType:B?function(A,g){return this.name,g>>>0}:function(A,g){return this.name,g},argPackAdvance:8,readValueFromPointer:XA(g,t,0!==I),destructorFunction:null})},a:function(A,g,t){var I=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][g];function e(A){var g=D[A>>2],t=D[A+4>>2];return new I(h.buffer,t,g)}q(A,{name:t=Z(t),fromWireType:e,argPackAdvance:8,readValueFromPointer:e},{ignoreDuplicateRegistrations:!0})},o:function(A,g){var t="std::string"===(g=Z(g));q(A,{name:g,fromWireType:function(A){var g,I,e,r=D[A>>2],C=A+4;if(t)for(var B=C,n=0;n<=r;++n){var o=C+n;if(n==r||0==l[o]){var i=(e=o-B,(I=B)?zA(l,I,e):"");void 0===g?g=i:(g+=String.fromCharCode(0),g+=i),B=o+1}}else{var Q=new Array(r);for(n=0;n<r;++n)Q[n]=String.fromCharCode(l[C+n]);g=Q.join("")}return cg(A),g},toWireType:function(A,g){var I;g instanceof ArrayBuffer&&(g=new Uint8Array(g));var e="string"==typeof g;e||g instanceof Uint8Array||g instanceof Uint8ClampedArray||g instanceof Int8Array||X("Cannot pass non-string to std::string"),I=t&&e?function(A){for(var g=0,t=0;t<A.length;++t){var I=A.charCodeAt(t);I<=127?g++:I<=2047?g+=2:I>=55296&&I<=57343?(g+=4,++t):g+=3}return g}(g):g.length;var r=ag(4+I+1),C=r+4;if(D[r>>2]=I,t&&e)!function(A,g,t,I){if(!(I>0))return 0;for(var e=t+I-1,r=0;r<A.length;++r){var C=A.charCodeAt(r);if(C>=55296&&C<=57343&&(C=65536+((1023&C)<<10)|1023&A.charCodeAt(++r)),C<=127){if(t>=e)break;g[t++]=C}else if(C<=2047){if(t+1>=e)break;g[t++]=192|C>>6,g[t++]=128|63&C}else if(C<=65535){if(t+2>=e)break;g[t++]=224|C>>12,g[t++]=128|C>>6&63,g[t++]=128|63&C}else{if(t+3>=e)break;g[t++]=240|C>>18,g[t++]=128|C>>12&63,g[t++]=128|C>>6&63,g[t++]=128|63&C}}g[t]=0}(g,l,C,I+1);else if(e)for(var B=0;B<I;++B){var n=g.charCodeAt(B);n>255&&(cg(C),X("String has UTF-16 code units that do not fit in 8 bits")),l[C+B]=n}else for(B=0;B<I;++B)l[C+B]=g[B];return null!==A&&A.push(cg,r),r},argPackAdvance:8,readValueFromPointer:wA,destructorFunction:function(A){cg(A)}})},l:function(A,g,t){var I,e,r,C,B;t=Z(t),2===g?(I=_A,e=$A,C=Ag,r=function(){return y},B=1):4===g&&(I=gg,e=tg,C=Ig,r=function(){return D},B=2),q(A,{name:t,fromWireType:function(A){for(var t,e=D[A>>2],C=r(),n=A+4,o=0;o<=e;++o){var i=A+4+o*g;if(o==e||0==C[i>>B]){var Q=I(n,i-n);void 0===t?t=Q:(t+=String.fromCharCode(0),t+=Q),n=i+g}}return cg(A),t},toWireType:function(A,I){"string"!=typeof I&&X("Cannot pass non-string to C++ string type ".concat(t));var r=C(I),n=ag(4+r+g);return D[n>>2]=r>>B,e(I,n+4,r+g),null!==A&&A.push(cg,n),n},argPackAdvance:8,readValueFromPointer:xA,destructorFunction:function(A){cg(A)}})},v:function(A,g){q(A,{isVoid:!0,name:g=Z(g),argPackAdvance:0,fromWireType:function(){},toWireType:function(A,g){}})},j:function(A,g,t){return A=TA.toValue(A),g=eg(g,"emval::as"),rg(g,t,A)},e:function(A,g,t,I,e){var r,C;return(A=Bg[A])(g=TA.toValue(g),g[t=void 0===(C=Cg[r=t])?Z(r):C],I,e)},d:KA,f:function(A,g,t){var I=function(A,g){for(var t=new Array(A),I=0;I<A;++I)t[I]=eg(D[g+4*I>>2],"parameter "+I);return t}(A,g),e=I.shift();A--;var r,C,B=new Array(A),n="methodCaller<(".concat(I.map((function(A){return A.name})).join(", "),") => ").concat(e.name,">");return r=uA(n,(function(g,r,C,n){for(var o=0,i=0;i<A;++i)B[i]=I[i].readValueFromPointer(n+o),o+=I[i].argPackAdvance;var Q=1===t?ng(r,B):r.apply(g,B);for(i=0;i<A;++i)I[i].deleteObject&&I[i].deleteObject(B[i]);return rg(e,C,Q)})),C=Bg.length,Bg.push(r),C},c:function(A){A>4&&(UA.get(A).refcount+=1)},b:function(A){var g=TA.toValue(A);kA(g),KA(A)},h:function(A,g){var t=(A=eg(A,"_emval_take_value")).readValueFromPointer(g);return TA.toHandle(t)},m:function(){b("")},s:function(A,g,t){return l.copyWithin(A,g,g+t)},r:function(A){l.length,b("OOM")},n:function(A,g,t,I){for(var e,r,C,B=0,n=0;n<t;n++){var o=D[g>>2],i=D[g+4>>2];g+=8;for(var Q=0;Q<i;Q++)e=A,r=l[o+Q],C=void 0,C=og[e],0===r||10===r?((1===e?E:a)(zA(C,0)),C.length=0):C.push(r);B+=i}return D[I>>2]=B,0}},Eg=function(){var A={a:Qg};function t(A,g){var t,I;return Eg=A.exports,Q=Eg.z,t=Q.buffer,r.HEAP8=h=new Int8Array(t),r.HEAP16=f=new Int16Array(t),r.HEAPU8=l=new Uint8Array(t),r.HEAPU16=y=new Uint16Array(t),r.HEAP32=d=new Int32Array(t),r.HEAPU32=D=new Uint32Array(t),r.HEAPF32=w=new Float32Array(t),r.HEAPF64=p=new Float64Array(t),GA=Eg.C,I=Eg.A,M.unshift(I),function(){if(m--,r.monitorRunDependencies&&r.monitorRunDependencies(m),0==m&&R){var A=R;R=null,A()}}(),Eg}if(m++,r.monitorRunDependencies&&r.monitorRunDependencies(m),r.instantiateWasm)try{return r.instantiateWasm(A,t)}catch(A){a("Module.instantiateWasm callback failed with error: ".concat(A)),g(A)}return U(0,Y,A,(function(A){t(A.instance)})).catch(g),{}}(),ag=function(A){return(ag=Eg.B)(A)},sg=function(A){return(sg=Eg.D)(A)},cg=function(A){return(cg=Eg.E)(A)},ug=function(A){return(ug=Eg.F)(A)};function hg(){function g(){ig||(ig=!0,r.calledRun=!0,G||(K(M),A(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),function(){if(r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)A=r.postRun.shift(),F.unshift(A);var A;K(F)}()))}m>0||(function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)A=r.preRun.shift(),N.unshift(A);var A;K(N)}(),m>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((function(){setTimeout((function(){r.setStatus("")}),1),g()}),1)):g()))}if(r.dynCall_jiji=function(A,g,t,I,e){return(r.dynCall_jiji=Eg.G)(A,g,t,I,e)},r._vertexShaderSource=10640,R=function A(){ig||hg(),ig||(R=A)},r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return hg(),t.ready}),R=m,b="undefined"==typeof navigator?"":navigator.userAgent,Y=function(A){return new RegExp(A,"i").test(b)},k=function(A){if(Y(A)){var g=new RegExp("".concat(A,"\\/([\\d.]+)")),t=b.match(g);if(t&&t[1])return t[1]}return""},S=function(A){if(Y(A)){var g=new RegExp("".concat(A,"\\/(\\d+)")),t=b.match(g);if(t&&t[1])return parseFloat(t[1])}return NaN},L=/AppleWebKit\/([\d.]+)/i.exec(b);L&&parseFloat(L[1]);var H=Y("iPad"),U="undefined"!=typeof navigator&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&Y("Macintosh"),K=Y("iPhone")&&!H,J=Y("iPod"),T=K||H||J||U,x=Y("Android");!function(){if(x){var A=b.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(A){var g=A[1]&&parseFloat(A[1]),t=A[2]&&parseFloat(A[2]);if(g&&t)return parseFloat("".concat(A[1],".").concat(A[2]));if(g)return g}}}();x&&Y("webkit");var j=Y("Firefox"),Z=k("Firefox");S("Firefox");var P=Y("Edge"),W=k("Edge"),O=Y("Edg"),X=k("Edg");S("Edg");var V=Y("SogouMobileBrowser"),z=k("SogouMobileBrowser"),q=Y("MetaSr\\s"),_=k("MetaSr\\s"),$=Y("TBS"),AA=k("TBS"),gA=Y("XWEB"),tA=k("XWEB");Y("MSIE\\s8\\.0");var IA=Y("MSIE\\/\\d+");!function(){if(IA){var A=/MSIE\s(\d+)\.\d/.exec(b),g=A&&parseFloat(A[1]);return!g&&/Trident\/7.0/i.test(b)&&/rv:11.0/.test(b)&&(g=11),g}}();var eA=Y("(micromessenger|webbrowser)"),rA=k("MicroMessenger"),CA=!$&&Y("MQQBrowser")&&Y("COVC"),BA=!$&&Y("MQQBrowser")&&!Y("COVC"),nA=BA||CA?k("MQQBrowser"):"",oA=!$&&Y(" QQBrowser"),iA=k(" QQBrowser"),QA=!$&&Y("QQBrowserLite"),EA=k("QQBrowserLite"),aA=!$&&Y("MQBHD"),sA=k("MQBHD");Y("Windows"),!T&&Y("MAC OS X"),!x&&Y("Linux"),Y("CrOS"),Y("MicroMessenger"),Y("UCBrowser"),Y("Electron");var cA=Y("MiuiBrowser"),uA=k("MiuiBrowser"),hA=Y("HuaweiBrowser");Y("Huawei")||Y("HUAWEI"),Y("Honor")||Y("HONOR");var lA=k("HuaweiBrowser"),fA=Y("SamsungBrowser"),yA=k("SamsungBrowser"),dA=Y("HeyTapBrowser"),DA=k("HeyTapBrowser"),wA=Y("VivoBrowser"),pA=k("VivoBrowser");Y("OpenHarmony"),k("OpenHarmony");var GA=Y("CriOS"),NA=Y("Chrome"),MA=!P&&!q&&!V&&!$&&!gA&&!O&&!oA&&!cA&&!hA&&!fA&&!dA&&!wA&&NA;Y("HeadlessChrome");var FA=S("Chrome"),vA=k("Chrome");S("Electron");var mA=!NA&&!BA&&!CA&&!QA&&!aA&&Y("Safari"),RA=k("Version"),bA=function(){if(U)return RA;if(T){var A=b.match(/OS (\d+)_(\d+)/i);if(A&&A[1]){var g=A[1];return A[2]&&(g+=".".concat(A[2])),g}}return""}();Number(bA.split(".")[0]),Number(bA.split(".")[0]),function(){var A=new Map([[j,["Firefox",Z]],[O,["Edg",X]],[MA,["Chrome",vA]],[GA,["ChiOS",k("CriOS")]],[mA&&!GA,["Safari",RA]],[$,["TBS",AA]],[gA,["XWEB",tA]],[eA&&K,["WeChat",rA]],[oA,["QQ(Win)",iA]],[BA,["QQ(Mobile)",nA]],[CA,["QQ(Mobile X5)",nA]],[QA,["QQ(Mac)",EA]],[aA,["QQ(iPad)",sA]],[cA,["MI",uA]],[hA,["HW",lA]],[fA,["Samsung",yA]],[dA,["OPPO",DA]],[wA,["VIVO",pA]],[P,["EDGE",W]],[V,["SogouMobile",z]],[q,["Sogou",_]]]),g="unknown",t="unknown";if(A.has(!0)){var I=E(A.get(!0),2);g=I[0],t=I[1]}}();var YA=1e-6,kA="undefined"!=typeof Float32Array?Float32Array:Array;Math.hypot||(Math.hypot=function(){for(var A=0,g=arguments.length;g--;)A+=arguments[g]*arguments[g];return Math.sqrt(A)});var SA={};function LA(){var A=new kA(16);return kA!=Float32Array&&(A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[11]=0,A[12]=0,A[13]=0,A[14]=0),A[0]=1,A[5]=1,A[10]=1,A[15]=1,A}function HA(A){var g=new kA(16);return g[0]=A[0],g[1]=A[1],g[2]=A[2],g[3]=A[3],g[4]=A[4],g[5]=A[5],g[6]=A[6],g[7]=A[7],g[8]=A[8],g[9]=A[9],g[10]=A[10],g[11]=A[11],g[12]=A[12],g[13]=A[13],g[14]=A[14],g[15]=A[15],g}function UA(A,g){return A[0]=g[0],A[1]=g[1],A[2]=g[2],A[3]=g[3],A[4]=g[4],A[5]=g[5],A[6]=g[6],A[7]=g[7],A[8]=g[8],A[9]=g[9],A[10]=g[10],A[11]=g[11],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15],A}function KA(A,g,t,I,e,r,C,B,n,o,i,Q,E,a,s,c){var u=new kA(16);return u[0]=A,u[1]=g,u[2]=t,u[3]=I,u[4]=e,u[5]=r,u[6]=C,u[7]=B,u[8]=n,u[9]=o,u[10]=i,u[11]=Q,u[12]=E,u[13]=a,u[14]=s,u[15]=c,u}function JA(A,g,t,I,e,r,C,B,n,o,i,Q,E,a,s,c,u){return A[0]=g,A[1]=t,A[2]=I,A[3]=e,A[4]=r,A[5]=C,A[6]=B,A[7]=n,A[8]=o,A[9]=i,A[10]=Q,A[11]=E,A[12]=a,A[13]=s,A[14]=c,A[15]=u,A}function TA(A){return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function xA(A,g){if(A===g){var t=g[1],I=g[2],e=g[3],r=g[6],C=g[7],B=g[11];A[1]=g[4],A[2]=g[8],A[3]=g[12],A[4]=t,A[6]=g[9],A[7]=g[13],A[8]=I,A[9]=r,A[11]=g[14],A[12]=e,A[13]=C,A[14]=B}else A[0]=g[0],A[1]=g[4],A[2]=g[8],A[3]=g[12],A[4]=g[1],A[5]=g[5],A[6]=g[9],A[7]=g[13],A[8]=g[2],A[9]=g[6],A[10]=g[10],A[11]=g[14],A[12]=g[3],A[13]=g[7],A[14]=g[11],A[15]=g[15];return A}function jA(A,g){var t=g[0],I=g[1],e=g[2],r=g[3],C=g[4],B=g[5],n=g[6],o=g[7],i=g[8],Q=g[9],E=g[10],a=g[11],s=g[12],c=g[13],u=g[14],h=g[15],l=t*B-I*C,f=t*n-e*C,y=t*o-r*C,d=I*n-e*B,D=I*o-r*B,w=e*o-r*n,p=i*c-Q*s,G=i*u-E*s,N=i*h-a*s,M=Q*u-E*c,F=Q*h-a*c,v=E*h-a*u,m=l*v-f*F+y*M+d*N-D*G+w*p;return m?(m=1/m,A[0]=(B*v-n*F+o*M)*m,A[1]=(e*F-I*v-r*M)*m,A[2]=(c*w-u*D+h*d)*m,A[3]=(E*D-Q*w-a*d)*m,A[4]=(n*N-C*v-o*G)*m,A[5]=(t*v-e*N+r*G)*m,A[6]=(u*y-s*w-h*f)*m,A[7]=(i*w-E*y+a*f)*m,A[8]=(C*F-B*N+o*p)*m,A[9]=(I*N-t*F-r*p)*m,A[10]=(s*D-c*y+h*l)*m,A[11]=(Q*y-i*D-a*l)*m,A[12]=(B*G-C*M-n*p)*m,A[13]=(t*M-I*G+e*p)*m,A[14]=(c*f-s*d-u*l)*m,A[15]=(i*d-Q*f+E*l)*m,A):null}function ZA(A,g){var t=g[0],I=g[1],e=g[2],r=g[3],C=g[4],B=g[5],n=g[6],o=g[7],i=g[8],Q=g[9],E=g[10],a=g[11],s=g[12],c=g[13],u=g[14],h=g[15];return A[0]=B*(E*h-a*u)-Q*(n*h-o*u)+c*(n*a-o*E),A[1]=-(I*(E*h-a*u)-Q*(e*h-r*u)+c*(e*a-r*E)),A[2]=I*(n*h-o*u)-B*(e*h-r*u)+c*(e*o-r*n),A[3]=-(I*(n*a-o*E)-B*(e*a-r*E)+Q*(e*o-r*n)),A[4]=-(C*(E*h-a*u)-i*(n*h-o*u)+s*(n*a-o*E)),A[5]=t*(E*h-a*u)-i*(e*h-r*u)+s*(e*a-r*E),A[6]=-(t*(n*h-o*u)-C*(e*h-r*u)+s*(e*o-r*n)),A[7]=t*(n*a-o*E)-C*(e*a-r*E)+i*(e*o-r*n),A[8]=C*(Q*h-a*c)-i*(B*h-o*c)+s*(B*a-o*Q),A[9]=-(t*(Q*h-a*c)-i*(I*h-r*c)+s*(I*a-r*Q)),A[10]=t*(B*h-o*c)-C*(I*h-r*c)+s*(I*o-r*B),A[11]=-(t*(B*a-o*Q)-C*(I*a-r*Q)+i*(I*o-r*B)),A[12]=-(C*(Q*u-E*c)-i*(B*u-n*c)+s*(B*E-n*Q)),A[13]=t*(Q*u-E*c)-i*(I*u-e*c)+s*(I*E-e*Q),A[14]=-(t*(B*u-n*c)-C*(I*u-e*c)+s*(I*n-e*B)),A[15]=t*(B*E-n*Q)-C*(I*E-e*Q)+i*(I*n-e*B),A}function PA(A){var g=A[0],t=A[1],I=A[2],e=A[3],r=A[4],C=A[5],B=A[6],n=A[7],o=A[8],i=A[9],Q=A[10],E=A[11],a=A[12],s=A[13],c=A[14],u=A[15];return(g*C-t*r)*(Q*u-E*c)-(g*B-I*r)*(i*u-E*s)+(g*n-e*r)*(i*c-Q*s)+(t*B-I*C)*(o*u-E*a)-(t*n-e*C)*(o*c-Q*a)+(I*n-e*B)*(o*s-i*a)}function WA(A,g,t){var I=g[0],e=g[1],r=g[2],C=g[3],B=g[4],n=g[5],o=g[6],i=g[7],Q=g[8],E=g[9],a=g[10],s=g[11],c=g[12],u=g[13],h=g[14],l=g[15],f=t[0],y=t[1],d=t[2],D=t[3];return A[0]=f*I+y*B+d*Q+D*c,A[1]=f*e+y*n+d*E+D*u,A[2]=f*r+y*o+d*a+D*h,A[3]=f*C+y*i+d*s+D*l,f=t[4],y=t[5],d=t[6],D=t[7],A[4]=f*I+y*B+d*Q+D*c,A[5]=f*e+y*n+d*E+D*u,A[6]=f*r+y*o+d*a+D*h,A[7]=f*C+y*i+d*s+D*l,f=t[8],y=t[9],d=t[10],D=t[11],A[8]=f*I+y*B+d*Q+D*c,A[9]=f*e+y*n+d*E+D*u,A[10]=f*r+y*o+d*a+D*h,A[11]=f*C+y*i+d*s+D*l,f=t[12],y=t[13],d=t[14],D=t[15],A[12]=f*I+y*B+d*Q+D*c,A[13]=f*e+y*n+d*E+D*u,A[14]=f*r+y*o+d*a+D*h,A[15]=f*C+y*i+d*s+D*l,A}function OA(A,g,t){var I,e,r,C,B,n,o,i,Q,E,a,s,c=t[0],u=t[1],h=t[2];return g===A?(A[12]=g[0]*c+g[4]*u+g[8]*h+g[12],A[13]=g[1]*c+g[5]*u+g[9]*h+g[13],A[14]=g[2]*c+g[6]*u+g[10]*h+g[14],A[15]=g[3]*c+g[7]*u+g[11]*h+g[15]):(I=g[0],e=g[1],r=g[2],C=g[3],B=g[4],n=g[5],o=g[6],i=g[7],Q=g[8],E=g[9],a=g[10],s=g[11],A[0]=I,A[1]=e,A[2]=r,A[3]=C,A[4]=B,A[5]=n,A[6]=o,A[7]=i,A[8]=Q,A[9]=E,A[10]=a,A[11]=s,A[12]=I*c+B*u+Q*h+g[12],A[13]=e*c+n*u+E*h+g[13],A[14]=r*c+o*u+a*h+g[14],A[15]=C*c+i*u+s*h+g[15]),A}function XA(A,g,t){var I=t[0],e=t[1],r=t[2];return A[0]=g[0]*I,A[1]=g[1]*I,A[2]=g[2]*I,A[3]=g[3]*I,A[4]=g[4]*e,A[5]=g[5]*e,A[6]=g[6]*e,A[7]=g[7]*e,A[8]=g[8]*r,A[9]=g[9]*r,A[10]=g[10]*r,A[11]=g[11]*r,A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15],A}function VA(A,g,t,I){var e,r,C,B,n,o,i,Q,E,a,s,c,u,h,l,f,y,d,D,w,p,G,N,M,F=I[0],v=I[1],m=I[2],R=Math.hypot(F,v,m);return R<YA?null:(F*=R=1/R,v*=R,m*=R,e=Math.sin(t),C=1-(r=Math.cos(t)),B=g[0],n=g[1],o=g[2],i=g[3],Q=g[4],E=g[5],a=g[6],s=g[7],c=g[8],u=g[9],h=g[10],l=g[11],f=F*F*C+r,y=v*F*C+m*e,d=m*F*C-v*e,D=F*v*C-m*e,w=v*v*C+r,p=m*v*C+F*e,G=F*m*C+v*e,N=v*m*C-F*e,M=m*m*C+r,A[0]=B*f+Q*y+c*d,A[1]=n*f+E*y+u*d,A[2]=o*f+a*y+h*d,A[3]=i*f+s*y+l*d,A[4]=B*D+Q*w+c*p,A[5]=n*D+E*w+u*p,A[6]=o*D+a*w+h*p,A[7]=i*D+s*w+l*p,A[8]=B*G+Q*N+c*M,A[9]=n*G+E*N+u*M,A[10]=o*G+a*N+h*M,A[11]=i*G+s*N+l*M,g!==A&&(A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A)}function zA(A,g,t){var I=Math.sin(t),e=Math.cos(t),r=g[4],C=g[5],B=g[6],n=g[7],o=g[8],i=g[9],Q=g[10],E=g[11];return g!==A&&(A[0]=g[0],A[1]=g[1],A[2]=g[2],A[3]=g[3],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A[4]=r*e+o*I,A[5]=C*e+i*I,A[6]=B*e+Q*I,A[7]=n*e+E*I,A[8]=o*e-r*I,A[9]=i*e-C*I,A[10]=Q*e-B*I,A[11]=E*e-n*I,A}function qA(A,g,t){var I=Math.sin(t),e=Math.cos(t),r=g[0],C=g[1],B=g[2],n=g[3],o=g[8],i=g[9],Q=g[10],E=g[11];return g!==A&&(A[4]=g[4],A[5]=g[5],A[6]=g[6],A[7]=g[7],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A[0]=r*e-o*I,A[1]=C*e-i*I,A[2]=B*e-Q*I,A[3]=n*e-E*I,A[8]=r*I+o*e,A[9]=C*I+i*e,A[10]=B*I+Q*e,A[11]=n*I+E*e,A}function _A(A,g,t){var I=Math.sin(t),e=Math.cos(t),r=g[0],C=g[1],B=g[2],n=g[3],o=g[4],i=g[5],Q=g[6],E=g[7];return g!==A&&(A[8]=g[8],A[9]=g[9],A[10]=g[10],A[11]=g[11],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A[0]=r*e+o*I,A[1]=C*e+i*I,A[2]=B*e+Q*I,A[3]=n*e+E*I,A[4]=o*e-r*I,A[5]=i*e-C*I,A[6]=Q*e-B*I,A[7]=E*e-n*I,A}function $A(A,g){return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=g[0],A[13]=g[1],A[14]=g[2],A[15]=1,A}function Ag(A,g){return A[0]=g[0],A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=g[1],A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=g[2],A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function gg(A,g,t){var I,e,r,C=t[0],B=t[1],n=t[2],o=Math.hypot(C,B,n);return o<YA?null:(C*=o=1/o,B*=o,n*=o,I=Math.sin(g),r=1-(e=Math.cos(g)),A[0]=C*C*r+e,A[1]=B*C*r+n*I,A[2]=n*C*r-B*I,A[3]=0,A[4]=C*B*r-n*I,A[5]=B*B*r+e,A[6]=n*B*r+C*I,A[7]=0,A[8]=C*n*r+B*I,A[9]=B*n*r-C*I,A[10]=n*n*r+e,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A)}function tg(A,g){var t=Math.sin(g),I=Math.cos(g);return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=I,A[6]=t,A[7]=0,A[8]=0,A[9]=-t,A[10]=I,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function Ig(A,g){var t=Math.sin(g),I=Math.cos(g);return A[0]=I,A[1]=0,A[2]=-t,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=t,A[9]=0,A[10]=I,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function eg(A,g){var t=Math.sin(g),I=Math.cos(g);return A[0]=I,A[1]=t,A[2]=0,A[3]=0,A[4]=-t,A[5]=I,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function rg(A,g,t){var I=g[0],e=g[1],r=g[2],C=g[3],B=I+I,n=e+e,o=r+r,i=I*B,Q=I*n,E=I*o,a=e*n,s=e*o,c=r*o,u=C*B,h=C*n,l=C*o;return A[0]=1-(a+c),A[1]=Q+l,A[2]=E-h,A[3]=0,A[4]=Q-l,A[5]=1-(i+c),A[6]=s+u,A[7]=0,A[8]=E+h,A[9]=s-u,A[10]=1-(i+a),A[11]=0,A[12]=t[0],A[13]=t[1],A[14]=t[2],A[15]=1,A}function Cg(A,g){var t=new kA(3),I=-g[0],e=-g[1],r=-g[2],C=g[3],B=g[4],n=g[5],o=g[6],i=g[7],Q=I*I+e*e+r*r+C*C;return Q>0?(t[0]=2*(B*C+i*I+n*r-o*e)/Q,t[1]=2*(n*C+i*e+o*I-B*r)/Q,t[2]=2*(o*C+i*r+B*e-n*I)/Q):(t[0]=2*(B*C+i*I+n*r-o*e),t[1]=2*(n*C+i*e+o*I-B*r),t[2]=2*(o*C+i*r+B*e-n*I)),rg(A,g,t),A}function Bg(A,g){return A[0]=g[12],A[1]=g[13],A[2]=g[14],A}function ng(A,g){var t=g[0],I=g[1],e=g[2],r=g[4],C=g[5],B=g[6],n=g[8],o=g[9],i=g[10];return A[0]=Math.hypot(t,I,e),A[1]=Math.hypot(r,C,B),A[2]=Math.hypot(n,o,i),A}function og(A,g){var t=new kA(3);ng(t,g);var I=1/t[0],e=1/t[1],r=1/t[2],C=g[0]*I,B=g[1]*e,n=g[2]*r,o=g[4]*I,i=g[5]*e,Q=g[6]*r,E=g[8]*I,a=g[9]*e,s=g[10]*r,c=C+i+s,u=0;return c>0?(u=2*Math.sqrt(c+1),A[3]=.25*u,A[0]=(Q-a)/u,A[1]=(E-n)/u,A[2]=(B-o)/u):C>i&&C>s?(u=2*Math.sqrt(1+C-i-s),A[3]=(Q-a)/u,A[0]=.25*u,A[1]=(B+o)/u,A[2]=(E+n)/u):i>s?(u=2*Math.sqrt(1+i-C-s),A[3]=(E-n)/u,A[0]=(B+o)/u,A[1]=.25*u,A[2]=(Q+a)/u):(u=2*Math.sqrt(1+s-C-i),A[3]=(B-o)/u,A[0]=(E+n)/u,A[1]=(Q+a)/u,A[2]=.25*u),A}function ig(A,g,t,I){var e=g[0],r=g[1],C=g[2],B=g[3],n=e+e,o=r+r,i=C+C,Q=e*n,E=e*o,a=e*i,s=r*o,c=r*i,u=C*i,h=B*n,l=B*o,f=B*i,y=I[0],d=I[1],D=I[2];return A[0]=(1-(s+u))*y,A[1]=(E+f)*y,A[2]=(a-l)*y,A[3]=0,A[4]=(E-f)*d,A[5]=(1-(Q+u))*d,A[6]=(c+h)*d,A[7]=0,A[8]=(a+l)*D,A[9]=(c-h)*D,A[10]=(1-(Q+s))*D,A[11]=0,A[12]=t[0],A[13]=t[1],A[14]=t[2],A[15]=1,A}function Qg(A,g,t,I,e){var r=g[0],C=g[1],B=g[2],n=g[3],o=r+r,i=C+C,Q=B+B,E=r*o,a=r*i,s=r*Q,c=C*i,u=C*Q,h=B*Q,l=n*o,f=n*i,y=n*Q,d=I[0],D=I[1],w=I[2],p=e[0],G=e[1],N=e[2],M=(1-(c+h))*d,F=(a+y)*d,v=(s-f)*d,m=(a-y)*D,R=(1-(E+h))*D,b=(u+l)*D,Y=(s+f)*w,k=(u-l)*w,S=(1-(E+c))*w;return A[0]=M,A[1]=F,A[2]=v,A[3]=0,A[4]=m,A[5]=R,A[6]=b,A[7]=0,A[8]=Y,A[9]=k,A[10]=S,A[11]=0,A[12]=t[0]+p-(M*p+m*G+Y*N),A[13]=t[1]+G-(F*p+R*G+k*N),A[14]=t[2]+N-(v*p+b*G+S*N),A[15]=1,A}function Eg(A,g){var t=g[0],I=g[1],e=g[2],r=g[3],C=t+t,B=I+I,n=e+e,o=t*C,i=I*C,Q=I*B,E=e*C,a=e*B,s=e*n,c=r*C,u=r*B,h=r*n;return A[0]=1-Q-s,A[1]=i+h,A[2]=E-u,A[3]=0,A[4]=i-h,A[5]=1-o-s,A[6]=a+c,A[7]=0,A[8]=E+u,A[9]=a-c,A[10]=1-o-Q,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function ag(A,g,t,I,e,r,C){var B=1/(t-g),n=1/(e-I),o=1/(r-C);return A[0]=2*r*B,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=2*r*n,A[6]=0,A[7]=0,A[8]=(t+g)*B,A[9]=(e+I)*n,A[10]=(C+r)*o,A[11]=-1,A[12]=0,A[13]=0,A[14]=C*r*2*o,A[15]=0,A}function sg(A,g,t,I,e){var r,C=1/Math.tan(g/2);return A[0]=C/t,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=C,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[11]=-1,A[12]=0,A[13]=0,A[15]=0,null!=e&&e!==1/0?(r=1/(I-e),A[10]=(e+I)*r,A[14]=2*e*I*r):(A[10]=-1,A[14]=-2*I),A}!function(A,g){for(var t in g)h(A,t,{get:g[t],enumerable:!0})}(SA,{add:function(){return Gg},adjoint:function(){return ZA},clone:function(){return HA},copy:function(){return UA},create:function(){return LA},determinant:function(){return PA},equals:function(){return mg},exactEquals:function(){return vg},frob:function(){return pg},fromQuat:function(){return Eg},fromQuat2:function(){return Cg},fromRotation:function(){return gg},fromRotationTranslation:function(){return rg},fromRotationTranslationScale:function(){return ig},fromRotationTranslationScaleOrigin:function(){return Qg},fromScaling:function(){return Ag},fromTranslation:function(){return $A},fromValues:function(){return KA},fromXRotation:function(){return tg},fromYRotation:function(){return Ig},fromZRotation:function(){return eg},frustum:function(){return ag},getRotation:function(){return og},getScaling:function(){return ng},getTranslation:function(){return Bg},identity:function(){return TA},invert:function(){return jA},lookAt:function(){return dg},mul:function(){return Rg},multiply:function(){return WA},multiplyScalar:function(){return Mg},multiplyScalarAndAdd:function(){return Fg},ortho:function(){return fg},orthoNO:function(){return lg},orthoZO:function(){return yg},perspective:function(){return cg},perspectiveFromFieldOfView:function(){return hg},perspectiveNO:function(){return sg},perspectiveZO:function(){return ug},rotate:function(){return VA},rotateX:function(){return zA},rotateY:function(){return qA},rotateZ:function(){return _A},scale:function(){return XA},set:function(){return JA},str:function(){return wg},sub:function(){return bg},subtract:function(){return Ng},targetTo:function(){return Dg},translate:function(){return OA},transpose:function(){return xA}});var cg=sg;function ug(A,g,t,I,e){var r,C=1/Math.tan(g/2);return A[0]=C/t,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=C,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[11]=-1,A[12]=0,A[13]=0,A[15]=0,null!=e&&e!==1/0?(r=1/(I-e),A[10]=e*r,A[14]=e*I*r):(A[10]=-1,A[14]=-I),A}function hg(A,g,t,I){var e=Math.tan(g.upDegrees*Math.PI/180),r=Math.tan(g.downDegrees*Math.PI/180),C=Math.tan(g.leftDegrees*Math.PI/180),B=Math.tan(g.rightDegrees*Math.PI/180),n=2/(C+B),o=2/(e+r);return A[0]=n,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=o,A[6]=0,A[7]=0,A[8]=-(C-B)*n*.5,A[9]=(e-r)*o*.5,A[10]=I/(t-I),A[11]=-1,A[12]=0,A[13]=0,A[14]=I*t/(t-I),A[15]=0,A}function lg(A,g,t,I,e,r,C){var B=1/(g-t),n=1/(I-e),o=1/(r-C);return A[0]=-2*B,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=-2*n,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=2*o,A[11]=0,A[12]=(g+t)*B,A[13]=(e+I)*n,A[14]=(C+r)*o,A[15]=1,A}var fg=lg;function yg(A,g,t,I,e,r,C){var B=1/(g-t),n=1/(I-e),o=1/(r-C);return A[0]=-2*B,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=-2*n,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=o,A[11]=0,A[12]=(g+t)*B,A[13]=(e+I)*n,A[14]=r*o,A[15]=1,A}function dg(A,g,t,I){var e,r,C,B,n,o,i,Q,E,a,s=g[0],c=g[1],u=g[2],h=I[0],l=I[1],f=I[2],y=t[0],d=t[1],D=t[2];return Math.abs(s-y)<YA&&Math.abs(c-d)<YA&&Math.abs(u-D)<YA?TA(A):(i=s-y,Q=c-d,E=u-D,e=l*(E*=a=1/Math.hypot(i,Q,E))-f*(Q*=a),r=f*(i*=a)-h*E,C=h*Q-l*i,(a=Math.hypot(e,r,C))?(e*=a=1/a,r*=a,C*=a):(e=0,r=0,C=0),B=Q*C-E*r,n=E*e-i*C,o=i*r-Q*e,(a=Math.hypot(B,n,o))?(B*=a=1/a,n*=a,o*=a):(B=0,n=0,o=0),A[0]=e,A[1]=B,A[2]=i,A[3]=0,A[4]=r,A[5]=n,A[6]=Q,A[7]=0,A[8]=C,A[9]=o,A[10]=E,A[11]=0,A[12]=-(e*s+r*c+C*u),A[13]=-(B*s+n*c+o*u),A[14]=-(i*s+Q*c+E*u),A[15]=1,A)}function Dg(A,g,t,I){var e=g[0],r=g[1],C=g[2],B=I[0],n=I[1],o=I[2],i=e-t[0],Q=r-t[1],E=C-t[2],a=i*i+Q*Q+E*E;a>0&&(i*=a=1/Math.sqrt(a),Q*=a,E*=a);var s=n*E-o*Q,c=o*i-B*E,u=B*Q-n*i;return(a=s*s+c*c+u*u)>0&&(s*=a=1/Math.sqrt(a),c*=a,u*=a),A[0]=s,A[1]=c,A[2]=u,A[3]=0,A[4]=Q*u-E*c,A[5]=E*s-i*u,A[6]=i*c-Q*s,A[7]=0,A[8]=i,A[9]=Q,A[10]=E,A[11]=0,A[12]=e,A[13]=r,A[14]=C,A[15]=1,A}function wg(A){return"mat4("+A[0]+", "+A[1]+", "+A[2]+", "+A[3]+", "+A[4]+", "+A[5]+", "+A[6]+", "+A[7]+", "+A[8]+", "+A[9]+", "+A[10]+", "+A[11]+", "+A[12]+", "+A[13]+", "+A[14]+", "+A[15]+")"}function pg(A){return Math.hypot(A[0],A[1],A[2],A[3],A[4],A[5],A[6],A[7],A[8],A[9],A[10],A[11],A[12],A[13],A[14],A[15])}function Gg(A,g,t){return A[0]=g[0]+t[0],A[1]=g[1]+t[1],A[2]=g[2]+t[2],A[3]=g[3]+t[3],A[4]=g[4]+t[4],A[5]=g[5]+t[5],A[6]=g[6]+t[6],A[7]=g[7]+t[7],A[8]=g[8]+t[8],A[9]=g[9]+t[9],A[10]=g[10]+t[10],A[11]=g[11]+t[11],A[12]=g[12]+t[12],A[13]=g[13]+t[13],A[14]=g[14]+t[14],A[15]=g[15]+t[15],A}function Ng(A,g,t){return A[0]=g[0]-t[0],A[1]=g[1]-t[1],A[2]=g[2]-t[2],A[3]=g[3]-t[3],A[4]=g[4]-t[4],A[5]=g[5]-t[5],A[6]=g[6]-t[6],A[7]=g[7]-t[7],A[8]=g[8]-t[8],A[9]=g[9]-t[9],A[10]=g[10]-t[10],A[11]=g[11]-t[11],A[12]=g[12]-t[12],A[13]=g[13]-t[13],A[14]=g[14]-t[14],A[15]=g[15]-t[15],A}function Mg(A,g,t){return A[0]=g[0]*t,A[1]=g[1]*t,A[2]=g[2]*t,A[3]=g[3]*t,A[4]=g[4]*t,A[5]=g[5]*t,A[6]=g[6]*t,A[7]=g[7]*t,A[8]=g[8]*t,A[9]=g[9]*t,A[10]=g[10]*t,A[11]=g[11]*t,A[12]=g[12]*t,A[13]=g[13]*t,A[14]=g[14]*t,A[15]=g[15]*t,A}function Fg(A,g,t,I){return A[0]=g[0]+t[0]*I,A[1]=g[1]+t[1]*I,A[2]=g[2]+t[2]*I,A[3]=g[3]+t[3]*I,A[4]=g[4]+t[4]*I,A[5]=g[5]+t[5]*I,A[6]=g[6]+t[6]*I,A[7]=g[7]+t[7]*I,A[8]=g[8]+t[8]*I,A[9]=g[9]+t[9]*I,A[10]=g[10]+t[10]*I,A[11]=g[11]+t[11]*I,A[12]=g[12]+t[12]*I,A[13]=g[13]+t[13]*I,A[14]=g[14]+t[14]*I,A[15]=g[15]+t[15]*I,A}function vg(A,g){return A[0]===g[0]&&A[1]===g[1]&&A[2]===g[2]&&A[3]===g[3]&&A[4]===g[4]&&A[5]===g[5]&&A[6]===g[6]&&A[7]===g[7]&&A[8]===g[8]&&A[9]===g[9]&&A[10]===g[10]&&A[11]===g[11]&&A[12]===g[12]&&A[13]===g[13]&&A[14]===g[14]&&A[15]===g[15]}function mg(A,g){var t=A[0],I=A[1],e=A[2],r=A[3],C=A[4],B=A[5],n=A[6],o=A[7],i=A[8],Q=A[9],E=A[10],a=A[11],s=A[12],c=A[13],u=A[14],h=A[15],l=g[0],f=g[1],y=g[2],d=g[3],D=g[4],w=g[5],p=g[6],G=g[7],N=g[8],M=g[9],F=g[10],v=g[11],m=g[12],R=g[13],b=g[14],Y=g[15];return Math.abs(t-l)<=YA*Math.max(1,Math.abs(t),Math.abs(l))&&Math.abs(I-f)<=YA*Math.max(1,Math.abs(I),Math.abs(f))&&Math.abs(e-y)<=YA*Math.max(1,Math.abs(e),Math.abs(y))&&Math.abs(r-d)<=YA*Math.max(1,Math.abs(r),Math.abs(d))&&Math.abs(C-D)<=YA*Math.max(1,Math.abs(C),Math.abs(D))&&Math.abs(B-w)<=YA*Math.max(1,Math.abs(B),Math.abs(w))&&Math.abs(n-p)<=YA*Math.max(1,Math.abs(n),Math.abs(p))&&Math.abs(o-G)<=YA*Math.max(1,Math.abs(o),Math.abs(G))&&Math.abs(i-N)<=YA*Math.max(1,Math.abs(i),Math.abs(N))&&Math.abs(Q-M)<=YA*Math.max(1,Math.abs(Q),Math.abs(M))&&Math.abs(E-F)<=YA*Math.max(1,Math.abs(E),Math.abs(F))&&Math.abs(a-v)<=YA*Math.max(1,Math.abs(a),Math.abs(v))&&Math.abs(s-m)<=YA*Math.max(1,Math.abs(s),Math.abs(m))&&Math.abs(c-R)<=YA*Math.max(1,Math.abs(c),Math.abs(R))&&Math.abs(u-b)<=YA*Math.max(1,Math.abs(u),Math.abs(b))&&Math.abs(h-Y)<=YA*Math.max(1,Math.abs(h),Math.abs(Y))}var Rg=WA,bg=Ng,Yg="#version 300 es\nin vec2 a_position;\nin vec2 a_texCoord;\nout vec2 v_texCoord;\nvoid main() {\n gl_Position = vec4(a_position.x, a_position.y, 0, 1);\n v_texCoord = a_texCoord;\n}",kg=function(A){return"precision highp float;\nuniform sampler2D mask;in vec2 v_texCoord;\nout vec4 outColor;\nvoid main() {".concat(A,"}")},Sg="#version 300 es\nuniform sampler2D lastMask;\n".concat(kg("highp float current = texture(mask, v_texCoord).r;\n highp float previous = texture(lastMask, v_texCoord).r;\n highp float diff = abs(current - previous);\n const float smoothFactor = 0.05; \n const float threshold = 0.3;\n highp float blendedMask = diff < threshold \n ? previous * (1.0 - smoothFactor) + current * smoothFactor \n : current;\n outColor = vec4(blendedMask,0.0,0.0, 1.0);"),"\n"),Lg="#version 300 es\n".concat(kg(" vec2 o = 1.0 / vec2(textureSize(mask, 0)); \n float size = 3.0; \n int sizeDb = int(size*size);\n float samples[9];\n int idx = 0;\n float side = (size - 1.0) / 2.0;\n for (float x = -side; x <= side; x += 1.0) {\n for (float y = -side; y <= side; y += 1.0) {\n vec2 sampleCoord = v_texCoord + vec2(x, y) * o;\n int index = int((x + 1.0) * size + (y + 1.0));\n samples[index] = texture(mask, sampleCoord).r;\n }\n }\n for (int i = 0; i < sizeDb - 1; i++) {\n for (int j = 0; j < sizeDb - 1 - i; j++) {\n if (samples[j] > samples[j + 1]) {\n float temp = samples[j];\n samples[j] = samples[j + 1];\n samples[j + 1] = temp;\n }\n }\n }\n float endR=samples[sizeDb/2]>0.5?1.0:0.0;\n outColor = vec4(endR, 0.0, 0.0, 1.0);"),"\n"),Hg="#version 300 es\n".concat(kg(" vec2 o = 1.0 / vec2(textureSize(mask, 0));\n float size = 3.0; \n float side = (size - 1.0) / 2.0;\n float stronglyEroded = 1.0;\n for (float x = -side; x <= side; x += 1.0) {\n for (float y = -side; y <= side; y += 1.0) {\n vec2 sampleCoord = v_texCoord + vec2(x, y) * o;\n stronglyEroded = min(stronglyEroded, texture(mask, sampleCoord).r);\n }\n }\n outColor = vec4(stronglyEroded, 0.0, 0.0, 1.0);"),"\n"),Ug=function(){return C((function A(){e(this,A),G(this,"gl"),G(this,"positionBuffer"),G(this,"texCoordBuffer"),G(this,"ratio"),G(this,"_tdProgram"),G(this,"_kcProgram"),G(this,"_mdProgram"),G(this,"_edgeProgram"),G(this,"_borderProgram"),G(this,"_lastMaskTexture")}),[{key:"init",value:function(A,g,t,I){this.initParams(A,g,t,I),this.initPrograms()}},{key:"initParams",value:function(A,g,t,I){this.gl=A,this.positionBuffer=g,this.texCoordBuffer=t,this.ratio=I}},{key:"initPrograms",value:function(){this._tdProgram=this.createProgram(Yg,Sg,["mask","lastMask"]),this._mdProgram=this.createProgram(Yg,Lg,["mask"]),this._kcProgram=this.createProgram(Yg,Hg,["mask"]),this._borderProgram=this.createProgram(Yg,"#version 300 es\nprecision highp float;\nuniform sampler2D mask;\nuniform sampler2D originalMask;\nuniform sampler2D maskEdge;\nin vec2 v_texCoord;\nout vec4 outColor;\nfloat u_highThreshold = 0.9; \nfloat u_smoothSigma = 2.0; \nfloat u_featherRadius = 4.0; \nfloat balancedTransition(float value) {\n return value * value * (3.0 - 2.0 * value);\n}\nfloat hybridBlur(sampler2D tex, vec2 uv, vec2 texelSize, float edgeIntensity, float sigma) {\n float edgeWeight = smoothstep(u_highThreshold * 0.8, u_highThreshold, edgeIntensity);\n if (edgeWeight < u_highThreshold * 0.8) {\n return texture(tex, uv).r; \n }\n float adaptiveRadius = mix(u_featherRadius * 0.5, u_featherRadius * 1.5, edgeWeight);\n int kernelSize = int(ceil(2.5 * sigma)); \n float sum = 0.0;\n float weightSum = 0.0;\n for (int i = -kernelSize; i <= kernelSize; i++) {\n for (int j = -kernelSize; j <= kernelSize; j++) {\n vec2 offset = vec2(float(i), float(j)) * texelSize * adaptiveRadius;\n vec2 sampleUV = uv + offset;\n float sampleValue = texture(originalMask, sampleUV).r;\n float dist = length(vec2(i, j)) / float(kernelSize);\n float weight = 1.0 - balancedTransition(dist);\n sum += sampleValue * weight;\n weightSum += weight;\n }\n }\n return sum / weightSum;\n}\nvoid main() {\n vec2 texelSize = 1.0 / vec2(textureSize(mask, 0));\n float edge = texture(maskEdge, v_texCoord).r;\n float centerValue = texture(mask, v_texCoord).r;\n float smoothedValue = hybridBlur(mask, v_texCoord, texelSize, edge, u_smoothSigma);\n float finalAlpha;\n if (edge == 1.0) {\n finalAlpha = smoothedValue;\n } else if (centerValue > 0.70) {\n finalAlpha = 1.0;\n } else if (centerValue < 0.30) {\n finalAlpha = 0.0;\n } else {\n float t = balancedTransition((centerValue - 0.30));\n finalAlpha = mix(centerValue, smoothedValue, 1.0 - t * 0.95);\n }\n outColor = vec4(finalAlpha, 0.0, 0.0, 1.0);\n}\n",["mask","maskEdge","originalMask"]),this._edgeProgram=this.createProgram(Yg,"#version 300 es\nprecision highp float;\nuniform sampler2D mask;\nin vec2 v_texCoord;\nout vec4 outColor;\nfloat u_gradientScale = 0.25;\nconst float SOBEL_KERNEL_X[9] = float[9](\n -1.0, 0.0, 1.0,\n -2.0, 0.0, 2.0,\n -1.0, 0.0, 1.0\n);\nconst float SOBEL_KERNEL_Y[9] = float[9](\n -1.0, -2.0, -1.0,\n 0.0, 0.0, 0.0,\n 1.0, 2.0, 1.0\n);\nfloat nonMaxSuppression(float gradient, vec2 uv, vec2 texelSize, float angle) {\n vec2 dir = vec2(cos(angle), sin(angle));\n vec2 offset1 = dir * texelSize;\n vec2 offset2 = -dir * texelSize;\n float n1 = texture(mask, uv + offset1).r;\n float n2 = texture(mask, uv + offset2).r;\n return (gradient >= n1 && gradient >= n2) ? gradient : 0.0;\n}\nvoid main() {\n vec2 o = 1.0 / vec2(textureSize(mask, 0));\n float gx = 0.0, gy = 0.0;\n for (int i = -1; i <= 1; i++) {\n for (int j = -1; j <= 1; j++) {\n vec2 offset = vec2(float(i), float(j)) * o;\n float maskValue = texture(mask, v_texCoord + offset).r;\n int idx = (i+1)*3 + (j+1);\n gx += maskValue * SOBEL_KERNEL_X[idx];\n gy += maskValue * SOBEL_KERNEL_Y[idx];\n }\n }\n float gradient = sqrt(gx*gx + gy*gy) * u_gradientScale;\n float angle = atan(gy, gx);\n float nmsEdge = nonMaxSuppression(gradient, v_texCoord, o, angle);\n float edge = nmsEdge > 0.0 ? 1.0 : 0.0;\n outColor = vec4(edge, 0.0, 0.0, 1.0);\n}\n",["mask"])}},{key:"setAttributes",value:function(){for(var A=this.gl,g=arguments.length,t=new Array(g),I=0;I<g;I++)t[I]=arguments[I];t.forEach((function(g,t){A.enableVertexAttribArray(t),A.bindBuffer(A.ARRAY_BUFFER,g),A.vertexAttribPointer(t,2,A.FLOAT,!1,0,0)}))}},{key:"createShader",value:function(A,g){var t=this.gl,I=t.createShader(A);return t.shaderSource(I,g),t.compileShader(I),I}},{key:"createProgram",value:function(A,g,t){var I=this.gl,e=this.createShader(I.FRAGMENT_SHADER,g),r=this.createShader(I.VERTEX_SHADER,A),C=I.createProgram();if(I.attachShader(C,r),I.attachShader(C,e),I.linkProgram(C),!I.getProgramParameter(C,I.LINK_STATUS))throw new Error("".concat(I.getProgramInfoLog(C)));return I.useProgram(C),this.setAttributes(this.positionBuffer,this.texCoordBuffer),t.forEach((function(A,g){I.uniform1i(I.getUniformLocation(C,A),1+g)})),C}},{key:"createFramebuffer",value:function(A){var g=this.gl,t=g.createFramebuffer();return g.bindFramebuffer(g.FRAMEBUFFER,t),g.framebufferTexture2D(g.FRAMEBUFFER,g.COLOR_ATTACHMENT0,g.TEXTURE_2D,A,0),t}},{key:"getTempTexture",value:function(A,g){var t,I,e=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=arguments.length>3?arguments[3]:void 0,C=this.gl;C.useProgram(A),this.ratio===16/9?(t=640,I=360):(t=640,I=480);var B=C.createTexture();C.activeTexture(C.TEXTURE0),C.bindTexture(C.TEXTURE_2D,B),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MIN_FILTER,C.LINEAR),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MAG_FILTER,C.LINEAR),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_S,C.CLAMP_TO_EDGE),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_T,C.CLAMP_TO_EDGE),C.pixelStorei(C.PACK_ALIGNMENT,1),C.pixelStorei(C.UNPACK_ALIGNMENT,1),C.texImage2D(C.TEXTURE_2D,0,C.RGBA,t,I,0,C.RGBA,C.UNSIGNED_BYTE,null);var n=this.createFramebuffer(B);return g.forEach((function(A,g){A&&(C.activeTexture(C.TEXTURE1+g),C.bindTexture(C.TEXTURE_2D,A||null))})),this.setAttributes(this.positionBuffer,this.texCoordBuffer),C.viewport(0,0,t,I),C.drawArrays(C.TRIANGLE_STRIP,0,4),e&&g.forEach((function(A,g){A&&r!==g&&C.deleteTexture(A)})),C.deleteFramebuffer(n),B}},{key:"postProcessing",value:function(A){this._lastMaskTexture=this.getTempTexture(this._tdProgram,[A,this._lastMaskTexture]);for(var g=this.getTempTexture(this._kcProgram,[this._lastMaskTexture],!1),t=0;t<3;t++){g=this.getTempTexture(this._mdProgram,[g]);var I=this.getTempTexture(this._edgeProgram,[g],!1);g=this.getTempTexture(this._borderProgram,[g,I,this._lastMaskTexture],!0,2)}return g}},{key:"close",value:function(){var A=this.gl;this._borderProgram&&A.deleteProgram(this._borderProgram),this._edgeProgram&&A.deleteProgram(this._edgeProgram),this._kcProgram&&A.deleteProgram(this._kcProgram),this._mdProgram&&A.deleteProgram(this._mdProgram),this._tdProgram&&A.deleteProgram(this._tdProgram)}}])}(),Kg=new Ug,Jg=570703,Tg=0,xg=function(){function A(g){e(this,A),this.core=g,G(this,"seq"),G(this,"_core"),G(this,"log"),G(this,"preLoadPromise"),G(this,"startResolve"),G(this,"startReject"),G(this,"mediaPipeSolutions"),G(this,"assetsPath"),G(this,"currentType"),G(this,"onAbort"),G(this,"isAborted",!1),Tg+=1,this.seq=Tg,this._core=g,this.log=g.log.createChild({id:"".concat(this.getAlias()).concat(Tg)}),this.log.info("created"),g.assetsPath&&(this.preLoadPromise=this.preload(g.assetsPath))}return C(A,[{key:"preload",value:(B=t(i().mark((function A(g){var t,I,e,r,C=this;return i().wrap((function(A){for(;;)switch(A.prev=A.next){case 0:if(A.prev=0,this._core.room.videoManager.Wasm){A.next=5;break}return A.next=4,R();case 4:this._core.room.videoManager.Wasm=A.sent;case 5:return t=function(A){var g;C.core.kvStatManager.addEnum({key:Jg,value:C.getKVTypeValue(!1,C.isAborted,"ABORT_IN_INFERENCE")}),C.isAborted=!0,C.log.error("mediaPipeSolutions abort",A),C.core.clearStarted(C,C.getGroup()),C.stop(),null==(g=C.onAbort)||g.call(C,A)},this._core.room.videoManager.initVirtualBackground(t,SA,Kg),A.next=9,this._core.initVisionTaskRegistry(g);case 9:A.next=15;break;case 11:throw A.prev=11,A.t0=A.catch(0),I=this._core.errorModule,e=I.RtcError,r=I.ErrorCode,new e({code:r.INVALID_OPERATION,message:"VirtualBackground preload error, please redeploy the assets of the npm package. detail: ".concat(A.t0)});case 15:case"end":return A.stop()}}),A,this,[[0,11]])}))),function(A){return B.apply(this,arguments)})},{key:"getName",value:function(){return A.Name}},{key:"getAlias",value:function(){return"vb"}},{key:"getValidateRule",value:function(A){switch(A){case"start":return g=this._core,{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:(t=p({},F),I={type:{required:!1,type:"string",values:["image","blur","color"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},onAbort:{required:!1},color:{required:!1,type:["array","string"]},enableFaceCentering:{required:!1,type:"boolean"},enableEffectOptimization:{required:!1,type:"boolean"}},l(t,f(I))),validate:function(A,t,I,e){var r,C=g.errorModule,B=C.RtcError,n=C.ErrorCode,o=C.ErrorCodeDictionary;if(A){var i=A.type,Q=A.src,E=A.onAbort;if("image"===i&&!Q)throw new B({code:n.INVALID_PARAMETER,extraCode:o.INVALID_PARAMETER_REQUIRED,fnName:I,messageParams:{key:"src"}});if(E&&!g.utils.isFunction(E))throw new B({code:n.INVALID_PARAMETER,extraCode:o.INVALID_PARAMETER_TYPE,fnName:I,messageParams:{key:"onAbort",value:s(E),rule:{type:"Function"}}});if(!(null==(r=g.room.videoManager.cameraTrack)?void 0:r.mediaTrack))throw new B({code:n.INVALID_OPERATION,extraCode:o.INVALID_OPERATION_NEED_VIDEO,fnName:I})}}};case"update":return function(A){return{name:"UpdateVirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:{type:{required:!0,type:"string",values:["image","blur","color"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},color:{required:!1,type:["array","string"]},enableFaceCentering:{required:!1,type:"boolean"},enableEffectOptimization:{required:!1,type:"boolean"}},validate:function(g,t,I,e){if(g){var r=A.errorModule,C=r.RtcError,B=r.ErrorCode,n=r.ErrorCodeDictionary,o=g.type,i=g.src;if("image"===o&&!i)throw new C({code:B.INVALID_PARAMETER,extraCode:n.INVALID_PARAMETER_REQUIRED,fnName:I,messageParams:{key:"src"}})}}}}(this._core);case"stop":return this._core,{name:"StopVirtualBackgroundOptions",required:!1}}var g,t,I}},{key:"getGroup",value:function(){return"vb"}},{key:"getKVTypeValue",value:function(){var A=arguments.length>0&&void 0!==arguments[0]&&arguments[0],g=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"NONE",I=0;switch(this.currentType){case"blur":I|=0;break;case"image":I|=1;break;case"color":I|=2}switch(A&&(I|=256),g&&(I|=512),t){case"ABORT_IN_INFERENCE":I|=4096;break;case"ABORT_IN_VIDEO_MANAGER":I|=8192;break;case"OTHER":I|=61440}return I}},{key:"hexToRgb",value:function(A){var g=A.replace("#","");return[parseInt(g.slice(0,2),16)/255,parseInt(g.slice(2,4),16)/255,parseInt(g.slice(4,6),16)/255]}},{key:"start",value:(r=t(i().mark((function A(g){var t,I,e,r,C,B,n,o,Q,E,a,s,c,u=this;return i().wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return t=g.type,I=void 0===t?"blur":t,e=g.src,r=g.blurLevel,C=void 0===r?3:r,B=g.onAbort,this.currentType=I,this.onAbort=B,"color"===I&&"string"==typeof g.color&&(g.color=this.hexToRgb(g.color)),A.next=6,N({sdkAppId:g.sdkAppId,userId:g.userId,userSig:g.userSig,core:this._core});case 6:if(n=A.sent,o=n.auth,Q=this._core.errorModule,E=Q.RtcError,a=Q.ErrorCodeDictionary,s=Q.ErrorCode,o){A.next=12;break}throw c=this._core.utils.isOverseaSdkAppId(g.sdkAppId)?"https://trtc.io/document/56025":"https://cloud.tencent.com/document/product/647/85386",new E({code:a.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:c}});case 12:if(this.preLoadPromise){A.next=16;break}if(this._core.assetsPath){A.next=15;break}throw new E({code:s.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});case 15:this.preLoadPromise=this.preload(this._core.assetsPath);case 16:return A.next=18,this.preLoadPromise;case 18:return A.abrupt("return",this.core.room.videoManager.setVirtualBackground({type:I,imageUrl:e,blurLevel:C,enableFaceCentering:g.enableFaceCentering,enableEffectOptimization:g.enableEffectOptimization,color:g.color,onAbort:function(A){var g;u.core.kvStatManager.addEnum({key:Jg,value:u.getKVTypeValue(!0,u.isAborted,"ABORT_IN_VIDEO_MANAGER")}),u.isAborted=!0,u.core.clearStarted(u,u.getGroup()),u.stop(),delete u.preLoadPromise,null==(g=u.onAbort)||g.call(u,A)}}).then((function(){u.core.kvStatManager.addEnum({key:Jg,value:u.getKVTypeValue(!1,u.isAborted,"NONE")})})).catch((function(){u.core.kvStatManager.addEnum({key:Jg,value:u.getKVTypeValue(!0,u.isAborted,"OTHER")})})));case 19:case"end":return A.stop()}}),A,this)}))),function(A){return r.apply(this,arguments)})},{key:"update",value:(I=t(i().mark((function A(g){var t,I,e=this;return i().wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return t=g.type,I=g.src,t!==this.currentType&&(this.currentType=t),"color"===t&&"string"==typeof g.color&&(g.color=this.hexToRgb(g.color)),A.abrupt("return",this.core.room.videoManager.setVirtualBackground({type:t,imageUrl:I,blurLevel:g.blurLevel,enableFaceCentering:g.enableFaceCentering,enableEffectOptimization:g.enableEffectOptimization,color:g.color}).then((function(){e.core.kvStatManager.addEnum({key:Jg,value:e.getKVTypeValue(!1,!1,"NONE")})})).catch((function(){e.core.kvStatManager.addEnum({key:Jg,value:e.getKVTypeValue(!0,!1,"OTHER")})})));case 4:case"end":return A.stop()}}),A,this)}))),function(A){return I.apply(this,arguments)})},{key:"stop",value:(g=t(i().mark((function A(){return i().wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.abrupt("return",this.core.room.videoManager.setVirtualBackground());case 1:case"end":return A.stop()}}),A,this)}))),function(){return g.apply(this,arguments)})}],[{key:"isSupported",value:function(){if(FA<90)return!1;var A=document.createElement("canvas").getContext("webgl2");return!!(A&&A instanceof WebGL2RenderingContext)}}]);var g,I,r,B}();return G(xg,"Name","VirtualBackground"),xg}));
|
|
1
|
+
!function(A,g){"object"==typeof exports&&"undefined"!=typeof module?module.exports=g():"function"==typeof define&&define.amd?define(g):(A="undefined"!=typeof globalThis?globalThis:A||self).VirtualBackground=g()}(this,(function(){"use strict";function A(A,g){(null==g||g>A.length)&&(g=A.length);for(var t=0,I=Array(g);t<g;t++)I[t]=A[t];return I}function g(A,g,t,I,e,r,C){try{var B=A[r](C),n=B.value}catch(A){return void t(A)}B.done?g(n):Promise.resolve(n).then(I,e)}function t(A){return function(){var t=this,I=arguments;return new Promise((function(e,r){var C=A.apply(t,I);function B(A){g(C,e,r,B,n,"next",A)}function n(A){g(C,e,r,B,n,"throw",A)}B(void 0)}))}}function I(A,g,t){return g=B(g),function(A,g){if(g&&("object"==typeof g||"function"==typeof g))return g;if(void 0!==g)throw new TypeError("Derived constructors may only return object or undefined");return function(A){if(void 0===A)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return A}(A)}(A,o()?Reflect.construct(g,t||[],B(A).constructor):g.apply(A,t))}function e(A,g){if(!(A instanceof g))throw new TypeError("Cannot call a class as a function")}function r(A,g){for(var t=0;t<g.length;t++){var I=g[t];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(A,a(I.key),I)}}function C(A,g,t){return g&&r(A.prototype,g),t&&r(A,t),Object.defineProperty(A,"prototype",{writable:!1}),A}function B(A){return B=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(A){return A.__proto__||Object.getPrototypeOf(A)},B(A)}function n(A,g){if("function"!=typeof g&&null!==g)throw new TypeError("Super expression must either be null or a function");A.prototype=Object.create(g&&g.prototype,{constructor:{value:A,writable:!0,configurable:!0}}),Object.defineProperty(A,"prototype",{writable:!1}),g&&Q(A,g)}function o(){try{var A=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(A){}return(o=function(){return!!A})()}function i(){i=function(){return g};var A,g={},t=Object.prototype,I=t.hasOwnProperty,e=Object.defineProperty||function(A,g,t){A[g]=t.value},r="function"==typeof Symbol?Symbol:{},C=r.iterator||"@@iterator",B=r.asyncIterator||"@@asyncIterator",n=r.toStringTag||"@@toStringTag";function o(A,g,t){return Object.defineProperty(A,g,{value:t,enumerable:!0,configurable:!0,writable:!0}),A[g]}try{o({},"")}catch(A){o=function(A,g,t){return A[g]=t}}function Q(A,g,t,I){var r=g&&g.prototype instanceof l?g:l,C=Object.create(r.prototype),B=new R(I||[]);return e(C,"_invoke",{value:M(A,t,B)}),C}function E(A,g,t){try{return{type:"normal",arg:A.call(g,t)}}catch(A){return{type:"throw",arg:A}}}g.wrap=Q;var a="suspendedStart",s="suspendedYield",c="executing",u="completed",h={};function l(){}function f(){}function y(){}var d={};o(d,C,(function(){return this}));var D=Object.getPrototypeOf,w=D&&D(D(b([])));w&&w!==t&&I.call(w,C)&&(d=w);var p=y.prototype=l.prototype=Object.create(d);function G(A){["next","throw","return"].forEach((function(g){o(A,g,(function(A){return this._invoke(g,A)}))}))}function N(A,g){function t(e,r,C,B){var n=E(A[e],A,r);if("throw"!==n.type){var o=n.arg,i=o.value;return i&&"object"==typeof i&&I.call(i,"__await")?g.resolve(i.__await).then((function(A){t("next",A,C,B)}),(function(A){t("throw",A,C,B)})):g.resolve(i).then((function(A){o.value=A,C(o)}),(function(A){return t("throw",A,C,B)}))}B(n.arg)}var r;e(this,"_invoke",{value:function(A,I){function e(){return new g((function(g,e){t(A,I,g,e)}))}return r=r?r.then(e,e):e()}})}function M(g,t,I){var e=a;return function(r,C){if(e===c)throw Error("Generator is already running");if(e===u){if("throw"===r)throw C;return{value:A,done:!0}}for(I.method=r,I.arg=C;;){var B=I.delegate;if(B){var n=F(B,I);if(n){if(n===h)continue;return n}}if("next"===I.method)I.sent=I._sent=I.arg;else if("throw"===I.method){if(e===a)throw e=u,I.arg;I.dispatchException(I.arg)}else"return"===I.method&&I.abrupt("return",I.arg);e=c;var o=E(g,t,I);if("normal"===o.type){if(e=I.done?u:s,o.arg===h)continue;return{value:o.arg,done:I.done}}"throw"===o.type&&(e=u,I.method="throw",I.arg=o.arg)}}}function F(g,t){var I=t.method,e=g.iterator[I];if(e===A)return t.delegate=null,"throw"===I&&g.iterator.return&&(t.method="return",t.arg=A,F(g,t),"throw"===t.method)||"return"!==I&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+I+"' method")),h;var r=E(e,g.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,h;var C=r.arg;return C?C.done?(t[g.resultName]=C.value,t.next=g.nextLoc,"return"!==t.method&&(t.method="next",t.arg=A),t.delegate=null,h):C:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function v(A){var g={tryLoc:A[0]};1 in A&&(g.catchLoc=A[1]),2 in A&&(g.finallyLoc=A[2],g.afterLoc=A[3]),this.tryEntries.push(g)}function m(A){var g=A.completion||{};g.type="normal",delete g.arg,A.completion=g}function R(A){this.tryEntries=[{tryLoc:"root"}],A.forEach(v,this),this.reset(!0)}function b(g){if(g||""===g){var t=g[C];if(t)return t.call(g);if("function"==typeof g.next)return g;if(!isNaN(g.length)){var e=-1,r=function t(){for(;++e<g.length;)if(I.call(g,e))return t.value=g[e],t.done=!1,t;return t.value=A,t.done=!0,t};return r.next=r}}throw new TypeError(typeof g+" is not iterable")}return f.prototype=y,e(p,"constructor",{value:y,configurable:!0}),e(y,"constructor",{value:f,configurable:!0}),f.displayName=o(y,n,"GeneratorFunction"),g.isGeneratorFunction=function(A){var g="function"==typeof A&&A.constructor;return!!g&&(g===f||"GeneratorFunction"===(g.displayName||g.name))},g.mark=function(A){return Object.setPrototypeOf?Object.setPrototypeOf(A,y):(A.__proto__=y,o(A,n,"GeneratorFunction")),A.prototype=Object.create(p),A},g.awrap=function(A){return{__await:A}},G(N.prototype),o(N.prototype,B,(function(){return this})),g.AsyncIterator=N,g.async=function(A,t,I,e,r){void 0===r&&(r=Promise);var C=new N(Q(A,t,I,e),r);return g.isGeneratorFunction(t)?C:C.next().then((function(A){return A.done?A.value:C.next()}))},G(p),o(p,n,"Generator"),o(p,C,(function(){return this})),o(p,"toString",(function(){return"[object Generator]"})),g.keys=function(A){var g=Object(A),t=[];for(var I in g)t.push(I);return t.reverse(),function A(){for(;t.length;){var I=t.pop();if(I in g)return A.value=I,A.done=!1,A}return A.done=!0,A}},g.values=b,R.prototype={constructor:R,reset:function(g){if(this.prev=0,this.next=0,this.sent=this._sent=A,this.done=!1,this.delegate=null,this.method="next",this.arg=A,this.tryEntries.forEach(m),!g)for(var t in this)"t"===t.charAt(0)&&I.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=A)},stop:function(){this.done=!0;var A=this.tryEntries[0].completion;if("throw"===A.type)throw A.arg;return this.rval},dispatchException:function(g){if(this.done)throw g;var t=this;function e(I,e){return B.type="throw",B.arg=g,t.next=I,e&&(t.method="next",t.arg=A),!!e}for(var r=this.tryEntries.length-1;r>=0;--r){var C=this.tryEntries[r],B=C.completion;if("root"===C.tryLoc)return e("end");if(C.tryLoc<=this.prev){var n=I.call(C,"catchLoc"),o=I.call(C,"finallyLoc");if(n&&o){if(this.prev<C.catchLoc)return e(C.catchLoc,!0);if(this.prev<C.finallyLoc)return e(C.finallyLoc)}else if(n){if(this.prev<C.catchLoc)return e(C.catchLoc,!0)}else{if(!o)throw Error("try statement without catch or finally");if(this.prev<C.finallyLoc)return e(C.finallyLoc)}}}},abrupt:function(A,g){for(var t=this.tryEntries.length-1;t>=0;--t){var e=this.tryEntries[t];if(e.tryLoc<=this.prev&&I.call(e,"finallyLoc")&&this.prev<e.finallyLoc){var r=e;break}}r&&("break"===A||"continue"===A)&&r.tryLoc<=g&&g<=r.finallyLoc&&(r=null);var C=r?r.completion:{};return C.type=A,C.arg=g,r?(this.method="next",this.next=r.finallyLoc,h):this.complete(C)},complete:function(A,g){if("throw"===A.type)throw A.arg;return"break"===A.type||"continue"===A.type?this.next=A.arg:"return"===A.type?(this.rval=this.arg=A.arg,this.method="return",this.next="end"):"normal"===A.type&&g&&(this.next=g),h},finish:function(A){for(var g=this.tryEntries.length-1;g>=0;--g){var t=this.tryEntries[g];if(t.finallyLoc===A)return this.complete(t.completion,t.afterLoc),m(t),h}},catch:function(A){for(var g=this.tryEntries.length-1;g>=0;--g){var t=this.tryEntries[g];if(t.tryLoc===A){var I=t.completion;if("throw"===I.type){var e=I.arg;m(t)}return e}}throw Error("illegal catch attempt")},delegateYield:function(g,t,I){return this.delegate={iterator:b(g),resultName:t,nextLoc:I},"next"===this.method&&(this.arg=A),h}},g}function Q(A,g){return Q=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(A,g){return A.__proto__=g,A},Q(A,g)}function E(A,g){return function(A){if(Array.isArray(A))return A}(A)||function(A,g){var t=null==A?null:"undefined"!=typeof Symbol&&A[Symbol.iterator]||A["@@iterator"];if(null!=t){var I,e,r,C,B=[],n=!0,o=!1;try{if(r=(t=t.call(A)).next,0===g);else for(;!(n=(I=r.call(t)).done)&&(B.push(I.value),B.length!==g);n=!0);}catch(A){o=!0,e=A}finally{try{if(!n&&null!=t.return&&(C=t.return(),Object(C)!==C))return}finally{if(o)throw e}}return B}}(A,g)||c(A,g)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(A){var g=function(A,g){if("object"!=typeof A||!A)return A;var t=A[Symbol.toPrimitive];if(void 0!==t){var I=t.call(A,g);if("object"!=typeof I)return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(A)}(A,"string");return"symbol"==typeof g?g:g+""}function s(A){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&"function"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},s(A)}function c(g,t){if(g){if("string"==typeof g)return A(g,t);var I={}.toString.call(g).slice(8,-1);return"Object"===I&&g.constructor&&(I=g.constructor.name),"Map"===I||"Set"===I?Array.from(g):"Arguments"===I||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(I)?A(g,t):void 0}}function u(A){var g="function"==typeof Map?new Map:void 0;return u=function(A){if(null===A||!function(A){try{return-1!==Function.toString.call(A).indexOf("[native code]")}catch(g){return"function"==typeof A}}(A))return A;if("function"!=typeof A)throw new TypeError("Super expression must either be null or a function");if(void 0!==g){if(g.has(A))return g.get(A);g.set(A,t)}function t(){return function(A,g,t){if(o())return Reflect.construct.apply(null,arguments);var I=[null];I.push.apply(I,g);var e=new(A.bind.apply(A,I));return t&&Q(e,t.prototype),e}(A,arguments,B(this).constructor)}return t.prototype=Object.create(A.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),Q(t,A)},u(A)}var h=Object.defineProperty,l=Object.defineProperties,f=Object.getOwnPropertyDescriptors,y=Object.getOwnPropertySymbols,d=Object.prototype.hasOwnProperty,D=Object.prototype.propertyIsEnumerable,w=function(A,g,t){return g in A?h(A,g,{enumerable:!0,configurable:!0,writable:!0,value:t}):A[g]=t},p=function(A,g){for(var t in g||(g={}))d.call(g,t)&&w(A,t,g[t]);if(y){var I,e=function(A,g){var t="undefined"!=typeof Symbol&&A[Symbol.iterator]||A["@@iterator"];if(!t){if(Array.isArray(A)||(t=c(A))||g){t&&(A=t);var I=0,e=function(){};return{s:e,n:function(){return I>=A.length?{done:!0}:{done:!1,value:A[I++]}},e:function(A){throw A},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,C=!0,B=!1;return{s:function(){t=t.call(A)},n:function(){var A=t.next();return C=A.done,A},e:function(A){B=!0,r=A},f:function(){try{C||null==t.return||t.return()}finally{if(B)throw r}}}}(y(g));try{for(e.s();!(I=e.n()).done;){t=I.value;D.call(g,t)&&w(A,t,g[t])}}catch(A){e.e(A)}finally{e.f()}}return A},G=function(A,g,t){return w(A,"symbol"!==s(g)?g+"":g,t)};function N(A){return M.apply(this,arguments)}function M(){return(M=t(i().mark((function A(g){var t,I,e,r,C,B,n,o;return i().wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return t=g.sdkAppId,I=g.userId,e=g.userSig,r=g.core,B=Math.round((new Date).getTime()/1e3),A.prev=2,A.next=5,r.schedule.getAbilityConfig(t,r.schedule.ScheduleRequestType.TRTC_AUTO_CONF,{sdkAppId:t,userId:I,userSig:e,timestamp:B});case 5:if(n=A.sent,r.log.info("virtual background ability response: ".concat(JSON.stringify(n))),o=n.data,!(null==(C=null==o?void 0:o.trtcAutoConf)?void 0:C.web_ar)){A.next=10;break}return A.abrupt("return",{auth:!0,timestamp:B});case 10:return A.abrupt("return",{auth:!1});case 13:return A.prev=13,A.t0=A.catch(2),r.log.error("virtual background fetch error",A.t0),A.abrupt("return",{auth:!1});case 17:case"end":return A.stop()}}),A,null,[[2,13]])})))).apply(this,arguments)}var F={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};var v,m=(v="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(){var A,g,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t;r.ready=new Promise((function(t,I){A=t,g=I}));var B=Object.assign({},r),o="";"undefined"!=typeof document&&document.currentScript&&(o=document.currentScript.src),v&&(o=v),o=0!==o.indexOf("blob:")?o.substr(0,o.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var i,Q,E=r.print||console.log.bind(console),a=r.printErr||console.error.bind(console);function c(A){if(L(A))return function(A){for(var g=atob(A),t=new Uint8Array(g.length),I=0;I<g.length;++I)t[I]=g.charCodeAt(I);return t}(A.slice(S.length))}Object.assign(r,B),B=null,r.arguments&&r.arguments,r.thisProgram&&r.thisProgram,r.quit&&r.quit,r.wasmBinary&&(i=r.wasmBinary),"object"!=("undefined"==typeof WebAssembly?"undefined":s(WebAssembly))&&b("no native wasm support detected");var h,l,f,y,d,D,w,p,G=!1,N=[],M=[],F=[],m=0,R=null;function b(A){r.onAbort&&r.onAbort(A),a(A="Aborted("+A+")"),G=!0,A+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(A);throw g(t),t}var Y,k,S="data:application/octet-stream;base64,",L=function(A){return A.startsWith(S)};function H(A){return Promise.resolve().then((function(){return function(A){if(A==Y&&i)return new Uint8Array(i);var g=c(A);if(g)return g;throw"both async and sync fetching of the wasm failed"}(A)}))}function U(A,g,t,I){return function(A,g,t){return H(A).then((function(A){return WebAssembly.instantiate(A,g)})).then((function(A){return A})).then(t,(function(A){a("failed to asynchronously prepare wasm: ".concat(A)),b(A)}))}(g,t,I)}L(Y="data:application/octet-stream;base64,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IAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAACwsAIAEgAiAAEEIaCxIAIAFBAXRBwMoAakECIAAQQgv5AQEEfwJ/IAEQKiECIwBBEGsiBSQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgRBAE8EQAJAIAIgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyIDIARrTQRAIAJFDQECfyAALQALQQd2BEAgACgCAAwBCyAACyIDIAQEfyACIANqIAMgBBBFIAEgAkEAIAMgBGogAUsbQQAgASADTxtqBSABCyACEEUgACACIARqIgEQMSAFQQA6AA8gASADaiAFLQAPOgAADAELIAAgAyACIARqIANrIARBACACIAEQRAsgBUEQaiQAIAAMAQsQJwALC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRr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ACACQQA6AA8DQCABBEAgACACLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIAJBEGokAAsaACAALQALQQd2BEAgACgCCBogACgCABAZCwvmAQEFfyMAQRBrIgUkACMAQSBrIgMkACMAQRBrIgQkACAEIAA2AgwgBCAAIAFqNgIIIAMgBCgCDDYCGCADIAQoAgg2AhwgBEEQaiQAIAMoAhghBCADKAIcIQYjAEEQayIBJAAgASAGNgIMIAIgBCAGIARrIgQQQyABIAIgBGo2AgggAyABKAIMNgIQIAMgASgCCDYCFCABQRBqJAAgAyAAIAMoAhAgAGtqNgIMIAMgAiADKAIUIAJrajYCCCAFIAMoAgw2AgggBSADKAIINgIMIANBIGokACAFKAIMIQcgBUEQaiQAIAcLDwAgAgRAIAAgASACEDILC/UCAQV/IwBBEGsiByQAIAIgAUF/c0Hv////B2pNBEACfyAALQALQQd2BEAgACgCAAwBCyAACyEIIAdBBGoiCSAAIAFB5////wNJBH8gByABQQF0NgIMIAcgASACajYCBCMAQRBrIgIkACAJKAIAIAdBDGoiCigCAEkhCyACQRBqJAAgCiAJIAsbKAIAIgJBC08EfyACQRBqQXBxIgIgAkEBayICIAJBC0YbBUEKC0EBagVB7////wcLEDAgBygCBCECIAcoAggaIAQEQCACIAggBBAjCyAFBEAgAiAEaiAGIAUQIwsgAyAEayEGIAMgBEcEQCACIARqIAVqIAQgCGogBhAjCyABQQpHBEAgCBAZCyAAIAI2AgAgACAAKAIIQYCAgIB4cSAHKAIIQf////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAQgBWogBmoiADYCBCAHQQA6AAwgACACaiAHLQAMOgAAIAdBEGokAA8LECcACwoAIAAgASACEEMLuQEBBH8jAEEQayIEJAAgBCACNgIMIwBBoAFrIgMkACADIAAgA0GeAWogARsiBjYClAFBfyEFIAMgAUEBayIAQQAgACABTRs2ApgBIANBAEGQARAmIgBBfzYCTCAAQSA2AiQgAEF/NgJQIAAgAEGfAWo2AiwgACAAQZQBajYCVAJAIAFBAEgEQEG43gBBPTYCAAwBCyAGQQA6AAAgAEH9CiACQR8QTSEFCyAAQaABaiQAIARBEGokACAFCwQAIAALmQIAIABFBEBBAA8LAn8CQCAABH8gAUH/AE0NAQJAQYTWACgCACgCAEUEQCABQYB/cUGAvwNGDQMMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAgwECyABQYBAcUGAwANHIAFBgLADT3FFBEAgACABQT9xQYABcjoAAiAAIAFBDHZB4AFyOgAAIAAgAUEGdkE/cUGAAXI6AAFBAwwECyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBAwECwtBuN4AQRk2AgBBfwVBAQsMAQsgACABOgAAQQELC54YAxN/AXwCfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGkIAUwRAQQEhD0GUCCETIAGaIgG9IRoMAQsgBEGAEHEEQEEBIQ9BlwghEwwBC0GaCEGVCCAEQQFxIg8bIRMgD0UhFQsCQCAaQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgD0EDaiIDIARB//97cRAfIAAgEyAPEB0gAEHLCUHVCyAFQSBxIgUbQfkKQdkLIAUbIAEgAWIbQQMQHSAAQSAgAiADIARBgMAAcxAfIAMgAiACIANIGyEJDAELIAxBEGohEgJAAn8CQCABIAxBLGoQTiIBIAGgIgFEAAAAAAAAAABiBEAgDCAMKAIsIgZBAWs2AiwgBUEgciIOQeEARw0BDAMLIAVBIHIiDkHhAEYNAiAMKAIsIQpBBiADIANBAEgbDAELIAwgBkEdayIKNgIsIAFEAAAAAAAAsEGiIQFBBiADIANBAEgbCyELIAxBMGpBoAJBACAKQQBOG2oiDSEHA0AgBwJ/IAFEAAAAAAAA8EFjIAFEAAAAAAAAAABmcQRAIAGrDAELQQALIgM2AgAgB0EEaiEHIAEgA7ihRAAAAABlzc1BoiIBRAAAAAAAAAAAYg0ACwJAIApBAEwEQCAKIQMgByEGIA0hCAwBCyANIQggCiEDA0BBHSADIANBHU4bIQMCQCAHQQRrIgYgCEkNACADrSEbQgAhGgNAIAYgGkL/////D4MgBjUCACAbhnwiGiAaQoCU69wDgCIaQoCU69wDfn0+AgAgBkEEayIGIAhPDQALIBqnIgZFDQAgCEEEayIIIAY2AgALA0AgCCAHIgZJBEAgBkEEayIHKAIARQ0BCwsgDCAMKAIsIANrIgM2AiwgBiEHIANBAEoNAAsLIANBAEgEQCALQRlqQQluQQFqIRAgDkHmAEYhEQNAQQlBACADayIDIANBCU4bIQkCQCAGIAhNBEAgCCgCACEHDAELQYCU69wDIAl2IRRBfyAJdEF/cyEWQQAhAyAIIQcDQCAHIAMgBygCACIXIAl2ajYCACAWIBdxIBRsIQMgB0EEaiIHIAZJDQALIAgoAgAhByADRQ0AIAYgAzYCACAGQQRqIQYLIAwgDCgCLCAJaiIDNgIsIA0gCCAHRUECdGoiCCARGyIHIBBBAnRqIAYgBiAHa0ECdSAQShshBiADQQBIDQALC0EAIQMCQCAGIAhNDQAgDSAIa0ECdUEJbCEDQQohByAIKAIAIglBCkkNAANAIANBAWohAyAJIAdBCmwiB08NAAsLIAsgA0EAIA5B5gBHG2sgDkHnAEYgC0EAR3FrIgcgBiANa0ECdUEJbEEJa0gEQCAMQTBqQQRBpAIgCkEASBtqIAdBgMgAaiIJQQltIhFBAnRqIhBBgCBrIQpBCiEHIAkgEUEJbGsiCUEHTARAA0AgB0EKbCEHIAlBAWoiCUEIRw0ACwsCQCAKKAIAIhEgESAHbiIUIAdsayIJRSAQQfwfayIWIAZGcQ0AAkAgFEEBcUUEQEQAAAAAAABAQyEBIAdBgJTr3ANHDQEgCCAKTw0BIBBBhCBrLQAAQQFxRQ0BC0QBAAAAAABAQyEBC0QAAAAAAADgP0QAAAAAAADwP0QAAAAAAAD4PyAGIBZGG0QAAAAAAAD4PyAJIAdBAXYiFEYbIAkgFEkbIRkCQCAVDQAgEy0AAEEtRw0AIBmaIRkgAZohAQsgCiARIAlrIgk2AgAgASAZoCABYQ0AIAogByAJaiIDNgIAIANBgJTr3ANPBEADQCAKQQA2AgAgCCAKQQRrIgpLBEAgCEEEayIIQQA2AgALIAogCigCAEEBaiIDNgIAIANB/5Pr3ANLDQALCyANIAhrQQJ1QQlsIQNBCiEHIAgoAgAiCUEKSQ0AA0AgA0EBaiEDIAkgB0EKbCIHTw0ACwsgCkEEaiIHIAYgBiAHSxshBgsDQCAGIgcgCE0iCUUEQCAGQQRrIgYoAgBFDQELCwJAIA5B5wBHBEAgBEEIcSEKDAELIANBf3NBfyALQQEgCxsiBiADSiADQXtKcSIKGyAGaiELQX9BfiAKGyAFaiEFIARBCHEiCg0AQXchBgJAIAkNACAHQQRrKAIAIg5FDQBBCiEJQQAhBiAOQQpwDQADQCAGIgpBAWohBiAOIAlBCmwiCXBFDQALIApBf3MhBgsgByANa0ECdUEJbCEJIAVBX3FBxgBGBEBBACEKIAsgBiAJakEJayIGQQAgBkEAShsiBiAGIAtKGyELDAELQQAhCiALIAMgCWogBmpBCWsiBkEAIAZBAEobIgYgBiALShshCwtBfyEJIAtB/f///wdB/v///wcgCiALciIRG0oNASALIBFBAEdqQQFqIQ4CQCAFQV9xIhVBxgBGBEAgAyAOQf////8Hc0oNAyADQQAgA0EAShshBgwBCyASIAMgA0EfdSIGcyAGa60gEhApIgZrQQFMBEADQCAGQQFrIgZBMDoAACASIAZrQQJIDQALCyAGQQJrIhAgBToAACAGQQFrQS1BKyADQQBIGzoAACASIBBrIgYgDkH/////B3NKDQILIAYgDmoiAyAPQf////8Hc0oNASAAQSAgAiADIA9qIgUgBBAfIAAgEyAPEB0gAEEwIAIgBSAEQYCABHMQHwJAAkACQCAVQcYARgRAIAxBEGoiBkEIciEDIAZBCXIhCiANIAggCCANSxsiCSEIA0AgCDUCACAKECkhBgJAIAggCUcEQCAGIAxBEGpNDQEDQCAGQQFrIgZBMDoAACAGIAxBEGpLDQALDAELIAYgCkcNACAMQTA6ABggAyEGCyAAIAYgCiAGaxAdIAhBBGoiCCANTQ0ACyARBEAgAEGhEkEBEB0LIAcgCE0NASALQQBMDQEDQCAINQIAIAoQKSIGIAxBEGpLBEADQCAGQQFrIgZBMDoAACAGIAxBEGpLDQALCyAAIAZBCSALIAtBCU4bEB0gC0EJayEGIAhBBGoiCCAHTw0DIAtBCUohGCAGIQsgGA0ACwwCCwJAIAtBAEgNACAHIAhBBGogByAISxshCSAMQRBqIgZBCHIhAyAGQQlyIQ0gCCEHA0AgDSAHNQIAIA0QKSIGRgRAIAxBMDoAGCADIQYLAkAgByAIRwRAIAYgDEEQak0NAQNAIAZBAWsiBkEwOgAAIAYgDEEQaksNAAsMAQsgACAGQQEQHSAGQQFqIQYgCiALckUNACAAQaESQQEQHQsgACAGIA0gBmsiBiALIAYgC0gbEB0gCyAGayELIAdBBGoiByAJTw0BIAtBAE4NAAsLIABBMCALQRJqQRJBABAfIAAgECASIBBrEB0MAgsgCyEGCyAAQTAgBkEJakEJQQAQHwsgAEEgIAIgBSAEQYDAAHMQHyAFIAIgAiAFSBshCQwBCyATIAVBGnRBH3VBCXFqIQgCQCADQQtLDQBBDCADayEGRAAAAAAAADBAIRkDQCAZRAAAAAAAADBAoiEZIAZBAWsiBg0ACyAILQAAQS1GBEAgGSABmiAZoaCaIQEMAQsgASAZoCAZoSEBCyASIAwoAiwiBiAGQR91IgZzIAZrrSASECkiBkYEQCAMQTA6AA8gDEEPaiEGCyAPQQJyIQsgBUEgcSENIAwoAiwhByAGQQJrIgogBUEPajoAACAGQQFrQS1BKyAHQQBIGzoAACAEQQhxIQYgDEEQaiEHA0AgByIFAn8gAZlEAAAAAAAA4EFjBEAgAaoMAQtBgICAgHgLIgdBgMoAai0AACANcjoAACABIAe3oUQAAAAAAAAwQKIhAQJAIAVBAWoiByAMQRBqa0EBRw0AAkAgBg0AIANBAEoNACABRAAAAAAAAAAAYQ0BCyAFQS46AAEgBUECaiEHCyABRAAAAAAAAAAAYg0AC0F/IQlB/f///wcgCyASIAprIgZqIg1rIANIDQAgAEEgIAIgDSADQQJqIAcgDEEQaiIHayIFIAVBAmsgA0gbIAUgAxsiCWoiAyAEEB8gACAIIAsQHSAAQTAgAiADIARBgIAEcxAfIAAgByAFEB0gAEEwIAkgBWtBAEEAEB8gACAKIAYQHSAAQSAgAiADIARBgMAAcxAfIAMgAiACIANIGyEJCyAMQbAEaiQAIAkLvAIAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACAkKCAkBAgMECgkKCggJBQYHCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCyACIAIoAgAiAUEEajYCACAAIAEyAQA3AwAPCyACIAIoAgAiAUEEajYCACAAIAEzAQA3AwAPCyACIAIoAgAiAUEEajYCACAAIAEwAAA3AwAPCyACIAIoAgAiAUEEajYCACAAIAExAAA3AwAPCyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAErAwA5AwAPCyAAIAIgAxEAAAsPCyACIAIoAgAiAUEEajYCACAAIAE0AgA3AwAPCyACIAIoAgAiAUEEajYCACAAIAE1AgA3AwAPCyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAEpAwA3AwALcgEDfyAAKAIALAAAQTBrQQpPBEBBAA8LA0AgACgCACEDQX8hASACQcyZs+YATQRAQX8gAywAAEEwayIBIAJBCmwiAmogASACQf////8Hc0obIQELIAAgA0EBajYCACABIQIgAywAAUEwa0EKSQ0ACyACC9AUAhh/AX4jAEHQAGsiByQAIAcgATYCTCAEQcABayEXIANBgANrIRggB0E3aiEZIAdBOGohEwJAAkACQANAQQAhBgNAIAEhDCAGIBJB/////wdzSg0CIAYgEmohEgJAAkACQCABIgYtAAAiCARAA0ACQAJAIAhB/wFxIgFFBEAgBiEBDAELIAFBJUcNASAGIQgDQCAILQABQSVHBEAgCCEBDAILIAZBAWohBiAILQACIRsgCEECaiIBIQggG0ElRg0ACwsgBiAMayIGIBJB/////wdzIhpKDQggAARAIAAgDCAGEB0LIAYNBiAHIAE2AkwgAUEBaiEGQX8hDgJAIAEsAAFBMGsiCkEKTw0AIAEtAAJBJEcNACABQQNqIQYgCiEOQQEhFAsgByAGNgJMQQAhCwJAIAYsAAAiCEEgayIBQR9LBEAgBiEKDAELIAYhCkEBIAF0IgFBidEEcUUNAANAIAcgBkEBaiIKNgJMIAEgC3IhCyAGLAABIghBIGsiAUEgTw0BIAohBkEBIAF0IgFBidEEcQ0ACwsCQCAIQSpGBEAgCkEBaiEIAn8CQCAKLAABQTBrQQpPDQAgCi0AAkEkRw0AIAgsAAAhASAKQQNqIQhBASEUAn8gAEUEQCAXIAFBAnRqQQo2AgBBAAwBCyAYIAFBA3RqKAIACwwBCyAUDQYgAEUEQCAHIAg2AkxBACEUQQAhDwwDCyACIAIoAgAiAUEEajYCAEEAIRQgASgCAAshDyAHIAg2AkwgD0EATg0BQQAgD2shDyALQYDAAHIhCwwBCyAHQcwAahBLIg9BAEgNCSAHKAJMIQgLQQAhBkF/IQkCfyAILQAAQS5HBEAgCCEBQQAMAQsgCC0AAUEqRgRAIAhBAmohAQJAAkAgCCwAAkEwa0EKTw0AIAgtAANBJEcNACABLAAAIQECfyAARQRAIBcgAUECdGpBCjYCAEEADAELIBggAUEDdGooAgALIQkgCEEEaiEBDAELIBQNBiAARQRAQQAhCQwBCyACIAIoAgAiCkEEajYCACAKKAIAIQkLIAcgATYCTCAJQQBODAELIAcgCEEBajYCTCAHQcwAahBLIQkgBygCTCEBQQELIRUDQCAGIQ1BHCEQIAEiESwAACIGQfsAa0FGSQ0KIAFBAWohASAGIA1BOmxqQe/FAGotAAAiBkEBa0EISQ0ACyAHIAE2AkwCQCAGQRtHBEAgBkUNCyAOQQBOBEAgAEUEQCAEIA5BAnRqIAY2AgAMCwsgByADIA5BA3RqKQMANwNADAILIABFDQcgB0FAayAGIAIgBRBKDAELIA5BAE4NCkEAIQYgAEUNBwtBfyEQIAAtAABBIHENCiALQf//e3EiCCALIAtBgMAAcRshC0EAIQ5BigghFiATIQoCQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJAAkACQCARLAAAIgZBX3EgBiAGQQ9xQQNGGyAGIA0bIgZB2ABrDiEEFBQUFBQUFBQOFA8GDg4OFAYUFBQUAgUDFBQJFAEUFAQACwJAIAZBwQBrDgcOFAsUDg4OAAsgBkHTAEYNCQwTCyAHKQNAIR5BiggMBQtBACEGAkACQAJAAkACQAJAAkAgDUH/AXEOCAABAgMEGgUGGgsgBygCQCASNgIADBkLIAcoAkAgEjYCAAwYCyAHKAJAIBKsNwMADBcLIAcoAkAgEjsBAAwWCyAHKAJAIBI6AAAMFQsgBygCQCASNgIADBQLIAcoAkAgEqw3AwAMEwtBCCAJIAlBCE0bIQkgC0EIciELQfgAIQYLIBMhASAHKQNAIh5CAFIEQCAGQSBxIQgDQCABQQFrIgEgHqdBD3FBgMoAai0AACAIcjoAACAeQg9WIRwgHkIEiCEeIBwNAAsLIAEhDCAHKQNAUA0DIAtBCHFFDQMgBkEEdkGKCGohFkECIQ4MAwsgEyEBIAcpA0AiHkIAUgRAA0AgAUEBayIBIB6nQQdxQTByOgAAIB5CB1YhHSAeQgOIIR4gHQ0ACwsgASEMIAtBCHFFDQIgCSATIAFrIgFBAWogASAJSBshCQwCCyAHKQNAIh5CAFMEQCAHQgAgHn0iHjcDQEEBIQ5BiggMAQsgC0GAEHEEQEEBIQ5BiwgMAQtBjAhBigggC0EBcSIOGwshFiAeIBMQKSEMCyAVIAlBAEhxDQ8gC0H//3txIAsgFRshCwJAIAcpA0AiHkIAUg0AIAkNACATIQxBACEJDAwLIAkgHlAgEyAMa2oiASABIAlIGyEJDAsLAn9B/////wcgCSAJQf////8HTxsiCiIRQQBHIQsCQAJAAkAgBygCQCIBQa8SIAEbIgwiBiINQQNxRQ0AIBFFDQADQCANLQAARQ0CIBFBAWsiEUEARyELIA1BAWoiDUEDcUUNASARDQALCyALRQ0BAkAgDS0AAEUNACARQQRJDQADQCANKAIAIgFBf3MgAUGBgoQIa3FBgIGChHhxDQIgDUEEaiENIBFBBGsiEUEDSw0ACwsgEUUNAQsDQCANIA0tAABFDQIaIA1BAWohDSARQQFrIhENAAsLQQALIgEgBmsgCiABGyIBIAxqIQogCUEATgRAIAghCyABIQkMCwsgCCELIAEhCSAKLQAADQ4MCgsgCQRAIAcoAkAMAgtBACEGIABBICAPQQAgCxAfDAILIAdBADYCDCAHIAcpA0A+AgggByAHQQhqIgY2AkBBfyEJIAYLIQhBACEGAkADQCAIKAIAIgxFDQECQCAHQQRqIAwQSCIKQQBIIgwNACAKIAkgBmtLDQAgCEEEaiEIIAYgCmoiBiAJSQ0BDAILCyAMDQ4LQT0hECAGQQBIDQwgAEEgIA8gBiALEB8gBkUEQEEAIQYMAQtBACEKIAcoAkAhCANAIAgoAgAiDEUNASAHQQRqIgkgDBBIIgwgCmoiCiAGSw0BIAAgCSAMEB0gCEEEaiEIIAYgCksNAAsLIABBICAPIAYgC0GAwABzEB8gDyAGIAYgD0gbIQYMCAsgFSAJQQBIcQ0JQT0hECAAIAcrA0AgDyAJIAsgBhBJIgZBAE4NBwwKCyAHIAcpA0A8ADdBASEJIBkhDCAIIQsMBAsgBi0AASEIIAZBAWohBgwACwALIBIhECAADQcgFEUNAkEBIQYDQCAEIAZBAnRqKAIAIgAEQCADIAZBA3RqIAAgAiAFEEpBASEQIAZBAWoiBkEKRw0BDAkLC0EBIRAgBkEKTw0HA0AgBCAGQQJ0aigCAA0BIAZBAWoiBkEKRw0ACwwHC0EcIRAMBQsgCSAKIAxrIgogCSAKShsiASAOQf////8Hc0oNA0E9IRAgDyABIA5qIgggCCAPSBsiBiAaSg0EIABBICAGIAggCxAfIAAgFiAOEB0gAEEwIAYgCCALQYCABHMQHyAAQTAgASAKQQAQHyAAIAwgChAdIABBICAGIAggC0GAwABzEB8gBygCTCEBDAELCwtBACEQDAILQT0hEAtBuN4AIBA2AgBBfyEQCyAHQdAAaiQAIBALvwIBBX8jAEHQAWsiBCQAIAQgAjYCzAEgBEGgAWoiAkEAQSgQJhogBCAEKALMATYCyAECQEEAIAEgBEHIAWogBEHQAGogAiADEExBAEgEQEF/IQMMAQsgACgCTEEASCEIIAAgACgCACIHQV9xNgIAAn8CQAJAIAAoAjBFBEAgAEHQADYCMCAAQQA2AhwgAEIANwMQIAAoAiwhBSAAIAQ2AiwMAQsgACgCEA0BC0F/IAAQTw0BGgsgACABIARByAFqIARB0ABqIARBoAFqIAMQTAshAiAFBEAgAEEAQQAgACgCJBECABogAEEANgIwIAAgBTYCLCAAQQA2AhwgACgCFCEBIABCADcDECACQX8gARshAgsgACAAKAIAIgAgB0EgcXI2AgBBfyACIABBIHEbIQMgCA0ACyAEQdABaiQAIAMLfgIBfwF+IAC9IgNCNIinQf8PcSICQf8PRwR8IAJFBEAgASAARAAAAAAAAAAAYQR/QQAFIABEAAAAAAAA8EOiIAEQTiEAIAEoAgBBQGoLNgIAIAAPCyABIAJB/gdrNgIAIANC/////////4eAf4NCgICAgICAgPA/hL8FIAALC1kBAX8gACAAKAJIIgFBAWsgAXI2AkggACgCACIBQQhxBEAgACABQSByNgIAQX8PCyAAQgA3AgQgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCEEEACwIAC/ADAEGMzwBBoQsQFUGkzwBB9wlBAUEAEBRBsM8AQa4JQQFBgH9B/wAQBkHIzwBBpwlBAUGAf0H/ABAGQbzPAEGlCUEBQQBB/wEQBkHUzwBBsAhBAkGAgH5B//8BEAZB4M8AQacIQQJBAEH//wMQBkHszwBBvwhBBEGAgICAeEH/////BxAGQfjPAEG2CEEEQQBBfxAGQYTQAEGwCkEEQYCAgIB4Qf////8HEAZBkNAAQacKQQRBAEF/EAZBnNAAQc8IQoCAgICAgICAgH9C////////////ABBUQajQAEHOCEIAQn8QVEG00ABByAhBBBAPQcDQAEGGC0EIEA9B8C5BzwoQDkHIL0HVDxAOQZAwQQRBtQoQC0HcMEECQdsKEAtBqDFBBEHqChALQZwtQfwJEBNB0DFBAEGQDxAAQfgxQQBB9g8QAEGgMkEBQa4PEABByDJBAkHdCxAAQfAyQQNB/AsQAEGYM0EEQaQMEABBwDNBBUHBDBAAQegzQQRBmxAQAEGQNEEFQbkQEABB+DFBAEGnDRAAQaAyQQFBhg0QAEHIMkECQekNEABB8DJBA0HHDRAAQZgzQQRB7w4QAEHAM0EFQc0OEABBuDRBCEGsDhAAQeA0QQlBig4QAEGINUEGQecMEABBsDVBB0HgEBAAC2YBA39B2AAQLUHQAGoiAUHw0QA2AgAgAUGc0gA2AgAgABAqIgJBDWoQHCIDQQA2AgggAyACNgIEIAMgAjYCACABIANBDGogACACQQFqECI2AgQgAUHM0gA2AgAgAUHs0gBBGBAWAAvYAwIEfwF8IwBBEGsiBCQAIAQgAjYCCCAEQQA2AgRBxNQALQAAQQFxRQRAQQJBnC5BABAFIQJBxNQAQQE6AABBwNQAIAI2AgALAn9BwNQAKAIAIAEoAgRBigkgBEEEaiAEQQhqEAQiCEQAAAAAAADwQWMgCEQAAAAAAAAAAGZxBEAgCKsMAQtBAAshBSAEKAIEIQIgACAFNgIEIABBpNUANgIAIAIEQCACEAELIwBBIGsiAiQAIAAoAgQiBRACIAIgBTYCECADKAIEIAMtAAsiBSAFwEEASCIHGyIFQQRqEC0iBiAFNgIAIAZBBGogAygCACADIAcbIAUQIhogAiAGNgIYIAJBADYCDEHM1AAtAABBAXFFBEBBA0GkLkEAEAUhA0HM1ABBAToAAEHI1AAgAzYCAAtByNQAKAIAIAEoAgRBlAsgAkEMaiACQRBqEAQaIAIoAgwiAwRAIAMQAQsgAkEgaiQAIAAoAgQiABACIAQgADYCCCAEQQA2AgRBvNQALQAAQQFxRQRAQQJBjC5BABAFIQBBvNQAQQE6AABBuNQAIAA2AgALQbjUACgCACABKAIEQZcJIARBBGogBEEIahAEGiAEKAIEIgAEQCAAEAELIARBEGokAAscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAQC4sEAQJ/QbgsQcwsQegsQQBB+CxBAUH7LEEAQfssQQBBmhJB/SxBAhAYQbgsQQJBgC1BpC1BA0EEEBdBCBAcIgBBADYCBCAAQQU2AgBBCBAcIgFBADYCBCABQQY2AgBBuCxB6QhBnC1BpC1BByAAQZwtQagtQQggARAKQQgQHCIAQQA2AgQgAEEJNgIAQQgQHCIBQQA2AgQgAUEKNgIAQbgsQY0LQZwtQaQtQQcgAEGcLUGoLUEIIAEQCkEIEBwiAEEANgIEIABBCzYCAEEIEBwiAUEANgIEIAFBDDYCAEG4LEHXCEGcLUGkLUEHIABBnC1BqC1BCCABEApBCBAcIgBBADYCBCAAQQ02AgBBCBAcIgFBADYCBCABQQ42AgBBuCxBwglBnC1BpC1BByAAQZwtQagtQQggARAKQQgQHCIAQQA2AgQgAEEPNgIAQbgsQYAIQQdBsC1BzC1BECAAQQBBABAIQQgQHCIAQQA2AgQgAEERNgIAQbgsQYwKQQZB4C1B+C1BEiAAQQBBABAIQQgQHCIAQQA2AgQgAEETNgIAQbgsQZkKQQJBgC5BiC5BFCAAQQBBABAIQQgQHCIAQQA2AgQgAEEVNgIAQbgsQYALQQJBgC5BiC5BFCAAQQBBABAIQQgQHCIAQQA2AgQgAEEWNgIAQbgsQcMIQQJBlC5BpC1BFyAAQQBBABAICwcAIAAoAgQLBQBBswkLFgAgAEUEQEEADwsgAEG8zQAQIEEARwsaACAAIAEoAgggBRAeBEAgASACIAMgBBA7Cws3ACAAIAEoAgggBRAeBEAgASACIAMgBBA7DwsgACgCCCIAIAEgAiADIAQgBSAAKAIAKAIUEQkAC6cBACAAIAEoAgggBBAeBEACQCABKAIEIAJHDQAgASgCHEEBRg0AIAEgAzYCHAsPCwJAIAAgASgCACAEEB5FDQACQCACIAEoAhBHBEAgASgCFCACRw0BCyADQQFHDQEgAUEBNgIgDwsgASACNgIUIAEgAzYCICABIAEoAihBAWo2AigCQCABKAIkQQFHDQAgASgCGEECRw0AIAFBAToANgsgAUEENgIsCwuIAgAgACABKAIIIAQQHgRAAkAgASgCBCACRw0AIAEoAhxBAUYNACABIAM2AhwLDwsCQCAAIAEoAgAgBBAeBEACQCACIAEoAhBHBEAgASgCFCACRw0BCyADQQFHDQIgAUEBNgIgDwsgASADNgIgAkAgASgCLEEERg0AIAFBADsBNCAAKAIIIgAgASACIAJBASAEIAAoAgAoAhQRCQAgAS0ANQRAIAFBAzYCLCABLQA0RQ0BDAMLIAFBBDYCLAsgASACNgIUIAEgASgCKEEBajYCKCABKAIkQQFHDQEgASgCGEECRw0BIAFBAToANg8LIAAoAggiACABIAIgAyAEIAAoAgAoAhgRCAALC2kBAn8jAEEQayIDJAAgASAAKAIEIgRBAXVqIQEgACgCACEAIARBAXEEQCABKAIAIABqKAIAIQALIAMgAjYCDCADQaTVADYCCCABIANBCGogABEAACADKAIMIgAEQCAAEAMLIANBEGokAAuEBQEEfyMAQUBqIgQkAAJAIAFBmM8AQQAQHgRAIAJBADYCAEEBIQUMAQsCQCAAIAEgAC0ACEEYcQR/QQEFIAFFDQEgAUGMzQAQICIDRQ0BIAMtAAhBGHFBAEcLEB4hBgsgBgRAQQEhBSACKAIAIgBFDQEgAiAAKAIANgIADAELAkAgAUUNACABQbzNABAgIgZFDQEgAigCACIBBEAgAiABKAIANgIACyAGKAIIIgMgACgCCCIBQX9zcUEHcQ0BIANBf3MgAXFB4ABxDQFBASEFIAAoAgwgBigCDEEAEB4NASAAKAIMQYzPAEEAEB4EQCAGKAIMIgBFDQIgAEHwzQAQIEUhBQwCCyAAKAIMIgNFDQBBACEFIANBvM0AECAiAQRAIAAtAAhBAXFFDQICfyAGKAIMIQBBACECAkADQEEAIABFDQIaIABBvM0AECAiA0UNASADKAIIIAEoAghBf3NxDQFBASABKAIMIAMoAgxBABAeDQIaIAEtAAhBAXFFDQEgASgCDCIARQ0BIABBvM0AECAiAQRAIAMoAgwhAAwBCwsgAEGszgAQICIARQ0AIAAgAygCDBA8IQILIAILIQUMAgsgA0GszgAQICIBBEAgAC0ACEEBcUUNAiABIAYoAgwQPCEFDAILIANB3MwAECAiAUUNASAGKAIMIgBFDQEgAEHczAAQICIARQ0BIARBDGpBAEE0ECYaIARBATYCOCAEQX82AhQgBCABNgIQIAQgADYCCCAAIARBCGogAigCAEEBIAAoAgAoAhwRBgACQCAEKAIgIgBBAUcNACACKAIARQ0AIAIgBCgCGDYCAAsgAEEBRiEFDAELQQAhBQsgBEFAayQAIAULMQAgACABKAIIQQAQHgRAIAEgAiADED0PCyAAKAIIIgAgASACIAMgACgCACgCHBEGAAsYACAAIAEoAghBABAeBEAgASACIAMQPQsLnQEBAn8jAEFAaiIDJAACf0EBIAAgAUEAEB4NABpBACABRQ0AGkEAIAFB3MwAECAiAUUNABogA0EMakEAQTQQJhogA0EBNgI4IANBfzYCFCADIAA2AhAgAyABNgIIIAEgA0EIaiACKAIAQQEgASgCACgCHBEGACADKAIgIgBBAUYEQCACIAMoAhg2AgALIABBAUYLIQQgA0FAayQAIAQLCgAgACABQQAQHgtOAgF/AXwjAEEQayICJAAgAkEANgIMIAEoAgRBpM8AIAJBDGoQCSEDIAIoAgwiAQRAIAEQAQsgACADRAAAAAAAAAAAYjoAOCACQRBqJAALNwEBfyMAQRBrIgIkACACIAEtADg2AgggAEGkzwAgAkEIahAHNgIEIABBpNUANgIAIAJBEGokAAuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECIaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECIaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACC5wBAQJ/IwBBEGsiAiQAQcgAEBwhASAAKAIEIgAQAiACIAA2AgggAUGcLSACQQhqEAc2AgQgAUGk1QA2AgAgAUEBNgIcIAFBpNUANgIYIAFBATYCFCABQaTVADYCECABQQE2AgwgAUGk1QA2AgggAUEAOgAgIAFBADYCRCABQoCAgIAwNwI8IAFBADsANyABQQA7ACsgAkEQaiQAIAELigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBSMAQSBrIgAkAAJAIAVC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBUIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBUIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIBQZH3AEkNACADIQIgBUL///////8/g0KAgICAgIDAAIQiBCEGAkAgAUGB9wBrIghBwABxBEAgAyAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAAgAjcDECAAIAY3AxgCQEGB+AAgAWsiAUHAAHEEQCAEIAFBQGqtiCEDQgAhBAwBCyABRQ0AIARBwAAgAWuthiADIAGtIgKIhCEDIAQgAoghBAsgACADNwMAIAAgBDcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACAJIAIgBUKAgICAgICAgIB/g4S/OQMAC0ABAn8jAEEQayICJAAgAiABNgIMIAJBpNUANgIIIAJBCGogABEBACEDIAIoAgwiAQRAIAEQAwsgAkEQaiQAIAMLBABCAAsEAEEAC/YCAQh/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBUECIQcCfwJAAkACQCAAKAI8IANBEGoiAUECIANBDGoQDSIEBH9BuN4AIAQ2AgBBfwVBAAsEQCABIQQMAQsDQCAFIAMoAgwiBkYNAiAGQQBIBEAgASEEDAQLIAEgBiABKAIEIghLIglBA3RqIgQgBiAIQQAgCRtrIgggBCgCAGo2AgAgAUEMQQQgCRtqIgEgASgCACAIazYCACAFIAZrIQUgACgCPCAEIgEgByAJayIHIANBDGoQDSIGBH9BuN4AIAY2AgBBfwVBAAtFDQALCyAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2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Q0EASARAIAYoAjgQGQsgBiwAM0EASARAIAYoAigQGQsgBiwAJ0EATg0AIAYoAhwQGQsgAkEBaiICQQdHDQALIAVBAWoiBUEHRw0ACyMAQRBrIgwkAEHoJRAqIQcCfyAGQYgBaiIFLQALQQd2BEAgBSgCBAwBCyAFLQALQf8AcQshCAJ/An8jAEEQayIJJAAgBkH4AGohAiAHIAhqIgRB7////wdNBEACQCAEQQtJBEAgAkIANwIAIAJBADYCCCACIAItAAtBgAFxIARB/wBxcjoACyACIAItAAtB/wBxOgALDAELIARBC08EfyAEQRBqQXBxIgogCkEBayIKIApBC0YbBUEKC0EBaiIKEBwhCyACIAIoAghBgICAgHhxIApB/////wdxcjYCCCACIAIoAghBgICAgHhyNgIIIAIgCzYCACACIAQ2AgQLIAlBEGokACACDAELECcACyIELQALQQd2BEAgBCgCAAwBCyAECyIEQeglIAcQIyAEIAdqIgQCfyAFLQALQQd2BEAgBSgCAAwBCyAFCyAIECMgBCAIakEBEEAgDEEQaiQAIA0gAkHCKRAaIgIpAgA3AgAgDSACKAIINgIIIAJCADcCACACQQA2AgggBiwAgwFBAEgEQCAGKAJ4EBkLIAYsAJMBQQBIBEAgBigCiAEQGQsgBigClAEiBQRAIAYoApgBIgQgBSICRwRAA0AgBEEMayICKAIAIgcEQCAEQQhrIAc2AgAgBxAZCyACIgQgBUcNAAsgBigClAEhAgsgBiAFNgKYASACEBkLIAZBoAFqJAAgA0EcaiADKAIoIA0gAy0AMyICwEEASCIFGyADKAIsIAIgBRsQGxogAywAM0EATg0DIAMoAigQGQwDCyADQRxqQZshEBoaDAILIANBHGpB/isQGhoMAQsgA0EcakHnKxAaGgsCQAJAIAEoAjAgAS0ANyICIALAIgZBAEgbIgRBAWoiBUHw////B0kEQAJAAkAgBUELTwRAIAVBD3JBAWoiBxAcIQIgAyAFNgIsIAMgAjYCKCADIAdBgICAgHhyNgIwDAELIANBADYCMCADQgA3AyggAyAFOgAzIANBKGohAiAERQ0BCyACIAFBLGoiBSgCACAFIAZBAEgbIAQQMgsgAiAEakEKOwAAIANBHGogAygCKCADQShqIAMtADMiAsBBAEgiBRsgAygC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EGokAAsiAQF+IAEgAq0gA61CIIaEIAQgABEMACIFQiCIpyQBIAWnCzcBAX8jAEEQayICJAAgAiABKAI8NgIIIABB7M8AIAJBCGoQBzYCBCAAQaTVADYCACACQRBqJAALC8NKFQBBgAgL1CVzZXRCZWF1dHkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAB1bnNpZ25lZCBzaG9ydAB1bnNpZ25lZCBpbnQAaW5pdABmbG9hdAB1aW50NjRfdABibHVyUmFkaXVzAHZlY3RvcgBtaXJyb3IAYXR0YWNoU2hhZGVyAGRlbGV0ZVNoYWRlcgBjcmVhdGVTaGFkZXIAY29tcGlsZVNoYWRlcgB1bnNpZ25lZCBjaGFyAHN0ZDo6ZXhjZXB0aW9uAHJvdGF0aW9uAG5hbgBsaW5rUHJvZ3JhbQBkZWxldGVQcm9ncmFtAGNyZWF0ZVByb2dyYW0AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sATkFOAElORgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgB2ZWMyIGMgPSB2X3RleENvb3JkOwB2ZWMyIGMgPSB2ZWMyKDEuMCAtIHZfdGV4Q29vcmQueCwgdl90ZXhDb29yZC55KTsAYyA9IHZlYzIoMS4wIC0gYy54LCAxLjAgLSBjLnkpOwBjID0gdmVjMihjLnksIDEuMCAtIGMueCk7AGMgPSB2ZWMyKDEuMCAtIGMueSwgYy54KTsAQWxsSW4xAC4ALjAsAC4wKSpvKSoAKG51bGwpACkqby55KTsgICAgdmVjMiBjb29yZDIgPSB2ZWMyKGZsb2F0KAAgICAgYyA9IHZlYzIodl90ZXhDb29yZC54LCAxLjAgLSB2X3RleENvb3JkLnkpOyAgICB2ZWMyIGNvb3JkMSA9IHZlYzIoZmxvYXQoACksIChjLnkgLWNvb3JkMS55KSAvIG8ueSAvIGZsb2F0KAApKm8ueSk7ICAgIGlmIChjLnggPiBjb29yZDEueCAmJiBjLnggPCBjb29yZDIueCAmJiBjLnkgPiBjb29yZDEueSAmJiBjLnkgPCBjb29yZDIueSkgeyAgICAgIHZlYzQgd2F0ZXJDb2xvciA9IHRleHR1cmUod2F0ZXJNYXJrLCB2ZWMyKChjLnggLSBjb29yZDEueCkgIC8gby54IC8gZmxvYXQoACkgKiBvLngsIGZsb2F0KABvdXRDb2xvci5yZ2IgKz0gdmVjMygAKTsgICAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgICAgc21vb3RoQ29sb3IgPSBjbGFtcChwb3coc21vb3RoQ29sb3IsIHZlYzMoAGcrPUcoYyx2ZWMyKAAgICAgICB2ZWMyIG9mZnNldCA9IHZlYzIoAF0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigAOyAAKSksIHZlYzMoMC4wKSwgdmVjMygxLjApKTsgICAgICB2ZWMzIHNjcmVlbiA9IHZlYzMoMS4wKSAtICh2ZWMzKDEuMCktc21vb3RoQ29sb3IpICogKHZlYzMoMS4wKS1vdXRDb2xvci5yZ2IpOyAgICAgICB2ZWMzIGxpZ2h0ZW4gPSBtYXgoc21vb3RoQ29sb3IsIG91dENvbG9yLnJnYik7ICAgICAgIHZlYzMgYmVhdXR5Q29sb3IgPSBtaXgobWl4KG91dENvbG9yLnJnYiwgc2NyZWVuLCBhbHBoYSksIGxpZ2h0ZW4sIGFscGhhKTsgICAgICBvdXRDb2xvci5yZ2IgPSBtaXgob3V0Q29sb3IucmdiLCBiZWF1dHlDb2xvciwgAAogICAgICBjb25zdCBtYXQzIHNhdHVyYXRlTWF0cml4ID0gbWF0MygxLjExMDIsLTAuMDU5OCwtMC4wNjEsLTAuMDc3NCwxLjA4MjYsLTAuMTE4NiwtMC4wMjI4LC0wLjAyMjgsMS4xNzcyKTsKICAgICAgdmVjMyB3YXJtQ29sb3IgPSBvdXRDb2xvci5yZ2IgKiBzYXR1cmF0ZU1hdHJpeDsKICAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgd2FybUNvbG9yLCAAICAgICAgc2FtcGxlQ29sb3IgPSBzYW1wbGVDb2xvciAvIDYyLjA7ICAgICAgIGZsb2F0IGhpZ2hQYXNzID0gb3V0Q29sb3IuZyAtIHNhbXBsZUNvbG9yICsgMC41OyAgICAgICBjb25zdCBoaWdocCB2ZWMzIFcgPSB2ZWMzKDAuMjk5LDAuNTg3LDAuMTE0KTsgICAgICBmbG9hdCBsdW1pbmFuY2UgPSBkb3Qob3V0Q29sb3IucmdiLCBXKTsgICAgICAgZmxvYXQgYWxwaGEgPSBwb3cobHVtaW5hbmNlLCAAXSkuZyAqIAApKSk7ICAgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3Isd2F0ZXJDb2xvciwgIHdhdGVyQ29sb3IuYSk7ICAgIH0gICAgACk7ICAgIAApOyAgICAgIHZlYzIgYmx1ckNvb3JkaW5hdGVzWzI0XTsgICAgICAAICAgICAgZmxvYXQgc2FtcGxlQ29sb3IgPSBvdXRDb2xvci5nICogMjIuMDsgICAgICAgACN2ZXJzaW9uIDMwMCBlcwogICAgcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwogICAgdW5pZm9ybSBzYW1wbGVyMkQgZnJhbWU7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBtYXNrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgYmc7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCB3YXRlck1hcms7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBsYXN0TWFzazsKICAgIHVuaWZvcm0gbWF0NCB1X29mZnNldE1hdHJpeDsKICAgIHVuaWZvcm0gdmVjMyB1X2NvbG9yOwogICAgaW4gdmVjMiB2X3RleENvb3JkOwogICAgb3V0IHZlYzQgb3V0Q29sb3I7CiAgICB2ZWM0IEcodmVjMiBjLHZlYzIgcyl7CiAgICAgIHJldHVybiB0ZXh0dXJlKGZyYW1lLHRleHR1cmUobWFzayxjK3MpLnI+MC4zP2M6YytzKTsKICAgIH0KICAgIHZvaWQgbWFpbigpIHsKICAgICAgAAogICAgICB2ZWMyIG9mZnNldE1hc2tVViA9ICh1X29mZnNldE1hdHJpeCAqIHZlYzQoYywgMCwgMSkpLnh5OwogICAgICBmbG9hdCBpc0luc2lkZVggPSAob2Zmc2V0TWFza1VWLnggPj0gMC4wKSAmJiAob2Zmc2V0TWFza1VWLnggPD0gMS4wKSA/IDEuMCA6IDAuMDsKICAgICAgZmxvYXQgaXNJbnNpZGVZID0gKG9mZnNldE1hc2tVVi55ID49IDAuMCkgJiYgKG9mZnNldE1hc2tVVi55IDw9IDEuMCkgPyAxLjAgOiAwLjA7CiAgICAgIGZsb2F0IGlzSW5zaWRlID0gaXNJbnNpZGVYICogaXNJbnNpZGVZOwogICAgICBmbG9hdCBtYXNrZWRBbHBoYSA9IHRleHR1cmUobWFzaywgb2Zmc2V0TWFza1VWKS5yICogaXNJbnNpZGU7CiAgICAgIG1hc2tlZEFscGhhID0gbWFza2VkQWxwaGE8MC41PzIuMCptYXNrZWRBbHBoYSptYXNrZWRBbHBoYToxLjAtMi4wKigxLjAtbWFza2VkQWxwaGEpKigxLjAtbWFza2VkQWxwaGEpOwogICAgICBzcmNfY29sb3IgPSB0ZXh0dXJlKGZyYW1lLCBvZmZzZXRNYXNrVVYgLCBpc0luc2lkZSk7CiAgICAgIG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLCBzcmNfY29sb3IsIG1hc2tlZEFscGhhKTsKICAgIAAKICAgIHZlYzQgZyA9IHZlYzQoMC4wKTsKICAgIAAKICAgICAgYy55ID0gMS4wIC0gYy55OwogICAgICB2ZWM0IHNyY19jb2xvciA9IHRleHR1cmUoZnJhbWUsIGMpOwogICAgICBmbG9hdCBhID0gdGV4dHVyZShtYXNrLCBjKS5yOwogICAgICBhID0gYTwwLjU/Mi4wKmEqYToxLjAtMi4wKigxLjAtYSkqKDEuMC1hKTsKICAgICAgLy8gZmxvYXQgYTIgPSB0ZXh0dXJlKGxhc3RNYXNrLCBjKS5hOwogICAgICAvLyBhMiA9IGEyPDAuNT8yLjAqYTIqYTI6MS4wLTIuMCooMS4wLWEyKSooMS4wLWEyKTsKICAgICAgLy8gZmxvYXQgZGVsdGEgPSBhIC0gYTI7CiAgICAgIC8vIGlmIChkZWx0YSA8IDAuMjUgJiYgZGVsdGEgPiAtMC4yNSkKICAgICAgLy8gewogICAgICAvLyAgICAgYSA9IGEgKyAwLjUqZGVsdGE7CiAgICAgIC8vIH0KICAgICAgCiAgICAgIHZlYzIgbyA9IDEuMCAvIHZlYzIodGV4dHVyZVNpemUoZnJhbWUsIDApKTsKICAgIAAKICAgICAgb3V0Q29sb3IgPSBnOwogIAAjdmVyc2lvbiAzMDAgZXMKaW4gdmVjMiBhX3Bvc2l0aW9uOwppbiB2ZWMyIGFfdGV4Q29vcmQ7Cgp1bmlmb3JtIG1hdDQgdV90ZXh0dXJlTWF0cml4OwoKb3V0IHZlYzIgdl90ZXhDb29yZDsKdm9pZCBtYWluKCkgewogIGdsX1Bvc2l0aW9uID0gdmVjNChhX3Bvc2l0aW9uLngsIGFfcG9zaXRpb24ueSwgMCwgMSk7CiAgdl90ZXhDb29yZCA9KHVfdGV4dHVyZU1hdHJpeCAqIHZlYzQoYV90ZXhDb29yZCwgMCwgMSkpLnh5Owp9CgBzZXRCZWF1dHkgJWYgJWYgJWYgJWYgJWYKAG91dENvbG9yID0gc3JjX2NvbG9yOwoAb3V0Q29sb3IgPSBtaXgodmVjNCh1X2NvbG9yLDEuMCksc3JjX2NvbG9yLGEpOwoANkFsbEluMQAAAFAoAAAuFgAAUDZBbGxJbjEAAAAA1CgAAEAWAAAAAAAAOBYAAFBLNkFsbEluMQAAANQoAABcFgAAAQAAADgWAABpaQB2AHZpAEwWAACcFgAATjEwZW1zY3JpcHRlbjN2YWxFAABQKAAAiBYAAGlpaQB2aWlpAAAAAIwnAABMFgAAQCgAAEAoAABAKAAAQCgAAEAoAAB2aWlkZGRkZABB4C0LyAiMJwAATBYAAEAoAABAKAAAQCgAAEAoAAB2aWlkZGRkAIwnAABMFgAAdmlpAIwnAACcFgAAnBYAAEwWAACcFgAA7CcAAIwnAACcFgAAcBcAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAABQKAAAMBcAAJwWAACMJwAAnBYAAJwWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAUCgAAIgXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAUCgAANAXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAFAoAAAYGAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAABQKAAAZBgAAE4x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")||(k=Y,Y=r.locateFile?r.locateFile(k,o):o+k);var K=function(A){for(;A.length>0;)A.shift()(r)};function J(A){this.excPtr=A,this.ptr=A-24,this.set_type=function(A){D[this.ptr+4>>2]=A},this.get_type=function(){return D[this.ptr+4>>2]},this.set_destructor=function(A){D[this.ptr+8>>2]=A},this.get_destructor=function(){return D[this.ptr+8>>2]},this.set_caught=function(A){A=A?1:0,h[this.ptr+12|0]=A},this.get_caught=function(){return 0!=h[this.ptr+12|0]},this.set_rethrown=function(A){A=A?1:0,h[this.ptr+13|0]=A},this.get_rethrown=function(){return 0!=h[this.ptr+13|0]},this.init=function(A,g){this.set_adjusted_ptr(0),this.set_type(A),this.set_destructor(g)},this.set_adjusted_ptr=function(A){D[this.ptr+16>>2]=A},this.get_adjusted_ptr=function(){return D[this.ptr+16>>2]},this.get_exception_ptr=function(){if(ug(this.get_type()))return D[this.excPtr>>2];var A=this.get_adjusted_ptr();return 0!==A?A:this.excPtr}}r.noExitRuntime;var T,x,j,Z=function(A){for(var g="",t=A;l[t];)g+=T[l[t++]];return g},P={},W={},O={},X=function(A){throw new x(A)},V=function(A){throw new j(A)},z=function(A,g,t){function I(g){var I=t(g);I.length!==A.length&&V("Mismatched type converter count");for(var e=0;e<A.length;++e)q(A[e],I[e])}A.forEach((function(A){O[A]=g}));var e=new Array(g.length),r=[],C=0;g.forEach((function(A,g){W.hasOwnProperty(A)?e[g]=W[A]:(r.push(A),P.hasOwnProperty(A)||(P[A]=[]),P[A].push((function(){e[g]=W[A],++C===r.length&&I(e)})))})),0===r.length&&I(e)};function q(A,g){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!("argPackAdvance"in g))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(A,g){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},I=g.name;if(A||X('type "'.concat(I,'" must have a positive integer typeid pointer')),W.hasOwnProperty(A)){if(t.ignoreDuplicateRegistrations)return;X("Cannot register type '".concat(I,"' twice"))}if(W[A]=g,delete O[A],P.hasOwnProperty(A)){var e=P[A];delete P[A],e.forEach((function(A){return A()}))}}(A,g,t)}var _,$=function(A){X(A.$$.ptrType.registeredClass.name+" instance already deleted")},AA=!1,gA=function(A){},tA=function(A){A.count.value-=1,0===A.count.value&&function(A){A.smartPtr?A.smartPtrType.rawDestructor(A.smartPtr):A.ptrType.registeredClass.rawDestructor(A.ptr)}(A)},IA=function(A,g,t){if(g===t)return A;if(void 0===t.baseClass)return null;var I=IA(A,g,t.baseClass);return null===I?null:t.downcast(I)},eA={},rA=function(){return Object.keys(iA).length},CA=function(){var A=[];for(var g in iA)iA.hasOwnProperty(g)&&A.push(iA[g]);return A},BA=[],nA=function(){for(;BA.length;){var A=BA.pop();A.$$.deleteScheduled=!1,A.delete()}},oA=function(A){_=A,BA.length&&_&&_(nA)},iA={},QA=function(A,g){return g=function(A,g){for(void 0===g&&X("ptr should not be undefined");A.baseClass;)g=A.upcast(g),A=A.baseClass;return g}(A,g),iA[g]},EA=function(A,g){return g.ptrType&&g.ptr||V("makeClassHandle requires ptr and ptrType"),!!g.smartPtrType!=!!g.smartPtr&&V("Both smartPtrType and smartPtr must be specified"),g.count={value:1},sA(Object.create(A,{$$:{value:g}}))};function aA(A){var g=this.getPointee(A);if(!g)return this.destructor(A),null;var t=QA(this.registeredClass,g);if(void 0!==t){if(0===t.$$.count.value)return t.$$.ptr=g,t.$$.smartPtr=A,t.clone();var I=t.clone();return this.destructor(A),I}function e(){return this.isSmartPointer?EA(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:g,smartPtrType:this,smartPtr:A}):EA(this.registeredClass.instancePrototype,{ptrType:this,ptr:A})}var r,C=this.registeredClass.getActualType(g),B=eA[C];if(!B)return e.call(this);r=this.isConst?B.constPointerType:B.pointerType;var n=IA(g,this.registeredClass,r.registeredClass);return null===n?e.call(this):this.isSmartPointer?EA(r.registeredClass.instancePrototype,{ptrType:r,ptr:n,smartPtrType:this,smartPtr:A}):EA(r.registeredClass.instancePrototype,{ptrType:r,ptr:n})}var sA=function(A){return"undefined"==typeof FinalizationRegistry?(sA=function(A){return A},A):(AA=new FinalizationRegistry((function(A){tA(A.$$)})),gA=function(A){return AA.unregister(A)},(sA=function(A){var g=A.$$;if(g.smartPtr){var t={$$:g};AA.register(A,t,A)}return A})(A))};function cA(){}var uA=function(A,g){return Object.defineProperty(g,"name",{value:A})},hA=function(A,g,t){if(void 0===A[g].overloadTable){var I=A[g];A[g]=function(){return A[g].overloadTable.hasOwnProperty(arguments.length)||X("Function '".concat(t,"' called with an invalid number of arguments (").concat(arguments.length,") - expects one of (").concat(A[g].overloadTable,")!")),A[g].overloadTable[arguments.length].apply(this,arguments)},A[g].overloadTable=[],A[g].overloadTable[I.argCount]=I}};function lA(A,g,t,I,e,r,C,B){this.name=A,this.constructor=g,this.instancePrototype=t,this.rawDestructor=I,this.baseClass=e,this.getActualType=r,this.upcast=C,this.downcast=B,this.pureVirtualFunctions=[]}var fA=function(A,g,t){for(;g!==t;)g.upcast||X("Expected null or instance of ".concat(t.name,", got an instance of ").concat(g.name)),A=g.upcast(A),g=g.baseClass;return A};function yA(A,g){if(null===g)return this.isReference&&X("null is not a valid ".concat(this.name)),0;g.$$||X('Cannot pass "'.concat(WA(g),'" as a ').concat(this.name)),g.$$.ptr||X("Cannot pass deleted object as a pointer of type ".concat(this.name));var t=g.$$.ptrType.registeredClass;return fA(g.$$.ptr,t,this.registeredClass)}function dA(A,g){var t;if(null===g)return this.isReference&&X("null is not a valid ".concat(this.name)),this.isSmartPointer?(t=this.rawConstructor(),null!==A&&A.push(this.rawDestructor,t),t):0;g.$$||X('Cannot pass "'.concat(WA(g),'" as a ').concat(this.name)),g.$$.ptr||X("Cannot pass deleted object as a pointer of type ".concat(this.name)),!this.isConst&&g.$$.ptrType.isConst&&X("Cannot convert argument of type ".concat(g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name," to parameter type ").concat(this.name));var I=g.$$.ptrType.registeredClass;if(t=fA(g.$$.ptr,I,this.registeredClass),this.isSmartPointer)switch(void 0===g.$$.smartPtr&&X("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:g.$$.smartPtrType===this?t=g.$$.smartPtr:X("Cannot convert argument of type ".concat(g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name," to parameter type ").concat(this.name));break;case 1:t=g.$$.smartPtr;break;case 2:if(g.$$.smartPtrType===this)t=g.$$.smartPtr;else{var e=g.clone();t=this.rawShare(t,TA.toHandle((function(){return e.delete()}))),null!==A&&A.push(this.rawDestructor,t)}break;default:X("Unsupporting sharing policy")}return t}function DA(A,g){if(null===g)return this.isReference&&X("null is not a valid ".concat(this.name)),0;g.$$||X('Cannot pass "'.concat(WA(g),'" as a ').concat(this.name)),g.$$.ptr||X("Cannot pass deleted object as a pointer of type ".concat(this.name)),g.$$.ptrType.isConst&&X("Cannot convert argument of type ".concat(g.$$.ptrType.name," to parameter type ").concat(this.name));var t=g.$$.ptrType.registeredClass;return fA(g.$$.ptr,t,this.registeredClass)}function wA(A){return this.fromWireType(D[A>>2])}function pA(A,g,t,I,e,r,C,B,n,o,i){this.name=A,this.registeredClass=g,this.isReference=t,this.isConst=I,this.isSmartPointer=e,this.pointeeType=r,this.sharingPolicy=C,this.rawGetPointee=B,this.rawConstructor=n,this.rawShare=o,this.rawDestructor=i,e||void 0!==g.baseClass?this.toWireType=dA:I?(this.toWireType=yA,this.destructorFunction=null):(this.toWireType=DA,this.destructorFunction=null)}var GA,NA,MA=[],FA=function(A){var g=MA[A];return g||(A>=MA.length&&(MA.length=A+1),MA[A]=g=GA.get(A)),g},vA=function(A,g,t){return A.includes("j")?function(A,g,t){var I=r["dynCall_"+A];return t&&t.length?I.apply(null,[g].concat(t)):I.call(null,g)}(A,g,t):FA(g).apply(null,t)},mA=function(A,g){var t,I,e,r=(A=Z(A)).includes("j")?(t=A,I=g,e=[],function(){return e.length=0,Object.assign(e,arguments),vA(t,I,e)}):FA(g);return"function"!=typeof r&&X("unknown function pointer with signature ".concat(A,": ").concat(g)),r},RA=function(A){var g=sg(A),t=Z(g);return cg(g),t},bA=function(A,g){var t=[],I={};throw g.forEach((function A(g){I[g]||W[g]||(O[g]?O[g].forEach(A):(t.push(g),I[g]=!0))})),new NA("".concat(A,": ")+t.map(RA).join([", "]))},YA=function(A,g){for(var t=[],I=0;I<A;I++)t.push(D[g+4*I>>2]);return t},kA=function(A){for(;A.length;){var g=A.pop();A.pop()(g)}};function SA(A,g,t,I,e,r){var C=g.length;C<2&&X("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var B=null!==g[1]&&null!==t,n=!1,o=1;o<g.length;++o)if(null!==g[o]&&void 0===g[o].destructorFunction){n=!0;break}var i="void"!==g[0].name,Q=C-2,E=new Array(Q),a=[],s=[];return uA(A,(function(){var t;arguments.length!==Q&&X("function ".concat(A," called with ").concat(arguments.length," arguments, expected ").concat(Q)),s.length=0,a.length=B?2:1,a[0]=e,B&&(t=g[1].toWireType(s,this),a[1]=t);for(var r=0;r<Q;++r)E[r]=g[r+2].toWireType(s,arguments[r]),a.push(E[r]);return function(A){if(n)kA(s);else for(var I=B?1:2;I<g.length;I++){var e=1===I?t:E[I-2];null!==g[I].destructorFunction&&g[I].destructorFunction(e)}if(i)return g[0].fromWireType(A)}(I.apply(null,a))}))}var LA=function(A,g,t){return A instanceof Object||X("".concat(t,' with invalid "this": ').concat(A)),A instanceof g.registeredClass.constructor||X("".concat(t,' incompatible with "this" of type ').concat(A.constructor.name)),A.$$.ptr||X("cannot call emscripten binding method ".concat(t," on deleted object")),fA(A.$$.ptr,A.$$.ptrType.registeredClass,g.registeredClass)};function HA(){this.allocated=[void 0],this.freelist=[]}var UA=new HA,KA=function(A){A>=UA.reserved&&0==--UA.get(A).refcount&&UA.free(A)},JA=function(){for(var A=0,g=UA.reserved;g<UA.allocated.length;++g)void 0!==UA.allocated[g]&&++A;return A},TA={toValue:function(A){return A||X("Cannot use deleted val. handle = "+A),UA.get(A).value},toHandle:function(A){switch(A){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return UA.allocate({refcount:1,value:A})}}};function xA(A){return this.fromWireType(d[A>>2])}var jA,ZA,PA,WA=function(A){if(null===A)return"null";var g=s(A);return"object"===g||"array"===g||"function"===g?A.toString():""+A},OA=function(A,g){switch(g){case 4:return function(A){return this.fromWireType(w[A>>2])};case 8:return function(A){return this.fromWireType(p[A>>3])};default:throw new TypeError("invalid float width (".concat(g,"): ").concat(A))}},XA=function(A,g,t){switch(g){case 1:return t?function(A){return h[0|A]}:function(A){return l[0|A]};case 2:return t?function(A){return f[A>>1]}:function(A){return y[A>>1]};case 4:return t?function(A){return d[A>>2]}:function(A){return D[A>>2]};default:throw new TypeError("invalid integer width (".concat(g,"): ").concat(A))}},VA="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,zA=function(A,g,t){for(var I=g+t,e=g;A[e]&&!(e>=I);)++e;if(e-g>16&&A.buffer&&VA)return VA.decode(A.subarray(g,e));for(var r="";g<e;){var C=A[g++];if(128&C){var B=63&A[g++];if(192!=(224&C)){var n=63&A[g++];if((C=224==(240&C)?(15&C)<<12|B<<6|n:(7&C)<<18|B<<12|n<<6|63&A[g++])<65536)r+=String.fromCharCode(C);else{var o=C-65536;r+=String.fromCharCode(55296|o>>10,56320|1023&o)}}else r+=String.fromCharCode((31&C)<<6|B)}else r+=String.fromCharCode(C)}return r},qA="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,_A=function(A,g){for(var t=A,I=t>>1,e=I+g/2;!(I>=e)&&y[I];)++I;if((t=I<<1)-A>32&&qA)return qA.decode(l.subarray(A,t));for(var r="",C=0;!(C>=g/2);++C){var B=f[A+2*C>>1];if(0==B)break;r+=String.fromCharCode(B)}return r},$A=function(A,g,t){if(void 0===t&&(t=2147483647),t<2)return 0;for(var I=g,e=(t-=2)<2*A.length?t/2:A.length,r=0;r<e;++r){var C=A.charCodeAt(r);f[g>>1]=C,g+=2}return f[g>>1]=0,g-I},Ag=function(A){return 2*A.length},gg=function(A,g){for(var t=0,I="";!(t>=g/4);){var e=d[A+4*t>>2];if(0==e)break;if(++t,e>=65536){var r=e-65536;I+=String.fromCharCode(55296|r>>10,56320|1023&r)}else I+=String.fromCharCode(e)}return I},tg=function(A,g,t){if(void 0===t&&(t=2147483647),t<4)return 0;for(var I=g,e=I+t-4,r=0;r<A.length;++r){var C=A.charCodeAt(r);if(C>=55296&&C<=57343&&(C=65536+((1023&C)<<10)|1023&A.charCodeAt(++r)),d[g>>2]=C,(g+=4)+4>e)break}return d[g>>2]=0,g-I},Ig=function(A){for(var g=0,t=0;t<A.length;++t){var I=A.charCodeAt(t);I>=55296&&I<=57343&&++t,g+=4}return g},eg=function(A,g){var t=W[A];return void 0===t&&X(g+" has unknown type "+RA(A)),t},rg=function(A,g,t){var I=[],e=A.toWireType(I,t);return I.length&&(D[g>>2]=TA.toHandle(I)),e},Cg={},Bg=[],ng=Reflect.construct,og=[null,[],[]];!function(){for(var A=new Array(256),g=0;g<256;++g)A[g]=String.fromCharCode(g);T=A}(),x=r.BindingError=function(A){function g(A){var t;return e(this,g),(t=I(this,g,[A])).name="BindingError",t}return n(g,A),C(g)}(u(Error)),j=r.InternalError=function(A){function g(A){var t;return e(this,g),(t=I(this,g,[A])).name="InternalError",t}return n(g,A),C(g)}(u(Error)),Object.assign(cA.prototype,{isAliasOf:function(A){if(!(this instanceof cA))return!1;if(!(A instanceof cA))return!1;var g=this.$$.ptrType.registeredClass,t=this.$$.ptr;A.$$=A.$$;for(var I=A.$$.ptrType.registeredClass,e=A.$$.ptr;g.baseClass;)t=g.upcast(t),g=g.baseClass;for(;I.baseClass;)e=I.upcast(e),I=I.baseClass;return g===I&&t===e},clone:function(){if(this.$$.ptr||$(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var A,g=sA(Object.create(Object.getPrototypeOf(this),{$$:{value:(A=this.$$,{count:A.count,deleteScheduled:A.deleteScheduled,preservePointerOnDelete:A.preservePointerOnDelete,ptr:A.ptr,ptrType:A.ptrType,smartPtr:A.smartPtr,smartPtrType:A.smartPtrType})}}));return g.$$.count.value+=1,g.$$.deleteScheduled=!1,g},delete:function(){this.$$.ptr||$(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&X("Object already scheduled for deletion"),gA(this),tA(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted:function(){return!this.$$.ptr},deleteLater:function(){return this.$$.ptr||$(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&X("Object already scheduled for deletion"),BA.push(this),1===BA.length&&_&&_(nA),this.$$.deleteScheduled=!0,this}}),r.getInheritedInstanceCount=rA,r.getLiveInheritedInstances=CA,r.flushPendingDeletes=nA,r.setDelayFunction=oA,Object.assign(pA.prototype,{getPointee:function(A){return this.rawGetPointee&&(A=this.rawGetPointee(A)),A},destructor:function(A){this.rawDestructor&&this.rawDestructor(A)},argPackAdvance:8,readValueFromPointer:wA,deleteObject:function(A){null!==A&&A.delete()},fromWireType:aA}),NA=r.UnboundTypeError=(jA=Error,(PA=uA(ZA="UnboundTypeError",(function(A){this.name=ZA,this.message=A;var g=new Error(A).stack;void 0!==g&&(this.stack=this.toString()+"\n"+g.replace(/^Error(:[^\n]*)?\n/,""))}))).prototype=Object.create(jA.prototype),PA.prototype.constructor=PA,PA.prototype.toString=function(){return void 0===this.message?this.name:"".concat(this.name,": ").concat(this.message)},PA),Object.assign(HA.prototype,{get:function(A){return this.allocated[A]},has:function(A){return void 0!==this.allocated[A]},allocate:function(A){var g=this.freelist.pop()||this.allocated.length;return this.allocated[g]=A,g},free:function(A){this.allocated[A]=void 0,this.freelist.push(A)}}),UA.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),UA.reserved=UA.allocated.length,r.count_emval_handles=JA;var ig,Qg={w:function(A,g,t){throw new J(A).init(g,t),A},q:function(A,g,t,I,e){},u:function(A,g,t,I){q(A,{name:g=Z(g),fromWireType:function(A){return!!A},toWireType:function(A,g){return g?t:I},argPackAdvance:8,readValueFromPointer:function(A){return this.fromWireType(l[A])},destructorFunction:null})},y:function(A,g,t,I,e,C,B,n,o,i,Q,E,a){Q=Z(Q),C=mA(e,C),n&&(n=mA(B,n)),i&&(i=mA(o,i)),a=mA(E,a);var s=function(A){if(void 0===A)return"_unknown";var g=(A=A.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return g>=48&&g<=57?"_".concat(A):A}(Q);!function(A,g,t){r.hasOwnProperty(A)?(X("Cannot register public name '".concat(A,"' twice")),hA(r,A,A),r.hasOwnProperty(t)&&X("Cannot register multiple overloads of a function with the same number of arguments (".concat(t,")!")),r[A].overloadTable[t]=g):r[A]=g}(s,(function(){bA("Cannot construct ".concat(Q," due to unbound types"),[I])})),z([A,g,t],I?[I]:[],(function(g){var t,e;g=g[0],e=I?(t=g.registeredClass).instancePrototype:cA.prototype;var B=uA(Q,(function(){if(Object.getPrototypeOf(this)!==o)throw new x("Use 'new' to construct "+Q);if(void 0===E.constructor_body)throw new x(Q+" has no accessible constructor");var A=E.constructor_body[arguments.length];if(void 0===A)throw new x("Tried to invoke ctor of ".concat(Q," with invalid number of parameters (").concat(arguments.length,") - expected (").concat(Object.keys(E.constructor_body).toString(),") parameters instead!"));return A.apply(this,arguments)})),o=Object.create(e,{constructor:{value:B}});B.prototype=o;var E=new lA(Q,B,o,a,t,C,n,i);E.baseClass&&(void 0===E.baseClass.__derivedClasses&&(E.baseClass.__derivedClasses=[]),E.baseClass.__derivedClasses.push(E));var c=new pA(Q,E,!0,!1,!1),u=new pA(Q+"*",E,!1,!1,!1),h=new pA(Q+" const*",E,!1,!0,!1);return eA[A]={pointerType:u,constPointerType:h},function(A,g,t){r.hasOwnProperty(A)||V("Replacing nonexistant public symbol"),void 0!==r[A].overloadTable&&void 0!==t||(r[A]=g,r[A].argCount=t)}(s,B),[c,u,h]}))},x:function(A,g,t,I,e,r){var C=YA(g,t);e=mA(I,e),z([],[A],(function(A){A=A[0];var t="constructor ".concat(A.name);if(void 0===A.registeredClass.constructor_body&&(A.registeredClass.constructor_body=[]),void 0!==A.registeredClass.constructor_body[g-1])throw new x("Cannot register multiple constructors with identical number of parameters (".concat(g-1,") for class '").concat(A.name,"'! Overload resolution is currently only performed using the parameter count, not actual type info!"));return A.registeredClass.constructor_body[g-1]=function(){bA("Cannot construct ".concat(A.name," due to unbound types"),C)},z([],C,(function(I){return I.splice(1,0,null),A.registeredClass.constructor_body[g-1]=SA(t,I,null,e,r),[]})),[]}))},i:function(A,g,t,I,e,r,C,B,n){var o,i,Q=YA(t,I);g=Z(g),i=(o=(o=g).trim()).indexOf("("),g=-1!==i?o.substr(0,i):o,r=mA(e,r),z([],[A],(function(A){A=A[0];var I="".concat(A.name,".").concat(g);function e(){bA("Cannot call ".concat(I," due to unbound types"),Q)}g.startsWith("@@")&&(g=Symbol[g.substring(2)]),B&&A.registeredClass.pureVirtualFunctions.push(g);var n=A.registeredClass.instancePrototype,o=n[g];return void 0===o||void 0===o.overloadTable&&o.className!==A.name&&o.argCount===t-2?(e.argCount=t-2,e.className=A.name,n[g]=e):(hA(n,g,I),n[g].overloadTable[t-2]=e),z([],Q,(function(e){var B=SA(I,e,A,r,C);return void 0===n[g].overloadTable?(B.argCount=t-2,n[g]=B):n[g].overloadTable[t-2]=B,[]})),[]}))},k:function(A,g,t,I,e,r,C,B,n,o){g=Z(g),e=mA(I,e),z([],[A],(function(A){A=A[0];var I="".concat(A.name,".").concat(g),i={get:function(){bA("Cannot access ".concat(I," due to unbound types"),[t,C])},enumerable:!0,configurable:!0};return i.set=n?function(){return bA("Cannot access ".concat(I," due to unbound types"),[t,C])}:function(A){return X(I+" is a read-only property")},Object.defineProperty(A.registeredClass.instancePrototype,g,i),z([],n?[t,C]:[t],(function(t){var C=t[0],i={get:function(){var g=LA(this,A,I+" getter");return C.fromWireType(e(r,g))},enumerable:!0};if(n){n=mA(B,n);var Q=t[1];i.set=function(g){var t=LA(this,A,I+" setter"),e=[];n(o,t,Q.toWireType(e,g)),kA(e)}}return Object.defineProperty(A.registeredClass.instancePrototype,g,i),[]})),[]}))},t:function(A,g){q(A,{name:g=Z(g),fromWireType:function(A){var g=TA.toValue(A);return KA(A),g},toWireType:function(A,g){return TA.toHandle(g)},argPackAdvance:8,readValueFromPointer:xA,destructorFunction:null})},p:function(A,g,t){q(A,{name:g=Z(g),fromWireType:function(A){return A},toWireType:function(A,g){return g},argPackAdvance:8,readValueFromPointer:OA(g,t),destructorFunction:null})},g:function(A,g,t,I,e){g=Z(g);var r=function(A){return A};if(0===I){var C=32-8*t;r=function(A){return A<<C>>>C}}var B=g.includes("unsigned");q(A,{name:g,fromWireType:r,toWireType:B?function(A,g){return this.name,g>>>0}:function(A,g){return this.name,g},argPackAdvance:8,readValueFromPointer:XA(g,t,0!==I),destructorFunction:null})},a:function(A,g,t){var I=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][g];function e(A){var g=D[A>>2],t=D[A+4>>2];return new I(h.buffer,t,g)}q(A,{name:t=Z(t),fromWireType:e,argPackAdvance:8,readValueFromPointer:e},{ignoreDuplicateRegistrations:!0})},o:function(A,g){var t="std::string"===(g=Z(g));q(A,{name:g,fromWireType:function(A){var g,I,e,r=D[A>>2],C=A+4;if(t)for(var B=C,n=0;n<=r;++n){var o=C+n;if(n==r||0==l[o]){var i=(e=o-B,(I=B)?zA(l,I,e):"");void 0===g?g=i:(g+=String.fromCharCode(0),g+=i),B=o+1}}else{var Q=new Array(r);for(n=0;n<r;++n)Q[n]=String.fromCharCode(l[C+n]);g=Q.join("")}return cg(A),g},toWireType:function(A,g){var I;g instanceof ArrayBuffer&&(g=new Uint8Array(g));var e="string"==typeof g;e||g instanceof Uint8Array||g instanceof Uint8ClampedArray||g instanceof Int8Array||X("Cannot pass non-string to std::string"),I=t&&e?function(A){for(var g=0,t=0;t<A.length;++t){var I=A.charCodeAt(t);I<=127?g++:I<=2047?g+=2:I>=55296&&I<=57343?(g+=4,++t):g+=3}return g}(g):g.length;var r=ag(4+I+1),C=r+4;if(D[r>>2]=I,t&&e)!function(A,g,t,I){if(!(I>0))return 0;for(var e=t+I-1,r=0;r<A.length;++r){var C=A.charCodeAt(r);if(C>=55296&&C<=57343&&(C=65536+((1023&C)<<10)|1023&A.charCodeAt(++r)),C<=127){if(t>=e)break;g[t++]=C}else if(C<=2047){if(t+1>=e)break;g[t++]=192|C>>6,g[t++]=128|63&C}else if(C<=65535){if(t+2>=e)break;g[t++]=224|C>>12,g[t++]=128|C>>6&63,g[t++]=128|63&C}else{if(t+3>=e)break;g[t++]=240|C>>18,g[t++]=128|C>>12&63,g[t++]=128|C>>6&63,g[t++]=128|63&C}}g[t]=0}(g,l,C,I+1);else if(e)for(var B=0;B<I;++B){var n=g.charCodeAt(B);n>255&&(cg(C),X("String has UTF-16 code units that do not fit in 8 bits")),l[C+B]=n}else for(B=0;B<I;++B)l[C+B]=g[B];return null!==A&&A.push(cg,r),r},argPackAdvance:8,readValueFromPointer:wA,destructorFunction:function(A){cg(A)}})},l:function(A,g,t){var I,e,r,C,B;t=Z(t),2===g?(I=_A,e=$A,C=Ag,r=function(){return y},B=1):4===g&&(I=gg,e=tg,C=Ig,r=function(){return D},B=2),q(A,{name:t,fromWireType:function(A){for(var t,e=D[A>>2],C=r(),n=A+4,o=0;o<=e;++o){var i=A+4+o*g;if(o==e||0==C[i>>B]){var Q=I(n,i-n);void 0===t?t=Q:(t+=String.fromCharCode(0),t+=Q),n=i+g}}return cg(A),t},toWireType:function(A,I){"string"!=typeof I&&X("Cannot pass non-string to C++ string type ".concat(t));var r=C(I),n=ag(4+r+g);return D[n>>2]=r>>B,e(I,n+4,r+g),null!==A&&A.push(cg,n),n},argPackAdvance:8,readValueFromPointer:xA,destructorFunction:function(A){cg(A)}})},v:function(A,g){q(A,{isVoid:!0,name:g=Z(g),argPackAdvance:0,fromWireType:function(){},toWireType:function(A,g){}})},j:function(A,g,t){return A=TA.toValue(A),g=eg(g,"emval::as"),rg(g,t,A)},e:function(A,g,t,I,e){var r,C;return(A=Bg[A])(g=TA.toValue(g),g[t=void 0===(C=Cg[r=t])?Z(r):C],I,e)},d:KA,f:function(A,g,t){var I=function(A,g){for(var t=new Array(A),I=0;I<A;++I)t[I]=eg(D[g+4*I>>2],"parameter "+I);return t}(A,g),e=I.shift();A--;var r,C,B=new Array(A),n="methodCaller<(".concat(I.map((function(A){return A.name})).join(", "),") => ").concat(e.name,">");return r=uA(n,(function(g,r,C,n){for(var o=0,i=0;i<A;++i)B[i]=I[i].readValueFromPointer(n+o),o+=I[i].argPackAdvance;var Q=1===t?ng(r,B):r.apply(g,B);for(i=0;i<A;++i)I[i].deleteObject&&I[i].deleteObject(B[i]);return rg(e,C,Q)})),C=Bg.length,Bg.push(r),C},c:function(A){A>4&&(UA.get(A).refcount+=1)},b:function(A){var g=TA.toValue(A);kA(g),KA(A)},h:function(A,g){var t=(A=eg(A,"_emval_take_value")).readValueFromPointer(g);return TA.toHandle(t)},m:function(){b("")},s:function(A,g,t){return l.copyWithin(A,g,g+t)},r:function(A){l.length,b("OOM")},n:function(A,g,t,I){for(var e,r,C,B=0,n=0;n<t;n++){var o=D[g>>2],i=D[g+4>>2];g+=8;for(var Q=0;Q<i;Q++)e=A,r=l[o+Q],C=void 0,C=og[e],0===r||10===r?((1===e?E:a)(zA(C,0)),C.length=0):C.push(r);B+=i}return D[I>>2]=B,0}},Eg=function(){var A={a:Qg};function t(A,g){var t,I;return Eg=A.exports,Q=Eg.z,t=Q.buffer,r.HEAP8=h=new Int8Array(t),r.HEAP16=f=new Int16Array(t),r.HEAPU8=l=new Uint8Array(t),r.HEAPU16=y=new Uint16Array(t),r.HEAP32=d=new Int32Array(t),r.HEAPU32=D=new Uint32Array(t),r.HEAPF32=w=new Float32Array(t),r.HEAPF64=p=new Float64Array(t),GA=Eg.C,I=Eg.A,M.unshift(I),function(){if(m--,r.monitorRunDependencies&&r.monitorRunDependencies(m),0==m&&R){var A=R;R=null,A()}}(),Eg}if(m++,r.monitorRunDependencies&&r.monitorRunDependencies(m),r.instantiateWasm)try{return r.instantiateWasm(A,t)}catch(A){a("Module.instantiateWasm callback failed with error: ".concat(A)),g(A)}return U(0,Y,A,(function(A){t(A.instance)})).catch(g),{}}(),ag=function(A){return(ag=Eg.B)(A)},sg=function(A){return(sg=Eg.D)(A)},cg=function(A){return(cg=Eg.E)(A)},ug=function(A){return(ug=Eg.F)(A)};function hg(){function g(){ig||(ig=!0,r.calledRun=!0,G||(K(M),A(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),function(){if(r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)A=r.postRun.shift(),F.unshift(A);var A;K(F)}()))}m>0||(function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)A=r.preRun.shift(),N.unshift(A);var A;K(N)}(),m>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((function(){setTimeout((function(){r.setStatus("")}),1),g()}),1)):g()))}if(r.dynCall_jiji=function(A,g,t,I,e){return(r.dynCall_jiji=Eg.G)(A,g,t,I,e)},r._vertexShaderSource=10640,R=function A(){ig||hg(),ig||(R=A)},r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return hg(),t.ready}),R=m,b="undefined"==typeof navigator?"":navigator.userAgent,Y=function(A){return new RegExp(A,"i").test(b)},k=function(A){if(Y(A)){var g=new RegExp("".concat(A,"\\/([\\d.]+)")),t=b.match(g);if(t&&t[1])return t[1]}return""},S=function(A){if(Y(A)){var g=new RegExp("".concat(A,"\\/(\\d+)")),t=b.match(g);if(t&&t[1])return parseFloat(t[1])}return NaN},L=/AppleWebKit\/([\d.]+)/i.exec(b);L&&parseFloat(L[1]);var H=Y("iPad"),U="undefined"!=typeof navigator&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&Y("Macintosh"),K=Y("iPhone")&&!H,J=Y("iPod"),T=K||H||J||U,x=Y("Android");!function(){if(x){var A=b.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(A){var g=A[1]&&parseFloat(A[1]),t=A[2]&&parseFloat(A[2]);if(g&&t)return parseFloat("".concat(A[1],".").concat(A[2]));if(g)return g}}}();x&&Y("webkit");var j=Y("Firefox"),Z=k("Firefox");S("Firefox");var P=Y("Edge"),W=k("Edge"),O=Y("Edg"),X=k("Edg");S("Edg");var V=Y("SogouMobileBrowser"),z=k("SogouMobileBrowser"),q=Y("MetaSr\\s"),_=k("MetaSr\\s"),$=Y("TBS"),AA=k("TBS"),gA=Y("XWEB"),tA=k("XWEB");Y("MSIE\\s8\\.0");var IA=Y("MSIE\\/\\d+");!function(){if(IA){var A=/MSIE\s(\d+)\.\d/.exec(b),g=A&&parseFloat(A[1]);return!g&&/Trident\/7.0/i.test(b)&&/rv:11.0/.test(b)&&(g=11),g}}();var eA=Y("(micromessenger|webbrowser)"),rA=k("MicroMessenger"),CA=!$&&Y("MQQBrowser")&&Y("COVC"),BA=!$&&Y("MQQBrowser")&&!Y("COVC"),nA=BA||CA?k("MQQBrowser"):"",oA=!$&&Y(" QQBrowser"),iA=k(" QQBrowser"),QA=!$&&Y("QQBrowserLite"),EA=k("QQBrowserLite"),aA=!$&&Y("MQBHD"),sA=k("MQBHD");Y("Windows"),!T&&Y("MAC OS X"),!x&&Y("Linux"),Y("CrOS"),Y("MicroMessenger"),Y("UCBrowser"),Y("Electron");var cA=Y("MiuiBrowser"),uA=k("MiuiBrowser"),hA=Y("HuaweiBrowser");Y("Huawei")||Y("HUAWEI"),Y("Honor")||Y("HONOR");var lA=k("HuaweiBrowser"),fA=Y("SamsungBrowser"),yA=k("SamsungBrowser"),dA=Y("HeyTapBrowser"),DA=k("HeyTapBrowser"),wA=Y("VivoBrowser"),pA=k("VivoBrowser");Y("OpenHarmony"),k("OpenHarmony");var GA=Y("CriOS"),NA=Y("Chrome"),MA=!P&&!q&&!V&&!$&&!gA&&!O&&!oA&&!cA&&!hA&&!fA&&!dA&&!wA&&NA;Y("HeadlessChrome");var FA=S("Chrome"),vA=k("Chrome");S("Electron");var mA=!NA&&!BA&&!CA&&!QA&&!aA&&Y("Safari"),RA=k("Version"),bA=function(){if(U)return RA;if(T){var A=b.match(/OS (\d+)_(\d+)/i);if(A&&A[1]){var g=A[1];return A[2]&&(g+=".".concat(A[2])),g}}return""}();Number(bA.split(".")[0]),Number(bA.split(".")[0]),function(){var A=new Map([[j,["Firefox",Z]],[O,["Edg",X]],[MA,["Chrome",vA]],[GA,["ChiOS",k("CriOS")]],[mA&&!GA,["Safari",RA]],[$,["TBS",AA]],[gA,["XWEB",tA]],[eA&&K,["WeChat",rA]],[oA,["QQ(Win)",iA]],[BA,["QQ(Mobile)",nA]],[CA,["QQ(Mobile X5)",nA]],[QA,["QQ(Mac)",EA]],[aA,["QQ(iPad)",sA]],[cA,["MI",uA]],[hA,["HW",lA]],[fA,["Samsung",yA]],[dA,["OPPO",DA]],[wA,["VIVO",pA]],[P,["EDGE",W]],[V,["SogouMobile",z]],[q,["Sogou",_]]]),g="unknown",t="unknown";if(A.has(!0)){var I=E(A.get(!0),2);g=I[0],t=I[1]}}();var YA=1e-6,kA="undefined"!=typeof Float32Array?Float32Array:Array;Math.hypot||(Math.hypot=function(){for(var A=0,g=arguments.length;g--;)A+=arguments[g]*arguments[g];return Math.sqrt(A)});var SA={};function LA(){var A=new kA(16);return kA!=Float32Array&&(A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[11]=0,A[12]=0,A[13]=0,A[14]=0),A[0]=1,A[5]=1,A[10]=1,A[15]=1,A}function HA(A){var g=new kA(16);return g[0]=A[0],g[1]=A[1],g[2]=A[2],g[3]=A[3],g[4]=A[4],g[5]=A[5],g[6]=A[6],g[7]=A[7],g[8]=A[8],g[9]=A[9],g[10]=A[10],g[11]=A[11],g[12]=A[12],g[13]=A[13],g[14]=A[14],g[15]=A[15],g}function UA(A,g){return A[0]=g[0],A[1]=g[1],A[2]=g[2],A[3]=g[3],A[4]=g[4],A[5]=g[5],A[6]=g[6],A[7]=g[7],A[8]=g[8],A[9]=g[9],A[10]=g[10],A[11]=g[11],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15],A}function KA(A,g,t,I,e,r,C,B,n,o,i,Q,E,a,s,c){var u=new kA(16);return u[0]=A,u[1]=g,u[2]=t,u[3]=I,u[4]=e,u[5]=r,u[6]=C,u[7]=B,u[8]=n,u[9]=o,u[10]=i,u[11]=Q,u[12]=E,u[13]=a,u[14]=s,u[15]=c,u}function JA(A,g,t,I,e,r,C,B,n,o,i,Q,E,a,s,c,u){return A[0]=g,A[1]=t,A[2]=I,A[3]=e,A[4]=r,A[5]=C,A[6]=B,A[7]=n,A[8]=o,A[9]=i,A[10]=Q,A[11]=E,A[12]=a,A[13]=s,A[14]=c,A[15]=u,A}function TA(A){return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function xA(A,g){if(A===g){var t=g[1],I=g[2],e=g[3],r=g[6],C=g[7],B=g[11];A[1]=g[4],A[2]=g[8],A[3]=g[12],A[4]=t,A[6]=g[9],A[7]=g[13],A[8]=I,A[9]=r,A[11]=g[14],A[12]=e,A[13]=C,A[14]=B}else A[0]=g[0],A[1]=g[4],A[2]=g[8],A[3]=g[12],A[4]=g[1],A[5]=g[5],A[6]=g[9],A[7]=g[13],A[8]=g[2],A[9]=g[6],A[10]=g[10],A[11]=g[14],A[12]=g[3],A[13]=g[7],A[14]=g[11],A[15]=g[15];return A}function jA(A,g){var t=g[0],I=g[1],e=g[2],r=g[3],C=g[4],B=g[5],n=g[6],o=g[7],i=g[8],Q=g[9],E=g[10],a=g[11],s=g[12],c=g[13],u=g[14],h=g[15],l=t*B-I*C,f=t*n-e*C,y=t*o-r*C,d=I*n-e*B,D=I*o-r*B,w=e*o-r*n,p=i*c-Q*s,G=i*u-E*s,N=i*h-a*s,M=Q*u-E*c,F=Q*h-a*c,v=E*h-a*u,m=l*v-f*F+y*M+d*N-D*G+w*p;return m?(m=1/m,A[0]=(B*v-n*F+o*M)*m,A[1]=(e*F-I*v-r*M)*m,A[2]=(c*w-u*D+h*d)*m,A[3]=(E*D-Q*w-a*d)*m,A[4]=(n*N-C*v-o*G)*m,A[5]=(t*v-e*N+r*G)*m,A[6]=(u*y-s*w-h*f)*m,A[7]=(i*w-E*y+a*f)*m,A[8]=(C*F-B*N+o*p)*m,A[9]=(I*N-t*F-r*p)*m,A[10]=(s*D-c*y+h*l)*m,A[11]=(Q*y-i*D-a*l)*m,A[12]=(B*G-C*M-n*p)*m,A[13]=(t*M-I*G+e*p)*m,A[14]=(c*f-s*d-u*l)*m,A[15]=(i*d-Q*f+E*l)*m,A):null}function ZA(A,g){var t=g[0],I=g[1],e=g[2],r=g[3],C=g[4],B=g[5],n=g[6],o=g[7],i=g[8],Q=g[9],E=g[10],a=g[11],s=g[12],c=g[13],u=g[14],h=g[15];return A[0]=B*(E*h-a*u)-Q*(n*h-o*u)+c*(n*a-o*E),A[1]=-(I*(E*h-a*u)-Q*(e*h-r*u)+c*(e*a-r*E)),A[2]=I*(n*h-o*u)-B*(e*h-r*u)+c*(e*o-r*n),A[3]=-(I*(n*a-o*E)-B*(e*a-r*E)+Q*(e*o-r*n)),A[4]=-(C*(E*h-a*u)-i*(n*h-o*u)+s*(n*a-o*E)),A[5]=t*(E*h-a*u)-i*(e*h-r*u)+s*(e*a-r*E),A[6]=-(t*(n*h-o*u)-C*(e*h-r*u)+s*(e*o-r*n)),A[7]=t*(n*a-o*E)-C*(e*a-r*E)+i*(e*o-r*n),A[8]=C*(Q*h-a*c)-i*(B*h-o*c)+s*(B*a-o*Q),A[9]=-(t*(Q*h-a*c)-i*(I*h-r*c)+s*(I*a-r*Q)),A[10]=t*(B*h-o*c)-C*(I*h-r*c)+s*(I*o-r*B),A[11]=-(t*(B*a-o*Q)-C*(I*a-r*Q)+i*(I*o-r*B)),A[12]=-(C*(Q*u-E*c)-i*(B*u-n*c)+s*(B*E-n*Q)),A[13]=t*(Q*u-E*c)-i*(I*u-e*c)+s*(I*E-e*Q),A[14]=-(t*(B*u-n*c)-C*(I*u-e*c)+s*(I*n-e*B)),A[15]=t*(B*E-n*Q)-C*(I*E-e*Q)+i*(I*n-e*B),A}function PA(A){var g=A[0],t=A[1],I=A[2],e=A[3],r=A[4],C=A[5],B=A[6],n=A[7],o=A[8],i=A[9],Q=A[10],E=A[11],a=A[12],s=A[13],c=A[14],u=A[15];return(g*C-t*r)*(Q*u-E*c)-(g*B-I*r)*(i*u-E*s)+(g*n-e*r)*(i*c-Q*s)+(t*B-I*C)*(o*u-E*a)-(t*n-e*C)*(o*c-Q*a)+(I*n-e*B)*(o*s-i*a)}function WA(A,g,t){var I=g[0],e=g[1],r=g[2],C=g[3],B=g[4],n=g[5],o=g[6],i=g[7],Q=g[8],E=g[9],a=g[10],s=g[11],c=g[12],u=g[13],h=g[14],l=g[15],f=t[0],y=t[1],d=t[2],D=t[3];return A[0]=f*I+y*B+d*Q+D*c,A[1]=f*e+y*n+d*E+D*u,A[2]=f*r+y*o+d*a+D*h,A[3]=f*C+y*i+d*s+D*l,f=t[4],y=t[5],d=t[6],D=t[7],A[4]=f*I+y*B+d*Q+D*c,A[5]=f*e+y*n+d*E+D*u,A[6]=f*r+y*o+d*a+D*h,A[7]=f*C+y*i+d*s+D*l,f=t[8],y=t[9],d=t[10],D=t[11],A[8]=f*I+y*B+d*Q+D*c,A[9]=f*e+y*n+d*E+D*u,A[10]=f*r+y*o+d*a+D*h,A[11]=f*C+y*i+d*s+D*l,f=t[12],y=t[13],d=t[14],D=t[15],A[12]=f*I+y*B+d*Q+D*c,A[13]=f*e+y*n+d*E+D*u,A[14]=f*r+y*o+d*a+D*h,A[15]=f*C+y*i+d*s+D*l,A}function OA(A,g,t){var I,e,r,C,B,n,o,i,Q,E,a,s,c=t[0],u=t[1],h=t[2];return g===A?(A[12]=g[0]*c+g[4]*u+g[8]*h+g[12],A[13]=g[1]*c+g[5]*u+g[9]*h+g[13],A[14]=g[2]*c+g[6]*u+g[10]*h+g[14],A[15]=g[3]*c+g[7]*u+g[11]*h+g[15]):(I=g[0],e=g[1],r=g[2],C=g[3],B=g[4],n=g[5],o=g[6],i=g[7],Q=g[8],E=g[9],a=g[10],s=g[11],A[0]=I,A[1]=e,A[2]=r,A[3]=C,A[4]=B,A[5]=n,A[6]=o,A[7]=i,A[8]=Q,A[9]=E,A[10]=a,A[11]=s,A[12]=I*c+B*u+Q*h+g[12],A[13]=e*c+n*u+E*h+g[13],A[14]=r*c+o*u+a*h+g[14],A[15]=C*c+i*u+s*h+g[15]),A}function XA(A,g,t){var I=t[0],e=t[1],r=t[2];return A[0]=g[0]*I,A[1]=g[1]*I,A[2]=g[2]*I,A[3]=g[3]*I,A[4]=g[4]*e,A[5]=g[5]*e,A[6]=g[6]*e,A[7]=g[7]*e,A[8]=g[8]*r,A[9]=g[9]*r,A[10]=g[10]*r,A[11]=g[11]*r,A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15],A}function VA(A,g,t,I){var e,r,C,B,n,o,i,Q,E,a,s,c,u,h,l,f,y,d,D,w,p,G,N,M,F=I[0],v=I[1],m=I[2],R=Math.hypot(F,v,m);return R<YA?null:(F*=R=1/R,v*=R,m*=R,e=Math.sin(t),C=1-(r=Math.cos(t)),B=g[0],n=g[1],o=g[2],i=g[3],Q=g[4],E=g[5],a=g[6],s=g[7],c=g[8],u=g[9],h=g[10],l=g[11],f=F*F*C+r,y=v*F*C+m*e,d=m*F*C-v*e,D=F*v*C-m*e,w=v*v*C+r,p=m*v*C+F*e,G=F*m*C+v*e,N=v*m*C-F*e,M=m*m*C+r,A[0]=B*f+Q*y+c*d,A[1]=n*f+E*y+u*d,A[2]=o*f+a*y+h*d,A[3]=i*f+s*y+l*d,A[4]=B*D+Q*w+c*p,A[5]=n*D+E*w+u*p,A[6]=o*D+a*w+h*p,A[7]=i*D+s*w+l*p,A[8]=B*G+Q*N+c*M,A[9]=n*G+E*N+u*M,A[10]=o*G+a*N+h*M,A[11]=i*G+s*N+l*M,g!==A&&(A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A)}function zA(A,g,t){var I=Math.sin(t),e=Math.cos(t),r=g[4],C=g[5],B=g[6],n=g[7],o=g[8],i=g[9],Q=g[10],E=g[11];return g!==A&&(A[0]=g[0],A[1]=g[1],A[2]=g[2],A[3]=g[3],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A[4]=r*e+o*I,A[5]=C*e+i*I,A[6]=B*e+Q*I,A[7]=n*e+E*I,A[8]=o*e-r*I,A[9]=i*e-C*I,A[10]=Q*e-B*I,A[11]=E*e-n*I,A}function qA(A,g,t){var I=Math.sin(t),e=Math.cos(t),r=g[0],C=g[1],B=g[2],n=g[3],o=g[8],i=g[9],Q=g[10],E=g[11];return g!==A&&(A[4]=g[4],A[5]=g[5],A[6]=g[6],A[7]=g[7],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A[0]=r*e-o*I,A[1]=C*e-i*I,A[2]=B*e-Q*I,A[3]=n*e-E*I,A[8]=r*I+o*e,A[9]=C*I+i*e,A[10]=B*I+Q*e,A[11]=n*I+E*e,A}function _A(A,g,t){var I=Math.sin(t),e=Math.cos(t),r=g[0],C=g[1],B=g[2],n=g[3],o=g[4],i=g[5],Q=g[6],E=g[7];return g!==A&&(A[8]=g[8],A[9]=g[9],A[10]=g[10],A[11]=g[11],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A[0]=r*e+o*I,A[1]=C*e+i*I,A[2]=B*e+Q*I,A[3]=n*e+E*I,A[4]=o*e-r*I,A[5]=i*e-C*I,A[6]=Q*e-B*I,A[7]=E*e-n*I,A}function $A(A,g){return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=g[0],A[13]=g[1],A[14]=g[2],A[15]=1,A}function Ag(A,g){return A[0]=g[0],A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=g[1],A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=g[2],A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function gg(A,g,t){var I,e,r,C=t[0],B=t[1],n=t[2],o=Math.hypot(C,B,n);return o<YA?null:(C*=o=1/o,B*=o,n*=o,I=Math.sin(g),r=1-(e=Math.cos(g)),A[0]=C*C*r+e,A[1]=B*C*r+n*I,A[2]=n*C*r-B*I,A[3]=0,A[4]=C*B*r-n*I,A[5]=B*B*r+e,A[6]=n*B*r+C*I,A[7]=0,A[8]=C*n*r+B*I,A[9]=B*n*r-C*I,A[10]=n*n*r+e,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A)}function tg(A,g){var t=Math.sin(g),I=Math.cos(g);return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=I,A[6]=t,A[7]=0,A[8]=0,A[9]=-t,A[10]=I,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function Ig(A,g){var t=Math.sin(g),I=Math.cos(g);return A[0]=I,A[1]=0,A[2]=-t,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=t,A[9]=0,A[10]=I,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function eg(A,g){var t=Math.sin(g),I=Math.cos(g);return A[0]=I,A[1]=t,A[2]=0,A[3]=0,A[4]=-t,A[5]=I,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function rg(A,g,t){var I=g[0],e=g[1],r=g[2],C=g[3],B=I+I,n=e+e,o=r+r,i=I*B,Q=I*n,E=I*o,a=e*n,s=e*o,c=r*o,u=C*B,h=C*n,l=C*o;return A[0]=1-(a+c),A[1]=Q+l,A[2]=E-h,A[3]=0,A[4]=Q-l,A[5]=1-(i+c),A[6]=s+u,A[7]=0,A[8]=E+h,A[9]=s-u,A[10]=1-(i+a),A[11]=0,A[12]=t[0],A[13]=t[1],A[14]=t[2],A[15]=1,A}function Cg(A,g){var t=new kA(3),I=-g[0],e=-g[1],r=-g[2],C=g[3],B=g[4],n=g[5],o=g[6],i=g[7],Q=I*I+e*e+r*r+C*C;return Q>0?(t[0]=2*(B*C+i*I+n*r-o*e)/Q,t[1]=2*(n*C+i*e+o*I-B*r)/Q,t[2]=2*(o*C+i*r+B*e-n*I)/Q):(t[0]=2*(B*C+i*I+n*r-o*e),t[1]=2*(n*C+i*e+o*I-B*r),t[2]=2*(o*C+i*r+B*e-n*I)),rg(A,g,t),A}function Bg(A,g){return A[0]=g[12],A[1]=g[13],A[2]=g[14],A}function ng(A,g){var t=g[0],I=g[1],e=g[2],r=g[4],C=g[5],B=g[6],n=g[8],o=g[9],i=g[10];return A[0]=Math.hypot(t,I,e),A[1]=Math.hypot(r,C,B),A[2]=Math.hypot(n,o,i),A}function og(A,g){var t=new kA(3);ng(t,g);var I=1/t[0],e=1/t[1],r=1/t[2],C=g[0]*I,B=g[1]*e,n=g[2]*r,o=g[4]*I,i=g[5]*e,Q=g[6]*r,E=g[8]*I,a=g[9]*e,s=g[10]*r,c=C+i+s,u=0;return c>0?(u=2*Math.sqrt(c+1),A[3]=.25*u,A[0]=(Q-a)/u,A[1]=(E-n)/u,A[2]=(B-o)/u):C>i&&C>s?(u=2*Math.sqrt(1+C-i-s),A[3]=(Q-a)/u,A[0]=.25*u,A[1]=(B+o)/u,A[2]=(E+n)/u):i>s?(u=2*Math.sqrt(1+i-C-s),A[3]=(E-n)/u,A[0]=(B+o)/u,A[1]=.25*u,A[2]=(Q+a)/u):(u=2*Math.sqrt(1+s-C-i),A[3]=(B-o)/u,A[0]=(E+n)/u,A[1]=(Q+a)/u,A[2]=.25*u),A}function ig(A,g,t,I){var e=g[0],r=g[1],C=g[2],B=g[3],n=e+e,o=r+r,i=C+C,Q=e*n,E=e*o,a=e*i,s=r*o,c=r*i,u=C*i,h=B*n,l=B*o,f=B*i,y=I[0],d=I[1],D=I[2];return A[0]=(1-(s+u))*y,A[1]=(E+f)*y,A[2]=(a-l)*y,A[3]=0,A[4]=(E-f)*d,A[5]=(1-(Q+u))*d,A[6]=(c+h)*d,A[7]=0,A[8]=(a+l)*D,A[9]=(c-h)*D,A[10]=(1-(Q+s))*D,A[11]=0,A[12]=t[0],A[13]=t[1],A[14]=t[2],A[15]=1,A}function Qg(A,g,t,I,e){var r=g[0],C=g[1],B=g[2],n=g[3],o=r+r,i=C+C,Q=B+B,E=r*o,a=r*i,s=r*Q,c=C*i,u=C*Q,h=B*Q,l=n*o,f=n*i,y=n*Q,d=I[0],D=I[1],w=I[2],p=e[0],G=e[1],N=e[2],M=(1-(c+h))*d,F=(a+y)*d,v=(s-f)*d,m=(a-y)*D,R=(1-(E+h))*D,b=(u+l)*D,Y=(s+f)*w,k=(u-l)*w,S=(1-(E+c))*w;return A[0]=M,A[1]=F,A[2]=v,A[3]=0,A[4]=m,A[5]=R,A[6]=b,A[7]=0,A[8]=Y,A[9]=k,A[10]=S,A[11]=0,A[12]=t[0]+p-(M*p+m*G+Y*N),A[13]=t[1]+G-(F*p+R*G+k*N),A[14]=t[2]+N-(v*p+b*G+S*N),A[15]=1,A}function Eg(A,g){var t=g[0],I=g[1],e=g[2],r=g[3],C=t+t,B=I+I,n=e+e,o=t*C,i=I*C,Q=I*B,E=e*C,a=e*B,s=e*n,c=r*C,u=r*B,h=r*n;return A[0]=1-Q-s,A[1]=i+h,A[2]=E-u,A[3]=0,A[4]=i-h,A[5]=1-o-s,A[6]=a+c,A[7]=0,A[8]=E+u,A[9]=a-c,A[10]=1-o-Q,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function ag(A,g,t,I,e,r,C){var B=1/(t-g),n=1/(e-I),o=1/(r-C);return A[0]=2*r*B,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=2*r*n,A[6]=0,A[7]=0,A[8]=(t+g)*B,A[9]=(e+I)*n,A[10]=(C+r)*o,A[11]=-1,A[12]=0,A[13]=0,A[14]=C*r*2*o,A[15]=0,A}function sg(A,g,t,I,e){var r,C=1/Math.tan(g/2);return A[0]=C/t,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=C,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[11]=-1,A[12]=0,A[13]=0,A[15]=0,null!=e&&e!==1/0?(r=1/(I-e),A[10]=(e+I)*r,A[14]=2*e*I*r):(A[10]=-1,A[14]=-2*I),A}!function(A,g){for(var t in g)h(A,t,{get:g[t],enumerable:!0})}(SA,{add:function(){return Gg},adjoint:function(){return ZA},clone:function(){return HA},copy:function(){return UA},create:function(){return LA},determinant:function(){return PA},equals:function(){return mg},exactEquals:function(){return vg},frob:function(){return pg},fromQuat:function(){return Eg},fromQuat2:function(){return Cg},fromRotation:function(){return gg},fromRotationTranslation:function(){return rg},fromRotationTranslationScale:function(){return ig},fromRotationTranslationScaleOrigin:function(){return Qg},fromScaling:function(){return Ag},fromTranslation:function(){return $A},fromValues:function(){return KA},fromXRotation:function(){return tg},fromYRotation:function(){return Ig},fromZRotation:function(){return eg},frustum:function(){return ag},getRotation:function(){return og},getScaling:function(){return ng},getTranslation:function(){return Bg},identity:function(){return TA},invert:function(){return jA},lookAt:function(){return dg},mul:function(){return Rg},multiply:function(){return WA},multiplyScalar:function(){return Mg},multiplyScalarAndAdd:function(){return Fg},ortho:function(){return fg},orthoNO:function(){return lg},orthoZO:function(){return yg},perspective:function(){return cg},perspectiveFromFieldOfView:function(){return hg},perspectiveNO:function(){return sg},perspectiveZO:function(){return ug},rotate:function(){return VA},rotateX:function(){return zA},rotateY:function(){return qA},rotateZ:function(){return _A},scale:function(){return XA},set:function(){return JA},str:function(){return wg},sub:function(){return bg},subtract:function(){return Ng},targetTo:function(){return Dg},translate:function(){return OA},transpose:function(){return xA}});var cg=sg;function ug(A,g,t,I,e){var r,C=1/Math.tan(g/2);return A[0]=C/t,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=C,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[11]=-1,A[12]=0,A[13]=0,A[15]=0,null!=e&&e!==1/0?(r=1/(I-e),A[10]=e*r,A[14]=e*I*r):(A[10]=-1,A[14]=-I),A}function hg(A,g,t,I){var e=Math.tan(g.upDegrees*Math.PI/180),r=Math.tan(g.downDegrees*Math.PI/180),C=Math.tan(g.leftDegrees*Math.PI/180),B=Math.tan(g.rightDegrees*Math.PI/180),n=2/(C+B),o=2/(e+r);return A[0]=n,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=o,A[6]=0,A[7]=0,A[8]=-(C-B)*n*.5,A[9]=(e-r)*o*.5,A[10]=I/(t-I),A[11]=-1,A[12]=0,A[13]=0,A[14]=I*t/(t-I),A[15]=0,A}function lg(A,g,t,I,e,r,C){var B=1/(g-t),n=1/(I-e),o=1/(r-C);return A[0]=-2*B,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=-2*n,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=2*o,A[11]=0,A[12]=(g+t)*B,A[13]=(e+I)*n,A[14]=(C+r)*o,A[15]=1,A}var fg=lg;function yg(A,g,t,I,e,r,C){var B=1/(g-t),n=1/(I-e),o=1/(r-C);return A[0]=-2*B,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=-2*n,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=o,A[11]=0,A[12]=(g+t)*B,A[13]=(e+I)*n,A[14]=r*o,A[15]=1,A}function dg(A,g,t,I){var e,r,C,B,n,o,i,Q,E,a,s=g[0],c=g[1],u=g[2],h=I[0],l=I[1],f=I[2],y=t[0],d=t[1],D=t[2];return Math.abs(s-y)<YA&&Math.abs(c-d)<YA&&Math.abs(u-D)<YA?TA(A):(i=s-y,Q=c-d,E=u-D,e=l*(E*=a=1/Math.hypot(i,Q,E))-f*(Q*=a),r=f*(i*=a)-h*E,C=h*Q-l*i,(a=Math.hypot(e,r,C))?(e*=a=1/a,r*=a,C*=a):(e=0,r=0,C=0),B=Q*C-E*r,n=E*e-i*C,o=i*r-Q*e,(a=Math.hypot(B,n,o))?(B*=a=1/a,n*=a,o*=a):(B=0,n=0,o=0),A[0]=e,A[1]=B,A[2]=i,A[3]=0,A[4]=r,A[5]=n,A[6]=Q,A[7]=0,A[8]=C,A[9]=o,A[10]=E,A[11]=0,A[12]=-(e*s+r*c+C*u),A[13]=-(B*s+n*c+o*u),A[14]=-(i*s+Q*c+E*u),A[15]=1,A)}function Dg(A,g,t,I){var e=g[0],r=g[1],C=g[2],B=I[0],n=I[1],o=I[2],i=e-t[0],Q=r-t[1],E=C-t[2],a=i*i+Q*Q+E*E;a>0&&(i*=a=1/Math.sqrt(a),Q*=a,E*=a);var s=n*E-o*Q,c=o*i-B*E,u=B*Q-n*i;return(a=s*s+c*c+u*u)>0&&(s*=a=1/Math.sqrt(a),c*=a,u*=a),A[0]=s,A[1]=c,A[2]=u,A[3]=0,A[4]=Q*u-E*c,A[5]=E*s-i*u,A[6]=i*c-Q*s,A[7]=0,A[8]=i,A[9]=Q,A[10]=E,A[11]=0,A[12]=e,A[13]=r,A[14]=C,A[15]=1,A}function wg(A){return"mat4("+A[0]+", "+A[1]+", "+A[2]+", "+A[3]+", "+A[4]+", "+A[5]+", "+A[6]+", "+A[7]+", "+A[8]+", "+A[9]+", "+A[10]+", "+A[11]+", "+A[12]+", "+A[13]+", "+A[14]+", "+A[15]+")"}function pg(A){return Math.hypot(A[0],A[1],A[2],A[3],A[4],A[5],A[6],A[7],A[8],A[9],A[10],A[11],A[12],A[13],A[14],A[15])}function Gg(A,g,t){return A[0]=g[0]+t[0],A[1]=g[1]+t[1],A[2]=g[2]+t[2],A[3]=g[3]+t[3],A[4]=g[4]+t[4],A[5]=g[5]+t[5],A[6]=g[6]+t[6],A[7]=g[7]+t[7],A[8]=g[8]+t[8],A[9]=g[9]+t[9],A[10]=g[10]+t[10],A[11]=g[11]+t[11],A[12]=g[12]+t[12],A[13]=g[13]+t[13],A[14]=g[14]+t[14],A[15]=g[15]+t[15],A}function Ng(A,g,t){return A[0]=g[0]-t[0],A[1]=g[1]-t[1],A[2]=g[2]-t[2],A[3]=g[3]-t[3],A[4]=g[4]-t[4],A[5]=g[5]-t[5],A[6]=g[6]-t[6],A[7]=g[7]-t[7],A[8]=g[8]-t[8],A[9]=g[9]-t[9],A[10]=g[10]-t[10],A[11]=g[11]-t[11],A[12]=g[12]-t[12],A[13]=g[13]-t[13],A[14]=g[14]-t[14],A[15]=g[15]-t[15],A}function Mg(A,g,t){return A[0]=g[0]*t,A[1]=g[1]*t,A[2]=g[2]*t,A[3]=g[3]*t,A[4]=g[4]*t,A[5]=g[5]*t,A[6]=g[6]*t,A[7]=g[7]*t,A[8]=g[8]*t,A[9]=g[9]*t,A[10]=g[10]*t,A[11]=g[11]*t,A[12]=g[12]*t,A[13]=g[13]*t,A[14]=g[14]*t,A[15]=g[15]*t,A}function Fg(A,g,t,I){return A[0]=g[0]+t[0]*I,A[1]=g[1]+t[1]*I,A[2]=g[2]+t[2]*I,A[3]=g[3]+t[3]*I,A[4]=g[4]+t[4]*I,A[5]=g[5]+t[5]*I,A[6]=g[6]+t[6]*I,A[7]=g[7]+t[7]*I,A[8]=g[8]+t[8]*I,A[9]=g[9]+t[9]*I,A[10]=g[10]+t[10]*I,A[11]=g[11]+t[11]*I,A[12]=g[12]+t[12]*I,A[13]=g[13]+t[13]*I,A[14]=g[14]+t[14]*I,A[15]=g[15]+t[15]*I,A}function vg(A,g){return A[0]===g[0]&&A[1]===g[1]&&A[2]===g[2]&&A[3]===g[3]&&A[4]===g[4]&&A[5]===g[5]&&A[6]===g[6]&&A[7]===g[7]&&A[8]===g[8]&&A[9]===g[9]&&A[10]===g[10]&&A[11]===g[11]&&A[12]===g[12]&&A[13]===g[13]&&A[14]===g[14]&&A[15]===g[15]}function mg(A,g){var t=A[0],I=A[1],e=A[2],r=A[3],C=A[4],B=A[5],n=A[6],o=A[7],i=A[8],Q=A[9],E=A[10],a=A[11],s=A[12],c=A[13],u=A[14],h=A[15],l=g[0],f=g[1],y=g[2],d=g[3],D=g[4],w=g[5],p=g[6],G=g[7],N=g[8],M=g[9],F=g[10],v=g[11],m=g[12],R=g[13],b=g[14],Y=g[15];return Math.abs(t-l)<=YA*Math.max(1,Math.abs(t),Math.abs(l))&&Math.abs(I-f)<=YA*Math.max(1,Math.abs(I),Math.abs(f))&&Math.abs(e-y)<=YA*Math.max(1,Math.abs(e),Math.abs(y))&&Math.abs(r-d)<=YA*Math.max(1,Math.abs(r),Math.abs(d))&&Math.abs(C-D)<=YA*Math.max(1,Math.abs(C),Math.abs(D))&&Math.abs(B-w)<=YA*Math.max(1,Math.abs(B),Math.abs(w))&&Math.abs(n-p)<=YA*Math.max(1,Math.abs(n),Math.abs(p))&&Math.abs(o-G)<=YA*Math.max(1,Math.abs(o),Math.abs(G))&&Math.abs(i-N)<=YA*Math.max(1,Math.abs(i),Math.abs(N))&&Math.abs(Q-M)<=YA*Math.max(1,Math.abs(Q),Math.abs(M))&&Math.abs(E-F)<=YA*Math.max(1,Math.abs(E),Math.abs(F))&&Math.abs(a-v)<=YA*Math.max(1,Math.abs(a),Math.abs(v))&&Math.abs(s-m)<=YA*Math.max(1,Math.abs(s),Math.abs(m))&&Math.abs(c-R)<=YA*Math.max(1,Math.abs(c),Math.abs(R))&&Math.abs(u-b)<=YA*Math.max(1,Math.abs(u),Math.abs(b))&&Math.abs(h-Y)<=YA*Math.max(1,Math.abs(h),Math.abs(Y))}var Rg=WA,bg=Ng,Yg="#version 300 es\nin vec2 a_position;\nin vec2 a_texCoord;\nout vec2 v_texCoord;\nvoid main() {\n gl_Position = vec4(a_position.x, a_position.y, 0, 1);\n v_texCoord = a_texCoord;\n}",kg=function(A){return"precision highp float;\nuniform sampler2D mask;in vec2 v_texCoord;\nout vec4 outColor;\nvoid main() {".concat(A,"}")},Sg="#version 300 es\nuniform sampler2D lastMask;\n".concat(kg("highp float current = texture(mask, v_texCoord).r;\n highp float previous = texture(lastMask, v_texCoord).r;\n highp float diff = abs(current - previous);\n const float smoothFactor = 0.05; \n const float threshold = 0.3;\n highp float blendedMask = diff < threshold \n ? previous * (1.0 - smoothFactor) + current * smoothFactor \n : current;\n outColor = vec4(blendedMask,0.0,0.0, 1.0);"),"\n"),Lg="#version 300 es\n".concat(kg(" vec2 o = 1.0 / vec2(textureSize(mask, 0)); \n float size = 3.0; \n int sizeDb = int(size*size);\n float samples[9];\n int idx = 0;\n float side = (size - 1.0) / 2.0;\n for (float x = -side; x <= side; x += 1.0) {\n for (float y = -side; y <= side; y += 1.0) {\n vec2 sampleCoord = v_texCoord + vec2(x, y) * o;\n int index = int((x + 1.0) * size + (y + 1.0));\n samples[index] = texture(mask, sampleCoord).r;\n }\n }\n for (int i = 0; i < sizeDb - 1; i++) {\n for (int j = 0; j < sizeDb - 1 - i; j++) {\n if (samples[j] > samples[j + 1]) {\n float temp = samples[j];\n samples[j] = samples[j + 1];\n samples[j + 1] = temp;\n }\n }\n }\n float endR=samples[sizeDb/2]>0.5?1.0:0.0;\n outColor = vec4(endR, 0.0, 0.0, 1.0);"),"\n"),Hg="#version 300 es\n".concat(kg(" vec2 o = 1.0 / vec2(textureSize(mask, 0));\n float size = 3.0; \n float side = (size - 1.0) / 2.0;\n float stronglyEroded = 1.0;\n for (float x = -side; x <= side; x += 1.0) {\n for (float y = -side; y <= side; y += 1.0) {\n vec2 sampleCoord = v_texCoord + vec2(x, y) * o;\n stronglyEroded = min(stronglyEroded, texture(mask, sampleCoord).r);\n }\n }\n outColor = vec4(stronglyEroded, 0.0, 0.0, 1.0);"),"\n"),Ug=function(){return C((function A(){e(this,A),G(this,"gl"),G(this,"positionBuffer"),G(this,"texCoordBuffer"),G(this,"ratio"),G(this,"_tdProgram"),G(this,"_kcProgram"),G(this,"_mdProgram"),G(this,"_edgeProgram"),G(this,"_borderProgram"),G(this,"_lastMaskTexture")}),[{key:"init",value:function(A,g,t,I){this.initParams(A,g,t,I),this.initPrograms()}},{key:"initParams",value:function(A,g,t,I){this.gl=A,this.positionBuffer=g,this.texCoordBuffer=t,this.ratio=I}},{key:"initPrograms",value:function(){this._tdProgram=this.createProgram(Yg,Sg,["mask","lastMask"]),this._mdProgram=this.createProgram(Yg,Lg,["mask"]),this._kcProgram=this.createProgram(Yg,Hg,["mask"]),this._borderProgram=this.createProgram(Yg,"#version 300 es\nprecision highp float;\nuniform sampler2D mask;\nuniform sampler2D originalMask;\nuniform sampler2D maskEdge;\nin vec2 v_texCoord;\nout vec4 outColor;\nfloat u_highThreshold = 0.9; \nfloat u_smoothSigma = 2.0; \nfloat u_featherRadius = 4.0; \nfloat balancedTransition(float value) {\n return value * value * (3.0 - 2.0 * value);\n}\nfloat hybridBlur(sampler2D tex, vec2 uv, vec2 texelSize, float edgeIntensity, float sigma) {\n float edgeWeight = smoothstep(u_highThreshold * 0.8, u_highThreshold, edgeIntensity);\n if (edgeWeight < u_highThreshold * 0.8) {\n return texture(tex, uv).r; \n }\n float adaptiveRadius = mix(u_featherRadius * 0.5, u_featherRadius * 1.5, edgeWeight);\n int kernelSize = int(ceil(2.5 * sigma)); \n float sum = 0.0;\n float weightSum = 0.0;\n for (int i = -kernelSize; i <= kernelSize; i++) {\n for (int j = -kernelSize; j <= kernelSize; j++) {\n vec2 offset = vec2(float(i), float(j)) * texelSize * adaptiveRadius;\n vec2 sampleUV = uv + offset;\n float sampleValue = texture(originalMask, sampleUV).r;\n float dist = length(vec2(i, j)) / float(kernelSize);\n float weight = 1.0 - balancedTransition(dist);\n sum += sampleValue * weight;\n weightSum += weight;\n }\n }\n return sum / weightSum;\n}\nvoid main() {\n vec2 texelSize = 1.0 / vec2(textureSize(mask, 0));\n float edge = texture(maskEdge, v_texCoord).r;\n float centerValue = texture(mask, v_texCoord).r;\n float smoothedValue = hybridBlur(mask, v_texCoord, texelSize, edge, u_smoothSigma);\n float finalAlpha;\n if (edge == 1.0) {\n finalAlpha = smoothedValue;\n } else if (centerValue > 0.70) {\n finalAlpha = 1.0;\n } else if (centerValue < 0.30) {\n finalAlpha = 0.0;\n } else {\n float t = balancedTransition((centerValue - 0.30));\n finalAlpha = mix(centerValue, smoothedValue, 1.0 - t * 0.95);\n }\n outColor = vec4(finalAlpha, 0.0, 0.0, 1.0);\n}\n",["mask","maskEdge","originalMask"]),this._edgeProgram=this.createProgram(Yg,"#version 300 es\nprecision highp float;\nuniform sampler2D mask;\nin vec2 v_texCoord;\nout vec4 outColor;\nfloat u_gradientScale = 0.25;\nconst float SOBEL_KERNEL_X[9] = float[9](\n -1.0, 0.0, 1.0,\n -2.0, 0.0, 2.0,\n -1.0, 0.0, 1.0\n);\nconst float SOBEL_KERNEL_Y[9] = float[9](\n -1.0, -2.0, -1.0,\n 0.0, 0.0, 0.0,\n 1.0, 2.0, 1.0\n);\nfloat nonMaxSuppression(float gradient, vec2 uv, vec2 texelSize, float angle) {\n vec2 dir = vec2(cos(angle), sin(angle));\n vec2 offset1 = dir * texelSize;\n vec2 offset2 = -dir * texelSize;\n float n1 = texture(mask, uv + offset1).r;\n float n2 = texture(mask, uv + offset2).r;\n return (gradient >= n1 && gradient >= n2) ? gradient : 0.0;\n}\nvoid main() {\n vec2 o = 1.0 / vec2(textureSize(mask, 0));\n float gx = 0.0, gy = 0.0;\n for (int i = -1; i <= 1; i++) {\n for (int j = -1; j <= 1; j++) {\n vec2 offset = vec2(float(i), float(j)) * o;\n float maskValue = texture(mask, v_texCoord + offset).r;\n int idx = (i+1)*3 + (j+1);\n gx += maskValue * SOBEL_KERNEL_X[idx];\n gy += maskValue * SOBEL_KERNEL_Y[idx];\n }\n }\n float gradient = sqrt(gx*gx + gy*gy) * u_gradientScale;\n float angle = atan(gy, gx);\n float nmsEdge = nonMaxSuppression(gradient, v_texCoord, o, angle);\n float edge = nmsEdge > 0.0 ? 1.0 : 0.0;\n outColor = vec4(edge, 0.0, 0.0, 1.0);\n}\n",["mask"])}},{key:"setAttributes",value:function(){for(var A=this.gl,g=arguments.length,t=new Array(g),I=0;I<g;I++)t[I]=arguments[I];t.forEach((function(g,t){A.enableVertexAttribArray(t),A.bindBuffer(A.ARRAY_BUFFER,g),A.vertexAttribPointer(t,2,A.FLOAT,!1,0,0)}))}},{key:"createShader",value:function(A,g){var t=this.gl,I=t.createShader(A);return t.shaderSource(I,g),t.compileShader(I),I}},{key:"createProgram",value:function(A,g,t){var I=this.gl,e=this.createShader(I.FRAGMENT_SHADER,g),r=this.createShader(I.VERTEX_SHADER,A),C=I.createProgram();if(I.attachShader(C,r),I.attachShader(C,e),I.linkProgram(C),!I.getProgramParameter(C,I.LINK_STATUS))throw new Error("".concat(I.getProgramInfoLog(C)));return I.useProgram(C),this.setAttributes(this.positionBuffer,this.texCoordBuffer),t.forEach((function(A,g){I.uniform1i(I.getUniformLocation(C,A),1+g)})),C}},{key:"createFramebuffer",value:function(A){var g=this.gl,t=g.createFramebuffer();return g.bindFramebuffer(g.FRAMEBUFFER,t),g.framebufferTexture2D(g.FRAMEBUFFER,g.COLOR_ATTACHMENT0,g.TEXTURE_2D,A,0),t}},{key:"getTempTexture",value:function(A,g){var t,I,e=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=arguments.length>3?arguments[3]:void 0,C=this.gl;C.useProgram(A),this.ratio===16/9?(t=640,I=360):(t=640,I=480);var B=C.createTexture();C.activeTexture(C.TEXTURE0),C.bindTexture(C.TEXTURE_2D,B),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MIN_FILTER,C.LINEAR),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MAG_FILTER,C.LINEAR),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_S,C.CLAMP_TO_EDGE),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_T,C.CLAMP_TO_EDGE),C.pixelStorei(C.PACK_ALIGNMENT,1),C.pixelStorei(C.UNPACK_ALIGNMENT,1),C.texImage2D(C.TEXTURE_2D,0,C.RGBA,t,I,0,C.RGBA,C.UNSIGNED_BYTE,null);var n=this.createFramebuffer(B);return g.forEach((function(A,g){A&&(C.activeTexture(C.TEXTURE1+g),C.bindTexture(C.TEXTURE_2D,A||null))})),this.setAttributes(this.positionBuffer,this.texCoordBuffer),C.viewport(0,0,t,I),C.drawArrays(C.TRIANGLE_STRIP,0,4),e&&g.forEach((function(A,g){A&&r!==g&&C.deleteTexture(A)})),C.deleteFramebuffer(n),B}},{key:"postProcessing",value:function(A){this._lastMaskTexture=this.getTempTexture(this._tdProgram,[A,this._lastMaskTexture]);for(var g=this.getTempTexture(this._kcProgram,[this._lastMaskTexture],!1),t=0;t<3;t++){g=this.getTempTexture(this._mdProgram,[g]);var I=this.getTempTexture(this._edgeProgram,[g],!1);g=this.getTempTexture(this._borderProgram,[g,I,this._lastMaskTexture],!0,2)}return g}},{key:"close",value:function(){var A=this.gl;this._borderProgram&&A.deleteProgram(this._borderProgram),this._edgeProgram&&A.deleteProgram(this._edgeProgram),this._kcProgram&&A.deleteProgram(this._kcProgram),this._mdProgram&&A.deleteProgram(this._mdProgram),this._tdProgram&&A.deleteProgram(this._tdProgram)}}])}(),Kg=new Ug,Jg=570703,Tg=0,xg=function(){function A(g){e(this,A),this.core=g,G(this,"seq"),G(this,"_core"),G(this,"log"),G(this,"preLoadPromise"),G(this,"startResolve"),G(this,"startReject"),G(this,"mediaPipeSolutions"),G(this,"assetsPath"),G(this,"currentType"),G(this,"onAbort"),G(this,"isAborted",!1),Tg+=1,this.seq=Tg,this._core=g,this.log=g.log.createChild({id:"".concat(this.getAlias()).concat(Tg)}),this.log.info("created"),g.assetsPath&&(this.preLoadPromise=this.preload(g.assetsPath))}return C(A,[{key:"preload",value:(B=t(i().mark((function A(g){var t,I,e,r,C=this;return i().wrap((function(A){for(;;)switch(A.prev=A.next){case 0:if(A.prev=0,this._core.room.videoManager.Wasm){A.next=5;break}return A.next=4,R();case 4:this._core.room.videoManager.Wasm=A.sent;case 5:return t=function(A){var g;C.core.kvStatManager.addEnum({key:Jg,value:C.getKVTypeValue(!1,C.isAborted,"ABORT_IN_INFERENCE")}),C.isAborted=!0,C.log.error("mediaPipeSolutions abort",A),C.core.clearStarted(C,C.getGroup()),C.stop(),null==(g=C.onAbort)||g.call(C,A)},this._core.room.videoManager.initVirtualBackground(t,SA,Kg),A.next=9,this._core.initVisionTaskRegistry(g,["ImageSegmenter"]);case 9:A.next=15;break;case 11:throw A.prev=11,A.t0=A.catch(0),I=this._core.errorModule,e=I.RtcError,r=I.ErrorCode,new e({code:r.INVALID_OPERATION,message:"VirtualBackground preload error, please redeploy the assets of the npm package. detail: ".concat(A.t0)});case 15:case"end":return A.stop()}}),A,this,[[0,11]])}))),function(A){return B.apply(this,arguments)})},{key:"getName",value:function(){return A.Name}},{key:"getAlias",value:function(){return"vb"}},{key:"getValidateRule",value:function(A){switch(A){case"start":return g=this._core,{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:(t=p({},F),I={type:{required:!1,type:"string",values:["image","blur","color"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},onAbort:{required:!1},color:{required:!1,type:["array","string"]},enableFaceCentering:{required:!1,type:"boolean"},enableEffectOptimization:{required:!1,type:"boolean"}},l(t,f(I))),validate:function(A,t,I,e){var r,C=g.errorModule,B=C.RtcError,n=C.ErrorCode,o=C.ErrorCodeDictionary;if(A){var i=A.type,Q=A.src,E=A.onAbort;if("image"===i&&!Q)throw new B({code:n.INVALID_PARAMETER,extraCode:o.INVALID_PARAMETER_REQUIRED,fnName:I,messageParams:{key:"src"}});if(E&&!g.utils.isFunction(E))throw new B({code:n.INVALID_PARAMETER,extraCode:o.INVALID_PARAMETER_TYPE,fnName:I,messageParams:{key:"onAbort",value:s(E),rule:{type:"Function"}}});if(!(null==(r=g.room.videoManager.cameraTrack)?void 0:r.mediaTrack))throw new B({code:n.INVALID_OPERATION,extraCode:o.INVALID_OPERATION_NEED_VIDEO,fnName:I})}}};case"update":return function(A){return{name:"UpdateVirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:{type:{required:!0,type:"string",values:["image","blur","color"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},color:{required:!1,type:["array","string"]},enableFaceCentering:{required:!1,type:"boolean"},enableEffectOptimization:{required:!1,type:"boolean"}},validate:function(g,t,I,e){if(g){var r=A.errorModule,C=r.RtcError,B=r.ErrorCode,n=r.ErrorCodeDictionary,o=g.type,i=g.src;if("image"===o&&!i)throw new C({code:B.INVALID_PARAMETER,extraCode:n.INVALID_PARAMETER_REQUIRED,fnName:I,messageParams:{key:"src"}})}}}}(this._core);case"stop":return this._core,{name:"StopVirtualBackgroundOptions",required:!1}}var g,t,I}},{key:"getGroup",value:function(){return"vb"}},{key:"getKVTypeValue",value:function(){var A=arguments.length>0&&void 0!==arguments[0]&&arguments[0],g=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"NONE",I=0;switch(this.currentType){case"blur":I|=0;break;case"image":I|=1;break;case"color":I|=2}switch(A&&(I|=256),g&&(I|=512),t){case"ABORT_IN_INFERENCE":I|=4096;break;case"ABORT_IN_VIDEO_MANAGER":I|=8192;break;case"OTHER":I|=61440}return I}},{key:"hexToRgb",value:function(A){var g=A.replace("#","");return[parseInt(g.slice(0,2),16)/255,parseInt(g.slice(2,4),16)/255,parseInt(g.slice(4,6),16)/255]}},{key:"start",value:(r=t(i().mark((function A(g){var t,I,e,r,C,B,n,o,Q,E,a,s,c,u=this;return i().wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return t=g.type,I=void 0===t?"blur":t,e=g.src,r=g.blurLevel,C=void 0===r?3:r,B=g.onAbort,this.currentType=I,this.onAbort=B,"color"===I&&"string"==typeof g.color&&(g.color=this.hexToRgb(g.color)),A.next=6,N({sdkAppId:g.sdkAppId,userId:g.userId,userSig:g.userSig,core:this._core});case 6:if(n=A.sent,o=n.auth,Q=this._core.errorModule,E=Q.RtcError,a=Q.ErrorCodeDictionary,s=Q.ErrorCode,o){A.next=12;break}throw c=this._core.utils.isOverseaSdkAppId(g.sdkAppId)?"https://trtc.io/document/56025":"https://cloud.tencent.com/document/product/647/85386",new E({code:a.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:c}});case 12:if(this.preLoadPromise){A.next=16;break}if(this._core.assetsPath){A.next=15;break}throw new E({code:s.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});case 15:this.preLoadPromise=this.preload(this._core.assetsPath);case 16:return A.next=18,this.preLoadPromise;case 18:return A.abrupt("return",this.core.room.videoManager.setVirtualBackground({type:I,imageUrl:e,blurLevel:C,enableFaceCentering:g.enableFaceCentering,enableEffectOptimization:g.enableEffectOptimization,color:g.color,onAbort:function(A){var g;u.core.kvStatManager.addEnum({key:Jg,value:u.getKVTypeValue(!0,u.isAborted,"ABORT_IN_VIDEO_MANAGER")}),u.isAborted=!0,u.core.clearStarted(u,u.getGroup()),u.stop(),delete u.preLoadPromise,null==(g=u.onAbort)||g.call(u,A)}}).then((function(){u.core.kvStatManager.addEnum({key:Jg,value:u.getKVTypeValue(!1,u.isAborted,"NONE")})})).catch((function(){u.core.kvStatManager.addEnum({key:Jg,value:u.getKVTypeValue(!0,u.isAborted,"OTHER")})})));case 19:case"end":return A.stop()}}),A,this)}))),function(A){return r.apply(this,arguments)})},{key:"update",value:(I=t(i().mark((function A(g){var t,I,e=this;return i().wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return t=g.type,I=g.src,t!==this.currentType&&(this.currentType=t),"color"===t&&"string"==typeof g.color&&(g.color=this.hexToRgb(g.color)),A.abrupt("return",this.core.room.videoManager.setVirtualBackground({type:t,imageUrl:I,blurLevel:g.blurLevel,enableFaceCentering:g.enableFaceCentering,enableEffectOptimization:g.enableEffectOptimization,color:g.color}).then((function(){e.core.kvStatManager.addEnum({key:Jg,value:e.getKVTypeValue(!1,!1,"NONE")})})).catch((function(){e.core.kvStatManager.addEnum({key:Jg,value:e.getKVTypeValue(!0,!1,"OTHER")})})));case 4:case"end":return A.stop()}}),A,this)}))),function(A){return I.apply(this,arguments)})},{key:"stop",value:(g=t(i().mark((function A(){return i().wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.abrupt("return",this.core.room.videoManager.setVirtualBackground());case 1:case"end":return A.stop()}}),A,this)}))),function(){return g.apply(this,arguments)})}],[{key:"isSupported",value:function(){if(FA<90)return!1;var A=document.createElement("canvas").getContext("webgl2");return!!(A&&A instanceof WebGL2RenderingContext)}}]);var g,I,r,B}();return G(xg,"Name","VirtualBackground"),xg}));
|