UNPKG

zego-express-engine-webrtc

Version:

zego webrtc express sdk

1 lines 665 kB
!function(A,v){if("object"==typeof exports&&"object"==typeof module)module.exports=v(require("long"));else if("function"==typeof define&&define.amd)define(["long"],v);else{var P="object"==typeof exports?v(require("long")):v(A.long);for(var r in P)("object"==typeof exports?exports:A)[r]=P[r]}}("undefined"!=typeof self?self:this,(function(A){return function(){"use strict";var v={6994:function(v){v.exports=A}},P={};function r(A){var I=P[A];if(void 0!==I)return I.exports;var g=P[A]={exports:{}};return v[A](g,g.exports,r),g.exports}r.d=function(A,v){for(var P in v)r.o(v,P)&&!r.o(A,P)&&Object.defineProperty(A,P,{enumerable:!0,get:v[P]})},r.o=function(A,v){return Object.prototype.hasOwnProperty.call(A,v)},r.r=function(A){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})};var I={};r.r(I),r.d(I,{AiDenoise:function(){return l}});r(6994),function(){function A(A){this.zegoStream=A}Object.defineProperty(A.prototype,"active",{get:function(){return this.zegoStream.active},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"id",{get:function(){return this.zegoStream.id},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"videoCaptureStream",{get:function(){return this.zegoStream.originVideoStream},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"audioCaptureStream",{get:function(){return this.zegoStream.originAudioStream},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"stream",{get:function(){return this.zegoStream.stream},enumerable:!1,configurable:!0}),A.prototype.getAudioTracks=function(){return this.zegoStream.getAudioTracks()},A.prototype.getVideoTracks=function(){return this.zegoStream.getVideoTracks()},A.prototype.getTracks=function(){return this.zegoStream.getTracks()},Object.defineProperty(A.prototype,"videoDeviceId",{get:function(){return this.zegoStream.videoDeviceId},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"audioDeviceId",{get:function(){return this.zegoStream.audioDeviceId},enumerable:!1,configurable:!0}),A.prototype.on=function(A,v){return this.zegoStream.on(A,v)},A.prototype.off=function(A,v){return this.zegoStream.off(A,v)},A.prototype.startCaptureMicrophone=function(A){return this.zegoStream.startCaptureMicrophone(A)},A.prototype.startCaptureCamera=function(A){return this.zegoStream.startCaptureCamera(A)},A.prototype.startCaptureCameraAndMicrophone=function(A,v){return this.zegoStream.startCaptureCameraAndMicrophone(A,v)},A.prototype.startCaptureCustomAudio=function(A){return this.zegoStream.startCaptureCustomAudio(A)},A.prototype.startCaptureCustomVideo=function(A){return this.zegoStream.startCaptureCustomVideo(A)},A.prototype.startCaptureCustomVideoAndAudio=function(A,v){return this.zegoStream.startCaptureCustomVideoAndAudio(A,v)},A.prototype.startCaptureScreen=function(A){return this.zegoStream.startCaptureScreen(A)},A.prototype.startCaptureScreenWithAudio=function(A,v){return this.zegoStream.startCaptureScreenWithAudio(A,v)},A.prototype.stopCaptureAudio=function(){return this.zegoStream.stopCaptureAudio()},A.prototype.stopCaptureVideo=function(){return this.zegoStream.stopCaptureVideo()},A.prototype.playAudio=function(A){this.zegoStream.playAudio(A)},A.prototype.playCaptureAudio=function(A){this.zegoStream.playCaptureAudio(A)},A.prototype.playVideo=function(A,v){this.zegoStream.playVideo(A,v)},A.prototype.playCaptureVideo=function(A,v){this.zegoStream.playCaptureVideo(A,v)},A.prototype.takeStreamSnapshot=function(A){return this.zegoStream.takeStreamSnapshot(A)},A.prototype.resumeVideo=function(){return this.zegoStream.resumeVideo()},A.prototype.resumeAudio=function(){return this.zegoStream.resumeAudio()},A.prototype.stopVideo=function(){this.zegoStream.stopVideo()},A.prototype.stopAudio=function(){this.zegoStream.stopAudio()},A.prototype.stopPlayCaptureVideo=function(){this.zegoStream.stopPlayCaptureVideo()},A.prototype.stopPlayCaptureAudio=function(){this.zegoStream.stopPlayCaptureAudio()},A.prototype.setVolume=function(A){return this.zegoStream.setVolume(A)},A.prototype.useAudioOutputDevice=function(A){return this.zegoStream.setAudioOutputDevice(A)}}();function g(A){return void 0===A}function D(A){return A instanceof MediaStream}var C=Promise;var Q="input param error";var z={code:1000018,message:"local stream wrong"},i={code:1100001,message:Q},T={code:1103044,message:"stream is not from zego"},b=function(A){return A},j=function(A){return A},L="/sdk/init",E=L;function o(){return navigator.userAgent||""}function u(){var A=o();return!!(A.match(/Mobi/i)||A.match(/Android/i)||A.match(/iPhone/i))}var e="zc.p.0.ead.0",B=null;function a(A,v){var P=A[0];if(!P)return new Float32Array;var r=P.length*v;(!(B instanceof Float32Array)||r>B.length)&&(B=new Float32Array(r));var I=B;if(1===v)I=P;else for(var g=0;g<P.length;g++)I[g*v]=P[g],2===v&&(I[g*v+1]=A[1][g]);return I=I.slice(0,P.length*v),B.fill(0),I}var s,w=function(A,v,P,r){return new(P||(P=Promise))((function(I,g){function D(A){try{Q(r.next(A))}catch(A){g(A)}}function C(A){try{Q(r.throw(A))}catch(A){g(A)}}function Q(A){var v;A.done?I(A.value):(v=A.value,v instanceof P?v:new P((function(A){A(v)}))).then(D,C)}Q((r=r.apply(A,v||[])).next())}))},y=function(A,v){var P,r,I,g,D={label:0,sent:function(){if(1&I[0])throw I[1];return I[1]},trys:[],ops:[]};return g={next:C(0),throw:C(1),return:C(2)},"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function C(C){return function(Q){return function(C){if(P)throw new TypeError("Generator is already executing.");for(;g&&(g=0,C[0]&&(D=0)),D;)try{if(P=1,r&&(I=2&C[0]?r.return:C[0]?r.throw||((I=r.return)&&I.call(r),0):r.next)&&!(I=I.call(r,C[1])).done)return I;switch(r=0,I&&(C=[2&C[0],I.value]),C[0]){case 0:case 1:I=C;break;case 4:return D.label++,{value:C[1],done:!1};case 5:D.label++,r=C[1],C=[0];continue;case 7:C=D.ops.pop(),D.trys.pop();continue;default:if(!(I=D.trys,(I=I.length>0&&I[I.length-1])||6!==C[0]&&2!==C[0])){D=0;continue}if(3===C[0]&&(!I||C[1]>I[0]&&C[1]<I[3])){D.label=C[1];break}if(6===C[0]&&D.label<I[1]){D.label=I[1],I=C;break}if(I&&D.label<I[2]){D.label=I[2],D.ops.push(C);break}I[2]&&D.ops.pop(),D.trys.pop();continue}C=v.call(A,D)}catch(A){C=[6,A],r=0}finally{P=I=0}if(5&C[0])throw C[1];return{value:C[0]?C[1]:void 0,done:!0}}([C,Q])}}},k=function(){function A(v,P,r,I){if(void 0===r&&(r=960),this.A=P,this.maxBufferSize=r,this.v=I,this.waittingQueue=[],this.processorNum=0,this.P=0,this.D=5,this.C=0,this.i=!1,this.num=0,this.handleQueue={},!A.isSupported)throw"the platform is not supported insertable stream";v&&this.getInsertableStreamTrack(v)}return A.prototype.enableStartCount=function(A){this.i=A},A.prototype.onoverload=function(){this.v&&this.v.onoverload&&this.v.onoverload()},A.prototype.getInsertableStreamTrack=function(A){var v=this;this.num++,this.track&&this.stopTransformHandle();var P=new window.MediaStreamTrackProcessor({track:A,maxBufferSize:this.maxBufferSize}),r=new window.MediaStreamTrackGenerator({kind:"audio"}),I=new TransformStream({transform:this.transformHandle()});this.tProcessorSource=P.readable,this.track=r;var g=new AbortController;return this.tProcessorSource.pipeThrough(I,{signal:g.signal}).pipeTo(r.writable).catch((function(A){v.A.info("zp.gis.1 close "+A),v.stopTransformHandle()})),this.track},Object.defineProperty(A,"isSupported",{get:function(){return!!(window.MediaStreamTrackProcessor&&window.MediaStreamTrackGenerator&&window.AudioData&&window.TransformStream)},enumerable:!1,configurable:!0}),A.prototype.transformHandle=function(){var A=this,v="f32-planar",P=this.num;return function(r,I){var g=r.numberOfChannels,D=r.numberOfFrames,C=r.sampleRate,Q=new Float32Array(D);r.copyTo(Q,{planeIndex:0,format:v});var z=A.processorNum&&A.num===P?new AudioData({format:v,sampleRate:C,numberOfFrames:D,numberOfChannels:g,timestamp:r.timestamp,data:A.getOutputBuffer(Q,g,C)}):r;I.enqueue(z)}},A.prototype.getOutputBuffer=function(A,v,P){for(var r=v,I=A.length,g=0;g<I;g++)this.waittingQueue.push(A[g]);var D=this.waittingQueue;for(var C in this.handleQueue){var Q=this.handleQueue[C];if("voicechanger"===C){var z=P*(v=2)/1e3*10;Q.bufferSize!==z&&(this.A.info("zp.gis.1 bufferSize change: ".concat(Q.bufferSize," -> ").concat(z)),Q.bufferSize=z)}for(;(null==Q?void 0:Q.bufferSize)<=D.length;){var i=D.splice(0,Q.bufferSize);if("voiceChanger"===C&&2!==r){var T=new Float32Array(i);i=Array.from(a([T,T.slice(0)],r))}Q.processFn(i,v,P)}D=Q.output}var b=new Float32Array(I*v);if(D.length>I){for(var j=D.splice(0,I),L=0;L<v;L++)b.set(j,L*I);this.P=0}else this.i&&(this.P++,this.P>=this.D&&(this.C++,this.C>=5&&(this.enableStartCount(!1),this.onoverload(),this.C=0),this.P=0));return b},A.prototype.stopTransformHandle=function(){return w(this,void 0,void 0,(function(){return y(this,(function(A){switch(A.label){case 0:if(!this.tProcessorSource&&!this.track)return[2];A.label=1;case 1:return A.trys.push([1,4,,5]),[4,this.tProcessorSource.cancel()];case 2:return A.sent(),[4,this.track.abort()];case 3:return A.sent(),this.tProcessorSource=null,this.track=null,[3,5];case 4:return A.sent(),[3,5];case 5:return[2]}}))}))},A.prototype.createProcessor=function(A,v){this.handleQueue[A]=v,this.processorNum=Object.keys(this.handleQueue).length},A.prototype.deleteProcessor=function(A){delete this.handleQueue[A],this.processorNum=Object.keys(this.handleQueue).length},A}();!function(A){A[A.WORKLET=0]="WORKLET",A[A.SCRIPT=1]="SCRIPT",A[A.INSERTABL=2]="INSERTABL"}(s||(s={}));var t=function(A,v,P,r){return new(P||(P=Promise))((function(I,g){function D(A){try{Q(r.next(A))}catch(A){g(A)}}function C(A){try{Q(r.throw(A))}catch(A){g(A)}}function Q(A){var v;A.done?I(A.value):(v=A.value,v instanceof P?v:new P((function(A){A(v)}))).then(D,C)}Q((r=r.apply(A,v||[])).next())}))},c=function(A,v){var P,r,I,g,D={label:0,sent:function(){if(1&I[0])throw I[1];return I[1]},trys:[],ops:[]};return g={next:C(0),throw:C(1),return:C(2)},"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function C(C){return function(Q){return function(C){if(P)throw new TypeError("Generator is already executing.");for(;g&&(g=0,C[0]&&(D=0)),D;)try{if(P=1,r&&(I=2&C[0]?r.return:C[0]?r.throw||((I=r.return)&&I.call(r),0):r.next)&&!(I=I.call(r,C[1])).done)return I;switch(r=0,I&&(C=[2&C[0],I.value]),C[0]){case 0:case 1:I=C;break;case 4:return D.label++,{value:C[1],done:!1};case 5:D.label++,r=C[1],C=[0];continue;case 7:C=D.ops.pop(),D.trys.pop();continue;default:if(!(I=D.trys,(I=I.length>0&&I[I.length-1])||6!==C[0]&&2!==C[0])){D=0;continue}if(3===C[0]&&(!I||C[1]>I[0]&&C[1]<I[3])){D.label=C[1];break}if(6===C[0]&&D.label<I[1]){D.label=I[1],I=C;break}if(I&&D.label<I[2]){D.label=I[2],D.ops.push(C);break}I[2]&&D.ops.pop(),D.trys.pop();continue}C=v.call(A,D)}catch(A){C=[6,A],r=0}finally{P=I=0}if(5&C[0])throw C[1];return{value:C[0]?C[1]:void 0,done:!0}}([C,Q])}}},S="zc.aidn",q=function(){function A(A,v){this.A=A,this.mode=v,this.audioCtx=null,this.aiDenoiseNode=null,this.scriptNode=null,this.isEnabled=!1,this.isInited=!1}return Object.defineProperty(A.prototype,"enabled",{get:function(){return this.isEnabled},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"inited",{get:function(){return this.isInited},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"worker",{get:function(){var A,v;return this.mode===s.SCRIPT?null===(A=this.scriptProcessor)||void 0===A?void 0:A.worker:this.mode===s.INSERTABL?this.insertableWorker:null===(v=this.aiDenoiseNode)||void 0===v?void 0:v.port},enumerable:!1,configurable:!0}),A.prototype.bindProcessorNodeEvent=function(){var A=this;this.worker&&(this.worker.onmessage=function(v){var P,r,I=v.data;switch(I.type){case"process":(null===(r=A.insertableProcessor)||void 0===r?void 0:r.output)?(P=A.insertableProcessor.output).push.apply(P,I.output||[]):A.scriptProcessor&&A.scriptProcessor.pushProcessedData((null==I?void 0:I.output)||[]);break;case"overload":A.onoverload()}})},A.prototype.init=function(A,v){var P;return t(this,void 0,void 0,(function(){var r;return c(this,(function(I){this.audioCtx=A,this.aiDenoiseNode=null,this.scriptNode=null,this.A.info(S+" init mode:"+this.mode);try{if(this.mode!==s.INSERTABL)v.audioNodeQueue||v.initAudioNodeQueue(!0),this.audioNodeQueue=v.audioNodeQueue,this.mode===s.SCRIPT&&this.scriptProcessor?(this.scriptProcessor.createScriptProcessor({bufferSize:256,handleInputData:this.handleInputData.bind(this)}),this.scriptNode=null===(P=this.scriptProcessor)||void 0===P?void 0:P.node):this.aiDenoiseNode=new AudioWorkletNode(this.audioCtx,"ai-denoise-processor"),(r=this.mode===s.SCRIPT?this.scriptNode:this.aiDenoiseNode)&&this.audioNodeQueue&&!this.audioNodeQueue.isConnected(r)&&this.audioNodeQueue.pushFront(r);else{if(!v.audioTrack)return this.A.info(S+" no audio track"),[2];v.insertableaudio||(v.insertableaudio=new k(v.audioTrack,this.A)),this.insertableProcessor={bufferSize:128,processFn:this.handleInputData.bind(this),output:[]},this.insertableaudio=v.insertableaudio}this.bindProcessorNodeEvent()}catch(A){throw A}return this.isInited=!0,[2]}))}))},A.prototype.handleInputData=function(A){this.postMessage({type:"process",input:A})},A.prototype.postMessage=function(A){var v;null===(v=this.worker)||void 0===v||v.postMessage(A)},A.prototype.setInsertableWorker=function(A){this.insertableWorker=A},A.prototype.setScriptProcessor=function(A){this.scriptProcessor=A},A.prototype.enable=function(){return t(this,void 0,void 0,(function(){var A;return c(this,(function(v){if(!this.aiDenoiseNode&&!this.scriptNode&&!this.insertableProcessor)throw new Error("ai denoise processor not initialized.");return this.enabled||(this.postMessage({type:"init"}),this.insertableaudio&&this.insertableProcessor&&(this.insertableProcessor.output=[],this.insertableaudio.createProcessor("aidenoise",this.insertableProcessor)),(A=this.mode===s.SCRIPT?this.scriptNode:this.aiDenoiseNode)&&this.audioNodeQueue&&!this.audioNodeQueue.isConnected(A)&&this.audioNodeQueue.pushFront(A),this.A.info(S+" open ai denoise"),this.isEnabled=!0),[2,!0]}))}))},A.prototype.disable=function(){return t(this,void 0,void 0,(function(){var A;return c(this,(function(v){if(!this.aiDenoiseNode&&!this.scriptNode&&!this.insertableProcessor)throw new Error("ai denoise processor not initialized.");return this.enabled?(this.postMessage({type:"destroy"}),this.insertableaudio&&this.insertableProcessor&&(this.insertableProcessor.output=[],this.insertableaudio.deleteProcessor("aidenoise")),(A=this.mode===s.SCRIPT?this.scriptNode:this.aiDenoiseNode)&&this.audioNodeQueue&&this.audioNodeQueue.isConnected(A)&&this.audioNodeQueue.remove(A),this.A.info(S+" close ai denoise"),this.isEnabled=!1,[2,!0]):[2,!0]}))}))},A.prototype.destroy=function(){var A;return t(this,void 0,void 0,(function(){var v;return c(this,(function(P){return this.aiDenoiseNode||this.scriptNode||this.insertableProcessor?(this.postMessage({type:"destroy"}),(v=this.mode===s.SCRIPT?this.scriptNode:this.aiDenoiseNode)&&(null===(A=this.audioNodeQueue)||void 0===A?void 0:A.isConnected(v))&&this.audioNodeQueue.remove(v),this.A.info(S+" close other ai denoise"),this.isEnabled=!1,[2]):[2]}))}))},A.prototype.onoverload=function(){},A}(),U='var Module=(()=>{var _scriptDir=typeof document!=="undefined"&&document.currentScript?document.currentScript.src:undefined;if(typeof __filename!=="undefined")_scriptDir=_scriptDir||__filename;return function(Module){Module=Module||{};var Module=typeof Module!="undefined"?Module:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;var POINTER_SIZE=4;function getNativeTypeSize(type){switch(type){case"i1":case"i8":case"u8":return 1;case"i16":case"u16":return 2;case"i32":case"u32":return 4;case"i64":case"u64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return POINTER_SIZE}if(type[0]==="i"){const bits=Number(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}return 0}}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var STACK_SIZE=65536;var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnExit(cb){}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="data:application/octet-stream;base64,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