From 7bde577d247a821972d95d369353af1b4b67f09d Mon Sep 17 00:00:00 2001 From: wancheng1990 <25022549@qq.com> Date: Fri, 16 Aug 2024 18:15:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20videoframe=20=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E9=87=8A=E6=94=BE=E5=86=85=E5=AD=98=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- demo/components/DemoPlayer.vue | 1 - demo/document.md | 4 +- demo/pro.md | 6 +- demo/public/decoder.js | 6 +- demo/public/decoder.js.map | 2 +- demo/public/dist.zip | Bin 534899 -> 534944 bytes demo/public/jessibuca.js | 64 +++++++++++++++--- demo/public/jessibuca.js.map | 2 +- demo/public/pro.zip | Bin 11854762 -> 11855984 bytes demo/public/pro/js/decoder-pro-audio.js | 2 +- .../pro/js/decoder-pro-hard-not-wasm.js | 2 +- demo/public/pro/js/decoder-pro-hard.js | 2 +- demo/public/pro/js/decoder-pro-mt.js | 2 +- demo/public/pro/js/decoder-pro-simd-mt.js | 2 +- demo/public/pro/js/decoder-pro-simd.js | 2 +- demo/public/pro/js/decoder-pro.js | 2 +- demo/public/pro/js/jessibuca-pro-demo.js | 2 +- .../public/pro/js/jessibuca-pro-multi-demo.js | 2 +- dist/jessibuca.js | 2 +- package.json | 2 +- src/audio/audioContextLoader.js | 6 +- src/constant/index.js | 2 +- src/player/index.js | 18 +++-- src/video/index.js | 3 +- src/video/videoLoader.js | 2 + 25 files changed, 99 insertions(+), 39 deletions(-) diff --git a/demo/components/DemoPlayer.vue b/demo/components/DemoPlayer.vue index be77cba8..d13ae441 100644 --- a/demo/components/DemoPlayer.vue +++ b/demo/components/DemoPlayer.vue @@ -208,7 +208,6 @@ export default { isResize: false, useWCS: this.useWCS, useMSE: this.useMSE, - wcsUseVideoRender: this.useWCS, text: "", // background: "bg.jpg", loadingText: "疯狂加载中...", diff --git a/demo/document.md b/demo/document.md index 964aa09e..122cf127 100644 --- a/demo/document.md +++ b/demo/document.md @@ -260,9 +260,7 @@ wasmBinaryFile = 'https://cdn.com/decoder.wasm'; #### webcodecs 硬解码 -默认是通过 `canvas` 进行渲染的 - -> jessibuca pro 支持 `video` 标签渲染 +默认是通过 `canvas` 进行渲染的,也支持video渲染 > Pro 支持 `canvas webgl2` 进行渲染的 diff --git a/demo/pro.md b/demo/pro.md index 4b4326ba..bb259f95 100644 --- a/demo/pro.md +++ b/demo/pro.md @@ -118,7 +118,7 @@ jessibuca pro 是在开源版本的基础上额外支持的深入业务解决方 | 语音通讯(设置采样位数32位或16位或8位) | 不支持 | 支持 | | 语音通讯(设置声道单声道或双声道) | 不支持 | 支持 | | 语音通讯(设置rtp包封装) | 不支持 | 支持 | -| 语音通讯(设置jtt包解封装) | 不支持 | 支持 | +| 语音通讯(设置jtt包解封装)[jtt介绍](https://jessibuca.com/document.html#%E5%85%B3%E4%BA%8E%E5%9B%BD%E6%A0%87-jtt-%E9%81%93%E8%B7%AF%E8%BF%90%E8%BE%93%E8%BD%A6%E8%BE%86%E5%8D%AB%E6%98%9F%E5%AE%9A%E4%BD%8D%E7%B3%BB%E7%BB%9F%E9%9F%B3%E8%A7%86%E9%A2%91%E9%80%9A%E8%AE%AF%E5%8D%8F%E8%AE%AE) | 不支持 | 支持 | | GB28181 TF卡(录像流)流播放 [介绍](https://jessibuca.com/pro-playback.html) | 不支持 | 支持 | | GB28181 TF卡(录像流)流播放,(2/4/8/16/32/64)倍率播放 | 不支持 | 支持 | | GB28181 TF卡(录像流)流播放,关键帧解码播放 | 不支持 | 支持 | @@ -636,10 +636,12 @@ Apple M1, M1 Pro, M1 Max, M1 Ultra 及以上 ## 语音通讯 -支持在web页面采集麦克风数据,支持编码格式pcm、pcma(g711a)、pcmu(g711u),支持封装成rtp包、jtt包。 +支持在web页面采集麦克风数据,支持编码格式pcm、pcma(g711a)、pcmu(g711u),支持封装成rtp协议包、jtt协议包。 > 目前仅支持单向语音通讯,不支持双向语音通讯。(仅支持通过ws传输到服务器,不支持通过ws接收音频数据进行播放),根据国标情况,播放端是跟着音视频一起播放的,可以使用音视频播放器进行播放器音频和视频数据。 +> 关于 jtt协议包的封装格式,可以参考:[jtt协议包](https://jessibuca.com/document.html#%E5%85%B3%E4%BA%8E%E5%9B%BD%E6%A0%87-jtt-%E9%81%93%E8%B7%AF%E8%BF%90%E8%BE%93%E8%BD%A6%E8%BE%86%E5%8D%AB%E6%98%9F%E5%AE%9A%E4%BD%8D%E7%B3%BB%E7%BB%9F%E9%9F%B3%E8%A7%86%E9%A2%91%E9%80%9A%E8%AE%AF%E5%8D%8F%E8%AE%AE) + ## PRO AI ### 人脸识别 diff --git a/demo/public/decoder.js b/demo/public/decoder.js index a1a9f2c8..8cebdc71 100644 --- a/demo/public/decoder.js +++ b/demo/public/decoder.js @@ -7523,7 +7523,7 @@ // demux type useWCS: false, // - wcsUseVideoRender: true, + wcsUseVideoRender: false, // 默认设置为true useMSE: false, // @@ -7538,7 +7538,9 @@ wasmDecodeAudioSyncVideo: false, // wasm 解码之后音视频同步 recordType: FILE_SUFFIX.webm, - useWebFullScreen: false // use web full screen + useWebFullScreen: false, + // use web full screen + initDecoderWorkerTimeout: 10 // }; const WORKER_CMD_TYPE = { diff --git a/demo/public/decoder.js.map b/demo/public/decoder.js.map index 598a454a..42ca053a 100644 --- a/demo/public/decoder.js.map +++ b/demo/public/decoder.js.map @@ -1 +1 @@ -{"version":3,"file":"decoder.js","sources":["../../src/decoder/decoder.js","../../src/utils/webgl.js","../../src/constant/index.js","../../node_modules/screenfull/dist/screenfull.js","../../src/utils/index.js","../../src/worker.js"],"sourcesContent":["var Module=typeof Module!=\"undefined\"?Module:{};var Module={};Module.print=function(text){console.log(\"Jessibuca: [worker]:\",text)};Module.printErr=function(text){console.warn(\"Jessibuca: [worker]:\",text);postMessage({cmd:\"wasmError\",message:text})};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;if(Module[\"ENVIRONMENT\"]){throw new Error(\"Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)\")}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;if(e&&typeof e==\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exiting due to exception: \"+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(!(typeof process==\"object\"&&typeof require==\"function\"))throw new Error(\"not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)\");if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}requireNodeFS=(()=>{if(!nodePath){fs=require(\"fs\");nodePath=require(\"path\")}});read_=function shell_read(filename,binary){requireNodeFS();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)}assert(ret.buffer);return ret});readAsync=((filename,onload,onerror)=>{requireNodeFS();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);if(typeof module!=\"undefined\"){module[\"exports\"]=Module}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_SHELL){if(typeof process==\"object\"&&typeof require===\"function\"||typeof window==\"object\"||typeof importScripts==\"function\")throw new Error(\"not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)\");if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){let data;if(typeof readbuffer==\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data==\"object\");return data};readAsync=function readAsync(f,onload,onerror){setTimeout(()=>onload(readBinary(f)),0)};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit==\"function\"){quit_=((status,toThrow)=>{logExceptionOnExit(toThrow);quit(status)})}if(typeof print!=\"undefined\"){if(typeof console==\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!=\"undefined\"?printErr:print}}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(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(!(typeof window==\"object\"||typeof importScripts==\"function\"))throw new Error(\"not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)\");{read_=(url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText});if(ENVIRONMENT_IS_WORKER){readBinary=(url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)})}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}onerror()});xhr.onerror=onerror;xhr.send(null)})}setWindowTitle=(title=>document.title=title)}else{throw new Error(\"environment detection error\")}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;checkIncomingModuleAPI();if(Module[\"arguments\"])arguments_=Module[\"arguments\"];legacyModuleProp(\"arguments\",\"arguments_\");if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];legacyModuleProp(\"thisProgram\",\"thisProgram\");if(Module[\"quit\"])quit_=Module[\"quit\"];legacyModuleProp(\"quit\",\"quit_\");assert(typeof Module[\"memoryInitializerPrefixURL\"]==\"undefined\",\"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"pthreadMainPrefixURL\"]==\"undefined\",\"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"cdInitializerPrefixURL\"]==\"undefined\",\"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"filePackagePrefixURL\"]==\"undefined\",\"Module.filePackagePrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"read\"]==\"undefined\",\"Module.read option was removed (modify read_ in JS)\");assert(typeof Module[\"readAsync\"]==\"undefined\",\"Module.readAsync option was removed (modify readAsync in JS)\");assert(typeof Module[\"readBinary\"]==\"undefined\",\"Module.readBinary option was removed (modify readBinary in JS)\");assert(typeof Module[\"setWindowTitle\"]==\"undefined\",\"Module.setWindowTitle option was removed (modify setWindowTitle in JS)\");assert(typeof Module[\"TOTAL_MEMORY\"]==\"undefined\",\"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY\");legacyModuleProp(\"read\",\"read_\");legacyModuleProp(\"readAsync\",\"readAsync\");legacyModuleProp(\"readBinary\",\"readBinary\");legacyModuleProp(\"setWindowTitle\",\"setWindowTitle\");assert(!ENVIRONMENT_IS_SHELL,\"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable.\");var POINTER_SIZE=4;function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function uleb128Encode(n){assert(n<16384);if(n<128){return[n]}return[n%128|128,n>>7]}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function==\"function\"){var typeNames={\"i\":\"i32\",\"j\":\"i64\",\"f\":\"f32\",\"d\":\"f64\"};var type={parameters:[],results:sig[0]==\"v\"?[]:[typeNames[sig[0]]]};for(var i=1;iabort(unexportedMessage(sym,isFSSybol)))}}var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];legacyModuleProp(\"wasmBinary\",\"wasmBinary\");var noExitRuntime=Module[\"noExitRuntime\"]||true;legacyModuleProp(\"noExitRuntime\",\"noExitRuntime\");if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed\"+(text?\": \"+text:\"\"))}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;assert(returnType!==\"array\",'Return type should not be \"array\".');if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}else{var str=\"\";while(idx>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=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;if(u>1114111)warnOnce(\"Invalid Unicode code point 0x\"+u.toString(16)+\" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).\");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){assert(typeof maxBytesToWrite==\"number\",\"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!\");return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;function UTF16ToString(ptr,maxBytesToRead){assert(ptr%2==0,\"Pointer passed to UTF16ToString must be aligned to two bytes!\");var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){assert(outPtr%2==0,\"Pointer passed to stringToUTF16 must be aligned to two bytes!\");assert(typeof maxBytesToWrite==\"number\",\"stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!\");if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){assert(ptr%4==0,\"Pointer passed to UTF32ToString must be aligned to four bytes!\");var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){assert(outPtr%4==0,\"Pointer passed to stringToUTF32 must be aligned to four bytes!\");assert(typeof maxBytesToWrite==\"number\",\"stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!\");if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){assert(array.length>=0,\"writeArrayToMemory array must have a length (should be an array or typed array)\");HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var 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 TOTAL_STACK=5242880;if(Module[\"TOTAL_STACK\"])assert(TOTAL_STACK===Module[\"TOTAL_STACK\"],\"the stack size can no longer be determined at runtime\");var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||67108864;legacyModuleProp(\"INITIAL_MEMORY\",\"INITIAL_MEMORY\");assert(INITIAL_MEMORY>=TOTAL_STACK,\"INITIAL_MEMORY should be larger than TOTAL_STACK, was \"+INITIAL_MEMORY+\"! (TOTAL_STACK=\"+TOTAL_STACK+\")\");assert(typeof Int32Array!=\"undefined\"&&typeof Float64Array!==\"undefined\"&&Int32Array.prototype.subarray!=undefined&&Int32Array.prototype.set!=undefined,\"JS engine does not provide full typed array support\");assert(!Module[\"wasmMemory\"],\"Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally\");assert(INITIAL_MEMORY==67108864,\"Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically\");var wasmTable;function writeStackCookie(){var max=_emscripten_stack_get_end();assert((max&3)==0);HEAP32[max>>2]=34821223;HEAP32[max+4>>2]=2310721022;HEAP32[0]=1668509029}function checkStackCookie(){if(ABORT)return;var max=_emscripten_stack_get_end();var cookie1=HEAPU32[max>>2];var cookie2=HEAPU32[max+4>>2];if(cookie1!=34821223||cookie2!=2310721022){abort(\"Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x\"+cookie2.toString(16)+\" 0x\"+cookie1.toString(16))}if(HEAP32[0]!==1668509029)abort(\"Runtime error: The application has corrupted its heap memory area (address zero)!\")}(function(){var h16=new Int16Array(1);var h8=new Int8Array(h16.buffer);h16[0]=25459;if(h8[0]!==115||h8[1]!==99)throw\"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)\"})();var __ATPRERUN__=[];var __ATINIT__=[];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(){checkStackCookie();assert(!runtimeInitialized);runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){checkStackCookie();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 addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}assert(Math.imul,\"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");assert(Math.fround,\"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");assert(Math.clz32,\"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");assert(Math.trunc,\"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function getUniqueRunDependency(id){var orig=id;while(1){if(!runDependencyTracking[id])return id;id=orig+Math.random()}}function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!=\"undefined\"){runDependencyWatcher=setInterval(function(){if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;err(\"still waiting on run dependencies:\")}err(\"dependency: \"+dep)}if(shown){err(\"(end of list)\")}},1e4)}}else{err(\"warning: run dependency added without ID\")}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{err(\"warning: run dependency removed without ID\")}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;var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}function createExportWrapper(name,fixedasm){return function(){var displayName=name;var asm=fixedasm;if(!fixedasm){asm=Module[\"asm\"]}assert(runtimeInitialized,\"native function `\"+displayName+\"` called before runtime initialization\");if(!asm[name]){assert(asm[name],\"exported native function `\"+displayName+\"` not found\")}return asm[name].apply(null,arguments)}}var wasmBinaryFile;wasmBinaryFile=\"decoder.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"memory\"];assert(wasmMemory,\"memory not found in wasm exports\");updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"__indirect_function_table\"];assert(wasmTable,\"table not found in wasm exports\");addOnInit(Module[\"asm\"][\"__wasm_call_ctors\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");var trueModule=Module;function receiveInstantiationResult(result){assert(Module===trueModule,\"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?\");trueModule=null;receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);if(isFileURI(wasmBinaryFile)){err(\"warning: Loading from a file URI (\"+wasmBinaryFile+\") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing\")}abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func==\"number\"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function demangle(func){warnOnce(\"warning: build with -sDEMANGLE_SUPPORT to link in libcxxabi demangling\");return func}function demangleAll(text){var regex=/\\b_Z[\\w\\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+\" [\"+x+\"]\"})}function getWasmTableEntry(funcPtr){return wasmTable.get(funcPtr)}function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return\"(no stack trace available)\"}}return error.stack.toString()}function setWasmTableEntry(idx,func){wasmTable.set(idx,func)}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path===\"/\")return\"/\";path=PATH.normalize(path);path=path.replace(/\\/$/,\"\");var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:(l,r)=>{return PATH.normalize(l+\"/\"+r)}};function getRandomDevice(){if(typeof crypto==\"object\"&&typeof crypto[\"getRandomValues\"]==\"function\"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require(\"crypto\");return function(){return crypto_module[\"randomBytes\"](1)[0]}}catch(e){}}return function(){abort(\"no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };\")}}var PATH_FS={resolve:function(){var resolvedPath=\"\",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString(\"utf-8\")}else{result=null}}else if(typeof window!=\"undefined\"&&typeof window.prompt==\"function\"){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else if(typeof readline==\"function\"){result=readline();if(result!==null){result+=\"\\n\"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function zeroMemory(address,size){HEAPU8.fill(0,address,address+size)}function alignMemory(size,alignment){assert(alignment,\"alignment argument is required\");return Math.ceil(size/alignment)*alignment}function mmapAlloc(size){size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;zeroMemory(ptr,size);return ptr}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,\"/\",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[\".\",\"..\"];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:\"\",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),false);var current=FS.root;var current_path=\"/\";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?mount+\"/\"+path:mount+path}path=path?node.name+\"/\"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{assert(typeof parent==\"object\");var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{\"r\":0,\"r+\":2,\"w\":577,\"w+\":578,\"a\":1089,\"a+\":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags==\"undefined\"){throw new Error(\"Unknown file open mode: \"+str)}return flags},flagsToPermissionString:flag=>{var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get function(){return this.shared.position},set:function(val){this.shared.position=val}}}}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(\"warning: \"+FS.syncFSRequests+\" FS.syncfs operations in flight at once, probably just doing extra work\")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{if(typeof type==\"string\"){throw type}var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name===\".\"||name===\"..\"){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split(\"/\");var d=\"\";for(var i=0;i{if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode,fd_start,fd_end)=>{if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS.modeStringToFlags(flags):flags;mode=typeof mode==\"undefined\"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==\"object\"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,address,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,address,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){throw new Error('Invalid encoding type \"'+opts.encoding+'\"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding===\"binary\"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices:()=>{FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice(\"/dev\",\"random\",random_device);FS.createDevice(\"/dev\",\"urandom\",random_device);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories:()=>{FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount:()=>{var node=FS.createNode(proc_self,\"fd\",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},\"/proc/self/fd\")},createStandardStreams:()=>{if(Module[\"stdin\"]){FS.createDevice(\"/dev\",\"stdin\",Module[\"stdin\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(Module[\"stdout\"]){FS.createDevice(\"/dev\",\"stdout\",null,Module[\"stdout\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(Module[\"stderr\"]){FS.createDevice(\"/dev\",\"stderr\",null,Module[\"stderr\"])}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1);assert(stdin.fd===0,\"invalid handle for stdin (\"+stdin.fd+\")\");assert(stdout.fd===1,\"invalid handle for stdout (\"+stdout.fd+\")\");assert(stderr.fd===2,\"invalid handle for stderr (\"+stderr.fd+\")\")},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}};this.setErrno(errno);this.message=ERRNO_MESSAGES[errno];if(this.stack){Object.defineProperty(this,\"stack\",{value:(new Error).stack,writable:true});this.stack=demangleAll(this.stack)}};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=\"\"})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={\"MEMFS\":MEMFS}},init:(input,output,error)=>{assert(!FS.init.initialized,\"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)\");FS.init.initialized=true;FS.ensureErrnoError();Module[\"stdin\"]=input||Module[\"stdin\"];Module[\"stdout\"]=output||Module[\"stdout\"];Module[\"stderr\"]=error||Module[\"stderr\"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;___stdio_exit();for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!=\"undefined\"){throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error(\"Cannot load without read() or XMLHttpRequest.\")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||\"\",true)}};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=\"undefined\"){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=((stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(\"cp \"+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url==\"string\"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return\"EM_FS_\"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:\"FILE_DATA\",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=(()=>{out(\"creating db\");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)});openRequest.onsuccess=(()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],\"readwrite\");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=(()=>{ok++;if(ok+fail==total)finish()});putRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=(()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],\"readonly\")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=(()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()});getRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror},absolutePath:()=>{abort(\"FS.absolutePath has been removed; use PATH_FS.resolve instead\")},createFolder:()=>{abort(\"FS.createFolder has been removed; use FS.mkdir instead\")},createLink:()=>{abort(\"FS.createLink has been removed; use FS.symlink instead\")},joinPath:()=>{abort(\"FS.joinPath has been removed; use PATH.join instead\")},mmapAlloc:()=>{abort(\"FS.mmapAlloc has been replaced by the top level function mmapAlloc\")},standardizePath:()=>{abort(\"FS.standardizePath has been removed; use PATH.normalize instead\")}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms=\"\";if(amode&4)perms+=\"r\";if(amode&2)perms+=\"w\";if(amode&1)perms+=\"x\";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){assert(SYSCALLS.varargs!=undefined);SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==\"undefined\"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS==\"undefined\"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return\"_\"+name}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function(\"body\",\"return function \"+name+\"() {\\n\"+' \"use strict\";'+\" return body.apply(this, arguments);\\n\"+\"};\\n\")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+\": \"+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options={}){if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError('type \"'+name+'\" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(\"Cannot register type '\"+name+\"' twice\")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return!!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")}var finalizationRegistry=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module[\"getInheritedInstanceCount\"]=getInheritedInstanceCount;Module[\"getLiveInheritedInstances\"]=getLiveInheritedInstances;Module[\"flushPendingDeletes\"]=flushPendingDeletes;Module[\"setDelayFunction\"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError(\"makeClassHandle requires ptr and ptrType\")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError(\"Both smartPtrType and smartPtr must be specified\")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance[\"clone\"]()}else{var rv=registeredInstance[\"clone\"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if(\"undefined\"===typeof FinalizationRegistry){attachFinalizer=(handle=>handle);return handle}finalizationRegistry=new FinalizationRegistry(info=>{console.warn(info.leakWarning.stack.replace(/^Error: /,\"\"));releaseClassHandle(info.$$)});attachFinalizer=(handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};var cls=$$.ptrType.registeredClass;info.leakWarning=new Error(\"Embind found a leaked C++ instance \"+cls.name+\" <0x\"+$$.ptr.toString(16)+\">.\\n\"+\"We'll free it automatically in this case, but this functionality is not reliable across various environments.\\n\"+\"Make sure to invoke .delete() manually once you're done with the instance instead.\\n\"+\"Originally allocated\");if(\"captureStackTrace\"in Error){Error.captureStackTrace(info.leakWarning,RegisteredPointer_fromWireType)}finalizationRegistry.register(handle,info,handle)}return handle});detachFinalizer=(handle=>finalizationRegistry.unregister(handle));return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype[\"isAliasOf\"]=ClassHandle_isAliasOf;ClassHandle.prototype[\"clone\"]=ClassHandle_clone;ClassHandle.prototype[\"delete\"]=ClassHandle_delete;ClassHandle.prototype[\"isDeleted\"]=ClassHandle_isDeleted;ClassHandle.prototype[\"deleteLater\"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(\"Function '\"+humanName+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+proto[methodName].overloadTable+\")!\")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(\"Cannot register public name '\"+name+\"' twice\")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(\"Cannot register multiple overloads of a function with the same number of arguments (\"+numArguments+\")!\")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(\"Expected null or instance of \"+desiredClass.name+\", got an instance of \"+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle[\"delete\"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError(\"Unsupporting sharing policy\")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+handle.$$.ptrType.name+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAPU32[pointer>>2])}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle[\"delete\"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype[\"argPackAdvance\"]=8;RegisteredPointer.prototype[\"readValueFromPointer\"]=simpleReadValueFromPointer;RegisteredPointer.prototype[\"deleteObject\"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype[\"fromWireType\"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this[\"toWireType\"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this[\"toWireType\"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this[\"toWireType\"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){assert(\"dynCall_\"+sig in Module,\"bad function pointer type - no table for sig '\"+sig+\"'\");if(args&&args.length){assert(args.length===sig.substring(1).replace(/j/g,\"--\").length)}else{assert(sig.length==1)}var f=Module[\"dynCall_\"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes(\"j\")){return dynCallLegacy(sig,ptr,args)}assert(getWasmTableEntry(ptr),\"missing table entry in dynCall: \"+ptr);return getWasmTableEntry(ptr).apply(null,args)}function getDynCaller(sig,ptr){assert(sig.includes(\"j\"),\"getDynCaller should only be called with i64 sigs\");var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes(\"j\")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!=\"function\"){throwBindingError(\"unknown function pointer with signature \"+signature+\": \"+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+\": \"+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(\"Cannot construct \"+name+\" due to unbound types\",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(\"Use 'new' to construct \"+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+\" has no accessible constructor\")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(\"Tried to invoke ctor of \"+name+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(registeredClass.constructor_body).toString()+\") parameters instead!\")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i>2)+i])}return array}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=\"constructor \"+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(\"Cannot register multiple constructors with identical number of parameters (\"+(argCount-1)+\") for class '\"+classType.name+\"'! Overload resolution is currently only performed using the parameter count, not actual type info!\")}classType.registeredClass.constructor_body[argCount-1]=(()=>{throwUnboundTypeError(\"Cannot construct \"+classType.name+\" due to unbound types\",rawArgTypes)});whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(\"new_ called with constructor type \"+typeof constructor+\" which is not a function\")}var dummy=createNamedFunction(constructor.name||\"unknownFunctionName\",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?\", \":\"\")+argsListWired}invokerFnBody+=(returns?\"var rv = \":\"\")+\"invoker(fn\"+(argsListWired.length>0?\", \":\"\")+argsListWired+\");\\n\";if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i{throwUnboundTypeError(\"Cannot access \"+humanName+\" due to unbound types\",[getterReturnType,setterArgumentType])})}else{desc.set=(v=>{throwBindingError(humanName+\" is a read-only property\")})}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);whenDependentTypesAreResolved([],setter?[getterReturnType,setterArgumentType]:[getterReturnType],function(types){var getterReturnType=types[0];var desc={get:function(){var ptr=validateThis(this,classType,humanName+\" getter\");return getterReturnType[\"fromWireType\"](getter(getterContext,ptr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);var setterArgumentType=types[1];desc.set=function(v){var ptr=validateThis(this,classType,humanName+\" setter\");var destructors=[];setter(setterContext,ptr,setterArgumentType[\"toWireType\"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i{if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return Emval.toHandle(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){if(typeof value!=\"number\"&&typeof value!=\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+this.name)}return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=(value=>value<>>bitshift)}var isUnsignedType=name.includes(\"unsigned\");var checkAssertions=(value,toTypeName)=>{if(typeof value!=\"number\"&&typeof value!=\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+toTypeName)}if(valuemaxRange){throw new TypeError('Passing a number \"'+_embind_repr(value)+'\" from JS side to C/C++ side to an argument of type \"'+name+'\", which is outside the valid range ['+minRange+\", \"+maxRange+\"]!\")}};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":toWireType,\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;ilengthBytesUTF8(value))}else{getLength=(()=>value.length)}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;iHEAPU16);shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=(()=>HEAPU32);shift=2}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},\"toWireType\":function(destructors,value){if(!(typeof value==\"string\")){throwBindingError(\"Cannot pass non-string to C++ string type \"+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}function __emscripten_date_now(){return Date.now()}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+\" has unknown type \"+getTypeName(rawType))}return impl}function __emval_as(handle,returnType,destructorsRef){handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,\"emval::as\");var destructors=[];var rd=Emval.toHandle(destructors);HEAP32[destructorsRef>>2]=rd;return returnType[\"toWireType\"](destructors,handle)}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2)+i],\"parameter \"+i)}return a}var emval_registeredMethods=[];function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+\"_$\"+types.slice(1).map(function(t){return t.name}).join(\"_\")+\"$\";var returnId=emval_registeredMethods[signatureName];if(returnId!==undefined){return returnId}var params=[\"retType\"];var args=[retType];var argsList=\"\";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)}function __emval_take_value(type,argv){type=requireRegisteredType(type,\"_emval_take_value\");var v=type[\"readValueFromPointer\"](argv);return Emval.toHandle(v)}function __gmtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}function __localtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mktime_js(tmPtr){var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>2]=date.getDay();var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();return date.getTime()/1e3|0}function _tzset_impl(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return match?match[1]:\"GMT\"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAP32[tzname+4>>2]=summerNamePtr}else{HEAP32[tzname>>2]=summerNamePtr;HEAP32[tzname+4>>2]=winterNamePtr}}function __tzset_js(timezone,daylight,tzname){if(__tzset_js.called)return;__tzset_js.called=true;_tzset_impl(timezone,daylight,tzname)}function _abort(){abort(\"native code called abort()\")}function reallyNegative(x){return x<0||x===0&&1/x===-Infinity}function convertI32PairToI53(lo,hi){assert(hi===(hi|0));return(lo>>>0)+hi*4294967296}function convertU32PairToI53(lo,hi){return(lo>>>0)+(hi>>>0)*4294967296}function reSign(value,bits){if(value<=0){return value}var half=bits<=32?Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}function unSign(value,bits){if(value>=0){return value}return bits<=32?2*Math.abs(1<>3]);argIndex+=8}else if(type==\"i64\"){ret=[HEAP32[argIndex>>2],HEAP32[argIndex+4>>2]];argIndex+=8}else{assert((argIndex&3)===0);type=\"i32\";ret=HEAP32[argIndex>>2];argIndex+=4}return ret}var ret=[];var curr,next,currArg;while(1){var startTextIndex=textIndex;curr=HEAP8[textIndex>>0];if(curr===0)break;next=HEAP8[textIndex+1>>0];if(curr==37){var flagAlwaysSigned=false;var flagLeftAlign=false;var flagAlternative=false;var flagZeroPad=false;var flagPadSign=false;flagsLoop:while(1){switch(next){case 43:flagAlwaysSigned=true;break;case 45:flagLeftAlign=true;break;case 35:flagAlternative=true;break;case 48:if(flagZeroPad){break flagsLoop}else{flagZeroPad=true;break}case 32:flagPadSign=true;break;default:break flagsLoop}textIndex++;next=HEAP8[textIndex+1>>0]}var width=0;if(next==42){width=getNextArg(\"i32\");textIndex++;next=HEAP8[textIndex+1>>0]}else{while(next>=48&&next<=57){width=width*10+(next-48);textIndex++;next=HEAP8[textIndex+1>>0]}}var precisionSet=false,precision=-1;if(next==46){precision=0;precisionSet=true;textIndex++;next=HEAP8[textIndex+1>>0];if(next==42){precision=getNextArg(\"i32\");textIndex++}else{while(1){var precisionChr=HEAP8[textIndex+1>>0];if(precisionChr<48||precisionChr>57)break;precision=precision*10+(precisionChr-48);textIndex++}}next=HEAP8[textIndex+1>>0]}if(precision<0){precision=6;precisionSet=false}var argSize;switch(String.fromCharCode(next)){case\"h\":var nextNext=HEAP8[textIndex+2>>0];if(nextNext==104){textIndex++;argSize=1}else{argSize=2}break;case\"l\":var nextNext=HEAP8[textIndex+2>>0];if(nextNext==108){textIndex++;argSize=8}else{argSize=4}break;case\"L\":case\"q\":case\"j\":argSize=8;break;case\"z\":case\"t\":case\"I\":argSize=4;break;default:argSize=null}if(argSize)textIndex++;next=HEAP8[textIndex+1>>0];switch(String.fromCharCode(next)){case\"d\":case\"i\":case\"u\":case\"o\":case\"x\":case\"X\":case\"p\":{var signed=next==100||next==105;argSize=argSize||4;currArg=getNextArg(\"i\"+argSize*8);var argText;if(argSize==8){currArg=next==117?convertU32PairToI53(currArg[0],currArg[1]):convertI32PairToI53(currArg[0],currArg[1])}if(argSize<=4){var limit=Math.pow(256,argSize)-1;currArg=(signed?reSign:unSign)(currArg&limit,argSize*8)}var currAbsArg=Math.abs(currArg);var prefix=\"\";if(next==100||next==105){argText=reSign(currArg,8*argSize).toString(10)}else if(next==117){argText=unSign(currArg,8*argSize).toString(10);currArg=Math.abs(currArg)}else if(next==111){argText=(flagAlternative?\"0\":\"\")+currAbsArg.toString(8)}else if(next==120||next==88){prefix=flagAlternative&&currArg!=0?\"0x\":\"\";if(currArg<0){currArg=-currArg;argText=(currAbsArg-1).toString(16);var buffer=[];for(var i=0;i=0){if(flagAlwaysSigned){prefix=\"+\"+prefix}else if(flagPadSign){prefix=\" \"+prefix}}if(argText.charAt(0)==\"-\"){prefix=\"-\"+prefix;argText=argText.substr(1)}while(prefix.length+argText.lengthexponent&&exponent>=-4){next=(next==103?\"f\":\"F\").charCodeAt(0);precision-=exponent+1}else{next=(next==103?\"e\":\"E\").charCodeAt(0);precision--}effectivePrecision=Math.min(precision,20)}if(next==101||next==69){argText=currArg.toExponential(effectivePrecision);if(/[eE][-+]\\d$/.test(argText)){argText=argText.slice(0,-1)+\"0\"+argText.slice(-1)}}else if(next==102||next==70){argText=currArg.toFixed(effectivePrecision);if(currArg===0&&reallyNegative(currArg)){argText=\"-\"+argText}}var parts=argText.split(\"e\");if(isGeneral&&!flagAlternative){while(parts[0].length>1&&parts[0].includes(\".\")&&(parts[0].slice(-1)==\"0\"||parts[0].slice(-1)==\".\")){parts[0]=parts[0].slice(0,-1)}}else{if(flagAlternative&&argText.indexOf(\".\")==-1)parts[0]+=\".\";while(precision>effectivePrecision++)parts[0]+=\"0\"}argText=parts[0]+(parts.length>1?\"e\"+parts[1]:\"\");if(next==69)argText=argText.toUpperCase();if(currArg>=0){if(flagAlwaysSigned){argText=\"+\"+argText}else if(flagPadSign){argText=\" \"+argText}}}while(argText.length>0])}}else{ret=ret.concat(intArrayFromString(\"(null)\".substr(0,argLength),true))}if(flagLeftAlign){while(argLength0){ret.push(32)}if(!flagLeftAlign)ret.push(getNextArg(\"i8\"));break}case\"n\":{var ptr=getNextArg(\"i32*\");HEAP32[ptr>>2]=ret.length;break}case\"%\":{ret.push(curr);break}default:{for(var i=startTextIndex;i>0])}}}textIndex+=2}else{ret.push(curr);textIndex+=1}}return ret}function traverseStack(args){if(!args||!args.callee||!args.callee.name){return[null,\"\",\"\"]}var funstr=args.callee.toString();var funcname=args.callee.name;var str=\"(\";var first=true;for(var i in args){var a=args[i];if(!first){str+=\", \"}first=false;if(typeof a==\"number\"||typeof a==\"string\"){str+=a}else{str+=\"(\"+typeof a+\")\"}}str+=\")\";var caller=args.callee.caller;args=caller?caller.arguments:[];if(first)str=\"\";return[args,funcname,str]}function _emscripten_get_callstack_js(flags){var callstack=jsStackTrace();var iThisFunc=callstack.lastIndexOf(\"_emscripten_log\");var iThisFunc2=callstack.lastIndexOf(\"_emscripten_get_callstack\");var iNextLine=callstack.indexOf(\"\\n\",Math.max(iThisFunc,iThisFunc2))+1;callstack=callstack.slice(iNextLine);if(flags&32){warnOnce(\"EM_LOG_DEMANGLE is deprecated; ignoring\")}if(flags&8&&typeof emscripten_source_map==\"undefined\"){warnOnce('Source map information is not available, emscripten_log with EM_LOG_C_STACK will be ignored. Build with \"--pre-js $EMSCRIPTEN/src/emscripten-source-map.min.js\" linker flag to add source map loading to code.');flags^=8;flags|=16}var stack_args=null;if(flags&128){stack_args=traverseStack(arguments);while(stack_args[1].includes(\"_emscripten_\"))stack_args=traverseStack(stack_args[0])}var lines=callstack.split(\"\\n\");callstack=\"\";var newFirefoxRe=new RegExp(\"\\\\s*(.*?)@(.*?):([0-9]+):([0-9]+)\");var firefoxRe=new RegExp(\"\\\\s*(.*?)@(.*):(.*)(:(.*))?\");var chromeRe=new RegExp(\"\\\\s*at (.*?) \\\\((.*):(.*):(.*)\\\\)\");for(var l in lines){var line=lines[l];var symbolName=\"\";var file=\"\";var lineno=0;var column=0;var parts=chromeRe.exec(line);if(parts&&parts.length==5){symbolName=parts[1];file=parts[2];lineno=parts[3];column=parts[4]}else{parts=newFirefoxRe.exec(line);if(!parts)parts=firefoxRe.exec(line);if(parts&&parts.length>=4){symbolName=parts[1];file=parts[2];lineno=parts[3];column=parts[4]|0}else{callstack+=line+\"\\n\";continue}}var haveSourceMap=false;if(flags&8){var orig=emscripten_source_map.originalPositionFor({line:lineno,column:column});haveSourceMap=orig&&orig.source;if(haveSourceMap){if(flags&64){orig.source=orig.source.substring(orig.source.replace(/\\\\/g,\"/\").lastIndexOf(\"/\")+1)}callstack+=\" at \"+symbolName+\" (\"+orig.source+\":\"+orig.line+\":\"+orig.column+\")\\n\"}}if(flags&16||!haveSourceMap){if(flags&64){file=file.substring(file.replace(/\\\\/g,\"/\").lastIndexOf(\"/\")+1)}callstack+=(haveSourceMap?\" = \"+symbolName:\" at \"+symbolName)+\" (\"+file+\":\"+lineno+\":\"+column+\")\\n\"}if(flags&128&&stack_args[0]){if(stack_args[1]==symbolName&&stack_args[2].length>0){callstack=callstack.replace(/\\s+$/,\"\");callstack+=\" with values: \"+stack_args[1]+stack_args[2]+\"\\n\"}stack_args=traverseStack(stack_args[0])}}callstack=callstack.replace(/\\s+$/,\"\");return callstack}function _emscripten_log_js(flags,str){if(flags&24){str=str.replace(/\\s+$/,\"\");str+=(str.length>0?\"\\n\":\"\")+_emscripten_get_callstack_js(flags)}if(flags&1){if(flags&4){console.error(str)}else if(flags&2){console.warn(str)}else if(flags&512){console.info(str)}else if(flags&256){console.debug(str)}else{console.log(str)}}else if(flags&6){err(str)}else{out(str)}}function _emscripten_log(flags,format,varargs){var result=formatString(format,varargs);var str=UTF8ArrayToString(result,0);_emscripten_log_js(flags,str)}function _emscripten_get_heap_max(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){err(\"emscripten_realloc_buffer: Attempted to grow heap from \"+buffer.byteLength+\" bytes to \"+size+\" bytes, but got error: \"+e)}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;assert(requestedSize>oldSize);var maxHeapSize=_emscripten_get_heap_max();if(requestedSize>maxHeapSize){err(\"Cannot enlarge memory, asked to go up to \"+requestedSize+\" bytes, but the limit is \"+maxHeapSize+\" bytes!\");return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}err(\"Failed to grow the heap from \"+oldSize+\" bytes to \"+newSize+\" bytes, not enough memory!\");return false}var ENV={};function getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":lang,\"_\":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+\"=\"+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS==\"undefined\"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==\"undefined\"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _setTempRet0(val){setTempRet0(val)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();ERRNO_CODES={\"EPERM\":63,\"ENOENT\":44,\"ESRCH\":71,\"EINTR\":27,\"EIO\":29,\"ENXIO\":60,\"E2BIG\":1,\"ENOEXEC\":45,\"EBADF\":8,\"ECHILD\":12,\"EAGAIN\":6,\"EWOULDBLOCK\":6,\"ENOMEM\":48,\"EACCES\":2,\"EFAULT\":21,\"ENOTBLK\":105,\"EBUSY\":10,\"EEXIST\":20,\"EXDEV\":75,\"ENODEV\":43,\"ENOTDIR\":54,\"EISDIR\":31,\"EINVAL\":28,\"ENFILE\":41,\"EMFILE\":33,\"ENOTTY\":59,\"ETXTBSY\":74,\"EFBIG\":22,\"ENOSPC\":51,\"ESPIPE\":70,\"EROFS\":69,\"EMLINK\":34,\"EPIPE\":64,\"EDOM\":18,\"ERANGE\":68,\"ENOMSG\":49,\"EIDRM\":24,\"ECHRNG\":106,\"EL2NSYNC\":156,\"EL3HLT\":107,\"EL3RST\":108,\"ELNRNG\":109,\"EUNATCH\":110,\"ENOCSI\":111,\"EL2HLT\":112,\"EDEADLK\":16,\"ENOLCK\":46,\"EBADE\":113,\"EBADR\":114,\"EXFULL\":115,\"ENOANO\":104,\"EBADRQC\":103,\"EBADSLT\":102,\"EDEADLOCK\":16,\"EBFONT\":101,\"ENOSTR\":100,\"ENODATA\":116,\"ETIME\":117,\"ENOSR\":118,\"ENONET\":119,\"ENOPKG\":120,\"EREMOTE\":121,\"ENOLINK\":47,\"EADV\":122,\"ESRMNT\":123,\"ECOMM\":124,\"EPROTO\":65,\"EMULTIHOP\":36,\"EDOTDOT\":125,\"EBADMSG\":9,\"ENOTUNIQ\":126,\"EBADFD\":127,\"EREMCHG\":128,\"ELIBACC\":129,\"ELIBBAD\":130,\"ELIBSCN\":131,\"ELIBMAX\":132,\"ELIBEXEC\":133,\"ENOSYS\":52,\"ENOTEMPTY\":55,\"ENAMETOOLONG\":37,\"ELOOP\":32,\"EOPNOTSUPP\":138,\"EPFNOSUPPORT\":139,\"ECONNRESET\":15,\"ENOBUFS\":42,\"EAFNOSUPPORT\":5,\"EPROTOTYPE\":67,\"ENOTSOCK\":57,\"ENOPROTOOPT\":50,\"ESHUTDOWN\":140,\"ECONNREFUSED\":14,\"EADDRINUSE\":3,\"ECONNABORTED\":13,\"ENETUNREACH\":40,\"ENETDOWN\":38,\"ETIMEDOUT\":73,\"EHOSTDOWN\":142,\"EHOSTUNREACH\":23,\"EINPROGRESS\":26,\"EALREADY\":7,\"EDESTADDRREQ\":17,\"EMSGSIZE\":35,\"EPROTONOSUPPORT\":66,\"ESOCKTNOSUPPORT\":137,\"EADDRNOTAVAIL\":4,\"ENETRESET\":39,\"EISCONN\":30,\"ENOTCONN\":53,\"ETOOMANYREFS\":141,\"EUSERS\":136,\"EDQUOT\":19,\"ESTALE\":72,\"ENOTSUP\":138,\"ENOMEDIUM\":148,\"EILSEQ\":25,\"EOVERFLOW\":61,\"ECANCELED\":11,\"ENOTRECOVERABLE\":56,\"EOWNERDEAD\":62,\"ESTRPIPE\":135};embind_init_charCodes();BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");init_emval();var ASSERTIONS=true;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function checkIncomingModuleAPI(){ignoredModuleProp(\"fetchSettings\")}var asmLibraryArg={\"__syscall_fcntl64\":___syscall_fcntl64,\"__syscall_openat\":___syscall_openat,\"_embind_register_bigint\":__embind_register_bigint,\"_embind_register_bool\":__embind_register_bool,\"_embind_register_class\":__embind_register_class,\"_embind_register_class_constructor\":__embind_register_class_constructor,\"_embind_register_class_function\":__embind_register_class_function,\"_embind_register_class_property\":__embind_register_class_property,\"_embind_register_emval\":__embind_register_emval,\"_embind_register_float\":__embind_register_float,\"_embind_register_integer\":__embind_register_integer,\"_embind_register_memory_view\":__embind_register_memory_view,\"_embind_register_std_string\":__embind_register_std_string,\"_embind_register_std_wstring\":__embind_register_std_wstring,\"_embind_register_void\":__embind_register_void,\"_emscripten_date_now\":__emscripten_date_now,\"_emval_as\":__emval_as,\"_emval_call_void_method\":__emval_call_void_method,\"_emval_decref\":__emval_decref,\"_emval_get_method_caller\":__emval_get_method_caller,\"_emval_incref\":__emval_incref,\"_emval_run_destructors\":__emval_run_destructors,\"_emval_take_value\":__emval_take_value,\"_gmtime_js\":__gmtime_js,\"_localtime_js\":__localtime_js,\"_mktime_js\":__mktime_js,\"_tzset_js\":__tzset_js,\"abort\":_abort,\"emscripten_log\":_emscripten_log,\"emscripten_resize_heap\":_emscripten_resize_heap,\"environ_get\":_environ_get,\"environ_sizes_get\":_environ_sizes_get,\"fd_close\":_fd_close,\"fd_fdstat_get\":_fd_fdstat_get,\"fd_read\":_fd_read,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"setTempRet0\":_setTempRet0};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=createExportWrapper(\"__wasm_call_ctors\");var _free=Module[\"_free\"]=createExportWrapper(\"free\");var _malloc=Module[\"_malloc\"]=createExportWrapper(\"malloc\");var _strlen=Module[\"_strlen\"]=createExportWrapper(\"strlen\");var ___errno_location=Module[\"___errno_location\"]=createExportWrapper(\"__errno_location\");var ___getTypeName=Module[\"___getTypeName\"]=createExportWrapper(\"__getTypeName\");var ___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=createExportWrapper(\"__embind_register_native_and_builtin_types\");var ___stdio_exit=Module[\"___stdio_exit\"]=createExportWrapper(\"__stdio_exit\");var _emscripten_builtin_memalign=Module[\"_emscripten_builtin_memalign\"]=createExportWrapper(\"emscripten_builtin_memalign\");var _emscripten_stack_init=Module[\"_emscripten_stack_init\"]=function(){return(_emscripten_stack_init=Module[\"_emscripten_stack_init\"]=Module[\"asm\"][\"emscripten_stack_init\"]).apply(null,arguments)};var _emscripten_stack_get_free=Module[\"_emscripten_stack_get_free\"]=function(){return(_emscripten_stack_get_free=Module[\"_emscripten_stack_get_free\"]=Module[\"asm\"][\"emscripten_stack_get_free\"]).apply(null,arguments)};var _emscripten_stack_get_base=Module[\"_emscripten_stack_get_base\"]=function(){return(_emscripten_stack_get_base=Module[\"_emscripten_stack_get_base\"]=Module[\"asm\"][\"emscripten_stack_get_base\"]).apply(null,arguments)};var _emscripten_stack_get_end=Module[\"_emscripten_stack_get_end\"]=function(){return(_emscripten_stack_get_end=Module[\"_emscripten_stack_get_end\"]=Module[\"asm\"][\"emscripten_stack_get_end\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=createExportWrapper(\"stackSave\");var stackRestore=Module[\"stackRestore\"]=createExportWrapper(\"stackRestore\");var stackAlloc=Module[\"stackAlloc\"]=createExportWrapper(\"stackAlloc\");var dynCall_ijiii=Module[\"dynCall_ijiii\"]=createExportWrapper(\"dynCall_ijiii\");var dynCall_viiijj=Module[\"dynCall_viiijj\"]=createExportWrapper(\"dynCall_viiijj\");var dynCall_jij=Module[\"dynCall_jij\"]=createExportWrapper(\"dynCall_jij\");var dynCall_jii=Module[\"dynCall_jii\"]=createExportWrapper(\"dynCall_jii\");var dynCall_jiji=Module[\"dynCall_jiji\"]=createExportWrapper(\"dynCall_jiji\");var _ff_h264_cabac_tables=Module[\"_ff_h264_cabac_tables\"]=112940;unexportedRuntimeFunction(\"intArrayFromString\",false);unexportedRuntimeFunction(\"intArrayToString\",false);unexportedRuntimeFunction(\"ccall\",false);unexportedRuntimeFunction(\"cwrap\",false);unexportedRuntimeFunction(\"setValue\",false);unexportedRuntimeFunction(\"getValue\",false);unexportedRuntimeFunction(\"allocate\",false);unexportedRuntimeFunction(\"UTF8ArrayToString\",false);unexportedRuntimeFunction(\"UTF8ToString\",false);unexportedRuntimeFunction(\"stringToUTF8Array\",false);unexportedRuntimeFunction(\"stringToUTF8\",false);unexportedRuntimeFunction(\"lengthBytesUTF8\",false);unexportedRuntimeFunction(\"stackTrace\",false);unexportedRuntimeFunction(\"addOnPreRun\",false);unexportedRuntimeFunction(\"addOnInit\",false);unexportedRuntimeFunction(\"addOnPreMain\",false);unexportedRuntimeFunction(\"addOnExit\",false);unexportedRuntimeFunction(\"addOnPostRun\",false);unexportedRuntimeFunction(\"writeStringToMemory\",false);unexportedRuntimeFunction(\"writeArrayToMemory\",false);unexportedRuntimeFunction(\"writeAsciiToMemory\",false);unexportedRuntimeFunction(\"addRunDependency\",true);unexportedRuntimeFunction(\"removeRunDependency\",true);unexportedRuntimeFunction(\"FS_createFolder\",false);unexportedRuntimeFunction(\"FS_createPath\",true);unexportedRuntimeFunction(\"FS_createDataFile\",true);unexportedRuntimeFunction(\"FS_createPreloadedFile\",true);unexportedRuntimeFunction(\"FS_createLazyFile\",true);unexportedRuntimeFunction(\"FS_createLink\",false);unexportedRuntimeFunction(\"FS_createDevice\",true);unexportedRuntimeFunction(\"FS_unlink\",true);unexportedRuntimeFunction(\"getLEB\",false);unexportedRuntimeFunction(\"getFunctionTables\",false);unexportedRuntimeFunction(\"alignFunctionTables\",false);unexportedRuntimeFunction(\"registerFunctions\",false);unexportedRuntimeFunction(\"addFunction\",false);unexportedRuntimeFunction(\"removeFunction\",false);unexportedRuntimeFunction(\"prettyPrint\",false);unexportedRuntimeFunction(\"dynCall\",false);unexportedRuntimeFunction(\"getCompilerSetting\",false);unexportedRuntimeFunction(\"print\",false);unexportedRuntimeFunction(\"printErr\",false);unexportedRuntimeFunction(\"getTempRet0\",false);unexportedRuntimeFunction(\"setTempRet0\",false);unexportedRuntimeFunction(\"callMain\",false);unexportedRuntimeFunction(\"abort\",false);unexportedRuntimeFunction(\"keepRuntimeAlive\",false);unexportedRuntimeFunction(\"ptrToString\",false);unexportedRuntimeFunction(\"zeroMemory\",false);unexportedRuntimeFunction(\"stringToNewUTF8\",false);unexportedRuntimeFunction(\"emscripten_realloc_buffer\",false);unexportedRuntimeFunction(\"ENV\",false);unexportedRuntimeFunction(\"ERRNO_CODES\",false);unexportedRuntimeFunction(\"ERRNO_MESSAGES\",false);unexportedRuntimeFunction(\"setErrNo\",false);unexportedRuntimeFunction(\"inetPton4\",false);unexportedRuntimeFunction(\"inetNtop4\",false);unexportedRuntimeFunction(\"inetPton6\",false);unexportedRuntimeFunction(\"inetNtop6\",false);unexportedRuntimeFunction(\"readSockaddr\",false);unexportedRuntimeFunction(\"writeSockaddr\",false);unexportedRuntimeFunction(\"DNS\",false);unexportedRuntimeFunction(\"getHostByName\",false);unexportedRuntimeFunction(\"Protocols\",false);unexportedRuntimeFunction(\"Sockets\",false);unexportedRuntimeFunction(\"getRandomDevice\",false);unexportedRuntimeFunction(\"traverseStack\",false);unexportedRuntimeFunction(\"UNWIND_CACHE\",false);unexportedRuntimeFunction(\"convertPCtoSourceLocation\",false);unexportedRuntimeFunction(\"readAsmConstArgsArray\",false);unexportedRuntimeFunction(\"readAsmConstArgs\",false);unexportedRuntimeFunction(\"mainThreadEM_ASM\",false);unexportedRuntimeFunction(\"jstoi_q\",false);unexportedRuntimeFunction(\"jstoi_s\",false);unexportedRuntimeFunction(\"getExecutableName\",false);unexportedRuntimeFunction(\"listenOnce\",false);unexportedRuntimeFunction(\"autoResumeAudioContext\",false);unexportedRuntimeFunction(\"dynCallLegacy\",false);unexportedRuntimeFunction(\"getDynCaller\",false);unexportedRuntimeFunction(\"dynCall\",false);unexportedRuntimeFunction(\"setWasmTableEntry\",false);unexportedRuntimeFunction(\"getWasmTableEntry\",false);unexportedRuntimeFunction(\"handleException\",false);unexportedRuntimeFunction(\"runtimeKeepalivePush\",false);unexportedRuntimeFunction(\"runtimeKeepalivePop\",false);unexportedRuntimeFunction(\"callUserCallback\",false);unexportedRuntimeFunction(\"maybeExit\",false);unexportedRuntimeFunction(\"safeSetTimeout\",false);unexportedRuntimeFunction(\"asmjsMangle\",false);unexportedRuntimeFunction(\"asyncLoad\",false);unexportedRuntimeFunction(\"alignMemory\",false);unexportedRuntimeFunction(\"mmapAlloc\",false);unexportedRuntimeFunction(\"reallyNegative\",false);unexportedRuntimeFunction(\"unSign\",false);unexportedRuntimeFunction(\"reSign\",false);unexportedRuntimeFunction(\"formatString\",false);unexportedRuntimeFunction(\"PATH\",false);unexportedRuntimeFunction(\"PATH_FS\",false);unexportedRuntimeFunction(\"SYSCALLS\",false);unexportedRuntimeFunction(\"getSocketFromFD\",false);unexportedRuntimeFunction(\"getSocketAddress\",false);unexportedRuntimeFunction(\"JSEvents\",false);unexportedRuntimeFunction(\"registerKeyEventCallback\",false);unexportedRuntimeFunction(\"specialHTMLTargets\",false);unexportedRuntimeFunction(\"maybeCStringToJsString\",false);unexportedRuntimeFunction(\"findEventTarget\",false);unexportedRuntimeFunction(\"findCanvasEventTarget\",false);unexportedRuntimeFunction(\"getBoundingClientRect\",false);unexportedRuntimeFunction(\"fillMouseEventData\",false);unexportedRuntimeFunction(\"registerMouseEventCallback\",false);unexportedRuntimeFunction(\"registerWheelEventCallback\",false);unexportedRuntimeFunction(\"registerUiEventCallback\",false);unexportedRuntimeFunction(\"registerFocusEventCallback\",false);unexportedRuntimeFunction(\"fillDeviceOrientationEventData\",false);unexportedRuntimeFunction(\"registerDeviceOrientationEventCallback\",false);unexportedRuntimeFunction(\"fillDeviceMotionEventData\",false);unexportedRuntimeFunction(\"registerDeviceMotionEventCallback\",false);unexportedRuntimeFunction(\"screenOrientation\",false);unexportedRuntimeFunction(\"fillOrientationChangeEventData\",false);unexportedRuntimeFunction(\"registerOrientationChangeEventCallback\",false);unexportedRuntimeFunction(\"fillFullscreenChangeEventData\",false);unexportedRuntimeFunction(\"registerFullscreenChangeEventCallback\",false);unexportedRuntimeFunction(\"registerRestoreOldStyle\",false);unexportedRuntimeFunction(\"hideEverythingExceptGivenElement\",false);unexportedRuntimeFunction(\"restoreHiddenElements\",false);unexportedRuntimeFunction(\"setLetterbox\",false);unexportedRuntimeFunction(\"currentFullscreenStrategy\",false);unexportedRuntimeFunction(\"restoreOldWindowedStyle\",false);unexportedRuntimeFunction(\"softFullscreenResizeWebGLRenderTarget\",false);unexportedRuntimeFunction(\"doRequestFullscreen\",false);unexportedRuntimeFunction(\"fillPointerlockChangeEventData\",false);unexportedRuntimeFunction(\"registerPointerlockChangeEventCallback\",false);unexportedRuntimeFunction(\"registerPointerlockErrorEventCallback\",false);unexportedRuntimeFunction(\"requestPointerLock\",false);unexportedRuntimeFunction(\"fillVisibilityChangeEventData\",false);unexportedRuntimeFunction(\"registerVisibilityChangeEventCallback\",false);unexportedRuntimeFunction(\"registerTouchEventCallback\",false);unexportedRuntimeFunction(\"fillGamepadEventData\",false);unexportedRuntimeFunction(\"registerGamepadEventCallback\",false);unexportedRuntimeFunction(\"registerBeforeUnloadEventCallback\",false);unexportedRuntimeFunction(\"fillBatteryEventData\",false);unexportedRuntimeFunction(\"battery\",false);unexportedRuntimeFunction(\"registerBatteryEventCallback\",false);unexportedRuntimeFunction(\"setCanvasElementSize\",false);unexportedRuntimeFunction(\"getCanvasElementSize\",false);unexportedRuntimeFunction(\"demangle\",false);unexportedRuntimeFunction(\"demangleAll\",false);unexportedRuntimeFunction(\"jsStackTrace\",false);unexportedRuntimeFunction(\"stackTrace\",false);unexportedRuntimeFunction(\"getEnvStrings\",false);unexportedRuntimeFunction(\"checkWasiClock\",false);unexportedRuntimeFunction(\"writeI53ToI64\",false);unexportedRuntimeFunction(\"writeI53ToI64Clamped\",false);unexportedRuntimeFunction(\"writeI53ToI64Signaling\",false);unexportedRuntimeFunction(\"writeI53ToU64Clamped\",false);unexportedRuntimeFunction(\"writeI53ToU64Signaling\",false);unexportedRuntimeFunction(\"readI53FromI64\",false);unexportedRuntimeFunction(\"readI53FromU64\",false);unexportedRuntimeFunction(\"convertI32PairToI53\",false);unexportedRuntimeFunction(\"convertU32PairToI53\",false);unexportedRuntimeFunction(\"dlopenMissingError\",false);unexportedRuntimeFunction(\"setImmediateWrapped\",false);unexportedRuntimeFunction(\"clearImmediateWrapped\",false);unexportedRuntimeFunction(\"polyfillSetImmediate\",false);unexportedRuntimeFunction(\"uncaughtExceptionCount\",false);unexportedRuntimeFunction(\"exceptionLast\",false);unexportedRuntimeFunction(\"exceptionCaught\",false);unexportedRuntimeFunction(\"ExceptionInfo\",false);unexportedRuntimeFunction(\"exception_addRef\",false);unexportedRuntimeFunction(\"exception_decRef\",false);unexportedRuntimeFunction(\"Browser\",false);unexportedRuntimeFunction(\"setMainLoop\",false);unexportedRuntimeFunction(\"wget\",false);unexportedRuntimeFunction(\"FS\",false);unexportedRuntimeFunction(\"MEMFS\",false);unexportedRuntimeFunction(\"TTY\",false);unexportedRuntimeFunction(\"PIPEFS\",false);unexportedRuntimeFunction(\"SOCKFS\",false);unexportedRuntimeFunction(\"_setNetworkCallback\",false);unexportedRuntimeFunction(\"tempFixedLengthArray\",false);unexportedRuntimeFunction(\"miniTempWebGLFloatBuffers\",false);unexportedRuntimeFunction(\"heapObjectForWebGLType\",false);unexportedRuntimeFunction(\"heapAccessShiftForWebGLHeap\",false);unexportedRuntimeFunction(\"GL\",false);unexportedRuntimeFunction(\"emscriptenWebGLGet\",false);unexportedRuntimeFunction(\"computeUnpackAlignedImageSize\",false);unexportedRuntimeFunction(\"emscriptenWebGLGetTexPixelData\",false);unexportedRuntimeFunction(\"emscriptenWebGLGetUniform\",false);unexportedRuntimeFunction(\"webglGetUniformLocation\",false);unexportedRuntimeFunction(\"webglPrepareUniformLocationsBeforeFirstUse\",false);unexportedRuntimeFunction(\"webglGetLeftBracePos\",false);unexportedRuntimeFunction(\"emscriptenWebGLGetVertexAttrib\",false);unexportedRuntimeFunction(\"writeGLArray\",false);unexportedRuntimeFunction(\"AL\",false);unexportedRuntimeFunction(\"SDL_unicode\",false);unexportedRuntimeFunction(\"SDL_ttfContext\",false);unexportedRuntimeFunction(\"SDL_audio\",false);unexportedRuntimeFunction(\"SDL\",false);unexportedRuntimeFunction(\"SDL_gfx\",false);unexportedRuntimeFunction(\"GLUT\",false);unexportedRuntimeFunction(\"EGL\",false);unexportedRuntimeFunction(\"GLFW_Window\",false);unexportedRuntimeFunction(\"GLFW\",false);unexportedRuntimeFunction(\"GLEW\",false);unexportedRuntimeFunction(\"IDBStore\",false);unexportedRuntimeFunction(\"runAndAbortIfError\",false);unexportedRuntimeFunction(\"InternalError\",false);unexportedRuntimeFunction(\"BindingError\",false);unexportedRuntimeFunction(\"UnboundTypeError\",false);unexportedRuntimeFunction(\"PureVirtualError\",false);unexportedRuntimeFunction(\"init_embind\",false);unexportedRuntimeFunction(\"throwInternalError\",false);unexportedRuntimeFunction(\"throwBindingError\",false);unexportedRuntimeFunction(\"throwUnboundTypeError\",false);unexportedRuntimeFunction(\"ensureOverloadTable\",false);unexportedRuntimeFunction(\"exposePublicSymbol\",false);unexportedRuntimeFunction(\"replacePublicSymbol\",false);unexportedRuntimeFunction(\"extendError\",false);unexportedRuntimeFunction(\"createNamedFunction\",false);unexportedRuntimeFunction(\"registeredInstances\",false);unexportedRuntimeFunction(\"getBasestPointer\",false);unexportedRuntimeFunction(\"registerInheritedInstance\",false);unexportedRuntimeFunction(\"unregisterInheritedInstance\",false);unexportedRuntimeFunction(\"getInheritedInstance\",false);unexportedRuntimeFunction(\"getInheritedInstanceCount\",false);unexportedRuntimeFunction(\"getLiveInheritedInstances\",false);unexportedRuntimeFunction(\"registeredTypes\",false);unexportedRuntimeFunction(\"awaitingDependencies\",false);unexportedRuntimeFunction(\"typeDependencies\",false);unexportedRuntimeFunction(\"registeredPointers\",false);unexportedRuntimeFunction(\"registerType\",false);unexportedRuntimeFunction(\"whenDependentTypesAreResolved\",false);unexportedRuntimeFunction(\"embind_charCodes\",false);unexportedRuntimeFunction(\"embind_init_charCodes\",false);unexportedRuntimeFunction(\"readLatin1String\",false);unexportedRuntimeFunction(\"getTypeName\",false);unexportedRuntimeFunction(\"heap32VectorToArray\",false);unexportedRuntimeFunction(\"requireRegisteredType\",false);unexportedRuntimeFunction(\"getShiftFromSize\",false);unexportedRuntimeFunction(\"integerReadValueFromPointer\",false);unexportedRuntimeFunction(\"enumReadValueFromPointer\",false);unexportedRuntimeFunction(\"floatReadValueFromPointer\",false);unexportedRuntimeFunction(\"simpleReadValueFromPointer\",false);unexportedRuntimeFunction(\"runDestructors\",false);unexportedRuntimeFunction(\"new_\",false);unexportedRuntimeFunction(\"craftInvokerFunction\",false);unexportedRuntimeFunction(\"embind__requireFunction\",false);unexportedRuntimeFunction(\"tupleRegistrations\",false);unexportedRuntimeFunction(\"structRegistrations\",false);unexportedRuntimeFunction(\"genericPointerToWireType\",false);unexportedRuntimeFunction(\"constNoSmartPtrRawPointerToWireType\",false);unexportedRuntimeFunction(\"nonConstNoSmartPtrRawPointerToWireType\",false);unexportedRuntimeFunction(\"init_RegisteredPointer\",false);unexportedRuntimeFunction(\"RegisteredPointer\",false);unexportedRuntimeFunction(\"RegisteredPointer_getPointee\",false);unexportedRuntimeFunction(\"RegisteredPointer_destructor\",false);unexportedRuntimeFunction(\"RegisteredPointer_deleteObject\",false);unexportedRuntimeFunction(\"RegisteredPointer_fromWireType\",false);unexportedRuntimeFunction(\"runDestructor\",false);unexportedRuntimeFunction(\"releaseClassHandle\",false);unexportedRuntimeFunction(\"finalizationRegistry\",false);unexportedRuntimeFunction(\"detachFinalizer_deps\",false);unexportedRuntimeFunction(\"detachFinalizer\",false);unexportedRuntimeFunction(\"attachFinalizer\",false);unexportedRuntimeFunction(\"makeClassHandle\",false);unexportedRuntimeFunction(\"init_ClassHandle\",false);unexportedRuntimeFunction(\"ClassHandle\",false);unexportedRuntimeFunction(\"ClassHandle_isAliasOf\",false);unexportedRuntimeFunction(\"throwInstanceAlreadyDeleted\",false);unexportedRuntimeFunction(\"ClassHandle_clone\",false);unexportedRuntimeFunction(\"ClassHandle_delete\",false);unexportedRuntimeFunction(\"deletionQueue\",false);unexportedRuntimeFunction(\"ClassHandle_isDeleted\",false);unexportedRuntimeFunction(\"ClassHandle_deleteLater\",false);unexportedRuntimeFunction(\"flushPendingDeletes\",false);unexportedRuntimeFunction(\"delayFunction\",false);unexportedRuntimeFunction(\"setDelayFunction\",false);unexportedRuntimeFunction(\"RegisteredClass\",false);unexportedRuntimeFunction(\"shallowCopyInternalPointer\",false);unexportedRuntimeFunction(\"downcastPointer\",false);unexportedRuntimeFunction(\"upcastPointer\",false);unexportedRuntimeFunction(\"validateThis\",false);unexportedRuntimeFunction(\"char_0\",false);unexportedRuntimeFunction(\"char_9\",false);unexportedRuntimeFunction(\"makeLegalFunctionName\",false);unexportedRuntimeFunction(\"emval_handle_array\",false);unexportedRuntimeFunction(\"emval_free_list\",false);unexportedRuntimeFunction(\"emval_symbols\",false);unexportedRuntimeFunction(\"init_emval\",false);unexportedRuntimeFunction(\"count_emval_handles\",false);unexportedRuntimeFunction(\"get_first_emval\",false);unexportedRuntimeFunction(\"getStringOrSymbol\",false);unexportedRuntimeFunction(\"Emval\",false);unexportedRuntimeFunction(\"emval_newers\",false);unexportedRuntimeFunction(\"craftEmvalAllocator\",false);unexportedRuntimeFunction(\"emval_get_global\",false);unexportedRuntimeFunction(\"emval_methodCallers\",false);unexportedRuntimeFunction(\"emval_registeredMethods\",false);unexportedRuntimeFunction(\"warnOnce\",false);unexportedRuntimeFunction(\"stackSave\",false);unexportedRuntimeFunction(\"stackRestore\",false);unexportedRuntimeFunction(\"stackAlloc\",false);unexportedRuntimeFunction(\"AsciiToString\",false);unexportedRuntimeFunction(\"stringToAscii\",false);unexportedRuntimeFunction(\"UTF16ToString\",false);unexportedRuntimeFunction(\"stringToUTF16\",false);unexportedRuntimeFunction(\"lengthBytesUTF16\",false);unexportedRuntimeFunction(\"UTF32ToString\",false);unexportedRuntimeFunction(\"stringToUTF32\",false);unexportedRuntimeFunction(\"lengthBytesUTF32\",false);unexportedRuntimeFunction(\"allocateUTF8\",false);unexportedRuntimeFunction(\"allocateUTF8OnStack\",false);Module[\"writeStackCookie\"]=writeStackCookie;Module[\"checkStackCookie\"]=checkStackCookie;unexportedRuntimeSymbol(\"ALLOC_NORMAL\",false);unexportedRuntimeSymbol(\"ALLOC_STACK\",false);var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function stackCheckInit(){_emscripten_stack_init();writeStackCookie()}function run(args){args=args||arguments_;if(runDependencies>0){return}stackCheckInit();preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();assert(!Module[\"_main\"],'compiled without a main, but one is present. if you added it from JS, use Module[\"onRuntimeInitialized\"]');postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}checkStackCookie()}Module[\"run\"]=run;function checkUnflushedContent(){var oldOut=out;var oldErr=err;var has=false;out=err=(x=>{has=true});try{___stdio_exit();[\"stdout\",\"stderr\"].forEach(function(name){var info=FS.analyzePath(\"/dev/\"+name);if(!info)return;var stream=info.object;var rdev=stream.rdev;var tty=TTY.ttys[rdev];if(tty&&tty.output&&tty.output.length){has=true}})}catch(e){}out=oldOut;err=oldErr;if(has){warnOnce(\"stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.\")}}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module[\"onExit\"])Module[\"onExit\"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();module.exports=Module;\n","export default (gl, openWebglAlignment) => {\n var vertexShaderScript = [\n 'attribute vec4 vertexPos;',\n 'attribute vec4 texturePos;',\n 'varying vec2 textureCoord;',\n\n 'void main()',\n '{',\n 'gl_Position = vertexPos;',\n 'textureCoord = texturePos.xy;',\n '}'\n ].join('\\n');\n\n var fragmentShaderScript = [\n 'precision highp float;',\n 'varying highp vec2 textureCoord;',\n 'uniform sampler2D ySampler;',\n 'uniform sampler2D uSampler;',\n 'uniform sampler2D vSampler;',\n 'const mat4 YUV2RGB = mat4',\n '(',\n '1.1643828125, 0, 1.59602734375, -.87078515625,',\n '1.1643828125, -.39176171875, -.81296875, .52959375,',\n '1.1643828125, 2.017234375, 0, -1.081390625,',\n '0, 0, 0, 1',\n ');',\n\n 'void main(void) {',\n 'highp float y = texture2D(ySampler, textureCoord).r;',\n 'highp float u = texture2D(uSampler, textureCoord).r;',\n 'highp float v = texture2D(vSampler, textureCoord).r;',\n 'gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;',\n '}'\n ].join('\\n');\n\n if (openWebglAlignment) {\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n }\n var vertexShader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(vertexShader, vertexShaderScript);\n gl.compileShader(vertexShader);\n if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {\n console.log('Vertex shader failed to compile: ' + gl.getShaderInfoLog(vertexShader));\n }\n\n var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n gl.shaderSource(fragmentShader, fragmentShaderScript);\n gl.compileShader(fragmentShader);\n if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n console.log('Fragment shader failed to compile: ' + gl.getShaderInfoLog(fragmentShader));\n }\n\n var program = gl.createProgram();\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n console.log('Program failed to compile: ' + gl.getProgramInfoLog(program));\n }\n\n gl.useProgram(program);\n\n // initBuffers\n var vertexPosBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, vertexPosBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1, 1, -1, 1, 1, -1, -1, -1]), gl.STATIC_DRAW);\n\n var vertexPosRef = gl.getAttribLocation(program, 'vertexPos');\n gl.enableVertexAttribArray(vertexPosRef);\n gl.vertexAttribPointer(vertexPosRef, 2, gl.FLOAT, false, 0, 0);\n\n var texturePosBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texturePosBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1, 0, 0, 0, 1, 1, 0, 1]), gl.STATIC_DRAW);\n\n var texturePosRef = gl.getAttribLocation(program, 'texturePos');\n gl.enableVertexAttribArray(texturePosRef);\n gl.vertexAttribPointer(texturePosRef, 2, gl.FLOAT, false, 0, 0);\n\n function _initTexture(name, index) {\n var textureRef = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, textureRef);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.uniform1i(gl.getUniformLocation(program, name), index);\n return textureRef;\n }\n\n var yTextureRef = _initTexture('ySampler', 0);\n var uTextureRef = _initTexture('uSampler', 1);\n var vTextureRef = _initTexture('vSampler', 2);\n\n return {\n render: function (w, h, y, u, v) {\n gl.viewport(0, 0, w, h);\n gl.activeTexture(gl.TEXTURE0);\n gl.bindTexture(gl.TEXTURE_2D, yTextureRef);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, w, h, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, y);\n gl.activeTexture(gl.TEXTURE1);\n gl.bindTexture(gl.TEXTURE_2D, uTextureRef);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, w / 2, h / 2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, u);\n gl.activeTexture(gl.TEXTURE2);\n gl.bindTexture(gl.TEXTURE_2D, vTextureRef);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, w / 2, h / 2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, v);\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);\n },\n destroy: function () {\n try {\n gl.deleteProgram(program);\n\n gl.deleteBuffer(vertexPosBuffer)\n gl.deleteBuffer(texturePosBuffer);\n\n gl.deleteTexture(yTextureRef);\n gl.deleteTexture(uTextureRef);\n gl.deleteTexture(vTextureRef);\n } catch (e) {\n // console.error(e);\n }\n\n }\n }\n};\n","// 播放协议\nexport const PLAYER_PLAY_PROTOCOL = {\n websocket: 0,\n fetch: 1,\n webrtc: 2,\n}\n\nexport const DEMUX_TYPE = {\n flv: 'flv',\n m7s: 'm7s'\n}\n\nexport const FILE_SUFFIX = {\n mp4: 'mp4',\n webm: 'webm'\n};\n\nexport const MEDIA_SOURCE_UPDATE_END_TIMEOUT = 10 * 1000\n\nexport const CONTAINER_DATA_SET_KEY = 'jessibuca'\n\nexport const VERSION = '__VERSION__'\n\n\n// default player options\nexport const DEFAULT_PLAYER_OPTIONS = {\n videoBuffer: 1000, //1000ms 1 second\n videoBufferDelay: 1000,// 1000ms\n isResize: true,\n isFullResize: false, //\n isFlv: false,\n debug: false,\n hotKey: false, // 快捷键\n loadingTimeout: 10, // loading timeout\n heartTimeout: 5, // heart timeout\n timeout: 10, // second\n loadingTimeoutReplay: true, // loading timeout replay. default is true\n heartTimeoutReplay: true,// heart timeout replay.\n loadingTimeoutReplayTimes: 3, // loading timeout replay fail times\n heartTimeoutReplayTimes: 3, // heart timeout replay fail times\n supportDblclickFullscreen: false, // support double click toggle fullscreen\n showBandwidth: false, // show band width\n keepScreenOn: false, //\n isNotMute: false, //\n hasAudio: true, // has audio\n hasVideo: true, // has video\n operateBtns: {\n fullscreen: false,\n screenshot: false,\n play: false,\n audio: false,\n record: false,\n },\n controlAutoHide: false, // control auto hide\n hasControl: false,\n loadingText: '', // loading Text\n background: '',\n decoder: 'decoder.js',\n url: '',// play url\n rotate: 0, //\n // text: '',\n forceNoOffscreen: true, // 默认是不采用\n hiddenAutoPause: false, //\n protocol: PLAYER_PLAY_PROTOCOL.fetch,\n demuxType: DEMUX_TYPE.flv, // demux type\n useWCS: false, //\n wcsUseVideoRender: true,// 默认设置为true\n useMSE: false, //\n useOffscreen: false, //\n autoWasm: true, // 自动降级到 wasm 模式\n wasmDecodeErrorReplay: true, // 解码失败重新播放。\n openWebglAlignment: false,// https://github.com/langhuihui/jessibuca/issues/152\n wasmDecodeAudioSyncVideo: false,// wasm 解码之后音视频同步\n recordType: FILE_SUFFIX.webm,\n useWebFullScreen: false, // use web full screen\n}\n\n\nexport const WORKER_CMD_TYPE = {\n init: 'init',\n initVideo: 'initVideo',\n render: 'render',\n playAudio: 'playAudio',\n initAudio: 'initAudio',\n kBps: 'kBps',\n decode: 'decode',\n audioCode: 'audioCode',\n videoCode: 'videoCode',\n wasmError: 'wasmError'\n}\n\nexport const WASM_ERROR = {\n invalidNalUnitSize: 'Invalid NAL unit size',\n // errorSplittingTheInputIntoNALUnits: 'Error splitting the input into NAL units'\n}\n\nexport const MEDIA_TYPE = {\n audio: 1,\n video: 2\n}\n\nexport const FLV_MEDIA_TYPE = {\n audio: 8,\n video: 9\n}\n\nexport const WORKER_SEND_TYPE = {\n init: 'init',\n decode: 'decode',\n audioDecode: 'audioDecode',\n videoDecode: 'videoDecode',\n close: 'close',\n updateConfig: 'updateConfig'\n}\n\n\n//\nexport const EVENTS = {\n fullscreen: 'fullscreen$2',\n webFullscreen: 'webFullscreen',\n decoderWorkerInit: 'decoderWorkerInit',\n play: 'play',\n playing: 'playing',\n pause: 'pause',\n mute: 'mute',\n load: 'load',\n loading: 'loading',\n videoInfo: 'videoInfo',\n timeUpdate: 'timeUpdate',\n audioInfo: \"audioInfo\",\n log: 'log',\n error: \"error\",\n kBps: 'kBps',\n timeout: 'timeout',\n delayTimeout: 'delayTimeout',\n loadingTimeout: 'loadingTimeout',\n stats: 'stats',\n performance: \"performance\",\n record: 'record',\n recording: 'recording',\n recordingTimestamp: 'recordingTimestamp',\n recordStart: 'recordStart',\n recordEnd: 'recordEnd',\n recordCreateError: 'recordCreateError',\n buffer: 'buffer',\n videoFrame: 'videoFrame',\n start: 'start',\n metadata: 'metadata',\n resize: 'resize',\n streamEnd: 'streamEnd',\n streamSuccess: 'streamSuccess',\n streamMessage: 'streamMessage',\n streamError: 'streamError',\n volumechange: 'volumechange',\n volume: 'volume',\n destroy: 'destroy',\n mseSourceOpen: 'mseSourceOpen',\n mseSourceClose: 'mseSourceClose',\n mseSourceBufferError: 'mseSourceBufferError',\n mseSourceBufferBusy: 'mseSourceBufferBusy',\n mseSourceBufferFull: 'mseSourceBufferFull',\n videoWaiting: 'videoWaiting',\n videoTimeUpdate: 'videoTimeUpdate',\n videoSyncAudio: 'videoSyncAudio',\n playToRenderTimes: 'playToRenderTimes'\n}\n\n\nexport const JESSIBUCA_EVENTS = {\n load: EVENTS.load,\n timeUpdate: EVENTS.timeUpdate,\n videoInfo: EVENTS.videoInfo,\n audioInfo: EVENTS.audioInfo,\n error: EVENTS.error,\n kBps: EVENTS.kBps,\n log: EVENTS.log,\n start: EVENTS.start,\n timeout: EVENTS.timeout,\n loadingTimeout: EVENTS.loadingTimeout,\n delayTimeout: EVENTS.delayTimeout,\n fullscreen: 'fullscreen',\n webFullscreen: EVENTS.webFullscreen,\n play: EVENTS.play,\n pause: EVENTS.pause,\n mute: EVENTS.mute,\n stats: EVENTS.stats,\n volumechange: EVENTS.volumechange,\n performance: EVENTS.performance,\n recordingTimestamp: EVENTS.recordingTimestamp,\n recordStart: EVENTS.recordStart,\n recordEnd: EVENTS.recordEnd,\n playToRenderTimes: EVENTS.playToRenderTimes,\n volume: EVENTS.volume\n}\n\nexport const EVENTS_ERROR = {\n playError: 'playIsNotPauseOrUrlIsNull',\n fetchError: \"fetchError\",\n websocketError: 'websocketError',\n webcodecsH265NotSupport: 'webcodecsH265NotSupport',\n webcodecsConfigureError:'webcodecsConfigureError',\n webcodecsDecodeError: 'webcodecsDecodeError',\n webcodecsWidthOrHeightChange: 'webcodecsWidthOrHeightChange',\n mediaSourceH265NotSupport: 'mediaSourceH265NotSupport',\n mediaSourceFull: EVENTS.mseSourceBufferFull,\n mseSourceBufferError: EVENTS.mseSourceBufferError,\n mediaSourceAppendBufferError: 'mediaSourceAppendBufferError',\n mediaSourceBufferListLarge: 'mediaSourceBufferListLarge',\n mediaSourceAppendBufferEndTimeout: 'mediaSourceAppendBufferEndTimeout',\n wasmDecodeError: 'wasmDecodeError',\n webglAlignmentError: 'webglAlignmentError'\n}\n\n\nexport const WEBSOCKET_STATUS = {\n notConnect: 'notConnect',\n open: 'open',\n close: 'close',\n error: 'error'\n}\n\nexport const BUFFER_STATUS = {\n empty: 'empty',\n buffering: 'buffering',\n full: 'full'\n}\n\n\nexport const SCREENSHOT_TYPE = {\n download: 'download',\n base64: 'base64',\n blob: 'blob'\n}\n\n\nexport const VIDEO_ENC_TYPE = {\n 7: 'H264(AVC)', //\n 12: 'H265(HEVC)' //\n}\n\nexport const VIDEO_ENC_CODE = {\n h264: 7,\n h265: 12\n}\n\n\nexport const AUDIO_ENC_TYPE = {\n 10: 'AAC',\n 7: 'ALAW',\n 8: 'MULAW'\n}\n\nexport const H265_NAL_TYPE = {\n vps: 32,\n sps: 33,\n pps: 34\n}\n\nexport const CONTROL_HEIGHT = 38\n\nexport const SCALE_MODE_TYPE = {\n full: 0, // 视频画面完全填充canvas区域,画面会被拉伸\n auto: 1, // 视频画面做等比缩放后,高或宽对齐canvas区域,画面不被拉伸,但有黑边\n fullAuto: 2 // 视频画面做等比缩放后,完全填充canvas区域,画面不被拉伸,没有黑边,但画面显示不全\n}\n\n\nexport const CANVAS_RENDER_TYPE = {\n webcodecs: 'webcodecs',\n webgl: 'webgl',\n offscreen: 'offscreen'\n}\n\nexport const ENCODED_VIDEO_TYPE = {\n key: 'key',\n delta: 'delta'\n}\n\n\nexport const MP4_CODECS = {\n avc: 'video/mp4; codecs=\"avc1.64002A\"',\n hev: 'video/mp4; codecs=\"hev1.1.6.L123.b0\"',\n}\n\n\nexport const MEDIA_SOURCE_STATE = {\n ended: 'ended',\n open: 'open',\n closed: 'closed'\n}\n\n\n// frag duration\nexport const FRAG_DURATION = Math.ceil(1000 / 25)\n\n\nexport const AUDIO_SYNC_VIDEO_DIFF = 1000;\n\n\nexport const HOT_KEY = {\n esc: 27, //\n arrowUp: 38, //\n arrowDown: 40, //\n}\nexport const WCS_ERROR = {\n keyframeIsRequiredError: 'A key frame is required after configure() or flush()',\n canNotDecodeClosedCodec: \"Cannot call 'decode' on a closed codec\"\n}\n\n\nexport const FETCH_ERROR = {\n abortError1: 'The user aborted a request',\n abortError2: 'AbortError',\n abort: 'AbortError'\n}\n\nexport const FRAME_HEADER_EX = 0x80\n\n\nexport const PACKET_TYPE_EX = {\n PACKET_TYPE_SEQ_START: 0,\n PACKET_TYPE_FRAMES: 1,\n PACKET_TYPE_FRAMESX: 3,\n};\n\n\nexport const FRAME_TYPE_EX = {\n FT_KEY: 0x10,\n FT_INTER: 0x20\n};\n\n\n\n","/*!\n* screenfull\n* v5.1.0 - 2020-12-24\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element, options) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen](options);\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element, options) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element, options);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import {MP4_CODECS, FILE_SUFFIX} from \"../constant\";\nimport screenfull from \"screenfull\";\n\nexport function noop() {\n}\n\n\nexport function supportOffscreen($canvas) {\n return typeof $canvas.transferControlToOffscreen === 'function';\n}\n\n\nexport function supportOffscreenV2() {\n return typeof OffscreenCanvas !== \"undefined\";\n}\n\n\nexport function createContextGL($canvas) {\n let gl = null;\n\n const validContextNames = [\"webgl\", \"experimental-webgl\", \"moz-webgl\", \"webkit-3d\"];\n let nameIndex = 0;\n\n while (!gl && nameIndex < validContextNames.length) {\n const contextName = validContextNames[nameIndex];\n\n try {\n let contextOptions = {preserveDrawingBuffer: true};\n gl = $canvas.getContext(contextName, contextOptions);\n } catch (e) {\n gl = null;\n }\n\n if (!gl || typeof gl.getParameter !== \"function\") {\n gl = null;\n }\n\n ++nameIndex;\n }\n\n\n return gl;\n}\n\n\nexport function audioContextUnlock(context) {\n context.resume();\n const source = context.createBufferSource();\n source.buffer = context.createBuffer(1, 1, 22050);\n source.connect(context.destination);\n if (source.noteOn) {\n source.noteOn(0);\n } else {\n source.start(0);\n }\n}\n\nexport function dataURLToFile(dataURL = '') {\n const arr = dataURL.split(\",\");\n const bstr = atob(arr[1]);\n const type = arr[0].replace(\"data:\", \"\").replace(\";base64\", \"\")\n let n = bstr.length, u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n return new File([u8arr], 'file', {type});\n}\n\nexport function downloadFile(file, fileName) {\n if (file instanceof Blob || file instanceof File) {\n file = new Blob([file]);\n }\n const aLink = document.createElement(\"a\");\n aLink.download = fileName;\n aLink.href = file;\n aLink.click();\n}\n\n\nexport function downloadImg(content, fileName) {\n const aLink = document.createElement(\"a\");\n aLink.download = fileName;\n const href = URL.createObjectURL(content);\n aLink.href = href;\n aLink.click();\n setTimeout(() => {\n URL.revokeObjectURL(href);\n }, isIOS() ? 1000 : 0)\n}\n\nexport function checkFull() {\n let isFull = document.fullscreenElement || window.webkitFullscreenElement || document.msFullscreenElement;\n if (isFull === undefined) isFull = false;\n return !!isFull;\n}\n\nexport function now() {\n return new Date().getTime();\n}\n\nexport const supportedWasm = (() => {\n try {\n if (typeof WebAssembly === \"object\"\n && typeof WebAssembly.instantiate === \"function\") {\n const module = new WebAssembly.Module(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00));\n if (module instanceof WebAssembly.Module)\n return new WebAssembly.Instance(module) instanceof WebAssembly.Instance;\n }\n } catch (e) {\n }\n return false;\n})();\n\nexport function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function setStyle(element, key, value) {\n if (!element) {\n return\n }\n if (typeof key === 'object') {\n Object.keys(key).forEach(item => {\n setStyle(element, item, key[item]);\n });\n }\n element.style[key] = value;\n return element;\n}\n\n\nexport function getStyle(element, key, numberType = true) {\n if (!element) {\n return 0\n }\n\n const value = getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function getNowTime() {\n if (performance && typeof performance.now === 'function') {\n return performance.now();\n }\n return Date.now();\n}\n\nexport function calculationRate(callback) {\n let totalSize = 0;\n let lastTime = getNowTime();\n return size => {\n totalSize += size;\n const thisTime = getNowTime();\n const diffTime = thisTime - lastTime;\n if (diffTime >= 1000) {\n callback((totalSize / diffTime) * 1000);\n lastTime = thisTime;\n totalSize = 0;\n }\n };\n}\n\nexport function downloadRecord(blob, name, suffix) {\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = (name || now()) + '.' + (suffix || FILE_SUFFIX.webm);\n a.click();\n setTimeout(() => {\n window.URL.revokeObjectURL(url);\n }, isIOS() ? 1000 : 0)\n}\n\nexport const env = '__ENV__';\n\nexport function isMobile() {\n return (/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase()));\n}\n\nexport function isPad(){\n return (/ipad|android(?!.*mobile)|tablet|kindle|silk/i.test(window.navigator.userAgent.toLowerCase()));\n}\n\nexport function isAndroid() {\n const UA = window.navigator.userAgent.toLowerCase();\n return (/android/i.test(UA));\n}\n\nexport function isIOS() {\n const UA = window.navigator.userAgent.toLowerCase();\n return UA && /iphone|ipad|ipod|ios/.test(UA);\n}\n\n\nexport function parseTime(time, cFormat) {\n if (arguments.length === 0) {\n return null\n }\n var format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'\n var date;\n if (typeof time === 'object') {\n date = time\n } else {\n if (('' + time).length === 10) time = parseInt(time) * 1000;\n time = +time; // 转成int 型\n date = new Date(time)\n }\n var formatObj = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n };\n var time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {\n var value = formatObj[key]\n if (key === 'a') return ['一', '二', '三', '四', '五', '六', '日'][value - 1]\n if (result.length > 0 && value < 10) {\n value = '0' + value\n }\n return value || 0\n });\n return time_str\n}\n\n// 是否支持 webcodecs\nexport function supportWCS() {\n return \"VideoEncoder\" in window;\n}\n\nexport function toNumber(value) {\n if (typeof value !== 'string') {\n return value;\n } else {\n // 转换成 number 类型\n var parsed = Number(value);\n return isNaN(parsed) ? value : parsed;\n }\n}\n\nexport function uuid16() {\n return 'xxxxxxxxxxxx4xxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8)\n return v.toString(16)\n })\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n\n return fn;\n}\n\n\nexport function isDef(v) {\n return v !== undefined && v !== null;\n}\n\nexport function formatVideoDecoderConfigure(avcC) {\n let codecArray = avcC.subarray(1, 4);\n let codecString = \"avc1.\";\n for (let j = 0; j < 3; j++) {\n let h = codecArray[j].toString(16);\n if (h.length < 2) {\n h = \"0\" + h\n }\n codecString += h\n }\n\n return {\n codec: codecString,\n description: avcC\n }\n}\n\nexport function isFullScreen() {\n return screenfull.isFullscreen\n}\n\nexport function bpsSize(value) {\n if (null == value || value === '' || parseInt(value) === 0 || isNaN(parseInt(value))) {\n return \"0KB/s\";\n }\n let size = parseFloat(value);\n size = size.toFixed(2);\n return size + 'KB/s';\n}\n\n\nexport function fpsStatus(fps) {\n let result = 0;\n if (fps >= 24) {\n result = 2;\n } else if (fps >= 15) {\n result = 1;\n }\n\n return result;\n}\n\nexport function createEmptyImageBitmap(width, height) {\n const $canvasElement = document.createElement(\"canvas\");\n $canvasElement.width = width;\n $canvasElement.height = height;\n return window.createImageBitmap($canvasElement, 0, 0, width, height);\n}\n\n\nexport function supportMSE() {\n return window.MediaSource && window.MediaSource.isTypeSupported(MP4_CODECS.avc);\n}\n\nexport function supportMediaStreamTrack() {\n return window.MediaStreamTrackGenerator && typeof window.MediaStreamTrackGenerator === 'function'\n}\n\n\nexport function formatMp4VideoCodec(codec) {\n return `video/mp4; codecs=\"${codec}\"`\n}\n\n\nexport function saveBlobToFile(fileName, blob) {\n let url = window.URL.createObjectURL(blob);\n let aLink = window.document.createElement('a');\n aLink.download = fileName;\n aLink.href = url;\n //创建内置事件并触发\n let evt = window.document.createEvent('MouseEvents');\n evt.initEvent(\"click\", true, true); //initEvent 不加后两个参数在FF下会报错 事件类型,是否冒泡,是否阻止浏览器的默认行为\n aLink.dispatchEvent(evt);\n setTimeout(() => {\n window.URL.revokeObjectURL(url);\n }, isIOS() ? 1000 : 0)\n}\n\nexport function isEmpty(value) {\n return value === null || value === undefined\n}\n\nexport function isBoolean(value) {\n return value === true || value === false;\n}\n\nexport function isNotEmpty(value) {\n return !isEmpty(value)\n}\n\nexport function initPlayTimes() {\n return {\n playInitStart: '', //1\n playStart: '', // 2\n streamStart: '', //3\n streamResponse: '', // 4\n demuxStart: '', // 5\n decodeStart: '', // 6\n videoStart: '', // 7\n playTimestamp: '',// playStart- playInitStart\n streamTimestamp: '',// streamStart - playStart\n streamResponseTimestamp: '',// streamResponse - streamStart\n demuxTimestamp: '', // demuxStart - streamResponse\n decodeTimestamp: '', // decodeStart - demuxStart\n videoTimestamp: '',// videoStart - decodeStart\n allTimestamp: '' // videoStart - playInitStart\n }\n}\n\n// create watermark\nexport function createWatermark(options) {\n let defaultConfig = {\n container: '',\n left: '',\n right: '',\n top: '',\n bottom: '',\n image: {\n src: '',\n width: '100',\n height: '60',\n },\n text: {\n content: '',\n fontSize: '14',\n color: '#000'\n },\n }\n defaultConfig = Object.assign(defaultConfig, options)\n\n const $container = defaultConfig.container;\n\n if ($container) {\n return\n }\n\n let shadowRoot = null;\n const otDiv = document.createElement('div');\n otDiv.setAttribute('style', 'pointer-events: none !important; display: block !important');\n\n if (typeof otDiv.attachShadow === \"function\") {\n shadowRoot = otDiv.attachShadow({mode: 'open'});\n } else if (otDiv.shadowRoot) {\n shadowRoot = otDiv.shadowRoot;\n } else {\n shadowRoot = otDiv;\n }\n\n const nodeList = $container.children;\n const index = Math.floor(Math.random() * (nodeList.length - 1));\n\n if (nodeList[index]) {\n $container.insertBefore(otDiv, nodeList[index]);\n } else {\n $container.appendChild(otDiv);\n }\n\n\n const maskDiv = document.createElement('div');\n let innerDom = null;\n if (defaultConfig.text && defaultConfig.text.content) {\n innerDom = document.createTextNode(defaultConfig.text);\n } else if (defaultConfig.image && defaultConfig.image.src) {\n innerDom = document.createElement('img')\n innerDom.style.height = '100%'\n innerDom.style.width = '100%'\n innerDom.src = defaultConfig.image.src;\n }\n\n if (!innerDom) {\n return;\n }\n\n maskDiv.appendChild(innerDom);\n\n maskDiv.style.visibility = '';\n maskDiv.style.position = \"absolute\";\n maskDiv.style.display = 'block'\n maskDiv.style['-ms-user-select'] = \"none\";\n maskDiv.style.left = defaultConfig.left;\n maskDiv.style.right = defaultConfig.right;\n maskDiv.style.top = defaultConfig.top;\n maskDiv.style.bottom = defaultConfig.bottom;\n maskDiv.style.overflow = 'hidden';\n maskDiv.style.zIndex = \"9999999\";\n if (defaultConfig.text && defaultConfig.text.content) {\n maskDiv.style.fontSize = defaultConfig.text.fontSize;\n maskDiv.style.color = defaultConfig.text.color;\n } else if (defaultConfig.image && defaultConfig.image.src) {\n maskDiv.style.width = defaultConfig.image.width + 'px';\n maskDiv.style.height = defaultConfig.image.height + 'px';\n }\n\n shadowRoot.appendChild(maskDiv)\n\n // remove function\n return () => {\n $container.removeChild(otDiv);\n }\n}\n\nexport function formatTimeTips(time) {\n var result;\n\n //\n if (time > -1) {\n var hour = Math.floor(time / 3600);\n var min = Math.floor(time / 60) % 60;\n var sec = time % 60;\n\n sec = Math.round(sec);\n\n if (hour < 10) {\n result = '0' + hour + \":\";\n } else {\n result = hour + \":\";\n }\n\n if (min < 10) {\n result += \"0\";\n }\n result += min + \":\";\n if (sec < 10) {\n result += \"0\";\n }\n result += sec.toFixed(0);\n }\n\n return result;\n}\n\nexport function getTarget(e) {\n const event = e || window.event;\n const target = event.target || event.srcElement;\n return target;\n}\n\nexport function isWebglRenderSupport(width) {\n return (width / 2) % 4 === 0\n}\n\nexport function isGreenYUV(arrayBuffer) {\n let zeroNum = 0;\n for (let i = 0; i < 10; i++) {\n let temp = arrayBuffer[i];\n if (temp === 0) {\n zeroNum += 1\n }\n }\n return zeroNum === 10;\n}\n\nexport function getBrowser() {\n const UserAgent = navigator.userAgent.toLowerCase();\n const browserInfo = {};\n const browserArray = {\n IE: window.ActiveXObject || \"ActiveXObject\" in window, // IE\n Chrome: UserAgent.indexOf('chrome') > -1 && UserAgent.indexOf('safari') > -1, // Chrome浏览器\n Firefox: UserAgent.indexOf('firefox') > -1, // 火狐浏览器\n Opera: UserAgent.indexOf('opera') > -1, // Opera浏览器\n Safari: UserAgent.indexOf('safari') > -1 && UserAgent.indexOf('chrome') == -1, // safari浏览器\n Edge: UserAgent.indexOf('edge') > -1, // Edge浏览器\n QQBrowser: /qqbrowser/.test(UserAgent), // qq浏览器\n WeixinBrowser: /MicroMessenger/i.test(UserAgent) // 微信浏览器\n };\n // console.log(browserArray)\n for (let i in browserArray) {\n if (browserArray[i]) {\n let versions = '';\n if (i === 'IE') {\n versions = UserAgent.match(/(msie\\s|trident.*rv:)([\\w.]+)/)[2];\n } else if (i === 'Chrome') {\n for (let mt in navigator.mimeTypes) {\n //检测是否是360浏览器(测试只有pc端的360才起作用)\n if (navigator.mimeTypes[mt]['type'] === 'application/360softmgrplugin') {\n i = '360';\n }\n }\n versions = UserAgent.match(/chrome\\/([\\d.]+)/)[1];\n } else if (i === 'Firefox') {\n versions = UserAgent.match(/firefox\\/([\\d.]+)/)[1];\n } else if (i === 'Opera') {\n versions = UserAgent.match(/opera\\/([\\d.]+)/)[1];\n } else if (i === 'Safari') {\n versions = UserAgent.match(/version\\/([\\d.]+)/)[1];\n } else if (i === 'Edge') {\n versions = UserAgent.match(/edge\\/([\\d.]+)/)[1];\n } else if (i === 'QQBrowser') {\n versions = UserAgent.match(/qqbrowser\\/([\\d.]+)/)[1];\n }\n browserInfo.type = i;\n browserInfo.version = parseInt(versions);\n }\n }\n return browserInfo;\n}\n\n\nexport function closeVideoFrame(videoFrame) {\n if (videoFrame.close) {\n videoFrame.close()\n } else if (videoFrame.destroy) {\n videoFrame.destroy()\n }\n}\n\n\nexport function removeElement(element) {\n let result = false;\n if (element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n result = true;\n }\n }\n return result;\n}\n\nexport function hevcEncoderNalePacketNotLength(oneNALBuffer, isIframe) {\n const idrBit = 0x10 | 12;\n const nIdrBit = 0x20 | 12;\n let tmp = [];\n if (isIframe) {\n tmp[0] = idrBit;\n } else {\n tmp[0] = nIdrBit;\n }\n tmp[1] = 1;\n //\n tmp[2] = 0;\n tmp[3] = 0;\n tmp[4] = 0;\n\n const arrayBuffer = new Uint8Array(tmp.length + oneNALBuffer.byteLength);\n arrayBuffer.set(tmp, 0);\n arrayBuffer.set(oneNALBuffer, tmp.length);\n return arrayBuffer;\n}\n\n\nexport function isTrue(value) {\n return value === true || value === 'true';\n}\n\nexport function isFalse(value) {\n return value !== true && value !== 'true';\n}\n\nexport function getElementDataset(element, key) {\n if (!element) {\n return '';\n }\n\n if (element.dataset) {\n return element.dataset[key];\n }\n return element.getAttribute('data-' + key);\n}\n\nexport function setElementDataset(element, key, value) {\n if (!element) {\n return;\n }\n\n if (element.dataset) {\n element.dataset[key] = value;\n } else {\n element.setAttribute('data-' + key, value);\n }\n}\n\nexport function removeElementDataset(element, key) {\n if (!element) {\n return;\n }\n\n if (element.dataset) {\n delete element.dataset[key];\n } else {\n element.removeAttribute('data-' + key);\n }\n}\n","import Module from './decoder/decoder';\nimport createWebGL from './utils/webgl';\nimport {WORKER_CMD_TYPE, MEDIA_TYPE, WORKER_SEND_TYPE, ENCODED_VIDEO_TYPE, DEFAULT_PLAYER_OPTIONS} from \"./constant\";\nimport {formatVideoDecoderConfigure, isGreenYUV} from \"./utils\";\n\nif (!Date.now) Date.now = function () {\n return new Date().getTime();\n};\n\nModule.postRun = function () {\n var buffer = [];\n var tempAudioBuffer = [];\n var wcsVideoDecoder = {};\n if (\"VideoEncoder\" in self) {\n wcsVideoDecoder = {\n hasInit: false,\n isEmitInfo: false,\n offscreenCanvas: null,\n offscreenCanvasCtx: null,\n decoder: new VideoDecoder({\n output: function (videoFrame) {\n if (!wcsVideoDecoder.isEmitInfo) {\n decoder.opt.debug && console.log('Jb: [worker] Webcodecs Video Decoder initSize');\n postMessage({\n cmd: WORKER_CMD_TYPE.initVideo,\n w: videoFrame.codedWidth,\n h: videoFrame.codedHeight\n });\n wcsVideoDecoder.isEmitInfo = true;\n wcsVideoDecoder.offscreenCanvas = new OffscreenCanvas(videoFrame.codedWidth, videoFrame.codedHeight);\n wcsVideoDecoder.offscreenCanvasCtx = wcsVideoDecoder.offscreenCanvas.getContext(\"2d\");\n }\n\n wcsVideoDecoder.offscreenCanvasCtx.drawImage(videoFrame, 0, 0, videoFrame.codedWidth, videoFrame.codedHeight);\n let image_bitmap = wcsVideoDecoder.offscreenCanvas.transferToImageBitmap();\n postMessage({\n cmd: WORKER_CMD_TYPE.render,\n buffer: image_bitmap,\n delay: decoder.delay,\n ts: 0\n }, [image_bitmap]);\n\n setTimeout(function () {\n if (videoFrame.close) {\n videoFrame.close();\n } else {\n videoFrame.destroy();\n }\n }, 100);\n\n },\n error: function (error) {\n console.error(error);\n }\n }),\n decode: function (payload, ts) {\n const isIFrame = payload[0] >> 4 === 1;\n if (!wcsVideoDecoder.hasInit) {\n if (isIFrame && payload[1] === 0) {\n const videoCodec = (payload[0] & 0x0F);\n decoder.setVideoCodec(videoCodec);\n const config = formatVideoDecoderConfigure(payload.slice(5));\n wcsVideoDecoder.decoder.configure(config);\n wcsVideoDecoder.hasInit = true;\n }\n } else {\n const chunk = new EncodedVideoChunk({\n data: payload.slice(5),\n timestamp: ts,\n type: isIFrame ? ENCODED_VIDEO_TYPE.key : ENCODED_VIDEO_TYPE.delta\n });\n wcsVideoDecoder.decoder.decode(chunk);\n }\n },\n reset() {\n wcsVideoDecoder.hasInit = false;\n wcsVideoDecoder.isEmitInfo = false;\n wcsVideoDecoder.offscreenCanvas = null;\n wcsVideoDecoder.offscreenCanvasCtx = null;\n }\n };\n }\n\n var decoder = {\n opt: {\n debug: DEFAULT_PLAYER_OPTIONS.debug,\n useOffscreen: DEFAULT_PLAYER_OPTIONS.useOffscreen,\n useWCS: DEFAULT_PLAYER_OPTIONS.useWCS,\n videoBuffer: DEFAULT_PLAYER_OPTIONS.videoBuffer,\n openWebglAlignment: DEFAULT_PLAYER_OPTIONS.openWebglAlignment,\n videoBufferDelay: DEFAULT_PLAYER_OPTIONS.videoBufferDelay\n },\n useOffscreen: function () {\n return decoder.opt.useOffscreen && typeof OffscreenCanvas != 'undefined';\n },\n initAudioPlanar: function (channels, samplerate) {\n postMessage({cmd: WORKER_CMD_TYPE.initAudio, sampleRate: samplerate, channels: channels});\n var outputArray = [];\n var remain = 0;\n this.playAudioPlanar = function (data, len, ts) {\n var frameCount = len;\n var origin = [];\n var start = 0;\n for (var channel = 0; channel < 2; channel++) {\n var fp = Module.HEAPU32[(data >> 2) + channel] >> 2;\n origin[channel] = Module.HEAPF32.subarray(fp, fp + frameCount);\n }\n if (remain) {\n len = 1024 - remain;\n if (frameCount >= len) {\n outputArray[0] = Float32Array.of(...tempAudioBuffer[0], ...origin[0].subarray(0, len));\n if (channels == 2) {\n outputArray[1] = Float32Array.of(...tempAudioBuffer[1], ...origin[1].subarray(0, len));\n }\n postMessage({\n cmd: WORKER_CMD_TYPE.playAudio,\n buffer: outputArray,\n ts\n }, outputArray.map(x => x.buffer));\n start = len;\n frameCount -= len;\n } else {\n remain += frameCount;\n tempAudioBuffer[0] = Float32Array.of(...tempAudioBuffer[0], ...origin[0]);\n if (channels == 2) {\n tempAudioBuffer[1] = Float32Array.of(...tempAudioBuffer[1], ...origin[1]);\n }\n return;\n }\n }\n for (remain = frameCount; remain >= 1024; remain -= 1024) {\n outputArray[0] = origin[0].slice(start, start += 1024);\n if (channels == 2) {\n outputArray[1] = origin[1].slice(start - 1024, start);\n }\n postMessage({\n cmd: WORKER_CMD_TYPE.playAudio,\n buffer: outputArray,\n ts\n }, outputArray.map(x => x.buffer));\n }\n if (remain) {\n tempAudioBuffer[0] = origin[0].slice(start);\n if (channels == 2) {\n tempAudioBuffer[1] = origin[1].slice(start);\n }\n }\n };\n },\n setVideoCodec: function (code) {\n postMessage({cmd: WORKER_CMD_TYPE.videoCode, code});\n },\n setAudioCodec: function (code) {\n postMessage({cmd: WORKER_CMD_TYPE.audioCode, code});\n },\n setVideoSize: function (w, h) {\n postMessage({cmd: WORKER_CMD_TYPE.initVideo, w: w, h: h});\n var size = w * h;\n var qsize = size >> 2;\n if (decoder.useOffscreen()) {\n this.offscreenCanvas = new OffscreenCanvas(w, h);\n this.offscreenCanvasGL = this.offscreenCanvas.getContext(\"webgl\");\n this.webglObj = createWebGL(this.offscreenCanvasGL, decoder.opt.openWebglAlignment);\n this.draw = function (ts, y, u, v) {\n const yData = Module.HEAPU8.subarray(y, y + size);\n const uData = Module.HEAPU8.subarray(u, u + qsize);\n const vData = Module.HEAPU8.subarray(v, v + (qsize));\n // if (isGreenYUV(Uint8Array.from(yData))) {\n // decoder.opt.debug && console.log('Jb: [worker]: draw offscreenCanvas is green yuv');\n // return\n // }\n\n this.webglObj.render(w, h, yData, uData, vData);\n let image_bitmap = this.offscreenCanvas.transferToImageBitmap();\n postMessage({\n cmd: WORKER_CMD_TYPE.render,\n buffer: image_bitmap,\n delay: this.delay,\n ts\n }, [image_bitmap]);\n };\n } else {\n this.draw = function (ts, y, u, v) {\n const yData = Uint8Array.from(Module.HEAPU8.subarray(y, y + size));\n const uData = Uint8Array.from(Module.HEAPU8.subarray(u, u + qsize));\n const vData = Uint8Array.from(Module.HEAPU8.subarray(v, v + (qsize)));\n // if (isGreenYUV(yData)) {\n // decoder.opt.debug && console.log('Jb: [worker]: draw is green yuv');\n // return\n // }\n const outputArray = [yData, uData, vData];\n postMessage({\n cmd: WORKER_CMD_TYPE.render,\n output: outputArray,\n delay: this.delay,\n ts\n }, outputArray.map(x => x.buffer));\n };\n }\n },\n getDelay: function (timestamp) {\n if (!timestamp) {\n return -1;\n }\n if (!this.firstTimestamp) {\n this.firstTimestamp = timestamp;\n this.startTimestamp = Date.now();\n this.delay = -1;\n } else {\n\n if (timestamp) {\n const localTimestamp = (Date.now() - this.startTimestamp);\n const timeTimestamp = (timestamp - this.firstTimestamp);\n if (localTimestamp >= timeTimestamp) {\n this.delay = localTimestamp - timeTimestamp;\n } else {\n this.delay = timeTimestamp - localTimestamp;\n }\n }\n }\n return this.delay;\n },\n resetDelay: function () {\n this.firstTimestamp = null;\n this.startTimestamp = null;\n this.delay = -1;\n },\n\n init: function () {\n decoder.opt.debug && console.log('Jb: [worker] init');\n const _doDecode = (data) => {\n // decoder.opt.debug && console.log('Jb: [worker]: _doDecode');\n if (decoder.opt.useWCS && decoder.useOffscreen() && data.type === MEDIA_TYPE.video && wcsVideoDecoder.decode) {\n wcsVideoDecoder.decode(data.payload, data.ts);\n } else {\n // decoder.opt.debug && console.log('Jb: [worker]: _doDecode wasm');\n data.decoder.decode(data.payload, data.ts);\n }\n };\n const loop = () => {\n if (buffer.length) {\n if (this.dropping) {\n // // dropping\n data = buffer.shift();\n //\n if (data.type === MEDIA_TYPE.audio && data.payload[1] === 0) {\n _doDecode(data);\n }\n while (!data.isIFrame && buffer.length) {\n // dropping\n data = buffer.shift();\n //\n if (data.type === MEDIA_TYPE.audio && data.payload[1] === 0) {\n _doDecode(data);\n }\n }\n if (data.isIFrame) {\n this.dropping = false;\n _doDecode(data);\n }\n } else {\n var data = buffer[0];\n if (this.getDelay(data.ts) === -1) {\n // decoder.opt.debug && console.log('Jb: [worker]: common dumex delay is -1');\n buffer.shift();\n _doDecode(data);\n } else if (this.delay > decoder.opt.videoBuffer + decoder.opt.videoBufferDelay) {\n // decoder.opt.debug && console.log('Jb: [worker]:', `delay is ${this.delay}, set dropping is true`);\n this.resetDelay();\n this.dropping = true;\n } else {\n while (buffer.length) {\n data = buffer[0];\n if (this.getDelay(data.ts) > decoder.opt.videoBuffer) {\n // decoder.opt.debug && console.log('Jb: [worker]:', `delay is ${this.delay}, decode`);\n buffer.shift();\n _doDecode(data);\n } else {\n // decoder.opt.debug && console.log('Jb: [worker]:', `delay is ${this.delay},opt.videoBuffer is ${decoder.opt.videoBuffer}`);\n break;\n }\n }\n }\n }\n }\n else {\n }\n };\n this.stopId = setInterval(loop, 10);\n },\n close: function () {\n decoder.opt.debug && console.log('Jb: [worker]: close');\n clearInterval(this.stopId);\n this.stopId = null;\n audioDecoder.clear && audioDecoder.clear();\n videoDecoder.clear && videoDecoder.clear();\n wcsVideoDecoder.reset && wcsVideoDecoder.reset();\n this.firstTimestamp = null;\n this.startTimestamp = null;\n this.delay = -1;\n this.dropping = false;\n\n if (this.webglObj) {\n this.webglObj.destroy();\n this.offscreenCanvas = null;\n this.offscreenCanvasGL = null;\n this.offscreenCanvasCtx = null;\n }\n buffer = [];\n tempAudioBuffer = [];\n delete this.playAudioPlanar;\n delete this.draw;\n },\n pushBuffer: function (bufferData, options) {\n // 音频\n if (options.type === MEDIA_TYPE.audio) {\n buffer.push({\n ts: options.ts,\n payload: bufferData,\n decoder: audioDecoder,\n type: MEDIA_TYPE.audio,\n });\n } else if (options.type === MEDIA_TYPE.video) {\n buffer.push({\n ts: options.ts,\n payload: bufferData,\n decoder: videoDecoder,\n type: MEDIA_TYPE.video,\n isIFrame: options.isIFrame\n });\n }\n }\n };\n var audioDecoder = new Module.AudioDecoder(decoder);\n var videoDecoder = new Module.VideoDecoder(decoder);\n postMessage({cmd: WORKER_SEND_TYPE.init});\n self.onmessage = function (event) {\n var msg = event.data;\n switch (msg.cmd) {\n case WORKER_SEND_TYPE.init:\n try {\n decoder.opt = Object.assign(decoder.opt, JSON.parse(msg.opt));\n } catch (e) {\n\n }\n audioDecoder.sample_rate = msg.sampleRate;\n decoder.init();\n break;\n case WORKER_SEND_TYPE.decode:\n decoder.pushBuffer(msg.buffer, msg.options);\n break;\n case WORKER_SEND_TYPE.audioDecode:\n audioDecoder.decode(msg.buffer, msg.ts);\n break;\n case WORKER_SEND_TYPE.videoDecode:\n videoDecoder.decode(msg.buffer, msg.ts);\n break;\n case WORKER_SEND_TYPE.close:\n decoder.close();\n break;\n case WORKER_SEND_TYPE.updateConfig:\n decoder.opt[msg.key] = msg.value;\n break;\n }\n };\n};\n"],"names":["Module","print","text","console","log","printErr","warn","postMessage","cmd","message","moduleOverrides","Object","assign","thisProgram","ENVIRONMENT_IS_WEB","window","ENVIRONMENT_IS_WORKER","importScripts","ENVIRONMENT_IS_NODE","process","versions","node","ENVIRONMENT_IS_SHELL","Error","scriptDirectory","locateFile","path","read_","readAsync","readBinary","fs","nodePath","requireNodeFS","require","require$$0","dirname","__dirname","require$$1","shell_read","filename","binary","readFileSync","undefined","ret","buffer","Uint8Array","assert","onload","onerror","readFile","err","data","length","replace","arguments_","slice","module","ex","ExitStatus","reason","read","f","readbuffer","setTimeout","scriptArgs","error","self","location","href","document","currentScript","src","indexOf","substr","lastIndexOf","url","xhr","XMLHttpRequest","open","send","responseText","responseType","response","status","out","bind","checkIncomingModuleAPI","legacyModuleProp","quit_","warnOnce","shown","prop","newName","getOwnPropertyDescriptor","defineProperty","configurable","get","abort","ignoredModuleProp","unexportedMessage","sym","isFSSybol","msg","unexportedRuntimeSymbol","unexportedRuntimeFunction","wasmBinary","WebAssembly","wasmMemory","ABORT","condition","UTF8Decoder","TextDecoder","UTF8ArrayToString","heapOrArray","idx","maxBytesToRead","endIdx","endPtr","decode","subarray","str","u0","String","fromCharCode","u1","u2","toString","ch","UTF8ToString","ptr","HEAPU8","stringToUTF8Array","heap","outIdx","maxBytesToWrite","startIdx","i","u","charCodeAt","stringToUTF8","outPtr","lengthBytesUTF8","len","UTF16Decoder","UTF16ToString","maxIdx","HEAPU16","codeUnit","HEAP16","stringToUTF16","startPtr","numCharsToWrite","lengthBytesUTF16","UTF32ToString","utf32","HEAP32","stringToUTF32","trailSurrogate","lengthBytesUTF32","allocateUTF8","size","_malloc","HEAP8","writeAsciiToMemory","dontAddNull","HEAPU32","HEAPF32","HEAPF64","updateGlobalBufferAndViews","buf","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","TOTAL_STACK","INITIAL_MEMORY","prototype","set","wasmTable","writeStackCookie","max","_emscripten_stack_get_end","checkStackCookie","cookie1","cookie2","h16","h8","__ATPRERUN__","__ATINIT__","__ATPOSTRUN__","runtimeInitialized","preRun","addOnPreRun","shift","callRuntimeCallbacks","initRuntime","FS","init","initialized","ignorePermissions","postRun","addOnPostRun","cb","unshift","addOnInit","Math","imul","fround","clz32","trunc","runDependencies","runDependencyWatcher","dependenciesFulfilled","runDependencyTracking","getUniqueRunDependency","id","orig","random","addRunDependency","setInterval","clearInterval","dep","removeRunDependency","callback","what","e","RuntimeError","dataURIPrefix","isDataURI","startsWith","isFileURI","createExportWrapper","name","fixedasm","displayName","asm","apply","arguments","wasmBinaryFile","getBinary","file","getBinaryPromise","fetch","credentials","then","catch","Promise","resolve","reject","createWasm","info","asmLibraryArg","receiveInstance","instance","exports","trueModule","receiveInstantiationResult","result","instantiateArrayBuffer","receiver","instantiate","instantiateAsync","instantiateStreaming","tempDouble","tempI64","callbacks","func","arg","getWasmTableEntry","demangle","demangleAll","regex","x","y","funcPtr","jsStackTrace","stack","setErrNo","value","___errno_location","PATH","isAbs","charAt","splitPath","splitPathRe","exec","normalizeArray","parts","allowAboveRoot","up","last","splice","normalize","isAbsolute","trailingSlash","split","filter","p","join","root","dir","basename","lastSlash","paths","Array","call","join2","l","r","getRandomDevice","crypto","randomBuffer","getRandomValues","crypto_module","require$$2","PATH_FS","resolvedPath","resolvedAbsolute","cwd","TypeError","relative","from","to","trim","arr","start","end","fromParts","toParts","min","samePartsLength","outputParts","push","concat","TTY","ttys","shutdown","register","dev","ops","input","output","registerDevice","stream_ops","stream","tty","rdev","ErrnoError","seekable","close","flush","offset","pos","get_char","bytesRead","timestamp","Date","now","write","put_char","default_tty_ops","BUFSIZE","Buffer","alloc","readSync","stdin","fd","includes","prompt","readline","intArrayFromString","val","default_tty1_ops","zeroMemory","address","fill","alignMemory","alignment","ceil","mmapAlloc","_emscripten_builtin_memalign","MEMFS","ops_table","mount","createNode","parent","mode","isBlkdev","isFIFO","getattr","node_ops","setattr","lookup","mknod","rename","unlink","rmdir","readdir","symlink","llseek","allocate","mmap","msync","link","readlink","chrdev","chrdev_stream_ops","isDir","contents","isFile","usedBytes","isLink","isChrdev","getFileDataAsTypedArray","expandFileStorage","newCapacity","prevCapacity","CAPACITY_DOUBLING_MAX","oldContents","resizeFileStorage","newSize","attr","ino","nlink","uid","gid","atime","mtime","ctime","blksize","blocks","genericErrors","old_node","new_dir","new_name","new_node","lookupNode","entries","key","hasOwnProperty","newname","oldpath","position","canOwn","ArrayBuffer","whence","prot","flags","allocated","byteOffset","mmapFlags","asyncLoad","noRunDep","arrayBuffer","event","ERRNO_MESSAGES","ERRNO_CODES","mounts","devices","streams","nextInode","nameTable","currentPath","filesystems","syncFSRequests","lookupPath","opts","defaults","follow_mount","recurse_count","current","current_path","islast","isMountpoint","mounted","follow","count","getPath","isRoot","mountpoint","hashName","parentid","hash","hashAddNode","name_next","hashRemoveNode","errCode","mayLookup","nodeName","FSNode","destroyNode","isSocket","flagModes","modeStringToFlags","flagsToPermissionString","flag","perms","nodePermissions","mayCreate","mayDelete","isdir","errno","mayOpen","MAX_OPEN_FDS","nextfd","fd_start","fd_end","getStream","createStream","FSStream","shared","object","isRead","isWrite","isAppend","function","closeStream","device","getDevice","major","minor","makedev","ma","mi","getMounts","check","m","pop","syncfs","populate","completed","doCallback","done","errored","forEach","type","pseudo","mountRoot","unmount","keys","next","create","mkdir","mkdirTree","dirs","d","mkdev","newpath","old_path","new_path","old_dirname","new_dirname","old_name","old_dir","stat","dontFollow","lstat","chmod","lchmod","fchmod","chown","lchown","fchown","truncate","ftruncate","utime","created","ungotten","readFiles","isClosed","getdents","seeking","bytesWritten","munmap","ioctl","encoding","writeFile","actualNumBytes","isView","byteLength","chdir","createDefaultDirectories","createDefaultDevices","random_device","createDevice","createSpecialDirectories","proc_self","createStandardStreams","stdout","stderr","ensureErrnoError","setErrno","code","writable","constructor","staticInit","quit","___stdio_exit","getMode","canRead","canWrite","findObject","dontResolveLastLink","analyzePath","exists","parentExists","parentPath","parentObject","createPath","reverse","part","createFile","properties","createDataFile","forceLoadFile","obj","isDevice","isFolder","createLazyFile","LazyUint8Array","lengthKnown","chunks","LazyUint8Array_get","chunkOffset","chunkSize","chunkNum","getter","setDataGetter","LazyUint8Array_setDataGetter","cacheLength","LazyUint8Array_cacheLength","datalength","Number","getResponseHeader","header","hasByteServing","usesGzip","doXHR","setRequestHeader","overrideMimeType","lazyArray","_length","_chunkSize","defineProperties","fn","forceLoadLazyFile","createPreloadedFile","dontCreateFile","preFinish","fullname","processData","byteArray","finish","Browser","handledByPreloadPlugin","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","DB_NAME","pathname","DB_VERSION","DB_STORE_NAME","saveFilesToDB","openRequest","onupgradeneeded","db","createObjectStore","onsuccess","transaction","files","objectStore","ok","fail","total","putRequest","put","loadFilesFromDB","getRequest","absolutePath","createFolder","createLink","joinPath","standardizePath","SYSCALLS","DEFAULT_POLLMASK","calculateAt","dirfd","allowEmpty","dirstream","doStat","abs","floor","getTime","doMsync","addr","doMknod","doReadlink","bufsize","endChar","doAccess","amode","doReadv","iov","iovcnt","curr","doWritev","varargs","getStr","getStreamFromFD","___syscall_fcntl64","newStream","___syscall_openat","__embind_register_bigint","primitiveType","minRange","maxRange","getShiftFromSize","embind_init_charCodes","codes","embind_charCodes","readLatin1String","c","awaitingDependencies","registeredTypes","typeDependencies","char_0","char_9","makeLegalFunctionName","createNamedFunction","body","Function","extendError","baseErrorType","errorName","errorClass","BindingError","throwBindingError","InternalError","throwInternalError","whenDependentTypesAreResolved","myTypes","dependentTypes","getTypeConverters","onComplete","typeConverters","myTypeConverters","registerType","unregisteredTypes","registered","dt","rawType","registeredInstance","options","ignoreDuplicateRegistrations","__embind_register_bool","trueValue","falseValue","wt","destructors","o","pointer","destructorFunction","ClassHandle_isAliasOf","other","ClassHandle","leftClass","$$","ptrType","registeredClass","left","rightClass","right","baseClass","upcast","shallowCopyInternalPointer","deleteScheduled","preservePointerOnDelete","smartPtr","smartPtrType","throwInstanceAlreadyDeleted","getInstanceTypeName","handle","finalizationRegistry","detachFinalizer","runDestructor","rawDestructor","releaseClassHandle","toDelete","downcastPointer","ptrClass","desiredClass","rv","downcast","registeredPointers","getInheritedInstanceCount","registeredInstances","getLiveInheritedInstances","k","deletionQueue","flushPendingDeletes","delayFunction","setDelayFunction","init_embind","getBasestPointer","class_","getInheritedInstance","makeClassHandle","record","hasSmartPtrType","hasSmartPtr","attachFinalizer","RegisteredPointer_fromWireType","rawPointer","getPointee","destructor","makeDefaultHandle","isSmartPointer","instancePrototype","pointeeType","actualType","getActualType","registeredPointerRecord","toType","isConst","constPointerType","pointerType","dp","FinalizationRegistry","leakWarning","cls","captureStackTrace","unregister","ClassHandle_clone","clone","getPrototypeOf","ClassHandle_delete","ClassHandle_isDeleted","ClassHandle_deleteLater","init_ClassHandle","ensureOverloadTable","proto","methodName","humanName","overloadTable","prevFunc","argCount","exposePublicSymbol","numArguments","RegisteredClass","pureVirtualFunctions","upcastPointer","constNoSmartPtrRawPointerToWireType","isReference","_embind_repr","handleClass","genericPointerToWireType","rawConstructor","sharingPolicy","clonedHandle","rawShare","Emval","toHandle","nonConstNoSmartPtrRawPointerToWireType","simpleReadValueFromPointer","RegisteredPointer_getPointee","rawGetPointee","RegisteredPointer_destructor","RegisteredPointer_deleteObject","init_RegisteredPointer","RegisteredPointer","replacePublicSymbol","dynCallLegacy","sig","args","substring","dynCall","getDynCaller","argCache","embind__requireFunction","signature","rawFunction","makeDynCaller","fp","UnboundTypeError","getTypeName","___getTypeName","_free","throwUnboundTypeError","types","unboundTypes","seen","visit","map","__embind_register_class","rawPointerType","rawConstPointerType","baseClassRawType","getActualTypeSignature","upcastSignature","downcastSignature","destructorSignature","legalFunctionName","base","basePrototype","constructor_body","referenceConverter","pointerConverter","constPointerConverter","heap32VectorToArray","firstElement","array","runDestructors","del","__embind_register_class_constructor","rawClassType","rawArgTypesAddr","invokerSignature","invoker","rawArgTypes","classType","argTypes","craftInvokerFunction","new_","argumentList","dummy","cppInvokerFunc","cppTargetFunc","isClassMethodFunc","needsDestructorStack","returns","argsList","argsListWired","invokerFnBody","dtorStack","args1","args2","paramName","invokerFunction","__embind_register_class_function","rawInvoker","context","isPureVirtual","Symbol","unboundTypesHandler","method","className","memberFunction","validateThis","this_","__embind_register_class_property","fieldName","getterReturnType","getterSignature","getterContext","setterArgumentType","setterSignature","setter","setterContext","desc","enumerable","v","emval_free_list","emval_handle_array","__emval_decref","refcount","count_emval_handles","get_first_emval","init_emval","toValue","__embind_register_emval","t","floatReadValueFromPointer","__embind_register_float","integerReadValueFromPointer","signed","readS8FromPointer","readU8FromPointer","readS16FromPointer","readU16FromPointer","readS32FromPointer","readU32FromPointer","__embind_register_integer","fromWireType","bitshift","isUnsignedType","checkAssertions","toTypeName","toWireType","__embind_register_memory_view","dataTypeIndex","typeMapping","TA","decodeMemoryView","__embind_register_std_string","stdStringIsUTF8","decodeStartPtr","currentBytePtr","maxRead","stringSegment","a","getLength","valueIsOfTypeString","Uint8ClampedArray","charCode","__embind_register_std_wstring","charSize","decodeString","encodeString","getHeap","lengthBytesUTF","HEAP","maxReadBytes","__embind_register_void","isVoid","__emscripten_date_now","requireRegisteredType","impl","__emval_as","returnType","destructorsRef","rd","emval_symbols","getStringOrSymbol","symbol","emval_methodCallers","__emval_call_void_method","caller","__emval_addMethodCaller","__emval_lookupTypes","emval_registeredMethods","__emval_get_method_caller","retType","signatureName","returnId","params","functionName","functionBody","__emval_incref","__emval_run_destructors","__emval_take_value","argv","__gmtime_js","time","tmPtr","date","getUTCSeconds","getUTCMinutes","getUTCHours","getUTCDate","getUTCMonth","getUTCFullYear","getUTCDay","UTC","yday","__localtime_js","getSeconds","getMinutes","getHours","getDate","getMonth","getFullYear","getDay","getTimezoneOffset","summerOffset","winterOffset","dst","__mktime_js","guessedOffset","dstOffset","nonDstOffset","trueOffset","setTime","_tzset_impl","timezone","daylight","tzname","currentYear","winter","summer","stdTimezoneOffset","extractZone","match","toTimeString","winterName","summerName","winterNamePtr","summerNamePtr","__tzset_js","called","_abort","reallyNegative","Infinity","convertI32PairToI53","lo","hi","convertU32PairToI53","reSign","bits","half","pow","unSign","formatString","format","textIndex","argIndex","prepVararg","getNextArg","currArg","startTextIndex","flagAlwaysSigned","flagLeftAlign","flagAlternative","flagZeroPad","flagPadSign","flagsLoop","width","precisionSet","precision","precisionChr","argSize","nextNext","argText","limit","currAbsArg","prefix","parseInt","toUpperCase","chr","isNaN","isFinite","isGeneral","effectivePrecision","exponent","toExponential","test","toFixed","argLength","_strlen","traverseStack","callee","funcname","first","_emscripten_get_callstack_js","callstack","iThisFunc","iThisFunc2","iNextLine","emscripten_source_map","stack_args","lines","newFirefoxRe","RegExp","firefoxRe","chromeRe","line","symbolName","lineno","column","haveSourceMap","originalPositionFor","source","_emscripten_log_js","debug","_emscripten_log","_emscripten_get_heap_max","emscripten_realloc_buffer","grow","_emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","alignUp","multiple","cutDown","overGrownHeapSize","replacement","ENV","getExecutableName","getEnvStrings","strings","lang","navigator","languages","env","_environ_get","__environ","environ_buf","bufSize","string","_environ_sizes_get","penviron_count","penviron_buf_size","_fd_close","_fd_fdstat_get","pbuf","_fd_read","pnum","num","_fd_seek","offset_low","offset_high","newOffset","HIGH_OFFSET","DOUBLE_LIMIT","_fd_write","_setTempRet0","readMode","writeMode","stringy","u8array","numBytesWritten","_emscripten_stack_init","calledRun","runCaller","run","stackCheckInit","doRun","gl","openWebglAlignment","vertexShaderScript","fragmentShaderScript","pixelStorei","UNPACK_ALIGNMENT","vertexShader","createShader","VERTEX_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","fragmentShader","FRAGMENT_SHADER","program","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","useProgram","vertexPosBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","vertexPosRef","getAttribLocation","enableVertexAttribArray","vertexAttribPointer","FLOAT","texturePosBuffer","texturePosRef","_initTexture","index","textureRef","createTexture","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_MAG_FILTER","LINEAR","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","uniform1i","getUniformLocation","yTextureRef","uTextureRef","vTextureRef","render","w","h","viewport","activeTexture","TEXTURE0","texImage2D","LUMINANCE","UNSIGNED_BYTE","TEXTURE1","TEXTURE2","drawArrays","TRIANGLE_STRIP","destroy","deleteProgram","deleteBuffer","deleteTexture","PLAYER_PLAY_PROTOCOL","websocket","webrtc","DEMUX_TYPE","flv","m7s","FILE_SUFFIX","mp4","webm","DEFAULT_PLAYER_OPTIONS","videoBuffer","videoBufferDelay","isResize","isFullResize","isFlv","hotKey","loadingTimeout","heartTimeout","timeout","loadingTimeoutReplay","heartTimeoutReplay","loadingTimeoutReplayTimes","heartTimeoutReplayTimes","supportDblclickFullscreen","showBandwidth","keepScreenOn","isNotMute","hasAudio","hasVideo","operateBtns","fullscreen","screenshot","play","audio","controlAutoHide","hasControl","loadingText","background","decoder","rotate","forceNoOffscreen","hiddenAutoPause","protocol","demuxType","useWCS","wcsUseVideoRender","useMSE","useOffscreen","autoWasm","wasmDecodeErrorReplay","wasmDecodeAudioSyncVideo","recordType","useWebFullScreen","WORKER_CMD_TYPE","initVideo","playAudio","initAudio","kBps","audioCode","videoCode","wasmError","MEDIA_TYPE","video","WORKER_SEND_TYPE","audioDecode","videoDecode","updateConfig","ENCODED_VIDEO_TYPE","delta","of","Instance","formatVideoDecoderConfigure","avcC","codecArray","codecString","j","codec","description","tempAudioBuffer","wcsVideoDecoder","hasInit","isEmitInfo","offscreenCanvas","offscreenCanvasCtx","VideoDecoder","videoFrame","opt","codedWidth","codedHeight","OffscreenCanvas","getContext","drawImage","image_bitmap","transferToImageBitmap","delay","ts","payload","isIFrame","videoCodec","setVideoCodec","config","configure","chunk","EncodedVideoChunk","reset","initAudioPlanar","channels","samplerate","sampleRate","outputArray","remain","playAudioPlanar","frameCount","origin","channel","setAudioCodec","setVideoSize","qsize","offscreenCanvasGL","webglObj","createWebGL","draw","yData","uData","vData","getDelay","firstTimestamp","startTimestamp","localTimestamp","timeTimestamp","resetDelay","_doDecode","loop","dropping","stopId","audioDecoder","clear","videoDecoder","pushBuffer","AudioDecoder","onmessage","JSON","parse","sample_rate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"decoder.js","sources":["../../src/decoder/decoder.js","../../src/utils/webgl.js","../../src/constant/index.js","../../node_modules/screenfull/dist/screenfull.js","../../src/utils/index.js","../../src/worker.js"],"sourcesContent":["var Module=typeof Module!=\"undefined\"?Module:{};var Module={};Module.print=function(text){console.log(\"Jessibuca: [worker]:\",text)};Module.printErr=function(text){console.warn(\"Jessibuca: [worker]:\",text);postMessage({cmd:\"wasmError\",message:text})};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;if(Module[\"ENVIRONMENT\"]){throw new Error(\"Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)\")}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;if(e&&typeof e==\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exiting due to exception: \"+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(!(typeof process==\"object\"&&typeof require==\"function\"))throw new Error(\"not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)\");if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}requireNodeFS=(()=>{if(!nodePath){fs=require(\"fs\");nodePath=require(\"path\")}});read_=function shell_read(filename,binary){requireNodeFS();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)}assert(ret.buffer);return ret});readAsync=((filename,onload,onerror)=>{requireNodeFS();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);if(typeof module!=\"undefined\"){module[\"exports\"]=Module}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_SHELL){if(typeof process==\"object\"&&typeof require===\"function\"||typeof window==\"object\"||typeof importScripts==\"function\")throw new Error(\"not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)\");if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){let data;if(typeof readbuffer==\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data==\"object\");return data};readAsync=function readAsync(f,onload,onerror){setTimeout(()=>onload(readBinary(f)),0)};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit==\"function\"){quit_=((status,toThrow)=>{logExceptionOnExit(toThrow);quit(status)})}if(typeof print!=\"undefined\"){if(typeof console==\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!=\"undefined\"?printErr:print}}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(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(!(typeof window==\"object\"||typeof importScripts==\"function\"))throw new Error(\"not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)\");{read_=(url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText});if(ENVIRONMENT_IS_WORKER){readBinary=(url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)})}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}onerror()});xhr.onerror=onerror;xhr.send(null)})}setWindowTitle=(title=>document.title=title)}else{throw new Error(\"environment detection error\")}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;checkIncomingModuleAPI();if(Module[\"arguments\"])arguments_=Module[\"arguments\"];legacyModuleProp(\"arguments\",\"arguments_\");if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];legacyModuleProp(\"thisProgram\",\"thisProgram\");if(Module[\"quit\"])quit_=Module[\"quit\"];legacyModuleProp(\"quit\",\"quit_\");assert(typeof Module[\"memoryInitializerPrefixURL\"]==\"undefined\",\"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"pthreadMainPrefixURL\"]==\"undefined\",\"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"cdInitializerPrefixURL\"]==\"undefined\",\"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"filePackagePrefixURL\"]==\"undefined\",\"Module.filePackagePrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"read\"]==\"undefined\",\"Module.read option was removed (modify read_ in JS)\");assert(typeof Module[\"readAsync\"]==\"undefined\",\"Module.readAsync option was removed (modify readAsync in JS)\");assert(typeof Module[\"readBinary\"]==\"undefined\",\"Module.readBinary option was removed (modify readBinary in JS)\");assert(typeof Module[\"setWindowTitle\"]==\"undefined\",\"Module.setWindowTitle option was removed (modify setWindowTitle in JS)\");assert(typeof Module[\"TOTAL_MEMORY\"]==\"undefined\",\"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY\");legacyModuleProp(\"read\",\"read_\");legacyModuleProp(\"readAsync\",\"readAsync\");legacyModuleProp(\"readBinary\",\"readBinary\");legacyModuleProp(\"setWindowTitle\",\"setWindowTitle\");assert(!ENVIRONMENT_IS_SHELL,\"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable.\");var POINTER_SIZE=4;function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function uleb128Encode(n){assert(n<16384);if(n<128){return[n]}return[n%128|128,n>>7]}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function==\"function\"){var typeNames={\"i\":\"i32\",\"j\":\"i64\",\"f\":\"f32\",\"d\":\"f64\"};var type={parameters:[],results:sig[0]==\"v\"?[]:[typeNames[sig[0]]]};for(var i=1;iabort(unexportedMessage(sym,isFSSybol)))}}var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];legacyModuleProp(\"wasmBinary\",\"wasmBinary\");var noExitRuntime=Module[\"noExitRuntime\"]||true;legacyModuleProp(\"noExitRuntime\",\"noExitRuntime\");if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed\"+(text?\": \"+text:\"\"))}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;assert(returnType!==\"array\",'Return type should not be \"array\".');if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}else{var str=\"\";while(idx>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=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;if(u>1114111)warnOnce(\"Invalid Unicode code point 0x\"+u.toString(16)+\" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).\");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){assert(typeof maxBytesToWrite==\"number\",\"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!\");return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;function UTF16ToString(ptr,maxBytesToRead){assert(ptr%2==0,\"Pointer passed to UTF16ToString must be aligned to two bytes!\");var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){assert(outPtr%2==0,\"Pointer passed to stringToUTF16 must be aligned to two bytes!\");assert(typeof maxBytesToWrite==\"number\",\"stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!\");if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){assert(ptr%4==0,\"Pointer passed to UTF32ToString must be aligned to four bytes!\");var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){assert(outPtr%4==0,\"Pointer passed to stringToUTF32 must be aligned to four bytes!\");assert(typeof maxBytesToWrite==\"number\",\"stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!\");if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){assert(array.length>=0,\"writeArrayToMemory array must have a length (should be an array or typed array)\");HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var 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 TOTAL_STACK=5242880;if(Module[\"TOTAL_STACK\"])assert(TOTAL_STACK===Module[\"TOTAL_STACK\"],\"the stack size can no longer be determined at runtime\");var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||67108864;legacyModuleProp(\"INITIAL_MEMORY\",\"INITIAL_MEMORY\");assert(INITIAL_MEMORY>=TOTAL_STACK,\"INITIAL_MEMORY should be larger than TOTAL_STACK, was \"+INITIAL_MEMORY+\"! (TOTAL_STACK=\"+TOTAL_STACK+\")\");assert(typeof Int32Array!=\"undefined\"&&typeof Float64Array!==\"undefined\"&&Int32Array.prototype.subarray!=undefined&&Int32Array.prototype.set!=undefined,\"JS engine does not provide full typed array support\");assert(!Module[\"wasmMemory\"],\"Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally\");assert(INITIAL_MEMORY==67108864,\"Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically\");var wasmTable;function writeStackCookie(){var max=_emscripten_stack_get_end();assert((max&3)==0);HEAP32[max>>2]=34821223;HEAP32[max+4>>2]=2310721022;HEAP32[0]=1668509029}function checkStackCookie(){if(ABORT)return;var max=_emscripten_stack_get_end();var cookie1=HEAPU32[max>>2];var cookie2=HEAPU32[max+4>>2];if(cookie1!=34821223||cookie2!=2310721022){abort(\"Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x\"+cookie2.toString(16)+\" 0x\"+cookie1.toString(16))}if(HEAP32[0]!==1668509029)abort(\"Runtime error: The application has corrupted its heap memory area (address zero)!\")}(function(){var h16=new Int16Array(1);var h8=new Int8Array(h16.buffer);h16[0]=25459;if(h8[0]!==115||h8[1]!==99)throw\"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)\"})();var __ATPRERUN__=[];var __ATINIT__=[];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(){checkStackCookie();assert(!runtimeInitialized);runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){checkStackCookie();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 addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}assert(Math.imul,\"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");assert(Math.fround,\"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");assert(Math.clz32,\"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");assert(Math.trunc,\"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function getUniqueRunDependency(id){var orig=id;while(1){if(!runDependencyTracking[id])return id;id=orig+Math.random()}}function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!=\"undefined\"){runDependencyWatcher=setInterval(function(){if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;err(\"still waiting on run dependencies:\")}err(\"dependency: \"+dep)}if(shown){err(\"(end of list)\")}},1e4)}}else{err(\"warning: run dependency added without ID\")}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{err(\"warning: run dependency removed without ID\")}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;var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}function createExportWrapper(name,fixedasm){return function(){var displayName=name;var asm=fixedasm;if(!fixedasm){asm=Module[\"asm\"]}assert(runtimeInitialized,\"native function `\"+displayName+\"` called before runtime initialization\");if(!asm[name]){assert(asm[name],\"exported native function `\"+displayName+\"` not found\")}return asm[name].apply(null,arguments)}}var wasmBinaryFile;wasmBinaryFile=\"decoder.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"memory\"];assert(wasmMemory,\"memory not found in wasm exports\");updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"__indirect_function_table\"];assert(wasmTable,\"table not found in wasm exports\");addOnInit(Module[\"asm\"][\"__wasm_call_ctors\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");var trueModule=Module;function receiveInstantiationResult(result){assert(Module===trueModule,\"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?\");trueModule=null;receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);if(isFileURI(wasmBinaryFile)){err(\"warning: Loading from a file URI (\"+wasmBinaryFile+\") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing\")}abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func==\"number\"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function demangle(func){warnOnce(\"warning: build with -sDEMANGLE_SUPPORT to link in libcxxabi demangling\");return func}function demangleAll(text){var regex=/\\b_Z[\\w\\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+\" [\"+x+\"]\"})}function getWasmTableEntry(funcPtr){return wasmTable.get(funcPtr)}function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return\"(no stack trace available)\"}}return error.stack.toString()}function setWasmTableEntry(idx,func){wasmTable.set(idx,func)}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path===\"/\")return\"/\";path=PATH.normalize(path);path=path.replace(/\\/$/,\"\");var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:(l,r)=>{return PATH.normalize(l+\"/\"+r)}};function getRandomDevice(){if(typeof crypto==\"object\"&&typeof crypto[\"getRandomValues\"]==\"function\"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require(\"crypto\");return function(){return crypto_module[\"randomBytes\"](1)[0]}}catch(e){}}return function(){abort(\"no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };\")}}var PATH_FS={resolve:function(){var resolvedPath=\"\",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString(\"utf-8\")}else{result=null}}else if(typeof window!=\"undefined\"&&typeof window.prompt==\"function\"){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else if(typeof readline==\"function\"){result=readline();if(result!==null){result+=\"\\n\"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function zeroMemory(address,size){HEAPU8.fill(0,address,address+size)}function alignMemory(size,alignment){assert(alignment,\"alignment argument is required\");return Math.ceil(size/alignment)*alignment}function mmapAlloc(size){size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;zeroMemory(ptr,size);return ptr}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,\"/\",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[\".\",\"..\"];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:\"\",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),false);var current=FS.root;var current_path=\"/\";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?mount+\"/\"+path:mount+path}path=path?node.name+\"/\"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{assert(typeof parent==\"object\");var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{\"r\":0,\"r+\":2,\"w\":577,\"w+\":578,\"a\":1089,\"a+\":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags==\"undefined\"){throw new Error(\"Unknown file open mode: \"+str)}return flags},flagsToPermissionString:flag=>{var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get function(){return this.shared.position},set:function(val){this.shared.position=val}}}}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(\"warning: \"+FS.syncFSRequests+\" FS.syncfs operations in flight at once, probably just doing extra work\")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{if(typeof type==\"string\"){throw type}var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name===\".\"||name===\"..\"){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split(\"/\");var d=\"\";for(var i=0;i{if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode,fd_start,fd_end)=>{if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS.modeStringToFlags(flags):flags;mode=typeof mode==\"undefined\"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==\"object\"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,address,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,address,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){throw new Error('Invalid encoding type \"'+opts.encoding+'\"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding===\"binary\"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices:()=>{FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice(\"/dev\",\"random\",random_device);FS.createDevice(\"/dev\",\"urandom\",random_device);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories:()=>{FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount:()=>{var node=FS.createNode(proc_self,\"fd\",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},\"/proc/self/fd\")},createStandardStreams:()=>{if(Module[\"stdin\"]){FS.createDevice(\"/dev\",\"stdin\",Module[\"stdin\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(Module[\"stdout\"]){FS.createDevice(\"/dev\",\"stdout\",null,Module[\"stdout\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(Module[\"stderr\"]){FS.createDevice(\"/dev\",\"stderr\",null,Module[\"stderr\"])}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1);assert(stdin.fd===0,\"invalid handle for stdin (\"+stdin.fd+\")\");assert(stdout.fd===1,\"invalid handle for stdout (\"+stdout.fd+\")\");assert(stderr.fd===2,\"invalid handle for stderr (\"+stderr.fd+\")\")},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}};this.setErrno(errno);this.message=ERRNO_MESSAGES[errno];if(this.stack){Object.defineProperty(this,\"stack\",{value:(new Error).stack,writable:true});this.stack=demangleAll(this.stack)}};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=\"\"})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={\"MEMFS\":MEMFS}},init:(input,output,error)=>{assert(!FS.init.initialized,\"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)\");FS.init.initialized=true;FS.ensureErrnoError();Module[\"stdin\"]=input||Module[\"stdin\"];Module[\"stdout\"]=output||Module[\"stdout\"];Module[\"stderr\"]=error||Module[\"stderr\"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;___stdio_exit();for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!=\"undefined\"){throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error(\"Cannot load without read() or XMLHttpRequest.\")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||\"\",true)}};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=\"undefined\"){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=((stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(\"cp \"+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url==\"string\"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return\"EM_FS_\"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:\"FILE_DATA\",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=(()=>{out(\"creating db\");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)});openRequest.onsuccess=(()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],\"readwrite\");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=(()=>{ok++;if(ok+fail==total)finish()});putRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=(()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],\"readonly\")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=(()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()});getRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror},absolutePath:()=>{abort(\"FS.absolutePath has been removed; use PATH_FS.resolve instead\")},createFolder:()=>{abort(\"FS.createFolder has been removed; use FS.mkdir instead\")},createLink:()=>{abort(\"FS.createLink has been removed; use FS.symlink instead\")},joinPath:()=>{abort(\"FS.joinPath has been removed; use PATH.join instead\")},mmapAlloc:()=>{abort(\"FS.mmapAlloc has been replaced by the top level function mmapAlloc\")},standardizePath:()=>{abort(\"FS.standardizePath has been removed; use PATH.normalize instead\")}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms=\"\";if(amode&4)perms+=\"r\";if(amode&2)perms+=\"w\";if(amode&1)perms+=\"x\";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){assert(SYSCALLS.varargs!=undefined);SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==\"undefined\"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS==\"undefined\"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return\"_\"+name}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function(\"body\",\"return function \"+name+\"() {\\n\"+' \"use strict\";'+\" return body.apply(this, arguments);\\n\"+\"};\\n\")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+\": \"+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options={}){if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError('type \"'+name+'\" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(\"Cannot register type '\"+name+\"' twice\")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return!!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")}var finalizationRegistry=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module[\"getInheritedInstanceCount\"]=getInheritedInstanceCount;Module[\"getLiveInheritedInstances\"]=getLiveInheritedInstances;Module[\"flushPendingDeletes\"]=flushPendingDeletes;Module[\"setDelayFunction\"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError(\"makeClassHandle requires ptr and ptrType\")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError(\"Both smartPtrType and smartPtr must be specified\")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance[\"clone\"]()}else{var rv=registeredInstance[\"clone\"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if(\"undefined\"===typeof FinalizationRegistry){attachFinalizer=(handle=>handle);return handle}finalizationRegistry=new FinalizationRegistry(info=>{console.warn(info.leakWarning.stack.replace(/^Error: /,\"\"));releaseClassHandle(info.$$)});attachFinalizer=(handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};var cls=$$.ptrType.registeredClass;info.leakWarning=new Error(\"Embind found a leaked C++ instance \"+cls.name+\" <0x\"+$$.ptr.toString(16)+\">.\\n\"+\"We'll free it automatically in this case, but this functionality is not reliable across various environments.\\n\"+\"Make sure to invoke .delete() manually once you're done with the instance instead.\\n\"+\"Originally allocated\");if(\"captureStackTrace\"in Error){Error.captureStackTrace(info.leakWarning,RegisteredPointer_fromWireType)}finalizationRegistry.register(handle,info,handle)}return handle});detachFinalizer=(handle=>finalizationRegistry.unregister(handle));return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype[\"isAliasOf\"]=ClassHandle_isAliasOf;ClassHandle.prototype[\"clone\"]=ClassHandle_clone;ClassHandle.prototype[\"delete\"]=ClassHandle_delete;ClassHandle.prototype[\"isDeleted\"]=ClassHandle_isDeleted;ClassHandle.prototype[\"deleteLater\"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(\"Function '\"+humanName+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+proto[methodName].overloadTable+\")!\")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(\"Cannot register public name '\"+name+\"' twice\")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(\"Cannot register multiple overloads of a function with the same number of arguments (\"+numArguments+\")!\")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(\"Expected null or instance of \"+desiredClass.name+\", got an instance of \"+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle[\"delete\"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError(\"Unsupporting sharing policy\")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+handle.$$.ptrType.name+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAPU32[pointer>>2])}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle[\"delete\"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype[\"argPackAdvance\"]=8;RegisteredPointer.prototype[\"readValueFromPointer\"]=simpleReadValueFromPointer;RegisteredPointer.prototype[\"deleteObject\"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype[\"fromWireType\"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this[\"toWireType\"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this[\"toWireType\"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this[\"toWireType\"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){assert(\"dynCall_\"+sig in Module,\"bad function pointer type - no table for sig '\"+sig+\"'\");if(args&&args.length){assert(args.length===sig.substring(1).replace(/j/g,\"--\").length)}else{assert(sig.length==1)}var f=Module[\"dynCall_\"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes(\"j\")){return dynCallLegacy(sig,ptr,args)}assert(getWasmTableEntry(ptr),\"missing table entry in dynCall: \"+ptr);return getWasmTableEntry(ptr).apply(null,args)}function getDynCaller(sig,ptr){assert(sig.includes(\"j\"),\"getDynCaller should only be called with i64 sigs\");var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes(\"j\")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!=\"function\"){throwBindingError(\"unknown function pointer with signature \"+signature+\": \"+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+\": \"+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(\"Cannot construct \"+name+\" due to unbound types\",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(\"Use 'new' to construct \"+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+\" has no accessible constructor\")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(\"Tried to invoke ctor of \"+name+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(registeredClass.constructor_body).toString()+\") parameters instead!\")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i>2)+i])}return array}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=\"constructor \"+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(\"Cannot register multiple constructors with identical number of parameters (\"+(argCount-1)+\") for class '\"+classType.name+\"'! Overload resolution is currently only performed using the parameter count, not actual type info!\")}classType.registeredClass.constructor_body[argCount-1]=(()=>{throwUnboundTypeError(\"Cannot construct \"+classType.name+\" due to unbound types\",rawArgTypes)});whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(\"new_ called with constructor type \"+typeof constructor+\" which is not a function\")}var dummy=createNamedFunction(constructor.name||\"unknownFunctionName\",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?\", \":\"\")+argsListWired}invokerFnBody+=(returns?\"var rv = \":\"\")+\"invoker(fn\"+(argsListWired.length>0?\", \":\"\")+argsListWired+\");\\n\";if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i{throwUnboundTypeError(\"Cannot access \"+humanName+\" due to unbound types\",[getterReturnType,setterArgumentType])})}else{desc.set=(v=>{throwBindingError(humanName+\" is a read-only property\")})}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);whenDependentTypesAreResolved([],setter?[getterReturnType,setterArgumentType]:[getterReturnType],function(types){var getterReturnType=types[0];var desc={get:function(){var ptr=validateThis(this,classType,humanName+\" getter\");return getterReturnType[\"fromWireType\"](getter(getterContext,ptr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);var setterArgumentType=types[1];desc.set=function(v){var ptr=validateThis(this,classType,humanName+\" setter\");var destructors=[];setter(setterContext,ptr,setterArgumentType[\"toWireType\"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i{if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return Emval.toHandle(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){if(typeof value!=\"number\"&&typeof value!=\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+this.name)}return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=(value=>value<>>bitshift)}var isUnsignedType=name.includes(\"unsigned\");var checkAssertions=(value,toTypeName)=>{if(typeof value!=\"number\"&&typeof value!=\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+toTypeName)}if(valuemaxRange){throw new TypeError('Passing a number \"'+_embind_repr(value)+'\" from JS side to C/C++ side to an argument of type \"'+name+'\", which is outside the valid range ['+minRange+\", \"+maxRange+\"]!\")}};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":toWireType,\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;ilengthBytesUTF8(value))}else{getLength=(()=>value.length)}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;iHEAPU16);shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=(()=>HEAPU32);shift=2}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},\"toWireType\":function(destructors,value){if(!(typeof value==\"string\")){throwBindingError(\"Cannot pass non-string to C++ string type \"+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}function __emscripten_date_now(){return Date.now()}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+\" has unknown type \"+getTypeName(rawType))}return impl}function __emval_as(handle,returnType,destructorsRef){handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,\"emval::as\");var destructors=[];var rd=Emval.toHandle(destructors);HEAP32[destructorsRef>>2]=rd;return returnType[\"toWireType\"](destructors,handle)}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2)+i],\"parameter \"+i)}return a}var emval_registeredMethods=[];function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+\"_$\"+types.slice(1).map(function(t){return t.name}).join(\"_\")+\"$\";var returnId=emval_registeredMethods[signatureName];if(returnId!==undefined){return returnId}var params=[\"retType\"];var args=[retType];var argsList=\"\";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)}function __emval_take_value(type,argv){type=requireRegisteredType(type,\"_emval_take_value\");var v=type[\"readValueFromPointer\"](argv);return Emval.toHandle(v)}function __gmtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}function __localtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mktime_js(tmPtr){var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>2]=date.getDay();var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();return date.getTime()/1e3|0}function _tzset_impl(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return match?match[1]:\"GMT\"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAP32[tzname+4>>2]=summerNamePtr}else{HEAP32[tzname>>2]=summerNamePtr;HEAP32[tzname+4>>2]=winterNamePtr}}function __tzset_js(timezone,daylight,tzname){if(__tzset_js.called)return;__tzset_js.called=true;_tzset_impl(timezone,daylight,tzname)}function _abort(){abort(\"native code called abort()\")}function reallyNegative(x){return x<0||x===0&&1/x===-Infinity}function convertI32PairToI53(lo,hi){assert(hi===(hi|0));return(lo>>>0)+hi*4294967296}function convertU32PairToI53(lo,hi){return(lo>>>0)+(hi>>>0)*4294967296}function reSign(value,bits){if(value<=0){return value}var half=bits<=32?Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}function unSign(value,bits){if(value>=0){return value}return bits<=32?2*Math.abs(1<>3]);argIndex+=8}else if(type==\"i64\"){ret=[HEAP32[argIndex>>2],HEAP32[argIndex+4>>2]];argIndex+=8}else{assert((argIndex&3)===0);type=\"i32\";ret=HEAP32[argIndex>>2];argIndex+=4}return ret}var ret=[];var curr,next,currArg;while(1){var startTextIndex=textIndex;curr=HEAP8[textIndex>>0];if(curr===0)break;next=HEAP8[textIndex+1>>0];if(curr==37){var flagAlwaysSigned=false;var flagLeftAlign=false;var flagAlternative=false;var flagZeroPad=false;var flagPadSign=false;flagsLoop:while(1){switch(next){case 43:flagAlwaysSigned=true;break;case 45:flagLeftAlign=true;break;case 35:flagAlternative=true;break;case 48:if(flagZeroPad){break flagsLoop}else{flagZeroPad=true;break}case 32:flagPadSign=true;break;default:break flagsLoop}textIndex++;next=HEAP8[textIndex+1>>0]}var width=0;if(next==42){width=getNextArg(\"i32\");textIndex++;next=HEAP8[textIndex+1>>0]}else{while(next>=48&&next<=57){width=width*10+(next-48);textIndex++;next=HEAP8[textIndex+1>>0]}}var precisionSet=false,precision=-1;if(next==46){precision=0;precisionSet=true;textIndex++;next=HEAP8[textIndex+1>>0];if(next==42){precision=getNextArg(\"i32\");textIndex++}else{while(1){var precisionChr=HEAP8[textIndex+1>>0];if(precisionChr<48||precisionChr>57)break;precision=precision*10+(precisionChr-48);textIndex++}}next=HEAP8[textIndex+1>>0]}if(precision<0){precision=6;precisionSet=false}var argSize;switch(String.fromCharCode(next)){case\"h\":var nextNext=HEAP8[textIndex+2>>0];if(nextNext==104){textIndex++;argSize=1}else{argSize=2}break;case\"l\":var nextNext=HEAP8[textIndex+2>>0];if(nextNext==108){textIndex++;argSize=8}else{argSize=4}break;case\"L\":case\"q\":case\"j\":argSize=8;break;case\"z\":case\"t\":case\"I\":argSize=4;break;default:argSize=null}if(argSize)textIndex++;next=HEAP8[textIndex+1>>0];switch(String.fromCharCode(next)){case\"d\":case\"i\":case\"u\":case\"o\":case\"x\":case\"X\":case\"p\":{var signed=next==100||next==105;argSize=argSize||4;currArg=getNextArg(\"i\"+argSize*8);var argText;if(argSize==8){currArg=next==117?convertU32PairToI53(currArg[0],currArg[1]):convertI32PairToI53(currArg[0],currArg[1])}if(argSize<=4){var limit=Math.pow(256,argSize)-1;currArg=(signed?reSign:unSign)(currArg&limit,argSize*8)}var currAbsArg=Math.abs(currArg);var prefix=\"\";if(next==100||next==105){argText=reSign(currArg,8*argSize).toString(10)}else if(next==117){argText=unSign(currArg,8*argSize).toString(10);currArg=Math.abs(currArg)}else if(next==111){argText=(flagAlternative?\"0\":\"\")+currAbsArg.toString(8)}else if(next==120||next==88){prefix=flagAlternative&&currArg!=0?\"0x\":\"\";if(currArg<0){currArg=-currArg;argText=(currAbsArg-1).toString(16);var buffer=[];for(var i=0;i=0){if(flagAlwaysSigned){prefix=\"+\"+prefix}else if(flagPadSign){prefix=\" \"+prefix}}if(argText.charAt(0)==\"-\"){prefix=\"-\"+prefix;argText=argText.substr(1)}while(prefix.length+argText.lengthexponent&&exponent>=-4){next=(next==103?\"f\":\"F\").charCodeAt(0);precision-=exponent+1}else{next=(next==103?\"e\":\"E\").charCodeAt(0);precision--}effectivePrecision=Math.min(precision,20)}if(next==101||next==69){argText=currArg.toExponential(effectivePrecision);if(/[eE][-+]\\d$/.test(argText)){argText=argText.slice(0,-1)+\"0\"+argText.slice(-1)}}else if(next==102||next==70){argText=currArg.toFixed(effectivePrecision);if(currArg===0&&reallyNegative(currArg)){argText=\"-\"+argText}}var parts=argText.split(\"e\");if(isGeneral&&!flagAlternative){while(parts[0].length>1&&parts[0].includes(\".\")&&(parts[0].slice(-1)==\"0\"||parts[0].slice(-1)==\".\")){parts[0]=parts[0].slice(0,-1)}}else{if(flagAlternative&&argText.indexOf(\".\")==-1)parts[0]+=\".\";while(precision>effectivePrecision++)parts[0]+=\"0\"}argText=parts[0]+(parts.length>1?\"e\"+parts[1]:\"\");if(next==69)argText=argText.toUpperCase();if(currArg>=0){if(flagAlwaysSigned){argText=\"+\"+argText}else if(flagPadSign){argText=\" \"+argText}}}while(argText.length>0])}}else{ret=ret.concat(intArrayFromString(\"(null)\".substr(0,argLength),true))}if(flagLeftAlign){while(argLength0){ret.push(32)}if(!flagLeftAlign)ret.push(getNextArg(\"i8\"));break}case\"n\":{var ptr=getNextArg(\"i32*\");HEAP32[ptr>>2]=ret.length;break}case\"%\":{ret.push(curr);break}default:{for(var i=startTextIndex;i>0])}}}textIndex+=2}else{ret.push(curr);textIndex+=1}}return ret}function traverseStack(args){if(!args||!args.callee||!args.callee.name){return[null,\"\",\"\"]}var funstr=args.callee.toString();var funcname=args.callee.name;var str=\"(\";var first=true;for(var i in args){var a=args[i];if(!first){str+=\", \"}first=false;if(typeof a==\"number\"||typeof a==\"string\"){str+=a}else{str+=\"(\"+typeof a+\")\"}}str+=\")\";var caller=args.callee.caller;args=caller?caller.arguments:[];if(first)str=\"\";return[args,funcname,str]}function _emscripten_get_callstack_js(flags){var callstack=jsStackTrace();var iThisFunc=callstack.lastIndexOf(\"_emscripten_log\");var iThisFunc2=callstack.lastIndexOf(\"_emscripten_get_callstack\");var iNextLine=callstack.indexOf(\"\\n\",Math.max(iThisFunc,iThisFunc2))+1;callstack=callstack.slice(iNextLine);if(flags&32){warnOnce(\"EM_LOG_DEMANGLE is deprecated; ignoring\")}if(flags&8&&typeof emscripten_source_map==\"undefined\"){warnOnce('Source map information is not available, emscripten_log with EM_LOG_C_STACK will be ignored. Build with \"--pre-js $EMSCRIPTEN/src/emscripten-source-map.min.js\" linker flag to add source map loading to code.');flags^=8;flags|=16}var stack_args=null;if(flags&128){stack_args=traverseStack(arguments);while(stack_args[1].includes(\"_emscripten_\"))stack_args=traverseStack(stack_args[0])}var lines=callstack.split(\"\\n\");callstack=\"\";var newFirefoxRe=new RegExp(\"\\\\s*(.*?)@(.*?):([0-9]+):([0-9]+)\");var firefoxRe=new RegExp(\"\\\\s*(.*?)@(.*):(.*)(:(.*))?\");var chromeRe=new RegExp(\"\\\\s*at (.*?) \\\\((.*):(.*):(.*)\\\\)\");for(var l in lines){var line=lines[l];var symbolName=\"\";var file=\"\";var lineno=0;var column=0;var parts=chromeRe.exec(line);if(parts&&parts.length==5){symbolName=parts[1];file=parts[2];lineno=parts[3];column=parts[4]}else{parts=newFirefoxRe.exec(line);if(!parts)parts=firefoxRe.exec(line);if(parts&&parts.length>=4){symbolName=parts[1];file=parts[2];lineno=parts[3];column=parts[4]|0}else{callstack+=line+\"\\n\";continue}}var haveSourceMap=false;if(flags&8){var orig=emscripten_source_map.originalPositionFor({line:lineno,column:column});haveSourceMap=orig&&orig.source;if(haveSourceMap){if(flags&64){orig.source=orig.source.substring(orig.source.replace(/\\\\/g,\"/\").lastIndexOf(\"/\")+1)}callstack+=\" at \"+symbolName+\" (\"+orig.source+\":\"+orig.line+\":\"+orig.column+\")\\n\"}}if(flags&16||!haveSourceMap){if(flags&64){file=file.substring(file.replace(/\\\\/g,\"/\").lastIndexOf(\"/\")+1)}callstack+=(haveSourceMap?\" = \"+symbolName:\" at \"+symbolName)+\" (\"+file+\":\"+lineno+\":\"+column+\")\\n\"}if(flags&128&&stack_args[0]){if(stack_args[1]==symbolName&&stack_args[2].length>0){callstack=callstack.replace(/\\s+$/,\"\");callstack+=\" with values: \"+stack_args[1]+stack_args[2]+\"\\n\"}stack_args=traverseStack(stack_args[0])}}callstack=callstack.replace(/\\s+$/,\"\");return callstack}function _emscripten_log_js(flags,str){if(flags&24){str=str.replace(/\\s+$/,\"\");str+=(str.length>0?\"\\n\":\"\")+_emscripten_get_callstack_js(flags)}if(flags&1){if(flags&4){console.error(str)}else if(flags&2){console.warn(str)}else if(flags&512){console.info(str)}else if(flags&256){console.debug(str)}else{console.log(str)}}else if(flags&6){err(str)}else{out(str)}}function _emscripten_log(flags,format,varargs){var result=formatString(format,varargs);var str=UTF8ArrayToString(result,0);_emscripten_log_js(flags,str)}function _emscripten_get_heap_max(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){err(\"emscripten_realloc_buffer: Attempted to grow heap from \"+buffer.byteLength+\" bytes to \"+size+\" bytes, but got error: \"+e)}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;assert(requestedSize>oldSize);var maxHeapSize=_emscripten_get_heap_max();if(requestedSize>maxHeapSize){err(\"Cannot enlarge memory, asked to go up to \"+requestedSize+\" bytes, but the limit is \"+maxHeapSize+\" bytes!\");return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}err(\"Failed to grow the heap from \"+oldSize+\" bytes to \"+newSize+\" bytes, not enough memory!\");return false}var ENV={};function getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":lang,\"_\":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+\"=\"+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS==\"undefined\"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==\"undefined\"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _setTempRet0(val){setTempRet0(val)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();ERRNO_CODES={\"EPERM\":63,\"ENOENT\":44,\"ESRCH\":71,\"EINTR\":27,\"EIO\":29,\"ENXIO\":60,\"E2BIG\":1,\"ENOEXEC\":45,\"EBADF\":8,\"ECHILD\":12,\"EAGAIN\":6,\"EWOULDBLOCK\":6,\"ENOMEM\":48,\"EACCES\":2,\"EFAULT\":21,\"ENOTBLK\":105,\"EBUSY\":10,\"EEXIST\":20,\"EXDEV\":75,\"ENODEV\":43,\"ENOTDIR\":54,\"EISDIR\":31,\"EINVAL\":28,\"ENFILE\":41,\"EMFILE\":33,\"ENOTTY\":59,\"ETXTBSY\":74,\"EFBIG\":22,\"ENOSPC\":51,\"ESPIPE\":70,\"EROFS\":69,\"EMLINK\":34,\"EPIPE\":64,\"EDOM\":18,\"ERANGE\":68,\"ENOMSG\":49,\"EIDRM\":24,\"ECHRNG\":106,\"EL2NSYNC\":156,\"EL3HLT\":107,\"EL3RST\":108,\"ELNRNG\":109,\"EUNATCH\":110,\"ENOCSI\":111,\"EL2HLT\":112,\"EDEADLK\":16,\"ENOLCK\":46,\"EBADE\":113,\"EBADR\":114,\"EXFULL\":115,\"ENOANO\":104,\"EBADRQC\":103,\"EBADSLT\":102,\"EDEADLOCK\":16,\"EBFONT\":101,\"ENOSTR\":100,\"ENODATA\":116,\"ETIME\":117,\"ENOSR\":118,\"ENONET\":119,\"ENOPKG\":120,\"EREMOTE\":121,\"ENOLINK\":47,\"EADV\":122,\"ESRMNT\":123,\"ECOMM\":124,\"EPROTO\":65,\"EMULTIHOP\":36,\"EDOTDOT\":125,\"EBADMSG\":9,\"ENOTUNIQ\":126,\"EBADFD\":127,\"EREMCHG\":128,\"ELIBACC\":129,\"ELIBBAD\":130,\"ELIBSCN\":131,\"ELIBMAX\":132,\"ELIBEXEC\":133,\"ENOSYS\":52,\"ENOTEMPTY\":55,\"ENAMETOOLONG\":37,\"ELOOP\":32,\"EOPNOTSUPP\":138,\"EPFNOSUPPORT\":139,\"ECONNRESET\":15,\"ENOBUFS\":42,\"EAFNOSUPPORT\":5,\"EPROTOTYPE\":67,\"ENOTSOCK\":57,\"ENOPROTOOPT\":50,\"ESHUTDOWN\":140,\"ECONNREFUSED\":14,\"EADDRINUSE\":3,\"ECONNABORTED\":13,\"ENETUNREACH\":40,\"ENETDOWN\":38,\"ETIMEDOUT\":73,\"EHOSTDOWN\":142,\"EHOSTUNREACH\":23,\"EINPROGRESS\":26,\"EALREADY\":7,\"EDESTADDRREQ\":17,\"EMSGSIZE\":35,\"EPROTONOSUPPORT\":66,\"ESOCKTNOSUPPORT\":137,\"EADDRNOTAVAIL\":4,\"ENETRESET\":39,\"EISCONN\":30,\"ENOTCONN\":53,\"ETOOMANYREFS\":141,\"EUSERS\":136,\"EDQUOT\":19,\"ESTALE\":72,\"ENOTSUP\":138,\"ENOMEDIUM\":148,\"EILSEQ\":25,\"EOVERFLOW\":61,\"ECANCELED\":11,\"ENOTRECOVERABLE\":56,\"EOWNERDEAD\":62,\"ESTRPIPE\":135};embind_init_charCodes();BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");init_emval();var ASSERTIONS=true;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function checkIncomingModuleAPI(){ignoredModuleProp(\"fetchSettings\")}var asmLibraryArg={\"__syscall_fcntl64\":___syscall_fcntl64,\"__syscall_openat\":___syscall_openat,\"_embind_register_bigint\":__embind_register_bigint,\"_embind_register_bool\":__embind_register_bool,\"_embind_register_class\":__embind_register_class,\"_embind_register_class_constructor\":__embind_register_class_constructor,\"_embind_register_class_function\":__embind_register_class_function,\"_embind_register_class_property\":__embind_register_class_property,\"_embind_register_emval\":__embind_register_emval,\"_embind_register_float\":__embind_register_float,\"_embind_register_integer\":__embind_register_integer,\"_embind_register_memory_view\":__embind_register_memory_view,\"_embind_register_std_string\":__embind_register_std_string,\"_embind_register_std_wstring\":__embind_register_std_wstring,\"_embind_register_void\":__embind_register_void,\"_emscripten_date_now\":__emscripten_date_now,\"_emval_as\":__emval_as,\"_emval_call_void_method\":__emval_call_void_method,\"_emval_decref\":__emval_decref,\"_emval_get_method_caller\":__emval_get_method_caller,\"_emval_incref\":__emval_incref,\"_emval_run_destructors\":__emval_run_destructors,\"_emval_take_value\":__emval_take_value,\"_gmtime_js\":__gmtime_js,\"_localtime_js\":__localtime_js,\"_mktime_js\":__mktime_js,\"_tzset_js\":__tzset_js,\"abort\":_abort,\"emscripten_log\":_emscripten_log,\"emscripten_resize_heap\":_emscripten_resize_heap,\"environ_get\":_environ_get,\"environ_sizes_get\":_environ_sizes_get,\"fd_close\":_fd_close,\"fd_fdstat_get\":_fd_fdstat_get,\"fd_read\":_fd_read,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"setTempRet0\":_setTempRet0};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=createExportWrapper(\"__wasm_call_ctors\");var _free=Module[\"_free\"]=createExportWrapper(\"free\");var _malloc=Module[\"_malloc\"]=createExportWrapper(\"malloc\");var _strlen=Module[\"_strlen\"]=createExportWrapper(\"strlen\");var ___errno_location=Module[\"___errno_location\"]=createExportWrapper(\"__errno_location\");var ___getTypeName=Module[\"___getTypeName\"]=createExportWrapper(\"__getTypeName\");var ___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=createExportWrapper(\"__embind_register_native_and_builtin_types\");var ___stdio_exit=Module[\"___stdio_exit\"]=createExportWrapper(\"__stdio_exit\");var _emscripten_builtin_memalign=Module[\"_emscripten_builtin_memalign\"]=createExportWrapper(\"emscripten_builtin_memalign\");var _emscripten_stack_init=Module[\"_emscripten_stack_init\"]=function(){return(_emscripten_stack_init=Module[\"_emscripten_stack_init\"]=Module[\"asm\"][\"emscripten_stack_init\"]).apply(null,arguments)};var _emscripten_stack_get_free=Module[\"_emscripten_stack_get_free\"]=function(){return(_emscripten_stack_get_free=Module[\"_emscripten_stack_get_free\"]=Module[\"asm\"][\"emscripten_stack_get_free\"]).apply(null,arguments)};var _emscripten_stack_get_base=Module[\"_emscripten_stack_get_base\"]=function(){return(_emscripten_stack_get_base=Module[\"_emscripten_stack_get_base\"]=Module[\"asm\"][\"emscripten_stack_get_base\"]).apply(null,arguments)};var _emscripten_stack_get_end=Module[\"_emscripten_stack_get_end\"]=function(){return(_emscripten_stack_get_end=Module[\"_emscripten_stack_get_end\"]=Module[\"asm\"][\"emscripten_stack_get_end\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=createExportWrapper(\"stackSave\");var stackRestore=Module[\"stackRestore\"]=createExportWrapper(\"stackRestore\");var stackAlloc=Module[\"stackAlloc\"]=createExportWrapper(\"stackAlloc\");var dynCall_ijiii=Module[\"dynCall_ijiii\"]=createExportWrapper(\"dynCall_ijiii\");var dynCall_viiijj=Module[\"dynCall_viiijj\"]=createExportWrapper(\"dynCall_viiijj\");var dynCall_jij=Module[\"dynCall_jij\"]=createExportWrapper(\"dynCall_jij\");var dynCall_jii=Module[\"dynCall_jii\"]=createExportWrapper(\"dynCall_jii\");var dynCall_jiji=Module[\"dynCall_jiji\"]=createExportWrapper(\"dynCall_jiji\");var _ff_h264_cabac_tables=Module[\"_ff_h264_cabac_tables\"]=112940;unexportedRuntimeFunction(\"intArrayFromString\",false);unexportedRuntimeFunction(\"intArrayToString\",false);unexportedRuntimeFunction(\"ccall\",false);unexportedRuntimeFunction(\"cwrap\",false);unexportedRuntimeFunction(\"setValue\",false);unexportedRuntimeFunction(\"getValue\",false);unexportedRuntimeFunction(\"allocate\",false);unexportedRuntimeFunction(\"UTF8ArrayToString\",false);unexportedRuntimeFunction(\"UTF8ToString\",false);unexportedRuntimeFunction(\"stringToUTF8Array\",false);unexportedRuntimeFunction(\"stringToUTF8\",false);unexportedRuntimeFunction(\"lengthBytesUTF8\",false);unexportedRuntimeFunction(\"stackTrace\",false);unexportedRuntimeFunction(\"addOnPreRun\",false);unexportedRuntimeFunction(\"addOnInit\",false);unexportedRuntimeFunction(\"addOnPreMain\",false);unexportedRuntimeFunction(\"addOnExit\",false);unexportedRuntimeFunction(\"addOnPostRun\",false);unexportedRuntimeFunction(\"writeStringToMemory\",false);unexportedRuntimeFunction(\"writeArrayToMemory\",false);unexportedRuntimeFunction(\"writeAsciiToMemory\",false);unexportedRuntimeFunction(\"addRunDependency\",true);unexportedRuntimeFunction(\"removeRunDependency\",true);unexportedRuntimeFunction(\"FS_createFolder\",false);unexportedRuntimeFunction(\"FS_createPath\",true);unexportedRuntimeFunction(\"FS_createDataFile\",true);unexportedRuntimeFunction(\"FS_createPreloadedFile\",true);unexportedRuntimeFunction(\"FS_createLazyFile\",true);unexportedRuntimeFunction(\"FS_createLink\",false);unexportedRuntimeFunction(\"FS_createDevice\",true);unexportedRuntimeFunction(\"FS_unlink\",true);unexportedRuntimeFunction(\"getLEB\",false);unexportedRuntimeFunction(\"getFunctionTables\",false);unexportedRuntimeFunction(\"alignFunctionTables\",false);unexportedRuntimeFunction(\"registerFunctions\",false);unexportedRuntimeFunction(\"addFunction\",false);unexportedRuntimeFunction(\"removeFunction\",false);unexportedRuntimeFunction(\"prettyPrint\",false);unexportedRuntimeFunction(\"dynCall\",false);unexportedRuntimeFunction(\"getCompilerSetting\",false);unexportedRuntimeFunction(\"print\",false);unexportedRuntimeFunction(\"printErr\",false);unexportedRuntimeFunction(\"getTempRet0\",false);unexportedRuntimeFunction(\"setTempRet0\",false);unexportedRuntimeFunction(\"callMain\",false);unexportedRuntimeFunction(\"abort\",false);unexportedRuntimeFunction(\"keepRuntimeAlive\",false);unexportedRuntimeFunction(\"ptrToString\",false);unexportedRuntimeFunction(\"zeroMemory\",false);unexportedRuntimeFunction(\"stringToNewUTF8\",false);unexportedRuntimeFunction(\"emscripten_realloc_buffer\",false);unexportedRuntimeFunction(\"ENV\",false);unexportedRuntimeFunction(\"ERRNO_CODES\",false);unexportedRuntimeFunction(\"ERRNO_MESSAGES\",false);unexportedRuntimeFunction(\"setErrNo\",false);unexportedRuntimeFunction(\"inetPton4\",false);unexportedRuntimeFunction(\"inetNtop4\",false);unexportedRuntimeFunction(\"inetPton6\",false);unexportedRuntimeFunction(\"inetNtop6\",false);unexportedRuntimeFunction(\"readSockaddr\",false);unexportedRuntimeFunction(\"writeSockaddr\",false);unexportedRuntimeFunction(\"DNS\",false);unexportedRuntimeFunction(\"getHostByName\",false);unexportedRuntimeFunction(\"Protocols\",false);unexportedRuntimeFunction(\"Sockets\",false);unexportedRuntimeFunction(\"getRandomDevice\",false);unexportedRuntimeFunction(\"traverseStack\",false);unexportedRuntimeFunction(\"UNWIND_CACHE\",false);unexportedRuntimeFunction(\"convertPCtoSourceLocation\",false);unexportedRuntimeFunction(\"readAsmConstArgsArray\",false);unexportedRuntimeFunction(\"readAsmConstArgs\",false);unexportedRuntimeFunction(\"mainThreadEM_ASM\",false);unexportedRuntimeFunction(\"jstoi_q\",false);unexportedRuntimeFunction(\"jstoi_s\",false);unexportedRuntimeFunction(\"getExecutableName\",false);unexportedRuntimeFunction(\"listenOnce\",false);unexportedRuntimeFunction(\"autoResumeAudioContext\",false);unexportedRuntimeFunction(\"dynCallLegacy\",false);unexportedRuntimeFunction(\"getDynCaller\",false);unexportedRuntimeFunction(\"dynCall\",false);unexportedRuntimeFunction(\"setWasmTableEntry\",false);unexportedRuntimeFunction(\"getWasmTableEntry\",false);unexportedRuntimeFunction(\"handleException\",false);unexportedRuntimeFunction(\"runtimeKeepalivePush\",false);unexportedRuntimeFunction(\"runtimeKeepalivePop\",false);unexportedRuntimeFunction(\"callUserCallback\",false);unexportedRuntimeFunction(\"maybeExit\",false);unexportedRuntimeFunction(\"safeSetTimeout\",false);unexportedRuntimeFunction(\"asmjsMangle\",false);unexportedRuntimeFunction(\"asyncLoad\",false);unexportedRuntimeFunction(\"alignMemory\",false);unexportedRuntimeFunction(\"mmapAlloc\",false);unexportedRuntimeFunction(\"reallyNegative\",false);unexportedRuntimeFunction(\"unSign\",false);unexportedRuntimeFunction(\"reSign\",false);unexportedRuntimeFunction(\"formatString\",false);unexportedRuntimeFunction(\"PATH\",false);unexportedRuntimeFunction(\"PATH_FS\",false);unexportedRuntimeFunction(\"SYSCALLS\",false);unexportedRuntimeFunction(\"getSocketFromFD\",false);unexportedRuntimeFunction(\"getSocketAddress\",false);unexportedRuntimeFunction(\"JSEvents\",false);unexportedRuntimeFunction(\"registerKeyEventCallback\",false);unexportedRuntimeFunction(\"specialHTMLTargets\",false);unexportedRuntimeFunction(\"maybeCStringToJsString\",false);unexportedRuntimeFunction(\"findEventTarget\",false);unexportedRuntimeFunction(\"findCanvasEventTarget\",false);unexportedRuntimeFunction(\"getBoundingClientRect\",false);unexportedRuntimeFunction(\"fillMouseEventData\",false);unexportedRuntimeFunction(\"registerMouseEventCallback\",false);unexportedRuntimeFunction(\"registerWheelEventCallback\",false);unexportedRuntimeFunction(\"registerUiEventCallback\",false);unexportedRuntimeFunction(\"registerFocusEventCallback\",false);unexportedRuntimeFunction(\"fillDeviceOrientationEventData\",false);unexportedRuntimeFunction(\"registerDeviceOrientationEventCallback\",false);unexportedRuntimeFunction(\"fillDeviceMotionEventData\",false);unexportedRuntimeFunction(\"registerDeviceMotionEventCallback\",false);unexportedRuntimeFunction(\"screenOrientation\",false);unexportedRuntimeFunction(\"fillOrientationChangeEventData\",false);unexportedRuntimeFunction(\"registerOrientationChangeEventCallback\",false);unexportedRuntimeFunction(\"fillFullscreenChangeEventData\",false);unexportedRuntimeFunction(\"registerFullscreenChangeEventCallback\",false);unexportedRuntimeFunction(\"registerRestoreOldStyle\",false);unexportedRuntimeFunction(\"hideEverythingExceptGivenElement\",false);unexportedRuntimeFunction(\"restoreHiddenElements\",false);unexportedRuntimeFunction(\"setLetterbox\",false);unexportedRuntimeFunction(\"currentFullscreenStrategy\",false);unexportedRuntimeFunction(\"restoreOldWindowedStyle\",false);unexportedRuntimeFunction(\"softFullscreenResizeWebGLRenderTarget\",false);unexportedRuntimeFunction(\"doRequestFullscreen\",false);unexportedRuntimeFunction(\"fillPointerlockChangeEventData\",false);unexportedRuntimeFunction(\"registerPointerlockChangeEventCallback\",false);unexportedRuntimeFunction(\"registerPointerlockErrorEventCallback\",false);unexportedRuntimeFunction(\"requestPointerLock\",false);unexportedRuntimeFunction(\"fillVisibilityChangeEventData\",false);unexportedRuntimeFunction(\"registerVisibilityChangeEventCallback\",false);unexportedRuntimeFunction(\"registerTouchEventCallback\",false);unexportedRuntimeFunction(\"fillGamepadEventData\",false);unexportedRuntimeFunction(\"registerGamepadEventCallback\",false);unexportedRuntimeFunction(\"registerBeforeUnloadEventCallback\",false);unexportedRuntimeFunction(\"fillBatteryEventData\",false);unexportedRuntimeFunction(\"battery\",false);unexportedRuntimeFunction(\"registerBatteryEventCallback\",false);unexportedRuntimeFunction(\"setCanvasElementSize\",false);unexportedRuntimeFunction(\"getCanvasElementSize\",false);unexportedRuntimeFunction(\"demangle\",false);unexportedRuntimeFunction(\"demangleAll\",false);unexportedRuntimeFunction(\"jsStackTrace\",false);unexportedRuntimeFunction(\"stackTrace\",false);unexportedRuntimeFunction(\"getEnvStrings\",false);unexportedRuntimeFunction(\"checkWasiClock\",false);unexportedRuntimeFunction(\"writeI53ToI64\",false);unexportedRuntimeFunction(\"writeI53ToI64Clamped\",false);unexportedRuntimeFunction(\"writeI53ToI64Signaling\",false);unexportedRuntimeFunction(\"writeI53ToU64Clamped\",false);unexportedRuntimeFunction(\"writeI53ToU64Signaling\",false);unexportedRuntimeFunction(\"readI53FromI64\",false);unexportedRuntimeFunction(\"readI53FromU64\",false);unexportedRuntimeFunction(\"convertI32PairToI53\",false);unexportedRuntimeFunction(\"convertU32PairToI53\",false);unexportedRuntimeFunction(\"dlopenMissingError\",false);unexportedRuntimeFunction(\"setImmediateWrapped\",false);unexportedRuntimeFunction(\"clearImmediateWrapped\",false);unexportedRuntimeFunction(\"polyfillSetImmediate\",false);unexportedRuntimeFunction(\"uncaughtExceptionCount\",false);unexportedRuntimeFunction(\"exceptionLast\",false);unexportedRuntimeFunction(\"exceptionCaught\",false);unexportedRuntimeFunction(\"ExceptionInfo\",false);unexportedRuntimeFunction(\"exception_addRef\",false);unexportedRuntimeFunction(\"exception_decRef\",false);unexportedRuntimeFunction(\"Browser\",false);unexportedRuntimeFunction(\"setMainLoop\",false);unexportedRuntimeFunction(\"wget\",false);unexportedRuntimeFunction(\"FS\",false);unexportedRuntimeFunction(\"MEMFS\",false);unexportedRuntimeFunction(\"TTY\",false);unexportedRuntimeFunction(\"PIPEFS\",false);unexportedRuntimeFunction(\"SOCKFS\",false);unexportedRuntimeFunction(\"_setNetworkCallback\",false);unexportedRuntimeFunction(\"tempFixedLengthArray\",false);unexportedRuntimeFunction(\"miniTempWebGLFloatBuffers\",false);unexportedRuntimeFunction(\"heapObjectForWebGLType\",false);unexportedRuntimeFunction(\"heapAccessShiftForWebGLHeap\",false);unexportedRuntimeFunction(\"GL\",false);unexportedRuntimeFunction(\"emscriptenWebGLGet\",false);unexportedRuntimeFunction(\"computeUnpackAlignedImageSize\",false);unexportedRuntimeFunction(\"emscriptenWebGLGetTexPixelData\",false);unexportedRuntimeFunction(\"emscriptenWebGLGetUniform\",false);unexportedRuntimeFunction(\"webglGetUniformLocation\",false);unexportedRuntimeFunction(\"webglPrepareUniformLocationsBeforeFirstUse\",false);unexportedRuntimeFunction(\"webglGetLeftBracePos\",false);unexportedRuntimeFunction(\"emscriptenWebGLGetVertexAttrib\",false);unexportedRuntimeFunction(\"writeGLArray\",false);unexportedRuntimeFunction(\"AL\",false);unexportedRuntimeFunction(\"SDL_unicode\",false);unexportedRuntimeFunction(\"SDL_ttfContext\",false);unexportedRuntimeFunction(\"SDL_audio\",false);unexportedRuntimeFunction(\"SDL\",false);unexportedRuntimeFunction(\"SDL_gfx\",false);unexportedRuntimeFunction(\"GLUT\",false);unexportedRuntimeFunction(\"EGL\",false);unexportedRuntimeFunction(\"GLFW_Window\",false);unexportedRuntimeFunction(\"GLFW\",false);unexportedRuntimeFunction(\"GLEW\",false);unexportedRuntimeFunction(\"IDBStore\",false);unexportedRuntimeFunction(\"runAndAbortIfError\",false);unexportedRuntimeFunction(\"InternalError\",false);unexportedRuntimeFunction(\"BindingError\",false);unexportedRuntimeFunction(\"UnboundTypeError\",false);unexportedRuntimeFunction(\"PureVirtualError\",false);unexportedRuntimeFunction(\"init_embind\",false);unexportedRuntimeFunction(\"throwInternalError\",false);unexportedRuntimeFunction(\"throwBindingError\",false);unexportedRuntimeFunction(\"throwUnboundTypeError\",false);unexportedRuntimeFunction(\"ensureOverloadTable\",false);unexportedRuntimeFunction(\"exposePublicSymbol\",false);unexportedRuntimeFunction(\"replacePublicSymbol\",false);unexportedRuntimeFunction(\"extendError\",false);unexportedRuntimeFunction(\"createNamedFunction\",false);unexportedRuntimeFunction(\"registeredInstances\",false);unexportedRuntimeFunction(\"getBasestPointer\",false);unexportedRuntimeFunction(\"registerInheritedInstance\",false);unexportedRuntimeFunction(\"unregisterInheritedInstance\",false);unexportedRuntimeFunction(\"getInheritedInstance\",false);unexportedRuntimeFunction(\"getInheritedInstanceCount\",false);unexportedRuntimeFunction(\"getLiveInheritedInstances\",false);unexportedRuntimeFunction(\"registeredTypes\",false);unexportedRuntimeFunction(\"awaitingDependencies\",false);unexportedRuntimeFunction(\"typeDependencies\",false);unexportedRuntimeFunction(\"registeredPointers\",false);unexportedRuntimeFunction(\"registerType\",false);unexportedRuntimeFunction(\"whenDependentTypesAreResolved\",false);unexportedRuntimeFunction(\"embind_charCodes\",false);unexportedRuntimeFunction(\"embind_init_charCodes\",false);unexportedRuntimeFunction(\"readLatin1String\",false);unexportedRuntimeFunction(\"getTypeName\",false);unexportedRuntimeFunction(\"heap32VectorToArray\",false);unexportedRuntimeFunction(\"requireRegisteredType\",false);unexportedRuntimeFunction(\"getShiftFromSize\",false);unexportedRuntimeFunction(\"integerReadValueFromPointer\",false);unexportedRuntimeFunction(\"enumReadValueFromPointer\",false);unexportedRuntimeFunction(\"floatReadValueFromPointer\",false);unexportedRuntimeFunction(\"simpleReadValueFromPointer\",false);unexportedRuntimeFunction(\"runDestructors\",false);unexportedRuntimeFunction(\"new_\",false);unexportedRuntimeFunction(\"craftInvokerFunction\",false);unexportedRuntimeFunction(\"embind__requireFunction\",false);unexportedRuntimeFunction(\"tupleRegistrations\",false);unexportedRuntimeFunction(\"structRegistrations\",false);unexportedRuntimeFunction(\"genericPointerToWireType\",false);unexportedRuntimeFunction(\"constNoSmartPtrRawPointerToWireType\",false);unexportedRuntimeFunction(\"nonConstNoSmartPtrRawPointerToWireType\",false);unexportedRuntimeFunction(\"init_RegisteredPointer\",false);unexportedRuntimeFunction(\"RegisteredPointer\",false);unexportedRuntimeFunction(\"RegisteredPointer_getPointee\",false);unexportedRuntimeFunction(\"RegisteredPointer_destructor\",false);unexportedRuntimeFunction(\"RegisteredPointer_deleteObject\",false);unexportedRuntimeFunction(\"RegisteredPointer_fromWireType\",false);unexportedRuntimeFunction(\"runDestructor\",false);unexportedRuntimeFunction(\"releaseClassHandle\",false);unexportedRuntimeFunction(\"finalizationRegistry\",false);unexportedRuntimeFunction(\"detachFinalizer_deps\",false);unexportedRuntimeFunction(\"detachFinalizer\",false);unexportedRuntimeFunction(\"attachFinalizer\",false);unexportedRuntimeFunction(\"makeClassHandle\",false);unexportedRuntimeFunction(\"init_ClassHandle\",false);unexportedRuntimeFunction(\"ClassHandle\",false);unexportedRuntimeFunction(\"ClassHandle_isAliasOf\",false);unexportedRuntimeFunction(\"throwInstanceAlreadyDeleted\",false);unexportedRuntimeFunction(\"ClassHandle_clone\",false);unexportedRuntimeFunction(\"ClassHandle_delete\",false);unexportedRuntimeFunction(\"deletionQueue\",false);unexportedRuntimeFunction(\"ClassHandle_isDeleted\",false);unexportedRuntimeFunction(\"ClassHandle_deleteLater\",false);unexportedRuntimeFunction(\"flushPendingDeletes\",false);unexportedRuntimeFunction(\"delayFunction\",false);unexportedRuntimeFunction(\"setDelayFunction\",false);unexportedRuntimeFunction(\"RegisteredClass\",false);unexportedRuntimeFunction(\"shallowCopyInternalPointer\",false);unexportedRuntimeFunction(\"downcastPointer\",false);unexportedRuntimeFunction(\"upcastPointer\",false);unexportedRuntimeFunction(\"validateThis\",false);unexportedRuntimeFunction(\"char_0\",false);unexportedRuntimeFunction(\"char_9\",false);unexportedRuntimeFunction(\"makeLegalFunctionName\",false);unexportedRuntimeFunction(\"emval_handle_array\",false);unexportedRuntimeFunction(\"emval_free_list\",false);unexportedRuntimeFunction(\"emval_symbols\",false);unexportedRuntimeFunction(\"init_emval\",false);unexportedRuntimeFunction(\"count_emval_handles\",false);unexportedRuntimeFunction(\"get_first_emval\",false);unexportedRuntimeFunction(\"getStringOrSymbol\",false);unexportedRuntimeFunction(\"Emval\",false);unexportedRuntimeFunction(\"emval_newers\",false);unexportedRuntimeFunction(\"craftEmvalAllocator\",false);unexportedRuntimeFunction(\"emval_get_global\",false);unexportedRuntimeFunction(\"emval_methodCallers\",false);unexportedRuntimeFunction(\"emval_registeredMethods\",false);unexportedRuntimeFunction(\"warnOnce\",false);unexportedRuntimeFunction(\"stackSave\",false);unexportedRuntimeFunction(\"stackRestore\",false);unexportedRuntimeFunction(\"stackAlloc\",false);unexportedRuntimeFunction(\"AsciiToString\",false);unexportedRuntimeFunction(\"stringToAscii\",false);unexportedRuntimeFunction(\"UTF16ToString\",false);unexportedRuntimeFunction(\"stringToUTF16\",false);unexportedRuntimeFunction(\"lengthBytesUTF16\",false);unexportedRuntimeFunction(\"UTF32ToString\",false);unexportedRuntimeFunction(\"stringToUTF32\",false);unexportedRuntimeFunction(\"lengthBytesUTF32\",false);unexportedRuntimeFunction(\"allocateUTF8\",false);unexportedRuntimeFunction(\"allocateUTF8OnStack\",false);Module[\"writeStackCookie\"]=writeStackCookie;Module[\"checkStackCookie\"]=checkStackCookie;unexportedRuntimeSymbol(\"ALLOC_NORMAL\",false);unexportedRuntimeSymbol(\"ALLOC_STACK\",false);var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function stackCheckInit(){_emscripten_stack_init();writeStackCookie()}function run(args){args=args||arguments_;if(runDependencies>0){return}stackCheckInit();preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();assert(!Module[\"_main\"],'compiled without a main, but one is present. if you added it from JS, use Module[\"onRuntimeInitialized\"]');postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}checkStackCookie()}Module[\"run\"]=run;function checkUnflushedContent(){var oldOut=out;var oldErr=err;var has=false;out=err=(x=>{has=true});try{___stdio_exit();[\"stdout\",\"stderr\"].forEach(function(name){var info=FS.analyzePath(\"/dev/\"+name);if(!info)return;var stream=info.object;var rdev=stream.rdev;var tty=TTY.ttys[rdev];if(tty&&tty.output&&tty.output.length){has=true}})}catch(e){}out=oldOut;err=oldErr;if(has){warnOnce(\"stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.\")}}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module[\"onExit\"])Module[\"onExit\"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();module.exports=Module;\n","export default (gl, openWebglAlignment) => {\n var vertexShaderScript = [\n 'attribute vec4 vertexPos;',\n 'attribute vec4 texturePos;',\n 'varying vec2 textureCoord;',\n\n 'void main()',\n '{',\n 'gl_Position = vertexPos;',\n 'textureCoord = texturePos.xy;',\n '}'\n ].join('\\n');\n\n var fragmentShaderScript = [\n 'precision highp float;',\n 'varying highp vec2 textureCoord;',\n 'uniform sampler2D ySampler;',\n 'uniform sampler2D uSampler;',\n 'uniform sampler2D vSampler;',\n 'const mat4 YUV2RGB = mat4',\n '(',\n '1.1643828125, 0, 1.59602734375, -.87078515625,',\n '1.1643828125, -.39176171875, -.81296875, .52959375,',\n '1.1643828125, 2.017234375, 0, -1.081390625,',\n '0, 0, 0, 1',\n ');',\n\n 'void main(void) {',\n 'highp float y = texture2D(ySampler, textureCoord).r;',\n 'highp float u = texture2D(uSampler, textureCoord).r;',\n 'highp float v = texture2D(vSampler, textureCoord).r;',\n 'gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;',\n '}'\n ].join('\\n');\n\n if (openWebglAlignment) {\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n }\n var vertexShader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(vertexShader, vertexShaderScript);\n gl.compileShader(vertexShader);\n if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {\n console.log('Vertex shader failed to compile: ' + gl.getShaderInfoLog(vertexShader));\n }\n\n var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n gl.shaderSource(fragmentShader, fragmentShaderScript);\n gl.compileShader(fragmentShader);\n if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n console.log('Fragment shader failed to compile: ' + gl.getShaderInfoLog(fragmentShader));\n }\n\n var program = gl.createProgram();\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n console.log('Program failed to compile: ' + gl.getProgramInfoLog(program));\n }\n\n gl.useProgram(program);\n\n // initBuffers\n var vertexPosBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, vertexPosBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1, 1, -1, 1, 1, -1, -1, -1]), gl.STATIC_DRAW);\n\n var vertexPosRef = gl.getAttribLocation(program, 'vertexPos');\n gl.enableVertexAttribArray(vertexPosRef);\n gl.vertexAttribPointer(vertexPosRef, 2, gl.FLOAT, false, 0, 0);\n\n var texturePosBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texturePosBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1, 0, 0, 0, 1, 1, 0, 1]), gl.STATIC_DRAW);\n\n var texturePosRef = gl.getAttribLocation(program, 'texturePos');\n gl.enableVertexAttribArray(texturePosRef);\n gl.vertexAttribPointer(texturePosRef, 2, gl.FLOAT, false, 0, 0);\n\n function _initTexture(name, index) {\n var textureRef = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, textureRef);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.uniform1i(gl.getUniformLocation(program, name), index);\n return textureRef;\n }\n\n var yTextureRef = _initTexture('ySampler', 0);\n var uTextureRef = _initTexture('uSampler', 1);\n var vTextureRef = _initTexture('vSampler', 2);\n\n return {\n render: function (w, h, y, u, v) {\n gl.viewport(0, 0, w, h);\n gl.activeTexture(gl.TEXTURE0);\n gl.bindTexture(gl.TEXTURE_2D, yTextureRef);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, w, h, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, y);\n gl.activeTexture(gl.TEXTURE1);\n gl.bindTexture(gl.TEXTURE_2D, uTextureRef);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, w / 2, h / 2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, u);\n gl.activeTexture(gl.TEXTURE2);\n gl.bindTexture(gl.TEXTURE_2D, vTextureRef);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, w / 2, h / 2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, v);\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);\n },\n destroy: function () {\n try {\n gl.deleteProgram(program);\n\n gl.deleteBuffer(vertexPosBuffer)\n gl.deleteBuffer(texturePosBuffer);\n\n gl.deleteTexture(yTextureRef);\n gl.deleteTexture(uTextureRef);\n gl.deleteTexture(vTextureRef);\n } catch (e) {\n // console.error(e);\n }\n\n }\n }\n};\n","// 播放协议\nexport const PLAYER_PLAY_PROTOCOL = {\n websocket: 0,\n fetch: 1,\n webrtc: 2,\n}\n\nexport const DEMUX_TYPE = {\n flv: 'flv',\n m7s: 'm7s'\n}\n\nexport const FILE_SUFFIX = {\n mp4: 'mp4',\n webm: 'webm'\n};\n\nexport const MEDIA_SOURCE_UPDATE_END_TIMEOUT = 10 * 1000\n\nexport const CONTAINER_DATA_SET_KEY = 'jessibuca'\n\nexport const VERSION = '__VERSION__'\n\n\n// default player options\nexport const DEFAULT_PLAYER_OPTIONS = {\n videoBuffer: 1000, //1000ms 1 second\n videoBufferDelay: 1000,// 1000ms\n isResize: true,\n isFullResize: false, //\n isFlv: false,\n debug: false,\n hotKey: false, // 快捷键\n loadingTimeout: 10, // loading timeout\n heartTimeout: 5, // heart timeout\n timeout: 10, // second\n loadingTimeoutReplay: true, // loading timeout replay. default is true\n heartTimeoutReplay: true,// heart timeout replay.\n loadingTimeoutReplayTimes: 3, // loading timeout replay fail times\n heartTimeoutReplayTimes: 3, // heart timeout replay fail times\n supportDblclickFullscreen: false, // support double click toggle fullscreen\n showBandwidth: false, // show band width\n keepScreenOn: false, //\n isNotMute: false, //\n hasAudio: true, // has audio\n hasVideo: true, // has video\n operateBtns: {\n fullscreen: false,\n screenshot: false,\n play: false,\n audio: false,\n record: false,\n },\n controlAutoHide: false, // control auto hide\n hasControl: false,\n loadingText: '', // loading Text\n background: '',\n decoder: 'decoder.js',\n url: '',// play url\n rotate: 0, //\n // text: '',\n forceNoOffscreen: true, // 默认是不采用\n hiddenAutoPause: false, //\n protocol: PLAYER_PLAY_PROTOCOL.fetch,\n demuxType: DEMUX_TYPE.flv, // demux type\n useWCS: false, //\n wcsUseVideoRender: false,// 默认设置为true\n useMSE: false, //\n useOffscreen: false, //\n autoWasm: true, // 自动降级到 wasm 模式\n wasmDecodeErrorReplay: true, // 解码失败重新播放。\n openWebglAlignment: false,// https://github.com/langhuihui/jessibuca/issues/152\n wasmDecodeAudioSyncVideo: false,// wasm 解码之后音视频同步\n recordType: FILE_SUFFIX.webm,\n useWebFullScreen: false, // use web full screen\n initDecoderWorkerTimeout: 10 //\n}\n\n\nexport const WORKER_CMD_TYPE = {\n init: 'init',\n initVideo: 'initVideo',\n render: 'render',\n playAudio: 'playAudio',\n initAudio: 'initAudio',\n kBps: 'kBps',\n decode: 'decode',\n audioCode: 'audioCode',\n videoCode: 'videoCode',\n wasmError: 'wasmError'\n}\n\nexport const WASM_ERROR = {\n invalidNalUnitSize: 'Invalid NAL unit size',\n // errorSplittingTheInputIntoNALUnits: 'Error splitting the input into NAL units'\n}\n\nexport const MEDIA_TYPE = {\n audio: 1,\n video: 2\n}\n\nexport const FLV_MEDIA_TYPE = {\n audio: 8,\n video: 9\n}\n\nexport const WORKER_SEND_TYPE = {\n init: 'init',\n decode: 'decode',\n audioDecode: 'audioDecode',\n videoDecode: 'videoDecode',\n close: 'close',\n updateConfig: 'updateConfig'\n}\n\n\n//\nexport const EVENTS = {\n fullscreen: 'fullscreen$2',\n webFullscreen: 'webFullscreen',\n decoderWorkerInit: 'decoderWorkerInit',\n play: 'play',\n playing: 'playing',\n pause: 'pause',\n mute: 'mute',\n load: 'load',\n loading: 'loading',\n videoInfo: 'videoInfo',\n timeUpdate: 'timeUpdate',\n audioInfo: \"audioInfo\",\n log: 'log',\n error: \"error\",\n kBps: 'kBps',\n timeout: 'timeout',\n delayTimeout: 'delayTimeout',\n loadingTimeout: 'loadingTimeout',\n stats: 'stats',\n performance: \"performance\",\n record: 'record',\n recording: 'recording',\n recordingTimestamp: 'recordingTimestamp',\n recordStart: 'recordStart',\n recordEnd: 'recordEnd',\n recordCreateError: 'recordCreateError',\n buffer: 'buffer',\n videoFrame: 'videoFrame',\n start: 'start',\n metadata: 'metadata',\n resize: 'resize',\n streamEnd: 'streamEnd',\n streamSuccess: 'streamSuccess',\n streamMessage: 'streamMessage',\n streamError: 'streamError',\n volumechange: 'volumechange',\n volume: 'volume',\n destroy: 'destroy',\n mseSourceOpen: 'mseSourceOpen',\n mseSourceClose: 'mseSourceClose',\n mseSourceBufferError: 'mseSourceBufferError',\n mseSourceBufferBusy: 'mseSourceBufferBusy',\n mseSourceBufferFull: 'mseSourceBufferFull',\n videoWaiting: 'videoWaiting',\n videoTimeUpdate: 'videoTimeUpdate',\n videoSyncAudio: 'videoSyncAudio',\n playToRenderTimes: 'playToRenderTimes'\n}\n\n\nexport const JESSIBUCA_EVENTS = {\n load: EVENTS.load,\n timeUpdate: EVENTS.timeUpdate,\n videoInfo: EVENTS.videoInfo,\n audioInfo: EVENTS.audioInfo,\n error: EVENTS.error,\n kBps: EVENTS.kBps,\n log: EVENTS.log,\n start: EVENTS.start,\n timeout: EVENTS.timeout,\n loadingTimeout: EVENTS.loadingTimeout,\n delayTimeout: EVENTS.delayTimeout,\n fullscreen: 'fullscreen',\n webFullscreen: EVENTS.webFullscreen,\n play: EVENTS.play,\n pause: EVENTS.pause,\n mute: EVENTS.mute,\n stats: EVENTS.stats,\n volumechange: EVENTS.volumechange,\n performance: EVENTS.performance,\n recordingTimestamp: EVENTS.recordingTimestamp,\n recordStart: EVENTS.recordStart,\n recordEnd: EVENTS.recordEnd,\n playToRenderTimes: EVENTS.playToRenderTimes,\n volume: EVENTS.volume\n}\n\nexport const EVENTS_ERROR = {\n playError: 'playIsNotPauseOrUrlIsNull',\n fetchError: \"fetchError\",\n websocketError: 'websocketError',\n webcodecsH265NotSupport: 'webcodecsH265NotSupport',\n webcodecsConfigureError: 'webcodecsConfigureError',\n webcodecsDecodeError: 'webcodecsDecodeError',\n webcodecsWidthOrHeightChange: 'webcodecsWidthOrHeightChange',\n mediaSourceH265NotSupport: 'mediaSourceH265NotSupport',\n mediaSourceFull: EVENTS.mseSourceBufferFull,\n mseSourceBufferError: EVENTS.mseSourceBufferError,\n mediaSourceAppendBufferError: 'mediaSourceAppendBufferError',\n mediaSourceBufferListLarge: 'mediaSourceBufferListLarge',\n mediaSourceAppendBufferEndTimeout: 'mediaSourceAppendBufferEndTimeout',\n wasmDecodeError: 'wasmDecodeError',\n webglAlignmentError: 'webglAlignmentError'\n}\n\n\nexport const WEBSOCKET_STATUS = {\n notConnect: 'notConnect',\n open: 'open',\n close: 'close',\n error: 'error'\n}\n\nexport const BUFFER_STATUS = {\n empty: 'empty',\n buffering: 'buffering',\n full: 'full'\n}\n\n\nexport const SCREENSHOT_TYPE = {\n download: 'download',\n base64: 'base64',\n blob: 'blob'\n}\n\n\nexport const VIDEO_ENC_TYPE = {\n 7: 'H264(AVC)', //\n 12: 'H265(HEVC)' //\n}\n\nexport const VIDEO_ENC_CODE = {\n h264: 7,\n h265: 12\n}\n\n\nexport const AUDIO_ENC_TYPE = {\n 10: 'AAC',\n 7: 'ALAW',\n 8: 'MULAW'\n}\n\nexport const H265_NAL_TYPE = {\n vps: 32,\n sps: 33,\n pps: 34\n}\n\nexport const CONTROL_HEIGHT = 38\n\nexport const SCALE_MODE_TYPE = {\n full: 0, // 视频画面完全填充canvas区域,画面会被拉伸\n auto: 1, // 视频画面做等比缩放后,高或宽对齐canvas区域,画面不被拉伸,但有黑边\n fullAuto: 2 // 视频画面做等比缩放后,完全填充canvas区域,画面不被拉伸,没有黑边,但画面显示不全\n}\n\n\nexport const CANVAS_RENDER_TYPE = {\n webcodecs: 'webcodecs',\n webgl: 'webgl',\n offscreen: 'offscreen'\n}\n\nexport const ENCODED_VIDEO_TYPE = {\n key: 'key',\n delta: 'delta'\n}\n\n\nexport const MP4_CODECS = {\n avc: 'video/mp4; codecs=\"avc1.64002A\"',\n hev: 'video/mp4; codecs=\"hev1.1.6.L123.b0\"',\n}\n\n\nexport const MEDIA_SOURCE_STATE = {\n ended: 'ended',\n open: 'open',\n closed: 'closed'\n}\n\n\n// frag duration\nexport const FRAG_DURATION = Math.ceil(1000 / 25)\n\n\nexport const AUDIO_SYNC_VIDEO_DIFF = 1000;\n\n\nexport const HOT_KEY = {\n esc: 27, //\n arrowUp: 38, //\n arrowDown: 40, //\n}\nexport const WCS_ERROR = {\n keyframeIsRequiredError: 'A key frame is required after configure() or flush()',\n canNotDecodeClosedCodec: \"Cannot call 'decode' on a closed codec\"\n}\n\n\nexport const FETCH_ERROR = {\n abortError1: 'The user aborted a request',\n abortError2: 'AbortError',\n abort: 'AbortError'\n}\n\nexport const FRAME_HEADER_EX = 0x80\n\n\nexport const PACKET_TYPE_EX = {\n PACKET_TYPE_SEQ_START: 0,\n PACKET_TYPE_FRAMES: 1,\n PACKET_TYPE_FRAMESX: 3,\n};\n\n\nexport const FRAME_TYPE_EX = {\n FT_KEY: 0x10,\n FT_INTER: 0x20\n};\n\n\n\n","/*!\n* screenfull\n* v5.1.0 - 2020-12-24\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element, options) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen](options);\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element, options) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element, options);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import {MP4_CODECS, FILE_SUFFIX} from \"../constant\";\nimport screenfull from \"screenfull\";\n\nexport function noop() {\n}\n\n\nexport function supportOffscreen($canvas) {\n return typeof $canvas.transferControlToOffscreen === 'function';\n}\n\n\nexport function supportOffscreenV2() {\n return typeof OffscreenCanvas !== \"undefined\";\n}\n\n\nexport function createContextGL($canvas) {\n let gl = null;\n\n const validContextNames = [\"webgl\", \"experimental-webgl\", \"moz-webgl\", \"webkit-3d\"];\n let nameIndex = 0;\n\n while (!gl && nameIndex < validContextNames.length) {\n const contextName = validContextNames[nameIndex];\n\n try {\n let contextOptions = {preserveDrawingBuffer: true};\n gl = $canvas.getContext(contextName, contextOptions);\n } catch (e) {\n gl = null;\n }\n\n if (!gl || typeof gl.getParameter !== \"function\") {\n gl = null;\n }\n\n ++nameIndex;\n }\n\n\n return gl;\n}\n\n\nexport function audioContextUnlock(context) {\n context.resume();\n const source = context.createBufferSource();\n source.buffer = context.createBuffer(1, 1, 22050);\n source.connect(context.destination);\n if (source.noteOn) {\n source.noteOn(0);\n } else {\n source.start(0);\n }\n}\n\nexport function dataURLToFile(dataURL = '') {\n const arr = dataURL.split(\",\");\n const bstr = atob(arr[1]);\n const type = arr[0].replace(\"data:\", \"\").replace(\";base64\", \"\")\n let n = bstr.length, u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n return new File([u8arr], 'file', {type});\n}\n\nexport function downloadFile(file, fileName) {\n if (file instanceof Blob || file instanceof File) {\n file = new Blob([file]);\n }\n const aLink = document.createElement(\"a\");\n aLink.download = fileName;\n aLink.href = file;\n aLink.click();\n}\n\n\nexport function downloadImg(content, fileName) {\n const aLink = document.createElement(\"a\");\n aLink.download = fileName;\n const href = URL.createObjectURL(content);\n aLink.href = href;\n aLink.click();\n setTimeout(() => {\n URL.revokeObjectURL(href);\n }, isIOS() ? 1000 : 0)\n}\n\nexport function checkFull() {\n let isFull = document.fullscreenElement || window.webkitFullscreenElement || document.msFullscreenElement;\n if (isFull === undefined) isFull = false;\n return !!isFull;\n}\n\nexport function now() {\n return new Date().getTime();\n}\n\nexport const supportedWasm = (() => {\n try {\n if (typeof WebAssembly === \"object\"\n && typeof WebAssembly.instantiate === \"function\") {\n const module = new WebAssembly.Module(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00));\n if (module instanceof WebAssembly.Module)\n return new WebAssembly.Instance(module) instanceof WebAssembly.Instance;\n }\n } catch (e) {\n }\n return false;\n})();\n\nexport function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function setStyle(element, key, value) {\n if (!element) {\n return\n }\n if (typeof key === 'object') {\n Object.keys(key).forEach(item => {\n setStyle(element, item, key[item]);\n });\n }\n element.style[key] = value;\n return element;\n}\n\n\nexport function getStyle(element, key, numberType = true) {\n if (!element) {\n return 0\n }\n\n const value = getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function getNowTime() {\n if (performance && typeof performance.now === 'function') {\n return performance.now();\n }\n return Date.now();\n}\n\nexport function calculationRate(callback) {\n let totalSize = 0;\n let lastTime = getNowTime();\n return size => {\n totalSize += size;\n const thisTime = getNowTime();\n const diffTime = thisTime - lastTime;\n if (diffTime >= 1000) {\n callback((totalSize / diffTime) * 1000);\n lastTime = thisTime;\n totalSize = 0;\n }\n };\n}\n\nexport function downloadRecord(blob, name, suffix) {\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = (name || now()) + '.' + (suffix || FILE_SUFFIX.webm);\n a.click();\n setTimeout(() => {\n window.URL.revokeObjectURL(url);\n }, isIOS() ? 1000 : 0)\n}\n\nexport const env = '__ENV__';\n\nexport function isMobile() {\n return (/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase()));\n}\n\nexport function isPad(){\n return (/ipad|android(?!.*mobile)|tablet|kindle|silk/i.test(window.navigator.userAgent.toLowerCase()));\n}\n\nexport function isAndroid() {\n const UA = window.navigator.userAgent.toLowerCase();\n return (/android/i.test(UA));\n}\n\nexport function isIOS() {\n const UA = window.navigator.userAgent.toLowerCase();\n return UA && /iphone|ipad|ipod|ios/.test(UA);\n}\n\n\nexport function parseTime(time, cFormat) {\n if (arguments.length === 0) {\n return null\n }\n var format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'\n var date;\n if (typeof time === 'object') {\n date = time\n } else {\n if (('' + time).length === 10) time = parseInt(time) * 1000;\n time = +time; // 转成int 型\n date = new Date(time)\n }\n var formatObj = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n };\n var time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {\n var value = formatObj[key]\n if (key === 'a') return ['一', '二', '三', '四', '五', '六', '日'][value - 1]\n if (result.length > 0 && value < 10) {\n value = '0' + value\n }\n return value || 0\n });\n return time_str\n}\n\n// 是否支持 webcodecs\nexport function supportWCS() {\n return \"VideoEncoder\" in window;\n}\n\nexport function toNumber(value) {\n if (typeof value !== 'string') {\n return value;\n } else {\n // 转换成 number 类型\n var parsed = Number(value);\n return isNaN(parsed) ? value : parsed;\n }\n}\n\nexport function uuid16() {\n return 'xxxxxxxxxxxx4xxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8)\n return v.toString(16)\n })\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n\n return fn;\n}\n\n\nexport function isDef(v) {\n return v !== undefined && v !== null;\n}\n\nexport function formatVideoDecoderConfigure(avcC) {\n let codecArray = avcC.subarray(1, 4);\n let codecString = \"avc1.\";\n for (let j = 0; j < 3; j++) {\n let h = codecArray[j].toString(16);\n if (h.length < 2) {\n h = \"0\" + h\n }\n codecString += h\n }\n\n return {\n codec: codecString,\n description: avcC\n }\n}\n\nexport function isFullScreen() {\n return screenfull.isFullscreen\n}\n\nexport function bpsSize(value) {\n if (null == value || value === '' || parseInt(value) === 0 || isNaN(parseInt(value))) {\n return \"0KB/s\";\n }\n let size = parseFloat(value);\n size = size.toFixed(2);\n return size + 'KB/s';\n}\n\n\nexport function fpsStatus(fps) {\n let result = 0;\n if (fps >= 24) {\n result = 2;\n } else if (fps >= 15) {\n result = 1;\n }\n\n return result;\n}\n\nexport function createEmptyImageBitmap(width, height) {\n const $canvasElement = document.createElement(\"canvas\");\n $canvasElement.width = width;\n $canvasElement.height = height;\n return window.createImageBitmap($canvasElement, 0, 0, width, height);\n}\n\n\nexport function supportMSE() {\n return window.MediaSource && window.MediaSource.isTypeSupported(MP4_CODECS.avc);\n}\n\nexport function supportMediaStreamTrack() {\n return window.MediaStreamTrackGenerator && typeof window.MediaStreamTrackGenerator === 'function'\n}\n\n\nexport function formatMp4VideoCodec(codec) {\n return `video/mp4; codecs=\"${codec}\"`\n}\n\n\nexport function saveBlobToFile(fileName, blob) {\n let url = window.URL.createObjectURL(blob);\n let aLink = window.document.createElement('a');\n aLink.download = fileName;\n aLink.href = url;\n //创建内置事件并触发\n let evt = window.document.createEvent('MouseEvents');\n evt.initEvent(\"click\", true, true); //initEvent 不加后两个参数在FF下会报错 事件类型,是否冒泡,是否阻止浏览器的默认行为\n aLink.dispatchEvent(evt);\n setTimeout(() => {\n window.URL.revokeObjectURL(url);\n }, isIOS() ? 1000 : 0)\n}\n\nexport function isEmpty(value) {\n return value === null || value === undefined\n}\n\nexport function isBoolean(value) {\n return value === true || value === false;\n}\n\nexport function isNotEmpty(value) {\n return !isEmpty(value)\n}\n\nexport function initPlayTimes() {\n return {\n playInitStart: '', //1\n playStart: '', // 2\n streamStart: '', //3\n streamResponse: '', // 4\n demuxStart: '', // 5\n decodeStart: '', // 6\n videoStart: '', // 7\n playTimestamp: '',// playStart- playInitStart\n streamTimestamp: '',// streamStart - playStart\n streamResponseTimestamp: '',// streamResponse - streamStart\n demuxTimestamp: '', // demuxStart - streamResponse\n decodeTimestamp: '', // decodeStart - demuxStart\n videoTimestamp: '',// videoStart - decodeStart\n allTimestamp: '' // videoStart - playInitStart\n }\n}\n\n// create watermark\nexport function createWatermark(options) {\n let defaultConfig = {\n container: '',\n left: '',\n right: '',\n top: '',\n bottom: '',\n image: {\n src: '',\n width: '100',\n height: '60',\n },\n text: {\n content: '',\n fontSize: '14',\n color: '#000'\n },\n }\n defaultConfig = Object.assign(defaultConfig, options)\n\n const $container = defaultConfig.container;\n\n if ($container) {\n return\n }\n\n let shadowRoot = null;\n const otDiv = document.createElement('div');\n otDiv.setAttribute('style', 'pointer-events: none !important; display: block !important');\n\n if (typeof otDiv.attachShadow === \"function\") {\n shadowRoot = otDiv.attachShadow({mode: 'open'});\n } else if (otDiv.shadowRoot) {\n shadowRoot = otDiv.shadowRoot;\n } else {\n shadowRoot = otDiv;\n }\n\n const nodeList = $container.children;\n const index = Math.floor(Math.random() * (nodeList.length - 1));\n\n if (nodeList[index]) {\n $container.insertBefore(otDiv, nodeList[index]);\n } else {\n $container.appendChild(otDiv);\n }\n\n\n const maskDiv = document.createElement('div');\n let innerDom = null;\n if (defaultConfig.text && defaultConfig.text.content) {\n innerDom = document.createTextNode(defaultConfig.text);\n } else if (defaultConfig.image && defaultConfig.image.src) {\n innerDom = document.createElement('img')\n innerDom.style.height = '100%'\n innerDom.style.width = '100%'\n innerDom.src = defaultConfig.image.src;\n }\n\n if (!innerDom) {\n return;\n }\n\n maskDiv.appendChild(innerDom);\n\n maskDiv.style.visibility = '';\n maskDiv.style.position = \"absolute\";\n maskDiv.style.display = 'block'\n maskDiv.style['-ms-user-select'] = \"none\";\n maskDiv.style.left = defaultConfig.left;\n maskDiv.style.right = defaultConfig.right;\n maskDiv.style.top = defaultConfig.top;\n maskDiv.style.bottom = defaultConfig.bottom;\n maskDiv.style.overflow = 'hidden';\n maskDiv.style.zIndex = \"9999999\";\n if (defaultConfig.text && defaultConfig.text.content) {\n maskDiv.style.fontSize = defaultConfig.text.fontSize;\n maskDiv.style.color = defaultConfig.text.color;\n } else if (defaultConfig.image && defaultConfig.image.src) {\n maskDiv.style.width = defaultConfig.image.width + 'px';\n maskDiv.style.height = defaultConfig.image.height + 'px';\n }\n\n shadowRoot.appendChild(maskDiv)\n\n // remove function\n return () => {\n $container.removeChild(otDiv);\n }\n}\n\nexport function formatTimeTips(time) {\n var result;\n\n //\n if (time > -1) {\n var hour = Math.floor(time / 3600);\n var min = Math.floor(time / 60) % 60;\n var sec = time % 60;\n\n sec = Math.round(sec);\n\n if (hour < 10) {\n result = '0' + hour + \":\";\n } else {\n result = hour + \":\";\n }\n\n if (min < 10) {\n result += \"0\";\n }\n result += min + \":\";\n if (sec < 10) {\n result += \"0\";\n }\n result += sec.toFixed(0);\n }\n\n return result;\n}\n\nexport function getTarget(e) {\n const event = e || window.event;\n const target = event.target || event.srcElement;\n return target;\n}\n\nexport function isWebglRenderSupport(width) {\n return (width / 2) % 4 === 0\n}\n\nexport function isGreenYUV(arrayBuffer) {\n let zeroNum = 0;\n for (let i = 0; i < 10; i++) {\n let temp = arrayBuffer[i];\n if (temp === 0) {\n zeroNum += 1\n }\n }\n return zeroNum === 10;\n}\n\nexport function getBrowser() {\n const UserAgent = navigator.userAgent.toLowerCase();\n const browserInfo = {};\n const browserArray = {\n IE: window.ActiveXObject || \"ActiveXObject\" in window, // IE\n Chrome: UserAgent.indexOf('chrome') > -1 && UserAgent.indexOf('safari') > -1, // Chrome浏览器\n Firefox: UserAgent.indexOf('firefox') > -1, // 火狐浏览器\n Opera: UserAgent.indexOf('opera') > -1, // Opera浏览器\n Safari: UserAgent.indexOf('safari') > -1 && UserAgent.indexOf('chrome') == -1, // safari浏览器\n Edge: UserAgent.indexOf('edge') > -1, // Edge浏览器\n QQBrowser: /qqbrowser/.test(UserAgent), // qq浏览器\n WeixinBrowser: /MicroMessenger/i.test(UserAgent) // 微信浏览器\n };\n // console.log(browserArray)\n for (let i in browserArray) {\n if (browserArray[i]) {\n let versions = '';\n if (i === 'IE') {\n versions = UserAgent.match(/(msie\\s|trident.*rv:)([\\w.]+)/)[2];\n } else if (i === 'Chrome') {\n for (let mt in navigator.mimeTypes) {\n //检测是否是360浏览器(测试只有pc端的360才起作用)\n if (navigator.mimeTypes[mt]['type'] === 'application/360softmgrplugin') {\n i = '360';\n }\n }\n versions = UserAgent.match(/chrome\\/([\\d.]+)/)[1];\n } else if (i === 'Firefox') {\n versions = UserAgent.match(/firefox\\/([\\d.]+)/)[1];\n } else if (i === 'Opera') {\n versions = UserAgent.match(/opera\\/([\\d.]+)/)[1];\n } else if (i === 'Safari') {\n versions = UserAgent.match(/version\\/([\\d.]+)/)[1];\n } else if (i === 'Edge') {\n versions = UserAgent.match(/edge\\/([\\d.]+)/)[1];\n } else if (i === 'QQBrowser') {\n versions = UserAgent.match(/qqbrowser\\/([\\d.]+)/)[1];\n }\n browserInfo.type = i;\n browserInfo.version = parseInt(versions);\n }\n }\n return browserInfo;\n}\n\n\nexport function closeVideoFrame(videoFrame) {\n if (videoFrame.close) {\n videoFrame.close()\n } else if (videoFrame.destroy) {\n videoFrame.destroy()\n }\n}\n\n\nexport function removeElement(element) {\n let result = false;\n if (element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n result = true;\n }\n }\n return result;\n}\n\nexport function hevcEncoderNalePacketNotLength(oneNALBuffer, isIframe) {\n const idrBit = 0x10 | 12;\n const nIdrBit = 0x20 | 12;\n let tmp = [];\n if (isIframe) {\n tmp[0] = idrBit;\n } else {\n tmp[0] = nIdrBit;\n }\n tmp[1] = 1;\n //\n tmp[2] = 0;\n tmp[3] = 0;\n tmp[4] = 0;\n\n const arrayBuffer = new Uint8Array(tmp.length + oneNALBuffer.byteLength);\n arrayBuffer.set(tmp, 0);\n arrayBuffer.set(oneNALBuffer, tmp.length);\n return arrayBuffer;\n}\n\n\nexport function isTrue(value) {\n return value === true || value === 'true';\n}\n\nexport function isFalse(value) {\n return value !== true && value !== 'true';\n}\n\nexport function getElementDataset(element, key) {\n if (!element) {\n return '';\n }\n\n if (element.dataset) {\n return element.dataset[key];\n }\n return element.getAttribute('data-' + key);\n}\n\nexport function setElementDataset(element, key, value) {\n if (!element) {\n return;\n }\n\n if (element.dataset) {\n element.dataset[key] = value;\n } else {\n element.setAttribute('data-' + key, value);\n }\n}\n\nexport function removeElementDataset(element, key) {\n if (!element) {\n return;\n }\n\n if (element.dataset) {\n delete element.dataset[key];\n } else {\n element.removeAttribute('data-' + key);\n }\n}\n","import Module from './decoder/decoder';\nimport createWebGL from './utils/webgl';\nimport {WORKER_CMD_TYPE, MEDIA_TYPE, WORKER_SEND_TYPE, ENCODED_VIDEO_TYPE, DEFAULT_PLAYER_OPTIONS} from \"./constant\";\nimport {formatVideoDecoderConfigure, isGreenYUV} from \"./utils\";\n\nif (!Date.now) Date.now = function () {\n return new Date().getTime();\n};\n\nModule.postRun = function () {\n var buffer = [];\n var tempAudioBuffer = [];\n var wcsVideoDecoder = {};\n if (\"VideoEncoder\" in self) {\n wcsVideoDecoder = {\n hasInit: false,\n isEmitInfo: false,\n offscreenCanvas: null,\n offscreenCanvasCtx: null,\n decoder: new VideoDecoder({\n output: function (videoFrame) {\n if (!wcsVideoDecoder.isEmitInfo) {\n decoder.opt.debug && console.log('Jb: [worker] Webcodecs Video Decoder initSize');\n postMessage({\n cmd: WORKER_CMD_TYPE.initVideo,\n w: videoFrame.codedWidth,\n h: videoFrame.codedHeight\n });\n wcsVideoDecoder.isEmitInfo = true;\n wcsVideoDecoder.offscreenCanvas = new OffscreenCanvas(videoFrame.codedWidth, videoFrame.codedHeight);\n wcsVideoDecoder.offscreenCanvasCtx = wcsVideoDecoder.offscreenCanvas.getContext(\"2d\");\n }\n\n wcsVideoDecoder.offscreenCanvasCtx.drawImage(videoFrame, 0, 0, videoFrame.codedWidth, videoFrame.codedHeight);\n let image_bitmap = wcsVideoDecoder.offscreenCanvas.transferToImageBitmap();\n postMessage({\n cmd: WORKER_CMD_TYPE.render,\n buffer: image_bitmap,\n delay: decoder.delay,\n ts: 0\n }, [image_bitmap]);\n\n setTimeout(function () {\n if (videoFrame.close) {\n videoFrame.close();\n } else {\n videoFrame.destroy();\n }\n }, 100);\n\n },\n error: function (error) {\n console.error(error);\n }\n }),\n decode: function (payload, ts) {\n const isIFrame = payload[0] >> 4 === 1;\n if (!wcsVideoDecoder.hasInit) {\n if (isIFrame && payload[1] === 0) {\n const videoCodec = (payload[0] & 0x0F);\n decoder.setVideoCodec(videoCodec);\n const config = formatVideoDecoderConfigure(payload.slice(5));\n wcsVideoDecoder.decoder.configure(config);\n wcsVideoDecoder.hasInit = true;\n }\n } else {\n const chunk = new EncodedVideoChunk({\n data: payload.slice(5),\n timestamp: ts,\n type: isIFrame ? ENCODED_VIDEO_TYPE.key : ENCODED_VIDEO_TYPE.delta\n });\n wcsVideoDecoder.decoder.decode(chunk);\n }\n },\n reset() {\n wcsVideoDecoder.hasInit = false;\n wcsVideoDecoder.isEmitInfo = false;\n wcsVideoDecoder.offscreenCanvas = null;\n wcsVideoDecoder.offscreenCanvasCtx = null;\n }\n };\n }\n\n var decoder = {\n opt: {\n debug: DEFAULT_PLAYER_OPTIONS.debug,\n useOffscreen: DEFAULT_PLAYER_OPTIONS.useOffscreen,\n useWCS: DEFAULT_PLAYER_OPTIONS.useWCS,\n videoBuffer: DEFAULT_PLAYER_OPTIONS.videoBuffer,\n openWebglAlignment: DEFAULT_PLAYER_OPTIONS.openWebglAlignment,\n videoBufferDelay: DEFAULT_PLAYER_OPTIONS.videoBufferDelay\n },\n useOffscreen: function () {\n return decoder.opt.useOffscreen && typeof OffscreenCanvas != 'undefined';\n },\n initAudioPlanar: function (channels, samplerate) {\n postMessage({cmd: WORKER_CMD_TYPE.initAudio, sampleRate: samplerate, channels: channels});\n var outputArray = [];\n var remain = 0;\n this.playAudioPlanar = function (data, len, ts) {\n var frameCount = len;\n var origin = [];\n var start = 0;\n for (var channel = 0; channel < 2; channel++) {\n var fp = Module.HEAPU32[(data >> 2) + channel] >> 2;\n origin[channel] = Module.HEAPF32.subarray(fp, fp + frameCount);\n }\n if (remain) {\n len = 1024 - remain;\n if (frameCount >= len) {\n outputArray[0] = Float32Array.of(...tempAudioBuffer[0], ...origin[0].subarray(0, len));\n if (channels == 2) {\n outputArray[1] = Float32Array.of(...tempAudioBuffer[1], ...origin[1].subarray(0, len));\n }\n postMessage({\n cmd: WORKER_CMD_TYPE.playAudio,\n buffer: outputArray,\n ts\n }, outputArray.map(x => x.buffer));\n start = len;\n frameCount -= len;\n } else {\n remain += frameCount;\n tempAudioBuffer[0] = Float32Array.of(...tempAudioBuffer[0], ...origin[0]);\n if (channels == 2) {\n tempAudioBuffer[1] = Float32Array.of(...tempAudioBuffer[1], ...origin[1]);\n }\n return;\n }\n }\n for (remain = frameCount; remain >= 1024; remain -= 1024) {\n outputArray[0] = origin[0].slice(start, start += 1024);\n if (channels == 2) {\n outputArray[1] = origin[1].slice(start - 1024, start);\n }\n postMessage({\n cmd: WORKER_CMD_TYPE.playAudio,\n buffer: outputArray,\n ts\n }, outputArray.map(x => x.buffer));\n }\n if (remain) {\n tempAudioBuffer[0] = origin[0].slice(start);\n if (channels == 2) {\n tempAudioBuffer[1] = origin[1].slice(start);\n }\n }\n };\n },\n setVideoCodec: function (code) {\n postMessage({cmd: WORKER_CMD_TYPE.videoCode, code});\n },\n setAudioCodec: function (code) {\n postMessage({cmd: WORKER_CMD_TYPE.audioCode, code});\n },\n setVideoSize: function (w, h) {\n postMessage({cmd: WORKER_CMD_TYPE.initVideo, w: w, h: h});\n var size = w * h;\n var qsize = size >> 2;\n if (decoder.useOffscreen()) {\n this.offscreenCanvas = new OffscreenCanvas(w, h);\n this.offscreenCanvasGL = this.offscreenCanvas.getContext(\"webgl\");\n this.webglObj = createWebGL(this.offscreenCanvasGL, decoder.opt.openWebglAlignment);\n this.draw = function (ts, y, u, v) {\n const yData = Module.HEAPU8.subarray(y, y + size);\n const uData = Module.HEAPU8.subarray(u, u + qsize);\n const vData = Module.HEAPU8.subarray(v, v + (qsize));\n // if (isGreenYUV(Uint8Array.from(yData))) {\n // decoder.opt.debug && console.log('Jb: [worker]: draw offscreenCanvas is green yuv');\n // return\n // }\n\n this.webglObj.render(w, h, yData, uData, vData);\n let image_bitmap = this.offscreenCanvas.transferToImageBitmap();\n postMessage({\n cmd: WORKER_CMD_TYPE.render,\n buffer: image_bitmap,\n delay: this.delay,\n ts\n }, [image_bitmap]);\n };\n } else {\n this.draw = function (ts, y, u, v) {\n const yData = Uint8Array.from(Module.HEAPU8.subarray(y, y + size));\n const uData = Uint8Array.from(Module.HEAPU8.subarray(u, u + qsize));\n const vData = Uint8Array.from(Module.HEAPU8.subarray(v, v + (qsize)));\n // if (isGreenYUV(yData)) {\n // decoder.opt.debug && console.log('Jb: [worker]: draw is green yuv');\n // return\n // }\n const outputArray = [yData, uData, vData];\n postMessage({\n cmd: WORKER_CMD_TYPE.render,\n output: outputArray,\n delay: this.delay,\n ts\n }, outputArray.map(x => x.buffer));\n };\n }\n },\n getDelay: function (timestamp) {\n if (!timestamp) {\n return -1;\n }\n if (!this.firstTimestamp) {\n this.firstTimestamp = timestamp;\n this.startTimestamp = Date.now();\n this.delay = -1;\n } else {\n\n if (timestamp) {\n const localTimestamp = (Date.now() - this.startTimestamp);\n const timeTimestamp = (timestamp - this.firstTimestamp);\n if (localTimestamp >= timeTimestamp) {\n this.delay = localTimestamp - timeTimestamp;\n } else {\n this.delay = timeTimestamp - localTimestamp;\n }\n }\n }\n return this.delay;\n },\n resetDelay: function () {\n this.firstTimestamp = null;\n this.startTimestamp = null;\n this.delay = -1;\n },\n\n init: function () {\n decoder.opt.debug && console.log('Jb: [worker] init');\n const _doDecode = (data) => {\n // decoder.opt.debug && console.log('Jb: [worker]: _doDecode');\n if (decoder.opt.useWCS && decoder.useOffscreen() && data.type === MEDIA_TYPE.video && wcsVideoDecoder.decode) {\n wcsVideoDecoder.decode(data.payload, data.ts);\n } else {\n // decoder.opt.debug && console.log('Jb: [worker]: _doDecode wasm');\n data.decoder.decode(data.payload, data.ts);\n }\n };\n const loop = () => {\n if (buffer.length) {\n if (this.dropping) {\n // // dropping\n data = buffer.shift();\n //\n if (data.type === MEDIA_TYPE.audio && data.payload[1] === 0) {\n _doDecode(data);\n }\n while (!data.isIFrame && buffer.length) {\n // dropping\n data = buffer.shift();\n //\n if (data.type === MEDIA_TYPE.audio && data.payload[1] === 0) {\n _doDecode(data);\n }\n }\n if (data.isIFrame) {\n this.dropping = false;\n _doDecode(data);\n }\n } else {\n var data = buffer[0];\n if (this.getDelay(data.ts) === -1) {\n // decoder.opt.debug && console.log('Jb: [worker]: common dumex delay is -1');\n buffer.shift();\n _doDecode(data);\n } else if (this.delay > decoder.opt.videoBuffer + decoder.opt.videoBufferDelay) {\n // decoder.opt.debug && console.log('Jb: [worker]:', `delay is ${this.delay}, set dropping is true`);\n this.resetDelay();\n this.dropping = true;\n } else {\n while (buffer.length) {\n data = buffer[0];\n if (this.getDelay(data.ts) > decoder.opt.videoBuffer) {\n // decoder.opt.debug && console.log('Jb: [worker]:', `delay is ${this.delay}, decode`);\n buffer.shift();\n _doDecode(data);\n } else {\n // decoder.opt.debug && console.log('Jb: [worker]:', `delay is ${this.delay},opt.videoBuffer is ${decoder.opt.videoBuffer}`);\n break;\n }\n }\n }\n }\n }\n else {\n }\n };\n this.stopId = setInterval(loop, 10);\n },\n close: function () {\n decoder.opt.debug && console.log('Jb: [worker]: close');\n clearInterval(this.stopId);\n this.stopId = null;\n audioDecoder.clear && audioDecoder.clear();\n videoDecoder.clear && videoDecoder.clear();\n wcsVideoDecoder.reset && wcsVideoDecoder.reset();\n this.firstTimestamp = null;\n this.startTimestamp = null;\n this.delay = -1;\n this.dropping = false;\n\n if (this.webglObj) {\n this.webglObj.destroy();\n this.offscreenCanvas = null;\n this.offscreenCanvasGL = null;\n this.offscreenCanvasCtx = null;\n }\n buffer = [];\n tempAudioBuffer = [];\n delete this.playAudioPlanar;\n delete this.draw;\n },\n pushBuffer: function (bufferData, options) {\n // 音频\n if (options.type === MEDIA_TYPE.audio) {\n buffer.push({\n ts: options.ts,\n payload: bufferData,\n decoder: audioDecoder,\n type: MEDIA_TYPE.audio,\n });\n } else if (options.type === MEDIA_TYPE.video) {\n buffer.push({\n ts: options.ts,\n payload: bufferData,\n decoder: videoDecoder,\n type: MEDIA_TYPE.video,\n isIFrame: options.isIFrame\n });\n }\n }\n };\n var audioDecoder = new Module.AudioDecoder(decoder);\n var videoDecoder = new Module.VideoDecoder(decoder);\n postMessage({cmd: WORKER_SEND_TYPE.init});\n self.onmessage = function (event) {\n var msg = event.data;\n switch (msg.cmd) {\n case WORKER_SEND_TYPE.init:\n try {\n decoder.opt = Object.assign(decoder.opt, JSON.parse(msg.opt));\n } catch (e) {\n\n }\n audioDecoder.sample_rate = msg.sampleRate;\n decoder.init();\n break;\n case WORKER_SEND_TYPE.decode:\n decoder.pushBuffer(msg.buffer, msg.options);\n break;\n case WORKER_SEND_TYPE.audioDecode:\n audioDecoder.decode(msg.buffer, msg.ts);\n break;\n case WORKER_SEND_TYPE.videoDecode:\n videoDecoder.decode(msg.buffer, msg.ts);\n break;\n case WORKER_SEND_TYPE.close:\n decoder.close();\n break;\n case WORKER_SEND_TYPE.updateConfig:\n decoder.opt[msg.key] = msg.value;\n break;\n }\n };\n};\n"],"names":["Module","print","text","console","log","printErr","warn","postMessage","cmd","message","moduleOverrides","Object","assign","thisProgram","ENVIRONMENT_IS_WEB","window","ENVIRONMENT_IS_WORKER","importScripts","ENVIRONMENT_IS_NODE","process","versions","node","ENVIRONMENT_IS_SHELL","Error","scriptDirectory","locateFile","path","read_","readAsync","readBinary","fs","nodePath","requireNodeFS","require","require$$0","dirname","__dirname","require$$1","shell_read","filename","binary","readFileSync","undefined","ret","buffer","Uint8Array","assert","onload","onerror","readFile","err","data","length","replace","arguments_","slice","module","ex","ExitStatus","reason","read","f","readbuffer","setTimeout","scriptArgs","error","self","location","href","document","currentScript","src","indexOf","substr","lastIndexOf","url","xhr","XMLHttpRequest","open","send","responseText","responseType","response","status","out","bind","checkIncomingModuleAPI","legacyModuleProp","quit_","warnOnce","shown","prop","newName","getOwnPropertyDescriptor","defineProperty","configurable","get","abort","ignoredModuleProp","unexportedMessage","sym","isFSSybol","msg","unexportedRuntimeSymbol","unexportedRuntimeFunction","wasmBinary","WebAssembly","wasmMemory","ABORT","condition","UTF8Decoder","TextDecoder","UTF8ArrayToString","heapOrArray","idx","maxBytesToRead","endIdx","endPtr","decode","subarray","str","u0","String","fromCharCode","u1","u2","toString","ch","UTF8ToString","ptr","HEAPU8","stringToUTF8Array","heap","outIdx","maxBytesToWrite","startIdx","i","u","charCodeAt","stringToUTF8","outPtr","lengthBytesUTF8","len","UTF16Decoder","UTF16ToString","maxIdx","HEAPU16","codeUnit","HEAP16","stringToUTF16","startPtr","numCharsToWrite","lengthBytesUTF16","UTF32ToString","utf32","HEAP32","stringToUTF32","trailSurrogate","lengthBytesUTF32","allocateUTF8","size","_malloc","HEAP8","writeAsciiToMemory","dontAddNull","HEAPU32","HEAPF32","HEAPF64","updateGlobalBufferAndViews","buf","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","TOTAL_STACK","INITIAL_MEMORY","prototype","set","wasmTable","writeStackCookie","max","_emscripten_stack_get_end","checkStackCookie","cookie1","cookie2","h16","h8","__ATPRERUN__","__ATINIT__","__ATPOSTRUN__","runtimeInitialized","preRun","addOnPreRun","shift","callRuntimeCallbacks","initRuntime","FS","init","initialized","ignorePermissions","postRun","addOnPostRun","cb","unshift","addOnInit","Math","imul","fround","clz32","trunc","runDependencies","runDependencyWatcher","dependenciesFulfilled","runDependencyTracking","getUniqueRunDependency","id","orig","random","addRunDependency","setInterval","clearInterval","dep","removeRunDependency","callback","what","e","RuntimeError","dataURIPrefix","isDataURI","startsWith","isFileURI","createExportWrapper","name","fixedasm","displayName","asm","apply","arguments","wasmBinaryFile","getBinary","file","getBinaryPromise","fetch","credentials","then","catch","Promise","resolve","reject","createWasm","info","asmLibraryArg","receiveInstance","instance","exports","trueModule","receiveInstantiationResult","result","instantiateArrayBuffer","receiver","instantiate","instantiateAsync","instantiateStreaming","tempDouble","tempI64","callbacks","func","arg","getWasmTableEntry","demangle","demangleAll","regex","x","y","funcPtr","jsStackTrace","stack","setErrNo","value","___errno_location","PATH","isAbs","charAt","splitPath","splitPathRe","exec","normalizeArray","parts","allowAboveRoot","up","last","splice","normalize","isAbsolute","trailingSlash","split","filter","p","join","root","dir","basename","lastSlash","paths","Array","call","join2","l","r","getRandomDevice","crypto","randomBuffer","getRandomValues","crypto_module","require$$2","PATH_FS","resolvedPath","resolvedAbsolute","cwd","TypeError","relative","from","to","trim","arr","start","end","fromParts","toParts","min","samePartsLength","outputParts","push","concat","TTY","ttys","shutdown","register","dev","ops","input","output","registerDevice","stream_ops","stream","tty","rdev","ErrnoError","seekable","close","flush","offset","pos","get_char","bytesRead","timestamp","Date","now","write","put_char","default_tty_ops","BUFSIZE","Buffer","alloc","readSync","stdin","fd","includes","prompt","readline","intArrayFromString","val","default_tty1_ops","zeroMemory","address","fill","alignMemory","alignment","ceil","mmapAlloc","_emscripten_builtin_memalign","MEMFS","ops_table","mount","createNode","parent","mode","isBlkdev","isFIFO","getattr","node_ops","setattr","lookup","mknod","rename","unlink","rmdir","readdir","symlink","llseek","allocate","mmap","msync","link","readlink","chrdev","chrdev_stream_ops","isDir","contents","isFile","usedBytes","isLink","isChrdev","getFileDataAsTypedArray","expandFileStorage","newCapacity","prevCapacity","CAPACITY_DOUBLING_MAX","oldContents","resizeFileStorage","newSize","attr","ino","nlink","uid","gid","atime","mtime","ctime","blksize","blocks","genericErrors","old_node","new_dir","new_name","new_node","lookupNode","entries","key","hasOwnProperty","newname","oldpath","position","canOwn","ArrayBuffer","whence","prot","flags","allocated","byteOffset","mmapFlags","asyncLoad","noRunDep","arrayBuffer","event","ERRNO_MESSAGES","ERRNO_CODES","mounts","devices","streams","nextInode","nameTable","currentPath","filesystems","syncFSRequests","lookupPath","opts","defaults","follow_mount","recurse_count","current","current_path","islast","isMountpoint","mounted","follow","count","getPath","isRoot","mountpoint","hashName","parentid","hash","hashAddNode","name_next","hashRemoveNode","errCode","mayLookup","nodeName","FSNode","destroyNode","isSocket","flagModes","modeStringToFlags","flagsToPermissionString","flag","perms","nodePermissions","mayCreate","mayDelete","isdir","errno","mayOpen","MAX_OPEN_FDS","nextfd","fd_start","fd_end","getStream","createStream","FSStream","shared","object","isRead","isWrite","isAppend","function","closeStream","device","getDevice","major","minor","makedev","ma","mi","getMounts","check","m","pop","syncfs","populate","completed","doCallback","done","errored","forEach","type","pseudo","mountRoot","unmount","keys","next","create","mkdir","mkdirTree","dirs","d","mkdev","newpath","old_path","new_path","old_dirname","new_dirname","old_name","old_dir","stat","dontFollow","lstat","chmod","lchmod","fchmod","chown","lchown","fchown","truncate","ftruncate","utime","created","ungotten","readFiles","isClosed","getdents","seeking","bytesWritten","munmap","ioctl","encoding","writeFile","actualNumBytes","isView","byteLength","chdir","createDefaultDirectories","createDefaultDevices","random_device","createDevice","createSpecialDirectories","proc_self","createStandardStreams","stdout","stderr","ensureErrnoError","setErrno","code","writable","constructor","staticInit","quit","___stdio_exit","getMode","canRead","canWrite","findObject","dontResolveLastLink","analyzePath","exists","parentExists","parentPath","parentObject","createPath","reverse","part","createFile","properties","createDataFile","forceLoadFile","obj","isDevice","isFolder","createLazyFile","LazyUint8Array","lengthKnown","chunks","LazyUint8Array_get","chunkOffset","chunkSize","chunkNum","getter","setDataGetter","LazyUint8Array_setDataGetter","cacheLength","LazyUint8Array_cacheLength","datalength","Number","getResponseHeader","header","hasByteServing","usesGzip","doXHR","setRequestHeader","overrideMimeType","lazyArray","_length","_chunkSize","defineProperties","fn","forceLoadLazyFile","createPreloadedFile","dontCreateFile","preFinish","fullname","processData","byteArray","finish","Browser","handledByPreloadPlugin","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","DB_NAME","pathname","DB_VERSION","DB_STORE_NAME","saveFilesToDB","openRequest","onupgradeneeded","db","createObjectStore","onsuccess","transaction","files","objectStore","ok","fail","total","putRequest","put","loadFilesFromDB","getRequest","absolutePath","createFolder","createLink","joinPath","standardizePath","SYSCALLS","DEFAULT_POLLMASK","calculateAt","dirfd","allowEmpty","dirstream","doStat","abs","floor","getTime","doMsync","addr","doMknod","doReadlink","bufsize","endChar","doAccess","amode","doReadv","iov","iovcnt","curr","doWritev","varargs","getStr","getStreamFromFD","___syscall_fcntl64","newStream","___syscall_openat","__embind_register_bigint","primitiveType","minRange","maxRange","getShiftFromSize","embind_init_charCodes","codes","embind_charCodes","readLatin1String","c","awaitingDependencies","registeredTypes","typeDependencies","char_0","char_9","makeLegalFunctionName","createNamedFunction","body","Function","extendError","baseErrorType","errorName","errorClass","BindingError","throwBindingError","InternalError","throwInternalError","whenDependentTypesAreResolved","myTypes","dependentTypes","getTypeConverters","onComplete","typeConverters","myTypeConverters","registerType","unregisteredTypes","registered","dt","rawType","registeredInstance","options","ignoreDuplicateRegistrations","__embind_register_bool","trueValue","falseValue","wt","destructors","o","pointer","destructorFunction","ClassHandle_isAliasOf","other","ClassHandle","leftClass","$$","ptrType","registeredClass","left","rightClass","right","baseClass","upcast","shallowCopyInternalPointer","deleteScheduled","preservePointerOnDelete","smartPtr","smartPtrType","throwInstanceAlreadyDeleted","getInstanceTypeName","handle","finalizationRegistry","detachFinalizer","runDestructor","rawDestructor","releaseClassHandle","toDelete","downcastPointer","ptrClass","desiredClass","rv","downcast","registeredPointers","getInheritedInstanceCount","registeredInstances","getLiveInheritedInstances","k","deletionQueue","flushPendingDeletes","delayFunction","setDelayFunction","init_embind","getBasestPointer","class_","getInheritedInstance","makeClassHandle","record","hasSmartPtrType","hasSmartPtr","attachFinalizer","RegisteredPointer_fromWireType","rawPointer","getPointee","destructor","makeDefaultHandle","isSmartPointer","instancePrototype","pointeeType","actualType","getActualType","registeredPointerRecord","toType","isConst","constPointerType","pointerType","dp","FinalizationRegistry","leakWarning","cls","captureStackTrace","unregister","ClassHandle_clone","clone","getPrototypeOf","ClassHandle_delete","ClassHandle_isDeleted","ClassHandle_deleteLater","init_ClassHandle","ensureOverloadTable","proto","methodName","humanName","overloadTable","prevFunc","argCount","exposePublicSymbol","numArguments","RegisteredClass","pureVirtualFunctions","upcastPointer","constNoSmartPtrRawPointerToWireType","isReference","_embind_repr","handleClass","genericPointerToWireType","rawConstructor","sharingPolicy","clonedHandle","rawShare","Emval","toHandle","nonConstNoSmartPtrRawPointerToWireType","simpleReadValueFromPointer","RegisteredPointer_getPointee","rawGetPointee","RegisteredPointer_destructor","RegisteredPointer_deleteObject","init_RegisteredPointer","RegisteredPointer","replacePublicSymbol","dynCallLegacy","sig","args","substring","dynCall","getDynCaller","argCache","embind__requireFunction","signature","rawFunction","makeDynCaller","fp","UnboundTypeError","getTypeName","___getTypeName","_free","throwUnboundTypeError","types","unboundTypes","seen","visit","map","__embind_register_class","rawPointerType","rawConstPointerType","baseClassRawType","getActualTypeSignature","upcastSignature","downcastSignature","destructorSignature","legalFunctionName","base","basePrototype","constructor_body","referenceConverter","pointerConverter","constPointerConverter","heap32VectorToArray","firstElement","array","runDestructors","del","__embind_register_class_constructor","rawClassType","rawArgTypesAddr","invokerSignature","invoker","rawArgTypes","classType","argTypes","craftInvokerFunction","new_","argumentList","dummy","cppInvokerFunc","cppTargetFunc","isClassMethodFunc","needsDestructorStack","returns","argsList","argsListWired","invokerFnBody","dtorStack","args1","args2","paramName","invokerFunction","__embind_register_class_function","rawInvoker","context","isPureVirtual","Symbol","unboundTypesHandler","method","className","memberFunction","validateThis","this_","__embind_register_class_property","fieldName","getterReturnType","getterSignature","getterContext","setterArgumentType","setterSignature","setter","setterContext","desc","enumerable","v","emval_free_list","emval_handle_array","__emval_decref","refcount","count_emval_handles","get_first_emval","init_emval","toValue","__embind_register_emval","t","floatReadValueFromPointer","__embind_register_float","integerReadValueFromPointer","signed","readS8FromPointer","readU8FromPointer","readS16FromPointer","readU16FromPointer","readS32FromPointer","readU32FromPointer","__embind_register_integer","fromWireType","bitshift","isUnsignedType","checkAssertions","toTypeName","toWireType","__embind_register_memory_view","dataTypeIndex","typeMapping","TA","decodeMemoryView","__embind_register_std_string","stdStringIsUTF8","decodeStartPtr","currentBytePtr","maxRead","stringSegment","a","getLength","valueIsOfTypeString","Uint8ClampedArray","charCode","__embind_register_std_wstring","charSize","decodeString","encodeString","getHeap","lengthBytesUTF","HEAP","maxReadBytes","__embind_register_void","isVoid","__emscripten_date_now","requireRegisteredType","impl","__emval_as","returnType","destructorsRef","rd","emval_symbols","getStringOrSymbol","symbol","emval_methodCallers","__emval_call_void_method","caller","__emval_addMethodCaller","__emval_lookupTypes","emval_registeredMethods","__emval_get_method_caller","retType","signatureName","returnId","params","functionName","functionBody","__emval_incref","__emval_run_destructors","__emval_take_value","argv","__gmtime_js","time","tmPtr","date","getUTCSeconds","getUTCMinutes","getUTCHours","getUTCDate","getUTCMonth","getUTCFullYear","getUTCDay","UTC","yday","__localtime_js","getSeconds","getMinutes","getHours","getDate","getMonth","getFullYear","getDay","getTimezoneOffset","summerOffset","winterOffset","dst","__mktime_js","guessedOffset","dstOffset","nonDstOffset","trueOffset","setTime","_tzset_impl","timezone","daylight","tzname","currentYear","winter","summer","stdTimezoneOffset","extractZone","match","toTimeString","winterName","summerName","winterNamePtr","summerNamePtr","__tzset_js","called","_abort","reallyNegative","Infinity","convertI32PairToI53","lo","hi","convertU32PairToI53","reSign","bits","half","pow","unSign","formatString","format","textIndex","argIndex","prepVararg","getNextArg","currArg","startTextIndex","flagAlwaysSigned","flagLeftAlign","flagAlternative","flagZeroPad","flagPadSign","flagsLoop","width","precisionSet","precision","precisionChr","argSize","nextNext","argText","limit","currAbsArg","prefix","parseInt","toUpperCase","chr","isNaN","isFinite","isGeneral","effectivePrecision","exponent","toExponential","test","toFixed","argLength","_strlen","traverseStack","callee","funcname","first","_emscripten_get_callstack_js","callstack","iThisFunc","iThisFunc2","iNextLine","emscripten_source_map","stack_args","lines","newFirefoxRe","RegExp","firefoxRe","chromeRe","line","symbolName","lineno","column","haveSourceMap","originalPositionFor","source","_emscripten_log_js","debug","_emscripten_log","_emscripten_get_heap_max","emscripten_realloc_buffer","grow","_emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","alignUp","multiple","cutDown","overGrownHeapSize","replacement","ENV","getExecutableName","getEnvStrings","strings","lang","navigator","languages","env","_environ_get","__environ","environ_buf","bufSize","string","_environ_sizes_get","penviron_count","penviron_buf_size","_fd_close","_fd_fdstat_get","pbuf","_fd_read","pnum","num","_fd_seek","offset_low","offset_high","newOffset","HIGH_OFFSET","DOUBLE_LIMIT","_fd_write","_setTempRet0","readMode","writeMode","stringy","u8array","numBytesWritten","_emscripten_stack_init","calledRun","runCaller","run","stackCheckInit","doRun","gl","openWebglAlignment","vertexShaderScript","fragmentShaderScript","pixelStorei","UNPACK_ALIGNMENT","vertexShader","createShader","VERTEX_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","fragmentShader","FRAGMENT_SHADER","program","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","useProgram","vertexPosBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","vertexPosRef","getAttribLocation","enableVertexAttribArray","vertexAttribPointer","FLOAT","texturePosBuffer","texturePosRef","_initTexture","index","textureRef","createTexture","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_MAG_FILTER","LINEAR","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","uniform1i","getUniformLocation","yTextureRef","uTextureRef","vTextureRef","render","w","h","viewport","activeTexture","TEXTURE0","texImage2D","LUMINANCE","UNSIGNED_BYTE","TEXTURE1","TEXTURE2","drawArrays","TRIANGLE_STRIP","destroy","deleteProgram","deleteBuffer","deleteTexture","PLAYER_PLAY_PROTOCOL","websocket","webrtc","DEMUX_TYPE","flv","m7s","FILE_SUFFIX","mp4","webm","DEFAULT_PLAYER_OPTIONS","videoBuffer","videoBufferDelay","isResize","isFullResize","isFlv","hotKey","loadingTimeout","heartTimeout","timeout","loadingTimeoutReplay","heartTimeoutReplay","loadingTimeoutReplayTimes","heartTimeoutReplayTimes","supportDblclickFullscreen","showBandwidth","keepScreenOn","isNotMute","hasAudio","hasVideo","operateBtns","fullscreen","screenshot","play","audio","controlAutoHide","hasControl","loadingText","background","decoder","rotate","forceNoOffscreen","hiddenAutoPause","protocol","demuxType","useWCS","wcsUseVideoRender","useMSE","useOffscreen","autoWasm","wasmDecodeErrorReplay","wasmDecodeAudioSyncVideo","recordType","useWebFullScreen","initDecoderWorkerTimeout","WORKER_CMD_TYPE","initVideo","playAudio","initAudio","kBps","audioCode","videoCode","wasmError","MEDIA_TYPE","video","WORKER_SEND_TYPE","audioDecode","videoDecode","updateConfig","ENCODED_VIDEO_TYPE","delta","of","Instance","formatVideoDecoderConfigure","avcC","codecArray","codecString","j","codec","description","tempAudioBuffer","wcsVideoDecoder","hasInit","isEmitInfo","offscreenCanvas","offscreenCanvasCtx","VideoDecoder","videoFrame","opt","codedWidth","codedHeight","OffscreenCanvas","getContext","drawImage","image_bitmap","transferToImageBitmap","delay","ts","payload","isIFrame","videoCodec","setVideoCodec","config","configure","chunk","EncodedVideoChunk","reset","initAudioPlanar","channels","samplerate","sampleRate","outputArray","remain","playAudioPlanar","frameCount","origin","channel","setAudioCodec","setVideoSize","qsize","offscreenCanvasGL","webglObj","createWebGL","draw","yData","uData","vData","getDelay","firstTimestamp","startTimestamp","localTimestamp","timeTimestamp","resetDelay","_doDecode","loop","dropping","stopId","audioDecoder","clear","videoDecoder","pushBuffer","AudioDecoder","onmessage","JSON","parse","sample_rate"],"mappings":";;;;;;;;;;;;;;;;;;;;;CAAA,MAAIA,MAAM,GAAC,OAAOA,MAAP,IAAe,WAAf,GAA2BA,MAA3B,GAAkC,EAA7C;CAAgD,MAAIA,MAAM,GAAC,EAAX;;CAAcA,EAAAA,MAAM,CAACC,KAAP,GAAa,UAASC,IAAT,EAAc;CAACC,IAAAA,OAAO,CAACC,GAAR,CAAY,sBAAZ,EAAmCF,IAAnC;CAAyC,GAArE;;CAAsEF,EAAAA,MAAM,CAACK,QAAP,GAAgB,UAASH,IAAT,EAAc;CAACC,IAAAA,OAAO,CAACG,IAAR,CAAa,sBAAb,EAAoCJ,IAApC;CAA0CK,IAAAA,WAAW,CAAC;CAACC,MAAAA,GAAG,EAAC,WAAL;CAAiBC,MAAAA,OAAO,EAACP;CAAzB,KAAD,CAAX;CAA4C,GAArH;;CAAsH,MAAIQ,eAAe,GAACC,MAAM,CAACC,MAAP,CAAc,EAAd,EAAiBZ,MAAjB,CAApB;CAA+D,MAAIa,WAAW,GAAC,gBAAhB;;CAA6E,MAAIC,kBAAkB,GAAC,OAAOC,MAAP,IAAe,QAAtC;CAA+C,MAAIC,qBAAqB,GAAC,OAAOC,aAAP,IAAsB,UAAhD;CAA2D,MAAIC,mBAAmB,GAAC,OAAOC,OAAP,IAAgB,QAAhB,IAA0B,OAAOA,OAAO,CAACC,QAAf,IAAyB,QAAnD,IAA6D,OAAOD,OAAO,CAACC,QAAR,CAAiBC,IAAxB,IAA8B,QAAnH;CAA4H,MAAIC,oBAAoB,GAAC,CAACR,kBAAD,IAAqB,CAACI,mBAAtB,IAA2C,CAACF,qBAArE;;CAA2F,MAAGhB,MAAM,CAAC,aAAD,CAAT,EAAyB;CAAC,UAAM,IAAIuB,KAAJ,CAAU,kKAAV,CAAN;CAAoL;;CAAA,MAAIC,eAAe,GAAC,EAApB;;CAAuB,WAASC,UAAT,CAAoBC,IAApB,EAAyB;CAAC,QAAG1B,MAAM,CAAC,YAAD,CAAT,EAAwB;CAAC,aAAOA,MAAM,CAAC,YAAD,CAAN,CAAqB0B,IAArB,EAA0BF,eAA1B,CAAP;CAAkD;;CAAA,WAAOA,eAAe,GAACE,IAAvB;CAA4B;;CAAA,MAAIC,KAAJ,EAAUC,SAAV,EAAoBC,UAApB;;CAAwN,MAAIC,EAAJ;CAAO,MAAIC,QAAJ;CAAa,MAAIC,aAAJ;;CAAkB,MAAGd,mBAAH,EAAuB;CAAC,QAAG,EAAE,OAAOC,OAAP,IAAgB,QAAhB,IAA0B,OAAOc,eAAP,IAAgB,UAA5C,CAAH,EAA2D,MAAM,IAAIV,KAAJ,CAAU,wLAAV,CAAN;;CAA0M,QAAGP,qBAAH,EAAyB;CAACQ,MAAAA,eAAe,GAACU,wBAAe,CAACC,OAAhB,CAAwBX,eAAxB,IAAyC,GAAzD;CAA6D,KAAvF,MAA2F;CAACA,MAAAA,eAAe,GAACY,SAAS,GAAC,GAA1B;CAA8B;;CAAAJ,IAAAA,aAAa,GAAE,MAAI;CAAC,UAAG,CAACD,QAAJ,EAAa;CAACD,QAAAA,EAAE,GAACO,sBAAH;CAAiBN,QAAAA,QAAQ,GAACG,wBAAT;CAAyB;CAAC,KAA7E;;CAA+EP,IAAAA,KAAK,GAAC,SAASW,UAAT,CAAoBC,QAApB,EAA6BC,MAA7B,EAAoC;CAACR,MAAAA,aAAa;CAAGO,MAAAA,QAAQ,GAACR,QAAQ,CAAC,WAAD,CAAR,CAAsBQ,QAAtB,CAAT;CAAyC,aAAOT,EAAE,CAACW,YAAH,CAAgBF,QAAhB,EAAyBC,MAAM,GAACE,SAAD,GAAW,MAA1C,CAAP;CAAyD,KAA7J;;CAA8Jb,IAAAA,UAAU,GAAEU,QAAQ,IAAE;CAAC,UAAII,GAAG,GAAChB,KAAK,CAACY,QAAD,EAAU,IAAV,CAAb;;CAA6B,UAAG,CAACI,GAAG,CAACC,MAAR,EAAe;CAACD,QAAAA,GAAG,GAAC,IAAIE,UAAJ,CAAeF,GAAf,CAAJ;CAAwB;;CAAAG,MAAAA,MAAM,CAACH,GAAG,CAACC,MAAL,CAAN;CAAmB,aAAOD,GAAP;CAAW,KAA1H;;CAA4Hf,IAAAA,SAAS,GAAE,CAACW,QAAD,EAAUQ,MAAV,EAAiBC,OAAjB,KAA2B;CAAChB,MAAAA,aAAa;CAAGO,MAAAA,QAAQ,GAACR,QAAQ,CAAC,WAAD,CAAR,CAAsBQ,QAAtB,CAAT;CAAyCT,MAAAA,EAAE,CAACmB,QAAH,CAAYV,QAAZ,EAAqB,UAASW,GAAT,EAAaC,IAAb,EAAkB;CAAC,YAAGD,GAAH,EAAOF,OAAO,CAACE,GAAD,CAAP,CAAP,KAAyBH,MAAM,CAACI,IAAI,CAACP,MAAN,CAAN;CAAoB,OAArF;CAAuF,KAAvL;;CAAyL,QAAGzB,OAAO,CAAC,MAAD,CAAP,CAAgBiC,MAAhB,GAAuB,CAA1B,EAA4B;CAACvC,MAAAA,WAAW,GAACM,OAAO,CAAC,MAAD,CAAP,CAAgB,CAAhB,EAAmBkC,OAAnB,CAA2B,KAA3B,EAAiC,GAAjC,CAAZ;CAAkD;;CAAAC,IAAWnC,OAAO,CAAC,MAAD,CAAP,CAAgBoC,KAAhB,CAAsB,CAAtB,CAAX;;CAAoC,IAA8B;CAACC,MAAAA,MAAM,CAAC,SAAD,CAAN,GAAkBxD,MAAlB;CAAyB;;CAAAmB,IAAAA,OAAO,CAAC,IAAD,CAAP,CAAc,mBAAd,EAAkC,UAASsC,EAAT,EAAY;CAAC,UAAG,EAAEA,EAAE,YAAYC,UAAhB,CAAH,EAA+B;CAAC,cAAMD,EAAN;CAAS;CAAC,KAAzF;CAA2FtC,IAAAA,OAAO,CAAC,IAAD,CAAP,CAAc,oBAAd,EAAmC,UAASwC,MAAT,EAAgB;CAAC,YAAMA,MAAN;CAAa,KAAjE;;CAAmN3D,IAAAA,MAAM,CAAC,SAAD,CAAN,GAAkB,YAAU;CAAC,aAAM,4BAAN;CAAmC,KAAhE;CAAiE,GAAn9C,MAAw9C,IAAGsB,oBAAH,EAAwB;CAAC,QAAG,OAAOH,OAAP,IAAgB,QAAhB,IAA0B,OAAOc,eAAP,KAAiB,UAA3C,IAAuD,OAAOlB,MAAP,IAAe,QAAtE,IAAgF,OAAOE,aAAP,IAAsB,UAAzG,EAAoH,MAAM,IAAIM,KAAJ,CAAU,wLAAV,CAAN;;CAA0M,QAAG,OAAOqC,IAAP,IAAa,WAAhB,EAA4B;CAACjC,MAAAA,KAAK,GAAC,SAASW,UAAT,CAAoBuB,CAApB,EAAsB;CAAC,eAAOD,IAAI,CAACC,CAAD,CAAX;CAAe,OAA5C;CAA6C;;CAAAhC,IAAAA,UAAU,GAAC,SAASA,UAAT,CAAoBgC,CAApB,EAAsB;CAAC,UAAIV,IAAJ;;CAAS,UAAG,OAAOW,UAAP,IAAmB,UAAtB,EAAiC;CAAC,eAAO,IAAIjB,UAAJ,CAAeiB,UAAU,CAACD,CAAD,CAAzB,CAAP;CAAqC;;CAAAV,MAAAA,IAAI,GAACS,IAAI,CAACC,CAAD,EAAG,QAAH,CAAT;CAAsBf,MAAAA,MAAM,CAAC,OAAOK,IAAP,IAAa,QAAd,CAAN;CAA8B,aAAOA,IAAP;CAAY,KAAlL;;CAAmLvB,IAAAA,SAAS,GAAC,SAASA,SAAT,CAAmBiC,CAAnB,EAAqBd,MAArB,EAA4BC,OAA5B,EAAoC;CAACe,MAAAA,UAAU,CAAC,MAAIhB,MAAM,CAAClB,UAAU,CAACgC,CAAD,CAAX,CAAX,EAA2B,CAA3B,CAAV;CAAwC,KAAvF;;CAAwF,QAAG,OAAOG,UAAP,IAAmB,WAAtB,EAAkC;CAACV,MAAWU,UAAX;CAAsB;;CAA6J,QAAG,OAAO/D,KAAP,IAAc,WAAjB,EAA6B;CAAC,UAAG,OAAOE,OAAP,IAAgB,WAAnB,EAA+BA,OAAO,GAAC,EAAR;CAAWA,MAAAA,OAAO,CAACC,GAAR,GAAYH,KAAZ;CAAkBE,MAAAA,OAAO,CAACG,IAAR,GAAaH,OAAO,CAAC8D,KAAR,GAAc,OAAO5D,QAAP,IAAiB,WAAjB,GAA6BA,QAA7B,GAAsCJ,KAAjE;CAAuE;CAAC,GAApiC,MAAyiC,IAAGa,kBAAkB,IAAEE,qBAAvB,EAA6C;CAAC,QAAGA,qBAAH,EAAyB;CAACQ,MAAAA,eAAe,GAAC0C,IAAI,CAACC,QAAL,CAAcC,IAA9B;CAAmC,KAA7D,MAAkE,IAAG,OAAOC,QAAP,IAAiB,WAAjB,IAA8BA,QAAQ,CAACC,aAA1C,EAAwD;CAAC9C,MAAAA,eAAe,GAAC6C,QAAQ,CAACC,aAAT,CAAuBC,GAAvC;CAA2C;;CAAA,QAAG/C,eAAe,CAACgD,OAAhB,CAAwB,OAAxB,MAAmC,CAAtC,EAAwC;CAAChD,MAAAA,eAAe,GAACA,eAAe,CAACiD,MAAhB,CAAuB,CAAvB,EAAyBjD,eAAe,CAAC6B,OAAhB,CAAwB,QAAxB,EAAiC,EAAjC,EAAqCqB,WAArC,CAAiD,GAAjD,IAAsD,CAA/E,CAAhB;CAAkG,KAA3I,MAA+I;CAAClD,MAAAA,eAAe,GAAC,EAAhB;CAAmB;;CAAA,QAAG,EAAE,OAAOT,MAAP,IAAe,QAAf,IAAyB,OAAOE,aAAP,IAAsB,UAAjD,CAAH,EAAgE,MAAM,IAAIM,KAAJ,CAAU,wLAAV,CAAN;CAA0M;CAACI,MAAAA,KAAK,GAAEgD,GAAG,IAAE;CAAC,YAAIC,GAAG,GAAC,IAAIC,cAAJ,EAAR;CAA2BD,QAAAA,GAAG,CAACE,IAAJ,CAAS,KAAT,EAAeH,GAAf,EAAmB,KAAnB;CAA0BC,QAAAA,GAAG,CAACG,IAAJ,CAAS,IAAT;CAAe,eAAOH,GAAG,CAACI,YAAX;CAAwB,OAAzG;;CAA2G,UAAGhE,qBAAH,EAAyB;CAACa,QAAAA,UAAU,GAAE8C,GAAG,IAAE;CAAC,cAAIC,GAAG,GAAC,IAAIC,cAAJ,EAAR;CAA2BD,UAAAA,GAAG,CAACE,IAAJ,CAAS,KAAT,EAAeH,GAAf,EAAmB,KAAnB;CAA0BC,UAAAA,GAAG,CAACK,YAAJ,GAAiB,aAAjB;CAA+BL,UAAAA,GAAG,CAACG,IAAJ,CAAS,IAAT;CAAe,iBAAO,IAAIlC,UAAJ,CAAe+B,GAAG,CAACM,QAAnB,CAAP;CAAoC,SAAzJ;CAA2J;;CAAAtD,MAAAA,SAAS,GAAE,CAAC+C,GAAD,EAAK5B,MAAL,EAAYC,OAAZ,KAAsB;CAAC,YAAI4B,GAAG,GAAC,IAAIC,cAAJ,EAAR;CAA2BD,QAAAA,GAAG,CAACE,IAAJ,CAAS,KAAT,EAAeH,GAAf,EAAmB,IAAnB;CAAyBC,QAAAA,GAAG,CAACK,YAAJ,GAAiB,aAAjB;;CAA+BL,QAAAA,GAAG,CAAC7B,MAAJ,GAAY,MAAI;CAAC,cAAG6B,GAAG,CAACO,MAAJ,IAAY,GAAZ,IAAiBP,GAAG,CAACO,MAAJ,IAAY,CAAZ,IAAeP,GAAG,CAACM,QAAvC,EAAgD;CAACnC,YAAAA,MAAM,CAAC6B,GAAG,CAACM,QAAL,CAAN;CAAqB;CAAO;;CAAAlC,UAAAA,OAAO;CAAG,SAAxG;;CAA0G4B,QAAAA,GAAG,CAAC5B,OAAJ,GAAYA,OAAZ;CAAoB4B,QAAAA,GAAG,CAACG,IAAJ,CAAS,IAAT;CAAe,OAAlQ;CAAoQ;CAA6C,GAAntC,MAAutC;CAAC,UAAM,IAAIxD,KAAJ,CAAU,6BAAV,CAAN;CAA+C;;CAAA,MAAI6D,GAAG,GAACpF,MAAM,CAAC,OAAD,CAAN,IAAiBG,OAAO,CAACC,GAAR,CAAYiF,IAAZ,CAAiBlF,OAAjB,CAAzB;CAAmD,MAAI+C,GAAG,GAAClD,MAAM,CAAC,UAAD,CAAN,IAAoBG,OAAO,CAACG,IAAR,CAAa+E,IAAb,CAAkBlF,OAAlB,CAA5B;CAAuDQ,EAAAA,MAAM,CAACC,MAAP,CAAcZ,MAAd,EAAqBU,eAArB;CAAsCA,EAAAA,eAAe,GAAC,IAAhB;CAAqB4E,EAAAA,sBAAsB;CAAG,MAAGtF,MAAM,CAAC,WAAD,CAAT,EAAuBsD;CAA+BiC,EAAAA,gBAAgB,CAAC,WAAD,EAAa,YAAb,CAAhB;CAA2C,MAAGvF,MAAM,CAAC,aAAD,CAAT,EAAyBa,WAAW,GAACb,MAAM,CAAC,aAAD,CAAlB;CAAkCuF,EAAAA,gBAAgB,CAAC,aAAD,EAAe,aAAf,CAAhB;CAA8C,MAAGvF,MAAM,CAAC,MAAD,CAAT,EAAkBwF;CAAqBD,EAAAA,gBAAgB,CAAC,MAAD,EAAQ,OAAR,CAAhB;CAAiCzC,EAAAA,MAAM,CAAC,OAAO9C,MAAM,CAAC,4BAAD,CAAb,IAA6C,WAA9C,EAA0D,qFAA1D,CAAN;CAAuJ8C,EAAAA,MAAM,CAAC,OAAO9C,MAAM,CAAC,sBAAD,CAAb,IAAuC,WAAxC,EAAoD,+EAApD,CAAN;CAA2I8C,EAAAA,MAAM,CAAC,OAAO9C,MAAM,CAAC,wBAAD,CAAb,IAAyC,WAA1C,EAAsD,iFAAtD,CAAN;CAA+I8C,EAAAA,MAAM,CAAC,OAAO9C,MAAM,CAAC,sBAAD,CAAb,IAAuC,WAAxC,EAAoD,+EAApD,CAAN;CAA2I8C,EAAAA,MAAM,CAAC,OAAO9C,MAAM,CAAC,MAAD,CAAb,IAAuB,WAAxB,EAAoC,qDAApC,CAAN;CAAiG8C,EAAAA,MAAM,CAAC,OAAO9C,MAAM,CAAC,WAAD,CAAb,IAA4B,WAA7B,EAAyC,8DAAzC,CAAN;CAA+G8C,EAAAA,MAAM,CAAC,OAAO9C,MAAM,CAAC,YAAD,CAAb,IAA6B,WAA9B,EAA0C,gEAA1C,CAAN;CAAkH8C,EAAAA,MAAM,CAAC,OAAO9C,MAAM,CAAC,gBAAD,CAAb,IAAiC,WAAlC,EAA8C,wEAA9C,CAAN;CAA8H8C,EAAAA,MAAM,CAAC,OAAO9C,MAAM,CAAC,cAAD,CAAb,IAA+B,WAAhC,EAA4C,4DAA5C,CAAN;CAAgHuF,EAAAA,gBAAgB,CAAC,MAAD,EAAQ,OAAR,CAAhB;CAAiCA,EAAAA,gBAAgB,CAAC,WAAD,EAAa,WAAb,CAAhB;CAA0CA,EAAAA,gBAAgB,CAAC,YAAD,EAAc,YAAd,CAAhB;CAA4CA,EAAAA,gBAAgB,CAAC,gBAAD,EAAkB,gBAAlB,CAAhB;CAAoDzC,EAAAA,MAAM,CAAC,CAACxB,oBAAF,EAAuB,sGAAvB,CAAN;;CAAwJ,WAASmE,QAAT,CAAkBvF,IAAlB,EAAuB;CAAC,QAAG,CAACuF,QAAQ,CAACC,KAAb,EAAmBD,QAAQ,CAACC,KAAT,GAAe,EAAf;;CAAkB,QAAG,CAACD,QAAQ,CAACC,KAAT,CAAexF,IAAf,CAAJ,EAAyB;CAACuF,MAAAA,QAAQ,CAACC,KAAT,CAAexF,IAAf,IAAqB,CAArB;CAAuBgD,MAAAA,GAAG,CAAChD,IAAD,CAAH;CAAU;CAAC;;CAA6gD,WAASqF,gBAAT,CAA0BI,IAA1B,EAA+BC,OAA/B,EAAuC;CAAC,QAAG,CAACjF,MAAM,CAACkF,wBAAP,CAAgC7F,MAAhC,EAAuC2F,IAAvC,CAAJ,EAAiD;CAAChF,MAAAA,MAAM,CAACmF,cAAP,CAAsB9F,MAAtB,EAA6B2F,IAA7B,EAAkC;CAACI,QAAAA,YAAY,EAAC,IAAd;CAAmBC,QAAAA,GAAG,EAAC,YAAU;CAACC,UAAAA,KAAK,CAAC,YAAUN,IAAV,GAAe,gCAAf,GAAgDC,OAAhD,GAAwD,iIAAzD,CAAL;CAAiM;CAAnO,OAAlC;CAAwQ;CAAC;;CAAA,WAASM,iBAAT,CAA2BP,IAA3B,EAAgC;CAAC,QAAGhF,MAAM,CAACkF,wBAAP,CAAgC7F,MAAhC,EAAuC2F,IAAvC,CAAH,EAAgD;CAACM,MAAAA,KAAK,CAAC,aAAWN,IAAX,GAAgB,sBAAhB,GAAuCA,IAAvC,GAA4C,0CAA7C,CAAL;CAA8F;CAAC;;CAAA,WAASQ,iBAAT,CAA2BC,GAA3B,EAA+BC,SAA/B,EAAyC;CAAC,QAAIC,GAAG,GAAC,MAAIF,GAAJ,GAAQ,sEAAhB;;CAAuF,QAAGC,SAAH,EAAa;CAACC,MAAAA,GAAG,IAAE,0FAAL;CAAgG;;CAAA,WAAOA,GAAP;CAAW;;CAAA,WAASC,uBAAT,CAAiCH,GAAjC,EAAqCC,SAArC,EAA+C;CAAC,QAAG,CAAC1F,MAAM,CAACkF,wBAAP,CAAgC7F,MAAhC,EAAuCoG,GAAvC,CAAJ,EAAgD;CAACzF,MAAAA,MAAM,CAACmF,cAAP,CAAsB9F,MAAtB,EAA6BoG,GAA7B,EAAiC;CAACL,QAAAA,YAAY,EAAC,IAAd;CAAmBC,QAAAA,GAAG,EAAC,YAAU;CAACC,UAAAA,KAAK,CAACE,iBAAiB,CAACC,GAAD,EAAKC,SAAL,CAAlB,CAAL;CAAwC;CAA1E,OAAjC;CAA8G;CAAC;;CAAA,WAASG,yBAAT,CAAmCJ,GAAnC,EAAuCC,SAAvC,EAAiD;CAAC,QAAG,CAAC1F,MAAM,CAACkF,wBAAP,CAAgC7F,MAAhC,EAAuCoG,GAAvC,CAAJ,EAAgD;CAACpG,MAAAA,MAAM,CAACoG,GAAD,CAAN,GAAa,MAAIH,KAAK,CAACE,iBAAiB,CAACC,GAAD,EAAKC,SAAL,CAAlB,CAAtB;CAA0D;CAAC;;CAAuD,MAAII,UAAJ;CAAe,MAAGzG,MAAM,CAAC,YAAD,CAAT,EAAwByG,UAAU,GAACzG,MAAM,CAAC,YAAD,CAAjB;CAAgCuF,EAAAA,gBAAgB,CAAC,YAAD,EAAc,YAAd,CAAhB;CAA4C,EAAkBvF,MAAM,CAAC,eAAD,CAAN,IAAyB;CAAKuF,EAAAA,gBAAgB,CAAC,eAAD,EAAiB,eAAjB,CAAhB;;CAAkD,MAAG,OAAOmB,WAAP,IAAoB,QAAvB,EAAgC;CAACT,IAAAA,KAAK,CAAC,iCAAD,CAAL;CAAyC;;CAAA,MAAIU,UAAJ;CAAe,MAAIC,KAAK,GAAC,KAAV;;CAA+B,WAAS9D,MAAT,CAAgB+D,SAAhB,EAA0B3G,IAA1B,EAA+B;CAAC,QAAG,CAAC2G,SAAJ,EAAc;CAACZ,MAAAA,KAAK,CAAC,sBAAoB/F,IAAI,GAAC,OAAKA,IAAN,GAAW,EAAnC,CAAD,CAAL;CAA8C;CAAC;CAAkhC,MAAI4G,WAAW,GAAC,OAAOC,WAAP,IAAoB,WAApB,GAAgC,IAAIA,WAAJ,CAAgB,MAAhB,CAAhC,GAAwDrE,SAAxE;;CAAkF,WAASsE,iBAAT,CAA2BC,WAA3B,EAAuCC,GAAvC,EAA2CC,cAA3C,EAA0D;CAAC,QAAIC,MAAM,GAACF,GAAG,GAACC,cAAf;CAA8B,QAAIE,MAAM,GAACH,GAAX;;CAAe,WAAMD,WAAW,CAACI,MAAD,CAAX,IAAqB,EAAEA,MAAM,IAAED,MAAV,CAA3B,EAA6C,EAAEC,MAAF;;CAAS,QAAGA,MAAM,GAACH,GAAP,GAAW,EAAX,IAAeD,WAAW,CAACrE,MAA3B,IAAmCkE,WAAtC,EAAkD;CAAC,aAAOA,WAAW,CAACQ,MAAZ,CAAmBL,WAAW,CAACM,QAAZ,CAAqBL,GAArB,EAAyBG,MAAzB,CAAnB,CAAP;CAA4D,KAA/G,MAAmH;CAAC,UAAIG,GAAG,GAAC,EAAR;;CAAW,aAAMN,GAAG,GAACG,MAAV,EAAiB;CAAC,YAAII,EAAE,GAACR,WAAW,CAACC,GAAG,EAAJ,CAAlB;;CAA0B,YAAG,EAAEO,EAAE,GAAC,GAAL,CAAH,EAAa;CAACD,UAAAA,GAAG,IAAEE,MAAM,CAACC,YAAP,CAAoBF,EAApB,CAAL;CAA6B;CAAS;;CAAA,YAAIG,EAAE,GAACX,WAAW,CAACC,GAAG,EAAJ,CAAX,GAAmB,EAA1B;;CAA6B,YAAG,CAACO,EAAE,GAAC,GAAJ,KAAU,GAAb,EAAiB;CAACD,UAAAA,GAAG,IAAEE,MAAM,CAACC,YAAP,CAAoB,CAACF,EAAE,GAAC,EAAJ,KAAS,CAAT,GAAWG,EAA/B,CAAL;CAAwC;CAAS;;CAAA,YAAIC,EAAE,GAACZ,WAAW,CAACC,GAAG,EAAJ,CAAX,GAAmB,EAA1B;;CAA6B,YAAG,CAACO,EAAE,GAAC,GAAJ,KAAU,GAAb,EAAiB;CAACA,UAAAA,EAAE,GAAC,CAACA,EAAE,GAAC,EAAJ,KAAS,EAAT,GAAYG,EAAE,IAAE,CAAhB,GAAkBC,EAArB;CAAwB,SAA1C,MAA8C;CAAC,cAAG,CAACJ,EAAE,GAAC,GAAJ,KAAU,GAAb,EAAiBhC,QAAQ,CAAC,kCAAgCgC,EAAE,CAACK,QAAH,CAAY,EAAZ,CAAhC,GAAgD,+EAAjD,CAAR;CAA0IL,UAAAA,EAAE,GAAC,CAACA,EAAE,GAAC,CAAJ,KAAQ,EAAR,GAAWG,EAAE,IAAE,EAAf,GAAkBC,EAAE,IAAE,CAAtB,GAAwBZ,WAAW,CAACC,GAAG,EAAJ,CAAX,GAAmB,EAA9C;CAAiD;;CAAA,YAAGO,EAAE,GAAC,KAAN,EAAY;CAACD,UAAAA,GAAG,IAAEE,MAAM,CAACC,YAAP,CAAoBF,EAApB,CAAL;CAA6B,SAA1C,MAA8C;CAAC,cAAIM,EAAE,GAACN,EAAE,GAAC,KAAV;CAAgBD,UAAAA,GAAG,IAAEE,MAAM,CAACC,YAAP,CAAoB,QAAMI,EAAE,IAAE,EAA9B,EAAiC,QAAMA,EAAE,GAAC,IAA1C,CAAL;CAAqD;CAAC;CAAC;;CAAA,WAAOP,GAAP;CAAW;;CAAA,WAASQ,YAAT,CAAsBC,GAAtB,EAA0Bd,cAA1B,EAAyC;CAAC,WAAOc,GAAG,GAACjB,iBAAiB,CAACkB,MAAD,EAAQD,GAAR,EAAYd,cAAZ,CAAlB,GAA8C,EAAxD;CAA2D;;CAAA,WAASgB,iBAAT,CAA2BX,GAA3B,EAA+BY,IAA/B,EAAoCC,MAApC,EAA2CC,eAA3C,EAA2D;CAAC,QAAG,EAAEA,eAAe,GAAC,CAAlB,CAAH,EAAwB,OAAO,CAAP;CAAS,QAAIC,QAAQ,GAACF,MAAb;CAAoB,QAAIjB,MAAM,GAACiB,MAAM,GAACC,eAAP,GAAuB,CAAlC;;CAAoC,SAAI,IAAIE,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAChB,GAAG,CAACpE,MAAlB,EAAyB,EAAEoF,CAA3B,EAA6B;CAAC,UAAIC,CAAC,GAACjB,GAAG,CAACkB,UAAJ,CAAeF,CAAf,CAAN;;CAAwB,UAAGC,CAAC,IAAE,KAAH,IAAUA,CAAC,IAAE,KAAhB,EAAsB;CAAC,YAAIb,EAAE,GAACJ,GAAG,CAACkB,UAAJ,CAAe,EAAEF,CAAjB,CAAP;CAA2BC,QAAAA,CAAC,GAAC,SAAO,CAACA,CAAC,GAAC,IAAH,KAAU,EAAjB,IAAqBb,EAAE,GAAC,IAA1B;CAA+B;;CAAA,UAAGa,CAAC,IAAE,GAAN,EAAU;CAAC,YAAGJ,MAAM,IAAEjB,MAAX,EAAkB;CAAMgB,QAAAA,IAAI,CAACC,MAAM,EAAP,CAAJ,GAAeI,CAAf;CAAiB,OAApD,MAAyD,IAAGA,CAAC,IAAE,IAAN,EAAW;CAAC,YAAGJ,MAAM,GAAC,CAAP,IAAUjB,MAAb,EAAoB;CAAMgB,QAAAA,IAAI,CAACC,MAAM,EAAP,CAAJ,GAAe,MAAII,CAAC,IAAE,CAAtB;CAAwBL,QAAAA,IAAI,CAACC,MAAM,EAAP,CAAJ,GAAe,MAAII,CAAC,GAAC,EAArB;CAAwB,OAAtF,MAA2F,IAAGA,CAAC,IAAE,KAAN,EAAY;CAAC,YAAGJ,MAAM,GAAC,CAAP,IAAUjB,MAAb,EAAoB;CAAMgB,QAAAA,IAAI,CAACC,MAAM,EAAP,CAAJ,GAAe,MAAII,CAAC,IAAE,EAAtB;CAAyBL,QAAAA,IAAI,CAACC,MAAM,EAAP,CAAJ,GAAe,MAAII,CAAC,IAAE,CAAH,GAAK,EAAxB;CAA2BL,QAAAA,IAAI,CAACC,MAAM,EAAP,CAAJ,GAAe,MAAII,CAAC,GAAC,EAArB;CAAwB,OAAnH,MAAuH;CAAC,YAAGJ,MAAM,GAAC,CAAP,IAAUjB,MAAb,EAAoB;CAAM,YAAGqB,CAAC,GAAC,OAAL,EAAahD,QAAQ,CAAC,kCAAgCgD,CAAC,CAACX,QAAF,CAAW,EAAX,CAAhC,GAA+C,wIAAhD,CAAR;CAAkMM,QAAAA,IAAI,CAACC,MAAM,EAAP,CAAJ,GAAe,MAAII,CAAC,IAAE,EAAtB;CAAyBL,QAAAA,IAAI,CAACC,MAAM,EAAP,CAAJ,GAAe,MAAII,CAAC,IAAE,EAAH,GAAM,EAAzB;CAA4BL,QAAAA,IAAI,CAACC,MAAM,EAAP,CAAJ,GAAe,MAAII,CAAC,IAAE,CAAH,GAAK,EAAxB;CAA2BL,QAAAA,IAAI,CAACC,MAAM,EAAP,CAAJ,GAAe,MAAII,CAAC,GAAC,EAArB;CAAwB;CAAC;;CAAAL,IAAAA,IAAI,CAACC,MAAD,CAAJ,GAAa,CAAb;CAAe,WAAOA,MAAM,GAACE,QAAd;CAAuB;;CAAA,WAASI,YAAT,CAAsBnB,GAAtB,EAA0BoB,MAA1B,EAAiCN,eAAjC,EAAiD;CAACxF,IAAAA,MAAM,CAAC,OAAOwF,eAAP,IAAwB,QAAzB,EAAkC,2HAAlC,CAAN;CAAqK,WAAOH,iBAAiB,CAACX,GAAD,EAAKU,MAAL,EAAYU,MAAZ,EAAmBN,eAAnB,CAAxB;CAA4D;;CAAA,WAASO,eAAT,CAAyBrB,GAAzB,EAA6B;CAAC,QAAIsB,GAAG,GAAC,CAAR;;CAAU,SAAI,IAAIN,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAChB,GAAG,CAACpE,MAAlB,EAAyB,EAAEoF,CAA3B,EAA6B;CAAC,UAAIC,CAAC,GAACjB,GAAG,CAACkB,UAAJ,CAAeF,CAAf,CAAN;CAAwB,UAAGC,CAAC,IAAE,KAAH,IAAUA,CAAC,IAAE,KAAhB,EAAsBA,CAAC,GAAC,SAAO,CAACA,CAAC,GAAC,IAAH,KAAU,EAAjB,IAAqBjB,GAAG,CAACkB,UAAJ,CAAe,EAAEF,CAAjB,IAAoB,IAA3C;CAAgD,UAAGC,CAAC,IAAE,GAAN,EAAU,EAAEK,GAAF,CAAV,KAAqB,IAAGL,CAAC,IAAE,IAAN,EAAWK,GAAG,IAAE,CAAL,CAAX,KAAuB,IAAGL,CAAC,IAAE,KAAN,EAAYK,GAAG,IAAE,CAAL,CAAZ,KAAwBA,GAAG,IAAE,CAAL;CAAO;;CAAA,WAAOA,GAAP;CAAW;;CAAA,MAAIC,YAAY,GAAC,OAAOhC,WAAP,IAAoB,WAApB,GAAgC,IAAIA,WAAJ,CAAgB,UAAhB,CAAhC,GAA4DrE,SAA7E;;CAAuF,WAASsG,aAAT,CAAuBf,GAAvB,EAA2Bd,cAA3B,EAA0C;CAACrE,IAAAA,MAAM,CAACmF,GAAG,GAAC,CAAJ,IAAO,CAAR,EAAU,+DAAV,CAAN;CAAiF,QAAIZ,MAAM,GAACY,GAAX;CAAe,QAAIf,GAAG,GAACG,MAAM,IAAE,CAAhB;CAAkB,QAAI4B,MAAM,GAAC/B,GAAG,GAACC,cAAc,GAAC,CAA9B;;CAAgC,WAAM,EAAED,GAAG,IAAE+B,MAAP,KAAgBC,OAAO,CAAChC,GAAD,CAA7B,EAAmC,EAAEA,GAAF;;CAAMG,IAAAA,MAAM,GAACH,GAAG,IAAE,CAAZ;;CAAc,QAAGG,MAAM,GAACY,GAAP,GAAW,EAAX,IAAec,YAAlB,EAA+B;CAAC,aAAOA,YAAY,CAACzB,MAAb,CAAoBY,MAAM,CAACX,QAAP,CAAgBU,GAAhB,EAAoBZ,MAApB,CAApB,CAAP;CAAwD,KAAxF,MAA4F;CAAC,UAAIG,GAAG,GAAC,EAAR;;CAAW,WAAI,IAAIgB,CAAC,GAAC,CAAV,EAAY,EAAEA,CAAC,IAAErB,cAAc,GAAC,CAApB,CAAZ,EAAmC,EAAEqB,CAArC,EAAuC;CAAC,YAAIW,QAAQ,GAACC,MAAM,CAACnB,GAAG,GAACO,CAAC,GAAC,CAAN,IAAS,CAAV,CAAnB;CAAgC,YAAGW,QAAQ,IAAE,CAAb,EAAe;CAAM3B,QAAAA,GAAG,IAAEE,MAAM,CAACC,YAAP,CAAoBwB,QAApB,CAAL;CAAmC;;CAAA,aAAO3B,GAAP;CAAW;CAAC;;CAAA,WAAS6B,aAAT,CAAuB7B,GAAvB,EAA2BoB,MAA3B,EAAkCN,eAAlC,EAAkD;CAACxF,IAAAA,MAAM,CAAC8F,MAAM,GAAC,CAAP,IAAU,CAAX,EAAa,+DAAb,CAAN;CAAoF9F,IAAAA,MAAM,CAAC,OAAOwF,eAAP,IAAwB,QAAzB,EAAkC,4HAAlC,CAAN;;CAAsK,QAAGA,eAAe,KAAG5F,SAArB,EAA+B;CAAC4F,MAAAA,eAAe,GAAC,UAAhB;CAA2B;;CAAA,QAAGA,eAAe,GAAC,CAAnB,EAAqB,OAAO,CAAP;CAASA,IAAAA,eAAe,IAAE,CAAjB;CAAmB,QAAIgB,QAAQ,GAACV,MAAb;CAAoB,QAAIW,eAAe,GAACjB,eAAe,GAACd,GAAG,CAACpE,MAAJ,GAAW,CAA3B,GAA6BkF,eAAe,GAAC,CAA7C,GAA+Cd,GAAG,CAACpE,MAAvE;;CAA8E,SAAI,IAAIoF,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACe,eAAd,EAA8B,EAAEf,CAAhC,EAAkC;CAAC,UAAIW,QAAQ,GAAC3B,GAAG,CAACkB,UAAJ,CAAeF,CAAf,CAAb;CAA+BY,MAAAA,MAAM,CAACR,MAAM,IAAE,CAAT,CAAN,GAAkBO,QAAlB;CAA2BP,MAAAA,MAAM,IAAE,CAAR;CAAU;;CAAAQ,IAAAA,MAAM,CAACR,MAAM,IAAE,CAAT,CAAN,GAAkB,CAAlB;CAAoB,WAAOA,MAAM,GAACU,QAAd;CAAuB;;CAAA,WAASE,gBAAT,CAA0BhC,GAA1B,EAA8B;CAAC,WAAOA,GAAG,CAACpE,MAAJ,GAAW,CAAlB;CAAoB;;CAAA,WAASqG,aAAT,CAAuBxB,GAAvB,EAA2Bd,cAA3B,EAA0C;CAACrE,IAAAA,MAAM,CAACmF,GAAG,GAAC,CAAJ,IAAO,CAAR,EAAU,gEAAV,CAAN;CAAkF,QAAIO,CAAC,GAAC,CAAN;CAAQ,QAAIhB,GAAG,GAAC,EAAR;;CAAW,WAAM,EAAEgB,CAAC,IAAErB,cAAc,GAAC,CAApB,CAAN,EAA6B;CAAC,UAAIuC,KAAK,GAACC,MAAM,CAAC1B,GAAG,GAACO,CAAC,GAAC,CAAN,IAAS,CAAV,CAAhB;CAA6B,UAAGkB,KAAK,IAAE,CAAV,EAAY;CAAM,QAAElB,CAAF;;CAAI,UAAGkB,KAAK,IAAE,KAAV,EAAgB;CAAC,YAAI3B,EAAE,GAAC2B,KAAK,GAAC,KAAb;CAAmBlC,QAAAA,GAAG,IAAEE,MAAM,CAACC,YAAP,CAAoB,QAAMI,EAAE,IAAE,EAA9B,EAAiC,QAAMA,EAAE,GAAC,IAA1C,CAAL;CAAqD,OAAzF,MAA6F;CAACP,QAAAA,GAAG,IAAEE,MAAM,CAACC,YAAP,CAAoB+B,KAApB,CAAL;CAAgC;CAAC;;CAAA,WAAOlC,GAAP;CAAW;;CAAA,WAASoC,aAAT,CAAuBpC,GAAvB,EAA2BoB,MAA3B,EAAkCN,eAAlC,EAAkD;CAACxF,IAAAA,MAAM,CAAC8F,MAAM,GAAC,CAAP,IAAU,CAAX,EAAa,gEAAb,CAAN;CAAqF9F,IAAAA,MAAM,CAAC,OAAOwF,eAAP,IAAwB,QAAzB,EAAkC,4HAAlC,CAAN;;CAAsK,QAAGA,eAAe,KAAG5F,SAArB,EAA+B;CAAC4F,MAAAA,eAAe,GAAC,UAAhB;CAA2B;;CAAA,QAAGA,eAAe,GAAC,CAAnB,EAAqB,OAAO,CAAP;CAAS,QAAIgB,QAAQ,GAACV,MAAb;CAAoB,QAAIvB,MAAM,GAACiC,QAAQ,GAAChB,eAAT,GAAyB,CAApC;;CAAsC,SAAI,IAAIE,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAChB,GAAG,CAACpE,MAAlB,EAAyB,EAAEoF,CAA3B,EAA6B;CAAC,UAAIW,QAAQ,GAAC3B,GAAG,CAACkB,UAAJ,CAAeF,CAAf,CAAb;;CAA+B,UAAGW,QAAQ,IAAE,KAAV,IAAiBA,QAAQ,IAAE,KAA9B,EAAoC;CAAC,YAAIU,cAAc,GAACrC,GAAG,CAACkB,UAAJ,CAAe,EAAEF,CAAjB,CAAnB;CAAuCW,QAAAA,QAAQ,GAAC,SAAO,CAACA,QAAQ,GAAC,IAAV,KAAiB,EAAxB,IAA4BU,cAAc,GAAC,IAApD;CAAyD;;CAAAF,MAAAA,MAAM,CAACf,MAAM,IAAE,CAAT,CAAN,GAAkBO,QAAlB;CAA2BP,MAAAA,MAAM,IAAE,CAAR;CAAU,UAAGA,MAAM,GAAC,CAAP,GAASvB,MAAZ,EAAmB;CAAM;;CAAAsC,IAAAA,MAAM,CAACf,MAAM,IAAE,CAAT,CAAN,GAAkB,CAAlB;CAAoB,WAAOA,MAAM,GAACU,QAAd;CAAuB;;CAAA,WAASQ,gBAAT,CAA0BtC,GAA1B,EAA8B;CAAC,QAAIsB,GAAG,GAAC,CAAR;;CAAU,SAAI,IAAIN,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAChB,GAAG,CAACpE,MAAlB,EAAyB,EAAEoF,CAA3B,EAA6B;CAAC,UAAIW,QAAQ,GAAC3B,GAAG,CAACkB,UAAJ,CAAeF,CAAf,CAAb;CAA+B,UAAGW,QAAQ,IAAE,KAAV,IAAiBA,QAAQ,IAAE,KAA9B,EAAoC,EAAEX,CAAF;CAAIM,MAAAA,GAAG,IAAE,CAAL;CAAO;;CAAA,WAAOA,GAAP;CAAW;;CAAA,WAASiB,YAAT,CAAsBvC,GAAtB,EAA0B;CAAC,QAAIwC,IAAI,GAACnB,eAAe,CAACrB,GAAD,CAAf,GAAqB,CAA9B;;CAAgC,QAAI7E,GAAG,GAACsH,OAAO,CAACD,IAAD,CAAf;;CAAsB,QAAGrH,GAAH,EAAOwF,iBAAiB,CAACX,GAAD,EAAK0C,KAAL,EAAWvH,GAAX,EAAeqH,IAAf,CAAjB;CAAsC,WAAOrH,GAAP;CAAW;;CAA4K,WAASwH,kBAAT,CAA4B3C,GAA5B,EAAgC5E,MAAhC,EAAuCwH,WAAvC,EAAmD;CAAC,SAAI,IAAI5B,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAChB,GAAG,CAACpE,MAAlB,EAAyB,EAAEoF,CAA3B,EAA6B;CAAC1F,MAAAA,MAAM,CAAC0E,GAAG,CAACkB,UAAJ,CAAeF,CAAf,OAAqBhB,GAAG,CAACkB,UAAJ,CAAeF,CAAf,IAAkB,GAAvC,CAAD,CAAN;CAAoD0B,MAAAA,KAAK,CAACtH,MAAM,MAAI,CAAX,CAAL,GAAmB4E,GAAG,CAACkB,UAAJ,CAAeF,CAAf,CAAnB;CAAqC;;CAAA,QAAG,CAAC4B,WAAJ,EAAgBF,KAAK,CAACtH,MAAM,IAAE,CAAT,CAAL,GAAiB,CAAjB;CAAmB;;CAAA,MAAIA,MAAJ,EAAWsH,KAAX,EAAiBhC,MAAjB,EAAwBkB,MAAxB,EAA+BF,OAA/B,EAAuCS,MAAvC,EAA8CU,OAA9C,EAAsDC,OAAtD,EAA8DC,OAA9D;;CAAsE,WAASC,0BAAT,CAAoCC,GAApC,EAAwC;CAAC7H,IAAAA,MAAM,GAAC6H,GAAP;CAAWzK,IAAAA,MAAM,CAAC,OAAD,CAAN,GAAgBkK,KAAK,GAAC,IAAIQ,SAAJ,CAAcD,GAAd,CAAtB;CAAyCzK,IAAAA,MAAM,CAAC,QAAD,CAAN,GAAiBoJ,MAAM,GAAC,IAAIuB,UAAJ,CAAeF,GAAf,CAAxB;CAA4CzK,IAAAA,MAAM,CAAC,QAAD,CAAN,GAAiB2J,MAAM,GAAC,IAAIiB,UAAJ,CAAeH,GAAf,CAAxB;CAA4CzK,IAAAA,MAAM,CAAC,QAAD,CAAN,GAAiBkI,MAAM,GAAC,IAAIrF,UAAJ,CAAe4H,GAAf,CAAxB;CAA4CzK,IAAAA,MAAM,CAAC,SAAD,CAAN,GAAkBkJ,OAAO,GAAC,IAAI2B,WAAJ,CAAgBJ,GAAhB,CAA1B;CAA+CzK,IAAAA,MAAM,CAAC,SAAD,CAAN,GAAkBqK,OAAO,GAAC,IAAIS,WAAJ,CAAgBL,GAAhB,CAA1B;CAA+CzK,IAAAA,MAAM,CAAC,SAAD,CAAN,GAAkBsK,OAAO,GAAC,IAAIS,YAAJ,CAAiBN,GAAjB,CAA1B;CAAgDzK,IAAAA,MAAM,CAAC,SAAD,CAAN,GAAkBuK,OAAO,GAAC,IAAIS,YAAJ,CAAiBP,GAAjB,CAA1B;CAAgD;;CAAA,MAAIQ,WAAW,GAAC,OAAhB;CAAwB,MAAGjL,MAAM,CAAC,aAAD,CAAT,EAAyB8C,MAAM,CAACmI,WAAW,KAAGjL,MAAM,CAAC,aAAD,CAArB,EAAqC,uDAArC,CAAN;CAAoG,MAAIkL,cAAc,GAAClL,MAAM,CAAC,gBAAD,CAAN,IAA0B,QAA7C;CAAsDuF,EAAAA,gBAAgB,CAAC,gBAAD,EAAkB,gBAAlB,CAAhB;CAAoDzC,EAAAA,MAAM,CAACoI,cAAc,IAAED,WAAjB,EAA6B,2DAAyDC,cAAzD,GAAwE,iBAAxE,GAA0FD,WAA1F,GAAsG,GAAnI,CAAN;CAA8InI,EAAAA,MAAM,CAAC,OAAO8H,UAAP,IAAmB,WAAnB,IAAgC,OAAOI,YAAP,KAAsB,WAAtD,IAAmEJ,UAAU,CAACO,SAAX,CAAqB5D,QAArB,IAA+B7E,SAAlG,IAA6GkI,UAAU,CAACO,SAAX,CAAqBC,GAArB,IAA0B1I,SAAxI,EAAkJ,qDAAlJ,CAAN;CAA+MI,EAAAA,MAAM,CAAC,CAAC9C,MAAM,CAAC,YAAD,CAAR,EAAuB,sFAAvB,CAAN;CAAqH8C,EAAAA,MAAM,CAACoI,cAAc,IAAE,QAAjB,EAA0B,kGAA1B,CAAN;CAAoI,MAAIG,SAAJ;;CAAc,WAASC,gBAAT,GAA2B;CAAC,QAAIC,GAAG,GAACC,yBAAyB,EAAjC;;CAAoC1I,IAAAA,MAAM,CAAC,CAACyI,GAAG,GAAC,CAAL,KAAS,CAAV,CAAN;CAAmB5B,IAAAA,MAAM,CAAC4B,GAAG,IAAE,CAAN,CAAN,GAAe,QAAf;CAAwB5B,IAAAA,MAAM,CAAC4B,GAAG,GAAC,CAAJ,IAAO,CAAR,CAAN,GAAiB,UAAjB;CAA4B5B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAU,UAAV;CAAqB;;CAAA,WAAS8B,gBAAT,GAA2B;CAAC,QAAG7E,KAAH,EAAS;;CAAO,QAAI2E,GAAG,GAACC,yBAAyB,EAAjC;;CAAoC,QAAIE,OAAO,GAACrB,OAAO,CAACkB,GAAG,IAAE,CAAN,CAAnB;CAA4B,QAAII,OAAO,GAACtB,OAAO,CAACkB,GAAG,GAAC,CAAJ,IAAO,CAAR,CAAnB;;CAA8B,QAAGG,OAAO,IAAE,QAAT,IAAmBC,OAAO,IAAE,UAA/B,EAA0C;CAAC1F,MAAAA,KAAK,CAAC,qHAAmH0F,OAAO,CAAC7D,QAAR,CAAiB,EAAjB,CAAnH,GAAwI,KAAxI,GAA8I4D,OAAO,CAAC5D,QAAR,CAAiB,EAAjB,CAA/I,CAAL;CAA0K;;CAAA,QAAG6B,MAAM,CAAC,CAAD,CAAN,KAAY,UAAf,EAA0B1D,KAAK,CAAC,mFAAD,CAAL;CAA2F;;CAAA,GAAC,YAAU;CAAC,QAAI2F,GAAG,GAAC,IAAIjB,UAAJ,CAAe,CAAf,CAAR;CAA0B,QAAIkB,EAAE,GAAC,IAAInB,SAAJ,CAAckB,GAAG,CAAChJ,MAAlB,CAAP;CAAiCgJ,IAAAA,GAAG,CAAC,CAAD,CAAH,GAAO,KAAP;CAAa,QAAGC,EAAE,CAAC,CAAD,CAAF,KAAQ,GAAR,IAAaA,EAAE,CAAC,CAAD,CAAF,KAAQ,EAAxB,EAA2B,MAAK,mGAAL;CAAyG,GAAxN;;CAA4N,MAAIC,YAAY,GAAC,EAAjB;CAAoB,MAAIC,UAAU,GAAC,EAAf;CAAkB,MAAIC,aAAa,GAAC,EAAlB;CAAqB,MAAIC,kBAAkB,GAAC,KAAvB;;CAA8E,WAASC,MAAT,GAAiB;CAAC,QAAGlM,MAAM,CAAC,QAAD,CAAT,EAAoB;CAAC,UAAG,OAAOA,MAAM,CAAC,QAAD,CAAb,IAAyB,UAA5B,EAAuCA,MAAM,CAAC,QAAD,CAAN,GAAiB,CAACA,MAAM,CAAC,QAAD,CAAP,CAAjB;;CAAoC,aAAMA,MAAM,CAAC,QAAD,CAAN,CAAiBoD,MAAvB,EAA8B;CAAC+I,QAAAA,WAAW,CAACnM,MAAM,CAAC,QAAD,CAAN,CAAiBoM,KAAjB,EAAD,CAAX;CAAsC;CAAC;;CAAAC,IAAAA,oBAAoB,CAACP,YAAD,CAApB;CAAmC;;CAAA,WAASQ,WAAT,GAAsB;CAACb,IAAAA,gBAAgB;CAAG3I,IAAAA,MAAM,CAAC,CAACmJ,kBAAF,CAAN;CAA4BA,IAAAA,kBAAkB,GAAC,IAAnB;CAAwB,QAAG,CAACjM,MAAM,CAAC,UAAD,CAAP,IAAqB,CAACuM,EAAE,CAACC,IAAH,CAAQC,WAAjC,EAA6CF,EAAE,CAACC,IAAH;CAAUD,IAAAA,EAAE,CAACG,iBAAH,GAAqB,KAArB;CAAsCL,IAAAA,oBAAoB,CAACN,UAAD,CAApB;CAAiC;;CAAA,WAASY,OAAT,GAAkB;CAAClB,IAAAA,gBAAgB;;CAAG,QAAGzL,MAAM,CAAC,SAAD,CAAT,EAAqB;CAAC,UAAG,OAAOA,MAAM,CAAC,SAAD,CAAb,IAA0B,UAA7B,EAAwCA,MAAM,CAAC,SAAD,CAAN,GAAkB,CAACA,MAAM,CAAC,SAAD,CAAP,CAAlB;;CAAsC,aAAMA,MAAM,CAAC,SAAD,CAAN,CAAkBoD,MAAxB,EAA+B;CAACwJ,QAAAA,YAAY,CAAC5M,MAAM,CAAC,SAAD,CAAN,CAAkBoM,KAAlB,EAAD,CAAZ;CAAwC;CAAC;;CAAAC,IAAAA,oBAAoB,CAACL,aAAD,CAApB;CAAoC;;CAAA,WAASG,WAAT,CAAqBU,EAArB,EAAwB;CAACf,IAAAA,YAAY,CAACgB,OAAb,CAAqBD,EAArB;CAAyB;;CAAA,WAASE,SAAT,CAAmBF,EAAnB,EAAsB;CAACd,IAAAA,UAAU,CAACe,OAAX,CAAmBD,EAAnB;CAAuB;;CAAA,WAASD,YAAT,CAAsBC,EAAtB,EAAyB;CAACb,IAAAA,aAAa,CAACc,OAAd,CAAsBD,EAAtB;CAA0B;;CAAA/J,EAAAA,MAAM,CAACkK,IAAI,CAACC,IAAN,EAAW,6HAAX,CAAN;CAAgJnK,EAAAA,MAAM,CAACkK,IAAI,CAACE,MAAN,EAAa,+HAAb,CAAN;CAAoJpK,EAAAA,MAAM,CAACkK,IAAI,CAACG,KAAN,EAAY,8HAAZ,CAAN;CAAkJrK,EAAAA,MAAM,CAACkK,IAAI,CAACI,KAAN,EAAY,8HAAZ,CAAN;CAAkJ,MAAIC,eAAe,GAAC,CAApB;CAAsB,MAAIC,oBAAoB,GAAC,IAAzB;CAA8B,MAAIC,qBAAqB,GAAC,IAA1B;CAA+B,MAAIC,qBAAqB,GAAC,EAA1B;;CAA6B,WAASC,sBAAT,CAAgCC,EAAhC,EAAmC;CAAC,QAAIC,IAAI,GAACD,EAAT;;CAAY,WAAM,CAAN,EAAQ;CAAC,UAAG,CAACF,qBAAqB,CAACE,EAAD,CAAzB,EAA8B,OAAOA,EAAP;CAAUA,MAAAA,EAAE,GAACC,IAAI,GAACX,IAAI,CAACY,MAAL,EAAR;CAAsB;CAAC;;CAAA,WAASC,gBAAT,CAA0BH,EAA1B,EAA6B;CAACL,IAAAA,eAAe;;CAAG,QAAGrN,MAAM,CAAC,wBAAD,CAAT,EAAoC;CAACA,MAAAA,MAAM,CAAC,wBAAD,CAAN,CAAiCqN,eAAjC;CAAkD;;CAAA,QAAGK,EAAH,EAAM;CAAC5K,MAAAA,MAAM,CAAC,CAAC0K,qBAAqB,CAACE,EAAD,CAAvB,CAAN;CAAmCF,MAAAA,qBAAqB,CAACE,EAAD,CAArB,GAA0B,CAA1B;;CAA4B,UAAGJ,oBAAoB,KAAG,IAAvB,IAA6B,OAAOQ,WAAP,IAAoB,WAApD,EAAgE;CAACR,QAAAA,oBAAoB,GAACQ,WAAW,CAAC,YAAU;CAAC,cAAGlH,KAAH,EAAS;CAACmH,YAAAA,aAAa,CAACT,oBAAD,CAAb;CAAoCA,YAAAA,oBAAoB,GAAC,IAArB;CAA0B;CAAO;;CAAA,cAAI5H,KAAK,GAAC,KAAV;;CAAgB,eAAI,IAAIsI,GAAR,IAAeR,qBAAf,EAAqC;CAAC,gBAAG,CAAC9H,KAAJ,EAAU;CAACA,cAAAA,KAAK,GAAC,IAAN;CAAWxC,cAAAA,GAAG,CAAC,oCAAD,CAAH;CAA0C;;CAAAA,YAAAA,GAAG,CAAC,iBAAe8K,GAAhB,CAAH;CAAwB;;CAAA,cAAGtI,KAAH,EAAS;CAACxC,YAAAA,GAAG,CAAC,eAAD,CAAH;CAAqB;CAAC,SAAzQ,EAA0Q,GAA1Q,CAAhC;CAA+S;CAAC,KAAvb,MAA2b;CAACA,MAAAA,GAAG,CAAC,0CAAD,CAAH;CAAgD;CAAC;;CAAA,WAAS+K,mBAAT,CAA6BP,EAA7B,EAAgC;CAACL,IAAAA,eAAe;;CAAG,QAAGrN,MAAM,CAAC,wBAAD,CAAT,EAAoC;CAACA,MAAAA,MAAM,CAAC,wBAAD,CAAN,CAAiCqN,eAAjC;CAAkD;;CAAA,QAAGK,EAAH,EAAM;CAAC5K,MAAAA,MAAM,CAAC0K,qBAAqB,CAACE,EAAD,CAAtB,CAAN;CAAkC,aAAOF,qBAAqB,CAACE,EAAD,CAA5B;CAAiC,KAA1E,MAA8E;CAACxK,MAAAA,GAAG,CAAC,4CAAD,CAAH;CAAkD;;CAAA,QAAGmK,eAAe,IAAE,CAApB,EAAsB;CAAC,UAAGC,oBAAoB,KAAG,IAA1B,EAA+B;CAACS,QAAAA,aAAa,CAACT,oBAAD,CAAb;CAAoCA,QAAAA,oBAAoB,GAAC,IAArB;CAA0B;;CAAA,UAAGC,qBAAH,EAAyB;CAAC,YAAIW,QAAQ,GAACX,qBAAb;CAAmCA,QAAAA,qBAAqB,GAAC,IAAtB;CAA2BW,QAAAA,QAAQ;CAAG;CAAC;CAAC;;CAAA,WAASjI,KAAT,CAAekI,IAAf,EAAoB;CAAC;CAAC,UAAGnO,MAAM,CAAC,SAAD,CAAT,EAAqB;CAACA,QAAAA,MAAM,CAAC,SAAD,CAAN,CAAkBmO,IAAlB;CAAwB;CAAC;CAAAA,IAAAA,IAAI,GAAC,aAAWA,IAAX,GAAgB,GAArB;CAAyBjL,IAAAA,GAAG,CAACiL,IAAD,CAAH;CAAUvH,IAAAA,KAAK,GAAC,IAAN;CAAwB,QAAIwH,CAAC,GAAC,IAAI1H,WAAW,CAAC2H,YAAhB,CAA6BF,IAA7B,CAAN;CAAyC,UAAMC,CAAN;CAAQ;;CAAA,MAAIE,aAAa,GAAC,uCAAlB;;CAA0D,WAASC,SAAT,CAAmBhM,QAAnB,EAA4B;CAAC,WAAOA,QAAQ,CAACiM,UAAT,CAAoBF,aAApB,CAAP;CAA0C;;CAAA,WAASG,SAAT,CAAmBlM,QAAnB,EAA4B;CAAC,WAAOA,QAAQ,CAACiM,UAAT,CAAoB,SAApB,CAAP;CAAsC;;CAAA,WAASE,mBAAT,CAA6BC,IAA7B,EAAkCC,QAAlC,EAA2C;CAAC,WAAO,YAAU;CAAC,UAAIC,WAAW,GAACF,IAAhB;CAAqB,UAAIG,GAAG,GAACF,QAAR;;CAAiB,UAAG,CAACA,QAAJ,EAAa;CAACE,QAAAA,GAAG,GAAC9O,MAAM,CAAC,KAAD,CAAV;CAAkB;;CAAA8C,MAAAA,MAAM,CAACmJ,kBAAD,EAAoB,sBAAoB4C,WAApB,GAAgC,wCAApD,CAAN;;CAAoG,UAAG,CAACC,GAAG,CAACH,IAAD,CAAP,EAAc;CAAC7L,QAAAA,MAAM,CAACgM,GAAG,CAACH,IAAD,CAAJ,EAAW,+BAA6BE,WAA7B,GAAyC,aAApD,CAAN;CAAyE;;CAAA,aAAOC,GAAG,CAACH,IAAD,CAAH,CAAUI,KAAV,CAAgB,IAAhB,EAAqBC,SAArB,CAAP;CAAuC,KAA3T;CAA4T;;CAAA,MAAIC,cAAJ;CAAmBA,EAAAA,cAAc,GAAC,cAAf;;CAA8B,MAAG,CAACV,SAAS,CAACU,cAAD,CAAb,EAA8B;CAACA,IAAAA,cAAc,GAACxN,UAAU,CAACwN,cAAD,CAAzB;CAA0C;;CAAA,WAASC,SAAT,CAAmBC,IAAnB,EAAwB;CAAC,QAAG;CAAC,UAAGA,IAAI,IAAEF,cAAN,IAAsBxI,UAAzB,EAAoC;CAAC,eAAO,IAAI5D,UAAJ,CAAe4D,UAAf,CAAP;CAAkC;;CAAA,UAAG5E,UAAH,EAAc;CAAC,eAAOA,UAAU,CAACsN,IAAD,CAAjB;CAAwB,OAAvC,MAA2C;CAAC,cAAK,iDAAL;CAAuD;CAAC,KAA/K,CAA+K,OAAMjM,GAAN,EAAU;CAAC+C,MAAAA,KAAK,CAAC/C,GAAD,CAAL;CAAW;CAAC;;CAAA,WAASkM,gBAAT,GAA2B;CAAC,QAAG,CAAC3I,UAAD,KAAc3F,kBAAkB,IAAEE,qBAAlC,CAAH,EAA4D;CAAC,UAAG,OAAOqO,KAAP,IAAc,UAAd,IAA0B,CAACZ,SAAS,CAACQ,cAAD,CAAvC,EAAwD;CAAC,eAAOI,KAAK,CAACJ,cAAD,EAAgB;CAACK,UAAAA,WAAW,EAAC;CAAb,SAAhB,CAAL,CAAkDC,IAAlD,CAAuD,UAASrK,QAAT,EAAkB;CAAC,cAAG,CAACA,QAAQ,CAAC,IAAD,CAAZ,EAAmB;CAAC,kBAAK,yCAAuC+J,cAAvC,GAAsD,GAA3D;CAA+D;;CAAA,iBAAO/J,QAAQ,CAAC,aAAD,CAAR,EAAP;CAAiC,SAA9L,EAAgMsK,KAAhM,CAAsM,YAAU;CAAC,iBAAON,SAAS,CAACD,cAAD,CAAhB;CAAiC,SAAlP,CAAP;CAA2P,OAApT,MAAwT;CAAC,YAAGrN,SAAH,EAAa;CAAC,iBAAO,IAAI6N,OAAJ,CAAY,UAASC,OAAT,EAAiBC,MAAjB,EAAwB;CAAC/N,YAAAA,SAAS,CAACqN,cAAD,EAAgB,UAAS/J,QAAT,EAAkB;CAACwK,cAAAA,OAAO,CAAC,IAAI7M,UAAJ,CAAeqC,QAAf,CAAD,CAAP;CAAkC,aAArE,EAAsEyK,MAAtE,CAAT;CAAuF,WAA5H,CAAP;CAAqI;CAAC;CAAC;;CAAA,WAAOF,OAAO,CAACC,OAAR,GAAkBH,IAAlB,CAAuB,YAAU;CAAC,aAAOL,SAAS,CAACD,cAAD,CAAhB;CAAiC,KAAnE,CAAP;CAA4E;;CAAA,WAASW,UAAT,GAAqB;CAAC,QAAIC,IAAI,GAAC;CAAC,aAAMC,aAAP;CAAqB,gCAAyBA;CAA9C,KAAT;;CAAsE,aAASC,eAAT,CAAyBC,QAAzB,EAAkCxM,MAAlC,EAAyC;CAAC,UAAIyM,OAAO,GAACD,QAAQ,CAACC,OAArB;CAA6BjQ,MAAAA,MAAM,CAAC,KAAD,CAAN,GAAciQ,OAAd;CAAsBtJ,MAAAA,UAAU,GAAC3G,MAAM,CAAC,KAAD,CAAN,CAAc,QAAd,CAAX;CAAmC8C,MAAAA,MAAM,CAAC6D,UAAD,EAAY,kCAAZ,CAAN;CAAsD6D,MAAAA,0BAA0B,CAAC7D,UAAU,CAAC/D,MAAZ,CAA1B;CAA8CyI,MAAAA,SAAS,GAACrL,MAAM,CAAC,KAAD,CAAN,CAAc,2BAAd,CAAV;CAAqD8C,MAAAA,MAAM,CAACuI,SAAD,EAAW,iCAAX,CAAN;CAAoD0B,MAAAA,SAAS,CAAC/M,MAAM,CAAC,KAAD,CAAN,CAAc,mBAAd,CAAD,CAAT;CAA8CiO,MAAAA,mBAAmB,CAAC,kBAAD,CAAnB;CAAwC;;CAAAJ,IAAAA,gBAAgB,CAAC,kBAAD,CAAhB;CAAqC,QAAIqC,UAAU,GAAClQ,MAAf;;CAAsB,aAASmQ,0BAAT,CAAoCC,MAApC,EAA2C;CAACtN,MAAAA,MAAM,CAAC9C,MAAM,KAAGkQ,UAAV,EAAqB,kHAArB,CAAN;CAA+IA,MAAAA,UAAU,GAAC,IAAX;CAAgBH,MAAAA,eAAe,CAACK,MAAM,CAAC,UAAD,CAAP,CAAf;CAAoC;;CAAA,aAASC,sBAAT,CAAgCC,QAAhC,EAAyC;CAAC,aAAOlB,gBAAgB,GAAGG,IAAnB,CAAwB,UAAS/M,MAAT,EAAgB;CAAC,eAAOkE,WAAW,CAAC6J,WAAZ,CAAwB/N,MAAxB,EAA+BqN,IAA/B,CAAP;CAA4C,OAArF,EAAuFN,IAAvF,CAA4F,UAASS,QAAT,EAAkB;CAAC,eAAOA,QAAP;CAAgB,OAA/H,EAAiIT,IAAjI,CAAsIe,QAAtI,EAA+I,UAAS3M,MAAT,EAAgB;CAACT,QAAAA,GAAG,CAAC,4CAA0CS,MAA3C,CAAH;;CAAsD,YAAG8K,SAAS,CAACQ,cAAD,CAAZ,EAA6B;CAAC/L,UAAAA,GAAG,CAAC,uCAAqC+L,cAArC,GAAoD,gMAArD,CAAH;CAA0P;;CAAAhJ,QAAAA,KAAK,CAACtC,MAAD,CAAL;CAAc,OAA5f,CAAP;CAAqgB;;CAAA,aAAS6M,gBAAT,GAA2B;CAAC,UAAG,CAAC/J,UAAD,IAAa,OAAOC,WAAW,CAAC+J,oBAAnB,IAAyC,UAAtD,IAAkE,CAAClC,SAAS,CAACU,cAAD,CAA5E,IAA8F,CAACR,SAAS,CAACQ,cAAD,CAAxG,IAA0H,OAAOI,KAAP,IAAc,UAA3I,EAAsJ;CAAC,eAAOA,KAAK,CAACJ,cAAD,EAAgB;CAACK,UAAAA,WAAW,EAAC;CAAb,SAAhB,CAAL,CAAkDC,IAAlD,CAAuD,UAASrK,QAAT,EAAkB;CAAC,cAAIkL,MAAM,GAAC1J,WAAW,CAAC+J,oBAAZ,CAAiCvL,QAAjC,EAA0C2K,IAA1C,CAAX;CAA2D,iBAAOO,MAAM,CAACb,IAAP,CAAYY,0BAAZ,EAAuC,UAASxM,MAAT,EAAgB;CAACT,YAAAA,GAAG,CAAC,oCAAkCS,MAAnC,CAAH;CAA8CT,YAAAA,GAAG,CAAC,2CAAD,CAAH;CAAiD,mBAAOmN,sBAAsB,CAACF,0BAAD,CAA7B;CAA0D,WAAjN,CAAP;CAA0N,SAA/V,CAAP;CAAwW,OAA/f,MAAmgB;CAAC,eAAOE,sBAAsB,CAACF,0BAAD,CAA7B;CAA0D;CAAC;;CAAA,QAAGnQ,MAAM,CAAC,iBAAD,CAAT,EAA6B;CAAC,UAAG;CAAC,YAAIiQ,OAAO,GAACjQ,MAAM,CAAC,iBAAD,CAAN,CAA0B6P,IAA1B,EAA+BE,eAA/B,CAAZ;CAA4D,eAAOE,OAAP;CAAe,OAA/E,CAA+E,OAAM7B,CAAN,EAAQ;CAAClL,QAAAA,GAAG,CAAC,wDAAsDkL,CAAvD,CAAH;CAA6D,eAAO,KAAP;CAAa;CAAC;;CAAAoC,IAAAA,gBAAgB;CAAG,WAAM,EAAN;CAAS;;CAAA,MAAIE,UAAJ;CAAe,MAAIC,OAAJ;;CAAY,WAAStE,oBAAT,CAA8BuE,SAA9B,EAAwC;CAAC,WAAMA,SAAS,CAACxN,MAAV,GAAiB,CAAvB,EAAyB;CAAC,UAAI8K,QAAQ,GAAC0C,SAAS,CAACxE,KAAV,EAAb;;CAA+B,UAAG,OAAO8B,QAAP,IAAiB,UAApB,EAA+B;CAACA,QAAAA,QAAQ,CAAClO,MAAD,CAAR;CAAiB;CAAS;;CAAA,UAAI6Q,IAAI,GAAC3C,QAAQ,CAAC2C,IAAlB;;CAAuB,UAAG,OAAOA,IAAP,IAAa,QAAhB,EAAyB;CAAC,YAAG3C,QAAQ,CAAC4C,GAAT,KAAepO,SAAlB,EAA4B;CAACqO,UAAAA,iBAAiB,CAACF,IAAD,CAAjB;CAA0B,SAAvD,MAA2D;CAACE,UAAAA,iBAAiB,CAACF,IAAD,CAAjB,CAAwB3C,QAAQ,CAAC4C,GAAjC;CAAsC;CAAC,OAA7H,MAAiI;CAACD,QAAAA,IAAI,CAAC3C,QAAQ,CAAC4C,GAAT,KAAepO,SAAf,GAAyB,IAAzB,GAA8BwL,QAAQ,CAAC4C,GAAxC,CAAJ;CAAiD;CAAC;CAAC;;CAAA,WAASE,QAAT,CAAkBH,IAAlB,EAAuB;CAACpL,IAAAA,QAAQ,CAAC,wEAAD,CAAR;CAAmF,WAAOoL,IAAP;CAAY;;CAAA,WAASI,WAAT,CAAqB/Q,IAArB,EAA0B;CAAC,QAAIgR,KAAK,GAAC,eAAV;CAA0B,WAAOhR,IAAI,CAACmD,OAAL,CAAa6N,KAAb,EAAmB,UAASC,CAAT,EAAW;CAAC,UAAIC,CAAC,GAACJ,QAAQ,CAACG,CAAD,CAAd;CAAkB,aAAOA,CAAC,KAAGC,CAAJ,GAAMD,CAAN,GAAQC,CAAC,GAAC,IAAF,GAAOD,CAAP,GAAS,GAAxB;CAA4B,KAA7E,CAAP;CAAsF;;CAAA,WAASJ,iBAAT,CAA2BM,OAA3B,EAAmC;CAAC,WAAOhG,SAAS,CAACrF,GAAV,CAAcqL,OAAd,CAAP;CAA8B;;CAAA,WAASC,YAAT,GAAuB;CAAC,QAAIrN,KAAK,GAAC,IAAI1C,KAAJ,EAAV;;CAAoB,QAAG,CAAC0C,KAAK,CAACsN,KAAV,EAAgB;CAAC,UAAG;CAAC,cAAM,IAAIhQ,KAAJ,EAAN;CAAgB,OAApB,CAAoB,OAAM6M,CAAN,EAAQ;CAACnK,QAAAA,KAAK,GAACmK,CAAN;CAAQ;;CAAA,UAAG,CAACnK,KAAK,CAACsN,KAAV,EAAgB;CAAC,eAAM,4BAAN;CAAmC;CAAC;;CAAA,WAAOtN,KAAK,CAACsN,KAAN,CAAYzJ,QAAZ,EAAP;CAA8B;;CAA6D,WAAS0J,QAAT,CAAkBC,KAAlB,EAAwB;CAAC9H,IAAAA,MAAM,CAAC+H,iBAAiB,MAAI,CAAtB,CAAN,GAA+BD,KAA/B;CAAqC,WAAOA,KAAP;CAAa;;CAAA,MAAIE,IAAI,GAAC;CAACC,IAAAA,KAAK,EAAClQ,IAAI,IAAEA,IAAI,CAACmQ,MAAL,CAAY,CAAZ,MAAiB,GAA9B;CAAkCC,IAAAA,SAAS,EAACvP,QAAQ,IAAE;CAAC,UAAIwP,WAAW,GAAC,+DAAhB;CAAgF,aAAOA,WAAW,CAACC,IAAZ,CAAiBzP,QAAjB,EAA2BgB,KAA3B,CAAiC,CAAjC,CAAP;CAA2C,KAAlL;CAAmL0O,IAAAA,cAAc,EAAC,CAACC,KAAD,EAAOC,cAAP,KAAwB;CAAC,UAAIC,EAAE,GAAC,CAAP;;CAAS,WAAI,IAAI5J,CAAC,GAAC0J,KAAK,CAAC9O,MAAN,GAAa,CAAvB,EAAyBoF,CAAC,IAAE,CAA5B,EAA8BA,CAAC,EAA/B,EAAkC;CAAC,YAAI6J,IAAI,GAACH,KAAK,CAAC1J,CAAD,CAAd;;CAAkB,YAAG6J,IAAI,KAAG,GAAV,EAAc;CAACH,UAAAA,KAAK,CAACI,MAAN,CAAa9J,CAAb,EAAe,CAAf;CAAkB,SAAjC,MAAsC,IAAG6J,IAAI,KAAG,IAAV,EAAe;CAACH,UAAAA,KAAK,CAACI,MAAN,CAAa9J,CAAb,EAAe,CAAf;CAAkB4J,UAAAA,EAAE;CAAG,SAAvC,MAA4C,IAAGA,EAAH,EAAM;CAACF,UAAAA,KAAK,CAACI,MAAN,CAAa9J,CAAb,EAAe,CAAf;CAAkB4J,UAAAA,EAAE;CAAG;CAAC;;CAAA,UAAGD,cAAH,EAAkB;CAAC,eAAKC,EAAL,EAAQA,EAAE,EAAV,EAAa;CAACF,UAAAA,KAAK,CAACpF,OAAN,CAAc,IAAd;CAAoB;CAAC;;CAAA,aAAOoF,KAAP;CAAa,KAA7c;CAA8cK,IAAAA,SAAS,EAAC7Q,IAAI,IAAE;CAAC,UAAI8Q,UAAU,GAACb,IAAI,CAACC,KAAL,CAAWlQ,IAAX,CAAf;CAAA,UAAgC+Q,aAAa,GAAC/Q,IAAI,CAAC+C,MAAL,CAAY,CAAC,CAAb,MAAkB,GAAhE;CAAoE/C,MAAAA,IAAI,GAACiQ,IAAI,CAACM,cAAL,CAAoBvQ,IAAI,CAACgR,KAAL,CAAW,GAAX,EAAgBC,MAAhB,CAAuBC,CAAC,IAAE,CAAC,CAACA,CAA5B,CAApB,EAAmD,CAACJ,UAApD,EAAgEK,IAAhE,CAAqE,GAArE,CAAL;;CAA+E,UAAG,CAACnR,IAAD,IAAO,CAAC8Q,UAAX,EAAsB;CAAC9Q,QAAAA,IAAI,GAAC,GAAL;CAAS;;CAAA,UAAGA,IAAI,IAAE+Q,aAAT,EAAuB;CAAC/Q,QAAAA,IAAI,IAAE,GAAN;CAAU;;CAAA,aAAM,CAAC8Q,UAAU,GAAC,GAAD,GAAK,EAAhB,IAAoB9Q,IAA1B;CAA+B,KAAntB;CAAotBS,IAAAA,OAAO,EAACT,IAAI,IAAE;CAAC,UAAI0O,MAAM,GAACuB,IAAI,CAACG,SAAL,CAAepQ,IAAf,CAAX;CAAA,UAAgCoR,IAAI,GAAC1C,MAAM,CAAC,CAAD,CAA3C;CAAA,UAA+C2C,GAAG,GAAC3C,MAAM,CAAC,CAAD,CAAzD;;CAA6D,UAAG,CAAC0C,IAAD,IAAO,CAACC,GAAX,EAAe;CAAC,eAAM,GAAN;CAAU;;CAAA,UAAGA,GAAH,EAAO;CAACA,QAAAA,GAAG,GAACA,GAAG,CAACtO,MAAJ,CAAW,CAAX,EAAasO,GAAG,CAAC3P,MAAJ,GAAW,CAAxB,CAAJ;CAA+B;;CAAA,aAAO0P,IAAI,GAACC,GAAZ;CAAgB,KAAj3B;CAAk3BC,IAAAA,QAAQ,EAACtR,IAAI,IAAE;CAAC,UAAGA,IAAI,KAAG,GAAV,EAAc,OAAM,GAAN;CAAUA,MAAAA,IAAI,GAACiQ,IAAI,CAACY,SAAL,CAAe7Q,IAAf,CAAL;CAA0BA,MAAAA,IAAI,GAACA,IAAI,CAAC2B,OAAL,CAAa,KAAb,EAAmB,EAAnB,CAAL;CAA4B,UAAI4P,SAAS,GAACvR,IAAI,CAACgD,WAAL,CAAiB,GAAjB,CAAd;CAAoC,UAAGuO,SAAS,KAAG,CAAC,CAAhB,EAAkB,OAAOvR,IAAP;CAAY,aAAOA,IAAI,CAAC+C,MAAL,CAAYwO,SAAS,GAAC,CAAtB,CAAP;CAAgC,KAAljC;CAAmjCJ,IAAAA,IAAI,EAAC,YAAU;CAAC,UAAIK,KAAK,GAACC,KAAK,CAAChI,SAAN,CAAgB5H,KAAhB,CAAsB6P,IAAtB,CAA2BpE,SAA3B,EAAqC,CAArC,CAAV;CAAkD,aAAO2C,IAAI,CAACY,SAAL,CAAeW,KAAK,CAACL,IAAN,CAAW,GAAX,CAAf,CAAP;CAAuC,KAA5pC;CAA6pCQ,IAAAA,KAAK,EAAC,CAACC,CAAD,EAAGC,CAAH,KAAO;CAAC,aAAO5B,IAAI,CAACY,SAAL,CAAee,CAAC,GAAC,GAAF,GAAMC,CAArB,CAAP;CAA+B;CAA1sC,GAAT;;CAAqtC,WAASC,eAAT,GAA0B;CAAC,QAAG,OAAOC,MAAP,IAAe,QAAf,IAAyB,OAAOA,MAAM,CAAC,iBAAD,CAAb,IAAkC,UAA9D,EAAyE;CAAC,UAAIC,YAAY,GAAC,IAAI7Q,UAAJ,CAAe,CAAf,CAAjB;CAAmC,aAAO,YAAU;CAAC4Q,QAAAA,MAAM,CAACE,eAAP,CAAuBD,YAAvB;CAAqC,eAAOA,YAAY,CAAC,CAAD,CAAnB;CAAuB,OAA9E;CAA+E,KAA5L,MAAiM,IAAGxS,mBAAH,EAAuB;CAAC,UAAG;CAAC,YAAI0S,aAAa,GAACC,0BAAlB;CAAoC,eAAO,YAAU;CAAC,iBAAOD,aAAa,CAAC,aAAD,CAAb,CAA6B,CAA7B,EAAgC,CAAhC,CAAP;CAA0C,SAA5D;CAA6D,OAArG,CAAqG,OAAMxF,CAAN,EAAQ;CAAG;;CAAA,WAAO,YAAU;CAACnI,MAAAA,KAAK,CAAC,gSAAD,CAAL;CAAwS,KAA1T;CAA2T;;CAAA,MAAI6N,OAAO,GAAC;CAACpE,IAAAA,OAAO,EAAC,YAAU;CAAC,UAAIqE,YAAY,GAAC,EAAjB;CAAA,UAAoBC,gBAAgB,GAAC,KAArC;;CAA2C,WAAI,IAAIxL,CAAC,GAACwG,SAAS,CAAC5L,MAAV,GAAiB,CAA3B,EAA6BoF,CAAC,IAAE,CAAC,CAAJ,IAAO,CAACwL,gBAArC,EAAsDxL,CAAC,EAAvD,EAA0D;CAAC,YAAI9G,IAAI,GAAC8G,CAAC,IAAE,CAAH,GAAKwG,SAAS,CAACxG,CAAD,CAAd,GAAkB+D,EAAE,CAAC0H,GAAH,EAA3B;;CAAoC,YAAG,OAAOvS,IAAP,IAAa,QAAhB,EAAyB;CAAC,gBAAM,IAAIwS,SAAJ,CAAc,2CAAd,CAAN;CAAiE,SAA3F,MAAgG,IAAG,CAACxS,IAAJ,EAAS;CAAC,iBAAM,EAAN;CAAS;;CAAAqS,QAAAA,YAAY,GAACrS,IAAI,GAAC,GAAL,GAASqS,YAAtB;CAAmCC,QAAAA,gBAAgB,GAACrC,IAAI,CAACC,KAAL,CAAWlQ,IAAX,CAAjB;CAAkC;;CAAAqS,MAAAA,YAAY,GAACpC,IAAI,CAACM,cAAL,CAAoB8B,YAAY,CAACrB,KAAb,CAAmB,GAAnB,EAAwBC,MAAxB,CAA+BC,CAAC,IAAE,CAAC,CAACA,CAApC,CAApB,EAA2D,CAACoB,gBAA5D,EAA8EnB,IAA9E,CAAmF,GAAnF,CAAb;CAAqG,aAAM,CAACmB,gBAAgB,GAAC,GAAD,GAAK,EAAtB,IAA0BD,YAA1B,IAAwC,GAA9C;CAAkD,KAA7e;CAA8eI,IAAAA,QAAQ,EAAC,CAACC,IAAD,EAAMC,EAAN,KAAW;CAACD,MAAAA,IAAI,GAACN,OAAO,CAACpE,OAAR,CAAgB0E,IAAhB,EAAsB3P,MAAtB,CAA6B,CAA7B,CAAL;CAAqC4P,MAAAA,EAAE,GAACP,OAAO,CAACpE,OAAR,CAAgB2E,EAAhB,EAAoB5P,MAApB,CAA2B,CAA3B,CAAH;;CAAiC,eAAS6P,IAAT,CAAcC,GAAd,EAAkB;CAAC,YAAIC,KAAK,GAAC,CAAV;;CAAY,eAAKA,KAAK,GAACD,GAAG,CAACnR,MAAf,EAAsBoR,KAAK,EAA3B,EAA8B;CAAC,cAAGD,GAAG,CAACC,KAAD,CAAH,KAAa,EAAhB,EAAmB;CAAM;;CAAA,YAAIC,GAAG,GAACF,GAAG,CAACnR,MAAJ,GAAW,CAAnB;;CAAqB,eAAKqR,GAAG,IAAE,CAAV,EAAYA,GAAG,EAAf,EAAkB;CAAC,cAAGF,GAAG,CAACE,GAAD,CAAH,KAAW,EAAd,EAAiB;CAAM;;CAAA,YAAGD,KAAK,GAACC,GAAT,EAAa,OAAM,EAAN;CAAS,eAAOF,GAAG,CAAChR,KAAJ,CAAUiR,KAAV,EAAgBC,GAAG,GAACD,KAAJ,GAAU,CAA1B,CAAP;CAAoC;;CAAA,UAAIE,SAAS,GAACJ,IAAI,CAACF,IAAI,CAAC1B,KAAL,CAAW,GAAX,CAAD,CAAlB;CAAoC,UAAIiC,OAAO,GAACL,IAAI,CAACD,EAAE,CAAC3B,KAAH,CAAS,GAAT,CAAD,CAAhB;CAAgC,UAAItP,MAAM,GAAC4J,IAAI,CAAC4H,GAAL,CAASF,SAAS,CAACtR,MAAnB,EAA0BuR,OAAO,CAACvR,MAAlC,CAAX;CAAqD,UAAIyR,eAAe,GAACzR,MAApB;;CAA2B,WAAI,IAAIoF,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACpF,MAAd,EAAqBoF,CAAC,EAAtB,EAAyB;CAAC,YAAGkM,SAAS,CAAClM,CAAD,CAAT,KAAemM,OAAO,CAACnM,CAAD,CAAzB,EAA6B;CAACqM,UAAAA,eAAe,GAACrM,CAAhB;CAAkB;CAAM;CAAC;;CAAA,UAAIsM,WAAW,GAAC,EAAhB;;CAAmB,WAAI,IAAItM,CAAC,GAACqM,eAAV,EAA0BrM,CAAC,GAACkM,SAAS,CAACtR,MAAtC,EAA6CoF,CAAC,EAA9C,EAAiD;CAACsM,QAAAA,WAAW,CAACC,IAAZ,CAAiB,IAAjB;CAAuB;;CAAAD,MAAAA,WAAW,GAACA,WAAW,CAACE,MAAZ,CAAmBL,OAAO,CAACpR,KAAR,CAAcsR,eAAd,CAAnB,CAAZ;CAA+D,aAAOC,WAAW,CAACjC,IAAZ,CAAiB,GAAjB,CAAP;CAA6B;CAAtrC,GAAZ;CAAosC,MAAIoC,GAAG,GAAC;CAACC,IAAAA,IAAI,EAAC,EAAN;CAAS1I,IAAAA,IAAI,EAAC,YAAU,EAAxB;CAA2B2I,IAAAA,QAAQ,EAAC,YAAU,EAA9C;CAAiDC,IAAAA,QAAQ,EAAC,UAASC,GAAT,EAAaC,GAAb,EAAiB;CAACL,MAAAA,GAAG,CAACC,IAAJ,CAASG,GAAT,IAAc;CAACE,QAAAA,KAAK,EAAC,EAAP;CAAUC,QAAAA,MAAM,EAAC,EAAjB;CAAoBF,QAAAA,GAAG,EAACA;CAAxB,OAAd;CAA2C/I,MAAAA,EAAE,CAACkJ,cAAH,CAAkBJ,GAAlB,EAAsBJ,GAAG,CAACS,UAA1B;CAAsC,KAA7J;CAA8JA,IAAAA,UAAU,EAAC;CAAC5Q,MAAAA,IAAI,EAAC,UAAS6Q,MAAT,EAAgB;CAAC,YAAIC,GAAG,GAACX,GAAG,CAACC,IAAJ,CAASS,MAAM,CAACtU,IAAP,CAAYwU,IAArB,CAAR;;CAAmC,YAAG,CAACD,GAAJ,EAAQ;CAAC,gBAAM,IAAIrJ,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAAH,QAAAA,MAAM,CAACC,GAAP,GAAWA,GAAX;CAAeD,QAAAA,MAAM,CAACI,QAAP,GAAgB,KAAhB;CAAsB,OAApI;CAAqIC,MAAAA,KAAK,EAAC,UAASL,MAAT,EAAgB;CAACA,QAAAA,MAAM,CAACC,GAAP,CAAWN,GAAX,CAAeW,KAAf,CAAqBN,MAAM,CAACC,GAA5B;CAAiC,OAA7L;CAA8LK,MAAAA,KAAK,EAAC,UAASN,MAAT,EAAgB;CAACA,QAAAA,MAAM,CAACC,GAAP,CAAWN,GAAX,CAAeW,KAAf,CAAqBN,MAAM,CAACC,GAA5B;CAAiC,OAAtP;CAAuPhS,MAAAA,IAAI,EAAC,UAAS+R,MAAT,EAAgB/S,MAAhB,EAAuBsT,MAAvB,EAA8B9S,MAA9B,EAAqC+S,GAArC,EAAyC;CAAC,YAAG,CAACR,MAAM,CAACC,GAAR,IAAa,CAACD,MAAM,CAACC,GAAP,CAAWN,GAAX,CAAec,QAAhC,EAAyC;CAAC,gBAAM,IAAI7J,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,YAAIO,SAAS,GAAC,CAAd;;CAAgB,aAAI,IAAI7N,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACpF,MAAd,EAAqBoF,CAAC,EAAtB,EAAyB;CAAC,cAAI4H,MAAJ;;CAAW,cAAG;CAACA,YAAAA,MAAM,GAACuF,MAAM,CAACC,GAAP,CAAWN,GAAX,CAAec,QAAf,CAAwBT,MAAM,CAACC,GAA/B,CAAP;CAA2C,WAA/C,CAA+C,OAAMxH,CAAN,EAAQ;CAAC,kBAAM,IAAI7B,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,cAAG1F,MAAM,KAAG1N,SAAT,IAAoB2T,SAAS,KAAG,CAAnC,EAAqC;CAAC,kBAAM,IAAI9J,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B;;CAAA,cAAG1F,MAAM,KAAG,IAAT,IAAeA,MAAM,KAAG1N,SAA3B,EAAqC;CAAM2T,UAAAA,SAAS;CAAGzT,UAAAA,MAAM,CAACsT,MAAM,GAAC1N,CAAR,CAAN,GAAiB4H,MAAjB;CAAwB;;CAAA,YAAGiG,SAAH,EAAa;CAACV,UAAAA,MAAM,CAACtU,IAAP,CAAYiV,SAAZ,GAAsBC,IAAI,CAACC,GAAL,EAAtB;CAAiC;;CAAA,eAAOH,SAAP;CAAiB,OAArsB;CAAssBI,MAAAA,KAAK,EAAC,UAASd,MAAT,EAAgB/S,MAAhB,EAAuBsT,MAAvB,EAA8B9S,MAA9B,EAAqC+S,GAArC,EAAyC;CAAC,YAAG,CAACR,MAAM,CAACC,GAAR,IAAa,CAACD,MAAM,CAACC,GAAP,CAAWN,GAAX,CAAeoB,QAAhC,EAAyC;CAAC,gBAAM,IAAInK,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,YAAG;CAAC,eAAI,IAAItN,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACpF,MAAd,EAAqBoF,CAAC,EAAtB,EAAyB;CAACmN,YAAAA,MAAM,CAACC,GAAP,CAAWN,GAAX,CAAeoB,QAAf,CAAwBf,MAAM,CAACC,GAA/B,EAAmChT,MAAM,CAACsT,MAAM,GAAC1N,CAAR,CAAzC;CAAqD;CAAC,SAApF,CAAoF,OAAM4F,CAAN,EAAQ;CAAC,gBAAM,IAAI7B,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,YAAG1S,MAAH,EAAU;CAACuS,UAAAA,MAAM,CAACtU,IAAP,CAAYiV,SAAZ,GAAsBC,IAAI,CAACC,GAAL,EAAtB;CAAiC;;CAAA,eAAOhO,CAAP;CAAS;CAA1+B,KAAzK;CAAqpCmO,IAAAA,eAAe,EAAC;CAACP,MAAAA,QAAQ,EAAC,UAASR,GAAT,EAAa;CAAC,YAAG,CAACA,GAAG,CAACL,KAAJ,CAAUnS,MAAd,EAAqB;CAAC,cAAIgN,MAAM,GAAC,IAAX;;CAAgB,cAAGlP,mBAAH,EAAuB;CAAC,gBAAI0V,OAAO,GAAC,GAAZ;CAAgB,gBAAInM,GAAG,GAACoM,MAAM,CAACC,KAAP,CAAaF,OAAb,CAAR;CAA8B,gBAAIP,SAAS,GAAC,CAAd;;CAAgB,gBAAG;CAACA,cAAAA,SAAS,GAACvU,EAAE,CAACiV,QAAH,CAAY5V,OAAO,CAAC6V,KAAR,CAAcC,EAA1B,EAA6BxM,GAA7B,EAAiC,CAAjC,EAAmCmM,OAAnC,EAA2C,CAAC,CAA5C,CAAV;CAAyD,aAA7D,CAA6D,OAAMxI,CAAN,EAAQ;CAAC,kBAAGA,CAAC,CAACtG,QAAF,GAAaoP,QAAb,CAAsB,KAAtB,CAAH,EAAgCb,SAAS,GAAC,CAAV,CAAhC,KAAiD,MAAMjI,CAAN;CAAQ;;CAAA,gBAAGiI,SAAS,GAAC,CAAb,EAAe;CAACjG,cAAAA,MAAM,GAAC3F,GAAG,CAAClH,KAAJ,CAAU,CAAV,EAAY8S,SAAZ,EAAuBvO,QAAvB,CAAgC,OAAhC,CAAP;CAAgD,aAAhE,MAAoE;CAACsI,cAAAA,MAAM,GAAC,IAAP;CAAY;CAAC,WAAvS,MAA4S,IAAG,OAAOrP,MAAP,IAAe,WAAf,IAA4B,OAAOA,MAAM,CAACoW,MAAd,IAAsB,UAArD,EAAgE;CAAC/G,YAAAA,MAAM,GAACrP,MAAM,CAACoW,MAAP,CAAc,SAAd,CAAP;;CAAgC,gBAAG/G,MAAM,KAAG,IAAZ,EAAiB;CAACA,cAAAA,MAAM,IAAE,IAAR;CAAa;CAAC,WAAjI,MAAsI,IAAG,OAAOgH,QAAP,IAAiB,UAApB,EAA+B;CAAChH,YAAAA,MAAM,GAACgH,QAAQ,EAAf;;CAAkB,gBAAGhH,MAAM,KAAG,IAAZ,EAAiB;CAACA,cAAAA,MAAM,IAAE,IAAR;CAAa;CAAC;;CAAA,cAAG,CAACA,MAAJ,EAAW;CAAC,mBAAO,IAAP;CAAY;;CAAAwF,UAAAA,GAAG,CAACL,KAAJ,GAAU8B,kBAAkB,CAACjH,MAAD,EAAQ,IAAR,CAA5B;CAA0C;;CAAA,eAAOwF,GAAG,CAACL,KAAJ,CAAUnJ,KAAV,EAAP;CAAyB,OAA7pB;CAA8pBsK,MAAAA,QAAQ,EAAC,UAASd,GAAT,EAAa0B,GAAb,EAAiB;CAAC,YAAGA,GAAG,KAAG,IAAN,IAAYA,GAAG,KAAG,EAArB,EAAwB;CAAClS,UAAAA,GAAG,CAAC4B,iBAAiB,CAAC4O,GAAG,CAACJ,MAAL,EAAY,CAAZ,CAAlB,CAAH;CAAqCI,UAAAA,GAAG,CAACJ,MAAJ,GAAW,EAAX;CAAc,SAA5E,MAAgF;CAAC,cAAG8B,GAAG,IAAE,CAAR,EAAU1B,GAAG,CAACJ,MAAJ,CAAWT,IAAX,CAAgBuC,GAAhB;CAAqB;CAAC,OAA1yB;CAA2yBrB,MAAAA,KAAK,EAAC,UAASL,GAAT,EAAa;CAAC,YAAGA,GAAG,CAACJ,MAAJ,IAAYI,GAAG,CAACJ,MAAJ,CAAWpS,MAAX,GAAkB,CAAjC,EAAmC;CAACgC,UAAAA,GAAG,CAAC4B,iBAAiB,CAAC4O,GAAG,CAACJ,MAAL,EAAY,CAAZ,CAAlB,CAAH;CAAqCI,UAAAA,GAAG,CAACJ,MAAJ,GAAW,EAAX;CAAc;CAAC;CAAv5B,KAArqC;CAA8jE+B,IAAAA,gBAAgB,EAAC;CAACb,MAAAA,QAAQ,EAAC,UAASd,GAAT,EAAa0B,GAAb,EAAiB;CAAC,YAAGA,GAAG,KAAG,IAAN,IAAYA,GAAG,KAAG,EAArB,EAAwB;CAACpU,UAAAA,GAAG,CAAC8D,iBAAiB,CAAC4O,GAAG,CAACJ,MAAL,EAAY,CAAZ,CAAlB,CAAH;CAAqCI,UAAAA,GAAG,CAACJ,MAAJ,GAAW,EAAX;CAAc,SAA5E,MAAgF;CAAC,cAAG8B,GAAG,IAAE,CAAR,EAAU1B,GAAG,CAACJ,MAAJ,CAAWT,IAAX,CAAgBuC,GAAhB;CAAqB;CAAC,OAA7I;CAA8IrB,MAAAA,KAAK,EAAC,UAASL,GAAT,EAAa;CAAC,YAAGA,GAAG,CAACJ,MAAJ,IAAYI,GAAG,CAACJ,MAAJ,CAAWpS,MAAX,GAAkB,CAAjC,EAAmC;CAACF,UAAAA,GAAG,CAAC8D,iBAAiB,CAAC4O,GAAG,CAACJ,MAAL,EAAY,CAAZ,CAAlB,CAAH;CAAqCI,UAAAA,GAAG,CAACJ,MAAJ,GAAW,EAAX;CAAc;CAAC;CAA1P;CAA/kE,GAAR;;CAAo1E,WAASgC,UAAT,CAAoBC,OAApB,EAA4BzN,IAA5B,EAAiC;CAAC9B,IAAAA,MAAM,CAACwP,IAAP,CAAY,CAAZ,EAAcD,OAAd,EAAsBA,OAAO,GAACzN,IAA9B;CAAoC;;CAAA,WAAS2N,WAAT,CAAqB3N,IAArB,EAA0B4N,SAA1B,EAAoC;CAAC9U,IAAAA,MAAM,CAAC8U,SAAD,EAAW,gCAAX,CAAN;CAAmD,WAAO5K,IAAI,CAAC6K,IAAL,CAAU7N,IAAI,GAAC4N,SAAf,IAA0BA,SAAjC;CAA2C;;CAAA,WAASE,SAAT,CAAmB9N,IAAnB,EAAwB;CAACA,IAAAA,IAAI,GAAC2N,WAAW,CAAC3N,IAAD,EAAM,KAAN,CAAhB;;CAA6B,QAAI/B,GAAG,GAAC8P,4BAA4B,CAAC,KAAD,EAAO/N,IAAP,CAApC;;CAAiD,QAAG,CAAC/B,GAAJ,EAAQ,OAAO,CAAP;CAASuP,IAAAA,UAAU,CAACvP,GAAD,EAAK+B,IAAL,CAAV;CAAqB,WAAO/B,GAAP;CAAW;;CAAA,MAAI+P,KAAK,GAAC;CAACC,IAAAA,SAAS,EAAC,IAAX;CAAgBC,IAAAA,KAAK,EAAC,UAASA,KAAT,EAAe;CAAC,aAAOF,KAAK,CAACG,UAAN,CAAiB,IAAjB,EAAsB,GAAtB,EAA0B,QAAM,GAAhC,EAAoC,CAApC,CAAP;CAA8C,KAApF;CAAqFA,IAAAA,UAAU,EAAC,UAASC,MAAT,EAAgBzJ,IAAhB,EAAqB0J,IAArB,EAA0BhD,GAA1B,EAA8B;CAAC,UAAG9I,EAAE,CAAC+L,QAAH,CAAYD,IAAZ,KAAmB9L,EAAE,CAACgM,MAAH,CAAUF,IAAV,CAAtB,EAAsC;CAAC,cAAM,IAAI9L,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAG,CAACkC,KAAK,CAACC,SAAV,EAAoB;CAACD,QAAAA,KAAK,CAACC,SAAN,GAAgB;CAAClF,UAAAA,GAAG,EAAC;CAAC1R,YAAAA,IAAI,EAAC;CAACmX,cAAAA,OAAO,EAACR,KAAK,CAACS,QAAN,CAAeD,OAAxB;CAAgCE,cAAAA,OAAO,EAACV,KAAK,CAACS,QAAN,CAAeC,OAAvD;CAA+DC,cAAAA,MAAM,EAACX,KAAK,CAACS,QAAN,CAAeE,MAArF;CAA4FC,cAAAA,KAAK,EAACZ,KAAK,CAACS,QAAN,CAAeG,KAAjH;CAAuHC,cAAAA,MAAM,EAACb,KAAK,CAACS,QAAN,CAAeI,MAA7I;CAAoJC,cAAAA,MAAM,EAACd,KAAK,CAACS,QAAN,CAAeK,MAA1K;CAAiLC,cAAAA,KAAK,EAACf,KAAK,CAACS,QAAN,CAAeM,KAAtM;CAA4MC,cAAAA,OAAO,EAAChB,KAAK,CAACS,QAAN,CAAeO,OAAnO;CAA2OC,cAAAA,OAAO,EAACjB,KAAK,CAACS,QAAN,CAAeQ;CAAlQ,aAAN;CAAiRtD,YAAAA,MAAM,EAAC;CAACuD,cAAAA,MAAM,EAAClB,KAAK,CAACtC,UAAN,CAAiBwD;CAAzB;CAAxR,WAAL;CAA+T/J,UAAAA,IAAI,EAAC;CAAC9N,YAAAA,IAAI,EAAC;CAACmX,cAAAA,OAAO,EAACR,KAAK,CAACS,QAAN,CAAeD,OAAxB;CAAgCE,cAAAA,OAAO,EAACV,KAAK,CAACS,QAAN,CAAeC;CAAvD,aAAN;CAAsE/C,YAAAA,MAAM,EAAC;CAACuD,cAAAA,MAAM,EAAClB,KAAK,CAACtC,UAAN,CAAiBwD,MAAzB;CAAgCtV,cAAAA,IAAI,EAACoU,KAAK,CAACtC,UAAN,CAAiB9R,IAAtD;CAA2D6S,cAAAA,KAAK,EAACuB,KAAK,CAACtC,UAAN,CAAiBe,KAAlF;CAAwF0C,cAAAA,QAAQ,EAACnB,KAAK,CAACtC,UAAN,CAAiByD,QAAlH;CAA2HC,cAAAA,IAAI,EAACpB,KAAK,CAACtC,UAAN,CAAiB0D,IAAjJ;CAAsJC,cAAAA,KAAK,EAACrB,KAAK,CAACtC,UAAN,CAAiB2D;CAA7K;CAA7E,WAApU;CAAskBC,UAAAA,IAAI,EAAC;CAACjY,YAAAA,IAAI,EAAC;CAACmX,cAAAA,OAAO,EAACR,KAAK,CAACS,QAAN,CAAeD,OAAxB;CAAgCE,cAAAA,OAAO,EAACV,KAAK,CAACS,QAAN,CAAeC,OAAvD;CAA+Da,cAAAA,QAAQ,EAACvB,KAAK,CAACS,QAAN,CAAec;CAAvF,aAAN;CAAuG5D,YAAAA,MAAM,EAAC;CAA9G,WAA3kB;CAA6rB6D,UAAAA,MAAM,EAAC;CAACnY,YAAAA,IAAI,EAAC;CAACmX,cAAAA,OAAO,EAACR,KAAK,CAACS,QAAN,CAAeD,OAAxB;CAAgCE,cAAAA,OAAO,EAACV,KAAK,CAACS,QAAN,CAAeC;CAAvD,aAAN;CAAsE/C,YAAAA,MAAM,EAACpJ,EAAE,CAACkN;CAAhF;CAApsB,SAAhB;CAAwzB;;CAAA,UAAIpY,IAAI,GAACkL,EAAE,CAAC4L,UAAH,CAAcC,MAAd,EAAqBzJ,IAArB,EAA0B0J,IAA1B,EAA+BhD,GAA/B,CAAT;;CAA6C,UAAG9I,EAAE,CAACmN,KAAH,CAASrY,IAAI,CAACgX,IAAd,CAAH,EAAuB;CAAChX,QAAAA,IAAI,CAACoX,QAAL,GAAcT,KAAK,CAACC,SAAN,CAAgBlF,GAAhB,CAAoB1R,IAAlC;CAAuCA,QAAAA,IAAI,CAACqU,UAAL,GAAgBsC,KAAK,CAACC,SAAN,CAAgBlF,GAAhB,CAAoB4C,MAApC;CAA2CtU,QAAAA,IAAI,CAACsY,QAAL,GAAc,EAAd;CAAiB,OAA3H,MAAgI,IAAGpN,EAAE,CAACqN,MAAH,CAAUvY,IAAI,CAACgX,IAAf,CAAH,EAAwB;CAAChX,QAAAA,IAAI,CAACoX,QAAL,GAAcT,KAAK,CAACC,SAAN,CAAgB9I,IAAhB,CAAqB9N,IAAnC;CAAwCA,QAAAA,IAAI,CAACqU,UAAL,GAAgBsC,KAAK,CAACC,SAAN,CAAgB9I,IAAhB,CAAqBwG,MAArC;CAA4CtU,QAAAA,IAAI,CAACwY,SAAL,GAAe,CAAf;CAAiBxY,QAAAA,IAAI,CAACsY,QAAL,GAAc,IAAd;CAAmB,OAAjJ,MAAsJ,IAAGpN,EAAE,CAACuN,MAAH,CAAUzY,IAAI,CAACgX,IAAf,CAAH,EAAwB;CAAChX,QAAAA,IAAI,CAACoX,QAAL,GAAcT,KAAK,CAACC,SAAN,CAAgBqB,IAAhB,CAAqBjY,IAAnC;CAAwCA,QAAAA,IAAI,CAACqU,UAAL,GAAgBsC,KAAK,CAACC,SAAN,CAAgBqB,IAAhB,CAAqB3D,MAArC;CAA4C,OAA7G,MAAkH,IAAGpJ,EAAE,CAACwN,QAAH,CAAY1Y,IAAI,CAACgX,IAAjB,CAAH,EAA0B;CAAChX,QAAAA,IAAI,CAACoX,QAAL,GAAcT,KAAK,CAACC,SAAN,CAAgBuB,MAAhB,CAAuBnY,IAArC;CAA0CA,QAAAA,IAAI,CAACqU,UAAL,GAAgBsC,KAAK,CAACC,SAAN,CAAgBuB,MAAhB,CAAuB7D,MAAvC;CAA8C;;CAAAtU,MAAAA,IAAI,CAACiV,SAAL,GAAeC,IAAI,CAACC,GAAL,EAAf;;CAA0B,UAAG4B,MAAH,EAAU;CAACA,QAAAA,MAAM,CAACuB,QAAP,CAAgBhL,IAAhB,IAAsBtN,IAAtB;CAA2B+W,QAAAA,MAAM,CAAC9B,SAAP,GAAiBjV,IAAI,CAACiV,SAAtB;CAAgC;;CAAA,aAAOjV,IAAP;CAAY,KAAnqD;CAAoqD2Y,IAAAA,uBAAuB,EAAC,UAAS3Y,IAAT,EAAc;CAAC,UAAG,CAACA,IAAI,CAACsY,QAAT,EAAkB,OAAO,IAAI9W,UAAJ,CAAe,CAAf,CAAP;CAAyB,UAAGxB,IAAI,CAACsY,QAAL,CAAcpS,QAAjB,EAA0B,OAAOlG,IAAI,CAACsY,QAAL,CAAcpS,QAAd,CAAuB,CAAvB,EAAyBlG,IAAI,CAACwY,SAA9B,CAAP;CAAgD,aAAO,IAAIhX,UAAJ,CAAexB,IAAI,CAACsY,QAApB,CAAP;CAAqC,KAAr2D;CAAs2DM,IAAAA,iBAAiB,EAAC,UAAS5Y,IAAT,EAAc6Y,WAAd,EAA0B;CAAC,UAAIC,YAAY,GAAC9Y,IAAI,CAACsY,QAAL,GAActY,IAAI,CAACsY,QAAL,CAAcvW,MAA5B,GAAmC,CAApD;CAAsD,UAAG+W,YAAY,IAAED,WAAjB,EAA6B;CAAO,UAAIE,qBAAqB,GAAC,OAAK,IAA/B;CAAoCF,MAAAA,WAAW,GAAClN,IAAI,CAACzB,GAAL,CAAS2O,WAAT,EAAqBC,YAAY,IAAEA,YAAY,GAACC,qBAAb,GAAmC,CAAnC,GAAqC,KAAvC,CAAZ,KAA4D,CAAjF,CAAZ;CAAgG,UAAGD,YAAY,IAAE,CAAjB,EAAmBD,WAAW,GAAClN,IAAI,CAACzB,GAAL,CAAS2O,WAAT,EAAqB,GAArB,CAAZ;CAAsC,UAAIG,WAAW,GAAChZ,IAAI,CAACsY,QAArB;CAA8BtY,MAAAA,IAAI,CAACsY,QAAL,GAAc,IAAI9W,UAAJ,CAAeqX,WAAf,CAAd;CAA0C,UAAG7Y,IAAI,CAACwY,SAAL,GAAe,CAAlB,EAAoBxY,IAAI,CAACsY,QAAL,CAAcvO,GAAd,CAAkBiP,WAAW,CAAC9S,QAAZ,CAAqB,CAArB,EAAuBlG,IAAI,CAACwY,SAA5B,CAAlB,EAAyD,CAAzD;CAA4D,KAAl0E;CAAm0ES,IAAAA,iBAAiB,EAAC,UAASjZ,IAAT,EAAckZ,OAAd,EAAsB;CAAC,UAAGlZ,IAAI,CAACwY,SAAL,IAAgBU,OAAnB,EAA2B;;CAAO,UAAGA,OAAO,IAAE,CAAZ,EAAc;CAAClZ,QAAAA,IAAI,CAACsY,QAAL,GAAc,IAAd;CAAmBtY,QAAAA,IAAI,CAACwY,SAAL,GAAe,CAAf;CAAiB,OAAnD,MAAuD;CAAC,YAAIQ,WAAW,GAAChZ,IAAI,CAACsY,QAArB;CAA8BtY,QAAAA,IAAI,CAACsY,QAAL,GAAc,IAAI9W,UAAJ,CAAe0X,OAAf,CAAd;;CAAsC,YAAGF,WAAH,EAAe;CAAChZ,UAAAA,IAAI,CAACsY,QAAL,CAAcvO,GAAd,CAAkBiP,WAAW,CAAC9S,QAAZ,CAAqB,CAArB,EAAuByF,IAAI,CAAC4H,GAAL,CAAS2F,OAAT,EAAiBlZ,IAAI,CAACwY,SAAtB,CAAvB,CAAlB;CAA4E;;CAAAxY,QAAAA,IAAI,CAACwY,SAAL,GAAeU,OAAf;CAAuB;CAAC,KAA9nF;CAA+nF9B,IAAAA,QAAQ,EAAC;CAACD,MAAAA,OAAO,EAAC,UAASnX,IAAT,EAAc;CAAC,YAAImZ,IAAI,GAAC,EAAT;CAAYA,QAAAA,IAAI,CAACnF,GAAL,GAAS9I,EAAE,CAACwN,QAAH,CAAY1Y,IAAI,CAACgX,IAAjB,IAAuBhX,IAAI,CAACqM,EAA5B,GAA+B,CAAxC;CAA0C8M,QAAAA,IAAI,CAACC,GAAL,GAASpZ,IAAI,CAACqM,EAAd;CAAiB8M,QAAAA,IAAI,CAACnC,IAAL,GAAUhX,IAAI,CAACgX,IAAf;CAAoBmC,QAAAA,IAAI,CAACE,KAAL,GAAW,CAAX;CAAaF,QAAAA,IAAI,CAACG,GAAL,GAAS,CAAT;CAAWH,QAAAA,IAAI,CAACI,GAAL,GAAS,CAAT;CAAWJ,QAAAA,IAAI,CAAC3E,IAAL,GAAUxU,IAAI,CAACwU,IAAf;;CAAoB,YAAGtJ,EAAE,CAACmN,KAAH,CAASrY,IAAI,CAACgX,IAAd,CAAH,EAAuB;CAACmC,UAAAA,IAAI,CAACxQ,IAAL,GAAU,IAAV;CAAe,SAAvC,MAA4C,IAAGuC,EAAE,CAACqN,MAAH,CAAUvY,IAAI,CAACgX,IAAf,CAAH,EAAwB;CAACmC,UAAAA,IAAI,CAACxQ,IAAL,GAAU3I,IAAI,CAACwY,SAAf;CAAyB,SAAlD,MAAuD,IAAGtN,EAAE,CAACuN,MAAH,CAAUzY,IAAI,CAACgX,IAAf,CAAH,EAAwB;CAACmC,UAAAA,IAAI,CAACxQ,IAAL,GAAU3I,IAAI,CAACiY,IAAL,CAAUlW,MAApB;CAA2B,SAApD,MAAwD;CAACoX,UAAAA,IAAI,CAACxQ,IAAL,GAAU,CAAV;CAAY;;CAAAwQ,QAAAA,IAAI,CAACK,KAAL,GAAW,IAAItE,IAAJ,CAASlV,IAAI,CAACiV,SAAd,CAAX;CAAoCkE,QAAAA,IAAI,CAACM,KAAL,GAAW,IAAIvE,IAAJ,CAASlV,IAAI,CAACiV,SAAd,CAAX;CAAoCkE,QAAAA,IAAI,CAACO,KAAL,GAAW,IAAIxE,IAAJ,CAASlV,IAAI,CAACiV,SAAd,CAAX;CAAoCkE,QAAAA,IAAI,CAACQ,OAAL,GAAa,IAAb;CAAkBR,QAAAA,IAAI,CAACS,MAAL,GAAYjO,IAAI,CAAC6K,IAAL,CAAU2C,IAAI,CAACxQ,IAAL,GAAUwQ,IAAI,CAACQ,OAAzB,CAAZ;CAA8C,eAAOR,IAAP;CAAY,OAA1gB;CAA2gB9B,MAAAA,OAAO,EAAC,UAASrX,IAAT,EAAcmZ,IAAd,EAAmB;CAAC,YAAGA,IAAI,CAACnC,IAAL,KAAY3V,SAAf,EAAyB;CAACrB,UAAAA,IAAI,CAACgX,IAAL,GAAUmC,IAAI,CAACnC,IAAf;CAAoB;;CAAA,YAAGmC,IAAI,CAAClE,SAAL,KAAiB5T,SAApB,EAA8B;CAACrB,UAAAA,IAAI,CAACiV,SAAL,GAAekE,IAAI,CAAClE,SAApB;CAA8B;;CAAA,YAAGkE,IAAI,CAACxQ,IAAL,KAAYtH,SAAf,EAAyB;CAACsV,UAAAA,KAAK,CAACsC,iBAAN,CAAwBjZ,IAAxB,EAA6BmZ,IAAI,CAACxQ,IAAlC;CAAwC;CAAC,OAArtB;CAAstB2O,MAAAA,MAAM,EAAC,UAASP,MAAT,EAAgBzJ,IAAhB,EAAqB;CAAC,cAAMpC,EAAE,CAAC2O,aAAH,CAAiB,EAAjB,CAAN;CAA2B,OAA9wB;CAA+wBtC,MAAAA,KAAK,EAAC,UAASR,MAAT,EAAgBzJ,IAAhB,EAAqB0J,IAArB,EAA0BhD,GAA1B,EAA8B;CAAC,eAAO2C,KAAK,CAACG,UAAN,CAAiBC,MAAjB,EAAwBzJ,IAAxB,EAA6B0J,IAA7B,EAAkChD,GAAlC,CAAP;CAA8C,OAAl2B;CAAm2BwD,MAAAA,MAAM,EAAC,UAASsC,QAAT,EAAkBC,OAAlB,EAA0BC,QAA1B,EAAmC;CAAC,YAAG9O,EAAE,CAACmN,KAAH,CAASyB,QAAQ,CAAC9C,IAAlB,CAAH,EAA2B;CAAC,cAAIiD,QAAJ;;CAAa,cAAG;CAACA,YAAAA,QAAQ,GAAC/O,EAAE,CAACgP,UAAH,CAAcH,OAAd,EAAsBC,QAAtB,CAAT;CAAyC,WAA7C,CAA6C,OAAMjN,CAAN,EAAQ;;CAAE,cAAGkN,QAAH,EAAY;CAAC,iBAAI,IAAI9S,CAAR,IAAa8S,QAAQ,CAAC3B,QAAtB,EAA+B;CAAC,oBAAM,IAAIpN,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;CAAC;CAAC;;CAAA,eAAOqF,QAAQ,CAAC/C,MAAT,CAAgBuB,QAAhB,CAAyBwB,QAAQ,CAACxM,IAAlC,CAAP;CAA+CwM,QAAAA,QAAQ,CAAC/C,MAAT,CAAgB9B,SAAhB,GAA0BC,IAAI,CAACC,GAAL,EAA1B;CAAqC2E,QAAAA,QAAQ,CAACxM,IAAT,GAAc0M,QAAd;CAAuBD,QAAAA,OAAO,CAACzB,QAAR,CAAiB0B,QAAjB,IAA2BF,QAA3B;CAAoCC,QAAAA,OAAO,CAAC9E,SAAR,GAAkB6E,QAAQ,CAAC/C,MAAT,CAAgB9B,SAAlC;CAA4C6E,QAAAA,QAAQ,CAAC/C,MAAT,GAAgBgD,OAAhB;CAAwB,OAA5wC;CAA6wCtC,MAAAA,MAAM,EAAC,UAASV,MAAT,EAAgBzJ,IAAhB,EAAqB;CAAC,eAAOyJ,MAAM,CAACuB,QAAP,CAAgBhL,IAAhB,CAAP;CAA6ByJ,QAAAA,MAAM,CAAC9B,SAAP,GAAiBC,IAAI,CAACC,GAAL,EAAjB;CAA4B,OAAn2C;CAAo2CuC,MAAAA,KAAK,EAAC,UAASX,MAAT,EAAgBzJ,IAAhB,EAAqB;CAAC,YAAItN,IAAI,GAACkL,EAAE,CAACgP,UAAH,CAAcnD,MAAd,EAAqBzJ,IAArB,CAAT;;CAAoC,aAAI,IAAInG,CAAR,IAAanH,IAAI,CAACsY,QAAlB,EAA2B;CAAC,gBAAM,IAAIpN,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,eAAOsC,MAAM,CAACuB,QAAP,CAAgBhL,IAAhB,CAAP;CAA6ByJ,QAAAA,MAAM,CAAC9B,SAAP,GAAiBC,IAAI,CAACC,GAAL,EAAjB;CAA4B,OAArhD;CAAshDwC,MAAAA,OAAO,EAAC,UAAS3X,IAAT,EAAc;CAAC,YAAIma,OAAO,GAAC,CAAC,GAAD,EAAK,IAAL,CAAZ;;CAAuB,aAAI,IAAIC,GAAR,IAAepa,IAAI,CAACsY,QAApB,EAA6B;CAAC,cAAG,CAACtY,IAAI,CAACsY,QAAL,CAAc+B,cAAd,CAA6BD,GAA7B,CAAJ,EAAsC;CAAC;CAAS;;CAAAD,UAAAA,OAAO,CAACzG,IAAR,CAAa0G,GAAb;CAAkB;;CAAA,eAAOD,OAAP;CAAe,OAAnrD;CAAorDvC,MAAAA,OAAO,EAAC,UAASb,MAAT,EAAgBuD,OAAhB,EAAwBC,OAAxB,EAAgC;CAAC,YAAIva,IAAI,GAAC2W,KAAK,CAACG,UAAN,CAAiBC,MAAjB,EAAwBuD,OAAxB,EAAgC,MAAI,KAApC,EAA0C,CAA1C,CAAT;CAAsDta,QAAAA,IAAI,CAACiY,IAAL,GAAUsC,OAAV;CAAkB,eAAOva,IAAP;CAAY,OAAjzD;CAAkzDkY,MAAAA,QAAQ,EAAC,UAASlY,IAAT,EAAc;CAAC,YAAG,CAACkL,EAAE,CAACuN,MAAH,CAAUzY,IAAI,CAACgX,IAAf,CAAJ,EAAyB;CAAC,gBAAM,IAAI9L,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,eAAOzU,IAAI,CAACiY,IAAZ;CAAiB;CAAj5D,KAAxoF;CAA2hJ5D,IAAAA,UAAU,EAAC;CAAC9R,MAAAA,IAAI,EAAC,UAAS+R,MAAT,EAAgB/S,MAAhB,EAAuBsT,MAAvB,EAA8B9S,MAA9B,EAAqCyY,QAArC,EAA8C;CAAC,YAAIlC,QAAQ,GAAChE,MAAM,CAACtU,IAAP,CAAYsY,QAAzB;CAAkC,YAAGkC,QAAQ,IAAElG,MAAM,CAACtU,IAAP,CAAYwY,SAAzB,EAAmC,OAAO,CAAP;CAAS,YAAI7P,IAAI,GAACgD,IAAI,CAAC4H,GAAL,CAASe,MAAM,CAACtU,IAAP,CAAYwY,SAAZ,GAAsBgC,QAA/B,EAAwCzY,MAAxC,CAAT;CAAyDN,QAAAA,MAAM,CAACkH,IAAI,IAAE,CAAP,CAAN;;CAAgB,YAAGA,IAAI,GAAC,CAAL,IAAQ2P,QAAQ,CAACpS,QAApB,EAA6B;CAAC3E,UAAAA,MAAM,CAACwI,GAAP,CAAWuO,QAAQ,CAACpS,QAAT,CAAkBsU,QAAlB,EAA2BA,QAAQ,GAAC7R,IAApC,CAAX,EAAqDkM,MAArD;CAA6D,SAA3F,MAA+F;CAAC,eAAI,IAAI1N,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACwB,IAAd,EAAmBxB,CAAC,EAApB,EAAuB5F,MAAM,CAACsT,MAAM,GAAC1N,CAAR,CAAN,GAAiBmR,QAAQ,CAACkC,QAAQ,GAACrT,CAAV,CAAzB;CAAsC;;CAAA,eAAOwB,IAAP;CAAY,OAArX;CAAsXyM,MAAAA,KAAK,EAAC,UAASd,MAAT,EAAgB/S,MAAhB,EAAuBsT,MAAvB,EAA8B9S,MAA9B,EAAqCyY,QAArC,EAA8CC,MAA9C,EAAqD;CAAChZ,QAAAA,MAAM,CAAC,EAAEF,MAAM,YAAYmZ,WAApB,CAAD,CAAN;;CAAyC,YAAGnZ,MAAM,CAACA,MAAP,KAAgBsH,KAAK,CAACtH,MAAzB,EAAgC;CAACkZ,UAAAA,MAAM,GAAC,KAAP;CAAa;;CAAA,YAAG,CAAC1Y,MAAJ,EAAW,OAAO,CAAP;CAAS,YAAI/B,IAAI,GAACsU,MAAM,CAACtU,IAAhB;CAAqBA,QAAAA,IAAI,CAACiV,SAAL,GAAeC,IAAI,CAACC,GAAL,EAAf;;CAA0B,YAAG5T,MAAM,CAAC2E,QAAP,KAAkB,CAAClG,IAAI,CAACsY,QAAN,IAAgBtY,IAAI,CAACsY,QAAL,CAAcpS,QAAhD,CAAH,EAA6D;CAAC,cAAGuU,MAAH,EAAU;CAAChZ,YAAAA,MAAM,CAAC+Y,QAAQ,KAAG,CAAZ,EAAc,qDAAd,CAAN;CAA2Exa,YAAAA,IAAI,CAACsY,QAAL,GAAc/W,MAAM,CAAC2E,QAAP,CAAgB2O,MAAhB,EAAuBA,MAAM,GAAC9S,MAA9B,CAAd;CAAoD/B,YAAAA,IAAI,CAACwY,SAAL,GAAezW,MAAf;CAAsB,mBAAOA,MAAP;CAAc,WAA9K,MAAmL,IAAG/B,IAAI,CAACwY,SAAL,KAAiB,CAAjB,IAAoBgC,QAAQ,KAAG,CAAlC,EAAoC;CAACxa,YAAAA,IAAI,CAACsY,QAAL,GAAc/W,MAAM,CAACW,KAAP,CAAa2S,MAAb,EAAoBA,MAAM,GAAC9S,MAA3B,CAAd;CAAiD/B,YAAAA,IAAI,CAACwY,SAAL,GAAezW,MAAf;CAAsB,mBAAOA,MAAP;CAAc,WAA1H,MAA+H,IAAGyY,QAAQ,GAACzY,MAAT,IAAiB/B,IAAI,CAACwY,SAAzB,EAAmC;CAACxY,YAAAA,IAAI,CAACsY,QAAL,CAAcvO,GAAd,CAAkBxI,MAAM,CAAC2E,QAAP,CAAgB2O,MAAhB,EAAuBA,MAAM,GAAC9S,MAA9B,CAAlB,EAAwDyY,QAAxD;CAAkE,mBAAOzY,MAAP;CAAc;CAAC;;CAAA4U,QAAAA,KAAK,CAACiC,iBAAN,CAAwB5Y,IAAxB,EAA6Bwa,QAAQ,GAACzY,MAAtC;;CAA8C,YAAG/B,IAAI,CAACsY,QAAL,CAAcpS,QAAd,IAAwB3E,MAAM,CAAC2E,QAAlC,EAA2C;CAAClG,UAAAA,IAAI,CAACsY,QAAL,CAAcvO,GAAd,CAAkBxI,MAAM,CAAC2E,QAAP,CAAgB2O,MAAhB,EAAuBA,MAAM,GAAC9S,MAA9B,CAAlB,EAAwDyY,QAAxD;CAAkE,SAA9G,MAAkH;CAAC,eAAI,IAAIrT,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACpF,MAAd,EAAqBoF,CAAC,EAAtB,EAAyB;CAACnH,YAAAA,IAAI,CAACsY,QAAL,CAAckC,QAAQ,GAACrT,CAAvB,IAA0B5F,MAAM,CAACsT,MAAM,GAAC1N,CAAR,CAAhC;CAA2C;CAAC;;CAAAnH,QAAAA,IAAI,CAACwY,SAAL,GAAe7M,IAAI,CAACzB,GAAL,CAASlK,IAAI,CAACwY,SAAd,EAAwBgC,QAAQ,GAACzY,MAAjC,CAAf;CAAwD,eAAOA,MAAP;CAAc,OAA91C;CAA+1C8V,MAAAA,MAAM,EAAC,UAASvD,MAAT,EAAgBO,MAAhB,EAAuB8F,MAAvB,EAA8B;CAAC,YAAIH,QAAQ,GAAC3F,MAAb;;CAAoB,YAAG8F,MAAM,KAAG,CAAZ,EAAc;CAACH,UAAAA,QAAQ,IAAElG,MAAM,CAACkG,QAAjB;CAA0B,SAAzC,MAA8C,IAAGG,MAAM,KAAG,CAAZ,EAAc;CAAC,cAAGzP,EAAE,CAACqN,MAAH,CAAUjE,MAAM,CAACtU,IAAP,CAAYgX,IAAtB,CAAH,EAA+B;CAACwD,YAAAA,QAAQ,IAAElG,MAAM,CAACtU,IAAP,CAAYwY,SAAtB;CAAgC;CAAC;;CAAA,YAAGgC,QAAQ,GAAC,CAAZ,EAAc;CAAC,gBAAM,IAAItP,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,eAAO+F,QAAP;CAAgB,OAAllD;CAAmlD1C,MAAAA,QAAQ,EAAC,UAASxD,MAAT,EAAgBO,MAAhB,EAAuB9S,MAAvB,EAA8B;CAAC4U,QAAAA,KAAK,CAACiC,iBAAN,CAAwBtE,MAAM,CAACtU,IAA/B,EAAoC6U,MAAM,GAAC9S,MAA3C;CAAmDuS,QAAAA,MAAM,CAACtU,IAAP,CAAYwY,SAAZ,GAAsB7M,IAAI,CAACzB,GAAL,CAASoK,MAAM,CAACtU,IAAP,CAAYwY,SAArB,EAA+B3D,MAAM,GAAC9S,MAAtC,CAAtB;CAAoE,OAAlvD;CAAmvDgW,MAAAA,IAAI,EAAC,UAASzD,MAAT,EAAgB8B,OAAhB,EAAwBrU,MAAxB,EAA+ByY,QAA/B,EAAwCI,IAAxC,EAA6CC,KAA7C,EAAmD;CAAC,YAAGzE,OAAO,KAAG,CAAb,EAAe;CAAC,gBAAM,IAAIlL,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,YAAG,CAACvJ,EAAE,CAACqN,MAAH,CAAUjE,MAAM,CAACtU,IAAP,CAAYgX,IAAtB,CAAJ,EAAgC;CAAC,gBAAM,IAAI9L,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,YAAI7N,GAAJ;CAAQ,YAAIkU,SAAJ;CAAc,YAAIxC,QAAQ,GAAChE,MAAM,CAACtU,IAAP,CAAYsY,QAAzB;;CAAkC,YAAG,EAAEuC,KAAK,GAAC,CAAR,KAAYvC,QAAQ,CAAC/W,MAAT,KAAkBA,MAAjC,EAAwC;CAACuZ,UAAAA,SAAS,GAAC,KAAV;CAAgBlU,UAAAA,GAAG,GAAC0R,QAAQ,CAACyC,UAAb;CAAwB,SAAjF,MAAqF;CAAC,cAAGP,QAAQ,GAAC,CAAT,IAAYA,QAAQ,GAACzY,MAAT,GAAgBuW,QAAQ,CAACvW,MAAxC,EAA+C;CAAC,gBAAGuW,QAAQ,CAACpS,QAAZ,EAAqB;CAACoS,cAAAA,QAAQ,GAACA,QAAQ,CAACpS,QAAT,CAAkBsU,QAAlB,EAA2BA,QAAQ,GAACzY,MAApC,CAAT;CAAqD,aAA3E,MAA+E;CAACuW,cAAAA,QAAQ,GAACxG,KAAK,CAAChI,SAAN,CAAgB5H,KAAhB,CAAsB6P,IAAtB,CAA2BuG,QAA3B,EAAoCkC,QAApC,EAA6CA,QAAQ,GAACzY,MAAtD,CAAT;CAAuE;CAAC;;CAAA+Y,UAAAA,SAAS,GAAC,IAAV;CAAelU,UAAAA,GAAG,GAAC6P,SAAS,CAAC1U,MAAD,CAAb;;CAAsB,cAAG,CAAC6E,GAAJ,EAAQ;CAAC,kBAAM,IAAIsE,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA5L,UAAAA,KAAK,CAACkB,GAAN,CAAUuO,QAAV,EAAmB1R,GAAnB;CAAwB;;CAAA,eAAM;CAACA,UAAAA,GAAG,EAACA,GAAL;CAASkU,UAAAA,SAAS,EAACA;CAAnB,SAAN;CAAoC,OAAj3E;CAAk3E9C,MAAAA,KAAK,EAAC,UAAS1D,MAAT,EAAgB/S,MAAhB,EAAuBsT,MAAvB,EAA8B9S,MAA9B,EAAqCiZ,SAArC,EAA+C;CAAC,YAAG,CAAC9P,EAAE,CAACqN,MAAH,CAAUjE,MAAM,CAACtU,IAAP,CAAYgX,IAAtB,CAAJ,EAAgC;CAAC,gBAAM,IAAI9L,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,YAAGuG,SAAS,GAAC,CAAb,EAAe;CAAC,iBAAO,CAAP;CAAS;;CAAA,QAAiBrE,KAAK,CAACtC,UAAN,CAAiBe,KAAjB,CAAuBd,MAAvB,EAA8B/S,MAA9B,EAAqC,CAArC,EAAuCQ,MAAvC,EAA8C8S,MAA9C,EAAqD,KAArD;CAA4D,eAAO,CAAP;CAAS;CAAplF;CAAtiJ,GAAV;;CAAuoO,WAASoG,SAAT,CAAmB3X,GAAnB,EAAuB5B,MAAvB,EAA8BC,OAA9B,EAAsCuZ,QAAtC,EAA+C;CAAC,QAAIvO,GAAG,GAAC,CAACuO,QAAD,GAAU9O,sBAAsB,CAAC,QAAM9I,GAAP,CAAhC,GAA4C,EAApD;CAAuD/C,IAAAA,SAAS,CAAC+C,GAAD,EAAK,UAAS6X,WAAT,EAAqB;CAAC1Z,MAAAA,MAAM,CAAC0Z,WAAD,EAAa,wBAAsB7X,GAAtB,GAA0B,4BAAvC,CAAN;CAA2E5B,MAAAA,MAAM,CAAC,IAAIF,UAAJ,CAAe2Z,WAAf,CAAD,CAAN;CAAoC,UAAGxO,GAAH,EAAOC,mBAAmB,CAACD,GAAD,CAAnB;CAAyB,KAA1K,EAA2K,UAASyO,KAAT,EAAe;CAAC,UAAGzZ,OAAH,EAAW;CAACA,QAAAA,OAAO;CAAG,OAAtB,MAA0B;CAAC,cAAK,wBAAsB2B,GAAtB,GAA0B,WAA/B;CAA2C;CAAC,KAAlQ,CAAT;CAA6Q,QAAGqJ,GAAH,EAAOH,gBAAgB,CAACG,GAAD,CAAhB;CAAsB;;CAAA,MAAI0O,cAAc,GAAC;CAAC,OAAE,SAAH;CAAa,OAAE,mBAAf;CAAmC,OAAE,mBAArC;CAAyD,OAAE,wBAA3D;CAAoF,OAAE,uBAAtF;CAA8G,OAAE,iDAAhH;CAAkK,OAAE,mBAApK;CAAwL,OAAE,0BAA1L;CAAqN,OAAE,iBAAvN;CAAyO,OAAE,mCAA3O;CAA+Q,QAAG,mBAAlR;CAAsS,QAAG,oBAAzS;CAA8T,QAAG,aAAjU;CAA+U,QAAG,oBAAlV;CAAuW,QAAG,oBAA1W;CAA+X,QAAG,0BAAlY;CAA6Z,QAAG,6BAAha;CAA8b,QAAG,8BAAjc;CAAge,QAAG,gCAAne;CAAogB,QAAG,gBAAvgB;CAAwhB,QAAG,aAA3hB;CAAyiB,QAAG,aAA5iB;CAA0jB,QAAG,gBAA7jB;CAA8kB,QAAG,qBAAjlB;CAAumB,QAAG,oBAA1mB;CAA+nB,QAAG,uBAAloB;CAA0pB,QAAG,gCAA7pB;CAA8rB,QAAG,yBAAjsB;CAA2tB,QAAG,kBAA9tB;CAAivB,QAAG,WAApvB;CAAgwB,QAAG,6BAAnwB;CAAiyB,QAAG,gBAApyB;CAAqzB,QAAG,yBAAxzB;CAAk1B,QAAG,qBAAr1B;CAA22B,QAAG,gBAA92B;CAA+3B,QAAG,kBAAl4B;CAAq5B,QAAG,oBAAx5B;CAA66B,QAAG,4BAAh7B;CAA68B,QAAG,qCAAh9B;CAAs/B,QAAG,6BAAz/B;CAAuhC,QAAG,wBAA1hC;CAAmjC,QAAG,+BAAtjC;CAAslC,QAAG,2BAAzlC;CAAqnC,QAAG,gBAAxnC;CAAyoC,QAAG,2BAA5oC;CAAwqC,QAAG,mBAA3qC;CAA+rC,QAAG,2BAAlsC;CAA8tC,QAAG,2BAAjuC;CAA6vC,QAAG,iBAAhwC;CAAkxC,QAAG,4BAArxC;CAAkzC,QAAG,wBAArzC;CAA80C,QAAG,yBAAj1C;CAA22C,QAAG,0BAA92C;CAAy4C,QAAG,yBAA54C;CAAs6C,QAAG,iBAAz6C;CAA27C,QAAG,qBAA97C;CAAo9C,QAAG,uBAAv9C;CAA++C,QAAG,gCAAl/C;CAAmhD,QAAG,kBAAthD;CAAyiD,QAAG,2BAA5iD;CAAwkD,QAAG,uCAA3kD;CAAmnD,QAAG,qBAAtnD;CAA4oD,QAAG,gBAA/oD;CAAgqD,QAAG,aAAnqD;CAAirD,QAAG,gBAAprD;CAAqsD,QAAG,kBAAxsD;CAA2tD,QAAG,gCAA9tD;CAA+vD,QAAG,+BAAlwD;CAAkyD,QAAG,uBAAryD;CAA6zD,QAAG,cAAh0D;CAA+0D,QAAG,iBAAl1D;CAAo2D,QAAG,mBAAv2D;CAA23D,QAAG,sBAA93D;CAAq5D,QAAG,gBAAx5D;CAAy6D,QAAG,mBAA56D;CAAg8D,SAAI,qBAAp8D;CAA09D,SAAI,mBAA99D;CAAk/D,SAAI,cAAt/D;CAAqgE,SAAI,sBAAzgE;CAAgiE,SAAI,UAApiE;CAA+iE,SAAI,uBAAnjE;CAA2kE,SAAI,6BAA/kE;CAA6mE,SAAI,gBAAjnE;CAAkoE,SAAI,eAAtoE;CAAspE,SAAI,0BAA1pE;CAAqrE,SAAI,8BAAzrE;CAAwtE,SAAI,4BAA5tE;CAAyvE,SAAI,gBAA7vE;CAA8wE,SAAI,kBAAlxE;CAAqyE,SAAI,4BAAzyE;CAAs0E,SAAI,eAA10E;CAA01E,SAAI,2BAA91E;CAA03E,SAAI,eAA93E;CAA84E,SAAI,0BAAl5E;CAA66E,SAAI,+BAAj7E;CAAi9E,SAAI,uBAAr9E;CAA6+E,SAAI,sBAAj/E;CAAwgF,SAAI,iBAA5gF;CAA8hF,SAAI,eAAliF;CAAkjF,SAAI,6BAAtjF;CAAolF,SAAI,sCAAxlF;CAA+nF,SAAI,4BAAnoF;CAAgqF,SAAI,iCAApqF;CAAssF,SAAI,wBAA1sF;CAAmuF,SAAI,kCAAvuF;CAA0wF,SAAI,kCAA9wF;CAAizF,SAAI,iCAArzF;CAAu1F,SAAI,qCAA31F;CAAi4F,SAAI,qCAAr4F;CAA26F,SAAI,oBAA/6F;CAAo8F,SAAI,gBAAx8F;CAAy9F,SAAI,2BAA79F;CAAy/F,SAAI,eAA7/F;CAA6gG,SAAI,+BAAjhG;CAAijG,SAAI,kCAArjG;CAAwlG,SAAI,qBAA5lG;CAAknG,SAAI,cAAtnG;CAAqoG,SAAI,2BAAzoG;CAAqqG,SAAI;CAAzqG,GAAnB;CAAwtG,MAAIC,WAAW,GAAC,EAAhB;CAAmB,MAAIpQ,EAAE,GAAC;CAACuG,IAAAA,IAAI,EAAC,IAAN;CAAW8J,IAAAA,MAAM,EAAC,EAAlB;CAAqBC,IAAAA,OAAO,EAAC,EAA7B;CAAgCC,IAAAA,OAAO,EAAC,EAAxC;CAA2CC,IAAAA,SAAS,EAAC,CAArD;CAAuDC,IAAAA,SAAS,EAAC,IAAjE;CAAsEC,IAAAA,WAAW,EAAC,GAAlF;CAAsFxQ,IAAAA,WAAW,EAAC,KAAlG;CAAwGC,IAAAA,iBAAiB,EAAC,IAA1H;CAA+HoJ,IAAAA,UAAU,EAAC,IAA1I;CAA+IoF,IAAAA,aAAa,EAAC,EAA7J;CAAgKgC,IAAAA,WAAW,EAAC,IAA5K;CAAiLC,IAAAA,cAAc,EAAC,CAAhM;CAAkMC,IAAAA,UAAU,EAAC,UAAC1b,IAAD,EAAgB;CAAA,UAAV2b,IAAU,uEAAL,EAAK;CAAC3b,MAAAA,IAAI,GAACoS,OAAO,CAACpE,OAAR,CAAgBnD,EAAE,CAAC0H,GAAH,EAAhB,EAAyBvS,IAAzB,CAAL;CAAoC,UAAG,CAACA,IAAJ,EAAS,OAAM;CAACA,QAAAA,IAAI,EAAC,EAAN;CAASL,QAAAA,IAAI,EAAC;CAAd,OAAN;CAA0B,UAAIic,QAAQ,GAAC;CAACC,QAAAA,YAAY,EAAC,IAAd;CAAmBC,QAAAA,aAAa,EAAC;CAAjC,OAAb;CAAiDH,MAAAA,IAAI,GAAC1c,MAAM,CAACC,MAAP,CAAc0c,QAAd,EAAuBD,IAAvB,CAAL;;CAAkC,UAAGA,IAAI,CAACG,aAAL,GAAmB,CAAtB,EAAwB;CAAC,cAAM,IAAIjR,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAI5D,KAAK,GAACP,IAAI,CAACM,cAAL,CAAoBvQ,IAAI,CAACgR,KAAL,CAAW,GAAX,EAAgBC,MAAhB,CAAuBC,CAAC,IAAE,CAAC,CAACA,CAA5B,CAApB,EAAmD,KAAnD,CAAV;CAAoE,UAAI6K,OAAO,GAAClR,EAAE,CAACuG,IAAf;CAAoB,UAAI4K,YAAY,GAAC,GAAjB;;CAAqB,WAAI,IAAIlV,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC0J,KAAK,CAAC9O,MAApB,EAA2BoF,CAAC,EAA5B,EAA+B;CAAC,YAAImV,MAAM,GAACnV,CAAC,KAAG0J,KAAK,CAAC9O,MAAN,GAAa,CAA5B;;CAA8B,YAAGua,MAAM,IAAEN,IAAI,CAACjF,MAAhB,EAAuB;CAAC;CAAM;;CAAAqF,QAAAA,OAAO,GAAClR,EAAE,CAACgP,UAAH,CAAckC,OAAd,EAAsBvL,KAAK,CAAC1J,CAAD,CAA3B,CAAR;CAAwCkV,QAAAA,YAAY,GAAC/L,IAAI,CAAC0B,KAAL,CAAWqK,YAAX,EAAwBxL,KAAK,CAAC1J,CAAD,CAA7B,CAAb;;CAA+C,YAAG+D,EAAE,CAACqR,YAAH,CAAgBH,OAAhB,CAAH,EAA4B;CAAC,cAAG,CAACE,MAAD,IAASA,MAAM,IAAEN,IAAI,CAACE,YAAzB,EAAsC;CAACE,YAAAA,OAAO,GAACA,OAAO,CAACI,OAAR,CAAgB/K,IAAxB;CAA6B;CAAC;;CAAA,YAAG,CAAC6K,MAAD,IAASN,IAAI,CAACS,MAAjB,EAAwB;CAAC,cAAIC,KAAK,GAAC,CAAV;;CAAY,iBAAMxR,EAAE,CAACuN,MAAH,CAAU2D,OAAO,CAACpF,IAAlB,CAAN,EAA8B;CAAC,gBAAIiB,IAAI,GAAC/M,EAAE,CAACgN,QAAH,CAAYmE,YAAZ,CAAT;CAAmCA,YAAAA,YAAY,GAAC5J,OAAO,CAACpE,OAAR,CAAgBiC,IAAI,CAACxP,OAAL,CAAaub,YAAb,CAAhB,EAA2CpE,IAA3C,CAAb;CAA8D,gBAAIX,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAcM,YAAd,EAA2B;CAACF,cAAAA,aAAa,EAACH,IAAI,CAACG,aAAL,GAAmB;CAAlC,aAA3B,CAAX;CAA4EC,YAAAA,OAAO,GAAC9E,MAAM,CAACtX,IAAf;;CAAoB,gBAAG0c,KAAK,KAAG,EAAX,EAAc;CAAC,oBAAM,IAAIxR,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;CAAC;CAAC;CAAC;;CAAA,aAAM;CAACpU,QAAAA,IAAI,EAACgc,YAAN;CAAmBrc,QAAAA,IAAI,EAACoc;CAAxB,OAAN;CAAuC,KAAzoC;CAA0oCO,IAAAA,OAAO,EAAC3c,IAAI,IAAE;CAAC,UAAIK,IAAJ;;CAAS,aAAM,IAAN,EAAW;CAAC,YAAG6K,EAAE,CAAC0R,MAAH,CAAU5c,IAAV,CAAH,EAAmB;CAAC,cAAI6W,KAAK,GAAC7W,IAAI,CAAC6W,KAAL,CAAWgG,UAArB;CAAgC,cAAG,CAACxc,IAAJ,EAAS,OAAOwW,KAAP;CAAa,iBAAOA,KAAK,CAACA,KAAK,CAAC9U,MAAN,GAAa,CAAd,CAAL,KAAwB,GAAxB,GAA4B8U,KAAK,GAAC,GAAN,GAAUxW,IAAtC,GAA2CwW,KAAK,GAACxW,IAAxD;CAA6D;;CAAAA,QAAAA,IAAI,GAACA,IAAI,GAACL,IAAI,CAACsN,IAAL,GAAU,GAAV,GAAcjN,IAAf,GAAoBL,IAAI,CAACsN,IAAlC;CAAuCtN,QAAAA,IAAI,GAACA,IAAI,CAAC+W,MAAV;CAAiB;CAAC,KAA92C;CAA+2C+F,IAAAA,QAAQ,EAAC,CAACC,QAAD,EAAUzP,IAAV,KAAiB;CAAC,UAAI0P,IAAI,GAAC,CAAT;;CAAW,WAAI,IAAI7V,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACmG,IAAI,CAACvL,MAAnB,EAA0BoF,CAAC,EAA3B,EAA8B;CAAC6V,QAAAA,IAAI,GAAC,CAACA,IAAI,IAAE,CAAP,IAAUA,IAAV,GAAe1P,IAAI,CAACjG,UAAL,CAAgBF,CAAhB,CAAf,GAAkC,CAAvC;CAAyC;;CAAA,aAAM,CAAC4V,QAAQ,GAACC,IAAT,KAAgB,CAAjB,IAAoB9R,EAAE,CAACyQ,SAAH,CAAa5Z,MAAvC;CAA8C,KAA3gD;CAA4gDkb,IAAAA,WAAW,EAACjd,IAAI,IAAE;CAAC,UAAIgd,IAAI,GAAC9R,EAAE,CAAC4R,QAAH,CAAY9c,IAAI,CAAC+W,MAAL,CAAY1K,EAAxB,EAA2BrM,IAAI,CAACsN,IAAhC,CAAT;CAA+CtN,MAAAA,IAAI,CAACkd,SAAL,GAAehS,EAAE,CAACyQ,SAAH,CAAaqB,IAAb,CAAf;CAAkC9R,MAAAA,EAAE,CAACyQ,SAAH,CAAaqB,IAAb,IAAmBhd,IAAnB;CAAwB,KAAxoD;CAAyoDmd,IAAAA,cAAc,EAACnd,IAAI,IAAE;CAAC,UAAIgd,IAAI,GAAC9R,EAAE,CAAC4R,QAAH,CAAY9c,IAAI,CAAC+W,MAAL,CAAY1K,EAAxB,EAA2BrM,IAAI,CAACsN,IAAhC,CAAT;;CAA+C,UAAGpC,EAAE,CAACyQ,SAAH,CAAaqB,IAAb,MAAqBhd,IAAxB,EAA6B;CAACkL,QAAAA,EAAE,CAACyQ,SAAH,CAAaqB,IAAb,IAAmBhd,IAAI,CAACkd,SAAxB;CAAkC,OAAhE,MAAoE;CAAC,YAAId,OAAO,GAAClR,EAAE,CAACyQ,SAAH,CAAaqB,IAAb,CAAZ;;CAA+B,eAAMZ,OAAN,EAAc;CAAC,cAAGA,OAAO,CAACc,SAAR,KAAoBld,IAAvB,EAA4B;CAACoc,YAAAA,OAAO,CAACc,SAAR,GAAkBld,IAAI,CAACkd,SAAvB;CAAiC;CAAM;;CAAAd,UAAAA,OAAO,GAACA,OAAO,CAACc,SAAhB;CAA0B;CAAC;CAAC,KAAj6D;CAAk6DhD,IAAAA,UAAU,EAAC,CAACnD,MAAD,EAAQzJ,IAAR,KAAe;CAAC,UAAI8P,OAAO,GAAClS,EAAE,CAACmS,SAAH,CAAatG,MAAb,CAAZ;;CAAiC,UAAGqG,OAAH,EAAW;CAAC,cAAM,IAAIlS,EAAE,CAACuJ,UAAP,CAAkB2I,OAAlB,EAA0BrG,MAA1B,CAAN;CAAwC;;CAAA,UAAIiG,IAAI,GAAC9R,EAAE,CAAC4R,QAAH,CAAY/F,MAAM,CAAC1K,EAAnB,EAAsBiB,IAAtB,CAAT;;CAAqC,WAAI,IAAItN,IAAI,GAACkL,EAAE,CAACyQ,SAAH,CAAaqB,IAAb,CAAb,EAAgChd,IAAhC,EAAqCA,IAAI,GAACA,IAAI,CAACkd,SAA/C,EAAyD;CAAC,YAAII,QAAQ,GAACtd,IAAI,CAACsN,IAAlB;;CAAuB,YAAGtN,IAAI,CAAC+W,MAAL,CAAY1K,EAAZ,KAAiB0K,MAAM,CAAC1K,EAAxB,IAA4BiR,QAAQ,KAAGhQ,IAA1C,EAA+C;CAAC,iBAAOtN,IAAP;CAAY;CAAC;;CAAA,aAAOkL,EAAE,CAACoM,MAAH,CAAUP,MAAV,EAAiBzJ,IAAjB,CAAP;CAA8B,KAAnuE;CAAouEwJ,IAAAA,UAAU,EAAC,CAACC,MAAD,EAAQzJ,IAAR,EAAa0J,IAAb,EAAkBxC,IAAlB,KAAyB;CAAC/S,MAAAA,MAAM,CAAC,OAAOsV,MAAP,IAAe,QAAhB,CAAN;CAAgC,UAAI/W,IAAI,GAAC,IAAIkL,EAAE,CAACqS,MAAP,CAAcxG,MAAd,EAAqBzJ,IAArB,EAA0B0J,IAA1B,EAA+BxC,IAA/B,CAAT;CAA8CtJ,MAAAA,EAAE,CAAC+R,WAAH,CAAejd,IAAf;CAAqB,aAAOA,IAAP;CAAY,KAAx3E;CAAy3Ewd,IAAAA,WAAW,EAACxd,IAAI,IAAE;CAACkL,MAAAA,EAAE,CAACiS,cAAH,CAAkBnd,IAAlB;CAAwB,KAAp6E;CAAq6E4c,IAAAA,MAAM,EAAC5c,IAAI,IAAE;CAAC,aAAOA,IAAI,KAAGA,IAAI,CAAC+W,MAAnB;CAA0B,KAA78E;CAA88EwF,IAAAA,YAAY,EAACvc,IAAI,IAAE;CAAC,aAAM,CAAC,CAACA,IAAI,CAACwc,OAAb;CAAqB,KAAv/E;CAAw/EjE,IAAAA,MAAM,EAACvB,IAAI,IAAE;CAAC,aAAM,CAACA,IAAI,GAAC,KAAN,MAAe,KAArB;CAA2B,KAAjiF;CAAkiFqB,IAAAA,KAAK,EAACrB,IAAI,IAAE;CAAC,aAAM,CAACA,IAAI,GAAC,KAAN,MAAe,KAArB;CAA2B,KAA1kF;CAA2kFyB,IAAAA,MAAM,EAACzB,IAAI,IAAE;CAAC,aAAM,CAACA,IAAI,GAAC,KAAN,MAAe,KAArB;CAA2B,KAApnF;CAAqnF0B,IAAAA,QAAQ,EAAC1B,IAAI,IAAE;CAAC,aAAM,CAACA,IAAI,GAAC,KAAN,MAAe,IAArB;CAA0B,KAA/pF;CAAgqFC,IAAAA,QAAQ,EAACD,IAAI,IAAE;CAAC,aAAM,CAACA,IAAI,GAAC,KAAN,MAAe,KAArB;CAA2B,KAA3sF;CAA4sFE,IAAAA,MAAM,EAACF,IAAI,IAAE;CAAC,aAAM,CAACA,IAAI,GAAC,KAAN,MAAe,IAArB;CAA0B,KAApvF;CAAqvFyG,IAAAA,QAAQ,EAACzG,IAAI,IAAE;CAAC,aAAM,CAACA,IAAI,GAAC,KAAN,MAAe,KAArB;CAA2B,KAAhyF;CAAiyF0G,IAAAA,SAAS,EAAC;CAAC,WAAI,CAAL;CAAO,YAAK,CAAZ;CAAc,WAAI,GAAlB;CAAsB,YAAK,GAA3B;CAA+B,WAAI,IAAnC;CAAwC,YAAK;CAA7C,KAA3yF;CAA81FC,IAAAA,iBAAiB,EAACxX,GAAG,IAAE;CAAC,UAAI0U,KAAK,GAAC3P,EAAE,CAACwS,SAAH,CAAavX,GAAb,CAAV;;CAA4B,UAAG,OAAO0U,KAAP,IAAc,WAAjB,EAA6B;CAAC,cAAM,IAAI3a,KAAJ,CAAU,6BAA2BiG,GAArC,CAAN;CAAgD;;CAAA,aAAO0U,KAAP;CAAa,KAA7+F;CAA8+F+C,IAAAA,uBAAuB,EAACC,IAAI,IAAE;CAAC,UAAIC,KAAK,GAAC,CAAC,GAAD,EAAK,GAAL,EAAS,IAAT,EAAeD,IAAI,GAAC,CAApB,CAAV;;CAAiC,UAAGA,IAAI,GAAC,GAAR,EAAY;CAACC,QAAAA,KAAK,IAAE,GAAP;CAAW;;CAAA,aAAOA,KAAP;CAAa,KAAnlG;CAAolGC,IAAAA,eAAe,EAAC,CAAC/d,IAAD,EAAM8d,KAAN,KAAc;CAAC,UAAG5S,EAAE,CAACG,iBAAN,EAAwB;CAAC,eAAO,CAAP;CAAS;;CAAA,UAAGyS,KAAK,CAACjI,QAAN,CAAe,GAAf,KAAqB,EAAE7V,IAAI,CAACgX,IAAL,GAAU,GAAZ,CAAxB,EAAyC;CAAC,eAAO,CAAP;CAAS,OAAnD,MAAwD,IAAG8G,KAAK,CAACjI,QAAN,CAAe,GAAf,KAAqB,EAAE7V,IAAI,CAACgX,IAAL,GAAU,GAAZ,CAAxB,EAAyC;CAAC,eAAO,CAAP;CAAS,OAAnD,MAAwD,IAAG8G,KAAK,CAACjI,QAAN,CAAe,GAAf,KAAqB,EAAE7V,IAAI,CAACgX,IAAL,GAAU,EAAZ,CAAxB,EAAwC;CAAC,eAAO,CAAP;CAAS;;CAAA,aAAO,CAAP;CAAS,KAAh0G;CAAi0GqG,IAAAA,SAAS,EAAC3L,GAAG,IAAE;CAAC,UAAI0L,OAAO,GAAClS,EAAE,CAAC6S,eAAH,CAAmBrM,GAAnB,EAAuB,GAAvB,CAAZ;CAAwC,UAAG0L,OAAH,EAAW,OAAOA,OAAP;CAAe,UAAG,CAAC1L,GAAG,CAAC0F,QAAJ,CAAaE,MAAjB,EAAwB,OAAO,CAAP;CAAS,aAAO,CAAP;CAAS,KAA77G;CAA87G0G,IAAAA,SAAS,EAAC,CAACtM,GAAD,EAAKpE,IAAL,KAAY;CAAC,UAAG;CAAC,YAAItN,IAAI,GAACkL,EAAE,CAACgP,UAAH,CAAcxI,GAAd,EAAkBpE,IAAlB,CAAT;CAAiC,eAAO,EAAP;CAAU,OAA/C,CAA+C,OAAMP,CAAN,EAAQ;;CAAE,aAAO7B,EAAE,CAAC6S,eAAH,CAAmBrM,GAAnB,EAAuB,IAAvB,CAAP;CAAoC,KAAljH;CAAmjHuM,IAAAA,SAAS,EAAC,CAACvM,GAAD,EAAKpE,IAAL,EAAU4Q,KAAV,KAAkB;CAAC,UAAIle,IAAJ;;CAAS,UAAG;CAACA,QAAAA,IAAI,GAACkL,EAAE,CAACgP,UAAH,CAAcxI,GAAd,EAAkBpE,IAAlB,CAAL;CAA6B,OAAjC,CAAiC,OAAMP,CAAN,EAAQ;CAAC,eAAOA,CAAC,CAACoR,KAAT;CAAe;;CAAA,UAAIf,OAAO,GAAClS,EAAE,CAAC6S,eAAH,CAAmBrM,GAAnB,EAAuB,IAAvB,CAAZ;;CAAyC,UAAG0L,OAAH,EAAW;CAAC,eAAOA,OAAP;CAAe;;CAAA,UAAGc,KAAH,EAAS;CAAC,YAAG,CAAChT,EAAE,CAACmN,KAAH,CAASrY,IAAI,CAACgX,IAAd,CAAJ,EAAwB;CAAC,iBAAO,EAAP;CAAU;;CAAA,YAAG9L,EAAE,CAAC0R,MAAH,CAAU5c,IAAV,KAAiBkL,EAAE,CAACyR,OAAH,CAAW3c,IAAX,MAAmBkL,EAAE,CAAC0H,GAAH,EAAvC,EAAgD;CAAC,iBAAO,EAAP;CAAU;CAAC,OAAzG,MAA6G;CAAC,YAAG1H,EAAE,CAACmN,KAAH,CAASrY,IAAI,CAACgX,IAAd,CAAH,EAAuB;CAAC,iBAAO,EAAP;CAAU;CAAC;;CAAA,aAAO,CAAP;CAAS,KAAh3H;CAAi3HoH,IAAAA,OAAO,EAAC,CAACpe,IAAD,EAAM6a,KAAN,KAAc;CAAC,UAAG,CAAC7a,IAAJ,EAAS;CAAC,eAAO,EAAP;CAAU;;CAAA,UAAGkL,EAAE,CAACuN,MAAH,CAAUzY,IAAI,CAACgX,IAAf,CAAH,EAAwB;CAAC,eAAO,EAAP;CAAU,OAAnC,MAAwC,IAAG9L,EAAE,CAACmN,KAAH,CAASrY,IAAI,CAACgX,IAAd,CAAH,EAAuB;CAAC,YAAG9L,EAAE,CAAC0S,uBAAH,CAA2B/C,KAA3B,MAAoC,GAApC,IAAyCA,KAAK,GAAC,GAAlD,EAAsD;CAAC,iBAAO,EAAP;CAAU;CAAC;;CAAA,aAAO3P,EAAE,CAAC6S,eAAH,CAAmB/d,IAAnB,EAAwBkL,EAAE,CAAC0S,uBAAH,CAA2B/C,KAA3B,CAAxB,CAAP;CAAkE,KAAhmI;CAAimIwD,IAAAA,YAAY,EAAC,IAA9mI;CAAmnIC,IAAAA,MAAM,EAAC,YAAqC;CAAA,UAApCC,QAAoC,uEAA3B,CAA2B;CAAA,UAAzBC,MAAyB,uEAAlBtT,EAAE,CAACmT,YAAe;;CAAC,WAAI,IAAIzI,EAAE,GAAC2I,QAAX,EAAoB3I,EAAE,IAAE4I,MAAxB,EAA+B5I,EAAE,EAAjC,EAAoC;CAAC,YAAG,CAAC1K,EAAE,CAACuQ,OAAH,CAAW7F,EAAX,CAAJ,EAAmB;CAAC,iBAAOA,EAAP;CAAU;CAAC;;CAAA,YAAM,IAAI1K,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B,KAAhwI;CAAiwIgK,IAAAA,SAAS,EAAC7I,EAAE,IAAE1K,EAAE,CAACuQ,OAAH,CAAW7F,EAAX,CAA/wI;CAA8xI8I,IAAAA,YAAY,EAAC,CAACpK,MAAD,EAAQiK,QAAR,EAAiBC,MAAjB,KAA0B;CAAC,UAAG,CAACtT,EAAE,CAACyT,QAAP,EAAgB;CAACzT,QAAAA,EAAE,CAACyT,QAAH,GAAY,YAAU;CAAC,eAAKC,MAAL,GAAY,EAAZ;CAAe,SAAtC;;CAAuC1T,QAAAA,EAAE,CAACyT,QAAH,CAAY7U,SAAZ,GAAsB;CAAC+U,UAAAA,MAAM,EAAC;CAACla,YAAAA,GAAG,EAAC,YAAU;CAAC,qBAAO,KAAK3E,IAAZ;CAAiB,aAAjC;CAAkC+J,YAAAA,GAAG,EAAC,UAASkM,GAAT,EAAa;CAAC,mBAAKjW,IAAL,GAAUiW,GAAV;CAAc;CAAlE,WAAR;CAA4E6I,UAAAA,MAAM,EAAC;CAACna,YAAAA,GAAG,EAAC,YAAU;CAAC,qBAAM,CAAC,KAAKkW,KAAL,GAAW,OAAZ,MAAuB,CAA7B;CAA+B;CAA/C,WAAnF;CAAoIkE,UAAAA,OAAO,EAAC;CAACpa,YAAAA,GAAG,EAAC,YAAU;CAAC,qBAAM,CAAC,KAAKkW,KAAL,GAAW,OAAZ,MAAuB,CAA7B;CAA+B;CAA/C,WAA5I;CAA6LmE,UAAAA,QAAQ,EAAC;CAACra,YAAAA,GAAG,EAAC,YAAU;CAAC,qBAAO,KAAKkW,KAAL,GAAW,IAAlB;CAAuB;CAAvC,WAAtM;CAA+OA,UAAAA,KAAK,EAAC;CAAClW,YAAAA,GAAG,EAAC,YAAU;CAAC,qBAAO,KAAKia,MAAL,CAAY/D,KAAnB;CAAyB,aAAzC;CAA0C9Q,YAAAA,GAAG,EAAC,UAASkM,GAAT,EAAa;CAAC,mBAAK2I,MAAL,CAAY/D,KAAZ,GAAkB5E,GAAlB;CAAsB;CAAlF,WAArP;CAAyUuE,UAAAA,QAAQ,EAAC;CAAC,gBAAIyE,QAAJ,GAAc;CAAC,qBAAO,KAAKL,MAAL,CAAYpE,QAAnB;CAA4B,aAA5C;;CAA6CzQ,YAAAA,GAAG,EAAC,UAASkM,GAAT,EAAa;CAAC,mBAAK2I,MAAL,CAAYpE,QAAZ,GAAqBvE,GAArB;CAAyB;CAAxF;CAAlV,SAAtB;CAAmc;;CAAA3B,MAAAA,MAAM,GAAChV,MAAM,CAACC,MAAP,CAAc,IAAI2L,EAAE,CAACyT,QAAP,EAAd,EAA8BrK,MAA9B,CAAP;CAA6C,UAAIsB,EAAE,GAAC1K,EAAE,CAACoT,MAAH,CAAUC,QAAV,EAAmBC,MAAnB,CAAP;CAAkClK,MAAAA,MAAM,CAACsB,EAAP,GAAUA,EAAV;CAAa1K,MAAAA,EAAE,CAACuQ,OAAH,CAAW7F,EAAX,IAAetB,MAAf;CAAsB,aAAOA,MAAP;CAAc,KAAj8J;CAAk8J4K,IAAAA,WAAW,EAACtJ,EAAE,IAAE;CAAC1K,MAAAA,EAAE,CAACuQ,OAAH,CAAW7F,EAAX,IAAe,IAAf;CAAoB,KAAv+J;CAAw+JwC,IAAAA,iBAAiB,EAAC;CAAC3U,MAAAA,IAAI,EAAC6Q,MAAM,IAAE;CAAC,YAAI6K,MAAM,GAACjU,EAAE,CAACkU,SAAH,CAAa9K,MAAM,CAACtU,IAAP,CAAYwU,IAAzB,CAAX;CAA0CF,QAAAA,MAAM,CAACD,UAAP,GAAkB8K,MAAM,CAAC9K,UAAzB;;CAAoC,YAAGC,MAAM,CAACD,UAAP,CAAkB5Q,IAArB,EAA0B;CAAC6Q,UAAAA,MAAM,CAACD,UAAP,CAAkB5Q,IAAlB,CAAuB6Q,MAAvB;CAA+B;CAAC,OAAxJ;CAAyJuD,MAAAA,MAAM,EAAC,MAAI;CAAC,cAAM,IAAI3M,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;CAAjM,KAA1/J;CAA6rK4K,IAAAA,KAAK,EAACrL,GAAG,IAAEA,GAAG,IAAE,CAA7sK;CAA+sKsL,IAAAA,KAAK,EAACtL,GAAG,IAAEA,GAAG,GAAC,GAA9tK;CAAkuKuL,IAAAA,OAAO,EAAC,CAACC,EAAD,EAAIC,EAAJ,KAASD,EAAE,IAAE,CAAJ,GAAMC,EAAzvK;CAA4vKrL,IAAAA,cAAc,EAAC,CAACJ,GAAD,EAAKC,GAAL,KAAW;CAAC/I,MAAAA,EAAE,CAACsQ,OAAH,CAAWxH,GAAX,IAAgB;CAACK,QAAAA,UAAU,EAACJ;CAAZ,OAAhB;CAAiC,KAAxzK;CAAyzKmL,IAAAA,SAAS,EAACpL,GAAG,IAAE9I,EAAE,CAACsQ,OAAH,CAAWxH,GAAX,CAAx0K;CAAw1K0L,IAAAA,SAAS,EAAC7I,KAAK,IAAE;CAAC,UAAI0E,MAAM,GAAC,EAAX;CAAc,UAAIoE,KAAK,GAAC,CAAC9I,KAAD,CAAV;;CAAkB,aAAM8I,KAAK,CAAC5d,MAAZ,EAAmB;CAAC,YAAI6d,CAAC,GAACD,KAAK,CAACE,GAAN,EAAN;CAAkBtE,QAAAA,MAAM,CAAC7H,IAAP,CAAYkM,CAAZ;CAAeD,QAAAA,KAAK,CAACjM,IAAN,CAAWhG,KAAX,CAAiBiS,KAAjB,EAAuBC,CAAC,CAACrE,MAAzB;CAAiC;;CAAA,aAAOA,MAAP;CAAc,KAA9+K;CAA++KuE,IAAAA,MAAM,EAAC,CAACC,QAAD,EAAUlT,QAAV,KAAqB;CAAC,UAAG,OAAOkT,QAAP,IAAiB,UAApB,EAA+B;CAAClT,QAAAA,QAAQ,GAACkT,QAAT;CAAkBA,QAAAA,QAAQ,GAAC,KAAT;CAAe;;CAAA7U,MAAAA,EAAE,CAAC4Q,cAAH;;CAAoB,UAAG5Q,EAAE,CAAC4Q,cAAH,GAAkB,CAArB,EAAuB;CAACja,QAAAA,GAAG,CAAC,cAAYqJ,EAAE,CAAC4Q,cAAf,GAA8B,yEAA/B,CAAH;CAA6G;;CAAA,UAAIP,MAAM,GAACrQ,EAAE,CAACwU,SAAH,CAAaxU,EAAE,CAACuG,IAAH,CAAQoF,KAArB,CAAX;CAAuC,UAAImJ,SAAS,GAAC,CAAd;;CAAgB,eAASC,UAAT,CAAoB7C,OAApB,EAA4B;CAAC3b,QAAAA,MAAM,CAACyJ,EAAE,CAAC4Q,cAAH,GAAkB,CAAnB,CAAN;CAA4B5Q,QAAAA,EAAE,CAAC4Q,cAAH;CAAoB,eAAOjP,QAAQ,CAACuQ,OAAD,CAAf;CAAyB;;CAAA,eAAS8C,IAAT,CAAc9C,OAAd,EAAsB;CAAC,YAAGA,OAAH,EAAW;CAAC,cAAG,CAAC8C,IAAI,CAACC,OAAT,EAAiB;CAACD,YAAAA,IAAI,CAACC,OAAL,GAAa,IAAb;CAAkB,mBAAOF,UAAU,CAAC7C,OAAD,CAAjB;CAA2B;;CAAA;CAAO;;CAAA,YAAG,EAAE4C,SAAF,IAAazE,MAAM,CAACxZ,MAAvB,EAA8B;CAACke,UAAAA,UAAU,CAAC,IAAD,CAAV;CAAiB;CAAC;;CAAA1E,MAAAA,MAAM,CAAC6E,OAAP,CAAevJ,KAAK,IAAE;CAAC,YAAG,CAACA,KAAK,CAACwJ,IAAN,CAAWP,MAAf,EAAsB;CAAC,iBAAOI,IAAI,CAAC,IAAD,CAAX;CAAkB;;CAAArJ,QAAAA,KAAK,CAACwJ,IAAN,CAAWP,MAAX,CAAkBjJ,KAAlB,EAAwBkJ,QAAxB,EAAiCG,IAAjC;CAAuC,OAAvG;CAAyG,KAAtoM;CAAuoMrJ,IAAAA,KAAK,EAAC,CAACwJ,IAAD,EAAMrE,IAAN,EAAWa,UAAX,KAAwB;CAAC,UAAG,OAAOwD,IAAP,IAAa,QAAhB,EAAyB;CAAC,cAAMA,IAAN;CAAW;;CAAA,UAAI5O,IAAI,GAACoL,UAAU,KAAG,GAAtB;CAA0B,UAAIyD,MAAM,GAAC,CAACzD,UAAZ;CAAuB,UAAI7c,IAAJ;;CAAS,UAAGyR,IAAI,IAAEvG,EAAE,CAACuG,IAAZ,EAAiB;CAAC,cAAM,IAAIvG,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B,OAA9C,MAAmD,IAAG,CAAChD,IAAD,IAAO,CAAC6O,MAAX,EAAkB;CAAC,YAAIhJ,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAcc,UAAd,EAAyB;CAACX,UAAAA,YAAY,EAAC;CAAd,SAAzB,CAAX;CAA0DW,QAAAA,UAAU,GAACvF,MAAM,CAACjX,IAAlB;CAAuBL,QAAAA,IAAI,GAACsX,MAAM,CAACtX,IAAZ;;CAAiB,YAAGkL,EAAE,CAACqR,YAAH,CAAgBvc,IAAhB,CAAH,EAAyB;CAAC,gBAAM,IAAIkL,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,YAAG,CAACvJ,EAAE,CAACmN,KAAH,CAASrY,IAAI,CAACgX,IAAd,CAAJ,EAAwB;CAAC,gBAAM,IAAI9L,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;CAAC;;CAAA,UAAIoC,KAAK,GAAC;CAACwJ,QAAAA,IAAI,EAACA,IAAN;CAAWrE,QAAAA,IAAI,EAACA,IAAhB;CAAqBa,QAAAA,UAAU,EAACA,UAAhC;CAA2CtB,QAAAA,MAAM,EAAC;CAAlD,OAAV;CAAgE,UAAIgF,SAAS,GAACF,IAAI,CAACxJ,KAAL,CAAWA,KAAX,CAAd;CAAgC0J,MAAAA,SAAS,CAAC1J,KAAV,GAAgBA,KAAhB;CAAsBA,MAAAA,KAAK,CAACpF,IAAN,GAAW8O,SAAX;;CAAqB,UAAG9O,IAAH,EAAQ;CAACvG,QAAAA,EAAE,CAACuG,IAAH,GAAQ8O,SAAR;CAAkB,OAA3B,MAAgC,IAAGvgB,IAAH,EAAQ;CAACA,QAAAA,IAAI,CAACwc,OAAL,GAAa3F,KAAb;;CAAmB,YAAG7W,IAAI,CAAC6W,KAAR,EAAc;CAAC7W,UAAAA,IAAI,CAAC6W,KAAL,CAAW0E,MAAX,CAAkB7H,IAAlB,CAAuBmD,KAAvB;CAA8B;CAAC;;CAAA,aAAO0J,SAAP;CAAiB,KAA/xN;CAAgyNC,IAAAA,OAAO,EAAC3D,UAAU,IAAE;CAAC,UAAIvF,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAcc,UAAd,EAAyB;CAACX,QAAAA,YAAY,EAAC;CAAd,OAAzB,CAAX;;CAA0D,UAAG,CAAChR,EAAE,CAACqR,YAAH,CAAgBjF,MAAM,CAACtX,IAAvB,CAAJ,EAAiC;CAAC,cAAM,IAAIkL,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAIzU,IAAI,GAACsX,MAAM,CAACtX,IAAhB;CAAqB,UAAI6W,KAAK,GAAC7W,IAAI,CAACwc,OAAf;CAAuB,UAAIjB,MAAM,GAACrQ,EAAE,CAACwU,SAAH,CAAa7I,KAAb,CAAX;CAA+BvX,MAAAA,MAAM,CAACmhB,IAAP,CAAYvV,EAAE,CAACyQ,SAAf,EAA0ByE,OAA1B,CAAkCpD,IAAI,IAAE;CAAC,YAAIZ,OAAO,GAAClR,EAAE,CAACyQ,SAAH,CAAaqB,IAAb,CAAZ;;CAA+B,eAAMZ,OAAN,EAAc;CAAC,cAAIsE,IAAI,GAACtE,OAAO,CAACc,SAAjB;;CAA2B,cAAG3B,MAAM,CAAC1F,QAAP,CAAgBuG,OAAO,CAACvF,KAAxB,CAAH,EAAkC;CAAC3L,YAAAA,EAAE,CAACsS,WAAH,CAAepB,OAAf;CAAwB;;CAAAA,UAAAA,OAAO,GAACsE,IAAR;CAAa;CAAC,OAA3L;CAA6L1gB,MAAAA,IAAI,CAACwc,OAAL,GAAa,IAAb;CAAkB,UAAI3W,GAAG,GAAC7F,IAAI,CAAC6W,KAAL,CAAW0E,MAAX,CAAkBpY,OAAlB,CAA0B0T,KAA1B,CAAR;CAAyCpV,MAAAA,MAAM,CAACoE,GAAG,KAAG,CAAC,CAAR,CAAN;CAAiB7F,MAAAA,IAAI,CAAC6W,KAAL,CAAW0E,MAAX,CAAkBtK,MAAlB,CAAyBpL,GAAzB,EAA6B,CAA7B;CAAgC,KAAjyO;CAAkyOyR,IAAAA,MAAM,EAAC,CAACP,MAAD,EAAQzJ,IAAR,KAAe;CAAC,aAAOyJ,MAAM,CAACK,QAAP,CAAgBE,MAAhB,CAAuBP,MAAvB,EAA8BzJ,IAA9B,CAAP;CAA2C,KAAp2O;CAAq2OiK,IAAAA,KAAK,EAAC,CAAClX,IAAD,EAAM2W,IAAN,EAAWhD,GAAX,KAAiB;CAAC,UAAIsD,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,EAAmB;CAAC0W,QAAAA,MAAM,EAAC;CAAR,OAAnB,CAAX;CAA6C,UAAIA,MAAM,GAACO,MAAM,CAACtX,IAAlB;CAAuB,UAAIsN,IAAI,GAACgD,IAAI,CAACqB,QAAL,CAActR,IAAd,CAAT;;CAA6B,UAAG,CAACiN,IAAD,IAAOA,IAAI,KAAG,GAAd,IAAmBA,IAAI,KAAG,IAA7B,EAAkC;CAAC,cAAM,IAAIpC,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAI2I,OAAO,GAAClS,EAAE,CAAC8S,SAAH,CAAajH,MAAb,EAAoBzJ,IAApB,CAAZ;;CAAsC,UAAG8P,OAAH,EAAW;CAAC,cAAM,IAAIlS,EAAE,CAACuJ,UAAP,CAAkB2I,OAAlB,CAAN;CAAiC;;CAAA,UAAG,CAACrG,MAAM,CAACK,QAAP,CAAgBG,KAApB,EAA0B;CAAC,cAAM,IAAIrM,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,aAAOsC,MAAM,CAACK,QAAP,CAAgBG,KAAhB,CAAsBR,MAAtB,EAA6BzJ,IAA7B,EAAkC0J,IAAlC,EAAuChD,GAAvC,CAAP;CAAmD,KAA1tP;CAA2tP2M,IAAAA,MAAM,EAAC,CAACtgB,IAAD,EAAM2W,IAAN,KAAa;CAACA,MAAAA,IAAI,GAACA,IAAI,KAAG3V,SAAP,GAAiB2V,IAAjB,GAAsB,GAA3B;CAA+BA,MAAAA,IAAI,IAAE,IAAN;CAAWA,MAAAA,IAAI,IAAE,KAAN;CAAY,aAAO9L,EAAE,CAACqM,KAAH,CAASlX,IAAT,EAAc2W,IAAd,EAAmB,CAAnB,CAAP;CAA6B,KAAn0P;CAAo0P4J,IAAAA,KAAK,EAAC,CAACvgB,IAAD,EAAM2W,IAAN,KAAa;CAACA,MAAAA,IAAI,GAACA,IAAI,KAAG3V,SAAP,GAAiB2V,IAAjB,GAAsB,GAA3B;CAA+BA,MAAAA,IAAI,IAAE,MAAI,GAAV;CAAcA,MAAAA,IAAI,IAAE,KAAN;CAAY,aAAO9L,EAAE,CAACqM,KAAH,CAASlX,IAAT,EAAc2W,IAAd,EAAmB,CAAnB,CAAP;CAA6B,KAA96P;CAA+6P6J,IAAAA,SAAS,EAAC,CAACxgB,IAAD,EAAM2W,IAAN,KAAa;CAAC,UAAI8J,IAAI,GAACzgB,IAAI,CAACgR,KAAL,CAAW,GAAX,CAAT;CAAyB,UAAI0P,CAAC,GAAC,EAAN;;CAAS,WAAI,IAAI5Z,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC2Z,IAAI,CAAC/e,MAAnB,EAA0B,EAAEoF,CAA5B,EAA8B;CAAC,YAAG,CAAC2Z,IAAI,CAAC3Z,CAAD,CAAR,EAAY;CAAS4Z,QAAAA,CAAC,IAAE,MAAID,IAAI,CAAC3Z,CAAD,CAAX;;CAAe,YAAG;CAAC+D,UAAAA,EAAE,CAAC0V,KAAH,CAASG,CAAT,EAAW/J,IAAX;CAAiB,SAArB,CAAqB,OAAMjK,CAAN,EAAQ;CAAC,cAAGA,CAAC,CAACoR,KAAF,IAAS,EAAZ,EAAe,MAAMpR,CAAN;CAAQ;CAAC;CAAC,KAAnmQ;CAAomQiU,IAAAA,KAAK,EAAC,CAAC3gB,IAAD,EAAM2W,IAAN,EAAWhD,GAAX,KAAiB;CAAC,UAAG,OAAOA,GAAP,IAAY,WAAf,EAA2B;CAACA,QAAAA,GAAG,GAACgD,IAAJ;CAASA,QAAAA,IAAI,GAAC,GAAL;CAAS;;CAAAA,MAAAA,IAAI,IAAE,IAAN;CAAW,aAAO9L,EAAE,CAACqM,KAAH,CAASlX,IAAT,EAAc2W,IAAd,EAAmBhD,GAAnB,CAAP;CAA+B,KAAptQ;CAAqtQ4D,IAAAA,OAAO,EAAC,CAAC2C,OAAD,EAAS0G,OAAT,KAAmB;CAAC,UAAG,CAACxO,OAAO,CAACpE,OAAR,CAAgBkM,OAAhB,CAAJ,EAA6B;CAAC,cAAM,IAAIrP,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAI6C,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAckF,OAAd,EAAsB;CAAClK,QAAAA,MAAM,EAAC;CAAR,OAAtB,CAAX;CAAgD,UAAIA,MAAM,GAACO,MAAM,CAACtX,IAAlB;;CAAuB,UAAG,CAAC+W,MAAJ,EAAW;CAAC,cAAM,IAAI7L,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAI6F,OAAO,GAAChK,IAAI,CAACqB,QAAL,CAAcsP,OAAd,CAAZ;CAAmC,UAAI7D,OAAO,GAAClS,EAAE,CAAC8S,SAAH,CAAajH,MAAb,EAAoBuD,OAApB,CAAZ;;CAAyC,UAAG8C,OAAH,EAAW;CAAC,cAAM,IAAIlS,EAAE,CAACuJ,UAAP,CAAkB2I,OAAlB,CAAN;CAAiC;;CAAA,UAAG,CAACrG,MAAM,CAACK,QAAP,CAAgBQ,OAApB,EAA4B;CAAC,cAAM,IAAI1M,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,aAAOsC,MAAM,CAACK,QAAP,CAAgBQ,OAAhB,CAAwBb,MAAxB,EAA+BuD,OAA/B,EAAuCC,OAAvC,CAAP;CAAuD,KAAnoR;CAAooR/C,IAAAA,MAAM,EAAC,CAAC0J,QAAD,EAAUC,QAAV,KAAqB;CAAC,UAAIC,WAAW,GAAC9Q,IAAI,CAACxP,OAAL,CAAaogB,QAAb,CAAhB;CAAuC,UAAIG,WAAW,GAAC/Q,IAAI,CAACxP,OAAL,CAAaqgB,QAAb,CAAhB;CAAuC,UAAIG,QAAQ,GAAChR,IAAI,CAACqB,QAAL,CAAcuP,QAAd,CAAb;CAAqC,UAAIlH,QAAQ,GAAC1J,IAAI,CAACqB,QAAL,CAAcwP,QAAd,CAAb;CAAqC,UAAI7J,MAAJ,EAAWiK,OAAX,EAAmBxH,OAAnB;CAA2BzC,MAAAA,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAcmF,QAAd,EAAuB;CAACnK,QAAAA,MAAM,EAAC;CAAR,OAAvB,CAAP;CAA6CwK,MAAAA,OAAO,GAACjK,MAAM,CAACtX,IAAf;CAAoBsX,MAAAA,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAcoF,QAAd,EAAuB;CAACpK,QAAAA,MAAM,EAAC;CAAR,OAAvB,CAAP;CAA6CgD,MAAAA,OAAO,GAACzC,MAAM,CAACtX,IAAf;CAAoB,UAAG,CAACuhB,OAAD,IAAU,CAACxH,OAAd,EAAsB,MAAM,IAAI7O,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;;CAA4B,UAAG8M,OAAO,CAAC1K,KAAR,KAAgBkD,OAAO,CAAClD,KAA3B,EAAiC;CAAC,cAAM,IAAI3L,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAIqF,QAAQ,GAAC5O,EAAE,CAACgP,UAAH,CAAcqH,OAAd,EAAsBD,QAAtB,CAAb;CAA6C,UAAIxO,QAAQ,GAACL,OAAO,CAACK,QAAR,CAAiBoO,QAAjB,EAA0BG,WAA1B,CAAb;;CAAoD,UAAGvO,QAAQ,CAACtC,MAAT,CAAgB,CAAhB,MAAqB,GAAxB,EAA4B;CAAC,cAAM,IAAItF,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA3B,MAAAA,QAAQ,GAACL,OAAO,CAACK,QAAR,CAAiBqO,QAAjB,EAA0BC,WAA1B,CAAT;;CAAgD,UAAGtO,QAAQ,CAACtC,MAAT,CAAgB,CAAhB,MAAqB,GAAxB,EAA4B;CAAC,cAAM,IAAItF,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAIwF,QAAJ;;CAAa,UAAG;CAACA,QAAAA,QAAQ,GAAC/O,EAAE,CAACgP,UAAH,CAAcH,OAAd,EAAsBC,QAAtB,CAAT;CAAyC,OAA7C,CAA6C,OAAMjN,CAAN,EAAQ;;CAAE,UAAG+M,QAAQ,KAAGG,QAAd,EAAuB;CAAC;CAAO;;CAAA,UAAIiE,KAAK,GAAChT,EAAE,CAACmN,KAAH,CAASyB,QAAQ,CAAC9C,IAAlB,CAAV;CAAkC,UAAIoG,OAAO,GAAClS,EAAE,CAAC+S,SAAH,CAAasD,OAAb,EAAqBD,QAArB,EAA8BpD,KAA9B,CAAZ;;CAAiD,UAAGd,OAAH,EAAW;CAAC,cAAM,IAAIlS,EAAE,CAACuJ,UAAP,CAAkB2I,OAAlB,CAAN;CAAiC;;CAAAA,MAAAA,OAAO,GAACnD,QAAQ,GAAC/O,EAAE,CAAC+S,SAAH,CAAalE,OAAb,EAAqBC,QAArB,EAA8BkE,KAA9B,CAAD,GAAsChT,EAAE,CAAC8S,SAAH,CAAajE,OAAb,EAAqBC,QAArB,CAAtD;;CAAqF,UAAGoD,OAAH,EAAW;CAAC,cAAM,IAAIlS,EAAE,CAACuJ,UAAP,CAAkB2I,OAAlB,CAAN;CAAiC;;CAAA,UAAG,CAACmE,OAAO,CAACnK,QAAR,CAAiBI,MAArB,EAA4B;CAAC,cAAM,IAAItM,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAGvJ,EAAE,CAACqR,YAAH,CAAgBzC,QAAhB,KAA2BG,QAAQ,IAAE/O,EAAE,CAACqR,YAAH,CAAgBtC,QAAhB,CAAxC,EAAkE;CAAC,cAAM,IAAI/O,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAGsF,OAAO,KAAGwH,OAAb,EAAqB;CAACnE,QAAAA,OAAO,GAAClS,EAAE,CAAC6S,eAAH,CAAmBwD,OAAnB,EAA2B,GAA3B,CAAR;;CAAwC,YAAGnE,OAAH,EAAW;CAAC,gBAAM,IAAIlS,EAAE,CAACuJ,UAAP,CAAkB2I,OAAlB,CAAN;CAAiC;CAAC;;CAAAlS,MAAAA,EAAE,CAACiS,cAAH,CAAkBrD,QAAlB;;CAA4B,UAAG;CAACyH,QAAAA,OAAO,CAACnK,QAAR,CAAiBI,MAAjB,CAAwBsC,QAAxB,EAAiCC,OAAjC,EAAyCC,QAAzC;CAAmD,OAAvD,CAAuD,OAAMjN,CAAN,EAAQ;CAAC,cAAMA,CAAN;CAAQ,OAAxE,SAA+E;CAAC7B,QAAAA,EAAE,CAAC+R,WAAH,CAAenD,QAAf;CAAyB;CAAC,KAAxjU;CAAyjUpC,IAAAA,KAAK,EAACrX,IAAI,IAAE;CAAC,UAAIiX,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,EAAmB;CAAC0W,QAAAA,MAAM,EAAC;CAAR,OAAnB,CAAX;CAA6C,UAAIA,MAAM,GAACO,MAAM,CAACtX,IAAlB;CAAuB,UAAIsN,IAAI,GAACgD,IAAI,CAACqB,QAAL,CAActR,IAAd,CAAT;CAA6B,UAAIL,IAAI,GAACkL,EAAE,CAACgP,UAAH,CAAcnD,MAAd,EAAqBzJ,IAArB,CAAT;CAAoC,UAAI8P,OAAO,GAAClS,EAAE,CAAC+S,SAAH,CAAalH,MAAb,EAAoBzJ,IAApB,EAAyB,IAAzB,CAAZ;;CAA2C,UAAG8P,OAAH,EAAW;CAAC,cAAM,IAAIlS,EAAE,CAACuJ,UAAP,CAAkB2I,OAAlB,CAAN;CAAiC;;CAAA,UAAG,CAACrG,MAAM,CAACK,QAAP,CAAgBM,KAApB,EAA0B;CAAC,cAAM,IAAIxM,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAGvJ,EAAE,CAACqR,YAAH,CAAgBvc,IAAhB,CAAH,EAAyB;CAAC,cAAM,IAAIkL,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAAsC,MAAAA,MAAM,CAACK,QAAP,CAAgBM,KAAhB,CAAsBX,MAAtB,EAA6BzJ,IAA7B;CAAmCpC,MAAAA,EAAE,CAACsS,WAAH,CAAexd,IAAf;CAAqB,KAAx8U;CAAy8U2X,IAAAA,OAAO,EAACtX,IAAI,IAAE;CAAC,UAAIiX,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,EAAmB;CAACoc,QAAAA,MAAM,EAAC;CAAR,OAAnB,CAAX;CAA6C,UAAIzc,IAAI,GAACsX,MAAM,CAACtX,IAAhB;;CAAqB,UAAG,CAACA,IAAI,CAACoX,QAAL,CAAcO,OAAlB,EAA0B;CAAC,cAAM,IAAIzM,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,aAAOzU,IAAI,CAACoX,QAAL,CAAcO,OAAd,CAAsB3X,IAAtB,CAAP;CAAmC,KAApnV;CAAqnVyX,IAAAA,MAAM,EAACpX,IAAI,IAAE;CAAC,UAAIiX,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,EAAmB;CAAC0W,QAAAA,MAAM,EAAC;CAAR,OAAnB,CAAX;CAA6C,UAAIA,MAAM,GAACO,MAAM,CAACtX,IAAlB;;CAAuB,UAAG,CAAC+W,MAAJ,EAAW;CAAC,cAAM,IAAI7L,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAInH,IAAI,GAACgD,IAAI,CAACqB,QAAL,CAActR,IAAd,CAAT;CAA6B,UAAIL,IAAI,GAACkL,EAAE,CAACgP,UAAH,CAAcnD,MAAd,EAAqBzJ,IAArB,CAAT;CAAoC,UAAI8P,OAAO,GAAClS,EAAE,CAAC+S,SAAH,CAAalH,MAAb,EAAoBzJ,IAApB,EAAyB,KAAzB,CAAZ;;CAA4C,UAAG8P,OAAH,EAAW;CAAC,cAAM,IAAIlS,EAAE,CAACuJ,UAAP,CAAkB2I,OAAlB,CAAN;CAAiC;;CAAA,UAAG,CAACrG,MAAM,CAACK,QAAP,CAAgBK,MAApB,EAA2B;CAAC,cAAM,IAAIvM,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAGvJ,EAAE,CAACqR,YAAH,CAAgBvc,IAAhB,CAAH,EAAyB;CAAC,cAAM,IAAIkL,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAAsC,MAAAA,MAAM,CAACK,QAAP,CAAgBK,MAAhB,CAAuBV,MAAvB,EAA8BzJ,IAA9B;CAAoCpC,MAAAA,EAAE,CAACsS,WAAH,CAAexd,IAAf;CAAqB,KAAhjW;CAAijWkY,IAAAA,QAAQ,EAAC7X,IAAI,IAAE;CAAC,UAAIiX,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,CAAX;CAA+B,UAAI4X,IAAI,GAACX,MAAM,CAACtX,IAAhB;;CAAqB,UAAG,CAACiY,IAAJ,EAAS;CAAC,cAAM,IAAI/M,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAG,CAACwD,IAAI,CAACb,QAAL,CAAcc,QAAlB,EAA2B;CAAC,cAAM,IAAIhN,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,aAAOhC,OAAO,CAACpE,OAAR,CAAgBnD,EAAE,CAACyR,OAAH,CAAW1E,IAAI,CAAClB,MAAhB,CAAhB,EAAwCkB,IAAI,CAACb,QAAL,CAAcc,QAAd,CAAuBD,IAAvB,CAAxC,CAAP;CAA6E,KAAhyW;CAAiyWuJ,IAAAA,IAAI,EAAC,CAACnhB,IAAD,EAAMohB,UAAN,KAAmB;CAAC,UAAInK,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,EAAmB;CAACoc,QAAAA,MAAM,EAAC,CAACgF;CAAT,OAAnB,CAAX;CAAoD,UAAIzhB,IAAI,GAACsX,MAAM,CAACtX,IAAhB;;CAAqB,UAAG,CAACA,IAAJ,EAAS;CAAC,cAAM,IAAIkL,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAG,CAACzU,IAAI,CAACoX,QAAL,CAAcD,OAAlB,EAA0B;CAAC,cAAM,IAAIjM,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,aAAOzU,IAAI,CAACoX,QAAL,CAAcD,OAAd,CAAsBnX,IAAtB,CAAP;CAAmC,KAAngX;CAAogX0hB,IAAAA,KAAK,EAACrhB,IAAI,IAAE;CAAC,aAAO6K,EAAE,CAACsW,IAAH,CAAQnhB,IAAR,EAAa,IAAb,CAAP;CAA0B,KAA3iX;CAA4iXshB,IAAAA,KAAK,EAAC,CAACthB,IAAD,EAAM2W,IAAN,EAAWyK,UAAX,KAAwB;CAAC,UAAIzhB,IAAJ;;CAAS,UAAG,OAAOK,IAAP,IAAa,QAAhB,EAAyB;CAAC,YAAIiX,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,EAAmB;CAACoc,UAAAA,MAAM,EAAC,CAACgF;CAAT,SAAnB,CAAX;CAAoDzhB,QAAAA,IAAI,GAACsX,MAAM,CAACtX,IAAZ;CAAiB,OAA/F,MAAmG;CAACA,QAAAA,IAAI,GAACK,IAAL;CAAU;;CAAA,UAAG,CAACL,IAAI,CAACoX,QAAL,CAAcC,OAAlB,EAA0B;CAAC,cAAM,IAAInM,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAAzU,MAAAA,IAAI,CAACoX,QAAL,CAAcC,OAAd,CAAsBrX,IAAtB,EAA2B;CAACgX,QAAAA,IAAI,EAACA,IAAI,GAAC,IAAL,GAAUhX,IAAI,CAACgX,IAAL,GAAU,CAAC,IAA3B;CAAgC/B,QAAAA,SAAS,EAACC,IAAI,CAACC,GAAL;CAA1C,OAA3B;CAAkF,KAA30X;CAA40XyM,IAAAA,MAAM,EAAC,CAACvhB,IAAD,EAAM2W,IAAN,KAAa;CAAC9L,MAAAA,EAAE,CAACyW,KAAH,CAASthB,IAAT,EAAc2W,IAAd,EAAmB,IAAnB;CAAyB,KAA13X;CAA23X6K,IAAAA,MAAM,EAAC,CAACjM,EAAD,EAAIoB,IAAJ,KAAW;CAAC,UAAI1C,MAAM,GAACpJ,EAAE,CAACuT,SAAH,CAAa7I,EAAb,CAAX;;CAA4B,UAAG,CAACtB,MAAJ,EAAW;CAAC,cAAM,IAAIpJ,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B;;CAAAvJ,MAAAA,EAAE,CAACyW,KAAH,CAASrN,MAAM,CAACtU,IAAhB,EAAqBgX,IAArB;CAA2B,KAA5+X;CAA6+X8K,IAAAA,KAAK,EAAC,CAACzhB,IAAD,EAAMiZ,GAAN,EAAUC,GAAV,EAAckI,UAAd,KAA2B;CAAC,UAAIzhB,IAAJ;;CAAS,UAAG,OAAOK,IAAP,IAAa,QAAhB,EAAyB;CAAC,YAAIiX,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,EAAmB;CAACoc,UAAAA,MAAM,EAAC,CAACgF;CAAT,SAAnB,CAAX;CAAoDzhB,QAAAA,IAAI,GAACsX,MAAM,CAACtX,IAAZ;CAAiB,OAA/F,MAAmG;CAACA,QAAAA,IAAI,GAACK,IAAL;CAAU;;CAAA,UAAG,CAACL,IAAI,CAACoX,QAAL,CAAcC,OAAlB,EAA0B;CAAC,cAAM,IAAInM,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAAzU,MAAAA,IAAI,CAACoX,QAAL,CAAcC,OAAd,CAAsBrX,IAAtB,EAA2B;CAACiV,QAAAA,SAAS,EAACC,IAAI,CAACC,GAAL;CAAX,OAA3B;CAAmD,KAAhvY;CAAivY4M,IAAAA,MAAM,EAAC,CAAC1hB,IAAD,EAAMiZ,GAAN,EAAUC,GAAV,KAAgB;CAACrO,MAAAA,EAAE,CAAC4W,KAAH,CAASzhB,IAAT,EAAciZ,GAAd,EAAkBC,GAAlB,EAAsB,IAAtB;CAA4B,KAAryY;CAAsyYyI,IAAAA,MAAM,EAAC,CAACpM,EAAD,EAAI0D,GAAJ,EAAQC,GAAR,KAAc;CAAC,UAAIjF,MAAM,GAACpJ,EAAE,CAACuT,SAAH,CAAa7I,EAAb,CAAX;;CAA4B,UAAG,CAACtB,MAAJ,EAAW;CAAC,cAAM,IAAIpJ,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B;;CAAAvJ,MAAAA,EAAE,CAAC4W,KAAH,CAASxN,MAAM,CAACtU,IAAhB,EAAqBsZ,GAArB,EAAyBC,GAAzB;CAA8B,KAA75Y;CAA85Y0I,IAAAA,QAAQ,EAAC,CAAC5hB,IAAD,EAAMoH,GAAN,KAAY;CAAC,UAAGA,GAAG,GAAC,CAAP,EAAS;CAAC,cAAM,IAAIyD,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAIzU,IAAJ;;CAAS,UAAG,OAAOK,IAAP,IAAa,QAAhB,EAAyB;CAAC,YAAIiX,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,EAAmB;CAACoc,UAAAA,MAAM,EAAC;CAAR,SAAnB,CAAX;CAA6Czc,QAAAA,IAAI,GAACsX,MAAM,CAACtX,IAAZ;CAAiB,OAAxF,MAA4F;CAACA,QAAAA,IAAI,GAACK,IAAL;CAAU;;CAAA,UAAG,CAACL,IAAI,CAACoX,QAAL,CAAcC,OAAlB,EAA0B;CAAC,cAAM,IAAInM,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAGvJ,EAAE,CAACmN,KAAH,CAASrY,IAAI,CAACgX,IAAd,CAAH,EAAuB;CAAC,cAAM,IAAI9L,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAG,CAACvJ,EAAE,CAACqN,MAAH,CAAUvY,IAAI,CAACgX,IAAf,CAAJ,EAAyB;CAAC,cAAM,IAAI9L,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAI2I,OAAO,GAAClS,EAAE,CAAC6S,eAAH,CAAmB/d,IAAnB,EAAwB,GAAxB,CAAZ;;CAAyC,UAAGod,OAAH,EAAW;CAAC,cAAM,IAAIlS,EAAE,CAACuJ,UAAP,CAAkB2I,OAAlB,CAAN;CAAiC;;CAAApd,MAAAA,IAAI,CAACoX,QAAL,CAAcC,OAAd,CAAsBrX,IAAtB,EAA2B;CAAC2I,QAAAA,IAAI,EAAClB,GAAN;CAAUwN,QAAAA,SAAS,EAACC,IAAI,CAACC,GAAL;CAApB,OAA3B;CAA4D,KAA73Z;CAA83Z+M,IAAAA,SAAS,EAAC,CAACtM,EAAD,EAAInO,GAAJ,KAAU;CAAC,UAAI6M,MAAM,GAACpJ,EAAE,CAACuT,SAAH,CAAa7I,EAAb,CAAX;;CAA4B,UAAG,CAACtB,MAAJ,EAAW;CAAC,cAAM,IAAIpJ,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B;;CAAA,UAAG,CAACH,MAAM,CAACuG,KAAP,GAAa,OAAd,MAAyB,CAA5B,EAA8B;CAAC,cAAM,IAAI3P,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAAvJ,MAAAA,EAAE,CAAC+W,QAAH,CAAY3N,MAAM,CAACtU,IAAnB,EAAwByH,GAAxB;CAA6B,KAA9ia;CAA+ia0a,IAAAA,KAAK,EAAC,CAAC9hB,IAAD,EAAMmZ,KAAN,EAAYC,KAAZ,KAAoB;CAAC,UAAInC,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,EAAmB;CAACoc,QAAAA,MAAM,EAAC;CAAR,OAAnB,CAAX;CAA6C,UAAIzc,IAAI,GAACsX,MAAM,CAACtX,IAAhB;CAAqBA,MAAAA,IAAI,CAACoX,QAAL,CAAcC,OAAd,CAAsBrX,IAAtB,EAA2B;CAACiV,QAAAA,SAAS,EAACtJ,IAAI,CAACzB,GAAL,CAASsP,KAAT,EAAeC,KAAf;CAAX,OAA3B;CAA8D,KAA1sa;CAA2sahW,IAAAA,IAAI,EAAC,CAACpD,IAAD,EAAMwa,KAAN,EAAY7D,IAAZ,EAAiBuH,QAAjB,EAA0BC,MAA1B,KAAmC;CAAC,UAAGne,IAAI,KAAG,EAAV,EAAa;CAAC,cAAM,IAAI6K,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAAoG,MAAAA,KAAK,GAAC,OAAOA,KAAP,IAAc,QAAd,GAAuB3P,EAAE,CAACyS,iBAAH,CAAqB9C,KAArB,CAAvB,GAAmDA,KAAzD;CAA+D7D,MAAAA,IAAI,GAAC,OAAOA,IAAP,IAAa,WAAb,GAAyB,GAAzB,GAA6BA,IAAlC;;CAAuC,UAAG6D,KAAK,GAAC,EAAT,EAAY;CAAC7D,QAAAA,IAAI,GAACA,IAAI,GAAC,IAAL,GAAU,KAAf;CAAqB,OAAlC,MAAsC;CAACA,QAAAA,IAAI,GAAC,CAAL;CAAO;;CAAA,UAAIhX,IAAJ;;CAAS,UAAG,OAAOK,IAAP,IAAa,QAAhB,EAAyB;CAACL,QAAAA,IAAI,GAACK,IAAL;CAAU,OAApC,MAAwC;CAACA,QAAAA,IAAI,GAACiQ,IAAI,CAACY,SAAL,CAAe7Q,IAAf,CAAL;;CAA0B,YAAG;CAAC,cAAIiX,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,EAAmB;CAACoc,YAAAA,MAAM,EAAC,EAAE5B,KAAK,GAAC,MAAR;CAAR,WAAnB,CAAX;CAAwD7a,UAAAA,IAAI,GAACsX,MAAM,CAACtX,IAAZ;CAAiB,SAA7E,CAA6E,OAAM+M,CAAN,EAAQ;CAAG;;CAAA,UAAIqV,OAAO,GAAC,KAAZ;;CAAkB,UAAGvH,KAAK,GAAC,EAAT,EAAY;CAAC,YAAG7a,IAAH,EAAQ;CAAC,cAAG6a,KAAK,GAAC,GAAT,EAAa;CAAC,kBAAM,IAAI3P,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;CAAC,SAApD,MAAwD;CAACzU,UAAAA,IAAI,GAACkL,EAAE,CAACqM,KAAH,CAASlX,IAAT,EAAc2W,IAAd,EAAmB,CAAnB,CAAL;CAA2BoL,UAAAA,OAAO,GAAC,IAAR;CAAa;CAAC;;CAAA,UAAG,CAACpiB,IAAJ,EAAS;CAAC,cAAM,IAAIkL,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAGvJ,EAAE,CAACwN,QAAH,CAAY1Y,IAAI,CAACgX,IAAjB,CAAH,EAA0B;CAAC6D,QAAAA,KAAK,IAAE,CAAC,GAAR;CAAY;;CAAA,UAAGA,KAAK,GAAC,KAAN,IAAa,CAAC3P,EAAE,CAACmN,KAAH,CAASrY,IAAI,CAACgX,IAAd,CAAjB,EAAqC;CAAC,cAAM,IAAI9L,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAG,CAAC2N,OAAJ,EAAY;CAAC,YAAIhF,OAAO,GAAClS,EAAE,CAACkT,OAAH,CAAWpe,IAAX,EAAgB6a,KAAhB,CAAZ;;CAAmC,YAAGuC,OAAH,EAAW;CAAC,gBAAM,IAAIlS,EAAE,CAACuJ,UAAP,CAAkB2I,OAAlB,CAAN;CAAiC;CAAC;;CAAA,UAAGvC,KAAK,GAAC,GAAT,EAAa;CAAC3P,QAAAA,EAAE,CAAC+W,QAAH,CAAYjiB,IAAZ,EAAiB,CAAjB;CAAoB;;CAAA6a,MAAAA,KAAK,IAAE,EAAE,MAAI,GAAJ,GAAQ,MAAV,CAAP;CAAyB,UAAIvG,MAAM,GAACpJ,EAAE,CAACwT,YAAH,CAAgB;CAAC1e,QAAAA,IAAI,EAACA,IAAN;CAAWK,QAAAA,IAAI,EAAC6K,EAAE,CAACyR,OAAH,CAAW3c,IAAX,CAAhB;CAAiC6a,QAAAA,KAAK,EAACA,KAAvC;CAA6CnG,QAAAA,QAAQ,EAAC,IAAtD;CAA2D8F,QAAAA,QAAQ,EAAC,CAApE;CAAsEnG,QAAAA,UAAU,EAACrU,IAAI,CAACqU,UAAtF;CAAiGgO,QAAAA,QAAQ,EAAC,EAA1G;CAA6Gzf,QAAAA,KAAK,EAAC;CAAnH,OAAhB,EAA0I2b,QAA1I,EAAmJC,MAAnJ,CAAX;;CAAsK,UAAGlK,MAAM,CAACD,UAAP,CAAkB5Q,IAArB,EAA0B;CAAC6Q,QAAAA,MAAM,CAACD,UAAP,CAAkB5Q,IAAlB,CAAuB6Q,MAAvB;CAA+B;;CAAA,UAAG3V,MAAM,CAAC,cAAD,CAAN,IAAwB,EAAEkc,KAAK,GAAC,CAAR,CAA3B,EAAsC;CAAC,YAAG,CAAC3P,EAAE,CAACoX,SAAP,EAAiBpX,EAAE,CAACoX,SAAH,GAAa,EAAb;;CAAgB,YAAG,EAAEjiB,IAAI,IAAI6K,EAAE,CAACoX,SAAb,CAAH,EAA2B;CAACpX,UAAAA,EAAE,CAACoX,SAAH,CAAajiB,IAAb,IAAmB,CAAnB;CAAqB;CAAC;;CAAA,aAAOiU,MAAP;CAAc,KAAv2c;CAAw2cK,IAAAA,KAAK,EAACL,MAAM,IAAE;CAAC,UAAGpJ,EAAE,CAACqX,QAAH,CAAYjO,MAAZ,CAAH,EAAuB;CAAC,cAAM,IAAIpJ,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B;;CAAA,UAAGH,MAAM,CAACkO,QAAV,EAAmBlO,MAAM,CAACkO,QAAP,GAAgB,IAAhB;;CAAqB,UAAG;CAAC,YAAGlO,MAAM,CAACD,UAAP,CAAkBM,KAArB,EAA2B;CAACL,UAAAA,MAAM,CAACD,UAAP,CAAkBM,KAAlB,CAAwBL,MAAxB;CAAgC;CAAC,OAAjE,CAAiE,OAAMvH,CAAN,EAAQ;CAAC,cAAMA,CAAN;CAAQ,OAAlF,SAAyF;CAAC7B,QAAAA,EAAE,CAACgU,WAAH,CAAe5K,MAAM,CAACsB,EAAtB;CAA0B;;CAAAtB,MAAAA,MAAM,CAACsB,EAAP,GAAU,IAAV;CAAe,KAArld;CAAsld2M,IAAAA,QAAQ,EAACjO,MAAM,IAAE;CAAC,aAAOA,MAAM,CAACsB,EAAP,KAAY,IAAnB;CAAwB,KAAhod;CAAiodiC,IAAAA,MAAM,EAAC,CAACvD,MAAD,EAAQO,MAAR,EAAe8F,MAAf,KAAwB;CAAC,UAAGzP,EAAE,CAACqX,QAAH,CAAYjO,MAAZ,CAAH,EAAuB;CAAC,cAAM,IAAIpJ,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B;;CAAA,UAAG,CAACH,MAAM,CAACI,QAAR,IAAkB,CAACJ,MAAM,CAACD,UAAP,CAAkBwD,MAAxC,EAA+C;CAAC,cAAM,IAAI3M,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAGkG,MAAM,IAAE,CAAR,IAAWA,MAAM,IAAE,CAAnB,IAAsBA,MAAM,IAAE,CAAjC,EAAmC;CAAC,cAAM,IAAIzP,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAAH,MAAAA,MAAM,CAACkG,QAAP,GAAgBlG,MAAM,CAACD,UAAP,CAAkBwD,MAAlB,CAAyBvD,MAAzB,EAAgCO,MAAhC,EAAuC8F,MAAvC,CAAhB;CAA+DrG,MAAAA,MAAM,CAAC+N,QAAP,GAAgB,EAAhB;CAAmB,aAAO/N,MAAM,CAACkG,QAAd;CAAuB,KAAz8d;CAA08djY,IAAAA,IAAI,EAAC,CAAC+R,MAAD,EAAQ/S,MAAR,EAAesT,MAAf,EAAsB9S,MAAtB,EAA6ByY,QAA7B,KAAwC;CAAC,UAAGzY,MAAM,GAAC,CAAP,IAAUyY,QAAQ,GAAC,CAAtB,EAAwB;CAAC,cAAM,IAAItP,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAGvJ,EAAE,CAACqX,QAAH,CAAYjO,MAAZ,CAAH,EAAuB;CAAC,cAAM,IAAIpJ,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B;;CAAA,UAAG,CAACH,MAAM,CAACuG,KAAP,GAAa,OAAd,MAAyB,CAA5B,EAA8B;CAAC,cAAM,IAAI3P,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B;;CAAA,UAAGvJ,EAAE,CAACmN,KAAH,CAAS/D,MAAM,CAACtU,IAAP,CAAYgX,IAArB,CAAH,EAA8B;CAAC,cAAM,IAAI9L,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAG,CAACH,MAAM,CAACD,UAAP,CAAkB9R,IAAtB,EAA2B;CAAC,cAAM,IAAI2I,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAIgO,OAAO,GAAC,OAAOjI,QAAP,IAAiB,WAA7B;;CAAyC,UAAG,CAACiI,OAAJ,EAAY;CAACjI,QAAAA,QAAQ,GAAClG,MAAM,CAACkG,QAAhB;CAAyB,OAAtC,MAA2C,IAAG,CAAClG,MAAM,CAACI,QAAX,EAAoB;CAAC,cAAM,IAAIxJ,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAIO,SAAS,GAACV,MAAM,CAACD,UAAP,CAAkB9R,IAAlB,CAAuB+R,MAAvB,EAA8B/S,MAA9B,EAAqCsT,MAArC,EAA4C9S,MAA5C,EAAmDyY,QAAnD,CAAd;CAA2E,UAAG,CAACiI,OAAJ,EAAYnO,MAAM,CAACkG,QAAP,IAAiBxF,SAAjB;CAA2B,aAAOA,SAAP;CAAiB,KAArhf;CAAshfI,IAAAA,KAAK,EAAC,CAACd,MAAD,EAAQ/S,MAAR,EAAesT,MAAf,EAAsB9S,MAAtB,EAA6ByY,QAA7B,EAAsCC,MAAtC,KAA+C;CAAC,UAAG1Y,MAAM,GAAC,CAAP,IAAUyY,QAAQ,GAAC,CAAtB,EAAwB;CAAC,cAAM,IAAItP,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAGvJ,EAAE,CAACqX,QAAH,CAAYjO,MAAZ,CAAH,EAAuB;CAAC,cAAM,IAAIpJ,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B;;CAAA,UAAG,CAACH,MAAM,CAACuG,KAAP,GAAa,OAAd,MAAyB,CAA5B,EAA8B;CAAC,cAAM,IAAI3P,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B;;CAAA,UAAGvJ,EAAE,CAACmN,KAAH,CAAS/D,MAAM,CAACtU,IAAP,CAAYgX,IAArB,CAAH,EAA8B;CAAC,cAAM,IAAI9L,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAG,CAACH,MAAM,CAACD,UAAP,CAAkBe,KAAtB,EAA4B;CAAC,cAAM,IAAIlK,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAGH,MAAM,CAACI,QAAP,IAAiBJ,MAAM,CAACuG,KAAP,GAAa,IAAjC,EAAsC;CAAC3P,QAAAA,EAAE,CAAC2M,MAAH,CAAUvD,MAAV,EAAiB,CAAjB,EAAmB,CAAnB;CAAsB;;CAAA,UAAImO,OAAO,GAAC,OAAOjI,QAAP,IAAiB,WAA7B;;CAAyC,UAAG,CAACiI,OAAJ,EAAY;CAACjI,QAAAA,QAAQ,GAAClG,MAAM,CAACkG,QAAhB;CAAyB,OAAtC,MAA2C,IAAG,CAAClG,MAAM,CAACI,QAAX,EAAoB;CAAC,cAAM,IAAIxJ,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAIiO,YAAY,GAACpO,MAAM,CAACD,UAAP,CAAkBe,KAAlB,CAAwBd,MAAxB,EAA+B/S,MAA/B,EAAsCsT,MAAtC,EAA6C9S,MAA7C,EAAoDyY,QAApD,EAA6DC,MAA7D,CAAjB;CAAsF,UAAG,CAACgI,OAAJ,EAAYnO,MAAM,CAACkG,QAAP,IAAiBkI,YAAjB;CAA8B,aAAOA,YAAP;CAAoB,KAAxrgB;CAAyrgB5K,IAAAA,QAAQ,EAAC,CAACxD,MAAD,EAAQO,MAAR,EAAe9S,MAAf,KAAwB;CAAC,UAAGmJ,EAAE,CAACqX,QAAH,CAAYjO,MAAZ,CAAH,EAAuB;CAAC,cAAM,IAAIpJ,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B;;CAAA,UAAGI,MAAM,GAAC,CAAP,IAAU9S,MAAM,IAAE,CAArB,EAAuB;CAAC,cAAM,IAAImJ,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAG,CAACH,MAAM,CAACuG,KAAP,GAAa,OAAd,MAAyB,CAA5B,EAA8B;CAAC,cAAM,IAAI3P,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B;;CAAA,UAAG,CAACvJ,EAAE,CAACqN,MAAH,CAAUjE,MAAM,CAACtU,IAAP,CAAYgX,IAAtB,CAAD,IAA8B,CAAC9L,EAAE,CAACmN,KAAH,CAAS/D,MAAM,CAACtU,IAAP,CAAYgX,IAArB,CAAlC,EAA6D;CAAC,cAAM,IAAI9L,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAG,CAACH,MAAM,CAACD,UAAP,CAAkByD,QAAtB,EAA+B;CAAC,cAAM,IAAI5M,EAAE,CAACuJ,UAAP,CAAkB,GAAlB,CAAN;CAA6B;;CAAAH,MAAAA,MAAM,CAACD,UAAP,CAAkByD,QAAlB,CAA2BxD,MAA3B,EAAkCO,MAAlC,EAAyC9S,MAAzC;CAAiD,KAApkhB;CAAqkhBgW,IAAAA,IAAI,EAAC,CAACzD,MAAD,EAAQ8B,OAAR,EAAgBrU,MAAhB,EAAuByY,QAAvB,EAAgCI,IAAhC,EAAqCC,KAArC,KAA6C;CAAC,UAAG,CAACD,IAAI,GAAC,CAAN,MAAW,CAAX,IAAc,CAACC,KAAK,GAAC,CAAP,MAAY,CAA1B,IAA6B,CAACvG,MAAM,CAACuG,KAAP,GAAa,OAAd,MAAyB,CAAzD,EAA2D;CAAC,cAAM,IAAI3P,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B;;CAAA,UAAG,CAACH,MAAM,CAACuG,KAAP,GAAa,OAAd,MAAyB,CAA5B,EAA8B;CAAC,cAAM,IAAI3P,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B;;CAAA,UAAG,CAACH,MAAM,CAACD,UAAP,CAAkB0D,IAAtB,EAA2B;CAAC,cAAM,IAAI7M,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,aAAOH,MAAM,CAACD,UAAP,CAAkB0D,IAAlB,CAAuBzD,MAAvB,EAA8B8B,OAA9B,EAAsCrU,MAAtC,EAA6CyY,QAA7C,EAAsDI,IAAtD,EAA2DC,KAA3D,CAAP;CAAyE,KAA14hB;CAA24hB7C,IAAAA,KAAK,EAAC,CAAC1D,MAAD,EAAQ/S,MAAR,EAAesT,MAAf,EAAsB9S,MAAtB,EAA6BiZ,SAA7B,KAAyC;CAAC,UAAG,CAAC1G,MAAD,IAAS,CAACA,MAAM,CAACD,UAAP,CAAkB2D,KAA/B,EAAqC;CAAC,eAAO,CAAP;CAAS;;CAAA,aAAO1D,MAAM,CAACD,UAAP,CAAkB2D,KAAlB,CAAwB1D,MAAxB,EAA+B/S,MAA/B,EAAsCsT,MAAtC,EAA6C9S,MAA7C,EAAoDiZ,SAApD,CAAP;CAAsE,KAAhjiB;CAAijiB2H,IAAAA,MAAM,EAACrO,MAAM,IAAE,CAAhkiB;CAAkkiBsO,IAAAA,KAAK,EAAC,CAACtO,MAAD,EAAQnV,GAAR,EAAYsQ,GAAZ,KAAkB;CAAC,UAAG,CAAC6E,MAAM,CAACD,UAAP,CAAkBuO,KAAtB,EAA4B;CAAC,cAAM,IAAI1X,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,aAAOH,MAAM,CAACD,UAAP,CAAkBuO,KAAlB,CAAwBtO,MAAxB,EAA+BnV,GAA/B,EAAmCsQ,GAAnC,CAAP;CAA+C,KAAnsiB;CAAosiB7N,IAAAA,QAAQ,EAAC,UAACvB,IAAD,EAAgB;CAAA,UAAV2b,IAAU,uEAAL,EAAK;CAACA,MAAAA,IAAI,CAACnB,KAAL,GAAWmB,IAAI,CAACnB,KAAL,IAAY,CAAvB;CAAyBmB,MAAAA,IAAI,CAAC6G,QAAL,GAAc7G,IAAI,CAAC6G,QAAL,IAAe,QAA7B;;CAAsC,UAAG7G,IAAI,CAAC6G,QAAL,KAAgB,MAAhB,IAAwB7G,IAAI,CAAC6G,QAAL,KAAgB,QAA3C,EAAoD;CAAC,cAAM,IAAI3iB,KAAJ,CAAU,4BAA0B8b,IAAI,CAAC6G,QAA/B,GAAwC,GAAlD,CAAN;CAA6D;;CAAA,UAAIvhB,GAAJ;CAAQ,UAAIgT,MAAM,GAACpJ,EAAE,CAACzH,IAAH,CAAQpD,IAAR,EAAa2b,IAAI,CAACnB,KAAlB,CAAX;CAAoC,UAAI2G,IAAI,GAACtW,EAAE,CAACsW,IAAH,CAAQnhB,IAAR,CAAT;CAAuB,UAAI0B,MAAM,GAACyf,IAAI,CAAC7Y,IAAhB;CAAqB,UAAIS,GAAG,GAAC,IAAI5H,UAAJ,CAAeO,MAAf,CAAR;CAA+BmJ,MAAAA,EAAE,CAAC3I,IAAH,CAAQ+R,MAAR,EAAelL,GAAf,EAAmB,CAAnB,EAAqBrH,MAArB,EAA4B,CAA5B;;CAA+B,UAAGia,IAAI,CAAC6G,QAAL,KAAgB,MAAnB,EAA0B;CAACvhB,QAAAA,GAAG,GAACqE,iBAAiB,CAACyD,GAAD,EAAK,CAAL,CAArB;CAA6B,OAAxD,MAA6D,IAAG4S,IAAI,CAAC6G,QAAL,KAAgB,QAAnB,EAA4B;CAACvhB,QAAAA,GAAG,GAAC8H,GAAJ;CAAQ;;CAAA8B,MAAAA,EAAE,CAACyJ,KAAH,CAASL,MAAT;CAAiB,aAAOhT,GAAP;CAAW,KAAnqjB;CAAoqjBwhB,IAAAA,SAAS,EAAC,UAACziB,IAAD,EAAMyB,IAAN,EAAqB;CAAA,UAAVka,IAAU,uEAAL,EAAK;CAACA,MAAAA,IAAI,CAACnB,KAAL,GAAWmB,IAAI,CAACnB,KAAL,IAAY,GAAvB;CAA2B,UAAIvG,MAAM,GAACpJ,EAAE,CAACzH,IAAH,CAAQpD,IAAR,EAAa2b,IAAI,CAACnB,KAAlB,EAAwBmB,IAAI,CAAChF,IAA7B,CAAX;;CAA8C,UAAG,OAAOlV,IAAP,IAAa,QAAhB,EAAyB;CAAC,YAAIsH,GAAG,GAAC,IAAI5H,UAAJ,CAAegG,eAAe,CAAC1F,IAAD,CAAf,GAAsB,CAArC,CAAR;CAAgD,YAAIihB,cAAc,GAACjc,iBAAiB,CAAChF,IAAD,EAAMsH,GAAN,EAAU,CAAV,EAAYA,GAAG,CAACrH,MAAhB,CAApC;CAA4DmJ,QAAAA,EAAE,CAACkK,KAAH,CAASd,MAAT,EAAgBlL,GAAhB,EAAoB,CAApB,EAAsB2Z,cAAtB,EAAqC1hB,SAArC,EAA+C2a,IAAI,CAACvB,MAApD;CAA4D,OAAlM,MAAuM,IAAGC,WAAW,CAACsI,MAAZ,CAAmBlhB,IAAnB,CAAH,EAA4B;CAACoJ,QAAAA,EAAE,CAACkK,KAAH,CAASd,MAAT,EAAgBxS,IAAhB,EAAqB,CAArB,EAAuBA,IAAI,CAACmhB,UAA5B,EAAuC5hB,SAAvC,EAAiD2a,IAAI,CAACvB,MAAtD;CAA8D,OAA3F,MAA+F;CAAC,cAAM,IAAIva,KAAJ,CAAU,uBAAV,CAAN;CAAyC;;CAAAgL,MAAAA,EAAE,CAACyJ,KAAH,CAASL,MAAT;CAAiB,KAA9mkB;CAA+mkB1B,IAAAA,GAAG,EAAC,MAAI1H,EAAE,CAAC0Q,WAA1nkB;CAAsokBsH,IAAAA,KAAK,EAAC7iB,IAAI,IAAE;CAAC,UAAIiX,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,EAAmB;CAACoc,QAAAA,MAAM,EAAC;CAAR,OAAnB,CAAX;;CAA6C,UAAGnF,MAAM,CAACtX,IAAP,KAAc,IAAjB,EAAsB;CAAC,cAAM,IAAIkL,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAG,CAACvJ,EAAE,CAACmN,KAAH,CAASf,MAAM,CAACtX,IAAP,CAAYgX,IAArB,CAAJ,EAA+B;CAAC,cAAM,IAAI9L,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,UAAI2I,OAAO,GAAClS,EAAE,CAAC6S,eAAH,CAAmBzG,MAAM,CAACtX,IAA1B,EAA+B,GAA/B,CAAZ;;CAAgD,UAAGod,OAAH,EAAW;CAAC,cAAM,IAAIlS,EAAE,CAACuJ,UAAP,CAAkB2I,OAAlB,CAAN;CAAiC;;CAAAlS,MAAAA,EAAE,CAAC0Q,WAAH,GAAetE,MAAM,CAACjX,IAAtB;CAA2B,KAAv6kB;CAAw6kB8iB,IAAAA,wBAAwB,EAAC,MAAI;CAACjY,MAAAA,EAAE,CAAC0V,KAAH,CAAS,MAAT;CAAiB1V,MAAAA,EAAE,CAAC0V,KAAH,CAAS,OAAT;CAAkB1V,MAAAA,EAAE,CAAC0V,KAAH,CAAS,gBAAT;CAA2B,KAApglB;CAAqglBwC,IAAAA,oBAAoB,EAAC,MAAI;CAAClY,MAAAA,EAAE,CAAC0V,KAAH,CAAS,MAAT;CAAiB1V,MAAAA,EAAE,CAACkJ,cAAH,CAAkBlJ,EAAE,CAACqU,OAAH,CAAW,CAAX,EAAa,CAAb,CAAlB,EAAkC;CAAChd,QAAAA,IAAI,EAAC,MAAI,CAAV;CAAY6S,QAAAA,KAAK,EAAC,CAACd,MAAD,EAAQ/S,MAAR,EAAesT,MAAf,EAAsB9S,MAAtB,EAA6B+S,GAA7B,KAAmC/S;CAArD,OAAlC;CAAgGmJ,MAAAA,EAAE,CAAC8V,KAAH,CAAS,WAAT,EAAqB9V,EAAE,CAACqU,OAAH,CAAW,CAAX,EAAa,CAAb,CAArB;CAAsC3L,MAAAA,GAAG,CAACG,QAAJ,CAAa7I,EAAE,CAACqU,OAAH,CAAW,CAAX,EAAa,CAAb,CAAb,EAA6B3L,GAAG,CAAC0B,eAAjC;CAAkD1B,MAAAA,GAAG,CAACG,QAAJ,CAAa7I,EAAE,CAACqU,OAAH,CAAW,CAAX,EAAa,CAAb,CAAb,EAA6B3L,GAAG,CAACsC,gBAAjC;CAAmDhL,MAAAA,EAAE,CAAC8V,KAAH,CAAS,UAAT,EAAoB9V,EAAE,CAACqU,OAAH,CAAW,CAAX,EAAa,CAAb,CAApB;CAAqCrU,MAAAA,EAAE,CAAC8V,KAAH,CAAS,WAAT,EAAqB9V,EAAE,CAACqU,OAAH,CAAW,CAAX,EAAa,CAAb,CAArB;CAAsC,UAAI8D,aAAa,GAAClR,eAAe,EAAjC;CAAoCjH,MAAAA,EAAE,CAACoY,YAAH,CAAgB,MAAhB,EAAuB,QAAvB,EAAgCD,aAAhC;CAA+CnY,MAAAA,EAAE,CAACoY,YAAH,CAAgB,MAAhB,EAAuB,SAAvB,EAAiCD,aAAjC;CAAgDnY,MAAAA,EAAE,CAAC0V,KAAH,CAAS,UAAT;CAAqB1V,MAAAA,EAAE,CAAC0V,KAAH,CAAS,cAAT;CAAyB,KAAvhmB;CAAwhmB2C,IAAAA,wBAAwB,EAAC,MAAI;CAACrY,MAAAA,EAAE,CAAC0V,KAAH,CAAS,OAAT;CAAkB,UAAI4C,SAAS,GAACtY,EAAE,CAAC0V,KAAH,CAAS,YAAT,CAAd;CAAqC1V,MAAAA,EAAE,CAAC0V,KAAH,CAAS,eAAT;CAA0B1V,MAAAA,EAAE,CAAC2L,KAAH,CAAS;CAACA,QAAAA,KAAK,EAAC,MAAI;CAAC,cAAI7W,IAAI,GAACkL,EAAE,CAAC4L,UAAH,CAAc0M,SAAd,EAAwB,IAAxB,EAA6B,QAAM,GAAnC,EAAuC,EAAvC,CAAT;CAAoDxjB,UAAAA,IAAI,CAACoX,QAAL,GAAc;CAACE,YAAAA,MAAM,EAAC,CAACP,MAAD,EAAQzJ,IAAR,KAAe;CAAC,kBAAIsI,EAAE,GAAC,CAACtI,IAAR;CAAa,kBAAIgH,MAAM,GAACpJ,EAAE,CAACuT,SAAH,CAAa7I,EAAb,CAAX;CAA4B,kBAAG,CAACtB,MAAJ,EAAW,MAAM,IAAIpJ,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B,kBAAInT,GAAG,GAAC;CAACyV,gBAAAA,MAAM,EAAC,IAAR;CAAaF,gBAAAA,KAAK,EAAC;CAACgG,kBAAAA,UAAU,EAAC;CAAZ,iBAAnB;CAAuCzF,gBAAAA,QAAQ,EAAC;CAACc,kBAAAA,QAAQ,EAAC,MAAI5D,MAAM,CAACjU;CAArB;CAAhD,eAAR;CAAoFiB,cAAAA,GAAG,CAACyV,MAAJ,GAAWzV,GAAX;CAAe,qBAAOA,GAAP;CAAW;CAArN,WAAd;CAAqO,iBAAOtB,IAAP;CAAY;CAAjT,OAAT,EAA4T,EAA5T,EAA+T,eAA/T;CAAgV,KAAv9mB;CAAw9mByjB,IAAAA,qBAAqB,EAAC,MAAI;CAAC,UAAG9kB,MAAM,CAAC,OAAD,CAAT,EAAmB;CAACuM,QAAAA,EAAE,CAACoY,YAAH,CAAgB,MAAhB,EAAuB,OAAvB,EAA+B3kB,MAAM,CAAC,OAAD,CAArC;CAAgD,OAApE,MAAwE;CAACuM,QAAAA,EAAE,CAAC0M,OAAH,CAAW,UAAX,EAAsB,YAAtB;CAAoC;;CAAA,UAAGjZ,MAAM,CAAC,QAAD,CAAT,EAAoB;CAACuM,QAAAA,EAAE,CAACoY,YAAH,CAAgB,MAAhB,EAAuB,QAAvB,EAAgC,IAAhC,EAAqC3kB,MAAM,CAAC,QAAD,CAA3C;CAAuD,OAA5E,MAAgF;CAACuM,QAAAA,EAAE,CAAC0M,OAAH,CAAW,UAAX,EAAsB,aAAtB;CAAqC;;CAAA,UAAGjZ,MAAM,CAAC,QAAD,CAAT,EAAoB;CAACuM,QAAAA,EAAE,CAACoY,YAAH,CAAgB,MAAhB,EAAuB,QAAvB,EAAgC,IAAhC,EAAqC3kB,MAAM,CAAC,QAAD,CAA3C;CAAuD,OAA5E,MAAgF;CAACuM,QAAAA,EAAE,CAAC0M,OAAH,CAAW,WAAX,EAAuB,aAAvB;CAAsC;;CAAA,UAAIjC,KAAK,GAACzK,EAAE,CAACzH,IAAH,CAAQ,YAAR,EAAqB,CAArB,CAAV;CAAkC,UAAIigB,MAAM,GAACxY,EAAE,CAACzH,IAAH,CAAQ,aAAR,EAAsB,CAAtB,CAAX;CAAoC,UAAIkgB,MAAM,GAACzY,EAAE,CAACzH,IAAH,CAAQ,aAAR,EAAsB,CAAtB,CAAX;CAAoChC,MAAAA,MAAM,CAACkU,KAAK,CAACC,EAAN,KAAW,CAAZ,EAAc,+BAA6BD,KAAK,CAACC,EAAnC,GAAsC,GAApD,CAAN;CAA+DnU,MAAAA,MAAM,CAACiiB,MAAM,CAAC9N,EAAP,KAAY,CAAb,EAAe,gCAA8B8N,MAAM,CAAC9N,EAArC,GAAwC,GAAvD,CAAN;CAAkEnU,MAAAA,MAAM,CAACkiB,MAAM,CAAC/N,EAAP,KAAY,CAAb,EAAe,gCAA8B+N,MAAM,CAAC/N,EAArC,GAAwC,GAAvD,CAAN;CAAkE,KAA1noB;CAA2noBgO,IAAAA,gBAAgB,EAAC,MAAI;CAAC,UAAG1Y,EAAE,CAACuJ,UAAN,EAAiB;;CAAOvJ,MAAAA,EAAE,CAACuJ,UAAH,GAAc,SAASA,UAAT,CAAoB0J,KAApB,EAA0Bne,IAA1B,EAA+B;CAAC,aAAKA,IAAL,GAAUA,IAAV;;CAAe,aAAK6jB,QAAL,GAAc,UAAS1F,KAAT,EAAe;CAAC,eAAKA,KAAL,GAAWA,KAAX;;CAAiB,eAAI,IAAI/D,GAAR,IAAekB,WAAf,EAA2B;CAAC,gBAAGA,WAAW,CAAClB,GAAD,CAAX,KAAmB+D,KAAtB,EAA4B;CAAC,mBAAK2F,IAAL,GAAU1J,GAAV;CAAc;CAAM;CAAC;CAAC,SAA9H;;CAA+H,aAAKyJ,QAAL,CAAc1F,KAAd;CAAqB,aAAK/e,OAAL,GAAaic,cAAc,CAAC8C,KAAD,CAA3B;;CAAmC,YAAG,KAAKjO,KAAR,EAAc;CAAC5Q,UAAAA,MAAM,CAACmF,cAAP,CAAsB,IAAtB,EAA2B,OAA3B,EAAmC;CAAC2L,YAAAA,KAAK,EAAE,IAAIlQ,KAAJ,EAAD,CAAYgQ,KAAnB;CAAyB6T,YAAAA,QAAQ,EAAC;CAAlC,WAAnC;CAA4E,eAAK7T,KAAL,GAAWN,WAAW,CAAC,KAAKM,KAAN,CAAtB;CAAmC;CAAC,OAAnX;;CAAoXhF,MAAAA,EAAE,CAACuJ,UAAH,CAAc3K,SAAd,GAAwB,IAAI5J,KAAJ,EAAxB;CAAkCgL,MAAAA,EAAE,CAACuJ,UAAH,CAAc3K,SAAd,CAAwBka,WAAxB,GAAoC9Y,EAAE,CAACuJ,UAAvC;CAAkD,OAAC,EAAD,EAAK2L,OAAL,CAAa0D,IAAI,IAAE;CAAC5Y,QAAAA,EAAE,CAAC2O,aAAH,CAAiBiK,IAAjB,IAAuB,IAAI5Y,EAAE,CAACuJ,UAAP,CAAkBqP,IAAlB,CAAvB;CAA+C5Y,QAAAA,EAAE,CAAC2O,aAAH,CAAiBiK,IAAjB,EAAuB5T,KAAvB,GAA6B,2BAA7B;CAAyD,OAA5H;CAA8H,KAA/upB;CAAgvpB+T,IAAAA,UAAU,EAAC,MAAI;CAAC/Y,MAAAA,EAAE,CAAC0Y,gBAAH;CAAsB1Y,MAAAA,EAAE,CAACyQ,SAAH,GAAa,IAAI7J,KAAJ,CAAU,IAAV,CAAb;CAA6B5G,MAAAA,EAAE,CAAC2L,KAAH,CAASF,KAAT,EAAe,EAAf,EAAkB,GAAlB;CAAuBzL,MAAAA,EAAE,CAACiY,wBAAH;CAA8BjY,MAAAA,EAAE,CAACkY,oBAAH;CAA0BlY,MAAAA,EAAE,CAACqY,wBAAH;CAA8BrY,MAAAA,EAAE,CAAC2Q,WAAH,GAAe;CAAC,iBAAQlF;CAAT,OAAf;CAA+B,KAA/7pB;CAAg8pBxL,IAAAA,IAAI,EAAC,CAAC+I,KAAD,EAAOC,MAAP,EAAcvR,KAAd,KAAsB;CAACnB,MAAAA,MAAM,CAAC,CAACyJ,EAAE,CAACC,IAAH,CAAQC,WAAV,EAAsB,8KAAtB,CAAN;CAA4MF,MAAAA,EAAE,CAACC,IAAH,CAAQC,WAAR,GAAoB,IAApB;CAAyBF,MAAAA,EAAE,CAAC0Y,gBAAH;CAAsBjlB,MAAAA,MAAM,CAAC,OAAD,CAAN,GAAgBuV,KAAK,IAAEvV,MAAM,CAAC,OAAD,CAA7B;CAAuCA,MAAAA,MAAM,CAAC,QAAD,CAAN,GAAiBwV,MAAM,IAAExV,MAAM,CAAC,QAAD,CAA/B;CAA0CA,MAAAA,MAAM,CAAC,QAAD,CAAN,GAAiBiE,KAAK,IAAEjE,MAAM,CAAC,QAAD,CAA9B;CAAyCuM,MAAAA,EAAE,CAACuY,qBAAH;CAA2B,KAA52qB;CAA62qBS,IAAAA,IAAI,EAAC,MAAI;CAAChZ,MAAAA,EAAE,CAACC,IAAH,CAAQC,WAAR,GAAoB,KAApB;;CAA0B+Y,MAAAA,aAAa;;CAAG,WAAI,IAAIhd,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC+D,EAAE,CAACuQ,OAAH,CAAW1Z,MAAzB,EAAgCoF,CAAC,EAAjC,EAAoC;CAAC,YAAImN,MAAM,GAACpJ,EAAE,CAACuQ,OAAH,CAAWtU,CAAX,CAAX;;CAAyB,YAAG,CAACmN,MAAJ,EAAW;CAAC;CAAS;;CAAApJ,QAAAA,EAAE,CAACyJ,KAAH,CAASL,MAAT;CAAiB;CAAC,KAAtgrB;CAAugrB8P,IAAAA,OAAO,EAAC,CAACC,OAAD,EAASC,QAAT,KAAoB;CAAC,UAAItN,IAAI,GAAC,CAAT;CAAW,UAAGqN,OAAH,EAAWrN,IAAI,IAAE,MAAI,EAAV;CAAa,UAAGsN,QAAH,EAAYtN,IAAI,IAAE,GAAN;CAAU,aAAOA,IAAP;CAAY,KAAzmrB;CAA0mrBuN,IAAAA,UAAU,EAAC,CAAClkB,IAAD,EAAMmkB,mBAAN,KAA4B;CAAC,UAAIljB,GAAG,GAAC4J,EAAE,CAACuZ,WAAH,CAAepkB,IAAf,EAAoBmkB,mBAApB,CAAR;;CAAiD,UAAGljB,GAAG,CAACojB,MAAP,EAAc;CAAC,eAAOpjB,GAAG,CAACud,MAAX;CAAkB,OAAjC,MAAqC;CAAC,eAAO,IAAP;CAAY;CAAC,KAAtvrB;CAAuvrB4F,IAAAA,WAAW,EAAC,CAACpkB,IAAD,EAAMmkB,mBAAN,KAA4B;CAAC,UAAG;CAAC,YAAIlN,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,EAAmB;CAACoc,UAAAA,MAAM,EAAC,CAAC+H;CAAT,SAAnB,CAAX;CAA6DnkB,QAAAA,IAAI,GAACiX,MAAM,CAACjX,IAAZ;CAAiB,OAAlF,CAAkF,OAAM0M,CAAN,EAAQ;;CAAE,UAAIzL,GAAG,GAAC;CAACsb,QAAAA,MAAM,EAAC,KAAR;CAAc8H,QAAAA,MAAM,EAAC,KAArB;CAA2B9hB,QAAAA,KAAK,EAAC,CAAjC;CAAmC0K,QAAAA,IAAI,EAAC,IAAxC;CAA6CjN,QAAAA,IAAI,EAAC,IAAlD;CAAuDwe,QAAAA,MAAM,EAAC,IAA9D;CAAmE8F,QAAAA,YAAY,EAAC,KAAhF;CAAsFC,QAAAA,UAAU,EAAC,IAAjG;CAAsGC,QAAAA,YAAY,EAAC;CAAnH,OAAR;;CAAiI,UAAG;CAAC,YAAIvN,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,EAAmB;CAAC0W,UAAAA,MAAM,EAAC;CAAR,SAAnB,CAAX;CAA6CzV,QAAAA,GAAG,CAACqjB,YAAJ,GAAiB,IAAjB;CAAsBrjB,QAAAA,GAAG,CAACsjB,UAAJ,GAAetN,MAAM,CAACjX,IAAtB;CAA2BiB,QAAAA,GAAG,CAACujB,YAAJ,GAAiBvN,MAAM,CAACtX,IAAxB;CAA6BsB,QAAAA,GAAG,CAACgM,IAAJ,GAASgD,IAAI,CAACqB,QAAL,CAActR,IAAd,CAAT;CAA6BiX,QAAAA,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,EAAmB;CAACoc,UAAAA,MAAM,EAAC,CAAC+H;CAAT,SAAnB,CAAP;CAAyDljB,QAAAA,GAAG,CAACojB,MAAJ,GAAW,IAAX;CAAgBpjB,QAAAA,GAAG,CAACjB,IAAJ,GAASiX,MAAM,CAACjX,IAAhB;CAAqBiB,QAAAA,GAAG,CAACud,MAAJ,GAAWvH,MAAM,CAACtX,IAAlB;CAAuBsB,QAAAA,GAAG,CAACgM,IAAJ,GAASgK,MAAM,CAACtX,IAAP,CAAYsN,IAArB;CAA0BhM,QAAAA,GAAG,CAACsb,MAAJ,GAAWtF,MAAM,CAACjX,IAAP,KAAc,GAAzB;CAA6B,OAAxU,CAAwU,OAAM0M,CAAN,EAAQ;CAACzL,QAAAA,GAAG,CAACsB,KAAJ,GAAUmK,CAAC,CAACoR,KAAZ;CAAkB;;CAAA,aAAO7c,GAAP;CAAW,KAA32sB;CAA42sBwjB,IAAAA,UAAU,EAAC,CAAC/N,MAAD,EAAQ1W,IAAR,EAAagkB,OAAb,EAAqBC,QAArB,KAAgC;CAACvN,MAAAA,MAAM,GAAC,OAAOA,MAAP,IAAe,QAAf,GAAwBA,MAAxB,GAA+B7L,EAAE,CAACyR,OAAH,CAAW5F,MAAX,CAAtC;CAAyD,UAAIlG,KAAK,GAACxQ,IAAI,CAACgR,KAAL,CAAW,GAAX,EAAgB0T,OAAhB,EAAV;;CAAoC,aAAMlU,KAAK,CAAC9O,MAAZ,EAAmB;CAAC,YAAIijB,IAAI,GAACnU,KAAK,CAACgP,GAAN,EAAT;CAAqB,YAAG,CAACmF,IAAJ,EAAS;CAAS,YAAI5I,OAAO,GAAC9L,IAAI,CAAC0B,KAAL,CAAW+E,MAAX,EAAkBiO,IAAlB,CAAZ;;CAAoC,YAAG;CAAC9Z,UAAAA,EAAE,CAAC0V,KAAH,CAASxE,OAAT;CAAkB,SAAtB,CAAsB,OAAMrP,CAAN,EAAQ;;CAAEgK,QAAAA,MAAM,GAACqF,OAAP;CAAe;;CAAA,aAAOA,OAAP;CAAe,KAAlptB;CAAmptB6I,IAAAA,UAAU,EAAC,CAAClO,MAAD,EAAQzJ,IAAR,EAAa4X,UAAb,EAAwBb,OAAxB,EAAgCC,QAAhC,KAA2C;CAAC,UAAIjkB,IAAI,GAACiQ,IAAI,CAAC0B,KAAL,CAAW,OAAO+E,MAAP,IAAe,QAAf,GAAwBA,MAAxB,GAA+B7L,EAAE,CAACyR,OAAH,CAAW5F,MAAX,CAA1C,EAA6DzJ,IAA7D,CAAT;CAA4E,UAAI0J,IAAI,GAAC9L,EAAE,CAACkZ,OAAH,CAAWC,OAAX,EAAmBC,QAAnB,CAAT;CAAsC,aAAOpZ,EAAE,CAACyV,MAAH,CAAUtgB,IAAV,EAAe2W,IAAf,CAAP;CAA4B,KAAx1tB;CAAy1tBmO,IAAAA,cAAc,EAAC,CAACpO,MAAD,EAAQzJ,IAAR,EAAaxL,IAAb,EAAkBuiB,OAAlB,EAA0BC,QAA1B,EAAmC7J,MAAnC,KAA4C;CAAC,UAAIpa,IAAI,GAACiN,IAAT;;CAAc,UAAGyJ,MAAH,EAAU;CAACA,QAAAA,MAAM,GAAC,OAAOA,MAAP,IAAe,QAAf,GAAwBA,MAAxB,GAA+B7L,EAAE,CAACyR,OAAH,CAAW5F,MAAX,CAAtC;CAAyD1W,QAAAA,IAAI,GAACiN,IAAI,GAACgD,IAAI,CAAC0B,KAAL,CAAW+E,MAAX,EAAkBzJ,IAAlB,CAAD,GAAyByJ,MAAlC;CAAyC;;CAAA,UAAIC,IAAI,GAAC9L,EAAE,CAACkZ,OAAH,CAAWC,OAAX,EAAmBC,QAAnB,CAAT;CAAsC,UAAItkB,IAAI,GAACkL,EAAE,CAACyV,MAAH,CAAUtgB,IAAV,EAAe2W,IAAf,CAAT;;CAA8B,UAAGlV,IAAH,EAAQ;CAAC,YAAG,OAAOA,IAAP,IAAa,QAAhB,EAAyB;CAAC,cAAIoR,GAAG,GAAC,IAAIpB,KAAJ,CAAUhQ,IAAI,CAACC,MAAf,CAAR;;CAA+B,eAAI,IAAIoF,CAAC,GAAC,CAAN,EAAQM,GAAG,GAAC3F,IAAI,CAACC,MAArB,EAA4BoF,CAAC,GAACM,GAA9B,EAAkC,EAAEN,CAApC,EAAsC+L,GAAG,CAAC/L,CAAD,CAAH,GAAOrF,IAAI,CAACuF,UAAL,CAAgBF,CAAhB,CAAP;;CAA0BrF,UAAAA,IAAI,GAACoR,GAAL;CAAS;;CAAAhI,QAAAA,EAAE,CAACyW,KAAH,CAAS3hB,IAAT,EAAcgX,IAAI,GAAC,GAAnB;CAAwB,YAAI1C,MAAM,GAACpJ,EAAE,CAACzH,IAAH,CAAQzD,IAAR,EAAa,GAAb,CAAX;CAA6BkL,QAAAA,EAAE,CAACkK,KAAH,CAASd,MAAT,EAAgBxS,IAAhB,EAAqB,CAArB,EAAuBA,IAAI,CAACC,MAA5B,EAAmC,CAAnC,EAAqC0Y,MAArC;CAA6CvP,QAAAA,EAAE,CAACyJ,KAAH,CAASL,MAAT;CAAiBpJ,QAAAA,EAAE,CAACyW,KAAH,CAAS3hB,IAAT,EAAcgX,IAAd;CAAoB;;CAAA,aAAOhX,IAAP;CAAY,KAAl3uB;CAAm3uBsjB,IAAAA,YAAY,EAAC,CAACvM,MAAD,EAAQzJ,IAAR,EAAa4G,KAAb,EAAmBC,MAAnB,KAA4B;CAAC,UAAI9T,IAAI,GAACiQ,IAAI,CAAC0B,KAAL,CAAW,OAAO+E,MAAP,IAAe,QAAf,GAAwBA,MAAxB,GAA+B7L,EAAE,CAACyR,OAAH,CAAW5F,MAAX,CAA1C,EAA6DzJ,IAA7D,CAAT;CAA4E,UAAI0J,IAAI,GAAC9L,EAAE,CAACkZ,OAAH,CAAW,CAAC,CAAClQ,KAAb,EAAmB,CAAC,CAACC,MAArB,CAAT;CAAsC,UAAG,CAACjJ,EAAE,CAACoY,YAAH,CAAgBjE,KAApB,EAA0BnU,EAAE,CAACoY,YAAH,CAAgBjE,KAAhB,GAAsB,EAAtB;CAAyB,UAAIrL,GAAG,GAAC9I,EAAE,CAACqU,OAAH,CAAWrU,EAAE,CAACoY,YAAH,CAAgBjE,KAAhB,EAAX,EAAmC,CAAnC,CAAR;CAA8CnU,MAAAA,EAAE,CAACkJ,cAAH,CAAkBJ,GAAlB,EAAsB;CAACvQ,QAAAA,IAAI,EAAC6Q,MAAM,IAAE;CAACA,UAAAA,MAAM,CAACI,QAAP,GAAgB,KAAhB;CAAsB,SAArC;CAAsCC,QAAAA,KAAK,EAACL,MAAM,IAAE;CAAC,cAAGH,MAAM,IAAEA,MAAM,CAAC5S,MAAf,IAAuB4S,MAAM,CAAC5S,MAAP,CAAcQ,MAAxC,EAA+C;CAACoS,YAAAA,MAAM,CAAC,EAAD,CAAN;CAAW;CAAC,SAAjH;CAAkH5R,QAAAA,IAAI,EAAC,CAAC+R,MAAD,EAAQ/S,MAAR,EAAesT,MAAf,EAAsB9S,MAAtB,EAA6B+S,GAA7B,KAAmC;CAAC,cAAIE,SAAS,GAAC,CAAd;;CAAgB,eAAI,IAAI7N,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACpF,MAAd,EAAqBoF,CAAC,EAAtB,EAAyB;CAAC,gBAAI4H,MAAJ;;CAAW,gBAAG;CAACA,cAAAA,MAAM,GAACmF,KAAK,EAAZ;CAAe,aAAnB,CAAmB,OAAMnH,CAAN,EAAQ;CAAC,oBAAM,IAAI7B,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,gBAAG1F,MAAM,KAAG1N,SAAT,IAAoB2T,SAAS,KAAG,CAAnC,EAAqC;CAAC,oBAAM,IAAI9J,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B;;CAAA,gBAAG1F,MAAM,KAAG,IAAT,IAAeA,MAAM,KAAG1N,SAA3B,EAAqC;CAAM2T,YAAAA,SAAS;CAAGzT,YAAAA,MAAM,CAACsT,MAAM,GAAC1N,CAAR,CAAN,GAAiB4H,MAAjB;CAAwB;;CAAA,cAAGiG,SAAH,EAAa;CAACV,YAAAA,MAAM,CAACtU,IAAP,CAAYiV,SAAZ,GAAsBC,IAAI,CAACC,GAAL,EAAtB;CAAiC;;CAAA,iBAAOH,SAAP;CAAiB,SAAxd;CAAydI,QAAAA,KAAK,EAAC,CAACd,MAAD,EAAQ/S,MAAR,EAAesT,MAAf,EAAsB9S,MAAtB,EAA6B+S,GAA7B,KAAmC;CAAC,eAAI,IAAI3N,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACpF,MAAd,EAAqBoF,CAAC,EAAtB,EAAyB;CAAC,gBAAG;CAACgN,cAAAA,MAAM,CAAC5S,MAAM,CAACsT,MAAM,GAAC1N,CAAR,CAAP,CAAN;CAAyB,aAA7B,CAA6B,OAAM4F,CAAN,EAAQ;CAAC,oBAAM,IAAI7B,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;CAAC;;CAAA,cAAG1S,MAAH,EAAU;CAACuS,YAAAA,MAAM,CAACtU,IAAP,CAAYiV,SAAZ,GAAsBC,IAAI,CAACC,GAAL,EAAtB;CAAiC;;CAAA,iBAAOhO,CAAP;CAAS;CAArpB,OAAtB;CAA8qB,aAAO+D,EAAE,CAAC8V,KAAH,CAAS3gB,IAAT,EAAc2W,IAAd,EAAmBhD,GAAnB,CAAP;CAA+B,KAA7zwB;CAA8zwBoR,IAAAA,aAAa,EAACC,GAAG,IAAE;CAAC,UAAGA,GAAG,CAACC,QAAJ,IAAcD,GAAG,CAACE,QAAlB,IAA4BF,GAAG,CAACpN,IAAhC,IAAsCoN,GAAG,CAAC/M,QAA7C,EAAsD,OAAO,IAAP;;CAAY,UAAG,OAAO9U,cAAP,IAAuB,WAA1B,EAAsC;CAAC,cAAM,IAAItD,KAAJ,CAAU,kMAAV,CAAN;CAAoN,OAA3P,MAAgQ,IAAGI,KAAH,EAAS;CAAC,YAAG;CAAC+kB,UAAAA,GAAG,CAAC/M,QAAJ,GAAatC,kBAAkB,CAAC1V,KAAK,CAAC+kB,GAAG,CAAC/hB,GAAL,CAAN,EAAgB,IAAhB,CAA/B;CAAqD+hB,UAAAA,GAAG,CAAC7M,SAAJ,GAAc6M,GAAG,CAAC/M,QAAJ,CAAavW,MAA3B;CAAkC,SAA3F,CAA2F,OAAMgL,CAAN,EAAQ;CAAC,gBAAM,IAAI7B,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;CAAC,OAA3I,MAA+I;CAAC,cAAM,IAAIvU,KAAJ,CAAU,+CAAV,CAAN;CAAiE;CAAC,KAAt2xB;CAAu2xBslB,IAAAA,cAAc,EAAC,CAACzO,MAAD,EAAQzJ,IAAR,EAAahK,GAAb,EAAiB+gB,OAAjB,EAAyBC,QAAzB,KAAoC;CAAC,eAASmB,cAAT,GAAyB;CAAC,aAAKC,WAAL,GAAiB,KAAjB;CAAuB,aAAKC,MAAL,GAAY,EAAZ;CAAe;;CAAAF,MAAAA,cAAc,CAAC3b,SAAf,CAAyBnF,GAAzB,GAA6B,SAASihB,kBAAT,CAA4B/f,GAA5B,EAAgC;CAAC,YAAGA,GAAG,GAAC,KAAK9D,MAAL,GAAY,CAAhB,IAAmB8D,GAAG,GAAC,CAA1B,EAA4B;CAAC,iBAAOxE,SAAP;CAAiB;;CAAA,YAAIwkB,WAAW,GAAChgB,GAAG,GAAC,KAAKigB,SAAzB;CAAmC,YAAIC,QAAQ,GAAClgB,GAAG,GAAC,KAAKigB,SAAT,GAAmB,CAAhC;CAAkC,eAAO,KAAKE,MAAL,CAAYD,QAAZ,EAAsBF,WAAtB,CAAP;CAA0C,OAA3N;;CAA4NJ,MAAAA,cAAc,CAAC3b,SAAf,CAAyBmc,aAAzB,GAAuC,SAASC,4BAAT,CAAsCF,MAAtC,EAA6C;CAAC,aAAKA,MAAL,GAAYA,MAAZ;CAAmB,OAAxG;;CAAyGP,MAAAA,cAAc,CAAC3b,SAAf,CAAyBqc,WAAzB,GAAqC,SAASC,0BAAT,GAAqC;CAAC,YAAI7iB,GAAG,GAAC,IAAIC,cAAJ,EAAR;CAA2BD,QAAAA,GAAG,CAACE,IAAJ,CAAS,MAAT,EAAgBH,GAAhB,EAAoB,KAApB;CAA2BC,QAAAA,GAAG,CAACG,IAAJ,CAAS,IAAT;CAAe,YAAG,EAAEH,GAAG,CAACO,MAAJ,IAAY,GAAZ,IAAiBP,GAAG,CAACO,MAAJ,GAAW,GAA5B,IAAiCP,GAAG,CAACO,MAAJ,KAAa,GAAhD,CAAH,EAAwD,MAAM,IAAI5D,KAAJ,CAAU,mBAAiBoD,GAAjB,GAAqB,YAArB,GAAkCC,GAAG,CAACO,MAAhD,CAAN;CAA8D,YAAIuiB,UAAU,GAACC,MAAM,CAAC/iB,GAAG,CAACgjB,iBAAJ,CAAsB,gBAAtB,CAAD,CAArB;CAA+D,YAAIC,MAAJ;CAAW,YAAIC,cAAc,GAAC,CAACD,MAAM,GAACjjB,GAAG,CAACgjB,iBAAJ,CAAsB,eAAtB,CAAR,KAAiDC,MAAM,KAAG,OAA7E;CAAqF,YAAIE,QAAQ,GAAC,CAACF,MAAM,GAACjjB,GAAG,CAACgjB,iBAAJ,CAAsB,kBAAtB,CAAR,KAAoDC,MAAM,KAAG,MAA1E;CAAiF,YAAIV,SAAS,GAAC,OAAK,IAAnB;CAAwB,YAAG,CAACW,cAAJ,EAAmBX,SAAS,GAACO,UAAV;;CAAqB,YAAIM,KAAK,GAAC,CAAC5T,IAAD,EAAMC,EAAN,KAAW;CAAC,cAAGD,IAAI,GAACC,EAAR,EAAW,MAAM,IAAI9S,KAAJ,CAAU,oBAAkB6S,IAAlB,GAAuB,IAAvB,GAA4BC,EAA5B,GAA+B,0BAAzC,CAAN;CAA2E,cAAGA,EAAE,GAACqT,UAAU,GAAC,CAAjB,EAAmB,MAAM,IAAInmB,KAAJ,CAAU,UAAQmmB,UAAR,GAAmB,qCAA7B,CAAN;CAA0E,cAAI9iB,GAAG,GAAC,IAAIC,cAAJ,EAAR;CAA2BD,UAAAA,GAAG,CAACE,IAAJ,CAAS,KAAT,EAAeH,GAAf,EAAmB,KAAnB;CAA0B,cAAG+iB,UAAU,KAAGP,SAAhB,EAA0BviB,GAAG,CAACqjB,gBAAJ,CAAqB,OAArB,EAA6B,WAAS7T,IAAT,GAAc,GAAd,GAAkBC,EAA/C;CAAmDzP,UAAAA,GAAG,CAACK,YAAJ,GAAiB,aAAjB;;CAA+B,cAAGL,GAAG,CAACsjB,gBAAP,EAAwB;CAACtjB,YAAAA,GAAG,CAACsjB,gBAAJ,CAAqB,oCAArB;CAA2D;;CAAAtjB,UAAAA,GAAG,CAACG,IAAJ,CAAS,IAAT;CAAe,cAAG,EAAEH,GAAG,CAACO,MAAJ,IAAY,GAAZ,IAAiBP,GAAG,CAACO,MAAJ,GAAW,GAA5B,IAAiCP,GAAG,CAACO,MAAJ,KAAa,GAAhD,CAAH,EAAwD,MAAM,IAAI5D,KAAJ,CAAU,mBAAiBoD,GAAjB,GAAqB,YAArB,GAAkCC,GAAG,CAACO,MAAhD,CAAN;;CAA8D,cAAGP,GAAG,CAACM,QAAJ,KAAexC,SAAlB,EAA4B;CAAC,mBAAO,IAAIG,UAAJ,CAAe+B,GAAG,CAACM,QAAJ,IAAc,EAA7B,CAAP;CAAwC,WAArE,MAAyE;CAAC,mBAAOmS,kBAAkB,CAACzS,GAAG,CAACI,YAAJ,IAAkB,EAAnB,EAAsB,IAAtB,CAAzB;CAAqD;CAAC,SAAnsB;;CAAosB,YAAImjB,SAAS,GAAC,IAAd;CAAmBA,QAAAA,SAAS,CAACb,aAAV,CAAwBF,QAAQ,IAAE;CAAC,cAAI5S,KAAK,GAAC4S,QAAQ,GAACD,SAAnB;CAA6B,cAAI1S,GAAG,GAAC,CAAC2S,QAAQ,GAAC,CAAV,IAAaD,SAAb,GAAuB,CAA/B;CAAiC1S,UAAAA,GAAG,GAACzH,IAAI,CAAC4H,GAAL,CAASH,GAAT,EAAaiT,UAAU,GAAC,CAAxB,CAAJ;;CAA+B,cAAG,OAAOS,SAAS,CAACnB,MAAV,CAAiBI,QAAjB,CAAP,IAAmC,WAAtC,EAAkD;CAACe,YAAAA,SAAS,CAACnB,MAAV,CAAiBI,QAAjB,IAA2BY,KAAK,CAACxT,KAAD,EAAOC,GAAP,CAAhC;CAA4C;;CAAA,cAAG,OAAO0T,SAAS,CAACnB,MAAV,CAAiBI,QAAjB,CAAP,IAAmC,WAAtC,EAAkD,MAAM,IAAI7lB,KAAJ,CAAU,eAAV,CAAN;CAAiC,iBAAO4mB,SAAS,CAACnB,MAAV,CAAiBI,QAAjB,CAAP;CAAkC,SAApV;;CAAsV,YAAGW,QAAQ,IAAE,CAACL,UAAd,EAAyB;CAACP,UAAAA,SAAS,GAACO,UAAU,GAAC,CAArB;CAAuBA,UAAAA,UAAU,GAAC,KAAKL,MAAL,CAAY,CAAZ,EAAejkB,MAA1B;CAAiC+jB,UAAAA,SAAS,GAACO,UAAV;CAAqBtiB,UAAAA,GAAG,CAAC,6EAAD,CAAH;CAAmF;;CAAA,aAAKgjB,OAAL,GAAaV,UAAb;CAAwB,aAAKW,UAAL,GAAgBlB,SAAhB;CAA0B,aAAKJ,WAAL,GAAiB,IAAjB;CAAsB,OAAr2D;;CAAs2D,UAAG,OAAOliB,cAAP,IAAuB,WAA1B,EAAsC;CAAC,YAAG,CAAC7D,qBAAJ,EAA0B,MAAK,qHAAL;CAA2H,YAAImnB,SAAS,GAAC,IAAIrB,cAAJ,EAAd;CAAiCnmB,QAAAA,MAAM,CAAC2nB,gBAAP,CAAwBH,SAAxB,EAAkC;CAAC/kB,UAAAA,MAAM,EAAC;CAAC4C,YAAAA,GAAG,EAAC,YAAU;CAAC,kBAAG,CAAC,KAAK+gB,WAAT,EAAqB;CAAC,qBAAKS,WAAL;CAAmB;;CAAA,qBAAO,KAAKY,OAAZ;CAAoB;CAA7E,WAAR;CAAuFjB,UAAAA,SAAS,EAAC;CAACnhB,YAAAA,GAAG,EAAC,YAAU;CAAC,kBAAG,CAAC,KAAK+gB,WAAT,EAAqB;CAAC,qBAAKS,WAAL;CAAmB;;CAAA,qBAAO,KAAKa,UAAZ;CAAuB;CAAhF;CAAjG,SAAlC;CAAuN,YAAI9B,UAAU,GAAC;CAACI,UAAAA,QAAQ,EAAC,KAAV;CAAgBhN,UAAAA,QAAQ,EAACwO;CAAzB,SAAf;CAAmD,OAAve,MAA2e;CAAC,YAAI5B,UAAU,GAAC;CAACI,UAAAA,QAAQ,EAAC,KAAV;CAAgBhiB,UAAAA,GAAG,EAACA;CAApB,SAAf;CAAwC;;CAAA,UAAItD,IAAI,GAACkL,EAAE,CAAC+Z,UAAH,CAAclO,MAAd,EAAqBzJ,IAArB,EAA0B4X,UAA1B,EAAqCb,OAArC,EAA6CC,QAA7C,CAAT;;CAAgE,UAAGY,UAAU,CAAC5M,QAAd,EAAuB;CAACtY,QAAAA,IAAI,CAACsY,QAAL,GAAc4M,UAAU,CAAC5M,QAAzB;CAAkC,OAA1D,MAA+D,IAAG4M,UAAU,CAAC5hB,GAAd,EAAkB;CAACtD,QAAAA,IAAI,CAACsY,QAAL,GAAc,IAAd;CAAmBtY,QAAAA,IAAI,CAACsD,GAAL,GAAS4hB,UAAU,CAAC5hB,GAApB;CAAwB;;CAAAhE,MAAAA,MAAM,CAAC2nB,gBAAP,CAAwBjnB,IAAxB,EAA6B;CAACwY,QAAAA,SAAS,EAAC;CAAC7T,UAAAA,GAAG,EAAC,YAAU;CAAC,mBAAO,KAAK2T,QAAL,CAAcvW,MAArB;CAA4B;CAA5C;CAAX,OAA7B;CAAwF,UAAIsS,UAAU,GAAC,EAAf;CAAkB,UAAIoM,IAAI,GAACnhB,MAAM,CAACmhB,IAAP,CAAYzgB,IAAI,CAACqU,UAAjB,CAAT;CAAsCoM,MAAAA,IAAI,CAACL,OAAL,CAAahG,GAAG,IAAE;CAAC,YAAI8M,EAAE,GAAClnB,IAAI,CAACqU,UAAL,CAAgB+F,GAAhB,CAAP;;CAA4B/F,QAAAA,UAAU,CAAC+F,GAAD,CAAV,GAAgB,SAAS+M,iBAAT,GAA4B;CAACjc,UAAAA,EAAE,CAACka,aAAH,CAAiBplB,IAAjB;CAAuB,iBAAOknB,EAAE,CAACxZ,KAAH,CAAS,IAAT,EAAcC,SAAd,CAAP;CAAgC,SAApG;CAAqG,OAApJ;;CAAsJ0G,MAAAA,UAAU,CAAC9R,IAAX,GAAiB,CAAC+R,MAAD,EAAQ/S,MAAR,EAAesT,MAAf,EAAsB9S,MAAtB,EAA6ByY,QAA7B,KAAwC;CAACtP,QAAAA,EAAE,CAACka,aAAH,CAAiBplB,IAAjB;CAAuB,YAAIsY,QAAQ,GAAChE,MAAM,CAACtU,IAAP,CAAYsY,QAAzB;CAAkC,YAAGkC,QAAQ,IAAElC,QAAQ,CAACvW,MAAtB,EAA6B,OAAO,CAAP;CAAS,YAAI4G,IAAI,GAACgD,IAAI,CAAC4H,GAAL,CAAS+E,QAAQ,CAACvW,MAAT,GAAgByY,QAAzB,EAAkCzY,MAAlC,CAAT;CAAmDN,QAAAA,MAAM,CAACkH,IAAI,IAAE,CAAP,CAAN;;CAAgB,YAAG2P,QAAQ,CAACpW,KAAZ,EAAkB;CAAC,eAAI,IAAIiF,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACwB,IAAd,EAAmBxB,CAAC,EAApB,EAAuB;CAAC5F,YAAAA,MAAM,CAACsT,MAAM,GAAC1N,CAAR,CAAN,GAAiBmR,QAAQ,CAACkC,QAAQ,GAACrT,CAAV,CAAzB;CAAsC;CAAC,SAAlF,MAAsF;CAAC,eAAI,IAAIA,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACwB,IAAd,EAAmBxB,CAAC,EAApB,EAAuB;CAAC5F,YAAAA,MAAM,CAACsT,MAAM,GAAC1N,CAAR,CAAN,GAAiBmR,QAAQ,CAAC3T,GAAT,CAAa6V,QAAQ,GAACrT,CAAtB,CAAjB;CAA0C;CAAC;;CAAA,eAAOwB,IAAP;CAAY,OAAlY;;CAAoY3I,MAAAA,IAAI,CAACqU,UAAL,GAAgBA,UAAhB;CAA2B,aAAOrU,IAAP;CAAY,KAAxi5B;CAAyi5BonB,IAAAA,mBAAmB,EAAC,CAACrQ,MAAD,EAAQzJ,IAAR,EAAahK,GAAb,EAAiB+gB,OAAjB,EAAyBC,QAAzB,EAAkC5iB,MAAlC,EAAyCC,OAAzC,EAAiD0lB,cAAjD,EAAgE5M,MAAhE,EAAuE6M,SAAvE,KAAmF;CAAC,UAAIC,QAAQ,GAACja,IAAI,GAACmF,OAAO,CAACpE,OAAR,CAAgBiC,IAAI,CAAC0B,KAAL,CAAW+E,MAAX,EAAkBzJ,IAAlB,CAAhB,CAAD,GAA0CyJ,MAA3D;CAAkE,UAAIpK,GAAG,GAACP,sBAAsB,CAAC,QAAMmb,QAAP,CAA9B;;CAA+C,eAASC,WAAT,CAAqBC,SAArB,EAA+B;CAAC,iBAASC,MAAT,CAAgBD,SAAhB,EAA0B;CAAC,cAAGH,SAAH,EAAaA,SAAS;;CAAG,cAAG,CAACD,cAAJ,EAAmB;CAACnc,YAAAA,EAAE,CAACia,cAAH,CAAkBpO,MAAlB,EAAyBzJ,IAAzB,EAA8Bma,SAA9B,EAAwCpD,OAAxC,EAAgDC,QAAhD,EAAyD7J,MAAzD;CAAiE;;CAAA,cAAG/Y,MAAH,EAAUA,MAAM;CAAGkL,UAAAA,mBAAmB,CAACD,GAAD,CAAnB;CAAyB;;CAAA,YAAGgb,OAAO,CAACC,sBAAR,CAA+BH,SAA/B,EAAyCF,QAAzC,EAAkDG,MAAlD,EAAyD,MAAI;CAAC,cAAG/lB,OAAH,EAAWA,OAAO;CAAGiL,UAAAA,mBAAmB,CAACD,GAAD,CAAnB;CAAyB,SAA5G,CAAH,EAAiH;CAAC;CAAO;;CAAA+a,QAAAA,MAAM,CAACD,SAAD,CAAN;CAAkB;;CAAAjb,MAAAA,gBAAgB,CAACG,GAAD,CAAhB;;CAAsB,UAAG,OAAOrJ,GAAP,IAAY,QAAf,EAAwB;CAAC2X,QAAAA,SAAS,CAAC3X,GAAD,EAAKmkB,SAAS,IAAED,WAAW,CAACC,SAAD,CAA3B,EAAuC9lB,OAAvC,CAAT;CAAyD,OAAlF,MAAsF;CAAC6lB,QAAAA,WAAW,CAAClkB,GAAD,CAAX;CAAiB;CAAC,KAAju6B;CAAku6BukB,IAAAA,SAAS,EAAC,MAAI;CAAC,aAAOnoB,MAAM,CAACmoB,SAAP,IAAkBnoB,MAAM,CAACooB,YAAzB,IAAuCpoB,MAAM,CAACqoB,eAA9C,IAA+DroB,MAAM,CAACsoB,WAA7E;CAAyF,KAA106B;CAA206BC,IAAAA,OAAO,EAAC,MAAI;CAAC,aAAM,WAASvoB,MAAM,CAACoD,QAAP,CAAgBolB,QAA/B;CAAwC,KAAh46B;CAAi46BC,IAAAA,UAAU,EAAC,EAA546B;CAA+46BC,IAAAA,aAAa,EAAC,WAA756B;CAAy66BC,IAAAA,aAAa,EAAC,CAACxW,KAAD,EAAOnQ,MAAP,EAAcC,OAAd,KAAwB;CAACD,MAAAA,MAAM,GAACA,MAAM,KAAG,MAAI,EAAP,CAAb;;CAAwBC,MAAAA,OAAO,GAACA,OAAO,KAAG,MAAI,EAAP,CAAf;;CAA0B,UAAIkmB,SAAS,GAAC3c,EAAE,CAAC2c,SAAH,EAAd;;CAA6B,UAAG;CAAC,YAAIS,WAAW,GAACT,SAAS,CAACpkB,IAAV,CAAeyH,EAAE,CAAC+c,OAAH,EAAf,EAA4B/c,EAAE,CAACid,UAA/B,CAAhB;CAA2D,OAA/D,CAA+D,OAAMpb,CAAN,EAAQ;CAAC,eAAOpL,OAAO,CAACoL,CAAD,CAAd;CAAkB;;CAAAub,MAAAA,WAAW,CAACC,eAAZ,GAA6B,MAAI;CAACxkB,QAAAA,GAAG,CAAC,aAAD,CAAH;CAAmB,YAAIykB,EAAE,GAACF,WAAW,CAACvZ,MAAnB;CAA0ByZ,QAAAA,EAAE,CAACC,iBAAH,CAAqBvd,EAAE,CAACkd,aAAxB;CAAuC,OAAtH;;CAAwHE,MAAAA,WAAW,CAACI,SAAZ,GAAuB,MAAI;CAAC,YAAIF,EAAE,GAACF,WAAW,CAACvZ,MAAnB;CAA0B,YAAI4Z,WAAW,GAACH,EAAE,CAACG,WAAH,CAAe,CAACzd,EAAE,CAACkd,aAAJ,CAAf,EAAkC,WAAlC,CAAhB;CAA+D,YAAIQ,KAAK,GAACD,WAAW,CAACE,WAAZ,CAAwB3d,EAAE,CAACkd,aAA3B,CAAV;CAAoD,YAAIU,EAAE,GAAC,CAAP;CAAA,YAASC,IAAI,GAAC,CAAd;CAAA,YAAgBC,KAAK,GAACnX,KAAK,CAAC9P,MAA5B;;CAAmC,iBAAS2lB,MAAT,GAAiB;CAAC,cAAGqB,IAAI,IAAE,CAAT,EAAWrnB,MAAM,GAAjB,KAAyBC,OAAO;CAAG;;CAAAkQ,QAAAA,KAAK,CAACuO,OAAN,CAAc/f,IAAI,IAAE;CAAC,cAAI4oB,UAAU,GAACL,KAAK,CAACM,GAAN,CAAUhe,EAAE,CAACuZ,WAAH,CAAepkB,IAAf,EAAqBwe,MAArB,CAA4BvG,QAAtC,EAA+CjY,IAA/C,CAAf;;CAAoE4oB,UAAAA,UAAU,CAACP,SAAX,GAAsB,MAAI;CAACI,YAAAA,EAAE;CAAG,gBAAGA,EAAE,GAACC,IAAH,IAASC,KAAZ,EAAkBtB,MAAM;CAAG,WAA3D;;CAA6DuB,UAAAA,UAAU,CAACtnB,OAAX,GAAoB,MAAI;CAAConB,YAAAA,IAAI;CAAG,gBAAGD,EAAE,GAACC,IAAH,IAASC,KAAZ,EAAkBtB,MAAM;CAAG,WAA3D;CAA6D,SAAnN;CAAqNiB,QAAAA,WAAW,CAAChnB,OAAZ,GAAoBA,OAApB;CAA4B,OAAlf;;CAAof2mB,MAAAA,WAAW,CAAC3mB,OAAZ,GAAoBA,OAApB;CAA4B,KAAjw8B;CAAkw8BwnB,IAAAA,eAAe,EAAC,CAACtX,KAAD,EAAOnQ,MAAP,EAAcC,OAAd,KAAwB;CAACD,MAAAA,MAAM,GAACA,MAAM,KAAG,MAAI,EAAP,CAAb;;CAAwBC,MAAAA,OAAO,GAACA,OAAO,KAAG,MAAI,EAAP,CAAf;;CAA0B,UAAIkmB,SAAS,GAAC3c,EAAE,CAAC2c,SAAH,EAAd;;CAA6B,UAAG;CAAC,YAAIS,WAAW,GAACT,SAAS,CAACpkB,IAAV,CAAeyH,EAAE,CAAC+c,OAAH,EAAf,EAA4B/c,EAAE,CAACid,UAA/B,CAAhB;CAA2D,OAA/D,CAA+D,OAAMpb,CAAN,EAAQ;CAAC,eAAOpL,OAAO,CAACoL,CAAD,CAAd;CAAkB;;CAAAub,MAAAA,WAAW,CAACC,eAAZ,GAA4B5mB,OAA5B;;CAAoC2mB,MAAAA,WAAW,CAACI,SAAZ,GAAuB,MAAI;CAAC,YAAIF,EAAE,GAACF,WAAW,CAACvZ,MAAnB;;CAA0B,YAAG;CAAC,cAAI4Z,WAAW,GAACH,EAAE,CAACG,WAAH,CAAe,CAACzd,EAAE,CAACkd,aAAJ,CAAf,EAAkC,UAAlC,CAAhB;CAA8D,SAAlE,CAAkE,OAAMrb,CAAN,EAAQ;CAACpL,UAAAA,OAAO,CAACoL,CAAD,CAAP;CAAW;CAAO;;CAAA,YAAI6b,KAAK,GAACD,WAAW,CAACE,WAAZ,CAAwB3d,EAAE,CAACkd,aAA3B,CAAV;CAAoD,YAAIU,EAAE,GAAC,CAAP;CAAA,YAASC,IAAI,GAAC,CAAd;CAAA,YAAgBC,KAAK,GAACnX,KAAK,CAAC9P,MAA5B;;CAAmC,iBAAS2lB,MAAT,GAAiB;CAAC,cAAGqB,IAAI,IAAE,CAAT,EAAWrnB,MAAM,GAAjB,KAAyBC,OAAO;CAAG;;CAAAkQ,QAAAA,KAAK,CAACuO,OAAN,CAAc/f,IAAI,IAAE;CAAC,cAAI+oB,UAAU,GAACR,KAAK,CAACjkB,GAAN,CAAUtE,IAAV,CAAf;;CAA+B+oB,UAAAA,UAAU,CAACV,SAAX,GAAsB,MAAI;CAAC,gBAAGxd,EAAE,CAACuZ,WAAH,CAAepkB,IAAf,EAAqBqkB,MAAxB,EAA+B;CAACxZ,cAAAA,EAAE,CAACuM,MAAH,CAAUpX,IAAV;CAAgB;;CAAA6K,YAAAA,EAAE,CAACia,cAAH,CAAkB7U,IAAI,CAACxP,OAAL,CAAaT,IAAb,CAAlB,EAAqCiQ,IAAI,CAACqB,QAAL,CAActR,IAAd,CAArC,EAAyD+oB,UAAU,CAACra,MAApE,EAA2E,IAA3E,EAAgF,IAAhF,EAAqF,IAArF;CAA2F+Z,YAAAA,EAAE;CAAG,gBAAGA,EAAE,GAACC,IAAH,IAASC,KAAZ,EAAkBtB,MAAM;CAAG,WAAtM;;CAAwM0B,UAAAA,UAAU,CAACznB,OAAX,GAAoB,MAAI;CAAConB,YAAAA,IAAI;CAAG,gBAAGD,EAAE,GAACC,IAAH,IAASC,KAAZ,EAAkBtB,MAAM;CAAG,WAA3D;CAA6D,SAAzT;CAA2TiB,QAAAA,WAAW,CAAChnB,OAAZ,GAAoBA,OAApB;CAA4B,OAAtnB;;CAAwnB2mB,MAAAA,WAAW,CAAC3mB,OAAZ,GAAoBA,OAApB;CAA4B,KAA5o+B;CAA6o+B0nB,IAAAA,YAAY,EAAC,MAAI;CAACzkB,MAAAA,KAAK,CAAC,+DAAD,CAAL;CAAuE,KAAtu+B;CAAuu+B0kB,IAAAA,YAAY,EAAC,MAAI;CAAC1kB,MAAAA,KAAK,CAAC,wDAAD,CAAL;CAAgE,KAAzz+B;CAA0z+B2kB,IAAAA,UAAU,EAAC,MAAI;CAAC3kB,MAAAA,KAAK,CAAC,wDAAD,CAAL;CAAgE,KAA14+B;CAA24+B4kB,IAAAA,QAAQ,EAAC,MAAI;CAAC5kB,MAAAA,KAAK,CAAC,qDAAD,CAAL;CAA6D,KAAt9+B;CAAu9+B6R,IAAAA,SAAS,EAAC,MAAI;CAAC7R,MAAAA,KAAK,CAAC,oEAAD,CAAL;CAA4E,KAAlj/B;CAAmj/B6kB,IAAAA,eAAe,EAAC,MAAI;CAAC7kB,MAAAA,KAAK,CAAC,iEAAD,CAAL;CAAyE;CAAjp/B,GAAP;CAA0p/B,MAAI8kB,QAAQ,GAAC;CAACC,IAAAA,gBAAgB,EAAC,CAAlB;CAAoBC,IAAAA,WAAW,EAAC,UAASC,KAAT,EAAexpB,IAAf,EAAoBypB,UAApB,EAA+B;CAAC,UAAGxZ,IAAI,CAACC,KAAL,CAAWlQ,IAAX,CAAH,EAAoB;CAAC,eAAOA,IAAP;CAAY;;CAAA,UAAIqR,GAAJ;;CAAQ,UAAGmY,KAAK,KAAG,CAAC,GAAZ,EAAgB;CAACnY,QAAAA,GAAG,GAACxG,EAAE,CAAC0H,GAAH,EAAJ;CAAa,OAA9B,MAAkC;CAAC,YAAImX,SAAS,GAAC7e,EAAE,CAACuT,SAAH,CAAaoL,KAAb,CAAd;CAAkC,YAAG,CAACE,SAAJ,EAAc,MAAM,IAAI7e,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B/C,QAAAA,GAAG,GAACqY,SAAS,CAAC1pB,IAAd;CAAmB;;CAAA,UAAGA,IAAI,CAAC0B,MAAL,IAAa,CAAhB,EAAkB;CAAC,YAAG,CAAC+nB,UAAJ,EAAe;CAAC,gBAAM,IAAI5e,EAAE,CAACuJ,UAAP,CAAkB,EAAlB,CAAN;CAA4B;;CAAA,eAAO/C,GAAP;CAAW;;CAAA,aAAOpB,IAAI,CAAC0B,KAAL,CAAWN,GAAX,EAAerR,IAAf,CAAP;CAA4B,KAAhV;CAAiV2pB,IAAAA,MAAM,EAAC,UAASxa,IAAT,EAAcnP,IAAd,EAAmB+I,GAAnB,EAAuB;CAAC,UAAG;CAAC,YAAIoY,IAAI,GAAChS,IAAI,CAACnP,IAAD,CAAb;CAAoB,OAAxB,CAAwB,OAAM0M,CAAN,EAAQ;CAAC,YAAGA,CAAC,IAAEA,CAAC,CAAC/M,IAAL,IAAWsQ,IAAI,CAACY,SAAL,CAAe7Q,IAAf,MAAuBiQ,IAAI,CAACY,SAAL,CAAehG,EAAE,CAACyR,OAAH,CAAW5P,CAAC,CAAC/M,IAAb,CAAf,CAArC,EAAwE;CAAC,iBAAM,CAAC,EAAP;CAAU;;CAAA,cAAM+M,CAAN;CAAQ;;CAAAzE,MAAAA,MAAM,CAACc,GAAG,IAAE,CAAN,CAAN,GAAeoY,IAAI,CAACxN,GAApB;CAAwB1L,MAAAA,MAAM,CAACc,GAAG,GAAC,CAAJ,IAAO,CAAR,CAAN,GAAiB,CAAjB;CAAmBd,MAAAA,MAAM,CAACc,GAAG,GAAC,CAAJ,IAAO,CAAR,CAAN,GAAiBoY,IAAI,CAACpI,GAAtB;CAA0B9Q,MAAAA,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkBoY,IAAI,CAACxK,IAAvB;CAA4B1O,MAAAA,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkBoY,IAAI,CAACnI,KAAvB;CAA6B/Q,MAAAA,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkBoY,IAAI,CAAClI,GAAvB;CAA2BhR,MAAAA,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkBoY,IAAI,CAACjI,GAAvB;CAA2BjR,MAAAA,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkBoY,IAAI,CAAChN,IAAvB;CAA4BlM,MAAAA,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkB,CAAlB;CAAoBkG,MAAAA,OAAO,GAAC,CAACkS,IAAI,CAAC7Y,IAAL,KAAY,CAAb,GAAgB0G,UAAU,GAACmS,IAAI,CAAC7Y,IAAhB,EAAqB,CAACgD,IAAI,CAACse,GAAL,CAAS5a,UAAT,CAAD,IAAuB,CAAvB,GAAyBA,UAAU,GAAC,CAAX,GAAa,CAAC1D,IAAI,CAAC4H,GAAL,CAAS,CAAC5H,IAAI,CAACue,KAAL,CAAW7a,UAAU,GAAC,UAAtB,CAAV,EAA4C,UAA5C,IAAwD,CAAzD,MAA8D,CAA3E,GAA6E,CAAC,CAAC,CAAC1D,IAAI,CAAC6K,IAAL,CAAU,CAACnH,UAAU,GAAC,EAAE,CAAC,CAACA,UAAF,KAAe,CAAjB,CAAZ,IAAiC,UAA3C,CAAH,KAA4D,CAAlK,GAAoK,CAAzM,EAAR,EAAqN/G,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkBkG,OAAO,CAAC,CAAD,CAA9O,EAAkPhH,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkBkG,OAAO,CAAC,CAAD,CAA3Q;CAA+QhH,MAAAA,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkB,IAAlB;CAAuBd,MAAAA,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkBoY,IAAI,CAAC5H,MAAvB;CAA8BtR,MAAAA,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkBoY,IAAI,CAAChI,KAAL,CAAW2Q,OAAX,KAAqB,GAArB,GAAyB,CAA3C;CAA6C7hB,MAAAA,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkB,CAAlB;CAAoBd,MAAAA,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkBoY,IAAI,CAAC/H,KAAL,CAAW0Q,OAAX,KAAqB,GAArB,GAAyB,CAA3C;CAA6C7hB,MAAAA,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkB,CAAlB;CAAoBd,MAAAA,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkBoY,IAAI,CAAC9H,KAAL,CAAWyQ,OAAX,KAAqB,GAArB,GAAyB,CAA3C;CAA6C7hB,MAAAA,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkB,CAAlB;CAAoBkG,MAAAA,OAAO,GAAC,CAACkS,IAAI,CAACpI,GAAL,KAAW,CAAZ,GAAe/J,UAAU,GAACmS,IAAI,CAACpI,GAAhB,EAAoB,CAACzN,IAAI,CAACse,GAAL,CAAS5a,UAAT,CAAD,IAAuB,CAAvB,GAAyBA,UAAU,GAAC,CAAX,GAAa,CAAC1D,IAAI,CAAC4H,GAAL,CAAS,CAAC5H,IAAI,CAACue,KAAL,CAAW7a,UAAU,GAAC,UAAtB,CAAV,EAA4C,UAA5C,IAAwD,CAAzD,MAA8D,CAA3E,GAA6E,CAAC,CAAC,CAAC1D,IAAI,CAAC6K,IAAL,CAAU,CAACnH,UAAU,GAAC,EAAE,CAAC,CAACA,UAAF,KAAe,CAAjB,CAAZ,IAAiC,UAA3C,CAAH,KAA4D,CAAlK,GAAoK,CAAvM,EAAR,EAAmN/G,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkBkG,OAAO,CAAC,CAAD,CAA5O,EAAgPhH,MAAM,CAACc,GAAG,GAAC,EAAJ,IAAQ,CAAT,CAAN,GAAkBkG,OAAO,CAAC,CAAD,CAAzQ;CAA6Q,aAAO,CAAP;CAAS,KAA7+C;CAA8+C8a,IAAAA,OAAO,EAAC,UAASC,IAAT,EAAc/V,MAAd,EAAqB7M,GAArB,EAAyBoT,KAAzB,EAA+BhG,MAA/B,EAAsC;CAAC,UAAItT,MAAM,GAACsF,MAAM,CAAC3E,KAAP,CAAamoB,IAAb,EAAkBA,IAAI,GAAC5iB,GAAvB,CAAX;CAAuCyD,MAAAA,EAAE,CAAC8M,KAAH,CAAS1D,MAAT,EAAgB/S,MAAhB,EAAuBsT,MAAvB,EAA8BpN,GAA9B,EAAkCoT,KAAlC;CAAyC,KAA7mD;CAA8mDyP,IAAAA,OAAO,EAAC,UAASjqB,IAAT,EAAc2W,IAAd,EAAmBhD,GAAnB,EAAuB;CAAC,cAAOgD,IAAI,GAAC,KAAZ;CAAmB,aAAK,KAAL;CAAW,aAAK,IAAL;CAAU,aAAK,KAAL;CAAW,aAAK,IAAL;CAAU,aAAK,KAAL;CAAW;;CAAM;CAAQ,iBAAM,CAAC,EAAP;CAAtF;;CAAgG9L,MAAAA,EAAE,CAACqM,KAAH,CAASlX,IAAT,EAAc2W,IAAd,EAAmBhD,GAAnB;CAAwB,aAAO,CAAP;CAAS,KAA/wD;CAAgxDuW,IAAAA,UAAU,EAAC,UAASlqB,IAAT,EAAc+I,GAAd,EAAkBohB,OAAlB,EAA0B;CAAC,UAAGA,OAAO,IAAE,CAAZ,EAAc,OAAM,CAAC,EAAP;CAAU,UAAIlpB,GAAG,GAAC4J,EAAE,CAACgN,QAAH,CAAY7X,IAAZ,CAAR;CAA0B,UAAIoH,GAAG,GAACkE,IAAI,CAAC4H,GAAL,CAASiX,OAAT,EAAiBhjB,eAAe,CAAClG,GAAD,CAAhC,CAAR;CAA+C,UAAImpB,OAAO,GAAC5hB,KAAK,CAACO,GAAG,GAAC3B,GAAL,CAAjB;CAA2BH,MAAAA,YAAY,CAAChG,GAAD,EAAK8H,GAAL,EAASohB,OAAO,GAAC,CAAjB,CAAZ;CAAgC3hB,MAAAA,KAAK,CAACO,GAAG,GAAC3B,GAAL,CAAL,GAAegjB,OAAf;CAAuB,aAAOhjB,GAAP;CAAW,KAAp/D;CAAq/DijB,IAAAA,QAAQ,EAAC,UAASrqB,IAAT,EAAcsqB,KAAd,EAAoB;CAAC,UAAGA,KAAK,GAAC,CAAC,CAAV,EAAY;CAAC,eAAM,CAAC,EAAP;CAAU;;CAAA,UAAIrT,MAAM,GAACpM,EAAE,CAAC6Q,UAAH,CAAc1b,IAAd,EAAmB;CAACoc,QAAAA,MAAM,EAAC;CAAR,OAAnB,CAAX;CAA6C,UAAIzc,IAAI,GAACsX,MAAM,CAACtX,IAAhB;;CAAqB,UAAG,CAACA,IAAJ,EAAS;CAAC,eAAM,CAAC,EAAP;CAAU;;CAAA,UAAI8d,KAAK,GAAC,EAAV;CAAa,UAAG6M,KAAK,GAAC,CAAT,EAAW7M,KAAK,IAAE,GAAP;CAAW,UAAG6M,KAAK,GAAC,CAAT,EAAW7M,KAAK,IAAE,GAAP;CAAW,UAAG6M,KAAK,GAAC,CAAT,EAAW7M,KAAK,IAAE,GAAP;;CAAW,UAAGA,KAAK,IAAE5S,EAAE,CAAC6S,eAAH,CAAmB/d,IAAnB,EAAwB8d,KAAxB,CAAV,EAAyC;CAAC,eAAM,CAAC,CAAP;CAAS;;CAAA,aAAO,CAAP;CAAS,KAA3wE;CAA4wE8M,IAAAA,OAAO,EAAC,UAAStW,MAAT,EAAgBuW,GAAhB,EAAoBC,MAApB,EAA2BjW,MAA3B,EAAkC;CAAC,UAAIvT,GAAG,GAAC,CAAR;;CAAU,WAAI,IAAI6F,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC2jB,MAAd,EAAqB3jB,CAAC,EAAtB,EAAyB;CAAC,YAAIP,GAAG,GAAC0B,MAAM,CAACuiB,GAAG,IAAE,CAAN,CAAd;CAAuB,YAAIpjB,GAAG,GAACa,MAAM,CAACuiB,GAAG,GAAC,CAAJ,IAAO,CAAR,CAAd;CAAyBA,QAAAA,GAAG,IAAE,CAAL;CAAO,YAAIE,IAAI,GAAC7f,EAAE,CAAC3I,IAAH,CAAQ+R,MAAR,EAAezL,KAAf,EAAqBjC,GAArB,EAAyBa,GAAzB,EAA6BoN,MAA7B,CAAT;CAA8C,YAAGkW,IAAI,GAAC,CAAR,EAAU,OAAM,CAAC,CAAP;CAASzpB,QAAAA,GAAG,IAAEypB,IAAL;CAAU,YAAGA,IAAI,GAACtjB,GAAR,EAAY;CAAM;;CAAA,aAAOnG,GAAP;CAAW,KAA1/E;CAA2/E0pB,IAAAA,QAAQ,EAAC,UAAS1W,MAAT,EAAgBuW,GAAhB,EAAoBC,MAApB,EAA2BjW,MAA3B,EAAkC;CAAC,UAAIvT,GAAG,GAAC,CAAR;;CAAU,WAAI,IAAI6F,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC2jB,MAAd,EAAqB3jB,CAAC,EAAtB,EAAyB;CAAC,YAAIP,GAAG,GAAC0B,MAAM,CAACuiB,GAAG,IAAE,CAAN,CAAd;CAAuB,YAAIpjB,GAAG,GAACa,MAAM,CAACuiB,GAAG,GAAC,CAAJ,IAAO,CAAR,CAAd;CAAyBA,QAAAA,GAAG,IAAE,CAAL;CAAO,YAAIE,IAAI,GAAC7f,EAAE,CAACkK,KAAH,CAASd,MAAT,EAAgBzL,KAAhB,EAAsBjC,GAAtB,EAA0Ba,GAA1B,EAA8BoN,MAA9B,CAAT;CAA+C,YAAGkW,IAAI,GAAC,CAAR,EAAU,OAAM,CAAC,CAAP;CAASzpB,QAAAA,GAAG,IAAEypB,IAAL;CAAU;;CAAA,aAAOzpB,GAAP;CAAW,KAAztF;CAA0tF2pB,IAAAA,OAAO,EAAC5pB,SAAluF;CAA4uFsD,IAAAA,GAAG,EAAC,YAAU;CAAClD,MAAAA,MAAM,CAACioB,QAAQ,CAACuB,OAAT,IAAkB5pB,SAAnB,CAAN;CAAoCqoB,MAAAA,QAAQ,CAACuB,OAAT,IAAkB,CAAlB;CAAoB,UAAI3pB,GAAG,GAACgH,MAAM,CAACohB,QAAQ,CAACuB,OAAT,GAAiB,CAAjB,IAAoB,CAArB,CAAd;CAAsC,aAAO3pB,GAAP;CAAW,KAAp2F;CAAq2F4pB,IAAAA,MAAM,EAAC,UAAStkB,GAAT,EAAa;CAAC,UAAItF,GAAG,GAACqF,YAAY,CAACC,GAAD,CAApB;CAA0B,aAAOtF,GAAP;CAAW,KAA/5F;CAAg6F6pB,IAAAA,eAAe,EAAC,UAASvV,EAAT,EAAY;CAAC,UAAItB,MAAM,GAACpJ,EAAE,CAACuT,SAAH,CAAa7I,EAAb,CAAX;CAA4B,UAAG,CAACtB,MAAJ,EAAW,MAAM,IAAIpJ,EAAE,CAACuJ,UAAP,CAAkB,CAAlB,CAAN;CAA2B,aAAOH,MAAP;CAAc;CAA7gG,GAAb;;CAA4hG,WAAS8W,kBAAT,CAA4BxV,EAA5B,EAA+BzW,GAA/B,EAAmC8rB,OAAnC,EAA2C;CAACvB,IAAAA,QAAQ,CAACuB,OAAT,GAAiBA,OAAjB;;CAAyB,QAAG;CAAC,UAAI3W,MAAM,GAACoV,QAAQ,CAACyB,eAAT,CAAyBvV,EAAzB,CAAX;;CAAwC,cAAOzW,GAAP;CAAY,aAAK,CAAL;CAAO;CAAC,gBAAIsQ,GAAG,GAACia,QAAQ,CAAC/kB,GAAT,EAAR;;CAAuB,gBAAG8K,GAAG,GAAC,CAAP,EAAS;CAAC,qBAAM,CAAC,EAAP;CAAU;;CAAA,gBAAI4b,SAAJ;CAAcA,YAAAA,SAAS,GAACngB,EAAE,CAACwT,YAAH,CAAgBpK,MAAhB,EAAuB7E,GAAvB,CAAV;CAAsC,mBAAO4b,SAAS,CAACzV,EAAjB;CAAoB;;CAAA,aAAK,CAAL;CAAO,aAAK,CAAL;CAAO,iBAAO,CAAP;;CAAS,aAAK,CAAL;CAAO,iBAAOtB,MAAM,CAACuG,KAAd;;CAAoB,aAAK,CAAL;CAAO;CAAC,gBAAIpL,GAAG,GAACia,QAAQ,CAAC/kB,GAAT,EAAR;CAAuB2P,YAAAA,MAAM,CAACuG,KAAP,IAAcpL,GAAd;CAAkB,mBAAO,CAAP;CAAS;;CAAA,aAAK,CAAL;CAAO;CAAC,gBAAIA,GAAG,GAACia,QAAQ,CAAC/kB,GAAT,EAAR;CAAuB,gBAAIkQ,MAAM,GAAC,CAAX;CAAa9M,YAAAA,MAAM,CAAC0H,GAAG,GAACoF,MAAJ,IAAY,CAAb,CAAN,GAAsB,CAAtB;CAAwB,mBAAO,CAAP;CAAS;;CAAA,aAAK,CAAL;CAAO,aAAK,CAAL;CAAO,iBAAO,CAAP;;CAAS,aAAK,EAAL;CAAQ,aAAK,CAAL;CAAO,iBAAM,CAAC,EAAP;;CAAU,aAAK,CAAL;CAAO1E,UAAAA,QAAQ,CAAC,EAAD,CAAR;CAAa,iBAAM,CAAC,CAAP;;CAAS;CAAQ;CAAC,mBAAM,CAAC,EAAP;CAAU;CAAha;CAAka,KAA9c,CAA8c,OAAMpD,CAAN,EAAQ;CAAC,UAAG,OAAO7B,EAAP,IAAW,WAAX,IAAwB,EAAE6B,CAAC,YAAY7B,EAAE,CAACuJ,UAAlB,CAA3B,EAAyD,MAAM1H,CAAN;CAAQ,aAAM,CAACA,CAAC,CAACoR,KAAT;CAAe;CAAC;;CAAA,WAASmN,iBAAT,CAA2BzB,KAA3B,EAAiCxpB,IAAjC,EAAsCwa,KAAtC,EAA4CoQ,OAA5C,EAAoD;CAACvB,IAAAA,QAAQ,CAACuB,OAAT,GAAiBA,OAAjB;;CAAyB,QAAG;CAAC5qB,MAAAA,IAAI,GAACqpB,QAAQ,CAACwB,MAAT,CAAgB7qB,IAAhB,CAAL;CAA2BA,MAAAA,IAAI,GAACqpB,QAAQ,CAACE,WAAT,CAAqBC,KAArB,EAA2BxpB,IAA3B,CAAL;CAAsC,UAAI2W,IAAI,GAACiU,OAAO,GAACvB,QAAQ,CAAC/kB,GAAT,EAAD,GAAgB,CAAhC;CAAkC,aAAOuG,EAAE,CAACzH,IAAH,CAAQpD,IAAR,EAAawa,KAAb,EAAmB7D,IAAnB,EAAyBpB,EAAhC;CAAmC,KAA1I,CAA0I,OAAM7I,CAAN,EAAQ;CAAC,UAAG,OAAO7B,EAAP,IAAW,WAAX,IAAwB,EAAE6B,CAAC,YAAY7B,EAAE,CAACuJ,UAAlB,CAA3B,EAAyD,MAAM1H,CAAN;CAAQ,aAAM,CAACA,CAAC,CAACoR,KAAT;CAAe;CAAC;;CAAA,WAASoN,wBAAT,CAAkCC,aAAlC,EAAgDle,IAAhD,EAAqD3E,IAArD,EAA0D8iB,QAA1D,EAAmEC,QAAnE,EAA4E;;CAAE,WAASC,gBAAT,CAA0BhjB,IAA1B,EAA+B;CAAC,YAAOA,IAAP;CAAa,WAAK,CAAL;CAAO,eAAO,CAAP;;CAAS,WAAK,CAAL;CAAO,eAAO,CAAP;;CAAS,WAAK,CAAL;CAAO,eAAO,CAAP;;CAAS,WAAK,CAAL;CAAO,eAAO,CAAP;;CAAS;CAAQ,cAAM,IAAIkK,SAAJ,CAAc,wBAAsBlK,IAApC,CAAN;CAArF;CAAsI;;CAAA,WAASijB,qBAAT,GAAgC;CAAC,QAAIC,KAAK,GAAC,IAAI/Z,KAAJ,CAAU,GAAV,CAAV;;CAAyB,SAAI,IAAI3K,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,GAAd,EAAkB,EAAEA,CAApB,EAAsB;CAAC0kB,MAAAA,KAAK,CAAC1kB,CAAD,CAAL,GAASd,MAAM,CAACC,YAAP,CAAoBa,CAApB,CAAT;CAAgC;;CAAA2kB,IAAAA,gBAAgB,GAACD,KAAjB;CAAuB;;CAAA,MAAIC,gBAAgB,GAACzqB,SAArB;;CAA+B,WAAS0qB,gBAAT,CAA0BnlB,GAA1B,EAA8B;CAAC,QAAItF,GAAG,GAAC,EAAR;CAAW,QAAI0qB,CAAC,GAACplB,GAAN;;CAAU,WAAMC,MAAM,CAACmlB,CAAD,CAAZ,EAAgB;CAAC1qB,MAAAA,GAAG,IAAEwqB,gBAAgB,CAACjlB,MAAM,CAACmlB,CAAC,EAAF,CAAP,CAArB;CAAmC;;CAAA,WAAO1qB,GAAP;CAAW;;CAAA,MAAI2qB,oBAAoB,GAAC,EAAzB;CAA4B,MAAIC,eAAe,GAAC,EAApB;CAAuB,MAAIC,gBAAgB,GAAC,EAArB;CAAwB,MAAIC,MAAM,GAAC,EAAX;CAAc,MAAIC,MAAM,GAAC,EAAX;;CAAc,WAASC,qBAAT,CAA+Bhf,IAA/B,EAAoC;CAAC,QAAGjM,SAAS,KAAGiM,IAAf,EAAoB;CAAC,aAAM,UAAN;CAAiB;;CAAAA,IAAAA,IAAI,GAACA,IAAI,CAACtL,OAAL,CAAa,gBAAb,EAA8B,GAA9B,CAAL;CAAwC,QAAIQ,CAAC,GAAC8K,IAAI,CAACjG,UAAL,CAAgB,CAAhB,CAAN;;CAAyB,QAAG7E,CAAC,IAAE4pB,MAAH,IAAW5pB,CAAC,IAAE6pB,MAAjB,EAAwB;CAAC,aAAM,MAAI/e,IAAV;CAAe;;CAAA,WAAOA,IAAP;CAAY;;CAAA,WAASif,mBAAT,CAA6Bjf,IAA7B,EAAkCkf,IAAlC,EAAuC;CAAClf,IAAAA,IAAI,GAACgf,qBAAqB,CAAChf,IAAD,CAA1B;CAAiC,WAAO,IAAImf,QAAJ,CAAa,MAAb,EAAoB,qBAAmBnf,IAAnB,GAAwB,QAAxB,GAAiC,mBAAjC,GAAqD,2CAArD,GAAiG,MAArH,EAA6Hkf,IAA7H,CAAP;CAA0I;;CAAA,WAASE,WAAT,CAAqBC,aAArB,EAAmCC,SAAnC,EAA6C;CAAC,QAAIC,UAAU,GAACN,mBAAmB,CAACK,SAAD,EAAW,UAASxtB,OAAT,EAAiB;CAAC,WAAKkO,IAAL,GAAUsf,SAAV;CAAoB,WAAKxtB,OAAL,GAAaA,OAAb;CAAqB,UAAI8Q,KAAK,GAAC,IAAIhQ,KAAJ,CAAUd,OAAV,EAAmB8Q,KAA7B;;CAAmC,UAAGA,KAAK,KAAG7O,SAAX,EAAqB;CAAC,aAAK6O,KAAL,GAAW,KAAKzJ,QAAL,KAAgB,IAAhB,GAAqByJ,KAAK,CAAClO,OAAN,CAAc,oBAAd,EAAmC,EAAnC,CAAhC;CAAuE;CAAC,KAAvM,CAAlC;CAA2O6qB,IAAAA,UAAU,CAAC/iB,SAAX,GAAqBxK,MAAM,CAACqhB,MAAP,CAAcgM,aAAa,CAAC7iB,SAA5B,CAArB;CAA4D+iB,IAAAA,UAAU,CAAC/iB,SAAX,CAAqBka,WAArB,GAAiC6I,UAAjC;;CAA4CA,IAAAA,UAAU,CAAC/iB,SAAX,CAAqBrD,QAArB,GAA8B,YAAU;CAAC,UAAG,KAAKrH,OAAL,KAAeiC,SAAlB,EAA4B;CAAC,eAAO,KAAKiM,IAAZ;CAAiB,OAA9C,MAAkD;CAAC,eAAO,KAAKA,IAAL,GAAU,IAAV,GAAe,KAAKlO,OAA3B;CAAmC;CAAC,KAAhI;;CAAiI,WAAOytB,UAAP;CAAkB;;CAAA,MAAIC,YAAY,GAACzrB,SAAjB;;CAA2B,WAAS0rB,iBAAT,CAA2B3tB,OAA3B,EAAmC;CAAC,UAAM,IAAI0tB,YAAJ,CAAiB1tB,OAAjB,CAAN;CAAgC;;CAAA,MAAI4tB,aAAa,GAAC3rB,SAAlB;;CAA4B,WAAS4rB,kBAAT,CAA4B7tB,OAA5B,EAAoC;CAAC,UAAM,IAAI4tB,aAAJ,CAAkB5tB,OAAlB,CAAN;CAAiC;;CAAA,WAAS8tB,6BAAT,CAAuCC,OAAvC,EAA+CC,cAA/C,EAA8DC,iBAA9D,EAAgF;CAACF,IAAAA,OAAO,CAAC/M,OAAR,CAAgB,UAASC,IAAT,EAAc;CAAC8L,MAAAA,gBAAgB,CAAC9L,IAAD,CAAhB,GAAuB+M,cAAvB;CAAsC,KAArE;;CAAuE,aAASE,UAAT,CAAoBC,cAApB,EAAmC;CAAC,UAAIC,gBAAgB,GAACH,iBAAiB,CAACE,cAAD,CAAtC;;CAAuD,UAAGC,gBAAgB,CAACzrB,MAAjB,KAA0BorB,OAAO,CAACprB,MAArC,EAA4C;CAACkrB,QAAAA,kBAAkB,CAAC,iCAAD,CAAlB;CAAsD;;CAAA,WAAI,IAAI9lB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACgmB,OAAO,CAACprB,MAAtB,EAA6B,EAAEoF,CAA/B,EAAiC;CAACsmB,QAAAA,YAAY,CAACN,OAAO,CAAChmB,CAAD,CAAR,EAAYqmB,gBAAgB,CAACrmB,CAAD,CAA5B,CAAZ;CAA6C;CAAC;;CAAA,QAAIomB,cAAc,GAAC,IAAIzb,KAAJ,CAAUsb,cAAc,CAACrrB,MAAzB,CAAnB;CAAoD,QAAI2rB,iBAAiB,GAAC,EAAtB;CAAyB,QAAIC,UAAU,GAAC,CAAf;CAAiBP,IAAAA,cAAc,CAAChN,OAAf,CAAuB,CAACwN,EAAD,EAAIzmB,CAAJ,KAAQ;CAAC,UAAG+kB,eAAe,CAAC7R,cAAhB,CAA+BuT,EAA/B,CAAH,EAAsC;CAACL,QAAAA,cAAc,CAACpmB,CAAD,CAAd,GAAkB+kB,eAAe,CAAC0B,EAAD,CAAjC;CAAsC,OAA7E,MAAiF;CAACF,QAAAA,iBAAiB,CAACha,IAAlB,CAAuBka,EAAvB;;CAA2B,YAAG,CAAC3B,oBAAoB,CAAC5R,cAArB,CAAoCuT,EAApC,CAAJ,EAA4C;CAAC3B,UAAAA,oBAAoB,CAAC2B,EAAD,CAApB,GAAyB,EAAzB;CAA4B;;CAAA3B,QAAAA,oBAAoB,CAAC2B,EAAD,CAApB,CAAyBla,IAAzB,CAA8B,MAAI;CAAC6Z,UAAAA,cAAc,CAACpmB,CAAD,CAAd,GAAkB+kB,eAAe,CAAC0B,EAAD,CAAjC;CAAsC,YAAED,UAAF;;CAAa,cAAGA,UAAU,KAAGD,iBAAiB,CAAC3rB,MAAlC,EAAyC;CAACurB,YAAAA,UAAU,CAACC,cAAD,CAAV;CAA2B;CAAC,SAA5J;CAA8J;CAAC,KAArX;;CAAuX,QAAG,MAAIG,iBAAiB,CAAC3rB,MAAzB,EAAgC;CAACurB,MAAAA,UAAU,CAACC,cAAD,CAAV;CAA2B;CAAC;;CAAA,WAASE,YAAT,CAAsBI,OAAtB,EAA8BC,kBAA9B,EAA4D;CAAA,QAAXC,OAAW,uEAAH,EAAG;;CAAC,QAAG,EAAE,oBAAmBD,kBAArB,CAAH,EAA4C;CAAC,YAAM,IAAIjb,SAAJ,CAAc,yDAAd,CAAN;CAA+E;;CAAA,QAAIvF,IAAI,GAACwgB,kBAAkB,CAACxgB,IAA5B;;CAAiC,QAAG,CAACugB,OAAJ,EAAY;CAACd,MAAAA,iBAAiB,CAAC,WAASzf,IAAT,GAAc,+CAAf,CAAjB;CAAiF;;CAAA,QAAG4e,eAAe,CAAC7R,cAAhB,CAA+BwT,OAA/B,CAAH,EAA2C;CAAC,UAAGE,OAAO,CAACC,4BAAX,EAAwC;CAAC;CAAO,OAAhD,MAAoD;CAACjB,QAAAA,iBAAiB,CAAC,2BAAyBzf,IAAzB,GAA8B,SAA/B,CAAjB;CAA2D;CAAC;;CAAA4e,IAAAA,eAAe,CAAC2B,OAAD,CAAf,GAAyBC,kBAAzB;CAA4C,WAAO3B,gBAAgB,CAAC0B,OAAD,CAAvB;;CAAiC,QAAG5B,oBAAoB,CAAC5R,cAArB,CAAoCwT,OAApC,CAAH,EAAgD;CAAC,UAAIte,SAAS,GAAC0c,oBAAoB,CAAC4B,OAAD,CAAlC;CAA4C,aAAO5B,oBAAoB,CAAC4B,OAAD,CAA3B;CAAqCte,MAAAA,SAAS,CAAC6Q,OAAV,CAAkB5U,EAAE,IAAEA,EAAE,EAAxB;CAA4B;CAAC;;CAAA,WAASyiB,sBAAT,CAAgCJ,OAAhC,EAAwCvgB,IAAxC,EAA6C3E,IAA7C,EAAkDulB,SAAlD,EAA4DC,UAA5D,EAAuE;CAAC,QAAIpjB,KAAK,GAAC4gB,gBAAgB,CAAChjB,IAAD,CAA1B;CAAiC2E,IAAAA,IAAI,GAACye,gBAAgB,CAACze,IAAD,CAArB;CAA4BmgB,IAAAA,YAAY,CAACI,OAAD,EAAS;CAACvgB,MAAAA,IAAI,EAACA,IAAN;CAAW,sBAAe,UAAS8gB,EAAT,EAAY;CAAC,eAAM,CAAC,CAACA,EAAR;CAAW,OAAlD;CAAmD,oBAAa,UAASC,WAAT,EAAqBC,CAArB,EAAuB;CAAC,eAAOA,CAAC,GAACJ,SAAD,GAAWC,UAAnB;CAA8B,OAAtH;CAAuH,wBAAiB,CAAxI;CAA0I,8BAAuB,UAASI,OAAT,EAAiB;CAAC,YAAIxnB,IAAJ;;CAAS,YAAG4B,IAAI,KAAG,CAAV,EAAY;CAAC5B,UAAAA,IAAI,GAAC8B,KAAL;CAAW,SAAxB,MAA6B,IAAGF,IAAI,KAAG,CAAV,EAAY;CAAC5B,UAAAA,IAAI,GAACgB,MAAL;CAAY,SAAzB,MAA8B,IAAGY,IAAI,KAAG,CAAV,EAAY;CAAC5B,UAAAA,IAAI,GAACuB,MAAL;CAAY,SAAzB,MAA6B;CAAC,gBAAM,IAAIuK,SAAJ,CAAc,gCAA8BvF,IAA5C,CAAN;CAAwD;;CAAA,eAAO,KAAK,cAAL,EAAqBvG,IAAI,CAACwnB,OAAO,IAAExjB,KAAV,CAAzB,CAAP;CAAkD,OAA/X;CAAgYyjB,MAAAA,kBAAkB,EAAC;CAAnZ,KAAT,CAAZ;CAA+a;;CAAA,WAASC,qBAAT,CAA+BC,KAA/B,EAAqC;CAAC,QAAG,EAAE,gBAAgBC,WAAlB,CAAH,EAAkC;CAAC,aAAO,KAAP;CAAa;;CAAA,QAAG,EAAED,KAAK,YAAYC,WAAnB,CAAH,EAAmC;CAAC,aAAO,KAAP;CAAa;;CAAA,QAAIC,SAAS,GAAC,KAAKC,EAAL,CAAQC,OAAR,CAAgBC,eAA9B;CAA8C,QAAIC,IAAI,GAAC,KAAKH,EAAL,CAAQjoB,GAAjB;CAAqB,QAAIqoB,UAAU,GAACP,KAAK,CAACG,EAAN,CAASC,OAAT,CAAiBC,eAAhC;CAAgD,QAAIG,KAAK,GAACR,KAAK,CAACG,EAAN,CAASjoB,GAAnB;;CAAuB,WAAMgoB,SAAS,CAACO,SAAhB,EAA0B;CAACH,MAAAA,IAAI,GAACJ,SAAS,CAACQ,MAAV,CAAiBJ,IAAjB,CAAL;CAA4BJ,MAAAA,SAAS,GAACA,SAAS,CAACO,SAApB;CAA8B;;CAAA,WAAMF,UAAU,CAACE,SAAjB,EAA2B;CAACD,MAAAA,KAAK,GAACD,UAAU,CAACG,MAAX,CAAkBF,KAAlB,CAAN;CAA+BD,MAAAA,UAAU,GAACA,UAAU,CAACE,SAAtB;CAAgC;;CAAA,WAAOP,SAAS,KAAGK,UAAZ,IAAwBD,IAAI,KAAGE,KAAtC;CAA4C;;CAAA,WAASG,0BAAT,CAAoCf,CAApC,EAAsC;CAAC,WAAM;CAAC5R,MAAAA,KAAK,EAAC4R,CAAC,CAAC5R,KAAT;CAAe4S,MAAAA,eAAe,EAAChB,CAAC,CAACgB,eAAjC;CAAiDC,MAAAA,uBAAuB,EAACjB,CAAC,CAACiB,uBAA3E;CAAmG3oB,MAAAA,GAAG,EAAC0nB,CAAC,CAAC1nB,GAAzG;CAA6GkoB,MAAAA,OAAO,EAACR,CAAC,CAACQ,OAAvH;CAA+HU,MAAAA,QAAQ,EAAClB,CAAC,CAACkB,QAA1I;CAAmJC,MAAAA,YAAY,EAACnB,CAAC,CAACmB;CAAlK,KAAN;CAAsL;;CAAA,WAASC,2BAAT,CAAqCrK,GAArC,EAAyC;CAAC,aAASsK,mBAAT,CAA6BC,MAA7B,EAAoC;CAAC,aAAOA,MAAM,CAACf,EAAP,CAAUC,OAAV,CAAkBC,eAAlB,CAAkCzhB,IAAzC;CAA8C;;CAAAyf,IAAAA,iBAAiB,CAAC4C,mBAAmB,CAACtK,GAAD,CAAnB,GAAyB,2BAA1B,CAAjB;CAAwE;;CAAA,MAAIwK,oBAAoB,GAAC,KAAzB;;CAA+B,WAASC,eAAT,CAAyBF,MAAzB,EAAgC;;CAAE,WAASG,aAAT,CAAuBlB,EAAvB,EAA0B;CAAC,QAAGA,EAAE,CAACW,QAAN,EAAe;CAACX,MAAAA,EAAE,CAACY,YAAH,CAAgBO,aAAhB,CAA8BnB,EAAE,CAACW,QAAjC;CAA2C,KAA3D,MAA+D;CAACX,MAAAA,EAAE,CAACC,OAAH,CAAWC,eAAX,CAA2BiB,aAA3B,CAAyCnB,EAAE,CAACjoB,GAA5C;CAAiD;CAAC;;CAAA,WAASqpB,kBAAT,CAA4BpB,EAA5B,EAA+B;CAACA,IAAAA,EAAE,CAACnS,KAAH,CAAStM,KAAT,IAAgB,CAAhB;CAAkB,QAAI8f,QAAQ,GAAC,MAAIrB,EAAE,CAACnS,KAAH,CAAStM,KAA1B;;CAAgC,QAAG8f,QAAH,EAAY;CAACH,MAAAA,aAAa,CAAClB,EAAD,CAAb;CAAkB;CAAC;;CAAA,WAASsB,eAAT,CAAyBvpB,GAAzB,EAA6BwpB,QAA7B,EAAsCC,YAAtC,EAAmD;CAAC,QAAGD,QAAQ,KAAGC,YAAd,EAA2B;CAAC,aAAOzpB,GAAP;CAAW;;CAAA,QAAGvF,SAAS,KAAGgvB,YAAY,CAAClB,SAA5B,EAAsC;CAAC,aAAO,IAAP;CAAY;;CAAA,QAAImB,EAAE,GAACH,eAAe,CAACvpB,GAAD,EAAKwpB,QAAL,EAAcC,YAAY,CAAClB,SAA3B,CAAtB;;CAA4D,QAAGmB,EAAE,KAAG,IAAR,EAAa;CAAC,aAAO,IAAP;CAAY;;CAAA,WAAOD,YAAY,CAACE,QAAb,CAAsBD,EAAtB,CAAP;CAAiC;;CAAA,MAAIE,kBAAkB,GAAC,EAAvB;;CAA0B,WAASC,yBAAT,GAAoC;CAAC,WAAOnxB,MAAM,CAACmhB,IAAP,CAAYiQ,mBAAZ,EAAiC3uB,MAAxC;CAA+C;;CAAA,WAAS4uB,yBAAT,GAAoC;CAAC,QAAIL,EAAE,GAAC,EAAP;;CAAU,SAAI,IAAIM,CAAR,IAAaF,mBAAb,EAAiC;CAAC,UAAGA,mBAAmB,CAACrW,cAApB,CAAmCuW,CAAnC,CAAH,EAAyC;CAACN,QAAAA,EAAE,CAAC5c,IAAH,CAAQgd,mBAAmB,CAACE,CAAD,CAA3B;CAAgC;CAAC;;CAAA,WAAON,EAAP;CAAU;;CAAA,MAAIO,aAAa,GAAC,EAAlB;;CAAqB,WAASC,mBAAT,GAA8B;CAAC,WAAMD,aAAa,CAAC9uB,MAApB,EAA2B;CAAC,UAAIsjB,GAAG,GAACwL,aAAa,CAAChR,GAAd,EAAR;CAA4BwF,MAAAA,GAAG,CAACwJ,EAAJ,CAAOS,eAAP,GAAuB,KAAvB;CAA6BjK,MAAAA,GAAG,CAAC,QAAD,CAAH;CAAgB;CAAC;;CAAA,MAAI0L,aAAa,GAAC1vB,SAAlB;;CAA4B,WAAS2vB,gBAAT,CAA0B9J,EAA1B,EAA6B;CAAC6J,IAAAA,aAAa,GAAC7J,EAAd;;CAAiB,QAAG2J,aAAa,CAAC9uB,MAAd,IAAsBgvB,aAAzB,EAAuC;CAACA,MAAAA,aAAa,CAACD,mBAAD,CAAb;CAAmC;CAAC;;CAAA,WAASG,WAAT,GAAsB;CAACtyB,IAAAA,MAAM,CAAC,2BAAD,CAAN,GAAoC8xB,yBAApC;CAA8D9xB,IAAAA,MAAM,CAAC,2BAAD,CAAN,GAAoCgyB,yBAApC;CAA8DhyB,IAAAA,MAAM,CAAC,qBAAD,CAAN,GAA8BmyB,mBAA9B;CAAkDnyB,IAAAA,MAAM,CAAC,kBAAD,CAAN,GAA2BqyB,gBAA3B;CAA4C;;CAAA,MAAIN,mBAAmB,GAAC,EAAxB;;CAA2B,WAASQ,gBAAT,CAA0BC,MAA1B,EAAiCvqB,GAAjC,EAAqC;CAAC,QAAGA,GAAG,KAAGvF,SAAT,EAAmB;CAAC0rB,MAAAA,iBAAiB,CAAC,6BAAD,CAAjB;CAAiD;;CAAA,WAAMoE,MAAM,CAAChC,SAAb,EAAuB;CAACvoB,MAAAA,GAAG,GAACuqB,MAAM,CAAC/B,MAAP,CAAcxoB,GAAd,CAAJ;CAAuBuqB,MAAAA,MAAM,GAACA,MAAM,CAAChC,SAAd;CAAwB;;CAAA,WAAOvoB,GAAP;CAAW;;CAAA,WAASwqB,oBAAT,CAA8BD,MAA9B,EAAqCvqB,GAArC,EAAyC;CAACA,IAAAA,GAAG,GAACsqB,gBAAgB,CAACC,MAAD,EAAQvqB,GAAR,CAApB;CAAiC,WAAO8pB,mBAAmB,CAAC9pB,GAAD,CAA1B;CAAgC;;CAAA,WAASyqB,eAAT,CAAyBvnB,SAAzB,EAAmCwnB,MAAnC,EAA0C;CAAC,QAAG,CAACA,MAAM,CAACxC,OAAR,IAAiB,CAACwC,MAAM,CAAC1qB,GAA5B,EAAgC;CAACqmB,MAAAA,kBAAkB,CAAC,0CAAD,CAAlB;CAA+D;;CAAA,QAAIsE,eAAe,GAAC,CAAC,CAACD,MAAM,CAAC7B,YAA7B;CAA0C,QAAI+B,WAAW,GAAC,CAAC,CAACF,MAAM,CAAC9B,QAAzB;;CAAkC,QAAG+B,eAAe,KAAGC,WAArB,EAAiC;CAACvE,MAAAA,kBAAkB,CAAC,kDAAD,CAAlB;CAAuE;;CAAAqE,IAAAA,MAAM,CAAC5U,KAAP,GAAa;CAACtM,MAAAA,KAAK,EAAC;CAAP,KAAb;CAAuB,WAAOqhB,eAAe,CAACnyB,MAAM,CAACqhB,MAAP,CAAc7W,SAAd,EAAwB;CAAC+kB,MAAAA,EAAE,EAAC;CAACze,QAAAA,KAAK,EAACkhB;CAAP;CAAJ,KAAxB,CAAD,CAAtB;CAAqE;;CAAA,WAASI,8BAAT,CAAwC9qB,GAAxC,EAA4C;CAAC,QAAI+qB,UAAU,GAAC,KAAKC,UAAL,CAAgBhrB,GAAhB,CAAf;;CAAoC,QAAG,CAAC+qB,UAAJ,EAAe;CAAC,WAAKE,UAAL,CAAgBjrB,GAAhB;CAAqB,aAAO,IAAP;CAAY;;CAAA,QAAIknB,kBAAkB,GAACsD,oBAAoB,CAAC,KAAKrC,eAAN,EAAsB4C,UAAtB,CAA3C;;CAA6E,QAAGtwB,SAAS,KAAGysB,kBAAf,EAAkC;CAAC,UAAG,MAAIA,kBAAkB,CAACe,EAAnB,CAAsBnS,KAAtB,CAA4BtM,KAAnC,EAAyC;CAAC0d,QAAAA,kBAAkB,CAACe,EAAnB,CAAsBjoB,GAAtB,GAA0B+qB,UAA1B;CAAqC7D,QAAAA,kBAAkB,CAACe,EAAnB,CAAsBW,QAAtB,GAA+B5oB,GAA/B;CAAmC,eAAOknB,kBAAkB,CAAC,OAAD,CAAlB,EAAP;CAAqC,OAAvJ,MAA2J;CAAC,YAAIwC,EAAE,GAACxC,kBAAkB,CAAC,OAAD,CAAlB,EAAP;CAAqC,aAAK+D,UAAL,CAAgBjrB,GAAhB;CAAqB,eAAO0pB,EAAP;CAAU;CAAC;;CAAA,aAASwB,iBAAT,GAA4B;CAAC,UAAG,KAAKC,cAAR,EAAuB;CAAC,eAAOV,eAAe,CAAC,KAAKtC,eAAL,CAAqBiD,iBAAtB,EAAwC;CAAClD,UAAAA,OAAO,EAAC,KAAKmD,WAAd;CAA0BrrB,UAAAA,GAAG,EAAC+qB,UAA9B;CAAyClC,UAAAA,YAAY,EAAC,IAAtD;CAA2DD,UAAAA,QAAQ,EAAC5oB;CAApE,SAAxC,CAAtB;CAAwI,OAAhK,MAAoK;CAAC,eAAOyqB,eAAe,CAAC,KAAKtC,eAAL,CAAqBiD,iBAAtB,EAAwC;CAAClD,UAAAA,OAAO,EAAC,IAAT;CAAcloB,UAAAA,GAAG,EAACA;CAAlB,SAAxC,CAAtB;CAAsF;CAAC;;CAAA,QAAIsrB,UAAU,GAAC,KAAKnD,eAAL,CAAqBoD,aAArB,CAAmCR,UAAnC,CAAf;CAA8D,QAAIS,uBAAuB,GAAC5B,kBAAkB,CAAC0B,UAAD,CAA9C;;CAA2D,QAAG,CAACE,uBAAJ,EAA4B;CAAC,aAAON,iBAAiB,CAAC/f,IAAlB,CAAuB,IAAvB,CAAP;CAAoC;;CAAA,QAAIsgB,MAAJ;;CAAW,QAAG,KAAKC,OAAR,EAAgB;CAACD,MAAAA,MAAM,GAACD,uBAAuB,CAACG,gBAA/B;CAAgD,KAAjE,MAAqE;CAACF,MAAAA,MAAM,GAACD,uBAAuB,CAACI,WAA/B;CAA2C;;CAAA,QAAIC,EAAE,GAACtC,eAAe,CAACwB,UAAD,EAAY,KAAK5C,eAAjB,EAAiCsD,MAAM,CAACtD,eAAxC,CAAtB;;CAA+E,QAAG0D,EAAE,KAAG,IAAR,EAAa;CAAC,aAAOX,iBAAiB,CAAC/f,IAAlB,CAAuB,IAAvB,CAAP;CAAoC;;CAAA,QAAG,KAAKggB,cAAR,EAAuB;CAAC,aAAOV,eAAe,CAACgB,MAAM,CAACtD,eAAP,CAAuBiD,iBAAxB,EAA0C;CAAClD,QAAAA,OAAO,EAACuD,MAAT;CAAgBzrB,QAAAA,GAAG,EAAC6rB,EAApB;CAAuBhD,QAAAA,YAAY,EAAC,IAApC;CAAyCD,QAAAA,QAAQ,EAAC5oB;CAAlD,OAA1C,CAAtB;CAAwH,KAAhJ,MAAoJ;CAAC,aAAOyqB,eAAe,CAACgB,MAAM,CAACtD,eAAP,CAAuBiD,iBAAxB,EAA0C;CAAClD,QAAAA,OAAO,EAACuD,MAAT;CAAgBzrB,QAAAA,GAAG,EAAC6rB;CAApB,OAA1C,CAAtB;CAAyF;CAAC;;CAAA,WAAShB,eAAT,CAAyB7B,MAAzB,EAAgC;CAAC,QAAG,gBAAc,OAAO8C,oBAAxB,EAA6C;CAACjB,MAAAA,eAAe,GAAE7B,MAAM,IAAEA,MAAzB;;CAAiC,aAAOA,MAAP;CAAc;;CAAAC,IAAAA,oBAAoB,GAAC,IAAI6C,oBAAJ,CAAyBlkB,IAAI,IAAE;CAAC1P,MAAAA,OAAO,CAACG,IAAR,CAAauP,IAAI,CAACmkB,WAAL,CAAiBziB,KAAjB,CAAuBlO,OAAvB,CAA+B,UAA/B,EAA0C,EAA1C,CAAb;CAA4DiuB,MAAAA,kBAAkB,CAACzhB,IAAI,CAACqgB,EAAN,CAAlB;CAA4B,KAAxH,CAArB;;CAA+I4C,IAAAA,eAAe,GAAE7B,MAAM,IAAE;CAAC,UAAIf,EAAE,GAACe,MAAM,CAACf,EAAd;CAAiB,UAAI2C,WAAW,GAAC,CAAC,CAAC3C,EAAE,CAACW,QAArB;;CAA8B,UAAGgC,WAAH,EAAe;CAAC,YAAIhjB,IAAI,GAAC;CAACqgB,UAAAA,EAAE,EAACA;CAAJ,SAAT;CAAiB,YAAI+D,GAAG,GAAC/D,EAAE,CAACC,OAAH,CAAWC,eAAnB;CAAmCvgB,QAAAA,IAAI,CAACmkB,WAAL,GAAiB,IAAIzyB,KAAJ,CAAU,wCAAsC0yB,GAAG,CAACtlB,IAA1C,GAA+C,MAA/C,GAAsDuhB,EAAE,CAACjoB,GAAH,CAAOH,QAAP,CAAgB,EAAhB,CAAtD,GAA0E,MAA1E,GAAiF,iHAAjF,GAAmM,sFAAnM,GAA0R,sBAApS,CAAjB;;CAA6U,YAAG,uBAAsBvG,KAAzB,EAA+B;CAACA,UAAAA,KAAK,CAAC2yB,iBAAN,CAAwBrkB,IAAI,CAACmkB,WAA7B,EAAyCjB,8BAAzC;CAAyE;;CAAA7B,QAAAA,oBAAoB,CAAC9b,QAArB,CAA8B6b,MAA9B,EAAqCphB,IAArC,EAA0CohB,MAA1C;CAAkD;;CAAA,aAAOA,MAAP;CAAc,KAAnoB;;CAAqoBE,IAAAA,eAAe,GAAEF,MAAM,IAAEC,oBAAoB,CAACiD,UAArB,CAAgClD,MAAhC,CAAzB;;CAAkE,WAAO6B,eAAe,CAAC7B,MAAD,CAAtB;CAA+B;;CAAA,WAASmD,iBAAT,GAA4B;CAAC,QAAG,CAAC,KAAKlE,EAAL,CAAQjoB,GAAZ,EAAgB;CAAC8oB,MAAAA,2BAA2B,CAAC,IAAD,CAA3B;CAAkC;;CAAA,QAAG,KAAKb,EAAL,CAAQU,uBAAX,EAAmC;CAAC,WAAKV,EAAL,CAAQnS,KAAR,CAActM,KAAd,IAAqB,CAArB;CAAuB,aAAO,IAAP;CAAY,KAAvE,MAA2E;CAAC,UAAI4iB,KAAK,GAACvB,eAAe,CAACnyB,MAAM,CAACqhB,MAAP,CAAcrhB,MAAM,CAAC2zB,cAAP,CAAsB,IAAtB,CAAd,EAA0C;CAACpE,QAAAA,EAAE,EAAC;CAACze,UAAAA,KAAK,EAACif,0BAA0B,CAAC,KAAKR,EAAN;CAAjC;CAAJ,OAA1C,CAAD,CAAzB;CAAuHmE,MAAAA,KAAK,CAACnE,EAAN,CAASnS,KAAT,CAAetM,KAAf,IAAsB,CAAtB;CAAwB4iB,MAAAA,KAAK,CAACnE,EAAN,CAASS,eAAT,GAAyB,KAAzB;CAA+B,aAAO0D,KAAP;CAAa;CAAC;;CAAA,WAASE,kBAAT,GAA6B;CAAC,QAAG,CAAC,KAAKrE,EAAL,CAAQjoB,GAAZ,EAAgB;CAAC8oB,MAAAA,2BAA2B,CAAC,IAAD,CAA3B;CAAkC;;CAAA,QAAG,KAAKb,EAAL,CAAQS,eAAR,IAAyB,CAAC,KAAKT,EAAL,CAAQU,uBAArC,EAA6D;CAACxC,MAAAA,iBAAiB,CAAC,uCAAD,CAAjB;CAA2D;;CAAA+C,IAAAA,eAAe,CAAC,IAAD,CAAf;CAAsBG,IAAAA,kBAAkB,CAAC,KAAKpB,EAAN,CAAlB;;CAA4B,QAAG,CAAC,KAAKA,EAAL,CAAQU,uBAAZ,EAAoC;CAAC,WAAKV,EAAL,CAAQW,QAAR,GAAiBnuB,SAAjB;CAA2B,WAAKwtB,EAAL,CAAQjoB,GAAR,GAAYvF,SAAZ;CAAsB;CAAC;;CAAA,WAAS8xB,qBAAT,GAAgC;CAAC,WAAM,CAAC,KAAKtE,EAAL,CAAQjoB,GAAf;CAAmB;;CAAA,WAASwsB,uBAAT,GAAkC;CAAC,QAAG,CAAC,KAAKvE,EAAL,CAAQjoB,GAAZ,EAAgB;CAAC8oB,MAAAA,2BAA2B,CAAC,IAAD,CAA3B;CAAkC;;CAAA,QAAG,KAAKb,EAAL,CAAQS,eAAR,IAAyB,CAAC,KAAKT,EAAL,CAAQU,uBAArC,EAA6D;CAACxC,MAAAA,iBAAiB,CAAC,uCAAD,CAAjB;CAA2D;;CAAA8D,IAAAA,aAAa,CAACnd,IAAd,CAAmB,IAAnB;;CAAyB,QAAGmd,aAAa,CAAC9uB,MAAd,KAAuB,CAAvB,IAA0BgvB,aAA7B,EAA2C;CAACA,MAAAA,aAAa,CAACD,mBAAD,CAAb;CAAmC;;CAAA,SAAKjC,EAAL,CAAQS,eAAR,GAAwB,IAAxB;CAA6B,WAAO,IAAP;CAAY;;CAAA,WAAS+D,gBAAT,GAA2B;CAAC1E,IAAAA,WAAW,CAAC7kB,SAAZ,CAAsB,WAAtB,IAAmC2kB,qBAAnC;CAAyDE,IAAAA,WAAW,CAAC7kB,SAAZ,CAAsB,OAAtB,IAA+BipB,iBAA/B;CAAiDpE,IAAAA,WAAW,CAAC7kB,SAAZ,CAAsB,QAAtB,IAAgCopB,kBAAhC;CAAmDvE,IAAAA,WAAW,CAAC7kB,SAAZ,CAAsB,WAAtB,IAAmCqpB,qBAAnC;CAAyDxE,IAAAA,WAAW,CAAC7kB,SAAZ,CAAsB,aAAtB,IAAqCspB,uBAArC;CAA6D;;CAAA,WAASzE,WAAT,GAAsB;;CAAE,WAAS2E,mBAAT,CAA6BC,KAA7B,EAAmCC,UAAnC,EAA8CC,SAA9C,EAAwD;CAAC,QAAGpyB,SAAS,KAAGkyB,KAAK,CAACC,UAAD,CAAL,CAAkBE,aAAjC,EAA+C;CAAC,UAAIC,QAAQ,GAACJ,KAAK,CAACC,UAAD,CAAlB;;CAA+BD,MAAAA,KAAK,CAACC,UAAD,CAAL,GAAkB,YAAU;CAAC,YAAG,CAACD,KAAK,CAACC,UAAD,CAAL,CAAkBE,aAAlB,CAAgCrZ,cAAhC,CAA+C1M,SAAS,CAAC5L,MAAzD,CAAJ,EAAqE;CAACgrB,UAAAA,iBAAiB,CAAC,eAAa0G,SAAb,GAAuB,gDAAvB,GAAwE9lB,SAAS,CAAC5L,MAAlF,GAAyF,sBAAzF,GAAgHwxB,KAAK,CAACC,UAAD,CAAL,CAAkBE,aAAlI,GAAgJ,IAAjJ,CAAjB;CAAwK;;CAAA,eAAOH,KAAK,CAACC,UAAD,CAAL,CAAkBE,aAAlB,CAAgC/lB,SAAS,CAAC5L,MAA1C,EAAkD2L,KAAlD,CAAwD,IAAxD,EAA6DC,SAA7D,CAAP;CAA+E,OAA1V;;CAA2V4lB,MAAAA,KAAK,CAACC,UAAD,CAAL,CAAkBE,aAAlB,GAAgC,EAAhC;CAAmCH,MAAAA,KAAK,CAACC,UAAD,CAAL,CAAkBE,aAAlB,CAAgCC,QAAQ,CAACC,QAAzC,IAAmDD,QAAnD;CAA4D;CAAC;;CAAA,WAASE,kBAAT,CAA4BvmB,IAA5B,EAAiC8C,KAAjC,EAAuC0jB,YAAvC,EAAoD;CAAC,QAAGn1B,MAAM,CAAC0b,cAAP,CAAsB/M,IAAtB,CAAH,EAA+B;CAAC,UAAGjM,SAAS,KAAGyyB,YAAZ,IAA0BzyB,SAAS,KAAG1C,MAAM,CAAC2O,IAAD,CAAN,CAAaomB,aAAzB,IAAwCryB,SAAS,KAAG1C,MAAM,CAAC2O,IAAD,CAAN,CAAaomB,aAAb,CAA2BI,YAA3B,CAAjF,EAA0H;CAAC/G,QAAAA,iBAAiB,CAAC,kCAAgCzf,IAAhC,GAAqC,SAAtC,CAAjB;CAAkE;;CAAAgmB,MAAAA,mBAAmB,CAAC30B,MAAD,EAAQ2O,IAAR,EAAaA,IAAb,CAAnB;;CAAsC,UAAG3O,MAAM,CAAC0b,cAAP,CAAsByZ,YAAtB,CAAH,EAAuC;CAAC/G,QAAAA,iBAAiB,CAAC,yFAAuF+G,YAAvF,GAAoG,IAArG,CAAjB;CAA4H;;CAAAn1B,MAAAA,MAAM,CAAC2O,IAAD,CAAN,CAAaomB,aAAb,CAA2BI,YAA3B,IAAyC1jB,KAAzC;CAA+C,KAAtd,MAA0d;CAACzR,MAAAA,MAAM,CAAC2O,IAAD,CAAN,GAAa8C,KAAb;;CAAmB,UAAG/O,SAAS,KAAGyyB,YAAf,EAA4B;CAACn1B,QAAAA,MAAM,CAAC2O,IAAD,CAAN,CAAawmB,YAAb,GAA0BA,YAA1B;CAAuC;CAAC;CAAC;;CAAA,WAASC,eAAT,CAAyBzmB,IAAzB,EAA8B0W,WAA9B,EAA0CgO,iBAA1C,EAA4DhC,aAA5D,EAA0Eb,SAA1E,EAAoFgD,aAApF,EAAkG/C,MAAlG,EAAyGmB,QAAzG,EAAkH;CAAC,SAAKjjB,IAAL,GAAUA,IAAV;CAAe,SAAK0W,WAAL,GAAiBA,WAAjB;CAA6B,SAAKgO,iBAAL,GAAuBA,iBAAvB;CAAyC,SAAKhC,aAAL,GAAmBA,aAAnB;CAAiC,SAAKb,SAAL,GAAeA,SAAf;CAAyB,SAAKgD,aAAL,GAAmBA,aAAnB;CAAiC,SAAK/C,MAAL,GAAYA,MAAZ;CAAmB,SAAKmB,QAAL,GAAcA,QAAd;CAAuB,SAAKyD,oBAAL,GAA0B,EAA1B;CAA6B;;CAAA,WAASC,aAAT,CAAuBrtB,GAAvB,EAA2BwpB,QAA3B,EAAoCC,YAApC,EAAiD;CAAC,WAAMD,QAAQ,KAAGC,YAAjB,EAA8B;CAAC,UAAG,CAACD,QAAQ,CAAChB,MAAb,EAAoB;CAACrC,QAAAA,iBAAiB,CAAC,kCAAgCsD,YAAY,CAAC/iB,IAA7C,GAAkD,uBAAlD,GAA0E8iB,QAAQ,CAAC9iB,IAApF,CAAjB;CAA2G;;CAAA1G,MAAAA,GAAG,GAACwpB,QAAQ,CAAChB,MAAT,CAAgBxoB,GAAhB,CAAJ;CAAyBwpB,MAAAA,QAAQ,GAACA,QAAQ,CAACjB,SAAlB;CAA4B;;CAAA,WAAOvoB,GAAP;CAAW;;CAAA,WAASstB,mCAAT,CAA6C7F,WAA7C,EAAyDuB,MAAzD,EAAgE;CAAC,QAAGA,MAAM,KAAG,IAAZ,EAAiB;CAAC,UAAG,KAAKuE,WAAR,EAAoB;CAACpH,QAAAA,iBAAiB,CAAC,yBAAuB,KAAKzf,IAA7B,CAAjB;CAAoD;;CAAA,aAAO,CAAP;CAAS;;CAAA,QAAG,CAACsiB,MAAM,CAACf,EAAX,EAAc;CAAC9B,MAAAA,iBAAiB,CAAC,kBAAgBqH,YAAY,CAACxE,MAAD,CAA5B,GAAqC,SAArC,GAA+C,KAAKtiB,IAArD,CAAjB;CAA4E;;CAAA,QAAG,CAACsiB,MAAM,CAACf,EAAP,CAAUjoB,GAAd,EAAkB;CAACmmB,MAAAA,iBAAiB,CAAC,qDAAmD,KAAKzf,IAAzD,CAAjB;CAAgF;;CAAA,QAAI+mB,WAAW,GAACzE,MAAM,CAACf,EAAP,CAAUC,OAAV,CAAkBC,eAAlC;CAAkD,QAAInoB,GAAG,GAACqtB,aAAa,CAACrE,MAAM,CAACf,EAAP,CAAUjoB,GAAX,EAAeytB,WAAf,EAA2B,KAAKtF,eAAhC,CAArB;CAAsE,WAAOnoB,GAAP;CAAW;;CAAA,WAAS0tB,wBAAT,CAAkCjG,WAAlC,EAA8CuB,MAA9C,EAAqD;CAAC,QAAIhpB,GAAJ;;CAAQ,QAAGgpB,MAAM,KAAG,IAAZ,EAAiB;CAAC,UAAG,KAAKuE,WAAR,EAAoB;CAACpH,QAAAA,iBAAiB,CAAC,yBAAuB,KAAKzf,IAA7B,CAAjB;CAAoD;;CAAA,UAAG,KAAKykB,cAAR,EAAuB;CAACnrB,QAAAA,GAAG,GAAC,KAAK2tB,cAAL,EAAJ;;CAA0B,YAAGlG,WAAW,KAAG,IAAjB,EAAsB;CAACA,UAAAA,WAAW,CAAC3a,IAAZ,CAAiB,KAAKsc,aAAtB,EAAoCppB,GAApC;CAAyC;;CAAA,eAAOA,GAAP;CAAW,OAA7H,MAAiI;CAAC,eAAO,CAAP;CAAS;CAAC;;CAAA,QAAG,CAACgpB,MAAM,CAACf,EAAX,EAAc;CAAC9B,MAAAA,iBAAiB,CAAC,kBAAgBqH,YAAY,CAACxE,MAAD,CAA5B,GAAqC,SAArC,GAA+C,KAAKtiB,IAArD,CAAjB;CAA4E;;CAAA,QAAG,CAACsiB,MAAM,CAACf,EAAP,CAAUjoB,GAAd,EAAkB;CAACmmB,MAAAA,iBAAiB,CAAC,qDAAmD,KAAKzf,IAAzD,CAAjB;CAAgF;;CAAA,QAAG,CAAC,KAAKglB,OAAN,IAAe1C,MAAM,CAACf,EAAP,CAAUC,OAAV,CAAkBwD,OAApC,EAA4C;CAACvF,MAAAA,iBAAiB,CAAC,sCAAoC6C,MAAM,CAACf,EAAP,CAAUY,YAAV,GAAuBG,MAAM,CAACf,EAAP,CAAUY,YAAV,CAAuBniB,IAA9C,GAAmDsiB,MAAM,CAACf,EAAP,CAAUC,OAAV,CAAkBxhB,IAAzG,IAA+G,qBAA/G,GAAqI,KAAKA,IAA3I,CAAjB;CAAkK;;CAAA,QAAI+mB,WAAW,GAACzE,MAAM,CAACf,EAAP,CAAUC,OAAV,CAAkBC,eAAlC;CAAkDnoB,IAAAA,GAAG,GAACqtB,aAAa,CAACrE,MAAM,CAACf,EAAP,CAAUjoB,GAAX,EAAeytB,WAAf,EAA2B,KAAKtF,eAAhC,CAAjB;;CAAkE,QAAG,KAAKgD,cAAR,EAAuB;CAAC,UAAG1wB,SAAS,KAAGuuB,MAAM,CAACf,EAAP,CAAUW,QAAzB,EAAkC;CAACzC,QAAAA,iBAAiB,CAAC,iDAAD,CAAjB;CAAqE;;CAAA,cAAO,KAAKyH,aAAZ;CAA2B,aAAK,CAAL;CAAO,cAAG5E,MAAM,CAACf,EAAP,CAAUY,YAAV,KAAyB,IAA5B,EAAiC;CAAC7oB,YAAAA,GAAG,GAACgpB,MAAM,CAACf,EAAP,CAAUW,QAAd;CAAuB,WAAzD,MAA6D;CAACzC,YAAAA,iBAAiB,CAAC,sCAAoC6C,MAAM,CAACf,EAAP,CAAUY,YAAV,GAAuBG,MAAM,CAACf,EAAP,CAAUY,YAAV,CAAuBniB,IAA9C,GAAmDsiB,MAAM,CAACf,EAAP,CAAUC,OAAV,CAAkBxhB,IAAzG,IAA+G,qBAA/G,GAAqI,KAAKA,IAA3I,CAAjB;CAAkK;;CAAA;;CAAM,aAAK,CAAL;CAAO1G,UAAAA,GAAG,GAACgpB,MAAM,CAACf,EAAP,CAAUW,QAAd;CAAuB;;CAAM,aAAK,CAAL;CAAO,cAAGI,MAAM,CAACf,EAAP,CAAUY,YAAV,KAAyB,IAA5B,EAAiC;CAAC7oB,YAAAA,GAAG,GAACgpB,MAAM,CAACf,EAAP,CAAUW,QAAd;CAAuB,WAAzD,MAA6D;CAAC,gBAAIiF,YAAY,GAAC7E,MAAM,CAAC,OAAD,CAAN,EAAjB;CAAmChpB,YAAAA,GAAG,GAAC,KAAK8tB,QAAL,CAAc9tB,GAAd,EAAkB+tB,KAAK,CAACC,QAAN,CAAe,YAAU;CAACH,cAAAA,YAAY,CAAC,QAAD,CAAZ;CAAyB,aAAnD,CAAlB,CAAJ;;CAA4E,gBAAGpG,WAAW,KAAG,IAAjB,EAAsB;CAACA,cAAAA,WAAW,CAAC3a,IAAZ,CAAiB,KAAKsc,aAAtB,EAAoCppB,GAApC;CAAyC;CAAC;;CAAA;;CAAM;CAAQmmB,UAAAA,iBAAiB,CAAC,6BAAD,CAAjB;CAA/iB;CAAimB;;CAAA,WAAOnmB,GAAP;CAAW;;CAAA,WAASiuB,sCAAT,CAAgDxG,WAAhD,EAA4DuB,MAA5D,EAAmE;CAAC,QAAGA,MAAM,KAAG,IAAZ,EAAiB;CAAC,UAAG,KAAKuE,WAAR,EAAoB;CAACpH,QAAAA,iBAAiB,CAAC,yBAAuB,KAAKzf,IAA7B,CAAjB;CAAoD;;CAAA,aAAO,CAAP;CAAS;;CAAA,QAAG,CAACsiB,MAAM,CAACf,EAAX,EAAc;CAAC9B,MAAAA,iBAAiB,CAAC,kBAAgBqH,YAAY,CAACxE,MAAD,CAA5B,GAAqC,SAArC,GAA+C,KAAKtiB,IAArD,CAAjB;CAA4E;;CAAA,QAAG,CAACsiB,MAAM,CAACf,EAAP,CAAUjoB,GAAd,EAAkB;CAACmmB,MAAAA,iBAAiB,CAAC,qDAAmD,KAAKzf,IAAzD,CAAjB;CAAgF;;CAAA,QAAGsiB,MAAM,CAACf,EAAP,CAAUC,OAAV,CAAkBwD,OAArB,EAA6B;CAACvF,MAAAA,iBAAiB,CAAC,qCAAmC6C,MAAM,CAACf,EAAP,CAAUC,OAAV,CAAkBxhB,IAArD,GAA0D,qBAA1D,GAAgF,KAAKA,IAAtF,CAAjB;CAA6G;;CAAA,QAAI+mB,WAAW,GAACzE,MAAM,CAACf,EAAP,CAAUC,OAAV,CAAkBC,eAAlC;CAAkD,QAAInoB,GAAG,GAACqtB,aAAa,CAACrE,MAAM,CAACf,EAAP,CAAUjoB,GAAX,EAAeytB,WAAf,EAA2B,KAAKtF,eAAhC,CAArB;CAAsE,WAAOnoB,GAAP;CAAW;;CAAA,WAASkuB,0BAAT,CAAoCvG,OAApC,EAA4C;CAAC,WAAO,KAAK,cAAL,EAAqBvlB,OAAO,CAACulB,OAAO,IAAE,CAAV,CAA5B,CAAP;CAAiD;;CAAA,WAASwG,4BAAT,CAAsCnuB,GAAtC,EAA0C;CAAC,QAAG,KAAKouB,aAAR,EAAsB;CAACpuB,MAAAA,GAAG,GAAC,KAAKouB,aAAL,CAAmBpuB,GAAnB,CAAJ;CAA4B;;CAAA,WAAOA,GAAP;CAAW;;CAAA,WAASquB,4BAAT,CAAsCruB,GAAtC,EAA0C;CAAC,QAAG,KAAKopB,aAAR,EAAsB;CAAC,WAAKA,aAAL,CAAmBppB,GAAnB;CAAwB;CAAC;;CAAA,WAASsuB,8BAAT,CAAwCtF,MAAxC,EAA+C;CAAC,QAAGA,MAAM,KAAG,IAAZ,EAAiB;CAACA,MAAAA,MAAM,CAAC,QAAD,CAAN;CAAmB;CAAC;;CAAA,WAASuF,sBAAT,GAAiC;CAACC,IAAAA,iBAAiB,CAACtrB,SAAlB,CAA4B8nB,UAA5B,GAAuCmD,4BAAvC;CAAoEK,IAAAA,iBAAiB,CAACtrB,SAAlB,CAA4B+nB,UAA5B,GAAuCoD,4BAAvC;CAAoEG,IAAAA,iBAAiB,CAACtrB,SAAlB,CAA4B,gBAA5B,IAA8C,CAA9C;CAAgDsrB,IAAAA,iBAAiB,CAACtrB,SAAlB,CAA4B,sBAA5B,IAAoDgrB,0BAApD;CAA+EM,IAAAA,iBAAiB,CAACtrB,SAAlB,CAA4B,cAA5B,IAA4CorB,8BAA5C;CAA2EE,IAAAA,iBAAiB,CAACtrB,SAAlB,CAA4B,cAA5B,IAA4C4nB,8BAA5C;CAA2E;;CAAA,WAAS0D,iBAAT,CAA2B9nB,IAA3B,EAAgCyhB,eAAhC,EAAgDoF,WAAhD,EAA4D7B,OAA5D,EAAoEP,cAApE,EAAmFE,WAAnF,EAA+FuC,aAA/F,EAA6GQ,aAA7G,EAA2HT,cAA3H,EAA0IG,QAA1I,EAAmJ1E,aAAnJ,EAAiK;CAAC,SAAK1iB,IAAL,GAAUA,IAAV;CAAe,SAAKyhB,eAAL,GAAqBA,eAArB;CAAqC,SAAKoF,WAAL,GAAiBA,WAAjB;CAA6B,SAAK7B,OAAL,GAAaA,OAAb;CAAqB,SAAKP,cAAL,GAAoBA,cAApB;CAAmC,SAAKE,WAAL,GAAiBA,WAAjB;CAA6B,SAAKuC,aAAL,GAAmBA,aAAnB;CAAiC,SAAKQ,aAAL,GAAmBA,aAAnB;CAAiC,SAAKT,cAAL,GAAoBA,cAApB;CAAmC,SAAKG,QAAL,GAAcA,QAAd;CAAuB,SAAK1E,aAAL,GAAmBA,aAAnB;;CAAiC,QAAG,CAAC+B,cAAD,IAAiBhD,eAAe,CAACI,SAAhB,KAA4B9tB,SAAhD,EAA0D;CAAC,UAAGixB,OAAH,EAAW;CAAC,aAAK,YAAL,IAAmB4B,mCAAnB;CAAuD,aAAK1F,kBAAL,GAAwB,IAAxB;CAA6B,OAAhG,MAAoG;CAAC,aAAK,YAAL,IAAmBqG,sCAAnB;CAA0D,aAAKrG,kBAAL,GAAwB,IAAxB;CAA6B;CAAC,KAAxP,MAA4P;CAAC,WAAK,YAAL,IAAmB8F,wBAAnB;CAA4C;CAAC;;CAAA,WAASe,mBAAT,CAA6B/nB,IAA7B,EAAkC8C,KAAlC,EAAwC0jB,YAAxC,EAAqD;CAAC,QAAG,CAACn1B,MAAM,CAAC0b,cAAP,CAAsB/M,IAAtB,CAAJ,EAAgC;CAAC2f,MAAAA,kBAAkB,CAAC,qCAAD,CAAlB;CAA0D;;CAAA,QAAG5rB,SAAS,KAAG1C,MAAM,CAAC2O,IAAD,CAAN,CAAaomB,aAAzB,IAAwCryB,SAAS,KAAGyyB,YAAvD,EAAoE;CAACn1B,MAAAA,MAAM,CAAC2O,IAAD,CAAN,CAAaomB,aAAb,CAA2BI,YAA3B,IAAyC1jB,KAAzC;CAA+C,KAApH,MAAwH;CAACzR,MAAAA,MAAM,CAAC2O,IAAD,CAAN,GAAa8C,KAAb;CAAmBzR,MAAAA,MAAM,CAAC2O,IAAD,CAAN,CAAasmB,QAAb,GAAsBE,YAAtB;CAAmC;CAAC;;CAAA,WAASwB,aAAT,CAAuBC,GAAvB,EAA2B3uB,GAA3B,EAA+B4uB,IAA/B,EAAoC;CAAC/zB,IAAAA,MAAM,CAAC,aAAW8zB,GAAX,IAAkB52B,MAAnB,EAA0B,mDAAiD42B,GAAjD,GAAqD,GAA/E,CAAN;;CAA0F,QAAGC,IAAI,IAAEA,IAAI,CAACzzB,MAAd,EAAqB;CAACN,MAAAA,MAAM,CAAC+zB,IAAI,CAACzzB,MAAL,KAAcwzB,GAAG,CAACE,SAAJ,CAAc,CAAd,EAAiBzzB,OAAjB,CAAyB,IAAzB,EAA8B,IAA9B,EAAoCD,MAAnD,CAAN;CAAiE,KAAvF,MAA2F;CAACN,MAAAA,MAAM,CAAC8zB,GAAG,CAACxzB,MAAJ,IAAY,CAAb,CAAN;CAAsB;;CAAA,QAAIS,CAAC,GAAC7D,MAAM,CAAC,aAAW42B,GAAZ,CAAZ;CAA6B,WAAOC,IAAI,IAAEA,IAAI,CAACzzB,MAAX,GAAkBS,CAAC,CAACkL,KAAF,CAAQ,IAAR,EAAa,CAAC9G,GAAD,EAAM+M,MAAN,CAAa6hB,IAAb,CAAb,CAAlB,GAAmDhzB,CAAC,CAACuP,IAAF,CAAO,IAAP,EAAYnL,GAAZ,CAA1D;CAA2E;;CAAA,WAAS8uB,OAAT,CAAiBH,GAAjB,EAAqB3uB,GAArB,EAAyB4uB,IAAzB,EAA8B;CAAC,QAAGD,GAAG,CAAC1f,QAAJ,CAAa,GAAb,CAAH,EAAqB;CAAC,aAAOyf,aAAa,CAACC,GAAD,EAAK3uB,GAAL,EAAS4uB,IAAT,CAApB;CAAmC;;CAAA/zB,IAAAA,MAAM,CAACiO,iBAAiB,CAAC9I,GAAD,CAAlB,EAAwB,qCAAmCA,GAA3D,CAAN;CAAsE,WAAO8I,iBAAiB,CAAC9I,GAAD,CAAjB,CAAuB8G,KAAvB,CAA6B,IAA7B,EAAkC8nB,IAAlC,CAAP;CAA+C;;CAAA,WAASG,YAAT,CAAsBJ,GAAtB,EAA0B3uB,GAA1B,EAA8B;CAACnF,IAAAA,MAAM,CAAC8zB,GAAG,CAAC1f,QAAJ,CAAa,GAAb,CAAD,EAAmB,kDAAnB,CAAN;CAA6E,QAAI+f,QAAQ,GAAC,EAAb;CAAgB,WAAO,YAAU;CAACA,MAAAA,QAAQ,CAAC7zB,MAAT,GAAgB,CAAhB;CAAkBzC,MAAAA,MAAM,CAACC,MAAP,CAAcq2B,QAAd,EAAuBjoB,SAAvB;CAAkC,aAAO+nB,OAAO,CAACH,GAAD,EAAK3uB,GAAL,EAASgvB,QAAT,CAAd;CAAiC,KAAvG;CAAwG;;CAAA,WAASC,uBAAT,CAAiCC,SAAjC,EAA2CC,WAA3C,EAAuD;CAACD,IAAAA,SAAS,GAAC/J,gBAAgB,CAAC+J,SAAD,CAA1B;;CAAsC,aAASE,aAAT,GAAwB;CAAC,UAAGF,SAAS,CAACjgB,QAAV,CAAmB,GAAnB,CAAH,EAA2B;CAAC,eAAO8f,YAAY,CAACG,SAAD,EAAWC,WAAX,CAAnB;CAA2C;;CAAA,aAAOrmB,iBAAiB,CAACqmB,WAAD,CAAxB;CAAsC;;CAAA,QAAIE,EAAE,GAACD,aAAa,EAApB;;CAAuB,QAAG,OAAOC,EAAP,IAAW,UAAd,EAAyB;CAAClJ,MAAAA,iBAAiB,CAAC,6CAA2C+I,SAA3C,GAAqD,IAArD,GAA0DC,WAA3D,CAAjB;CAAyF;;CAAA,WAAOE,EAAP;CAAU;;CAAA,MAAIC,gBAAgB,GAAC70B,SAArB;;CAA+B,WAAS80B,WAAT,CAAqB9V,IAArB,EAA0B;CAAC,QAAIzZ,GAAG,GAACwvB,cAAc,CAAC/V,IAAD,CAAtB;;CAA6B,QAAIiQ,EAAE,GAACvE,gBAAgB,CAACnlB,GAAD,CAAvB;;CAA6ByvB,IAAAA,KAAK,CAACzvB,GAAD,CAAL;;CAAW,WAAO0pB,EAAP;CAAU;;CAAA,WAASgG,qBAAT,CAA+Bl3B,OAA/B,EAAuCm3B,KAAvC,EAA6C;CAAC,QAAIC,YAAY,GAAC,EAAjB;CAAoB,QAAIC,IAAI,GAAC,EAAT;;CAAY,aAASC,KAAT,CAAerW,IAAf,EAAoB;CAAC,UAAGoW,IAAI,CAACpW,IAAD,CAAP,EAAc;CAAC;CAAO;;CAAA,UAAG6L,eAAe,CAAC7L,IAAD,CAAlB,EAAyB;CAAC;CAAO;;CAAA,UAAG8L,gBAAgB,CAAC9L,IAAD,CAAnB,EAA0B;CAAC8L,QAAAA,gBAAgB,CAAC9L,IAAD,CAAhB,CAAuBD,OAAvB,CAA+BsW,KAA/B;CAAsC;CAAO;;CAAAF,MAAAA,YAAY,CAAC9iB,IAAb,CAAkB2M,IAAlB;CAAwBoW,MAAAA,IAAI,CAACpW,IAAD,CAAJ,GAAW,IAAX;CAAgB;;CAAAkW,IAAAA,KAAK,CAACnW,OAAN,CAAcsW,KAAd;CAAqB,UAAM,IAAIR,gBAAJ,CAAqB92B,OAAO,GAAC,IAAR,GAAao3B,YAAY,CAACG,GAAb,CAAiBR,WAAjB,EAA8B3kB,IAA9B,CAAmC,CAAC,IAAD,CAAnC,CAAlC,CAAN;CAAoF;;CAAA,WAASolB,uBAAT,CAAiC/I,OAAjC,EAAyCgJ,cAAzC,EAAwDC,mBAAxD,EAA4EC,gBAA5E,EAA6FC,sBAA7F,EAAoH7E,aAApH,EAAkI8E,eAAlI,EAAkJ7H,MAAlJ,EAAyJ8H,iBAAzJ,EAA2K3G,QAA3K,EAAoLjjB,IAApL,EAAyL6pB,mBAAzL,EAA6MnH,aAA7M,EAA2N;CAAC1iB,IAAAA,IAAI,GAACye,gBAAgB,CAACze,IAAD,CAArB;CAA4B6kB,IAAAA,aAAa,GAAC0D,uBAAuB,CAACmB,sBAAD,EAAwB7E,aAAxB,CAArC;;CAA4E,QAAG/C,MAAH,EAAU;CAACA,MAAAA,MAAM,GAACyG,uBAAuB,CAACoB,eAAD,EAAiB7H,MAAjB,CAA9B;CAAuD;;CAAA,QAAGmB,QAAH,EAAY;CAACA,MAAAA,QAAQ,GAACsF,uBAAuB,CAACqB,iBAAD,EAAmB3G,QAAnB,CAAhC;CAA6D;;CAAAP,IAAAA,aAAa,GAAC6F,uBAAuB,CAACsB,mBAAD,EAAqBnH,aAArB,CAArC;CAAyE,QAAIoH,iBAAiB,GAAC9K,qBAAqB,CAAChf,IAAD,CAA3C;CAAkDumB,IAAAA,kBAAkB,CAACuD,iBAAD,EAAmB,YAAU;CAACd,MAAAA,qBAAqB,CAAC,sBAAoBhpB,IAApB,GAAyB,uBAA1B,EAAkD,CAACypB,gBAAD,CAAlD,CAArB;CAA2F,KAAzH,CAAlB;CAA6I7J,IAAAA,6BAA6B,CAAC,CAACW,OAAD,EAASgJ,cAAT,EAAwBC,mBAAxB,CAAD,EAA8CC,gBAAgB,GAAC,CAACA,gBAAD,CAAD,GAAoB,EAAlF,EAAqF,UAASM,IAAT,EAAc;CAACA,MAAAA,IAAI,GAACA,IAAI,CAAC,CAAD,CAAT;CAAa,UAAIlI,SAAJ;CAAc,UAAImI,aAAJ;;CAAkB,UAAGP,gBAAH,EAAoB;CAAC5H,QAAAA,SAAS,GAACkI,IAAI,CAACtI,eAAf;CAA+BuI,QAAAA,aAAa,GAACnI,SAAS,CAAC6C,iBAAxB;CAA0C,OAA9F,MAAkG;CAACsF,QAAAA,aAAa,GAAC3I,WAAW,CAAC7kB,SAA1B;CAAoC;;CAAA,UAAIka,WAAW,GAACuI,mBAAmB,CAAC6K,iBAAD,EAAmB,YAAU;CAAC,YAAG93B,MAAM,CAAC2zB,cAAP,CAAsB,IAAtB,MAA8BjB,iBAAjC,EAAmD;CAAC,gBAAM,IAAIlF,YAAJ,CAAiB,4BAA0Bxf,IAA3C,CAAN;CAAuD;;CAAA,YAAGjM,SAAS,KAAG0tB,eAAe,CAACwI,gBAA/B,EAAgD;CAAC,gBAAM,IAAIzK,YAAJ,CAAiBxf,IAAI,GAAC,gCAAtB,CAAN;CAA8D;;CAAA,YAAIkf,IAAI,GAACuC,eAAe,CAACwI,gBAAhB,CAAiC5pB,SAAS,CAAC5L,MAA3C,CAAT;;CAA4D,YAAGV,SAAS,KAAGmrB,IAAf,EAAoB;CAAC,gBAAM,IAAIM,YAAJ,CAAiB,6BAA2Bxf,IAA3B,GAAgC,sCAAhC,GAAuEK,SAAS,CAAC5L,MAAjF,GAAwF,gBAAxF,GAAyGzC,MAAM,CAACmhB,IAAP,CAAYsO,eAAe,CAACwI,gBAA5B,EAA8C9wB,QAA9C,EAAzG,GAAkK,uBAAnL,CAAN;CAAkN;;CAAA,eAAO+lB,IAAI,CAAC9e,KAAL,CAAW,IAAX,EAAgBC,SAAhB,CAAP;CAAkC,OAA7jB,CAAnC;CAAkmB,UAAIqkB,iBAAiB,GAAC1yB,MAAM,CAACqhB,MAAP,CAAc2W,aAAd,EAA4B;CAACtT,QAAAA,WAAW,EAAC;CAAC5T,UAAAA,KAAK,EAAC4T;CAAP;CAAb,OAA5B,CAAtB;CAAqFA,MAAAA,WAAW,CAACla,SAAZ,GAAsBkoB,iBAAtB;CAAwC,UAAIjD,eAAe,GAAC,IAAIgF,eAAJ,CAAoBzmB,IAApB,EAAyB0W,WAAzB,EAAqCgO,iBAArC,EAAuDhC,aAAvD,EAAqEb,SAArE,EAA+EgD,aAA/E,EAA6F/C,MAA7F,EAAoGmB,QAApG,CAApB;CAAkI,UAAIiH,kBAAkB,GAAC,IAAIpC,iBAAJ,CAAsB9nB,IAAtB,EAA2ByhB,eAA3B,EAA2C,IAA3C,EAAgD,KAAhD,EAAsD,KAAtD,CAAvB;CAAoF,UAAI0I,gBAAgB,GAAC,IAAIrC,iBAAJ,CAAsB9nB,IAAI,GAAC,GAA3B,EAA+ByhB,eAA/B,EAA+C,KAA/C,EAAqD,KAArD,EAA2D,KAA3D,CAArB;CAAuF,UAAI2I,qBAAqB,GAAC,IAAItC,iBAAJ,CAAsB9nB,IAAI,GAAC,SAA3B,EAAqCyhB,eAArC,EAAqD,KAArD,EAA2D,IAA3D,EAAgE,KAAhE,CAA1B;CAAiGyB,MAAAA,kBAAkB,CAAC3C,OAAD,CAAlB,GAA4B;CAAC2E,QAAAA,WAAW,EAACiF,gBAAb;CAA8BlF,QAAAA,gBAAgB,EAACmF;CAA/C,OAA5B;CAAkGrC,MAAAA,mBAAmB,CAAC+B,iBAAD,EAAmBpT,WAAnB,CAAnB;CAAmD,aAAM,CAACwT,kBAAD,EAAoBC,gBAApB,EAAqCC,qBAArC,CAAN;CAAkE,KAA5lD,CAA7B;CAA2nD;;CAAA,WAASC,mBAAT,CAA6Bjb,KAA7B,EAAmCkb,YAAnC,EAAgD;CAAC,QAAIC,KAAK,GAAC,EAAV;;CAAa,SAAI,IAAI1wB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACuV,KAAd,EAAoBvV,CAAC,EAArB,EAAwB;CAAC0wB,MAAAA,KAAK,CAACnkB,IAAN,CAAWpL,MAAM,CAAC,CAACsvB,YAAY,IAAE,CAAf,IAAkBzwB,CAAnB,CAAjB;CAAwC;;CAAA,WAAO0wB,KAAP;CAAa;;CAAA,WAASC,cAAT,CAAwBzJ,WAAxB,EAAoC;CAAC,WAAMA,WAAW,CAACtsB,MAAlB,EAAyB;CAAC,UAAI6E,GAAG,GAACynB,WAAW,CAACxO,GAAZ,EAAR;CAA0B,UAAIkY,GAAG,GAAC1J,WAAW,CAACxO,GAAZ,EAAR;CAA0BkY,MAAAA,GAAG,CAACnxB,GAAD,CAAH;CAAS;CAAC;;CAAA,WAASoxB,mCAAT,CAA6CC,YAA7C,EAA0DrE,QAA1D,EAAmEsE,eAAnE,EAAmFC,gBAAnF,EAAoGC,OAApG,EAA4G7D,cAA5G,EAA2H;CAAC9yB,IAAAA,MAAM,CAACmyB,QAAQ,GAAC,CAAV,CAAN;CAAmB,QAAIyE,WAAW,GAACV,mBAAmB,CAAC/D,QAAD,EAAUsE,eAAV,CAAnC;CAA8DE,IAAAA,OAAO,GAACvC,uBAAuB,CAACsC,gBAAD,EAAkBC,OAAlB,CAA/B;CAA0DlL,IAAAA,6BAA6B,CAAC,EAAD,EAAI,CAAC+K,YAAD,CAAJ,EAAmB,UAASK,SAAT,EAAmB;CAACA,MAAAA,SAAS,GAACA,SAAS,CAAC,CAAD,CAAnB;CAAuB,UAAI7E,SAAS,GAAC,iBAAe6E,SAAS,CAAChrB,IAAvC;;CAA4C,UAAGjM,SAAS,KAAGi3B,SAAS,CAACvJ,eAAV,CAA0BwI,gBAAzC,EAA0D;CAACe,QAAAA,SAAS,CAACvJ,eAAV,CAA0BwI,gBAA1B,GAA2C,EAA3C;CAA8C;;CAAA,UAAGl2B,SAAS,KAAGi3B,SAAS,CAACvJ,eAAV,CAA0BwI,gBAA1B,CAA2C3D,QAAQ,GAAC,CAApD,CAAf,EAAsE;CAAC,cAAM,IAAI9G,YAAJ,CAAiB,iFAA+E8G,QAAQ,GAAC,CAAxF,IAA2F,eAA3F,GAA2G0E,SAAS,CAAChrB,IAArH,GAA0H,qGAA3I,CAAN;CAAwP;;CAAAgrB,MAAAA,SAAS,CAACvJ,eAAV,CAA0BwI,gBAA1B,CAA2C3D,QAAQ,GAAC,CAApD,IAAwD,MAAI;CAAC0C,QAAAA,qBAAqB,CAAC,sBAAoBgC,SAAS,CAAChrB,IAA9B,GAAmC,uBAApC,EAA4D+qB,WAA5D,CAArB;CAA8F,OAA3J;;CAA6JnL,MAAAA,6BAA6B,CAAC,EAAD,EAAImL,WAAJ,EAAgB,UAASE,QAAT,EAAkB;CAACA,QAAAA,QAAQ,CAACtnB,MAAT,CAAgB,CAAhB,EAAkB,CAAlB,EAAoB,IAApB;CAA0BqnB,QAAAA,SAAS,CAACvJ,eAAV,CAA0BwI,gBAA1B,CAA2C3D,QAAQ,GAAC,CAApD,IAAuD4E,oBAAoB,CAAC/E,SAAD,EAAW8E,QAAX,EAAoB,IAApB,EAAyBH,OAAzB,EAAiC7D,cAAjC,CAA3E;CAA4H,eAAM,EAAN;CAAS,OAAlM,CAA7B;CAAiO,aAAM,EAAN;CAAS,KAAz5B,CAA7B;CAAw7B;;CAAA,WAASkE,IAAT,CAAczU,WAAd,EAA0B0U,YAA1B,EAAuC;CAAC,QAAG,EAAE1U,WAAW,YAAYyI,QAAzB,CAAH,EAAsC;CAAC,YAAM,IAAI5Z,SAAJ,CAAc,uCAAqC,OAAOmR,WAA5C,GAAwD,0BAAtE,CAAN;CAAwG;;CAAA,QAAI2U,KAAK,GAACpM,mBAAmB,CAACvI,WAAW,CAAC1W,IAAZ,IAAkB,qBAAnB,EAAyC,YAAU,EAAnD,CAA7B;CAAoFqrB,IAAAA,KAAK,CAAC7uB,SAAN,GAAgBka,WAAW,CAACla,SAA5B;CAAsC,QAAIub,GAAG,GAAC,IAAIsT,KAAJ,EAAR;CAAkB,QAAIzmB,CAAC,GAAC8R,WAAW,CAACtW,KAAZ,CAAkB2X,GAAlB,EAAsBqT,YAAtB,CAAN;CAA0C,WAAOxmB,CAAC,YAAY5S,MAAb,GAAoB4S,CAApB,GAAsBmT,GAA7B;CAAiC;;CAAA,WAASmT,oBAAT,CAA8B/E,SAA9B,EAAwC8E,QAAxC,EAAiDD,SAAjD,EAA2DM,cAA3D,EAA0EC,aAA1E,EAAwF;CAAC,QAAIjF,QAAQ,GAAC2E,QAAQ,CAACx2B,MAAtB;;CAA6B,QAAG6xB,QAAQ,GAAC,CAAZ,EAAc;CAAC7G,MAAAA,iBAAiB,CAAC,gFAAD,CAAjB;CAAoG;;CAAA,QAAI+L,iBAAiB,GAACP,QAAQ,CAAC,CAAD,CAAR,KAAc,IAAd,IAAoBD,SAAS,KAAG,IAAtD;CAA2D,QAAIS,oBAAoB,GAAC,KAAzB;;CAA+B,SAAI,IAAI5xB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACoxB,QAAQ,CAACx2B,MAAvB,EAA8B,EAAEoF,CAAhC,EAAkC;CAAC,UAAGoxB,QAAQ,CAACpxB,CAAD,CAAR,KAAc,IAAd,IAAoBoxB,QAAQ,CAACpxB,CAAD,CAAR,CAAYqnB,kBAAZ,KAAiCntB,SAAxD,EAAkE;CAAC03B,QAAAA,oBAAoB,GAAC,IAArB;CAA0B;CAAM;CAAC;;CAAA,QAAIC,OAAO,GAACT,QAAQ,CAAC,CAAD,CAAR,CAAYjrB,IAAZ,KAAmB,MAA/B;CAAsC,QAAI2rB,QAAQ,GAAC,EAAb;CAAgB,QAAIC,aAAa,GAAC,EAAlB;;CAAqB,SAAI,IAAI/xB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACysB,QAAQ,GAAC,CAAvB,EAAyB,EAAEzsB,CAA3B,EAA6B;CAAC8xB,MAAAA,QAAQ,IAAE,CAAC9xB,CAAC,KAAG,CAAJ,GAAM,IAAN,GAAW,EAAZ,IAAgB,KAAhB,GAAsBA,CAAhC;CAAkC+xB,MAAAA,aAAa,IAAE,CAAC/xB,CAAC,KAAG,CAAJ,GAAM,IAAN,GAAW,EAAZ,IAAgB,KAAhB,GAAsBA,CAAtB,GAAwB,OAAvC;CAA+C;;CAAA,QAAIgyB,aAAa,GAAC,qBAAmB7M,qBAAqB,CAACmH,SAAD,CAAxC,GAAoD,GAApD,GAAwDwF,QAAxD,GAAiE,OAAjE,GAAyE,2BAAzE,IAAsGrF,QAAQ,GAAC,CAA/G,IAAkH,OAAlH,GAA0H,8BAA1H,GAAyJH,SAAzJ,GAAmK,4DAAnK,IAAiOG,QAAQ,GAAC,CAA1O,IAA6O,aAA7O,GAA2P,KAA7Q;;CAAmR,QAAGmF,oBAAH,EAAwB;CAACI,MAAAA,aAAa,IAAE,yBAAf;CAAyC;;CAAA,QAAIC,SAAS,GAACL,oBAAoB,GAAC,aAAD,GAAe,MAAjD;CAAwD,QAAIM,KAAK,GAAC,CAAC,mBAAD,EAAqB,SAArB,EAA+B,IAA/B,EAAoC,gBAApC,EAAqD,SAArD,EAA+D,YAA/D,CAAV;CAAuF,QAAIC,KAAK,GAAC,CAACvM,iBAAD,EAAmB6L,cAAnB,EAAkCC,aAAlC,EAAgDf,cAAhD,EAA+DS,QAAQ,CAAC,CAAD,CAAvE,EAA2EA,QAAQ,CAAC,CAAD,CAAnF,CAAV;;CAAkG,QAAGO,iBAAH,EAAqB;CAACK,MAAAA,aAAa,IAAE,2CAAyCC,SAAzC,GAAmD,YAAlE;CAA+E;;CAAA,SAAI,IAAIjyB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACysB,QAAQ,GAAC,CAAvB,EAAyB,EAAEzsB,CAA3B,EAA6B;CAACgyB,MAAAA,aAAa,IAAE,YAAUhyB,CAAV,GAAY,iBAAZ,GAA8BA,CAA9B,GAAgC,cAAhC,GAA+CiyB,SAA/C,GAAyD,OAAzD,GAAiEjyB,CAAjE,GAAmE,QAAnE,GAA4EoxB,QAAQ,CAACpxB,CAAC,GAAC,CAAH,CAAR,CAAcmG,IAA1F,GAA+F,IAA9G;CAAmH+rB,MAAAA,KAAK,CAAC3lB,IAAN,CAAW,YAAUvM,CAArB;CAAwBmyB,MAAAA,KAAK,CAAC5lB,IAAN,CAAW6kB,QAAQ,CAACpxB,CAAC,GAAC,CAAH,CAAnB;CAA0B;;CAAA,QAAG2xB,iBAAH,EAAqB;CAACI,MAAAA,aAAa,GAAC,eAAaA,aAAa,CAACn3B,MAAd,GAAqB,CAArB,GAAuB,IAAvB,GAA4B,EAAzC,IAA6Cm3B,aAA3D;CAAyE;;CAAAC,IAAAA,aAAa,IAAE,CAACH,OAAO,GAAC,WAAD,GAAa,EAArB,IAAyB,YAAzB,IAAuCE,aAAa,CAACn3B,MAAd,GAAqB,CAArB,GAAuB,IAAvB,GAA4B,EAAnE,IAAuEm3B,aAAvE,GAAqF,MAApG;;CAA2G,QAAGH,oBAAH,EAAwB;CAACI,MAAAA,aAAa,IAAE,gCAAf;CAAgD,KAAzE,MAA6E;CAAC,WAAI,IAAIhyB,CAAC,GAAC2xB,iBAAiB,GAAC,CAAD,GAAG,CAA9B,EAAgC3xB,CAAC,GAACoxB,QAAQ,CAACx2B,MAA3C,EAAkD,EAAEoF,CAApD,EAAsD;CAAC,YAAIoyB,SAAS,GAACpyB,CAAC,KAAG,CAAJ,GAAM,WAAN,GAAkB,SAAOA,CAAC,GAAC,CAAT,IAAY,OAA5C;;CAAoD,YAAGoxB,QAAQ,CAACpxB,CAAD,CAAR,CAAYqnB,kBAAZ,KAAiC,IAApC,EAAyC;CAAC2K,UAAAA,aAAa,IAAEI,SAAS,GAAC,QAAV,GAAmBA,SAAnB,GAA6B,QAA7B,GAAsChB,QAAQ,CAACpxB,CAAD,CAAR,CAAYmG,IAAlD,GAAuD,IAAtE;CAA2E+rB,UAAAA,KAAK,CAAC3lB,IAAN,CAAW6lB,SAAS,GAAC,OAArB;CAA8BD,UAAAA,KAAK,CAAC5lB,IAAN,CAAW6kB,QAAQ,CAACpxB,CAAD,CAAR,CAAYqnB,kBAAvB;CAA2C;CAAC;CAAC;;CAAA,QAAGwK,OAAH,EAAW;CAACG,MAAAA,aAAa,IAAE,0CAAwC,eAAvD;CAAuE;;CAAMA,IAAAA,aAAa,IAAE,KAAf;CAAqBE,IAAAA,KAAK,CAAC3lB,IAAN,CAAWylB,aAAX;CAA0B,QAAIK,eAAe,GAACf,IAAI,CAAChM,QAAD,EAAU4M,KAAV,CAAJ,CAAqB3rB,KAArB,CAA2B,IAA3B,EAAgC4rB,KAAhC,CAApB;CAA2D,WAAOE,eAAP;CAAuB;;CAAA,WAASC,gCAAT,CAA0CxB,YAA1C,EAAuDzE,UAAvD,EAAkEI,QAAlE,EAA2EsE,eAA3E,EAA2FC,gBAA3F,EAA4GuB,UAA5G,EAAuHC,OAAvH,EAA+HC,aAA/H,EAA6I;CAAC,QAAIvB,WAAW,GAACV,mBAAmB,CAAC/D,QAAD,EAAUsE,eAAV,CAAnC;CAA8D1E,IAAAA,UAAU,GAACzH,gBAAgB,CAACyH,UAAD,CAA3B;CAAwCkG,IAAAA,UAAU,GAAC7D,uBAAuB,CAACsC,gBAAD,EAAkBuB,UAAlB,CAAlC;CAAgExM,IAAAA,6BAA6B,CAAC,EAAD,EAAI,CAAC+K,YAAD,CAAJ,EAAmB,UAASK,SAAT,EAAmB;CAACA,MAAAA,SAAS,GAACA,SAAS,CAAC,CAAD,CAAnB;CAAuB,UAAI7E,SAAS,GAAC6E,SAAS,CAAChrB,IAAV,GAAe,GAAf,GAAmBkmB,UAAjC;;CAA4C,UAAGA,UAAU,CAACrmB,UAAX,CAAsB,IAAtB,CAAH,EAA+B;CAACqmB,QAAAA,UAAU,GAACqG,MAAM,CAACrG,UAAU,CAACiC,SAAX,CAAqB,CAArB,CAAD,CAAjB;CAA2C;;CAAA,UAAGmE,aAAH,EAAiB;CAACtB,QAAAA,SAAS,CAACvJ,eAAV,CAA0BiF,oBAA1B,CAA+CtgB,IAA/C,CAAoD8f,UAApD;CAAgE;;CAAA,eAASsG,mBAAT,GAA8B;CAACxD,QAAAA,qBAAqB,CAAC,iBAAe7C,SAAf,GAAyB,uBAA1B,EAAkD4E,WAAlD,CAArB;CAAoF;;CAAA,UAAI9E,KAAK,GAAC+E,SAAS,CAACvJ,eAAV,CAA0BiD,iBAApC;CAAsD,UAAI+H,MAAM,GAACxG,KAAK,CAACC,UAAD,CAAhB;;CAA6B,UAAGnyB,SAAS,KAAG04B,MAAZ,IAAoB14B,SAAS,KAAG04B,MAAM,CAACrG,aAAnB,IAAkCqG,MAAM,CAACC,SAAP,KAAmB1B,SAAS,CAAChrB,IAA/D,IAAqEysB,MAAM,CAACnG,QAAP,KAAkBA,QAAQ,GAAC,CAAvH,EAAyH;CAACkG,QAAAA,mBAAmB,CAAClG,QAApB,GAA6BA,QAAQ,GAAC,CAAtC;CAAwCkG,QAAAA,mBAAmB,CAACE,SAApB,GAA8B1B,SAAS,CAAChrB,IAAxC;CAA6CimB,QAAAA,KAAK,CAACC,UAAD,CAAL,GAAkBsG,mBAAlB;CAAsC,OAArP,MAAyP;CAACxG,QAAAA,mBAAmB,CAACC,KAAD,EAAOC,UAAP,EAAkBC,SAAlB,CAAnB;CAAgDF,QAAAA,KAAK,CAACC,UAAD,CAAL,CAAkBE,aAAlB,CAAgCE,QAAQ,GAAC,CAAzC,IAA4CkG,mBAA5C;CAAgE;;CAAA5M,MAAAA,6BAA6B,CAAC,EAAD,EAAImL,WAAJ,EAAgB,UAASE,QAAT,EAAkB;CAAC,YAAI0B,cAAc,GAACzB,oBAAoB,CAAC/E,SAAD,EAAW8E,QAAX,EAAoBD,SAApB,EAA8BoB,UAA9B,EAAyCC,OAAzC,CAAvC;;CAAyF,YAAGt4B,SAAS,KAAGkyB,KAAK,CAACC,UAAD,CAAL,CAAkBE,aAAjC,EAA+C;CAACuG,UAAAA,cAAc,CAACrG,QAAf,GAAwBA,QAAQ,GAAC,CAAjC;CAAmCL,UAAAA,KAAK,CAACC,UAAD,CAAL,GAAkByG,cAAlB;CAAiC,SAApH,MAAwH;CAAC1G,UAAAA,KAAK,CAACC,UAAD,CAAL,CAAkBE,aAAlB,CAAgCE,QAAQ,GAAC,CAAzC,IAA4CqG,cAA5C;CAA2D;;CAAA,eAAM,EAAN;CAAS,OAAzT,CAA7B;CAAwV,aAAM,EAAN;CAAS,KAAxpC,CAA7B;CAAurC;;CAAA,WAASC,YAAT,CAAsBC,KAAtB,EAA4B7B,SAA5B,EAAsC7E,SAAtC,EAAgD;CAAC,QAAG,EAAE0G,KAAK,YAAY76B,MAAnB,CAAH,EAA8B;CAACytB,MAAAA,iBAAiB,CAAC0G,SAAS,GAAC,wBAAV,GAAmC0G,KAApC,CAAjB;CAA4D;;CAAA,QAAG,EAAEA,KAAK,YAAY7B,SAAS,CAACvJ,eAAV,CAA0B/K,WAA7C,CAAH,EAA6D;CAAC+I,MAAAA,iBAAiB,CAAC0G,SAAS,GAAC,oCAAV,GAA+C0G,KAAK,CAACnW,WAAN,CAAkB1W,IAAlE,CAAjB;CAAyF;;CAAA,QAAG,CAAC6sB,KAAK,CAACtL,EAAN,CAASjoB,GAAb,EAAiB;CAACmmB,MAAAA,iBAAiB,CAAC,2CAAyC0G,SAAzC,GAAmD,oBAApD,CAAjB;CAA2F;;CAAA,WAAOQ,aAAa,CAACkG,KAAK,CAACtL,EAAN,CAASjoB,GAAV,EAAcuzB,KAAK,CAACtL,EAAN,CAASC,OAAT,CAAiBC,eAA/B,EAA+CuJ,SAAS,CAACvJ,eAAzD,CAApB;CAA8F;;CAAA,WAASqL,gCAAT,CAA0C9B,SAA1C,EAAoD+B,SAApD,EAA8DC,gBAA9D,EAA+EC,eAA/E,EAA+FvU,MAA/F,EAAsGwU,aAAtG,EAAoHC,kBAApH,EAAuIC,eAAvI,EAAuJC,MAAvJ,EAA8JC,aAA9J,EAA4K;CAACP,IAAAA,SAAS,GAACtO,gBAAgB,CAACsO,SAAD,CAA1B;CAAsCrU,IAAAA,MAAM,GAAC6P,uBAAuB,CAAC0E,eAAD,EAAiBvU,MAAjB,CAA9B;CAAuDkH,IAAAA,6BAA6B,CAAC,EAAD,EAAI,CAACoL,SAAD,CAAJ,EAAgB,UAASA,SAAT,EAAmB;CAACA,MAAAA,SAAS,GAACA,SAAS,CAAC,CAAD,CAAnB;CAAuB,UAAI7E,SAAS,GAAC6E,SAAS,CAAChrB,IAAV,GAAe,GAAf,GAAmB+sB,SAAjC;CAA2C,UAAIQ,IAAI,GAAC;CAACl2B,QAAAA,GAAG,EAAC,YAAU;CAAC2xB,UAAAA,qBAAqB,CAAC,mBAAiB7C,SAAjB,GAA2B,uBAA5B,EAAoD,CAAC6G,gBAAD,EAAkBG,kBAAlB,CAApD,CAArB;CAAgH,SAAhI;CAAiIK,QAAAA,UAAU,EAAC,IAA5I;CAAiJp2B,QAAAA,YAAY,EAAC;CAA9J,OAAT;;CAA6K,UAAGi2B,MAAH,EAAU;CAACE,QAAAA,IAAI,CAAC9wB,GAAL,GAAU,MAAI;CAACusB,UAAAA,qBAAqB,CAAC,mBAAiB7C,SAAjB,GAA2B,uBAA5B,EAAoD,CAAC6G,gBAAD,EAAkBG,kBAAlB,CAApD,CAArB;CAAgH,SAA/H;CAAiI,OAA5I,MAAgJ;CAACI,QAAAA,IAAI,CAAC9wB,GAAL,GAAUgxB,CAAC,IAAE;CAAChO,UAAAA,iBAAiB,CAAC0G,SAAS,GAAC,0BAAX,CAAjB;CAAwD,SAAtE;CAAwE;;CAAAn0B,MAAAA,MAAM,CAACmF,cAAP,CAAsB6zB,SAAS,CAACvJ,eAAV,CAA0BiD,iBAAhD,EAAkEqI,SAAlE,EAA4EQ,IAA5E;CAAkF3N,MAAAA,6BAA6B,CAAC,EAAD,EAAIyN,MAAM,GAAC,CAACL,gBAAD,EAAkBG,kBAAlB,CAAD,GAAuC,CAACH,gBAAD,CAAjD,EAAoE,UAAS/D,KAAT,EAAe;CAAC,YAAI+D,gBAAgB,GAAC/D,KAAK,CAAC,CAAD,CAA1B;CAA8B,YAAIsE,IAAI,GAAC;CAACl2B,UAAAA,GAAG,EAAC,YAAU;CAAC,gBAAIiC,GAAG,GAACszB,YAAY,CAAC,IAAD,EAAM5B,SAAN,EAAgB7E,SAAS,GAAC,SAA1B,CAApB;CAAyD,mBAAO6G,gBAAgB,CAAC,cAAD,CAAhB,CAAiCtU,MAAM,CAACwU,aAAD,EAAe5zB,GAAf,CAAvC,CAAP;CAAmE,WAA5I;CAA6Ik0B,UAAAA,UAAU,EAAC;CAAxJ,SAAT;;CAAuK,YAAGH,MAAH,EAAU;CAACA,UAAAA,MAAM,GAAC9E,uBAAuB,CAAC6E,eAAD,EAAiBC,MAAjB,CAA9B;CAAuD,cAAIF,kBAAkB,GAAClE,KAAK,CAAC,CAAD,CAA5B;;CAAgCsE,UAAAA,IAAI,CAAC9wB,GAAL,GAAS,UAASgxB,CAAT,EAAW;CAAC,gBAAIn0B,GAAG,GAACszB,YAAY,CAAC,IAAD,EAAM5B,SAAN,EAAgB7E,SAAS,GAAC,SAA1B,CAApB;CAAyD,gBAAIpF,WAAW,GAAC,EAAhB;CAAmBsM,YAAAA,MAAM,CAACC,aAAD,EAAeh0B,GAAf,EAAmB6zB,kBAAkB,CAAC,YAAD,CAAlB,CAAiCpM,WAAjC,EAA6C0M,CAA7C,CAAnB,CAAN;CAA0EjD,YAAAA,cAAc,CAACzJ,WAAD,CAAd;CAA4B,WAAvM;CAAwM;;CAAA/uB,QAAAA,MAAM,CAACmF,cAAP,CAAsB6zB,SAAS,CAACvJ,eAAV,CAA0BiD,iBAAhD,EAAkEqI,SAAlE,EAA4EQ,IAA5E;CAAkF,eAAM,EAAN;CAAS,OAA9pB,CAA7B;CAA6rB,aAAM,EAAN;CAAS,KAApwC,CAA7B;CAAmyC;;CAAA,MAAIG,eAAe,GAAC,EAApB;CAAuB,MAAIC,kBAAkB,GAAC,CAAC,EAAD,EAAI;CAAC7qB,IAAAA,KAAK,EAAC/O;CAAP,GAAJ,EAAsB;CAAC+O,IAAAA,KAAK,EAAC;CAAP,GAAtB,EAAmC;CAACA,IAAAA,KAAK,EAAC;CAAP,GAAnC,EAAgD;CAACA,IAAAA,KAAK,EAAC;CAAP,GAAhD,CAAvB;;CAAsF,WAAS8qB,cAAT,CAAwBtL,MAAxB,EAA+B;CAAC,QAAGA,MAAM,GAAC,CAAP,IAAU,MAAI,EAAEqL,kBAAkB,CAACrL,MAAD,CAAlB,CAA2BuL,QAA9C,EAAuD;CAACF,MAAAA,kBAAkB,CAACrL,MAAD,CAAlB,GAA2BvuB,SAA3B;CAAqC25B,MAAAA,eAAe,CAACtnB,IAAhB,CAAqBkc,MAArB;CAA6B;CAAC;;CAAA,WAASwL,mBAAT,GAA8B;CAAC,QAAI1e,KAAK,GAAC,CAAV;;CAAY,SAAI,IAAIvV,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC8zB,kBAAkB,CAACl5B,MAAjC,EAAwC,EAAEoF,CAA1C,EAA4C;CAAC,UAAG8zB,kBAAkB,CAAC9zB,CAAD,CAAlB,KAAwB9F,SAA3B,EAAqC;CAAC,UAAEqb,KAAF;CAAQ;CAAC;;CAAA,WAAOA,KAAP;CAAa;;CAAA,WAAS2e,eAAT,GAA0B;CAAC,SAAI,IAAIl0B,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC8zB,kBAAkB,CAACl5B,MAAjC,EAAwC,EAAEoF,CAA1C,EAA4C;CAAC,UAAG8zB,kBAAkB,CAAC9zB,CAAD,CAAlB,KAAwB9F,SAA3B,EAAqC;CAAC,eAAO45B,kBAAkB,CAAC9zB,CAAD,CAAzB;CAA6B;CAAC;;CAAA,WAAO,IAAP;CAAY;;CAAA,WAASm0B,UAAT,GAAqB;CAAC38B,IAAAA,MAAM,CAAC,qBAAD,CAAN,GAA8By8B,mBAA9B;CAAkDz8B,IAAAA,MAAM,CAAC,iBAAD,CAAN,GAA0B08B,eAA1B;CAA0C;;CAAA,MAAI1G,KAAK,GAAC;CAAC4G,IAAAA,OAAO,EAAC3L,MAAM,IAAE;CAAC,UAAG,CAACA,MAAJ,EAAW;CAAC7C,QAAAA,iBAAiB,CAAC,sCAAoC6C,MAArC,CAAjB;CAA8D;;CAAA,aAAOqL,kBAAkB,CAACrL,MAAD,CAAlB,CAA2Bxf,KAAlC;CAAwC,KAApI;CAAqIwkB,IAAAA,QAAQ,EAACxkB,KAAK,IAAE;CAAC,cAAOA,KAAP;CAAc,aAAK/O,SAAL;CAAe,iBAAO,CAAP;;CAAS,aAAK,IAAL;CAAU,iBAAO,CAAP;;CAAS,aAAK,IAAL;CAAU,iBAAO,CAAP;;CAAS,aAAK,KAAL;CAAW,iBAAO,CAAP;;CAAS;CAAQ;CAAC,gBAAIuuB,MAAM,GAACoL,eAAe,CAACj5B,MAAhB,GAAuBi5B,eAAe,CAACnb,GAAhB,EAAvB,GAA6Cob,kBAAkB,CAACl5B,MAA3E;CAAkFk5B,YAAAA,kBAAkB,CAACrL,MAAD,CAAlB,GAA2B;CAACuL,cAAAA,QAAQ,EAAC,CAAV;CAAY/qB,cAAAA,KAAK,EAACA;CAAlB,aAA3B;CAAoD,mBAAOwf,MAAP;CAAc;CAA7P;CAA+P;CAArZ,GAAV;;CAAia,WAAS4L,uBAAT,CAAiC3N,OAAjC,EAAyCvgB,IAAzC,EAA8C;CAACA,IAAAA,IAAI,GAACye,gBAAgB,CAACze,IAAD,CAArB;CAA4BmgB,IAAAA,YAAY,CAACI,OAAD,EAAS;CAACvgB,MAAAA,IAAI,EAACA,IAAN;CAAW,sBAAe,UAASsiB,MAAT,EAAgB;CAAC,YAAIU,EAAE,GAACqE,KAAK,CAAC4G,OAAN,CAAc3L,MAAd,CAAP;;CAA6BsL,QAAAA,cAAc,CAACtL,MAAD,CAAd;;CAAuB,eAAOU,EAAP;CAAU,OAAzG;CAA0G,oBAAa,UAASjC,WAAT,EAAqBje,KAArB,EAA2B;CAAC,eAAOukB,KAAK,CAACC,QAAN,CAAexkB,KAAf,CAAP;CAA6B,OAAhL;CAAiL,wBAAiB,CAAlM;CAAoM,8BAAuB0kB,0BAA3N;CAAsPtG,MAAAA,kBAAkB,EAAC;CAAzQ,KAAT,CAAZ;CAAqS;;CAAA,WAAS4F,YAAT,CAAsB2G,CAAtB,EAAwB;CAAC,QAAGA,CAAC,KAAG,IAAP,EAAY;CAAC,aAAM,MAAN;CAAa;;CAAA,QAAIU,CAAC,GAAC,OAAOV,CAAb;;CAAe,QAAGU,CAAC,KAAG,QAAJ,IAAcA,CAAC,KAAG,OAAlB,IAA2BA,CAAC,KAAG,UAAlC,EAA6C;CAAC,aAAOV,CAAC,CAACt0B,QAAF,EAAP;CAAoB,KAAlE,MAAsE;CAAC,aAAM,KAAGs0B,CAAT;CAAW;CAAC;;CAAA,WAASW,yBAAT,CAAmCpuB,IAAnC,EAAwCvC,KAAxC,EAA8C;CAAC,YAAOA,KAAP;CAAc,WAAK,CAAL;CAAO,eAAO,UAASwjB,OAAT,EAAiB;CAAC,iBAAO,KAAK,cAAL,EAAqBtlB,OAAO,CAACslB,OAAO,IAAE,CAAV,CAA5B,CAAP;CAAiD,SAA1E;;CAA2E,WAAK,CAAL;CAAO,eAAO,UAASA,OAAT,EAAiB;CAAC,iBAAO,KAAK,cAAL,EAAqBrlB,OAAO,CAACqlB,OAAO,IAAE,CAAV,CAA5B,CAAP;CAAiD,SAA1E;;CAA2E;CAAQ,cAAM,IAAI1b,SAAJ,CAAc,yBAAuBvF,IAArC,CAAN;CAA1L;CAA4O;;CAAA,WAASquB,uBAAT,CAAiC9N,OAAjC,EAAyCvgB,IAAzC,EAA8C3E,IAA9C,EAAmD;CAAC,QAAIoC,KAAK,GAAC4gB,gBAAgB,CAAChjB,IAAD,CAA1B;CAAiC2E,IAAAA,IAAI,GAACye,gBAAgB,CAACze,IAAD,CAArB;CAA4BmgB,IAAAA,YAAY,CAACI,OAAD,EAAS;CAACvgB,MAAAA,IAAI,EAACA,IAAN;CAAW,sBAAe,UAAS8C,KAAT,EAAe;CAAC,eAAOA,KAAP;CAAa,OAAvD;CAAwD,oBAAa,UAASie,WAAT,EAAqBje,KAArB,EAA2B;CAAC,YAAG,OAAOA,KAAP,IAAc,QAAd,IAAwB,OAAOA,KAAP,IAAc,SAAzC,EAAmD;CAAC,gBAAM,IAAIyC,SAAJ,CAAc,qBAAmBuhB,YAAY,CAAChkB,KAAD,CAA/B,GAAuC,OAAvC,GAA+C,KAAK9C,IAAlE,CAAN;CAA8E;;CAAA,eAAO8C,KAAP;CAAa,OAAhP;CAAiP,wBAAiB,CAAlQ;CAAoQ,8BAAuBsrB,yBAAyB,CAACpuB,IAAD,EAAMvC,KAAN,CAApT;CAAiUyjB,MAAAA,kBAAkB,EAAC;CAApV,KAAT,CAAZ;CAAgX;;CAAA,WAASoN,2BAAT,CAAqCtuB,IAArC,EAA0CvC,KAA1C,EAAgD8wB,MAAhD,EAAuD;CAAC,YAAO9wB,KAAP;CAAc,WAAK,CAAL;CAAO,eAAO8wB,MAAM,GAAC,SAASC,iBAAT,CAA2BvN,OAA3B,EAAmC;CAAC,iBAAO1lB,KAAK,CAAC0lB,OAAD,CAAZ;CAAsB,SAA3D,GAA4D,SAASwN,iBAAT,CAA2BxN,OAA3B,EAAmC;CAAC,iBAAO1nB,MAAM,CAAC0nB,OAAD,CAAb;CAAuB,SAApI;;CAAqI,WAAK,CAAL;CAAO,eAAOsN,MAAM,GAAC,SAASG,kBAAT,CAA4BzN,OAA5B,EAAoC;CAAC,iBAAOxmB,MAAM,CAACwmB,OAAO,IAAE,CAAV,CAAb;CAA0B,SAAhE,GAAiE,SAAS0N,kBAAT,CAA4B1N,OAA5B,EAAoC;CAAC,iBAAO1mB,OAAO,CAAC0mB,OAAO,IAAE,CAAV,CAAd;CAA2B,SAA9I;;CAA+I,WAAK,CAAL;CAAO,eAAOsN,MAAM,GAAC,SAASK,kBAAT,CAA4B3N,OAA5B,EAAoC;CAAC,iBAAOjmB,MAAM,CAACimB,OAAO,IAAE,CAAV,CAAb;CAA0B,SAAhE,GAAiE,SAAS4N,kBAAT,CAA4B5N,OAA5B,EAAoC;CAAC,iBAAOvlB,OAAO,CAACulB,OAAO,IAAE,CAAV,CAAd;CAA2B,SAA9I;;CAA+I;CAAQ,cAAM,IAAI1b,SAAJ,CAAc,2BAAyBvF,IAAvC,CAAN;CAA9c;CAAkgB;;CAAA,WAAS8uB,yBAAT,CAAmC5Q,aAAnC,EAAiDle,IAAjD,EAAsD3E,IAAtD,EAA2D8iB,QAA3D,EAAoEC,QAApE,EAA6E;CAACpe,IAAAA,IAAI,GAACye,gBAAgB,CAACze,IAAD,CAArB;;CAA4B,QAAGoe,QAAQ,KAAG,CAAC,CAAf,EAAiB;CAACA,MAAAA,QAAQ,GAAC,UAAT;CAAoB;;CAAA,QAAI3gB,KAAK,GAAC4gB,gBAAgB,CAAChjB,IAAD,CAA1B;;CAAiC,QAAI0zB,YAAY,GAACjsB,KAAK,IAAEA,KAAxB;;CAA8B,QAAGqb,QAAQ,KAAG,CAAd,EAAgB;CAAC,UAAI6Q,QAAQ,GAAC,KAAG,IAAE3zB,IAAlB;;CAAuB0zB,MAAAA,YAAY,GAAEjsB,KAAK,IAAEA,KAAK,IAAEksB,QAAP,KAAkBA,QAAvC;CAAiD;;CAAA,QAAIC,cAAc,GAACjvB,IAAI,CAACuI,QAAL,CAAc,UAAd,CAAnB;;CAA6C,QAAI2mB,eAAe,GAAC,CAACpsB,KAAD,EAAOqsB,UAAP,KAAoB;CAAC,UAAG,OAAOrsB,KAAP,IAAc,QAAd,IAAwB,OAAOA,KAAP,IAAc,SAAzC,EAAmD;CAAC,cAAM,IAAIyC,SAAJ,CAAc,qBAAmBuhB,YAAY,CAAChkB,KAAD,CAA/B,GAAuC,OAAvC,GAA+CqsB,UAA7D,CAAN;CAA+E;;CAAA,UAAGrsB,KAAK,GAACqb,QAAN,IAAgBrb,KAAK,GAACsb,QAAzB,EAAkC;CAAC,cAAM,IAAI7Y,SAAJ,CAAc,uBAAqBuhB,YAAY,CAAChkB,KAAD,CAAjC,GAAyC,uDAAzC,GAAiG9C,IAAjG,GAAsG,uCAAtG,GAA8Ime,QAA9I,GAAuJ,IAAvJ,GAA4JC,QAA5J,GAAqK,IAAnL,CAAN;CAA+L;CAAC,KAA/Y;;CAAgZ,QAAIgR,UAAJ;;CAAe,QAAGH,cAAH,EAAkB;CAACG,MAAAA,UAAU,GAAC,UAASrO,WAAT,EAAqBje,KAArB,EAA2B;CAACosB,QAAAA,eAAe,CAACpsB,KAAD,EAAO,KAAK9C,IAAZ,CAAf;CAAiC,eAAO8C,KAAK,KAAG,CAAf;CAAiB,OAAzF;CAA0F,KAA7G,MAAiH;CAACssB,MAAAA,UAAU,GAAC,UAASrO,WAAT,EAAqBje,KAArB,EAA2B;CAACosB,QAAAA,eAAe,CAACpsB,KAAD,EAAO,KAAK9C,IAAZ,CAAf;CAAiC,eAAO8C,KAAP;CAAa,OAArF;CAAsF;;CAAAqd,IAAAA,YAAY,CAACjC,aAAD,EAAe;CAACle,MAAAA,IAAI,EAACA,IAAN;CAAW,sBAAe+uB,YAA1B;CAAuC,oBAAaK,UAApD;CAA+D,wBAAiB,CAAhF;CAAkF,8BAAuBd,2BAA2B,CAACtuB,IAAD,EAAMvC,KAAN,EAAY0gB,QAAQ,KAAG,CAAvB,CAApI;CAA8J+C,MAAAA,kBAAkB,EAAC;CAAjL,KAAf,CAAZ;CAAmN;;CAAA,WAASmO,6BAAT,CAAuC9O,OAAvC,EAA+C+O,aAA/C,EAA6DtvB,IAA7D,EAAkE;CAAC,QAAIuvB,WAAW,GAAC,CAACxzB,SAAD,EAAW7H,UAAX,EAAsB8H,UAAtB,EAAiCE,WAAjC,EAA6CD,UAA7C,EAAwDE,WAAxD,EAAoEC,YAApE,EAAiFC,YAAjF,CAAhB;CAA+G,QAAImzB,EAAE,GAACD,WAAW,CAACD,aAAD,CAAlB;;CAAkC,aAASG,gBAAT,CAA0BnN,MAA1B,EAAiC;CAACA,MAAAA,MAAM,GAACA,MAAM,IAAE,CAAf;CAAiB,UAAI7oB,IAAI,GAACiC,OAAT;CAAiB,UAAIL,IAAI,GAAC5B,IAAI,CAAC6oB,MAAD,CAAb;CAAsB,UAAI9tB,IAAI,GAACiF,IAAI,CAAC6oB,MAAM,GAAC,CAAR,CAAb;CAAwB,aAAO,IAAIkN,EAAJ,CAAOv7B,MAAP,EAAcO,IAAd,EAAmB6G,IAAnB,CAAP;CAAgC;;CAAA2E,IAAAA,IAAI,GAACye,gBAAgB,CAACze,IAAD,CAArB;CAA4BmgB,IAAAA,YAAY,CAACI,OAAD,EAAS;CAACvgB,MAAAA,IAAI,EAACA,IAAN;CAAW,sBAAeyvB,gBAA1B;CAA2C,wBAAiB,CAA5D;CAA8D,8BAAuBA;CAArF,KAAT,EAAgH;CAAC/O,MAAAA,4BAA4B,EAAC;CAA9B,KAAhH,CAAZ;CAAiK;;CAAA,WAASgP,4BAAT,CAAsCnP,OAAtC,EAA8CvgB,IAA9C,EAAmD;CAACA,IAAAA,IAAI,GAACye,gBAAgB,CAACze,IAAD,CAArB;CAA4B,QAAI2vB,eAAe,GAAC3vB,IAAI,KAAG,aAA3B;CAAyCmgB,IAAAA,YAAY,CAACI,OAAD,EAAS;CAACvgB,MAAAA,IAAI,EAACA,IAAN;CAAW,sBAAe,UAAS8C,KAAT,EAAe;CAAC,YAAIrO,MAAM,GAACiH,OAAO,CAACoH,KAAK,IAAE,CAAR,CAAlB;CAA6B,YAAIjK,GAAJ;;CAAQ,YAAG82B,eAAH,EAAmB;CAAC,cAAIC,cAAc,GAAC9sB,KAAK,GAAC,CAAzB;;CAA2B,eAAI,IAAIjJ,CAAC,GAAC,CAAV,EAAYA,CAAC,IAAEpF,MAAf,EAAsB,EAAEoF,CAAxB,EAA0B;CAAC,gBAAIg2B,cAAc,GAAC/sB,KAAK,GAAC,CAAN,GAAQjJ,CAA3B;;CAA6B,gBAAGA,CAAC,IAAEpF,MAAH,IAAW8E,MAAM,CAACs2B,cAAD,CAAN,IAAwB,CAAtC,EAAwC;CAAC,kBAAIC,OAAO,GAACD,cAAc,GAACD,cAA3B;CAA0C,kBAAIG,aAAa,GAAC12B,YAAY,CAACu2B,cAAD,EAAgBE,OAAhB,CAA9B;;CAAuD,kBAAGj3B,GAAG,KAAG9E,SAAT,EAAmB;CAAC8E,gBAAAA,GAAG,GAACk3B,aAAJ;CAAkB,eAAtC,MAA0C;CAACl3B,gBAAAA,GAAG,IAAEE,MAAM,CAACC,YAAP,CAAoB,CAApB,CAAL;CAA4BH,gBAAAA,GAAG,IAAEk3B,aAAL;CAAmB;;CAAAH,cAAAA,cAAc,GAACC,cAAc,GAAC,CAA9B;CAAgC;CAAC;CAAC,SAA7W,MAAiX;CAAC,cAAIG,CAAC,GAAC,IAAIxrB,KAAJ,CAAU/P,MAAV,CAAN;;CAAwB,eAAI,IAAIoF,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACpF,MAAd,EAAqB,EAAEoF,CAAvB,EAAyB;CAACm2B,YAAAA,CAAC,CAACn2B,CAAD,CAAD,GAAKd,MAAM,CAACC,YAAP,CAAoBO,MAAM,CAACuJ,KAAK,GAAC,CAAN,GAAQjJ,CAAT,CAA1B,CAAL;CAA4C;;CAAAhB,UAAAA,GAAG,GAACm3B,CAAC,CAAC9rB,IAAF,CAAO,EAAP,CAAJ;CAAe;;CAAA6kB,QAAAA,KAAK,CAACjmB,KAAD,CAAL;;CAAa,eAAOjK,GAAP;CAAW,OAAtkB;CAAukB,oBAAa,UAASkoB,WAAT,EAAqBje,KAArB,EAA2B;CAAC,YAAGA,KAAK,YAAYsK,WAApB,EAAgC;CAACtK,UAAAA,KAAK,GAAC,IAAI5O,UAAJ,CAAe4O,KAAf,CAAN;CAA4B;;CAAA,YAAImtB,SAAJ;CAAc,YAAIC,mBAAmB,GAAC,OAAOptB,KAAP,IAAc,QAAtC;;CAA+C,YAAG,EAAEotB,mBAAmB,IAAEptB,KAAK,YAAY5O,UAAtC,IAAkD4O,KAAK,YAAYqtB,iBAAnE,IAAsFrtB,KAAK,YAAY/G,SAAzG,CAAH,EAAuH;CAAC0jB,UAAAA,iBAAiB,CAAC,uCAAD,CAAjB;CAA2D;;CAAA,YAAGkQ,eAAe,IAAEO,mBAApB,EAAwC;CAACD,UAAAA,SAAS,GAAE,MAAI/1B,eAAe,CAAC4I,KAAD,CAA9B;CAAuC,SAAhF,MAAoF;CAACmtB,UAAAA,SAAS,GAAE,MAAIntB,KAAK,CAACrO,MAArB;CAA6B;;CAAA,YAAIA,MAAM,GAACw7B,SAAS,EAApB;;CAAuB,YAAI32B,GAAG,GAACgC,OAAO,CAAC,IAAE7G,MAAF,GAAS,CAAV,CAAf;;CAA4BiH,QAAAA,OAAO,CAACpC,GAAG,IAAE,CAAN,CAAP,GAAgB7E,MAAhB;;CAAuB,YAAGk7B,eAAe,IAAEO,mBAApB,EAAwC;CAACl2B,UAAAA,YAAY,CAAC8I,KAAD,EAAOxJ,GAAG,GAAC,CAAX,EAAa7E,MAAM,GAAC,CAApB,CAAZ;CAAmC,SAA5E,MAAgF;CAAC,cAAGy7B,mBAAH,EAAuB;CAAC,iBAAI,IAAIr2B,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACpF,MAAd,EAAqB,EAAEoF,CAAvB,EAAyB;CAAC,kBAAIu2B,QAAQ,GAACttB,KAAK,CAAC/I,UAAN,CAAiBF,CAAjB,CAAb;;CAAiC,kBAAGu2B,QAAQ,GAAC,GAAZ,EAAgB;CAACrH,gBAAAA,KAAK,CAACzvB,GAAD,CAAL;;CAAWmmB,gBAAAA,iBAAiB,CAAC,wDAAD,CAAjB;CAA4E;;CAAAlmB,cAAAA,MAAM,CAACD,GAAG,GAAC,CAAJ,GAAMO,CAAP,CAAN,GAAgBu2B,QAAhB;CAAyB;CAAC,WAArN,MAAyN;CAAC,iBAAI,IAAIv2B,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACpF,MAAd,EAAqB,EAAEoF,CAAvB,EAAyB;CAACN,cAAAA,MAAM,CAACD,GAAG,GAAC,CAAJ,GAAMO,CAAP,CAAN,GAAgBiJ,KAAK,CAACjJ,CAAD,CAArB;CAAyB;CAAC;CAAC;;CAAA,YAAGknB,WAAW,KAAG,IAAjB,EAAsB;CAACA,UAAAA,WAAW,CAAC3a,IAAZ,CAAiB2iB,KAAjB,EAAuBzvB,GAAvB;CAA4B;;CAAA,eAAOA,GAAP;CAAW,OAAv/C;CAAw/C,wBAAiB,CAAzgD;CAA2gD,8BAAuBkuB,0BAAliD;CAA6jDtG,MAAAA,kBAAkB,EAAC,UAAS5nB,GAAT,EAAa;CAACyvB,QAAAA,KAAK,CAACzvB,GAAD,CAAL;CAAW;CAAzmD,KAAT,CAAZ;CAAioD;;CAAA,WAAS+2B,6BAAT,CAAuC9P,OAAvC,EAA+C+P,QAA/C,EAAwDtwB,IAAxD,EAA6D;CAACA,IAAAA,IAAI,GAACye,gBAAgB,CAACze,IAAD,CAArB;CAA4B,QAAIuwB,YAAJ,EAAiBC,YAAjB,EAA8BC,OAA9B,EAAsCC,cAAtC,EAAqDjzB,KAArD;;CAA2D,QAAG6yB,QAAQ,KAAG,CAAd,EAAgB;CAACC,MAAAA,YAAY,GAACl2B,aAAb;CAA2Bm2B,MAAAA,YAAY,GAAC91B,aAAb;CAA2Bg2B,MAAAA,cAAc,GAAC71B,gBAAf;;CAAgC41B,MAAAA,OAAO,GAAE,MAAIl2B,OAAb;;CAAsBkD,MAAAA,KAAK,GAAC,CAAN;CAAQ,KAArI,MAA0I,IAAG6yB,QAAQ,KAAG,CAAd,EAAgB;CAACC,MAAAA,YAAY,GAACz1B,aAAb;CAA2B01B,MAAAA,YAAY,GAACv1B,aAAb;CAA2By1B,MAAAA,cAAc,GAACv1B,gBAAf;;CAAgCs1B,MAAAA,OAAO,GAAE,MAAI/0B,OAAb;;CAAsB+B,MAAAA,KAAK,GAAC,CAAN;CAAQ;;CAAA0iB,IAAAA,YAAY,CAACI,OAAD,EAAS;CAACvgB,MAAAA,IAAI,EAACA,IAAN;CAAW,sBAAe,UAAS8C,KAAT,EAAe;CAAC,YAAIrO,MAAM,GAACiH,OAAO,CAACoH,KAAK,IAAE,CAAR,CAAlB;CAA6B,YAAI6tB,IAAI,GAACF,OAAO,EAAhB;CAAmB,YAAI53B,GAAJ;CAAQ,YAAI+2B,cAAc,GAAC9sB,KAAK,GAAC,CAAzB;;CAA2B,aAAI,IAAIjJ,CAAC,GAAC,CAAV,EAAYA,CAAC,IAAEpF,MAAf,EAAsB,EAAEoF,CAAxB,EAA0B;CAAC,cAAIg2B,cAAc,GAAC/sB,KAAK,GAAC,CAAN,GAAQjJ,CAAC,GAACy2B,QAA7B;;CAAsC,cAAGz2B,CAAC,IAAEpF,MAAH,IAAWk8B,IAAI,CAACd,cAAc,IAAEpyB,KAAjB,CAAJ,IAA6B,CAA3C,EAA6C;CAAC,gBAAImzB,YAAY,GAACf,cAAc,GAACD,cAAhC;CAA+C,gBAAIG,aAAa,GAACQ,YAAY,CAACX,cAAD,EAAgBgB,YAAhB,CAA9B;;CAA4D,gBAAG/3B,GAAG,KAAG9E,SAAT,EAAmB;CAAC8E,cAAAA,GAAG,GAACk3B,aAAJ;CAAkB,aAAtC,MAA0C;CAACl3B,cAAAA,GAAG,IAAEE,MAAM,CAACC,YAAP,CAAoB,CAApB,CAAL;CAA4BH,cAAAA,GAAG,IAAEk3B,aAAL;CAAmB;;CAAAH,YAAAA,cAAc,GAACC,cAAc,GAACS,QAA9B;CAAuC;CAAC;;CAAAvH,QAAAA,KAAK,CAACjmB,KAAD,CAAL;;CAAa,eAAOjK,GAAP;CAAW,OAAjf;CAAkf,oBAAa,UAASkoB,WAAT,EAAqBje,KAArB,EAA2B;CAAC,YAAG,EAAE,OAAOA,KAAP,IAAc,QAAhB,CAAH,EAA6B;CAAC2c,UAAAA,iBAAiB,CAAC,+CAA6Czf,IAA9C,CAAjB;CAAqE;;CAAA,YAAIvL,MAAM,GAACi8B,cAAc,CAAC5tB,KAAD,CAAzB;;CAAiC,YAAIxJ,GAAG,GAACgC,OAAO,CAAC,IAAE7G,MAAF,GAAS67B,QAAV,CAAf;;CAAmC50B,QAAAA,OAAO,CAACpC,GAAG,IAAE,CAAN,CAAP,GAAgB7E,MAAM,IAAEgJ,KAAxB;CAA8B+yB,QAAAA,YAAY,CAAC1tB,KAAD,EAAOxJ,GAAG,GAAC,CAAX,EAAa7E,MAAM,GAAC67B,QAApB,CAAZ;;CAA0C,YAAGvP,WAAW,KAAG,IAAjB,EAAsB;CAACA,UAAAA,WAAW,CAAC3a,IAAZ,CAAiB2iB,KAAjB,EAAuBzvB,GAAvB;CAA4B;;CAAA,eAAOA,GAAP;CAAW,OAAx0B;CAAy0B,wBAAiB,CAA11B;CAA41B,8BAAuBkuB,0BAAn3B;CAA84BtG,MAAAA,kBAAkB,EAAC,UAAS5nB,GAAT,EAAa;CAACyvB,QAAAA,KAAK,CAACzvB,GAAD,CAAL;CAAW;CAA17B,KAAT,CAAZ;CAAk9B;;CAAA,WAASu3B,sBAAT,CAAgCtQ,OAAhC,EAAwCvgB,IAAxC,EAA6C;CAACA,IAAAA,IAAI,GAACye,gBAAgB,CAACze,IAAD,CAArB;CAA4BmgB,IAAAA,YAAY,CAACI,OAAD,EAAS;CAACuQ,MAAAA,MAAM,EAAC,IAAR;CAAa9wB,MAAAA,IAAI,EAACA,IAAlB;CAAuB,wBAAiB,CAAxC;CAA0C,sBAAe,YAAU;CAAC,eAAOjM,SAAP;CAAiB,OAArF;CAAsF,oBAAa,UAASgtB,WAAT,EAAqBC,CAArB,EAAuB;CAAC,eAAOjtB,SAAP;CAAiB;CAA5I,KAAT,CAAZ;CAAoK;;CAAA,WAASg9B,qBAAT,GAAgC;CAAC,WAAOnpB,IAAI,CAACC,GAAL,EAAP;CAAkB;;CAAA,WAASmpB,qBAAT,CAA+BzQ,OAA/B,EAAuC4F,SAAvC,EAAiD;CAAC,QAAI8K,IAAI,GAACrS,eAAe,CAAC2B,OAAD,CAAxB;;CAAkC,QAAGxsB,SAAS,KAAGk9B,IAAf,EAAoB;CAACxR,MAAAA,iBAAiB,CAAC0G,SAAS,GAAC,oBAAV,GAA+B0C,WAAW,CAACtI,OAAD,CAA3C,CAAjB;CAAuE;;CAAA,WAAO0Q,IAAP;CAAY;;CAAA,WAASC,UAAT,CAAoB5O,MAApB,EAA2B6O,UAA3B,EAAsCC,cAAtC,EAAqD;CAAC9O,IAAAA,MAAM,GAAC+E,KAAK,CAAC4G,OAAN,CAAc3L,MAAd,CAAP;CAA6B6O,IAAAA,UAAU,GAACH,qBAAqB,CAACG,UAAD,EAAY,WAAZ,CAAhC;CAAyD,QAAIpQ,WAAW,GAAC,EAAhB;CAAmB,QAAIsQ,EAAE,GAAChK,KAAK,CAACC,QAAN,CAAevG,WAAf,CAAP;CAAmC/lB,IAAAA,MAAM,CAACo2B,cAAc,IAAE,CAAjB,CAAN,GAA0BC,EAA1B;CAA6B,WAAOF,UAAU,CAAC,YAAD,CAAV,CAAyBpQ,WAAzB,EAAqCuB,MAArC,CAAP;CAAoD;;CAAA,MAAIgP,aAAa,GAAC,EAAlB;;CAAqB,WAASC,iBAAT,CAA2BzoB,OAA3B,EAAmC;CAAC,QAAI0oB,MAAM,GAACF,aAAa,CAACxoB,OAAD,CAAxB;;CAAkC,QAAG0oB,MAAM,KAAGz9B,SAAZ,EAAsB;CAAC,aAAO0qB,gBAAgB,CAAC3V,OAAD,CAAvB;CAAiC;;CAAA,WAAO0oB,MAAP;CAAc;;CAAA,MAAIC,mBAAmB,GAAC,EAAxB;;CAA2B,WAASC,wBAAT,CAAkCC,MAAlC,EAAyCrP,MAAzC,EAAgD4D,UAAhD,EAA2DgC,IAA3D,EAAgE;CAACyJ,IAAAA,MAAM,GAACF,mBAAmB,CAACE,MAAD,CAA1B;CAAmCrP,IAAAA,MAAM,GAAC+E,KAAK,CAAC4G,OAAN,CAAc3L,MAAd,CAAP;CAA6B4D,IAAAA,UAAU,GAACqL,iBAAiB,CAACrL,UAAD,CAA5B;CAAyCyL,IAAAA,MAAM,CAACrP,MAAD,EAAQ4D,UAAR,EAAmB,IAAnB,EAAwBgC,IAAxB,CAAN;CAAoC;;CAAA,WAAS0J,uBAAT,CAAiCD,MAAjC,EAAwC;CAAC,QAAI5yB,EAAE,GAAC0yB,mBAAmB,CAACh9B,MAA3B;CAAkCg9B,IAAAA,mBAAmB,CAACrrB,IAApB,CAAyBurB,MAAzB;CAAiC,WAAO5yB,EAAP;CAAU;;CAAA,WAAS8yB,mBAAT,CAA6BvL,QAA7B,EAAsC2E,QAAtC,EAA+C;CAAC,QAAI+E,CAAC,GAAC,IAAIxrB,KAAJ,CAAU8hB,QAAV,CAAN;;CAA0B,SAAI,IAAIzsB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACysB,QAAd,EAAuB,EAAEzsB,CAAzB,EAA2B;CAACm2B,MAAAA,CAAC,CAACn2B,CAAD,CAAD,GAAKm3B,qBAAqB,CAACh2B,MAAM,CAAC,CAACiwB,QAAQ,IAAE,CAAX,IAAcpxB,CAAf,CAAP,EAAyB,eAAaA,CAAtC,CAA1B;CAAmE;;CAAA,WAAOm2B,CAAP;CAAS;;CAAA,MAAI8B,uBAAuB,GAAC,EAA5B;;CAA+B,WAASC,yBAAT,CAAmCzL,QAAnC,EAA4C2E,QAA5C,EAAqD;CAAC,QAAIhC,KAAK,GAAC4I,mBAAmB,CAACvL,QAAD,EAAU2E,QAAV,CAA7B;;CAAiD,QAAI+G,OAAO,GAAC/I,KAAK,CAAC,CAAD,CAAjB;CAAqB,QAAIgJ,aAAa,GAACD,OAAO,CAAChyB,IAAR,GAAa,IAAb,GAAkBipB,KAAK,CAACr0B,KAAN,CAAY,CAAZ,EAAey0B,GAAf,CAAmB,UAAS8E,CAAT,EAAW;CAAC,aAAOA,CAAC,CAACnuB,IAAT;CAAc,KAA7C,EAA+CkE,IAA/C,CAAoD,GAApD,CAAlB,GAA2E,GAA7F;CAAiG,QAAIguB,QAAQ,GAACJ,uBAAuB,CAACG,aAAD,CAApC;;CAAoD,QAAGC,QAAQ,KAAGn+B,SAAd,EAAwB;CAAC,aAAOm+B,QAAP;CAAgB;;CAAA,QAAIC,MAAM,GAAC,CAAC,SAAD,CAAX;CAAuB,QAAIjK,IAAI,GAAC,CAAC8J,OAAD,CAAT;CAAmB,QAAIrG,QAAQ,GAAC,EAAb;;CAAgB,SAAI,IAAI9xB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACysB,QAAQ,GAAC,CAAvB,EAAyB,EAAEzsB,CAA3B,EAA6B;CAAC8xB,MAAAA,QAAQ,IAAE,CAAC9xB,CAAC,KAAG,CAAJ,GAAM,IAAN,GAAW,EAAZ,IAAgB,KAAhB,GAAsBA,CAAhC;CAAkCs4B,MAAAA,MAAM,CAAC/rB,IAAP,CAAY,YAAUvM,CAAtB;CAAyBquB,MAAAA,IAAI,CAAC9hB,IAAL,CAAU6iB,KAAK,CAAC,IAAEpvB,CAAH,CAAf;CAAsB;;CAAA,QAAIu4B,YAAY,GAACpT,qBAAqB,CAAC,kBAAgBiT,aAAjB,CAAtC;CAAsE,QAAII,YAAY,GAAC,qBAAmBD,YAAnB,GAAgC,uCAAjD;CAAyF,QAAI7qB,MAAM,GAAC,CAAX;;CAAa,SAAI,IAAI1N,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACysB,QAAQ,GAAC,CAAvB,EAAyB,EAAEzsB,CAA3B,EAA6B;CAACw4B,MAAAA,YAAY,IAAE,gBAAcx4B,CAAd,GAAgB,YAAhB,GAA6BA,CAA7B,GAA+B,4BAA/B,IAA6D0N,MAAM,GAAC,MAAIA,MAAL,GAAY,EAA/E,IAAmF,MAAjG;CAAwGA,MAAAA,MAAM,IAAE0hB,KAAK,CAACpvB,CAAC,GAAC,CAAH,CAAL,CAAW,gBAAX,CAAR;CAAqC;;CAAAw4B,IAAAA,YAAY,IAAE,+BAA6B1G,QAA7B,GAAsC,MAApD;;CAA2D,SAAI,IAAI9xB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACysB,QAAQ,GAAC,CAAvB,EAAyB,EAAEzsB,CAA3B,EAA6B;CAAC,UAAGovB,KAAK,CAACpvB,CAAC,GAAC,CAAH,CAAL,CAAW,cAAX,CAAH,EAA8B;CAACw4B,QAAAA,YAAY,IAAE,gBAAcx4B,CAAd,GAAgB,mBAAhB,GAAoCA,CAApC,GAAsC,MAApD;CAA2D;CAAC;;CAAA,QAAG,CAACm4B,OAAO,CAAClB,MAAZ,EAAmB;CAACuB,MAAAA,YAAY,IAAE,mDAAd;CAAkE;;CAAAA,IAAAA,YAAY,IAAE,MAAd;CAAqBF,IAAAA,MAAM,CAAC/rB,IAAP,CAAYisB,YAAZ;CAA0B,QAAInG,eAAe,GAACf,IAAI,CAAChM,QAAD,EAAUgT,MAAV,CAAJ,CAAsB/xB,KAAtB,CAA4B,IAA5B,EAAiC8nB,IAAjC,CAApB;CAA2DgK,IAAAA,QAAQ,GAACN,uBAAuB,CAAC1F,eAAD,CAAhC;CAAkD4F,IAAAA,uBAAuB,CAACG,aAAD,CAAvB,GAAuCC,QAAvC;CAAgD,WAAOA,QAAP;CAAgB;;CAAA,WAASI,cAAT,CAAwBhQ,MAAxB,EAA+B;CAAC,QAAGA,MAAM,GAAC,CAAV,EAAY;CAACqL,MAAAA,kBAAkB,CAACrL,MAAD,CAAlB,CAA2BuL,QAA3B,IAAqC,CAArC;CAAuC;CAAC;;CAAA,WAAS0E,uBAAT,CAAiCjQ,MAAjC,EAAwC;CAAC,QAAIvB,WAAW,GAACsG,KAAK,CAAC4G,OAAN,CAAc3L,MAAd,CAAhB;CAAsCkI,IAAAA,cAAc,CAACzJ,WAAD,CAAd;;CAA4B6M,IAAAA,cAAc,CAACtL,MAAD,CAAd;CAAuB;;CAAA,WAASkQ,kBAAT,CAA4Bzf,IAA5B,EAAiC0f,IAAjC,EAAsC;CAAC1f,IAAAA,IAAI,GAACie,qBAAqB,CAACje,IAAD,EAAM,mBAAN,CAA1B;CAAqD,QAAI0a,CAAC,GAAC1a,IAAI,CAAC,sBAAD,CAAJ,CAA6B0f,IAA7B,CAAN;CAAyC,WAAOpL,KAAK,CAACC,QAAN,CAAemG,CAAf,CAAP;CAAyB;;CAAA,WAASiF,WAAT,CAAqBC,IAArB,EAA0BC,KAA1B,EAAgC;CAAC,QAAIC,IAAI,GAAC,IAAIjrB,IAAJ,CAAS5M,MAAM,CAAC23B,IAAI,IAAE,CAAP,CAAN,GAAgB,GAAzB,CAAT;CAAuC33B,IAAAA,MAAM,CAAC43B,KAAK,IAAE,CAAR,CAAN,GAAiBC,IAAI,CAACC,aAAL,EAAjB;CAAsC93B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,CAAN,IAAS,CAAV,CAAN,GAAmBC,IAAI,CAACE,aAAL,EAAnB;CAAwC/3B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,CAAN,IAAS,CAAV,CAAN,GAAmBC,IAAI,CAACG,WAAL,EAAnB;CAAsCh4B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoBC,IAAI,CAACI,UAAL,EAApB;CAAsCj4B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoBC,IAAI,CAACK,WAAL,EAApB;CAAuCl4B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoBC,IAAI,CAACM,cAAL,KAAsB,IAA1C;CAA+Cn4B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoBC,IAAI,CAACO,SAAL,EAApB;CAAqC,QAAIvtB,KAAK,GAAC+B,IAAI,CAACyrB,GAAL,CAASR,IAAI,CAACM,cAAL,EAAT,EAA+B,CAA/B,EAAiC,CAAjC,EAAmC,CAAnC,EAAqC,CAArC,EAAuC,CAAvC,EAAyC,CAAzC,CAAV;CAAsD,QAAIG,IAAI,GAAC,CAACT,IAAI,CAAChW,OAAL,KAAehX,KAAhB,KAAwB,MAAI,EAAJ,GAAO,EAAP,GAAU,EAAlC,IAAsC,CAA/C;CAAiD7K,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoBU,IAApB;CAAyB;;CAAA,WAASC,cAAT,CAAwBZ,IAAxB,EAA6BC,KAA7B,EAAmC;CAAC,QAAIC,IAAI,GAAC,IAAIjrB,IAAJ,CAAS5M,MAAM,CAAC23B,IAAI,IAAE,CAAP,CAAN,GAAgB,GAAzB,CAAT;CAAuC33B,IAAAA,MAAM,CAAC43B,KAAK,IAAE,CAAR,CAAN,GAAiBC,IAAI,CAACW,UAAL,EAAjB;CAAmCx4B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,CAAN,IAAS,CAAV,CAAN,GAAmBC,IAAI,CAACY,UAAL,EAAnB;CAAqCz4B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,CAAN,IAAS,CAAV,CAAN,GAAmBC,IAAI,CAACa,QAAL,EAAnB;CAAmC14B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoBC,IAAI,CAACc,OAAL,EAApB;CAAmC34B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoBC,IAAI,CAACe,QAAL,EAApB;CAAoC54B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoBC,IAAI,CAACgB,WAAL,KAAmB,IAAvC;CAA4C74B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoBC,IAAI,CAACiB,MAAL,EAApB;CAAkC,QAAIjuB,KAAK,GAAC,IAAI+B,IAAJ,CAASirB,IAAI,CAACgB,WAAL,EAAT,EAA4B,CAA5B,EAA8B,CAA9B,CAAV;CAA2C,QAAIP,IAAI,GAAC,CAACT,IAAI,CAAChW,OAAL,KAAehX,KAAK,CAACgX,OAAN,EAAhB,KAAkC,MAAI,EAAJ,GAAO,EAAP,GAAU,EAA5C,IAAgD,CAAzD;CAA2D7hB,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoBU,IAApB;CAAyBt4B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoB,EAAEC,IAAI,CAACkB,iBAAL,KAAyB,EAA3B,CAApB;CAAmD,QAAIC,YAAY,GAAC,IAAIpsB,IAAJ,CAASirB,IAAI,CAACgB,WAAL,EAAT,EAA4B,CAA5B,EAA8B,CAA9B,EAAiCE,iBAAjC,EAAjB;CAAsE,QAAIE,YAAY,GAACpuB,KAAK,CAACkuB,iBAAN,EAAjB;CAA2C,QAAIG,GAAG,GAAC,CAACF,YAAY,IAAEC,YAAd,IAA4BpB,IAAI,CAACkB,iBAAL,MAA0B11B,IAAI,CAAC4H,GAAL,CAASguB,YAAT,EAAsBD,YAAtB,CAAvD,IAA4F,CAApG;CAAsGh5B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoBsB,GAApB;CAAwB;;CAAA,WAASC,WAAT,CAAqBvB,KAArB,EAA2B;CAAC,QAAIC,IAAI,GAAC,IAAIjrB,IAAJ,CAAS5M,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoB,IAA7B,EAAkC53B,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAxC,EAAsD53B,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAA5D,EAA0E53B,MAAM,CAAC43B,KAAK,GAAC,CAAN,IAAS,CAAV,CAAhF,EAA6F53B,MAAM,CAAC43B,KAAK,GAAC,CAAN,IAAS,CAAV,CAAnG,EAAgH53B,MAAM,CAAC43B,KAAK,IAAE,CAAR,CAAtH,EAAiI,CAAjI,CAAT;CAA6I,QAAIsB,GAAG,GAACl5B,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAd;CAA4B,QAAIwB,aAAa,GAACvB,IAAI,CAACkB,iBAAL,EAAlB;CAA2C,QAAIluB,KAAK,GAAC,IAAI+B,IAAJ,CAASirB,IAAI,CAACgB,WAAL,EAAT,EAA4B,CAA5B,EAA8B,CAA9B,CAAV;CAA2C,QAAIG,YAAY,GAAC,IAAIpsB,IAAJ,CAASirB,IAAI,CAACgB,WAAL,EAAT,EAA4B,CAA5B,EAA8B,CAA9B,EAAiCE,iBAAjC,EAAjB;CAAsE,QAAIE,YAAY,GAACpuB,KAAK,CAACkuB,iBAAN,EAAjB;CAA2C,QAAIM,SAAS,GAACh2B,IAAI,CAAC4H,GAAL,CAASguB,YAAT,EAAsBD,YAAtB,CAAd;;CAAkD,QAAGE,GAAG,GAAC,CAAP,EAAS;CAACl5B,MAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoB5Z,MAAM,CAACgb,YAAY,IAAEC,YAAd,IAA4BI,SAAS,IAAED,aAAxC,CAA1B;CAAiF,KAA3F,MAAgG,IAAGF,GAAG,GAAC,CAAJ,KAAQG,SAAS,IAAED,aAAnB,CAAH,EAAqC;CAAC,UAAIE,YAAY,GAACj2B,IAAI,CAACzB,GAAL,CAASq3B,YAAT,EAAsBD,YAAtB,CAAjB;CAAqD,UAAIO,UAAU,GAACL,GAAG,GAAC,CAAJ,GAAMG,SAAN,GAAgBC,YAA/B;CAA4CzB,MAAAA,IAAI,CAAC2B,OAAL,CAAa3B,IAAI,CAAChW,OAAL,KAAe,CAAC0X,UAAU,GAACH,aAAZ,IAA2B,GAAvD;CAA4D;;CAAAp5B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoBC,IAAI,CAACiB,MAAL,EAApB;CAAkC,QAAIR,IAAI,GAAC,CAACT,IAAI,CAAChW,OAAL,KAAehX,KAAK,CAACgX,OAAN,EAAhB,KAAkC,MAAI,EAAJ,GAAO,EAAP,GAAU,EAA5C,IAAgD,CAAzD;CAA2D7hB,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoBU,IAApB;CAAyBt4B,IAAAA,MAAM,CAAC43B,KAAK,IAAE,CAAR,CAAN,GAAiBC,IAAI,CAACW,UAAL,EAAjB;CAAmCx4B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,CAAN,IAAS,CAAV,CAAN,GAAmBC,IAAI,CAACY,UAAL,EAAnB;CAAqCz4B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,CAAN,IAAS,CAAV,CAAN,GAAmBC,IAAI,CAACa,QAAL,EAAnB;CAAmC14B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoBC,IAAI,CAACc,OAAL,EAApB;CAAmC34B,IAAAA,MAAM,CAAC43B,KAAK,GAAC,EAAN,IAAU,CAAX,CAAN,GAAoBC,IAAI,CAACe,QAAL,EAApB;CAAoC,WAAOf,IAAI,CAAChW,OAAL,KAAe,GAAf,GAAmB,CAA1B;CAA4B;;CAAA,WAAS4X,WAAT,CAAqBC,QAArB,EAA8BC,QAA9B,EAAuCC,MAAvC,EAA8C;CAAC,QAAIC,WAAW,GAAE,IAAIjtB,IAAJ,EAAD,CAAWisB,WAAX,EAAhB;CAAyC,QAAIiB,MAAM,GAAC,IAAIltB,IAAJ,CAASitB,WAAT,EAAqB,CAArB,EAAuB,CAAvB,CAAX;CAAqC,QAAIE,MAAM,GAAC,IAAIntB,IAAJ,CAASitB,WAAT,EAAqB,CAArB,EAAuB,CAAvB,CAAX;CAAqC,QAAIZ,YAAY,GAACa,MAAM,CAACf,iBAAP,EAAjB;CAA4C,QAAIC,YAAY,GAACe,MAAM,CAAChB,iBAAP,EAAjB;CAA4C,QAAIiB,iBAAiB,GAAC32B,IAAI,CAACzB,GAAL,CAASq3B,YAAT,EAAsBD,YAAtB,CAAtB;CAA0Dh5B,IAAAA,MAAM,CAAC05B,QAAQ,IAAE,CAAX,CAAN,GAAoBM,iBAAiB,GAAC,EAAtC;CAAyCh6B,IAAAA,MAAM,CAAC25B,QAAQ,IAAE,CAAX,CAAN,GAAoB3b,MAAM,CAACib,YAAY,IAAED,YAAf,CAA1B;;CAAuD,aAASiB,WAAT,CAAqBpC,IAArB,EAA0B;CAAC,UAAIqC,KAAK,GAACrC,IAAI,CAACsC,YAAL,GAAoBD,KAApB,CAA0B,mBAA1B,CAAV;CAAyD,aAAOA,KAAK,GAACA,KAAK,CAAC,CAAD,CAAN,GAAU,KAAtB;CAA4B;;CAAA,QAAIE,UAAU,GAACH,WAAW,CAACH,MAAD,CAA1B;CAAmC,QAAIO,UAAU,GAACJ,WAAW,CAACF,MAAD,CAA1B;CAAmC,QAAIO,aAAa,GAACl6B,YAAY,CAACg6B,UAAD,CAA9B;CAA2C,QAAIG,aAAa,GAACn6B,YAAY,CAACi6B,UAAD,CAA9B;;CAA2C,QAAGrB,YAAY,GAACC,YAAhB,EAA6B;CAACj5B,MAAAA,MAAM,CAAC45B,MAAM,IAAE,CAAT,CAAN,GAAkBU,aAAlB;CAAgCt6B,MAAAA,MAAM,CAAC45B,MAAM,GAAC,CAAP,IAAU,CAAX,CAAN,GAAoBW,aAApB;CAAkC,KAAhG,MAAoG;CAACv6B,MAAAA,MAAM,CAAC45B,MAAM,IAAE,CAAT,CAAN,GAAkBW,aAAlB;CAAgCv6B,MAAAA,MAAM,CAAC45B,MAAM,GAAC,CAAP,IAAU,CAAX,CAAN,GAAoBU,aAApB;CAAkC;CAAC;;CAAA,WAASE,UAAT,CAAoBd,QAApB,EAA6BC,QAA7B,EAAsCC,MAAtC,EAA6C;CAAC,QAAGY,UAAU,CAACC,MAAd,EAAqB;CAAOD,IAAAA,UAAU,CAACC,MAAX,GAAkB,IAAlB;;CAAuBhB,IAAAA,WAAW,CAACC,QAAD,EAAUC,QAAV,EAAmBC,MAAnB,CAAX;CAAsC;;CAAA,WAASc,MAAT,GAAiB;CAACp+B,IAAAA,KAAK,CAAC,4BAAD,CAAL;CAAoC;;CAAA,WAASq+B,cAAT,CAAwBnzB,CAAxB,EAA0B;CAAC,WAAOA,CAAC,GAAC,CAAF,IAAKA,CAAC,KAAG,CAAJ,IAAO,IAAEA,CAAF,KAAM,CAACozB,QAA1B;CAAmC;;CAAA,WAASC,mBAAT,CAA6BC,EAA7B,EAAgCC,EAAhC,EAAmC;CAAC5hC,IAAAA,MAAM,CAAC4hC,EAAE,MAAIA,EAAE,GAAC,CAAP,CAAH,CAAN;CAAoB,WAAM,CAACD,EAAE,KAAG,CAAN,IAASC,EAAE,GAAC,UAAlB;CAA6B;;CAAA,WAASC,mBAAT,CAA6BF,EAA7B,EAAgCC,EAAhC,EAAmC;CAAC,WAAM,CAACD,EAAE,KAAG,CAAN,IAAS,CAACC,EAAE,KAAG,CAAN,IAAS,UAAxB;CAAmC;;CAAA,WAASE,MAAT,CAAgBnzB,KAAhB,EAAsBozB,IAAtB,EAA2B;CAAC,QAAGpzB,KAAK,IAAE,CAAV,EAAY;CAAC,aAAOA,KAAP;CAAa;;CAAA,QAAIqzB,IAAI,GAACD,IAAI,IAAE,EAAN,GAAS73B,IAAI,CAACse,GAAL,CAAS,KAAGuZ,IAAI,GAAC,CAAjB,CAAT,GAA6B73B,IAAI,CAAC+3B,GAAL,CAAS,CAAT,EAAWF,IAAI,GAAC,CAAhB,CAAtC;;CAAyD,QAAGpzB,KAAK,IAAEqzB,IAAP,KAAcD,IAAI,IAAE,EAAN,IAAUpzB,KAAK,GAACqzB,IAA9B,CAAH,EAAuC;CAACrzB,MAAAA,KAAK,GAAC,CAAC,CAAD,GAAGqzB,IAAH,GAAQrzB,KAAd;CAAoB;;CAAA,WAAOA,KAAP;CAAa;;CAAA,WAASuzB,MAAT,CAAgBvzB,KAAhB,EAAsBozB,IAAtB,EAA2B;CAAC,QAAGpzB,KAAK,IAAE,CAAV,EAAY;CAAC,aAAOA,KAAP;CAAa;;CAAA,WAAOozB,IAAI,IAAE,EAAN,GAAS,IAAE73B,IAAI,CAACse,GAAL,CAAS,KAAGuZ,IAAI,GAAC,CAAjB,CAAF,GAAsBpzB,KAA/B,GAAqCzE,IAAI,CAAC+3B,GAAL,CAAS,CAAT,EAAWF,IAAX,IAAiBpzB,KAA7D;CAAmE;;CAAA,WAASwzB,YAAT,CAAsBC,MAAtB,EAA6B5Y,OAA7B,EAAqC;CAACxpB,IAAAA,MAAM,CAAC,CAACwpB,OAAO,GAAC,CAAT,MAAc,CAAf,CAAN;CAAwB,QAAI6Y,SAAS,GAACD,MAAd;CAAqB,QAAIE,QAAQ,GAAC9Y,OAAb;;CAAqB,aAAS+Y,UAAT,CAAoBp9B,GAApB,EAAwByZ,IAAxB,EAA6B;CAAC,UAAGA,IAAI,KAAG,QAAP,IAAiBA,IAAI,KAAG,KAA3B,EAAiC;CAAC,YAAGzZ,GAAG,GAAC,CAAP,EAAS;CAACnF,UAAAA,MAAM,CAAC,CAACmF,GAAG,GAAC,CAAL,MAAU,CAAX,CAAN;CAAoBA,UAAAA,GAAG,IAAE,CAAL;CAAO;CAAC,OAAxE,MAA4E;CAACnF,QAAAA,MAAM,CAAC,CAACmF,GAAG,GAAC,CAAL,MAAU,CAAX,CAAN;CAAoB;;CAAA,aAAOA,GAAP;CAAW;;CAAA,aAASq9B,UAAT,CAAoB5jB,IAApB,EAAyB;CAAC,UAAI/e,GAAJ;CAAQyiC,MAAAA,QAAQ,GAACC,UAAU,CAACD,QAAD,EAAU1jB,IAAV,CAAnB;;CAAmC,UAAGA,IAAI,KAAG,QAAV,EAAmB;CAAC/e,QAAAA,GAAG,GAACglB,MAAM,CAACpd,OAAO,CAAC66B,QAAQ,IAAE,CAAX,CAAR,CAAV;CAAiCA,QAAAA,QAAQ,IAAE,CAAV;CAAY,OAAjE,MAAsE,IAAG1jB,IAAI,IAAE,KAAT,EAAe;CAAC/e,QAAAA,GAAG,GAAC,CAACgH,MAAM,CAACy7B,QAAQ,IAAE,CAAX,CAAP,EAAqBz7B,MAAM,CAACy7B,QAAQ,GAAC,CAAT,IAAY,CAAb,CAA3B,CAAJ;CAAgDA,QAAAA,QAAQ,IAAE,CAAV;CAAY,OAA5E,MAAgF;CAACtiC,QAAAA,MAAM,CAAC,CAACsiC,QAAQ,GAAC,CAAV,MAAe,CAAhB,CAAN;CAAyB1jB,QAAAA,IAAI,GAAC,KAAL;CAAW/e,QAAAA,GAAG,GAACgH,MAAM,CAACy7B,QAAQ,IAAE,CAAX,CAAV;CAAwBA,QAAAA,QAAQ,IAAE,CAAV;CAAY;;CAAA,aAAOziC,GAAP;CAAW;;CAAA,QAAIA,GAAG,GAAC,EAAR;CAAW,QAAIypB,IAAJ,EAASrK,IAAT,EAAcwjB,OAAd;;CAAsB,WAAM,CAAN,EAAQ;CAAC,UAAIC,cAAc,GAACL,SAAnB;CAA6B/Y,MAAAA,IAAI,GAACliB,KAAK,CAACi7B,SAAS,IAAE,CAAZ,CAAV;CAAyB,UAAG/Y,IAAI,KAAG,CAAV,EAAY;CAAMrK,MAAAA,IAAI,GAAC7X,KAAK,CAACi7B,SAAS,GAAC,CAAV,IAAa,CAAd,CAAV;;CAA2B,UAAG/Y,IAAI,IAAE,EAAT,EAAY;CAAC,YAAIqZ,gBAAgB,GAAC,KAArB;CAA2B,YAAIC,aAAa,GAAC,KAAlB;CAAwB,YAAIC,eAAe,GAAC,KAApB;CAA0B,YAAIC,WAAW,GAAC,KAAhB;CAAsB,YAAIC,WAAW,GAAC,KAAhB;;CAAsBC,QAAAA,SAAS,EAAC,OAAM,CAAN,EAAQ;CAAC,kBAAO/jB,IAAP;CAAa,iBAAK,EAAL;CAAQ0jB,cAAAA,gBAAgB,GAAC,IAAjB;CAAsB;;CAAM,iBAAK,EAAL;CAAQC,cAAAA,aAAa,GAAC,IAAd;CAAmB;;CAAM,iBAAK,EAAL;CAAQC,cAAAA,eAAe,GAAC,IAAhB;CAAqB;;CAAM,iBAAK,EAAL;CAAQ,kBAAGC,WAAH,EAAe;CAAC,sBAAME,SAAN;CAAgB,eAAhC,MAAoC;CAACF,gBAAAA,WAAW,GAAC,IAAZ;CAAiB;CAAM;;CAAA,iBAAK,EAAL;CAAQC,cAAAA,WAAW,GAAC,IAAZ;CAAiB;;CAAM;CAAQ,oBAAMC,SAAN;CAAhO;;CAAgPX,UAAAA,SAAS;CAAGpjB,UAAAA,IAAI,GAAC7X,KAAK,CAACi7B,SAAS,GAAC,CAAV,IAAa,CAAd,CAAV;CAA2B;;CAAA,YAAIY,KAAK,GAAC,CAAV;;CAAY,YAAGhkB,IAAI,IAAE,EAAT,EAAY;CAACgkB,UAAAA,KAAK,GAACT,UAAU,CAAC,KAAD,CAAhB;CAAwBH,UAAAA,SAAS;CAAGpjB,UAAAA,IAAI,GAAC7X,KAAK,CAACi7B,SAAS,GAAC,CAAV,IAAa,CAAd,CAAV;CAA2B,SAA5E,MAAgF;CAAC,iBAAMpjB,IAAI,IAAE,EAAN,IAAUA,IAAI,IAAE,EAAtB,EAAyB;CAACgkB,YAAAA,KAAK,GAACA,KAAK,GAAC,EAAN,IAAUhkB,IAAI,GAAC,EAAf,CAAN;CAAyBojB,YAAAA,SAAS;CAAGpjB,YAAAA,IAAI,GAAC7X,KAAK,CAACi7B,SAAS,GAAC,CAAV,IAAa,CAAd,CAAV;CAA2B;CAAC;;CAAA,YAAIa,YAAY,GAAC,KAAjB;CAAA,YAAuBC,SAAS,GAAC,CAAC,CAAlC;;CAAoC,YAAGlkB,IAAI,IAAE,EAAT,EAAY;CAACkkB,UAAAA,SAAS,GAAC,CAAV;CAAYD,UAAAA,YAAY,GAAC,IAAb;CAAkBb,UAAAA,SAAS;CAAGpjB,UAAAA,IAAI,GAAC7X,KAAK,CAACi7B,SAAS,GAAC,CAAV,IAAa,CAAd,CAAV;;CAA2B,cAAGpjB,IAAI,IAAE,EAAT,EAAY;CAACkkB,YAAAA,SAAS,GAACX,UAAU,CAAC,KAAD,CAApB;CAA4BH,YAAAA,SAAS;CAAG,WAArD,MAAyD;CAAC,mBAAM,CAAN,EAAQ;CAAC,kBAAIe,YAAY,GAACh8B,KAAK,CAACi7B,SAAS,GAAC,CAAV,IAAa,CAAd,CAAtB;CAAuC,kBAAGe,YAAY,GAAC,EAAb,IAAiBA,YAAY,GAAC,EAAjC,EAAoC;CAAMD,cAAAA,SAAS,GAACA,SAAS,GAAC,EAAV,IAAcC,YAAY,GAAC,EAA3B,CAAV;CAAyCf,cAAAA,SAAS;CAAG;CAAC;;CAAApjB,UAAAA,IAAI,GAAC7X,KAAK,CAACi7B,SAAS,GAAC,CAAV,IAAa,CAAd,CAAV;CAA2B;;CAAA,YAAGc,SAAS,GAAC,CAAb,EAAe;CAACA,UAAAA,SAAS,GAAC,CAAV;CAAYD,UAAAA,YAAY,GAAC,KAAb;CAAmB;;CAAA,YAAIG,OAAJ;;CAAY,gBAAOz+B,MAAM,CAACC,YAAP,CAAoBoa,IAApB,CAAP;CAAkC,eAAI,GAAJ;CAAQ,gBAAIqkB,QAAQ,GAACl8B,KAAK,CAACi7B,SAAS,GAAC,CAAV,IAAa,CAAd,CAAlB;;CAAmC,gBAAGiB,QAAQ,IAAE,GAAb,EAAiB;CAACjB,cAAAA,SAAS;CAAGgB,cAAAA,OAAO,GAAC,CAAR;CAAU,aAAxC,MAA4C;CAACA,cAAAA,OAAO,GAAC,CAAR;CAAU;;CAAA;;CAAM,eAAI,GAAJ;CAAQ,gBAAIC,QAAQ,GAACl8B,KAAK,CAACi7B,SAAS,GAAC,CAAV,IAAa,CAAd,CAAlB;;CAAmC,gBAAGiB,QAAQ,IAAE,GAAb,EAAiB;CAACjB,cAAAA,SAAS;CAAGgB,cAAAA,OAAO,GAAC,CAAR;CAAU,aAAxC,MAA4C;CAACA,cAAAA,OAAO,GAAC,CAAR;CAAU;;CAAA;;CAAM,eAAI,GAAJ;CAAQ,eAAI,GAAJ;CAAQ,eAAI,GAAJ;CAAQA,YAAAA,OAAO,GAAC,CAAR;CAAU;;CAAM,eAAI,GAAJ;CAAQ,eAAI,GAAJ;CAAQ,eAAI,GAAJ;CAAQA,YAAAA,OAAO,GAAC,CAAR;CAAU;;CAAM;CAAQA,YAAAA,OAAO,GAAC,IAAR;CAA1U;;CAAuV,YAAGA,OAAH,EAAWhB,SAAS;CAAGpjB,QAAAA,IAAI,GAAC7X,KAAK,CAACi7B,SAAS,GAAC,CAAV,IAAa,CAAd,CAAV;;CAA2B,gBAAOz9B,MAAM,CAACC,YAAP,CAAoBoa,IAApB,CAAP;CAAkC,eAAI,GAAJ;CAAQ,eAAI,GAAJ;CAAQ,eAAI,GAAJ;CAAQ,eAAI,GAAJ;CAAQ,eAAI,GAAJ;CAAQ,eAAI,GAAJ;CAAQ,eAAI,GAAJ;CAAQ;CAAC,kBAAImb,MAAM,GAACnb,IAAI,IAAE,GAAN,IAAWA,IAAI,IAAE,GAA5B;CAAgCokB,cAAAA,OAAO,GAACA,OAAO,IAAE,CAAjB;CAAmBZ,cAAAA,OAAO,GAACD,UAAU,CAAC,MAAIa,OAAO,GAAC,CAAb,CAAlB;CAAkC,kBAAIE,OAAJ;;CAAY,kBAAGF,OAAO,IAAE,CAAZ,EAAc;CAACZ,gBAAAA,OAAO,GAACxjB,IAAI,IAAE,GAAN,GAAU4iB,mBAAmB,CAACY,OAAO,CAAC,CAAD,CAAR,EAAYA,OAAO,CAAC,CAAD,CAAnB,CAA7B,GAAqDf,mBAAmB,CAACe,OAAO,CAAC,CAAD,CAAR,EAAYA,OAAO,CAAC,CAAD,CAAnB,CAAhF;CAAwG;;CAAA,kBAAGY,OAAO,IAAE,CAAZ,EAAc;CAAC,oBAAIG,KAAK,GAACt5B,IAAI,CAAC+3B,GAAL,CAAS,GAAT,EAAaoB,OAAb,IAAsB,CAAhC;CAAkCZ,gBAAAA,OAAO,GAAC,CAACrI,MAAM,GAAC0H,MAAD,GAAQI,MAAf,EAAuBO,OAAO,GAACe,KAA/B,EAAqCH,OAAO,GAAC,CAA7C,CAAR;CAAwD;;CAAA,kBAAII,UAAU,GAACv5B,IAAI,CAACse,GAAL,CAASia,OAAT,CAAf;CAAiC,kBAAIiB,MAAM,GAAC,EAAX;;CAAc,kBAAGzkB,IAAI,IAAE,GAAN,IAAWA,IAAI,IAAE,GAApB,EAAwB;CAACskB,gBAAAA,OAAO,GAACzB,MAAM,CAACW,OAAD,EAAS,IAAEY,OAAX,CAAN,CAA0Br+B,QAA1B,CAAmC,EAAnC,CAAR;CAA+C,eAAxE,MAA6E,IAAGia,IAAI,IAAE,GAAT,EAAa;CAACskB,gBAAAA,OAAO,GAACrB,MAAM,CAACO,OAAD,EAAS,IAAEY,OAAX,CAAN,CAA0Br+B,QAA1B,CAAmC,EAAnC,CAAR;CAA+Cy9B,gBAAAA,OAAO,GAACv4B,IAAI,CAACse,GAAL,CAASia,OAAT,CAAR;CAA0B,eAAvF,MAA4F,IAAGxjB,IAAI,IAAE,GAAT,EAAa;CAACskB,gBAAAA,OAAO,GAAC,CAACV,eAAe,GAAC,GAAD,GAAK,EAArB,IAAyBY,UAAU,CAACz+B,QAAX,CAAoB,CAApB,CAAjC;CAAwD,eAAtE,MAA2E,IAAGia,IAAI,IAAE,GAAN,IAAWA,IAAI,IAAE,EAApB,EAAuB;CAACykB,gBAAAA,MAAM,GAACb,eAAe,IAAEJ,OAAO,IAAE,CAA1B,GAA4B,IAA5B,GAAiC,EAAxC;;CAA2C,oBAAGA,OAAO,GAAC,CAAX,EAAa;CAACA,kBAAAA,OAAO,GAAC,CAACA,OAAT;CAAiBc,kBAAAA,OAAO,GAAC,CAACE,UAAU,GAAC,CAAZ,EAAez+B,QAAf,CAAwB,EAAxB,CAAR;CAAoC,sBAAIlF,MAAM,GAAC,EAAX;;CAAc,uBAAI,IAAI4F,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC69B,OAAO,CAACjjC,MAAtB,EAA6BoF,CAAC,EAA9B,EAAiC;CAAC5F,oBAAAA,MAAM,CAACmS,IAAP,CAAY,CAAC,KAAG0xB,QAAQ,CAACJ,OAAO,CAAC79B,CAAD,CAAR,EAAY,EAAZ,CAAZ,EAA6BV,QAA7B,CAAsC,EAAtC,CAAZ;CAAuD;;CAAAu+B,kBAAAA,OAAO,GAACzjC,MAAM,CAACiQ,IAAP,CAAY,EAAZ,CAAR;;CAAwB,yBAAMwzB,OAAO,CAACjjC,MAAR,GAAe+iC,OAAO,GAAC,CAA7B,EAA+BE,OAAO,GAAC,MAAIA,OAAZ;CAAoB,iBAArP,MAAyP;CAACA,kBAAAA,OAAO,GAACE,UAAU,CAACz+B,QAAX,CAAoB,EAApB,CAAR;CAAgC;;CAAA,oBAAGia,IAAI,IAAE,EAAT,EAAY;CAACykB,kBAAAA,MAAM,GAACA,MAAM,CAACE,WAAP,EAAP;CAA4BL,kBAAAA,OAAO,GAACA,OAAO,CAACK,WAAR,EAAR;CAA8B;CAAC,eAAra,MAA0a,IAAG3kB,IAAI,IAAE,GAAT,EAAa;CAAC,oBAAGwkB,UAAU,KAAG,CAAhB,EAAkB;CAACF,kBAAAA,OAAO,GAAC,OAAR;CAAgB,iBAAnC,MAAuC;CAACG,kBAAAA,MAAM,GAAC,IAAP;CAAYH,kBAAAA,OAAO,GAACE,UAAU,CAACz+B,QAAX,CAAoB,EAApB,CAAR;CAAgC;CAAC;;CAAA,kBAAGk+B,YAAH,EAAgB;CAAC,uBAAMK,OAAO,CAACjjC,MAAR,GAAe6iC,SAArB,EAA+B;CAACI,kBAAAA,OAAO,GAAC,MAAIA,OAAZ;CAAoB;CAAC;;CAAA,kBAAGd,OAAO,IAAE,CAAZ,EAAc;CAAC,oBAAGE,gBAAH,EAAoB;CAACe,kBAAAA,MAAM,GAAC,MAAIA,MAAX;CAAkB,iBAAvC,MAA4C,IAAGX,WAAH,EAAe;CAACW,kBAAAA,MAAM,GAAC,MAAIA,MAAX;CAAkB;CAAC;;CAAA,kBAAGH,OAAO,CAACx0B,MAAR,CAAe,CAAf,KAAmB,GAAtB,EAA0B;CAAC20B,gBAAAA,MAAM,GAAC,MAAIA,MAAX;CAAkBH,gBAAAA,OAAO,GAACA,OAAO,CAAC5hC,MAAR,CAAe,CAAf,CAAR;CAA0B;;CAAA,qBAAM+hC,MAAM,CAACpjC,MAAP,GAAcijC,OAAO,CAACjjC,MAAtB,GAA6B2iC,KAAnC,EAAyC;CAAC,oBAAGL,aAAH,EAAiB;CAACW,kBAAAA,OAAO,IAAE,GAAT;CAAa,iBAA/B,MAAmC;CAAC,sBAAGT,WAAH,EAAe;CAACS,oBAAAA,OAAO,GAAC,MAAIA,OAAZ;CAAoB,mBAApC,MAAwC;CAACG,oBAAAA,MAAM,GAAC,MAAIA,MAAX;CAAkB;CAAC;CAAC;;CAAAH,cAAAA,OAAO,GAACG,MAAM,GAACH,OAAf;CAAuBA,cAAAA,OAAO,CAAC3zB,KAAR,CAAc,EAAd,EAAkB+O,OAAlB,CAA0B,UAASklB,GAAT,EAAa;CAAChkC,gBAAAA,GAAG,CAACoS,IAAJ,CAAS4xB,GAAG,CAACj+B,UAAJ,CAAe,CAAf,CAAT;CAA4B,eAApE;CAAsE;CAAM;;CAAA,eAAI,GAAJ;CAAQ,eAAI,GAAJ;CAAQ,eAAI,GAAJ;CAAQ,eAAI,GAAJ;CAAQ,eAAI,GAAJ;CAAQ,eAAI,GAAJ;CAAQ;CAAC68B,cAAAA,OAAO,GAACD,UAAU,CAAC,QAAD,CAAlB;CAA6B,kBAAIe,OAAJ;;CAAY,kBAAGO,KAAK,CAACrB,OAAD,CAAR,EAAkB;CAACc,gBAAAA,OAAO,GAAC,KAAR;CAAcT,gBAAAA,WAAW,GAAC,KAAZ;CAAkB,eAAnD,MAAwD,IAAG,CAACiB,QAAQ,CAACtB,OAAD,CAAZ,EAAsB;CAACc,gBAAAA,OAAO,GAAC,CAACd,OAAO,GAAC,CAAR,GAAU,GAAV,GAAc,EAAf,IAAmB,KAA3B;CAAiCK,gBAAAA,WAAW,GAAC,KAAZ;CAAkB,eAA1E,MAA8E;CAAC,oBAAIkB,SAAS,GAAC,KAAd;CAAoB,oBAAIC,kBAAkB,GAAC/5B,IAAI,CAAC4H,GAAL,CAASqxB,SAAT,EAAmB,EAAnB,CAAvB;;CAA8C,oBAAGlkB,IAAI,IAAE,GAAN,IAAWA,IAAI,IAAE,EAApB,EAAuB;CAAC+kB,kBAAAA,SAAS,GAAC,IAAV;CAAeb,kBAAAA,SAAS,GAACA,SAAS,IAAE,CAArB;CAAuB,sBAAIe,QAAQ,GAACP,QAAQ,CAAClB,OAAO,CAAC0B,aAAR,CAAsBF,kBAAtB,EAA0Cr0B,KAA1C,CAAgD,GAAhD,EAAqD,CAArD,CAAD,EAAyD,EAAzD,CAArB;;CAAkF,sBAAGuzB,SAAS,GAACe,QAAV,IAAoBA,QAAQ,IAAE,CAAC,CAAlC,EAAoC;CAACjlB,oBAAAA,IAAI,GAAC,CAACA,IAAI,IAAE,GAAN,GAAU,GAAV,GAAc,GAAf,EAAoBrZ,UAApB,CAA+B,CAA/B,CAAL;CAAuCu9B,oBAAAA,SAAS,IAAEe,QAAQ,GAAC,CAApB;CAAsB,mBAAlG,MAAsG;CAACjlB,oBAAAA,IAAI,GAAC,CAACA,IAAI,IAAE,GAAN,GAAU,GAAV,GAAc,GAAf,EAAoBrZ,UAApB,CAA+B,CAA/B,CAAL;CAAuCu9B,oBAAAA,SAAS;CAAG;;CAAAc,kBAAAA,kBAAkB,GAAC/5B,IAAI,CAAC4H,GAAL,CAASqxB,SAAT,EAAmB,EAAnB,CAAnB;CAA0C;;CAAA,oBAAGlkB,IAAI,IAAE,GAAN,IAAWA,IAAI,IAAE,EAApB,EAAuB;CAACskB,kBAAAA,OAAO,GAACd,OAAO,CAAC0B,aAAR,CAAsBF,kBAAtB,CAAR;;CAAkD,sBAAG,cAAcG,IAAd,CAAmBb,OAAnB,CAAH,EAA+B;CAACA,oBAAAA,OAAO,GAACA,OAAO,CAAC9iC,KAAR,CAAc,CAAd,EAAgB,CAAC,CAAjB,IAAoB,GAApB,GAAwB8iC,OAAO,CAAC9iC,KAAR,CAAc,CAAC,CAAf,CAAhC;CAAkD;CAAC,iBAA7J,MAAkK,IAAGwe,IAAI,IAAE,GAAN,IAAWA,IAAI,IAAE,EAApB,EAAuB;CAACskB,kBAAAA,OAAO,GAACd,OAAO,CAAC4B,OAAR,CAAgBJ,kBAAhB,CAAR;;CAA4C,sBAAGxB,OAAO,KAAG,CAAV,IAAajB,cAAc,CAACiB,OAAD,CAA9B,EAAwC;CAACc,oBAAAA,OAAO,GAAC,MAAIA,OAAZ;CAAoB;CAAC;;CAAA,oBAAIn0B,KAAK,GAACm0B,OAAO,CAAC3zB,KAAR,CAAc,GAAd,CAAV;;CAA6B,oBAAGo0B,SAAS,IAAE,CAACnB,eAAf,EAA+B;CAAC,yBAAMzzB,KAAK,CAAC,CAAD,CAAL,CAAS9O,MAAT,GAAgB,CAAhB,IAAmB8O,KAAK,CAAC,CAAD,CAAL,CAASgF,QAAT,CAAkB,GAAlB,CAAnB,KAA4ChF,KAAK,CAAC,CAAD,CAAL,CAAS3O,KAAT,CAAe,CAAC,CAAhB,KAAoB,GAApB,IAAyB2O,KAAK,CAAC,CAAD,CAAL,CAAS3O,KAAT,CAAe,CAAC,CAAhB,KAAoB,GAAzF,CAAN,EAAoG;CAAC2O,oBAAAA,KAAK,CAAC,CAAD,CAAL,GAASA,KAAK,CAAC,CAAD,CAAL,CAAS3O,KAAT,CAAe,CAAf,EAAiB,CAAC,CAAlB,CAAT;CAA8B;CAAC,iBAApK,MAAwK;CAAC,sBAAGoiC,eAAe,IAAEU,OAAO,CAAC7hC,OAAR,CAAgB,GAAhB,KAAsB,CAAC,CAA3C,EAA6C0N,KAAK,CAAC,CAAD,CAAL,IAAU,GAAV;;CAAc,yBAAM+zB,SAAS,GAACc,kBAAkB,EAAlC,EAAqC70B,KAAK,CAAC,CAAD,CAAL,IAAU,GAAV;CAAc;;CAAAm0B,gBAAAA,OAAO,GAACn0B,KAAK,CAAC,CAAD,CAAL,IAAUA,KAAK,CAAC9O,MAAN,GAAa,CAAb,GAAe,MAAI8O,KAAK,CAAC,CAAD,CAAxB,GAA4B,EAAtC,CAAR;CAAkD,oBAAG6P,IAAI,IAAE,EAAT,EAAYskB,OAAO,GAACA,OAAO,CAACK,WAAR,EAAR;;CAA8B,oBAAGnB,OAAO,IAAE,CAAZ,EAAc;CAAC,sBAAGE,gBAAH,EAAoB;CAACY,oBAAAA,OAAO,GAAC,MAAIA,OAAZ;CAAoB,mBAAzC,MAA8C,IAAGR,WAAH,EAAe;CAACQ,oBAAAA,OAAO,GAAC,MAAIA,OAAZ;CAAoB;CAAC;CAAC;;CAAA,qBAAMA,OAAO,CAACjjC,MAAR,GAAe2iC,KAArB,EAA2B;CAAC,oBAAGL,aAAH,EAAiB;CAACW,kBAAAA,OAAO,IAAE,GAAT;CAAa,iBAA/B,MAAmC;CAAC,sBAAGT,WAAW,KAAGS,OAAO,CAAC,CAAD,CAAP,IAAY,GAAZ,IAAiBA,OAAO,CAAC,CAAD,CAAP,IAAY,GAAhC,CAAd,EAAmD;CAACA,oBAAAA,OAAO,GAACA,OAAO,CAAC,CAAD,CAAP,GAAW,GAAX,GAAeA,OAAO,CAAC9iC,KAAR,CAAc,CAAd,CAAvB;CAAwC,mBAA5F,MAAgG;CAAC8iC,oBAAAA,OAAO,GAAC,CAACT,WAAW,GAAC,GAAD,GAAK,GAAjB,IAAsBS,OAA9B;CAAsC;CAAC;CAAC;;CAAA,kBAAGtkB,IAAI,GAAC,EAAR,EAAWskB,OAAO,GAACA,OAAO,CAACK,WAAR,EAAR;CAA8BL,cAAAA,OAAO,CAAC3zB,KAAR,CAAc,EAAd,EAAkB+O,OAAlB,CAA0B,UAASklB,GAAT,EAAa;CAAChkC,gBAAAA,GAAG,CAACoS,IAAJ,CAAS4xB,GAAG,CAACj+B,UAAJ,CAAe,CAAf,CAAT;CAA4B,eAApE;CAAsE;CAAM;;CAAA,eAAI,GAAJ;CAAQ;CAAC,kBAAIoI,GAAG,GAACw0B,UAAU,CAAC,KAAD,CAAlB;CAA0B,kBAAI8B,SAAS,GAACt2B,GAAG,GAACu2B,OAAO,CAACv2B,GAAD,CAAR,GAAc,SAAS1N,MAAxC;CAA+C,kBAAG4iC,YAAH,EAAgBoB,SAAS,GAACp6B,IAAI,CAAC4H,GAAL,CAASwyB,SAAT,EAAmBnB,SAAnB,CAAV;;CAAwC,kBAAG,CAACP,aAAJ,EAAkB;CAAC,uBAAM0B,SAAS,GAACrB,KAAK,EAArB,EAAwB;CAACpjC,kBAAAA,GAAG,CAACoS,IAAJ,CAAS,EAAT;CAAa;CAAC;;CAAA,kBAAGjE,GAAH,EAAO;CAAC,qBAAI,IAAItI,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC4+B,SAAd,EAAwB5+B,CAAC,EAAzB,EAA4B;CAAC7F,kBAAAA,GAAG,CAACoS,IAAJ,CAAS7M,MAAM,CAAC4I,GAAG,MAAI,CAAR,CAAf;CAA2B;CAAC,eAAjE,MAAqE;CAACnO,gBAAAA,GAAG,GAACA,GAAG,CAACqS,MAAJ,CAAWqC,kBAAkB,CAAC,SAAS5S,MAAT,CAAgB,CAAhB,EAAkB2iC,SAAlB,CAAD,EAA8B,IAA9B,CAA7B,CAAJ;CAAsE;;CAAA,kBAAG1B,aAAH,EAAiB;CAAC,uBAAM0B,SAAS,GAACrB,KAAK,EAArB,EAAwB;CAACpjC,kBAAAA,GAAG,CAACoS,IAAJ,CAAS,EAAT;CAAa;CAAC;;CAAA;CAAM;;CAAA,eAAI,GAAJ;CAAQ;CAAC,kBAAG2wB,aAAH,EAAiB/iC,GAAG,CAACoS,IAAJ,CAASuwB,UAAU,CAAC,IAAD,CAAnB;;CAA2B,qBAAM,EAAES,KAAF,GAAQ,CAAd,EAAgB;CAACpjC,gBAAAA,GAAG,CAACoS,IAAJ,CAAS,EAAT;CAAa;;CAAA,kBAAG,CAAC2wB,aAAJ,EAAkB/iC,GAAG,CAACoS,IAAJ,CAASuwB,UAAU,CAAC,IAAD,CAAnB;CAA2B;CAAM;;CAAA,eAAI,GAAJ;CAAQ;CAAC,kBAAIr9B,GAAG,GAACq9B,UAAU,CAAC,MAAD,CAAlB;CAA2B37B,cAAAA,MAAM,CAAC1B,GAAG,IAAE,CAAN,CAAN,GAAetF,GAAG,CAACS,MAAnB;CAA0B;CAAM;;CAAA,eAAI,GAAJ;CAAQ;CAACT,cAAAA,GAAG,CAACoS,IAAJ,CAASqX,IAAT;CAAe;CAAM;;CAAA;CAAQ;CAAC,mBAAI,IAAI5jB,CAAC,GAACg9B,cAAV,EAAyBh9B,CAAC,GAAC28B,SAAS,GAAC,CAArC,EAAuC38B,CAAC,EAAxC,EAA2C;CAAC7F,gBAAAA,GAAG,CAACoS,IAAJ,CAAS7K,KAAK,CAAC1B,CAAC,IAAE,CAAJ,CAAd;CAAsB;CAAC;CAApjI;;CAAqjI28B,QAAAA,SAAS,IAAE,CAAX;CAAa,OAAz8K,MAA68K;CAACxiC,QAAAA,GAAG,CAACoS,IAAJ,CAASqX,IAAT;CAAe+Y,QAAAA,SAAS,IAAE,CAAX;CAAa;CAAC;;CAAA,WAAOxiC,GAAP;CAAW;;CAAA,WAAS2kC,aAAT,CAAuBzQ,IAAvB,EAA4B;CAAC,QAAG,CAACA,IAAD,IAAO,CAACA,IAAI,CAAC0Q,MAAb,IAAqB,CAAC1Q,IAAI,CAAC0Q,MAAL,CAAY54B,IAArC,EAA0C;CAAC,aAAM,CAAC,IAAD,EAAM,EAAN,EAAS,EAAT,CAAN;CAAmB;;CAAA,IAAWkoB,IAAI,CAAC0Q,MAAL,CAAYz/B,QAAZ;CAAuB,QAAI0/B,QAAQ,GAAC3Q,IAAI,CAAC0Q,MAAL,CAAY54B,IAAzB;CAA8B,QAAInH,GAAG,GAAC,GAAR;CAAY,QAAIigC,KAAK,GAAC,IAAV;;CAAe,SAAI,IAAIj/B,CAAR,IAAaquB,IAAb,EAAkB;CAAC,UAAI8H,CAAC,GAAC9H,IAAI,CAACruB,CAAD,CAAV;;CAAc,UAAG,CAACi/B,KAAJ,EAAU;CAACjgC,QAAAA,GAAG,IAAE,IAAL;CAAU;;CAAAigC,MAAAA,KAAK,GAAC,KAAN;;CAAY,UAAG,OAAO9I,CAAP,IAAU,QAAV,IAAoB,OAAOA,CAAP,IAAU,QAAjC,EAA0C;CAACn3B,QAAAA,GAAG,IAAEm3B,CAAL;CAAO,OAAlD,MAAsD;CAACn3B,QAAAA,GAAG,IAAE,MAAI,OAAOm3B,CAAX,GAAa,GAAlB;CAAsB;CAAC;;CAAAn3B,IAAAA,GAAG,IAAE,GAAL;CAAS,QAAI84B,MAAM,GAACzJ,IAAI,CAAC0Q,MAAL,CAAYjH,MAAvB;CAA8BzJ,IAAAA,IAAI,GAACyJ,MAAM,GAACA,MAAM,CAACtxB,SAAR,GAAkB,EAA7B;CAAgC,QAAGy4B,KAAH,EAASjgC,GAAG,GAAC,EAAJ;CAAO,WAAM,CAACqvB,IAAD,EAAM2Q,QAAN,EAAehgC,GAAf,CAAN;CAA0B;;CAAA,WAASkgC,4BAAT,CAAsCxrB,KAAtC,EAA4C;CAAC,QAAIyrB,SAAS,GAACr2B,YAAY,EAA1B;CAA6B,QAAIs2B,SAAS,GAACD,SAAS,CAACjjC,WAAV,CAAsB,iBAAtB,CAAd;CAAuD,QAAImjC,UAAU,GAACF,SAAS,CAACjjC,WAAV,CAAsB,2BAAtB,CAAf;CAAkE,QAAIojC,SAAS,GAACH,SAAS,CAACnjC,OAAV,CAAkB,IAAlB,EAAuBwI,IAAI,CAACzB,GAAL,CAASq8B,SAAT,EAAmBC,UAAnB,CAAvB,IAAuD,CAArE;CAAuEF,IAAAA,SAAS,GAACA,SAAS,CAACpkC,KAAV,CAAgBukC,SAAhB,CAAV;;CAAqC,QAAG5rB,KAAK,GAAC,EAAT,EAAY;CAACzW,MAAAA,QAAQ,CAAC,yCAAD,CAAR;CAAoD;;CAAA,QAAGyW,KAAK,GAAC,CAAN,IAAS,OAAO6rB,qBAAP,IAA8B,WAA1C,EAAsD;CAACtiC,MAAAA,QAAQ,CAAC,gNAAD,CAAR;CAA2NyW,MAAAA,KAAK,IAAE,CAAP;CAASA,MAAAA,KAAK,IAAE,EAAP;CAAU;;CAAA,QAAI8rB,UAAU,GAAC,IAAf;;CAAoB,QAAG9rB,KAAK,GAAC,GAAT,EAAa;CAAC8rB,MAAAA,UAAU,GAACV,aAAa,CAACt4B,SAAD,CAAxB;;CAAoC,aAAMg5B,UAAU,CAAC,CAAD,CAAV,CAAc9wB,QAAd,CAAuB,cAAvB,CAAN,EAA6C8wB,UAAU,GAACV,aAAa,CAACU,UAAU,CAAC,CAAD,CAAX,CAAxB;CAAwC;;CAAA,QAAIC,KAAK,GAACN,SAAS,CAACj1B,KAAV,CAAgB,IAAhB,CAAV;CAAgCi1B,IAAAA,SAAS,GAAC,EAAV;CAAa,QAAIO,YAAY,GAAC,IAAIC,MAAJ,CAAW,mCAAX,CAAjB;CAAiE,QAAIC,SAAS,GAAC,IAAID,MAAJ,CAAW,6BAAX,CAAd;CAAwD,QAAIE,QAAQ,GAAC,IAAIF,MAAJ,CAAW,mCAAX,CAAb;;CAA6D,SAAI,IAAI70B,CAAR,IAAa20B,KAAb,EAAmB;CAAC,UAAIK,IAAI,GAACL,KAAK,CAAC30B,CAAD,CAAd;CAAkB,UAAIi1B,UAAU,GAAC,EAAf;CAAkB,UAAIp5B,IAAI,GAAC,EAAT;CAAY,UAAIq5B,MAAM,GAAC,CAAX;CAAa,UAAIC,MAAM,GAAC,CAAX;CAAa,UAAIv2B,KAAK,GAACm2B,QAAQ,CAACr2B,IAAT,CAAcs2B,IAAd,CAAV;;CAA8B,UAAGp2B,KAAK,IAAEA,KAAK,CAAC9O,MAAN,IAAc,CAAxB,EAA0B;CAACmlC,QAAAA,UAAU,GAACr2B,KAAK,CAAC,CAAD,CAAhB;CAAoB/C,QAAAA,IAAI,GAAC+C,KAAK,CAAC,CAAD,CAAV;CAAcs2B,QAAAA,MAAM,GAACt2B,KAAK,CAAC,CAAD,CAAZ;CAAgBu2B,QAAAA,MAAM,GAACv2B,KAAK,CAAC,CAAD,CAAZ;CAAgB,OAA7F,MAAiG;CAACA,QAAAA,KAAK,GAACg2B,YAAY,CAACl2B,IAAb,CAAkBs2B,IAAlB,CAAN;CAA8B,YAAG,CAACp2B,KAAJ,EAAUA,KAAK,GAACk2B,SAAS,CAACp2B,IAAV,CAAes2B,IAAf,CAAN;;CAA2B,YAAGp2B,KAAK,IAAEA,KAAK,CAAC9O,MAAN,IAAc,CAAxB,EAA0B;CAACmlC,UAAAA,UAAU,GAACr2B,KAAK,CAAC,CAAD,CAAhB;CAAoB/C,UAAAA,IAAI,GAAC+C,KAAK,CAAC,CAAD,CAAV;CAAcs2B,UAAAA,MAAM,GAACt2B,KAAK,CAAC,CAAD,CAAZ;CAAgBu2B,UAAAA,MAAM,GAACv2B,KAAK,CAAC,CAAD,CAAL,GAAS,CAAhB;CAAkB,SAA/F,MAAmG;CAACy1B,UAAAA,SAAS,IAAEW,IAAI,GAAC,IAAhB;CAAqB;CAAS;CAAC;;CAAA,UAAII,aAAa,GAAC,KAAlB;;CAAwB,UAAGxsB,KAAK,GAAC,CAAT,EAAW;CAAC,YAAIvO,IAAI,GAACo6B,qBAAqB,CAACY,mBAAtB,CAA0C;CAACL,UAAAA,IAAI,EAACE,MAAN;CAAaC,UAAAA,MAAM,EAACA;CAApB,SAA1C,CAAT;CAAgFC,QAAAA,aAAa,GAAC/6B,IAAI,IAAEA,IAAI,CAACi7B,MAAzB;;CAAgC,YAAGF,aAAH,EAAiB;CAAC,cAAGxsB,KAAK,GAAC,EAAT,EAAY;CAACvO,YAAAA,IAAI,CAACi7B,MAAL,GAAYj7B,IAAI,CAACi7B,MAAL,CAAY9R,SAAZ,CAAsBnpB,IAAI,CAACi7B,MAAL,CAAYvlC,OAAZ,CAAoB,KAApB,EAA0B,GAA1B,EAA+BqB,WAA/B,CAA2C,GAA3C,IAAgD,CAAtE,CAAZ;CAAqF;;CAAAijC,UAAAA,SAAS,IAAE,YAAUY,UAAV,GAAqB,IAArB,GAA0B56B,IAAI,CAACi7B,MAA/B,GAAsC,GAAtC,GAA0Cj7B,IAAI,CAAC26B,IAA/C,GAAoD,GAApD,GAAwD36B,IAAI,CAAC86B,MAA7D,GAAoE,KAA/E;CAAqF;CAAC;;CAAA,UAAGvsB,KAAK,GAAC,EAAN,IAAU,CAACwsB,aAAd,EAA4B;CAAC,YAAGxsB,KAAK,GAAC,EAAT,EAAY;CAAC/M,UAAAA,IAAI,GAACA,IAAI,CAAC2nB,SAAL,CAAe3nB,IAAI,CAAC9L,OAAL,CAAa,KAAb,EAAmB,GAAnB,EAAwBqB,WAAxB,CAAoC,GAApC,IAAyC,CAAxD,CAAL;CAAgE;;CAAAijC,QAAAA,SAAS,IAAE,CAACe,aAAa,GAAC,YAAUH,UAAX,GAAsB,YAAUA,UAA9C,IAA0D,IAA1D,GAA+Dp5B,IAA/D,GAAoE,GAApE,GAAwEq5B,MAAxE,GAA+E,GAA/E,GAAmFC,MAAnF,GAA0F,KAArG;CAA2G;;CAAA,UAAGvsB,KAAK,GAAC,GAAN,IAAW8rB,UAAU,CAAC,CAAD,CAAxB,EAA4B;CAAC,YAAGA,UAAU,CAAC,CAAD,CAAV,IAAeO,UAAf,IAA2BP,UAAU,CAAC,CAAD,CAAV,CAAc5kC,MAAd,GAAqB,CAAnD,EAAqD;CAACukC,UAAAA,SAAS,GAACA,SAAS,CAACtkC,OAAV,CAAkB,MAAlB,EAAyB,EAAzB,CAAV;CAAuCskC,UAAAA,SAAS,IAAE,mBAAiBK,UAAU,CAAC,CAAD,CAA3B,GAA+BA,UAAU,CAAC,CAAD,CAAzC,GAA6C,IAAxD;CAA6D;;CAAAA,QAAAA,UAAU,GAACV,aAAa,CAACU,UAAU,CAAC,CAAD,CAAX,CAAxB;CAAwC;CAAC;;CAAAL,IAAAA,SAAS,GAACA,SAAS,CAACtkC,OAAV,CAAkB,MAAlB,EAAyB,EAAzB,CAAV;CAAuC,WAAOskC,SAAP;CAAiB;;CAAA,WAASkB,kBAAT,CAA4B3sB,KAA5B,EAAkC1U,GAAlC,EAAsC;CAAC,QAAG0U,KAAK,GAAC,EAAT,EAAY;CAAC1U,MAAAA,GAAG,GAACA,GAAG,CAACnE,OAAJ,CAAY,MAAZ,EAAmB,EAAnB,CAAJ;CAA2BmE,MAAAA,GAAG,IAAE,CAACA,GAAG,CAACpE,MAAJ,GAAW,CAAX,GAAa,IAAb,GAAkB,EAAnB,IAAuBskC,4BAA4B,CAACxrB,KAAD,CAAxD;CAAgE;;CAAA,QAAGA,KAAK,GAAC,CAAT,EAAW;CAAC,UAAGA,KAAK,GAAC,CAAT,EAAW;CAAC/b,QAAAA,OAAO,CAAC8D,KAAR,CAAcuD,GAAd;CAAmB,OAA/B,MAAoC,IAAG0U,KAAK,GAAC,CAAT,EAAW;CAAC/b,QAAAA,OAAO,CAACG,IAAR,CAAakH,GAAb;CAAkB,OAA9B,MAAmC,IAAG0U,KAAK,GAAC,GAAT,EAAa;CAAC/b,QAAAA,OAAO,CAAC0P,IAAR,CAAarI,GAAb;CAAkB,OAAhC,MAAqC,IAAG0U,KAAK,GAAC,GAAT,EAAa;CAAC/b,QAAAA,OAAO,CAAC2oC,KAAR,CAActhC,GAAd;CAAmB,OAAjC,MAAqC;CAACrH,QAAAA,OAAO,CAACC,GAAR,CAAYoH,GAAZ;CAAiB;CAAC,KAAhL,MAAqL,IAAG0U,KAAK,GAAC,CAAT,EAAW;CAAChZ,MAAAA,GAAG,CAACsE,GAAD,CAAH;CAAS,KAArB,MAAyB;CAACpC,MAAAA,GAAG,CAACoC,GAAD,CAAH;CAAS;CAAC;;CAAA,WAASuhC,eAAT,CAAyB7sB,KAAzB,EAA+BgpB,MAA/B,EAAsC5Y,OAAtC,EAA8C;CAAC,QAAIlc,MAAM,GAAC60B,YAAY,CAACC,MAAD,EAAQ5Y,OAAR,CAAvB;CAAwC,QAAI9kB,GAAG,GAACR,iBAAiB,CAACoJ,MAAD,EAAQ,CAAR,CAAzB;;CAAoCy4B,IAAAA,kBAAkB,CAAC3sB,KAAD,EAAO1U,GAAP,CAAlB;CAA8B;;CAAA,WAASwhC,wBAAT,GAAmC;CAAC,WAAO,UAAP;CAAkB;;CAAA,WAASC,yBAAT,CAAmCj/B,IAAnC,EAAwC;CAAC,QAAG;CAACrD,MAAAA,UAAU,CAACuiC,IAAX,CAAgBl/B,IAAI,GAACpH,MAAM,CAAC0hB,UAAZ,GAAuB,KAAvB,KAA+B,EAA/C;CAAmD9Z,MAAAA,0BAA0B,CAAC7D,UAAU,CAAC/D,MAAZ,CAA1B;CAA8C,aAAO,CAAP;CAAS,KAA9G,CAA8G,OAAMwL,CAAN,EAAQ;CAAClL,MAAAA,GAAG,CAAC,4DAA0DN,MAAM,CAAC0hB,UAAjE,GAA4E,YAA5E,GAAyFta,IAAzF,GAA8F,yBAA9F,GAAwHoE,CAAzH,CAAH;CAA+H;CAAC;;CAAA,WAAS+6B,uBAAT,CAAiCC,aAAjC,EAA+C;CAAC,QAAIC,OAAO,GAACnhC,MAAM,CAAC9E,MAAnB;CAA0BgmC,IAAAA,aAAa,GAACA,aAAa,KAAG,CAA9B;CAAgCtmC,IAAAA,MAAM,CAACsmC,aAAa,GAACC,OAAf,CAAN;;CAA8B,QAAIC,WAAW,GAACN,wBAAwB,EAAxC;;CAA2C,QAAGI,aAAa,GAACE,WAAjB,EAA6B;CAACpmC,MAAAA,GAAG,CAAC,8CAA4CkmC,aAA5C,GAA0D,2BAA1D,GAAsFE,WAAtF,GAAkG,SAAnG,CAAH;CAAiH,aAAO,KAAP;CAAa;;CAAA,QAAIC,OAAO,GAAC,CAACp4B,CAAD,EAAGq4B,QAAH,KAAcr4B,CAAC,GAAC,CAACq4B,QAAQ,GAACr4B,CAAC,GAACq4B,QAAZ,IAAsBA,QAAlD;;CAA2D,SAAI,IAAIC,OAAO,GAAC,CAAhB,EAAkBA,OAAO,IAAE,CAA3B,EAA6BA,OAAO,IAAE,CAAtC,EAAwC;CAAC,UAAIC,iBAAiB,GAACL,OAAO,IAAE,IAAE,KAAGI,OAAP,CAA7B;CAA6CC,MAAAA,iBAAiB,GAAC18B,IAAI,CAAC4H,GAAL,CAAS80B,iBAAT,EAA2BN,aAAa,GAAC,SAAzC,CAAlB;CAAsE,UAAI7uB,OAAO,GAACvN,IAAI,CAAC4H,GAAL,CAAS00B,WAAT,EAAqBC,OAAO,CAACv8B,IAAI,CAACzB,GAAL,CAAS69B,aAAT,EAAuBM,iBAAvB,CAAD,EAA2C,KAA3C,CAA5B,CAAZ;CAA2F,UAAIC,WAAW,GAACV,yBAAyB,CAAC1uB,OAAD,CAAzC;;CAAmD,UAAGovB,WAAH,EAAe;CAAC,eAAO,IAAP;CAAY;CAAC;;CAAAzmC,IAAAA,GAAG,CAAC,kCAAgCmmC,OAAhC,GAAwC,YAAxC,GAAqD9uB,OAArD,GAA6D,4BAA9D,CAAH;CAA+F,WAAO,KAAP;CAAa;;CAAA,MAAIqvB,GAAG,GAAC,EAAR;;CAAW,WAASC,iBAAT,GAA4B;CAAC,WAAOhpC,WAAW,IAAE,gBAApB;CAAqC;;CAAA,WAASipC,aAAT,GAAwB;CAAC,QAAG,CAACA,aAAa,CAACC,OAAlB,EAA0B;CAAC,UAAIC,IAAI,GAAC,CAAC,OAAOC,SAAP,IAAkB,QAAlB,IAA4BA,SAAS,CAACC,SAAtC,IAAiDD,SAAS,CAACC,SAAV,CAAoB,CAApB,CAAjD,IAAyE,GAA1E,EAA+E7mC,OAA/E,CAAuF,GAAvF,EAA2F,GAA3F,IAAgG,QAAzG;CAAkH,UAAI8mC,GAAG,GAAC;CAAC,gBAAO,UAAR;CAAmB,mBAAU,UAA7B;CAAwC,gBAAO,GAA/C;CAAmD,eAAM,GAAzD;CAA6D,gBAAO,gBAApE;CAAqF,gBAAOH,IAA5F;CAAiG,aAAIH,iBAAiB;CAAtH,OAAR;;CAAkI,WAAI,IAAI14B,CAAR,IAAay4B,GAAb,EAAiB;CAAC,YAAGA,GAAG,CAACz4B,CAAD,CAAH,KAASzO,SAAZ,EAAsB,OAAOynC,GAAG,CAACh5B,CAAD,CAAV,CAAtB,KAAyCg5B,GAAG,CAACh5B,CAAD,CAAH,GAAOy4B,GAAG,CAACz4B,CAAD,CAAV;CAAc;;CAAA,UAAI44B,OAAO,GAAC,EAAZ;;CAAe,WAAI,IAAI54B,CAAR,IAAag5B,GAAb,EAAiB;CAACJ,QAAAA,OAAO,CAACh1B,IAAR,CAAa5D,CAAC,GAAC,GAAF,GAAMg5B,GAAG,CAACh5B,CAAD,CAAtB;CAA2B;;CAAA24B,MAAAA,aAAa,CAACC,OAAd,GAAsBA,OAAtB;CAA8B;;CAAA,WAAOD,aAAa,CAACC,OAArB;CAA6B;;CAAA,WAASK,YAAT,CAAsBC,SAAtB,EAAgCC,WAAhC,EAA4C;CAAC,QAAIC,OAAO,GAAC,CAAZ;CAAcT,IAAAA,aAAa,GAAGroB,OAAhB,CAAwB,UAAS+oB,MAAT,EAAgBhiC,CAAhB,EAAkB;CAAC,UAAIP,GAAG,GAACqiC,WAAW,GAACC,OAApB;CAA4B5gC,MAAAA,MAAM,CAAC0gC,SAAS,GAAC7hC,CAAC,GAAC,CAAZ,IAAe,CAAhB,CAAN,GAAyBP,GAAzB;CAA6BkC,MAAAA,kBAAkB,CAACqgC,MAAD,EAAQviC,GAAR,CAAlB;CAA+BsiC,MAAAA,OAAO,IAAEC,MAAM,CAACpnC,MAAP,GAAc,CAAvB;CAAyB,KAA5J;CAA8J,WAAO,CAAP;CAAS;;CAAA,WAASqnC,kBAAT,CAA4BC,cAA5B,EAA2CC,iBAA3C,EAA6D;CAAC,QAAIZ,OAAO,GAACD,aAAa,EAAzB;CAA4BngC,IAAAA,MAAM,CAAC+gC,cAAc,IAAE,CAAjB,CAAN,GAA0BX,OAAO,CAAC3mC,MAAlC;CAAyC,QAAImnC,OAAO,GAAC,CAAZ;CAAcR,IAAAA,OAAO,CAACtoB,OAAR,CAAgB,UAAS+oB,MAAT,EAAgB;CAACD,MAAAA,OAAO,IAAEC,MAAM,CAACpnC,MAAP,GAAc,CAAvB;CAAyB,KAA1D;CAA4DuG,IAAAA,MAAM,CAACghC,iBAAiB,IAAE,CAApB,CAAN,GAA6BJ,OAA7B;CAAqC,WAAO,CAAP;CAAS;;CAAA,WAASK,SAAT,CAAmB3zB,EAAnB,EAAsB;CAAC,QAAG;CAAC,UAAItB,MAAM,GAACoV,QAAQ,CAACyB,eAAT,CAAyBvV,EAAzB,CAAX;CAAwC1K,MAAAA,EAAE,CAACyJ,KAAH,CAASL,MAAT;CAAiB,aAAO,CAAP;CAAS,KAAtE,CAAsE,OAAMvH,CAAN,EAAQ;CAAC,UAAG,OAAO7B,EAAP,IAAW,WAAX,IAAwB,EAAE6B,CAAC,YAAY7B,EAAE,CAACuJ,UAAlB,CAA3B,EAAyD,MAAM1H,CAAN;CAAQ,aAAOA,CAAC,CAACoR,KAAT;CAAe;CAAC;;CAAA,WAASqrB,cAAT,CAAwB5zB,EAAxB,EAA2B6zB,IAA3B,EAAgC;CAAC,QAAG;CAAC,UAAIn1B,MAAM,GAACoV,QAAQ,CAACyB,eAAT,CAAyBvV,EAAzB,CAAX;CAAwC,UAAIyK,IAAI,GAAC/L,MAAM,CAACC,GAAP,GAAW,CAAX,GAAarJ,EAAE,CAACmN,KAAH,CAAS/D,MAAM,CAAC0C,IAAhB,IAAsB,CAAtB,GAAwB9L,EAAE,CAACuN,MAAH,CAAUnE,MAAM,CAAC0C,IAAjB,IAAuB,CAAvB,GAAyB,CAAvE;CAAyEnO,MAAAA,KAAK,CAAC4gC,IAAI,IAAE,CAAP,CAAL,GAAeppB,IAAf;CAAoB,aAAO,CAAP;CAAS,KAAlJ,CAAkJ,OAAMtT,CAAN,EAAQ;CAAC,UAAG,OAAO7B,EAAP,IAAW,WAAX,IAAwB,EAAE6B,CAAC,YAAY7B,EAAE,CAACuJ,UAAlB,CAA3B,EAAyD,MAAM1H,CAAN;CAAQ,aAAOA,CAAC,CAACoR,KAAT;CAAe;CAAC;;CAAA,WAASurB,QAAT,CAAkB9zB,EAAlB,EAAqBiV,GAArB,EAAyBC,MAAzB,EAAgC6e,IAAhC,EAAqC;CAAC,QAAG;CAAC,UAAIr1B,MAAM,GAACoV,QAAQ,CAACyB,eAAT,CAAyBvV,EAAzB,CAAX;CAAwC,UAAIg0B,GAAG,GAAClgB,QAAQ,CAACkB,OAAT,CAAiBtW,MAAjB,EAAwBuW,GAAxB,EAA4BC,MAA5B,CAAR;CAA4CxiB,MAAAA,MAAM,CAACqhC,IAAI,IAAE,CAAP,CAAN,GAAgBC,GAAhB;CAAoB,aAAO,CAAP;CAAS,KAArH,CAAqH,OAAM78B,CAAN,EAAQ;CAAC,UAAG,OAAO7B,EAAP,IAAW,WAAX,IAAwB,EAAE6B,CAAC,YAAY7B,EAAE,CAACuJ,UAAlB,CAA3B,EAAyD,MAAM1H,CAAN;CAAQ,aAAOA,CAAC,CAACoR,KAAT;CAAe;CAAC;;CAAA,WAAS0rB,QAAT,CAAkBj0B,EAAlB,EAAqBk0B,UAArB,EAAgCC,WAAhC,EAA4CpvB,MAA5C,EAAmDqvB,SAAnD,EAA6D;CAAC,QAAG;CAAC,UAAI11B,MAAM,GAACoV,QAAQ,CAACyB,eAAT,CAAyBvV,EAAzB,CAAX;CAAwC,UAAIq0B,WAAW,GAAC,UAAhB;CAA2B,UAAIp1B,MAAM,GAACk1B,WAAW,GAACE,WAAZ,IAAyBH,UAAU,KAAG,CAAtC,CAAX;CAAoD,UAAII,YAAY,GAAC,gBAAjB;;CAAkC,UAAGr1B,MAAM,IAAE,CAACq1B,YAAT,IAAuBr1B,MAAM,IAAEq1B,YAAlC,EAA+C;CAAC,eAAM,CAAC,EAAP;CAAU;;CAAAh/B,MAAAA,EAAE,CAAC2M,MAAH,CAAUvD,MAAV,EAAiBO,MAAjB,EAAwB8F,MAAxB;CAAgCrL,MAAAA,OAAO,GAAC,CAACgF,MAAM,CAACkG,QAAP,KAAkB,CAAnB,GAAsBnL,UAAU,GAACiF,MAAM,CAACkG,QAAlB,EAA2B,CAAC7O,IAAI,CAACse,GAAL,CAAS5a,UAAT,CAAD,IAAuB,CAAvB,GAAyBA,UAAU,GAAC,CAAX,GAAa,CAAC1D,IAAI,CAAC4H,GAAL,CAAS,CAAC5H,IAAI,CAACue,KAAL,CAAW7a,UAAU,GAAC,UAAtB,CAAV,EAA4C,UAA5C,IAAwD,CAAzD,MAA8D,CAA3E,GAA6E,CAAC,CAAC,CAAC1D,IAAI,CAAC6K,IAAL,CAAU,CAACnH,UAAU,GAAC,EAAE,CAAC,CAACA,UAAF,KAAe,CAAjB,CAAZ,IAAiC,UAA3C,CAAH,KAA4D,CAAlK,GAAoK,CAArN,EAAR,EAAiO/G,MAAM,CAAC0hC,SAAS,IAAE,CAAZ,CAAN,GAAqB16B,OAAO,CAAC,CAAD,CAA7P,EAAiQhH,MAAM,CAAC0hC,SAAS,GAAC,CAAV,IAAa,CAAd,CAAN,GAAuB16B,OAAO,CAAC,CAAD,CAA/R;CAAmS,UAAGgF,MAAM,CAACkO,QAAP,IAAiB3N,MAAM,KAAG,CAA1B,IAA6B8F,MAAM,KAAG,CAAzC,EAA2CrG,MAAM,CAACkO,QAAP,GAAgB,IAAhB;CAAqB,aAAO,CAAP;CAAS,KAAnmB,CAAmmB,OAAMzV,CAAN,EAAQ;CAAC,UAAG,OAAO7B,EAAP,IAAW,WAAX,IAAwB,EAAE6B,CAAC,YAAY7B,EAAE,CAACuJ,UAAlB,CAA3B,EAAyD,MAAM1H,CAAN;CAAQ,aAAOA,CAAC,CAACoR,KAAT;CAAe;CAAC;;CAAA,WAASgsB,SAAT,CAAmBv0B,EAAnB,EAAsBiV,GAAtB,EAA0BC,MAA1B,EAAiC6e,IAAjC,EAAsC;CAAC,QAAG;CAAC,UAAIr1B,MAAM,GAACoV,QAAQ,CAACyB,eAAT,CAAyBvV,EAAzB,CAAX;CAAwC,UAAIg0B,GAAG,GAAClgB,QAAQ,CAACsB,QAAT,CAAkB1W,MAAlB,EAAyBuW,GAAzB,EAA6BC,MAA7B,CAAR;CAA6CxiB,MAAAA,MAAM,CAACqhC,IAAI,IAAE,CAAP,CAAN,GAAgBC,GAAhB;CAAoB,aAAO,CAAP;CAAS,KAAtH,CAAsH,OAAM78B,CAAN,EAAQ;CAAC,UAAG,OAAO7B,EAAP,IAAW,WAAX,IAAwB,EAAE6B,CAAC,YAAY7B,EAAE,CAACuJ,UAAlB,CAA3B,EAAyD,MAAM1H,CAAN;CAAQ,aAAOA,CAAC,CAACoR,KAAT;CAAe;CAAC;;CAAA,WAASisB,YAAT,CAAsBn0B,GAAtB,EAA0B;CAAkB;;CAAA,MAAIsH,MAAM,GAAC,UAASxG,MAAT,EAAgBzJ,IAAhB,EAAqB0J,IAArB,EAA0BxC,IAA1B,EAA+B;CAAC,QAAG,CAACuC,MAAJ,EAAW;CAACA,MAAAA,MAAM,GAAC,IAAP;CAAY;;CAAA,SAAKA,MAAL,GAAYA,MAAZ;CAAmB,SAAKF,KAAL,GAAWE,MAAM,CAACF,KAAlB;CAAwB,SAAK2F,OAAL,GAAa,IAAb;CAAkB,SAAKnQ,EAAL,GAAQnB,EAAE,CAACwQ,SAAH,EAAR;CAAuB,SAAKpO,IAAL,GAAUA,IAAV;CAAe,SAAK0J,IAAL,GAAUA,IAAV;CAAe,SAAKI,QAAL,GAAc,EAAd;CAAiB,SAAK/C,UAAL,GAAgB,EAAhB;CAAmB,SAAKG,IAAL,GAAUA,IAAV;CAAe,GAAxO;;CAAyO,MAAI61B,QAAQ,GAAC,MAAI,EAAjB;CAAoB,MAAIC,SAAS,GAAC,GAAd;CAAkBhrC,EAAAA,MAAM,CAAC2nB,gBAAP,CAAwB1J,MAAM,CAACzT,SAA/B,EAAyC;CAACvH,IAAAA,IAAI,EAAC;CAACoC,MAAAA,GAAG,EAAC,YAAU;CAAC,eAAM,CAAC,KAAKqS,IAAL,GAAUqzB,QAAX,MAAuBA,QAA7B;CAAsC,OAAtD;CAAuDtgC,MAAAA,GAAG,EAAC,UAASkM,GAAT,EAAa;CAACA,QAAAA,GAAG,GAAC,KAAKe,IAAL,IAAWqzB,QAAZ,GAAqB,KAAKrzB,IAAL,IAAW,CAACqzB,QAApC;CAA6C;CAAtH,KAAN;CAA8Hj1B,IAAAA,KAAK,EAAC;CAACzQ,MAAAA,GAAG,EAAC,YAAU;CAAC,eAAM,CAAC,KAAKqS,IAAL,GAAUszB,SAAX,MAAwBA,SAA9B;CAAwC,OAAxD;CAAyDvgC,MAAAA,GAAG,EAAC,UAASkM,GAAT,EAAa;CAACA,QAAAA,GAAG,GAAC,KAAKe,IAAL,IAAWszB,SAAZ,GAAsB,KAAKtzB,IAAL,IAAW,CAACszB,SAArC;CAA+C;CAA1H,KAApI;CAAgQ/kB,IAAAA,QAAQ,EAAC;CAAC5gB,MAAAA,GAAG,EAAC,YAAU;CAAC,eAAOuG,EAAE,CAACmN,KAAH,CAAS,KAAKrB,IAAd,CAAP;CAA2B;CAA3C,KAAzQ;CAAsTsO,IAAAA,QAAQ,EAAC;CAAC3gB,MAAAA,GAAG,EAAC,YAAU;CAAC,eAAOuG,EAAE,CAACwN,QAAH,CAAY,KAAK1B,IAAjB,CAAP;CAA8B;CAA9C;CAA/T,GAAzC;CAA0Z9L,EAAAA,EAAE,CAACqS,MAAH,GAAUA,MAAV;CAAiBrS,EAAAA,EAAE,CAAC+Y,UAAH;CAAgB3I,EAAAA,WAAW,GAAC;CAAC,aAAQ,EAAT;CAAY,cAAS,EAArB;CAAwB,aAAQ,EAAhC;CAAmC,aAAQ,EAA3C;CAA8C,WAAM,EAApD;CAAuD,aAAQ,EAA/D;CAAkE,aAAQ,CAA1E;CAA4E,eAAU,EAAtF;CAAyF,aAAQ,CAAjG;CAAmG,cAAS,EAA5G;CAA+G,cAAS,CAAxH;CAA0H,mBAAc,CAAxI;CAA0I,cAAS,EAAnJ;CAAsJ,cAAS,CAA/J;CAAiK,cAAS,EAA1K;CAA6K,eAAU,GAAvL;CAA2L,aAAQ,EAAnM;CAAsM,cAAS,EAA/M;CAAkN,aAAQ,EAA1N;CAA6N,cAAS,EAAtO;CAAyO,eAAU,EAAnP;CAAsP,cAAS,EAA/P;CAAkQ,cAAS,EAA3Q;CAA8Q,cAAS,EAAvR;CAA0R,cAAS,EAAnS;CAAsS,cAAS,EAA/S;CAAkT,eAAU,EAA5T;CAA+T,aAAQ,EAAvU;CAA0U,cAAS,EAAnV;CAAsV,cAAS,EAA/V;CAAkW,aAAQ,EAA1W;CAA6W,cAAS,EAAtX;CAAyX,aAAQ,EAAjY;CAAoY,YAAO,EAA3Y;CAA8Y,cAAS,EAAvZ;CAA0Z,cAAS,EAAna;CAAsa,aAAQ,EAA9a;CAAib,cAAS,GAA1b;CAA8b,gBAAW,GAAzc;CAA6c,cAAS,GAAtd;CAA0d,cAAS,GAAne;CAAue,cAAS,GAAhf;CAAof,eAAU,GAA9f;CAAkgB,cAAS,GAA3gB;CAA+gB,cAAS,GAAxhB;CAA4hB,eAAU,EAAtiB;CAAyiB,cAAS,EAAljB;CAAqjB,aAAQ,GAA7jB;CAAikB,aAAQ,GAAzkB;CAA6kB,cAAS,GAAtlB;CAA0lB,cAAS,GAAnmB;CAAumB,eAAU,GAAjnB;CAAqnB,eAAU,GAA/nB;CAAmoB,iBAAY,EAA/oB;CAAkpB,cAAS,GAA3pB;CAA+pB,cAAS,GAAxqB;CAA4qB,eAAU,GAAtrB;CAA0rB,aAAQ,GAAlsB;CAAssB,aAAQ,GAA9sB;CAAktB,cAAS,GAA3tB;CAA+tB,cAAS,GAAxuB;CAA4uB,eAAU,GAAtvB;CAA0vB,eAAU,EAApwB;CAAuwB,YAAO,GAA9wB;CAAkxB,cAAS,GAA3xB;CAA+xB,aAAQ,GAAvyB;CAA2yB,cAAS,EAApzB;CAAuzB,iBAAY,EAAn0B;CAAs0B,eAAU,GAAh1B;CAAo1B,eAAU,CAA91B;CAAg2B,gBAAW,GAA32B;CAA+2B,cAAS,GAAx3B;CAA43B,eAAU,GAAt4B;CAA04B,eAAU,GAAp5B;CAAw5B,eAAU,GAAl6B;CAAs6B,eAAU,GAAh7B;CAAo7B,eAAU,GAA97B;CAAk8B,gBAAW,GAA78B;CAAi9B,cAAS,EAA19B;CAA69B,iBAAY,EAAz+B;CAA4+B,oBAAe,EAA3/B;CAA8/B,aAAQ,EAAtgC;CAAygC,kBAAa,GAAthC;CAA0hC,oBAAe,GAAziC;CAA6iC,kBAAa,EAA1jC;CAA6jC,eAAU,EAAvkC;CAA0kC,oBAAe,CAAzlC;CAA2lC,kBAAa,EAAxmC;CAA2mC,gBAAW,EAAtnC;CAAynC,mBAAc,EAAvoC;CAA0oC,iBAAY,GAAtpC;CAA0pC,oBAAe,EAAzqC;CAA4qC,kBAAa,CAAzrC;CAA2rC,oBAAe,EAA1sC;CAA6sC,mBAAc,EAA3tC;CAA8tC,gBAAW,EAAzuC;CAA4uC,iBAAY,EAAxvC;CAA2vC,iBAAY,GAAvwC;CAA2wC,oBAAe,EAA1xC;CAA6xC,mBAAc,EAA3yC;CAA8yC,gBAAW,CAAzzC;CAA2zC,oBAAe,EAA10C;CAA60C,gBAAW,EAAx1C;CAA21C,uBAAkB,EAA72C;CAAg3C,uBAAkB,GAAl4C;CAAs4C,qBAAgB,CAAt5C;CAAw5C,iBAAY,EAAp6C;CAAu6C,eAAU,EAAj7C;CAAo7C,gBAAW,EAA/7C;CAAk8C,oBAAe,GAAj9C;CAAq9C,cAAS,GAA99C;CAAk+C,cAAS,EAA3+C;CAA8+C,cAAS,EAAv/C;CAA0/C,eAAU,GAApgD;CAAwgD,iBAAY,GAAphD;CAAwhD,cAAS,EAAjiD;CAAoiD,iBAAY,EAAhjD;CAAmjD,iBAAY,EAA/jD;CAAkkD,uBAAkB,EAAplD;CAAulD,kBAAa,EAApmD;CAAumD,gBAAW;CAAlnD,GAAZ;CAAmoDsQ,EAAAA,qBAAqB;CAAGkB,EAAAA,YAAY,GAACnuB,MAAM,CAAC,cAAD,CAAN,GAAuB+tB,WAAW,CAACxsB,KAAD,EAAO,cAAP,CAA/C;CAAsE8sB,EAAAA,aAAa,GAACruB,MAAM,CAAC,eAAD,CAAN,GAAwB+tB,WAAW,CAACxsB,KAAD,EAAO,eAAP,CAAjD;CAAyEmzB,EAAAA,gBAAgB;CAAGpC,EAAAA,WAAW;CAAGkE,EAAAA,sBAAsB;CAAGe,EAAAA,gBAAgB,GAACv3B,MAAM,CAAC,kBAAD,CAAN,GAA2B+tB,WAAW,CAACxsB,KAAD,EAAO,kBAAP,CAAvD;CAAkFo7B,EAAAA,UAAU;;CAAuB,WAAStlB,kBAAT,CAA4Bu0B,OAA5B,EAAoCxhC,WAApC,EAAgDhH,MAAhD,EAAuD;CAAC,QAAI0F,GAAG,GAAC1F,MAAM,GAAC,CAAP,GAASA,MAAT,GAAgByF,eAAe,CAAC+iC,OAAD,CAAf,GAAyB,CAAjD;CAAmD,QAAIC,OAAO,GAAC,IAAI14B,KAAJ,CAAUrK,GAAV,CAAZ;CAA2B,QAAIgjC,eAAe,GAAC3jC,iBAAiB,CAACyjC,OAAD,EAASC,OAAT,EAAiB,CAAjB,EAAmBA,OAAO,CAACzoC,MAA3B,CAArC;CAAwE,QAAGgH,WAAH,EAAeyhC,OAAO,CAACzoC,MAAR,GAAe0oC,eAAf;CAA+B,WAAOD,OAAP;CAAe;;CAAA,WAASvmC,sBAAT,GAAiC;CAACY,IAAAA,iBAAiB,CAAC,eAAD,CAAjB;CAAmC;;CAAA,MAAI4J,aAAa,GAAC;CAAC,yBAAoB2c,kBAArB;CAAwC,wBAAmBE,iBAA3D;CAA6E,+BAA0BC,wBAAvG;CAAgI,6BAAwB0C,sBAAxJ;CAA+K,8BAAyB2I,uBAAxM;CAAgO,0CAAqCoB,mCAArQ;CAAyS,uCAAkCyB,gCAA3U;CAA4W,uCAAkCW,gCAA9Y;CAA+a,8BAAyBoB,uBAAxc;CAAge,8BAAyBG,uBAAzf;CAAihB,gCAA2BS,yBAA5iB;CAAskB,oCAA+BO,6BAArmB;CAAmoB,mCAA8BK,4BAAjqB;CAA8rB,oCAA+BW,6BAA7tB;CAA2vB,6BAAwBQ,sBAAnxB;CAA0yB,4BAAuBE,qBAAj0B;CAAu1B,iBAAYG,UAAn2B;CAA82B,+BAA0BQ,wBAAx4B;CAAi6B,qBAAgB9D,cAAj7B;CAAg8B,gCAA2BmE,yBAA39B;CAAq/B,qBAAgBO,cAArgC;CAAohC,8BAAyBC,uBAA7iC;CAAqkC,yBAAoBC,kBAAzlC;CAA4mC,kBAAaE,WAAznC;CAAqoC,qBAAgBa,cAArpC;CAAoqC,kBAAaY,WAAjrC;CAA6rC,iBAAYqB,UAAzsC;CAAotC,aAAQE,MAA5tC;CAAmuC,sBAAiB0E,eAApvC;CAAowC,8BAAyBI,uBAA7xC;CAAqzC,mBAAciB,YAAn0C;CAAg1C,yBAAoBK,kBAAp2C;CAAu3C,gBAAWG,SAAl4C;CAA44C,qBAAgBC,cAA55C;CAA26C,eAAUE,QAAr7C;CAA87C,eAAUG,QAAx8C;CAAi9C,gBAAWM,SAA59C;CAAs+C,mBAAcC;CAAp/C,GAAlB;CAAohD,EAAQ77B,UAAU;;CAAG,EAAuB5P,MAAM,CAAC,oBAAD,CAAN,GAA6B0O,mBAAmB,CAAC,mBAAD;;CAAsB,MAAIgpB,KAAK,GAAC13B,MAAM,CAAC,OAAD,CAAN,GAAgB0O,mBAAmB,CAAC,MAAD,CAA7C;;CAAsD,MAAIzE,OAAO,GAACjK,MAAM,CAAC,SAAD,CAAN,GAAkB0O,mBAAmB,CAAC,QAAD,CAAjD;;CAA4D,MAAI24B,OAAO,GAACrnC,MAAM,CAAC,SAAD,CAAN,GAAkB0O,mBAAmB,CAAC,QAAD,CAAjD;;CAA4D,MAAIgD,iBAAiB,GAAC1R,MAAM,CAAC,mBAAD,CAAN,GAA4B0O,mBAAmB,CAAC,kBAAD,CAArE;;CAA0F,MAAI+oB,cAAc,GAACz3B,MAAM,CAAC,gBAAD,CAAN,GAAyB0O,mBAAmB,CAAC,eAAD,CAA/D;;CAAiF,EAAgD1O,MAAM,CAAC,6CAAD,CAAN,GAAsD0O,mBAAmB,CAAC,4CAAD;;CAA+C,MAAI8W,aAAa,GAACxlB,MAAM,CAAC,eAAD,CAAN,GAAwB0O,mBAAmB,CAAC,cAAD,CAA7D;;CAA8E,MAAIqJ,4BAA4B,GAAC/X,MAAM,CAAC,8BAAD,CAAN,GAAuC0O,mBAAmB,CAAC,6BAAD,CAA3F;;CAA2H,MAAIq9B,sBAAsB,GAAC/rC,MAAM,CAAC,wBAAD,CAAN,GAAiC,YAAU;CAAC,WAAM,CAAC+rC,sBAAsB,GAAC/rC,MAAM,CAAC,wBAAD,CAAN,GAAiCA,MAAM,CAAC,KAAD,CAAN,CAAc,uBAAd,CAAzD,EAAiG+O,KAAjG,CAAuG,IAAvG,EAA4GC,SAA5G,CAAN;CAA6H,GAApM;;CAAqM,EAA+BhP,MAAM,CAAC,4BAAD,CAAN,GAAqC,YAAU;CAAC,WAAM,CAA4BA,MAAM,CAAC,4BAAD,CAAN,GAAqCA,MAAM,CAAC,KAAD,CAAN,CAAc,2BAAd,CAAjE,EAA6G+O,KAA7G,CAAmH,IAAnH,EAAwHC,SAAxH,CAAN;CAAyI;;CAAC,EAA+BhP,MAAM,CAAC,4BAAD,CAAN,GAAqC,YAAU;CAAC,WAAM,CAA4BA,MAAM,CAAC,4BAAD,CAAN,GAAqCA,MAAM,CAAC,KAAD,CAAN,CAAc,2BAAd,CAAjE,EAA6G+O,KAA7G,CAAmH,IAAnH,EAAwHC,SAAxH,CAAN;CAAyI;;CAAC,MAAIxD,yBAAyB,GAACxL,MAAM,CAAC,2BAAD,CAAN,GAAoC,YAAU;CAAC,WAAM,CAACwL,yBAAyB,GAACxL,MAAM,CAAC,2BAAD,CAAN,GAAoCA,MAAM,CAAC,KAAD,CAAN,CAAc,0BAAd,CAA/D,EAA0G+O,KAA1G,CAAgH,IAAhH,EAAqHC,SAArH,CAAN;CAAsI,GAAnN;;CAAoN,EAAchP,MAAM,CAAC,WAAD,CAAN,GAAoB0O,mBAAmB,CAAC,WAAD;CAAc,EAAiB1O,MAAM,CAAC,cAAD,CAAN,GAAuB0O,mBAAmB,CAAC,cAAD;CAAiB,EAAe1O,MAAM,CAAC,YAAD,CAAN,GAAqB0O,mBAAmB,CAAC,YAAD;CAAe,EAAkB1O,MAAM,CAAC,eAAD,CAAN,GAAwB0O,mBAAmB,CAAC,eAAD;CAAkB,EAAmB1O,MAAM,CAAC,gBAAD,CAAN,GAAyB0O,mBAAmB,CAAC,gBAAD;CAAmB,EAAgB1O,MAAM,CAAC,aAAD,CAAN,GAAsB0O,mBAAmB,CAAC,aAAD;CAAgB,EAAgB1O,MAAM,CAAC,aAAD,CAAN,GAAsB0O,mBAAmB,CAAC,aAAD;CAAgB,EAAiB1O,MAAM,CAAC,cAAD,CAAN,GAAuB0O,mBAAmB,CAAC,cAAD;;CAAiB,EAA0B1O,MAAM,CAAC,uBAAD,CAAN,GAAgC;;CAAOwG,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,OAAD,EAAS,KAAT,CAAzB;CAAyCA,EAAAA,yBAAyB,CAAC,OAAD,EAAS,KAAT,CAAzB;CAAyCA,EAAAA,yBAAyB,CAAC,UAAD,EAAY,KAAZ,CAAzB;CAA4CA,EAAAA,yBAAyB,CAAC,UAAD,EAAY,KAAZ,CAAzB;CAA4CA,EAAAA,yBAAyB,CAAC,UAAD,EAAY,KAAZ,CAAzB;CAA4CA,EAAAA,yBAAyB,CAAC,mBAAD,EAAqB,KAArB,CAAzB;CAAqDA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,mBAAD,EAAqB,KAArB,CAAzB;CAAqDA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,YAAD,EAAc,KAAd,CAAzB;CAA8CA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,WAAD,EAAa,KAAb,CAAzB;CAA6CA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,WAAD,EAAa,KAAb,CAAzB;CAA6CA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,IAApB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,IAAvB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,IAAjB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,mBAAD,EAAqB,IAArB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,wBAAD,EAA0B,IAA1B,CAAzB;CAAyDA,EAAAA,yBAAyB,CAAC,mBAAD,EAAqB,IAArB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,IAAnB,CAAzB;CAAkDA,EAAAA,yBAAyB,CAAC,WAAD,EAAa,IAAb,CAAzB;CAA4CA,EAAAA,yBAAyB,CAAC,QAAD,EAAU,KAAV,CAAzB;CAA0CA,EAAAA,yBAAyB,CAAC,mBAAD,EAAqB,KAArB,CAAzB;CAAqDA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,mBAAD,EAAqB,KAArB,CAAzB;CAAqDA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,gBAAD,EAAkB,KAAlB,CAAzB;CAAkDA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,SAAD,EAAW,KAAX,CAAzB;CAA2CA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,OAAD,EAAS,KAAT,CAAzB;CAAyCA,EAAAA,yBAAyB,CAAC,UAAD,EAAY,KAAZ,CAAzB;CAA4CA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,UAAD,EAAY,KAAZ,CAAzB;CAA4CA,EAAAA,yBAAyB,CAAC,OAAD,EAAS,KAAT,CAAzB;CAAyCA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,YAAD,EAAc,KAAd,CAAzB;CAA8CA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,2BAAD,EAA6B,KAA7B,CAAzB;CAA6DA,EAAAA,yBAAyB,CAAC,KAAD,EAAO,KAAP,CAAzB;CAAuCA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,gBAAD,EAAkB,KAAlB,CAAzB;CAAkDA,EAAAA,yBAAyB,CAAC,UAAD,EAAY,KAAZ,CAAzB;CAA4CA,EAAAA,yBAAyB,CAAC,WAAD,EAAa,KAAb,CAAzB;CAA6CA,EAAAA,yBAAyB,CAAC,WAAD,EAAa,KAAb,CAAzB;CAA6CA,EAAAA,yBAAyB,CAAC,WAAD,EAAa,KAAb,CAAzB;CAA6CA,EAAAA,yBAAyB,CAAC,WAAD,EAAa,KAAb,CAAzB;CAA6CA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,KAAD,EAAO,KAAP,CAAzB;CAAuCA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,WAAD,EAAa,KAAb,CAAzB;CAA6CA,EAAAA,yBAAyB,CAAC,SAAD,EAAW,KAAX,CAAzB;CAA2CA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,2BAAD,EAA6B,KAA7B,CAAzB;CAA6DA,EAAAA,yBAAyB,CAAC,uBAAD,EAAyB,KAAzB,CAAzB;CAAyDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,SAAD,EAAW,KAAX,CAAzB;CAA2CA,EAAAA,yBAAyB,CAAC,SAAD,EAAW,KAAX,CAAzB;CAA2CA,EAAAA,yBAAyB,CAAC,mBAAD,EAAqB,KAArB,CAAzB;CAAqDA,EAAAA,yBAAyB,CAAC,YAAD,EAAc,KAAd,CAAzB;CAA8CA,EAAAA,yBAAyB,CAAC,wBAAD,EAA0B,KAA1B,CAAzB;CAA0DA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,SAAD,EAAW,KAAX,CAAzB;CAA2CA,EAAAA,yBAAyB,CAAC,mBAAD,EAAqB,KAArB,CAAzB;CAAqDA,EAAAA,yBAAyB,CAAC,mBAAD,EAAqB,KAArB,CAAzB;CAAqDA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,sBAAD,EAAwB,KAAxB,CAAzB;CAAwDA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,WAAD,EAAa,KAAb,CAAzB;CAA6CA,EAAAA,yBAAyB,CAAC,gBAAD,EAAkB,KAAlB,CAAzB;CAAkDA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,WAAD,EAAa,KAAb,CAAzB;CAA6CA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,WAAD,EAAa,KAAb,CAAzB;CAA6CA,EAAAA,yBAAyB,CAAC,gBAAD,EAAkB,KAAlB,CAAzB;CAAkDA,EAAAA,yBAAyB,CAAC,QAAD,EAAU,KAAV,CAAzB;CAA0CA,EAAAA,yBAAyB,CAAC,QAAD,EAAU,KAAV,CAAzB;CAA0CA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,MAAD,EAAQ,KAAR,CAAzB;CAAwCA,EAAAA,yBAAyB,CAAC,SAAD,EAAW,KAAX,CAAzB;CAA2CA,EAAAA,yBAAyB,CAAC,UAAD,EAAY,KAAZ,CAAzB;CAA4CA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,UAAD,EAAY,KAAZ,CAAzB;CAA4CA,EAAAA,yBAAyB,CAAC,0BAAD,EAA4B,KAA5B,CAAzB;CAA4DA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,wBAAD,EAA0B,KAA1B,CAAzB;CAA0DA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,uBAAD,EAAyB,KAAzB,CAAzB;CAAyDA,EAAAA,yBAAyB,CAAC,uBAAD,EAAyB,KAAzB,CAAzB;CAAyDA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,4BAAD,EAA8B,KAA9B,CAAzB;CAA8DA,EAAAA,yBAAyB,CAAC,4BAAD,EAA8B,KAA9B,CAAzB;CAA8DA,EAAAA,yBAAyB,CAAC,yBAAD,EAA2B,KAA3B,CAAzB;CAA2DA,EAAAA,yBAAyB,CAAC,4BAAD,EAA8B,KAA9B,CAAzB;CAA8DA,EAAAA,yBAAyB,CAAC,gCAAD,EAAkC,KAAlC,CAAzB;CAAkEA,EAAAA,yBAAyB,CAAC,wCAAD,EAA0C,KAA1C,CAAzB;CAA0EA,EAAAA,yBAAyB,CAAC,2BAAD,EAA6B,KAA7B,CAAzB;CAA6DA,EAAAA,yBAAyB,CAAC,mCAAD,EAAqC,KAArC,CAAzB;CAAqEA,EAAAA,yBAAyB,CAAC,mBAAD,EAAqB,KAArB,CAAzB;CAAqDA,EAAAA,yBAAyB,CAAC,gCAAD,EAAkC,KAAlC,CAAzB;CAAkEA,EAAAA,yBAAyB,CAAC,wCAAD,EAA0C,KAA1C,CAAzB;CAA0EA,EAAAA,yBAAyB,CAAC,+BAAD,EAAiC,KAAjC,CAAzB;CAAiEA,EAAAA,yBAAyB,CAAC,uCAAD,EAAyC,KAAzC,CAAzB;CAAyEA,EAAAA,yBAAyB,CAAC,yBAAD,EAA2B,KAA3B,CAAzB;CAA2DA,EAAAA,yBAAyB,CAAC,kCAAD,EAAoC,KAApC,CAAzB;CAAoEA,EAAAA,yBAAyB,CAAC,uBAAD,EAAyB,KAAzB,CAAzB;CAAyDA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,2BAAD,EAA6B,KAA7B,CAAzB;CAA6DA,EAAAA,yBAAyB,CAAC,yBAAD,EAA2B,KAA3B,CAAzB;CAA2DA,EAAAA,yBAAyB,CAAC,uCAAD,EAAyC,KAAzC,CAAzB;CAAyEA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,gCAAD,EAAkC,KAAlC,CAAzB;CAAkEA,EAAAA,yBAAyB,CAAC,wCAAD,EAA0C,KAA1C,CAAzB;CAA0EA,EAAAA,yBAAyB,CAAC,uCAAD,EAAyC,KAAzC,CAAzB;CAAyEA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,+BAAD,EAAiC,KAAjC,CAAzB;CAAiEA,EAAAA,yBAAyB,CAAC,uCAAD,EAAyC,KAAzC,CAAzB;CAAyEA,EAAAA,yBAAyB,CAAC,4BAAD,EAA8B,KAA9B,CAAzB;CAA8DA,EAAAA,yBAAyB,CAAC,sBAAD,EAAwB,KAAxB,CAAzB;CAAwDA,EAAAA,yBAAyB,CAAC,8BAAD,EAAgC,KAAhC,CAAzB;CAAgEA,EAAAA,yBAAyB,CAAC,mCAAD,EAAqC,KAArC,CAAzB;CAAqEA,EAAAA,yBAAyB,CAAC,sBAAD,EAAwB,KAAxB,CAAzB;CAAwDA,EAAAA,yBAAyB,CAAC,SAAD,EAAW,KAAX,CAAzB;CAA2CA,EAAAA,yBAAyB,CAAC,8BAAD,EAAgC,KAAhC,CAAzB;CAAgEA,EAAAA,yBAAyB,CAAC,sBAAD,EAAwB,KAAxB,CAAzB;CAAwDA,EAAAA,yBAAyB,CAAC,sBAAD,EAAwB,KAAxB,CAAzB;CAAwDA,EAAAA,yBAAyB,CAAC,UAAD,EAAY,KAAZ,CAAzB;CAA4CA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,YAAD,EAAc,KAAd,CAAzB;CAA8CA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,gBAAD,EAAkB,KAAlB,CAAzB;CAAkDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,sBAAD,EAAwB,KAAxB,CAAzB;CAAwDA,EAAAA,yBAAyB,CAAC,wBAAD,EAA0B,KAA1B,CAAzB;CAA0DA,EAAAA,yBAAyB,CAAC,sBAAD,EAAwB,KAAxB,CAAzB;CAAwDA,EAAAA,yBAAyB,CAAC,wBAAD,EAA0B,KAA1B,CAAzB;CAA0DA,EAAAA,yBAAyB,CAAC,gBAAD,EAAkB,KAAlB,CAAzB;CAAkDA,EAAAA,yBAAyB,CAAC,gBAAD,EAAkB,KAAlB,CAAzB;CAAkDA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,uBAAD,EAAyB,KAAzB,CAAzB;CAAyDA,EAAAA,yBAAyB,CAAC,sBAAD,EAAwB,KAAxB,CAAzB;CAAwDA,EAAAA,yBAAyB,CAAC,wBAAD,EAA0B,KAA1B,CAAzB;CAA0DA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,SAAD,EAAW,KAAX,CAAzB;CAA2CA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,MAAD,EAAQ,KAAR,CAAzB;CAAwCA,EAAAA,yBAAyB,CAAC,IAAD,EAAM,KAAN,CAAzB;CAAsCA,EAAAA,yBAAyB,CAAC,OAAD,EAAS,KAAT,CAAzB;CAAyCA,EAAAA,yBAAyB,CAAC,KAAD,EAAO,KAAP,CAAzB;CAAuCA,EAAAA,yBAAyB,CAAC,QAAD,EAAU,KAAV,CAAzB;CAA0CA,EAAAA,yBAAyB,CAAC,QAAD,EAAU,KAAV,CAAzB;CAA0CA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,sBAAD,EAAwB,KAAxB,CAAzB;CAAwDA,EAAAA,yBAAyB,CAAC,2BAAD,EAA6B,KAA7B,CAAzB;CAA6DA,EAAAA,yBAAyB,CAAC,wBAAD,EAA0B,KAA1B,CAAzB;CAA0DA,EAAAA,yBAAyB,CAAC,6BAAD,EAA+B,KAA/B,CAAzB;CAA+DA,EAAAA,yBAAyB,CAAC,IAAD,EAAM,KAAN,CAAzB;CAAsCA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,+BAAD,EAAiC,KAAjC,CAAzB;CAAiEA,EAAAA,yBAAyB,CAAC,gCAAD,EAAkC,KAAlC,CAAzB;CAAkEA,EAAAA,yBAAyB,CAAC,2BAAD,EAA6B,KAA7B,CAAzB;CAA6DA,EAAAA,yBAAyB,CAAC,yBAAD,EAA2B,KAA3B,CAAzB;CAA2DA,EAAAA,yBAAyB,CAAC,4CAAD,EAA8C,KAA9C,CAAzB;CAA8EA,EAAAA,yBAAyB,CAAC,sBAAD,EAAwB,KAAxB,CAAzB;CAAwDA,EAAAA,yBAAyB,CAAC,gCAAD,EAAkC,KAAlC,CAAzB;CAAkEA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,IAAD,EAAM,KAAN,CAAzB;CAAsCA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,gBAAD,EAAkB,KAAlB,CAAzB;CAAkDA,EAAAA,yBAAyB,CAAC,WAAD,EAAa,KAAb,CAAzB;CAA6CA,EAAAA,yBAAyB,CAAC,KAAD,EAAO,KAAP,CAAzB;CAAuCA,EAAAA,yBAAyB,CAAC,SAAD,EAAW,KAAX,CAAzB;CAA2CA,EAAAA,yBAAyB,CAAC,MAAD,EAAQ,KAAR,CAAzB;CAAwCA,EAAAA,yBAAyB,CAAC,KAAD,EAAO,KAAP,CAAzB;CAAuCA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,MAAD,EAAQ,KAAR,CAAzB;CAAwCA,EAAAA,yBAAyB,CAAC,MAAD,EAAQ,KAAR,CAAzB;CAAwCA,EAAAA,yBAAyB,CAAC,UAAD,EAAY,KAAZ,CAAzB;CAA4CA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,mBAAD,EAAqB,KAArB,CAAzB;CAAqDA,EAAAA,yBAAyB,CAAC,uBAAD,EAAyB,KAAzB,CAAzB;CAAyDA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,2BAAD,EAA6B,KAA7B,CAAzB;CAA6DA,EAAAA,yBAAyB,CAAC,6BAAD,EAA+B,KAA/B,CAAzB;CAA+DA,EAAAA,yBAAyB,CAAC,sBAAD,EAAwB,KAAxB,CAAzB;CAAwDA,EAAAA,yBAAyB,CAAC,2BAAD,EAA6B,KAA7B,CAAzB;CAA6DA,EAAAA,yBAAyB,CAAC,2BAAD,EAA6B,KAA7B,CAAzB;CAA6DA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,sBAAD,EAAwB,KAAxB,CAAzB;CAAwDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,+BAAD,EAAiC,KAAjC,CAAzB;CAAiEA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,uBAAD,EAAyB,KAAzB,CAAzB;CAAyDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,uBAAD,EAAyB,KAAzB,CAAzB;CAAyDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,6BAAD,EAA+B,KAA/B,CAAzB;CAA+DA,EAAAA,yBAAyB,CAAC,0BAAD,EAA4B,KAA5B,CAAzB;CAA4DA,EAAAA,yBAAyB,CAAC,2BAAD,EAA6B,KAA7B,CAAzB;CAA6DA,EAAAA,yBAAyB,CAAC,4BAAD,EAA8B,KAA9B,CAAzB;CAA8DA,EAAAA,yBAAyB,CAAC,gBAAD,EAAkB,KAAlB,CAAzB;CAAkDA,EAAAA,yBAAyB,CAAC,MAAD,EAAQ,KAAR,CAAzB;CAAwCA,EAAAA,yBAAyB,CAAC,sBAAD,EAAwB,KAAxB,CAAzB;CAAwDA,EAAAA,yBAAyB,CAAC,yBAAD,EAA2B,KAA3B,CAAzB;CAA2DA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,0BAAD,EAA4B,KAA5B,CAAzB;CAA4DA,EAAAA,yBAAyB,CAAC,qCAAD,EAAuC,KAAvC,CAAzB;CAAuEA,EAAAA,yBAAyB,CAAC,wCAAD,EAA0C,KAA1C,CAAzB;CAA0EA,EAAAA,yBAAyB,CAAC,wBAAD,EAA0B,KAA1B,CAAzB;CAA0DA,EAAAA,yBAAyB,CAAC,mBAAD,EAAqB,KAArB,CAAzB;CAAqDA,EAAAA,yBAAyB,CAAC,8BAAD,EAAgC,KAAhC,CAAzB;CAAgEA,EAAAA,yBAAyB,CAAC,8BAAD,EAAgC,KAAhC,CAAzB;CAAgEA,EAAAA,yBAAyB,CAAC,gCAAD,EAAkC,KAAlC,CAAzB;CAAkEA,EAAAA,yBAAyB,CAAC,gCAAD,EAAkC,KAAlC,CAAzB;CAAkEA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,sBAAD,EAAwB,KAAxB,CAAzB;CAAwDA,EAAAA,yBAAyB,CAAC,sBAAD,EAAwB,KAAxB,CAAzB;CAAwDA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,aAAD,EAAe,KAAf,CAAzB;CAA+CA,EAAAA,yBAAyB,CAAC,uBAAD,EAAyB,KAAzB,CAAzB;CAAyDA,EAAAA,yBAAyB,CAAC,6BAAD,EAA+B,KAA/B,CAAzB;CAA+DA,EAAAA,yBAAyB,CAAC,mBAAD,EAAqB,KAArB,CAAzB;CAAqDA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,uBAAD,EAAyB,KAAzB,CAAzB;CAAyDA,EAAAA,yBAAyB,CAAC,yBAAD,EAA2B,KAA3B,CAAzB;CAA2DA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,4BAAD,EAA8B,KAA9B,CAAzB;CAA8DA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,QAAD,EAAU,KAAV,CAAzB;CAA0CA,EAAAA,yBAAyB,CAAC,QAAD,EAAU,KAAV,CAAzB;CAA0CA,EAAAA,yBAAyB,CAAC,uBAAD,EAAyB,KAAzB,CAAzB;CAAyDA,EAAAA,yBAAyB,CAAC,oBAAD,EAAsB,KAAtB,CAAzB;CAAsDA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,YAAD,EAAc,KAAd,CAAzB;CAA8CA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,iBAAD,EAAmB,KAAnB,CAAzB;CAAmDA,EAAAA,yBAAyB,CAAC,mBAAD,EAAqB,KAArB,CAAzB;CAAqDA,EAAAA,yBAAyB,CAAC,OAAD,EAAS,KAAT,CAAzB;CAAyCA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDA,EAAAA,yBAAyB,CAAC,yBAAD,EAA2B,KAA3B,CAAzB;CAA2DA,EAAAA,yBAAyB,CAAC,UAAD,EAAY,KAAZ,CAAzB;CAA4CA,EAAAA,yBAAyB,CAAC,WAAD,EAAa,KAAb,CAAzB;CAA6CA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,YAAD,EAAc,KAAd,CAAzB;CAA8CA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,eAAD,EAAiB,KAAjB,CAAzB;CAAiDA,EAAAA,yBAAyB,CAAC,kBAAD,EAAoB,KAApB,CAAzB;CAAoDA,EAAAA,yBAAyB,CAAC,cAAD,EAAgB,KAAhB,CAAzB;CAAgDA,EAAAA,yBAAyB,CAAC,qBAAD,EAAuB,KAAvB,CAAzB;CAAuDxG,EAAAA,MAAM,CAAC,kBAAD,CAAN,GAA2BsL,gBAA3B;CAA4CtL,EAAAA,MAAM,CAAC,kBAAD,CAAN,GAA2ByL,gBAA3B;CAA4ClF,EAAAA,uBAAuB,CAAC,cAAD,EAAgB,KAAhB,CAAvB;CAA8CA,EAAAA,uBAAuB,CAAC,aAAD,EAAe,KAAf,CAAvB;CAA6C,MAAIylC,SAAJ;;CAAc,WAAStoC,UAAT,CAAoByB,MAApB,EAA2B;CAAC,SAAKwJ,IAAL,GAAU,YAAV;CAAuB,SAAKlO,OAAL,GAAa,kCAAgC0E,MAAhC,GAAuC,GAApD;CAAwD,SAAKA,MAAL,GAAYA,MAAZ;CAAmB;;CAAAoI,EAAAA,qBAAqB,GAAC,SAAS0+B,SAAT,GAAoB;CAAC,QAAG,CAACD,SAAJ,EAAcE,GAAG;CAAG,QAAG,CAACF,SAAJ,EAAcz+B,qBAAqB,GAAC0+B,SAAtB;CAAgC,GAA7G;;CAA8G,WAASE,cAAT,GAAyB;CAACJ,IAAAA,sBAAsB;;CAAGzgC,IAAAA,gBAAgB;CAAG;;CAAA,WAAS4gC,GAAT,CAAarV,IAAb,EAAkB;;CAAuB,QAAGxpB,eAAe,GAAC,CAAnB,EAAqB;CAAC;CAAO;;CAAA8+B,IAAAA,cAAc;CAAGjgC,IAAAA,MAAM;;CAAG,QAAGmB,eAAe,GAAC,CAAnB,EAAqB;CAAC;CAAO;;CAAA,aAAS++B,KAAT,GAAgB;CAAC,UAAGJ,SAAH,EAAa;CAAOA,MAAAA,SAAS,GAAC,IAAV;CAAehsC,MAAAA,MAAM,CAAC,WAAD,CAAN,GAAoB,IAApB;CAAyB,UAAG4G,KAAH,EAAS;CAAO0F,MAAAA,WAAW;CAAG,UAAGtM,MAAM,CAAC,sBAAD,CAAT,EAAkCA,MAAM,CAAC,sBAAD,CAAN;CAAiC8C,MAAAA,MAAM,CAAC,CAAC9C,MAAM,CAAC,OAAD,CAAR,EAAkB,0GAAlB,CAAN;CAAoI2M,MAAAA,OAAO;CAAG;;CAAA,QAAG3M,MAAM,CAAC,WAAD,CAAT,EAAuB;CAACA,MAAAA,MAAM,CAAC,WAAD,CAAN,CAAoB,YAApB;CAAkC+D,MAAAA,UAAU,CAAC,YAAU;CAACA,QAAAA,UAAU,CAAC,YAAU;CAAC/D,UAAAA,MAAM,CAAC,WAAD,CAAN,CAAoB,EAApB;CAAwB,SAApC,EAAqC,CAArC,CAAV;CAAkDosC,QAAAA,KAAK;CAAG,OAAtE,EAAuE,CAAvE,CAAV;CAAoF,KAA9I,MAAkJ;CAACA,MAAAA,KAAK;CAAG;;CAAA3gC,IAAAA,gBAAgB;CAAG;;CAAAzL,EAAAA,MAAM,CAAC,KAAD,CAAN,GAAcksC,GAAd;;CAA0sB,MAAGlsC,MAAM,CAAC,SAAD,CAAT,EAAqB;CAAC,QAAG,OAAOA,MAAM,CAAC,SAAD,CAAb,IAA0B,UAA7B,EAAwCA,MAAM,CAAC,SAAD,CAAN,GAAkB,CAACA,MAAM,CAAC,SAAD,CAAP,CAAlB;;CAAsC,WAAMA,MAAM,CAAC,SAAD,CAAN,CAAkBoD,MAAlB,GAAyB,CAA/B,EAAiC;CAACpD,MAAAA,MAAM,CAAC,SAAD,CAAN,CAAkBkhB,GAAlB;CAA0B;CAAC;;CAAAgrB,EAAAA,GAAG;CAAG1oC,EAAAA,cAAA,GAAexD,MAAf;;;ACAz1+J,oBAAe,CAACqsC,EAAD,EAAKC,kBAAL,KAA4B;CACvC,MAAIC,kBAAkB,GAAG,CACrB,2BADqB,EAErB,4BAFqB,EAGrB,4BAHqB,EAKrB,aALqB,EAMrB,GANqB,EAOrB,0BAPqB,EAQrB,+BARqB,EASrB,GATqB,EAUvB15B,IAVuB,CAUlB,IAVkB,CAAzB;CAYA,MAAI25B,oBAAoB,GAAG,CACvB,wBADuB,EAEvB,kCAFuB,EAGvB,6BAHuB,EAIvB,6BAJuB,EAKvB,6BALuB,EAMvB,2BANuB,EAOvB,GAPuB,EAQvB,gDARuB,EASvB,qDATuB,EAUvB,6CAVuB,EAWvB,YAXuB,EAYvB,IAZuB,EAcvB,mBAduB,EAevB,uDAfuB,EAgBvB,uDAhBuB,EAiBvB,uDAjBuB,EAkBvB,4CAlBuB,EAmBvB,GAnBuB,EAoBzB35B,IApByB,CAoBpB,IApBoB,CAA3B;;CAsBA,MAAIy5B,kBAAJ,EAAwB;CACpBD,IAAAA,EAAE,CAACI,WAAH,CAAeJ,EAAE,CAACK,gBAAlB,EAAoC,CAApC;CACH;;CACD,MAAIC,YAAY,GAAGN,EAAE,CAACO,YAAH,CAAgBP,EAAE,CAACQ,aAAnB,CAAnB;CACAR,EAAAA,EAAE,CAACS,YAAH,CAAgBH,YAAhB,EAA8BJ,kBAA9B;CACAF,EAAAA,EAAE,CAACU,aAAH,CAAiBJ,YAAjB;;CACA,MAAI,CAACN,EAAE,CAACW,kBAAH,CAAsBL,YAAtB,EAAoCN,EAAE,CAACY,cAAvC,CAAL,EAA6D;CACzD9sC,IAAAA,OAAO,CAACC,GAAR,CAAY,sCAAsCisC,EAAE,CAACa,gBAAH,CAAoBP,YAApB,CAAlD;CACH;;CAED,MAAIQ,cAAc,GAAGd,EAAE,CAACO,YAAH,CAAgBP,EAAE,CAACe,eAAnB,CAArB;CACAf,EAAAA,EAAE,CAACS,YAAH,CAAgBK,cAAhB,EAAgCX,oBAAhC;CACAH,EAAAA,EAAE,CAACU,aAAH,CAAiBI,cAAjB;;CACA,MAAI,CAACd,EAAE,CAACW,kBAAH,CAAsBG,cAAtB,EAAsCd,EAAE,CAACY,cAAzC,CAAL,EAA+D;CAC3D9sC,IAAAA,OAAO,CAACC,GAAR,CAAY,wCAAwCisC,EAAE,CAACa,gBAAH,CAAoBC,cAApB,CAApD;CACH;;CAED,MAAIE,OAAO,GAAGhB,EAAE,CAACiB,aAAH,EAAd;CACAjB,EAAAA,EAAE,CAACkB,YAAH,CAAgBF,OAAhB,EAAyBV,YAAzB;CACAN,EAAAA,EAAE,CAACkB,YAAH,CAAgBF,OAAhB,EAAyBF,cAAzB;CACAd,EAAAA,EAAE,CAACmB,WAAH,CAAeH,OAAf;;CACA,MAAI,CAAChB,EAAE,CAACoB,mBAAH,CAAuBJ,OAAvB,EAAgChB,EAAE,CAACqB,WAAnC,CAAL,EAAsD;CAClDvtC,IAAAA,OAAO,CAACC,GAAR,CAAY,gCAAgCisC,EAAE,CAACsB,iBAAH,CAAqBN,OAArB,CAA5C;CACH;;CAEDhB,EAAAA,EAAE,CAACuB,UAAH,CAAcP,OAAd,EA5DuC;;CA+DvC,MAAIQ,eAAe,GAAGxB,EAAE,CAACyB,YAAH,EAAtB;CACAzB,EAAAA,EAAE,CAAC0B,UAAH,CAAc1B,EAAE,CAAC2B,YAAjB,EAA+BH,eAA/B;CACAxB,EAAAA,EAAE,CAAC4B,UAAH,CAAc5B,EAAE,CAAC2B,YAAjB,EAA+B,IAAIjjC,YAAJ,CAAiB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAC,CAAR,EAAW,CAAX,EAAc,CAAd,EAAiB,CAAC,CAAlB,EAAqB,CAAC,CAAtB,EAAyB,CAAC,CAA1B,CAAjB,CAA/B,EAA+EshC,EAAE,CAAC6B,WAAlF;CAEA,MAAIC,YAAY,GAAG9B,EAAE,CAAC+B,iBAAH,CAAqBf,OAArB,EAA8B,WAA9B,CAAnB;CACAhB,EAAAA,EAAE,CAACgC,uBAAH,CAA2BF,YAA3B;CACA9B,EAAAA,EAAE,CAACiC,mBAAH,CAAuBH,YAAvB,EAAqC,CAArC,EAAwC9B,EAAE,CAACkC,KAA3C,EAAkD,KAAlD,EAAyD,CAAzD,EAA4D,CAA5D;CAEA,MAAIC,gBAAgB,GAAGnC,EAAE,CAACyB,YAAH,EAAvB;CACAzB,EAAAA,EAAE,CAAC0B,UAAH,CAAc1B,EAAE,CAAC2B,YAAjB,EAA+BQ,gBAA/B;CACAnC,EAAAA,EAAE,CAAC4B,UAAH,CAAc5B,EAAE,CAAC2B,YAAjB,EAA+B,IAAIjjC,YAAJ,CAAiB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,CAAjB,CAA/B,EAA2EshC,EAAE,CAAC6B,WAA9E;CAEA,MAAIO,aAAa,GAAGpC,EAAE,CAAC+B,iBAAH,CAAqBf,OAArB,EAA8B,YAA9B,CAApB;CACAhB,EAAAA,EAAE,CAACgC,uBAAH,CAA2BI,aAA3B;CACApC,EAAAA,EAAE,CAACiC,mBAAH,CAAuBG,aAAvB,EAAsC,CAAtC,EAAyCpC,EAAE,CAACkC,KAA5C,EAAmD,KAAnD,EAA0D,CAA1D,EAA6D,CAA7D;;CAEA,WAASG,YAAT,CAAsB//B,IAAtB,EAA4BggC,KAA5B,EAAmC;CAC/B,QAAIC,UAAU,GAAGvC,EAAE,CAACwC,aAAH,EAAjB;CACAxC,IAAAA,EAAE,CAACyC,WAAH,CAAezC,EAAE,CAAC0C,UAAlB,EAA8BH,UAA9B;CACAvC,IAAAA,EAAE,CAAC2C,aAAH,CAAiB3C,EAAE,CAAC0C,UAApB,EAAgC1C,EAAE,CAAC4C,kBAAnC,EAAuD5C,EAAE,CAAC6C,MAA1D;CACA7C,IAAAA,EAAE,CAAC2C,aAAH,CAAiB3C,EAAE,CAAC0C,UAApB,EAAgC1C,EAAE,CAAC8C,kBAAnC,EAAuD9C,EAAE,CAAC6C,MAA1D;CACA7C,IAAAA,EAAE,CAAC2C,aAAH,CAAiB3C,EAAE,CAAC0C,UAApB,EAAgC1C,EAAE,CAAC+C,cAAnC,EAAmD/C,EAAE,CAACgD,aAAtD;CACAhD,IAAAA,EAAE,CAAC2C,aAAH,CAAiB3C,EAAE,CAAC0C,UAApB,EAAgC1C,EAAE,CAACiD,cAAnC,EAAmDjD,EAAE,CAACgD,aAAtD;CACAhD,IAAAA,EAAE,CAACyC,WAAH,CAAezC,EAAE,CAAC0C,UAAlB,EAA8B,IAA9B;CACA1C,IAAAA,EAAE,CAACkD,SAAH,CAAalD,EAAE,CAACmD,kBAAH,CAAsBnC,OAAtB,EAA+B1+B,IAA/B,CAAb,EAAmDggC,KAAnD;CACA,WAAOC,UAAP;CACH;;CAED,MAAIa,WAAW,GAAGf,YAAY,CAAC,UAAD,EAAa,CAAb,CAA9B;;CACA,MAAIgB,WAAW,GAAGhB,YAAY,CAAC,UAAD,EAAa,CAAb,CAA9B;;CACA,MAAIiB,WAAW,GAAGjB,YAAY,CAAC,UAAD,EAAa,CAAb,CAA9B;;CAEA,SAAO;CACHkB,IAAAA,MAAM,EAAE,UAAUC,CAAV,EAAaC,CAAb,EAAgB1+B,CAAhB,EAAmB3I,CAAnB,EAAsB2zB,CAAtB,EAAyB;CAC7BiQ,MAAAA,EAAE,CAAC0D,QAAH,CAAY,CAAZ,EAAe,CAAf,EAAkBF,CAAlB,EAAqBC,CAArB;CACAzD,MAAAA,EAAE,CAAC2D,aAAH,CAAiB3D,EAAE,CAAC4D,QAApB;CACA5D,MAAAA,EAAE,CAACyC,WAAH,CAAezC,EAAE,CAAC0C,UAAlB,EAA8BU,WAA9B;CACApD,MAAAA,EAAE,CAAC6D,UAAH,CAAc7D,EAAE,CAAC0C,UAAjB,EAA6B,CAA7B,EAAgC1C,EAAE,CAAC8D,SAAnC,EAA8CN,CAA9C,EAAiDC,CAAjD,EAAoD,CAApD,EAAuDzD,EAAE,CAAC8D,SAA1D,EAAqE9D,EAAE,CAAC+D,aAAxE,EAAuFh/B,CAAvF;CACAi7B,MAAAA,EAAE,CAAC2D,aAAH,CAAiB3D,EAAE,CAACgE,QAApB;CACAhE,MAAAA,EAAE,CAACyC,WAAH,CAAezC,EAAE,CAAC0C,UAAlB,EAA8BW,WAA9B;CACArD,MAAAA,EAAE,CAAC6D,UAAH,CAAc7D,EAAE,CAAC0C,UAAjB,EAA6B,CAA7B,EAAgC1C,EAAE,CAAC8D,SAAnC,EAA8CN,CAAC,GAAG,CAAlD,EAAqDC,CAAC,GAAG,CAAzD,EAA4D,CAA5D,EAA+DzD,EAAE,CAAC8D,SAAlE,EAA6E9D,EAAE,CAAC+D,aAAhF,EAA+F3nC,CAA/F;CACA4jC,MAAAA,EAAE,CAAC2D,aAAH,CAAiB3D,EAAE,CAACiE,QAApB;CACAjE,MAAAA,EAAE,CAACyC,WAAH,CAAezC,EAAE,CAAC0C,UAAlB,EAA8BY,WAA9B;CACAtD,MAAAA,EAAE,CAAC6D,UAAH,CAAc7D,EAAE,CAAC0C,UAAjB,EAA6B,CAA7B,EAAgC1C,EAAE,CAAC8D,SAAnC,EAA8CN,CAAC,GAAG,CAAlD,EAAqDC,CAAC,GAAG,CAAzD,EAA4D,CAA5D,EAA+DzD,EAAE,CAAC8D,SAAlE,EAA6E9D,EAAE,CAAC+D,aAAhF,EAA+FhU,CAA/F;CACAiQ,MAAAA,EAAE,CAACkE,UAAH,CAAclE,EAAE,CAACmE,cAAjB,EAAiC,CAAjC,EAAoC,CAApC;CACH,KAbE;CAcHC,IAAAA,OAAO,EAAE,YAAY;CACjB,UAAI;CACApE,QAAAA,EAAE,CAACqE,aAAH,CAAiBrD,OAAjB;CAEAhB,QAAAA,EAAE,CAACsE,YAAH,CAAgB9C,eAAhB;CACAxB,QAAAA,EAAE,CAACsE,YAAH,CAAgBnC,gBAAhB;CAEAnC,QAAAA,EAAE,CAACuE,aAAH,CAAiBnB,WAAjB;CACApD,QAAAA,EAAE,CAACuE,aAAH,CAAiBlB,WAAjB;CACArD,QAAAA,EAAE,CAACuE,aAAH,CAAiBjB,WAAjB;CACH,OATD,CASE,OAAOvhC,CAAP,EAAU;CAEX;CAEJ;CA5BE,GAAP;CA8BH,CA7HD;;CCAA;CACO,MAAMyiC,oBAAoB,GAAG;CAChCC,EAAAA,SAAS,EAAE,CADqB;CAEhCzhC,EAAAA,KAAK,EAAE,CAFyB;CAGhC0hC,EAAAA,MAAM,EAAE;CAHwB,CAA7B;CAMA,MAAMC,UAAU,GAAG;CACtBC,EAAAA,GAAG,EAAE,KADiB;CAEtBC,EAAAA,GAAG,EAAE;CAFiB,CAAnB;CAKA,MAAMC,WAAW,GAAG;CACvBC,EAAAA,GAAG,EAAE,KADkB;CAEvBC,EAAAA,IAAI,EAAE;CAFiB,CAApB;;CAaA,MAAMC,sBAAsB,GAAG;CAClCC,EAAAA,WAAW,EAAE,IADqB;CACf;CACnBC,EAAAA,gBAAgB,EAAE,IAFgB;CAEX;CACvBC,EAAAA,QAAQ,EAAE,IAHwB;CAIlCC,EAAAA,YAAY,EAAE,KAJoB;CAIb;CACrBC,EAAAA,KAAK,EAAE,KAL2B;CAMlC7I,EAAAA,KAAK,EAAE,KAN2B;CAOlC8I,EAAAA,MAAM,EAAE,KAP0B;CAOnB;CACfC,EAAAA,cAAc,EAAE,EARkB;CAQd;CACpBC,EAAAA,YAAY,EAAE,CAToB;CAShB;CAClBC,EAAAA,OAAO,EAAE,EAVyB;CAUrB;CACbC,EAAAA,oBAAoB,EAAE,IAXY;CAWN;CAC5BC,EAAAA,kBAAkB,EAAE,IAZc;CAYT;CACzBC,EAAAA,yBAAyB,EAAE,CAbO;CAaJ;CAC9BC,EAAAA,uBAAuB,EAAE,CAdS;CAcN;CAC5BC,EAAAA,yBAAyB,EAAE,KAfO;CAeA;CAClCC,EAAAA,aAAa,EAAE,KAhBmB;CAgBZ;CACtBC,EAAAA,YAAY,EAAE,KAjBoB;CAiBb;CACrBC,EAAAA,SAAS,EAAE,KAlBuB;CAkBhB;CAClBC,EAAAA,QAAQ,EAAE,IAnBwB;CAmBlB;CAChBC,EAAAA,QAAQ,EAAE,IApBwB;CAoBlB;CAChBC,EAAAA,WAAW,EAAE;CACTC,IAAAA,UAAU,EAAE,KADH;CAETC,IAAAA,UAAU,EAAE,KAFH;CAGTC,IAAAA,IAAI,EAAE,KAHG;CAITC,IAAAA,KAAK,EAAE,KAJE;CAKTngB,IAAAA,MAAM,EAAE;CALC,GArBqB;CA4BlCogB,EAAAA,eAAe,EAAE,KA5BiB;CA4BV;CACxBC,EAAAA,UAAU,EAAE,KA7BsB;CA8BlCC,EAAAA,WAAW,EAAE,EA9BqB;CA8BjB;CACjBC,EAAAA,UAAU,EAAE,EA/BsB;CAgClCC,EAAAA,OAAO,EAAE,YAhCyB;CAiClCxuC,EAAAA,GAAG,EAAE,EAjC6B;CAiC1B;CACRyuC,EAAAA,MAAM,EAAE,CAlC0B;CAkCvB;CACX;CACAC,EAAAA,gBAAgB,EAAE,IApCgB;CAoCV;CACxBC,EAAAA,eAAe,EAAE,KArCiB;CAqCV;CACxBC,EAAAA,QAAQ,EAAE1C,oBAAoB,CAACxhC,KAtCG;CAuClCmkC,EAAAA,SAAS,EAAExC,UAAU,CAACC,GAvCY;CAuCP;CAC3BwC,EAAAA,MAAM,EAAE,KAxC0B;CAwCnB;CACfC,EAAAA,iBAAiB,EAAE,KAzCe;CAyCT;CACzBC,EAAAA,MAAM,EAAE,KA1C0B;CA0CnB;CACfC,EAAAA,YAAY,EAAE,KA3CoB;CA2Cb;CACrBC,EAAAA,QAAQ,EAAE,IA5CwB;CA4ClB;CAChBC,EAAAA,qBAAqB,EAAE,IA7CW;CA6CL;CAC7BxH,EAAAA,kBAAkB,EAAE,KA9Cc;CA8CR;CAC1ByH,EAAAA,wBAAwB,EAAE,KA/CQ;CA+CF;CAChCC,EAAAA,UAAU,EAAE7C,WAAW,CAACE,IAhDU;CAiDlC4C,EAAAA,gBAAgB,EAAE,KAjDgB;CAiDT;CACzBC,EAAAA,wBAAwB,EAAE,EAlDQ;;CAAA,CAA/B;CAsDA,MAAMC,eAAe,GAAG;CAC3B3nC,EAAAA,IAAI,EAAE,MADqB;CAE3B4nC,EAAAA,SAAS,EAAE,WAFgB;CAG3BxE,EAAAA,MAAM,EAAE,QAHmB;CAI3ByE,EAAAA,SAAS,EAAE,WAJgB;CAK3BC,EAAAA,SAAS,EAAE,WALgB;CAM3BC,EAAAA,IAAI,EAAE,MANqB;CAO3BjtC,EAAAA,MAAM,EAAE,QAPmB;CAQ3BktC,EAAAA,SAAS,EAAE,WARgB;CAS3BC,EAAAA,SAAS,EAAE,WATgB;CAU3BC,EAAAA,SAAS,EAAE;CAVgB,CAAxB;CAkBA,MAAMC,UAAU,GAAG;CACtB7B,EAAAA,KAAK,EAAE,CADe;CAEtB8B,EAAAA,KAAK,EAAE;CAFe,CAAnB;CAUA,MAAMC,gBAAgB,GAAG;CAC5BroC,EAAAA,IAAI,EAAE,MADsB;CAE5BlF,EAAAA,MAAM,EAAE,QAFoB;CAG5BwtC,EAAAA,WAAW,EAAE,aAHe;CAI5BC,EAAAA,WAAW,EAAE,aAJe;CAK5B/+B,EAAAA,KAAK,EAAE,OALqB;CAM5Bg/B,EAAAA,YAAY,EAAE;CANc,CAAzB;CAuKA,MAAMC,kBAAkB,GAAG;CAC9Bx5B,EAAAA,GAAG,EAAE,KADyB;CAE9By5B,EAAAA,KAAK,EAAE;CAFuB,CAA3B;;;CClRP;CACA;CACA;CACA;CACA;CACA,CAAC,YAAY;AAEb;CACA,CAAC,IAAI,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW,GAAG,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;CAC/G,CAAC,IAAI,UAAU,GAAoC,MAAM,CAAC,OAAO,CAAC;AAClE;CACA,CAAC,IAAI,EAAE,GAAG,CAAC,YAAY;CACvB,EAAE,IAAI,GAAG,CAAC;AACV;CACA,EAAE,IAAI,KAAK,GAAG;CACd,GAAG;CACH,IAAI,mBAAmB;CACvB,IAAI,gBAAgB;CACpB,IAAI,mBAAmB;CACvB,IAAI,mBAAmB;CACvB,IAAI,kBAAkB;CACtB,IAAI,iBAAiB;CACrB,IAAI;CACJ;CACA,GAAG;CACH,IAAI,yBAAyB;CAC7B,IAAI,sBAAsB;CAC1B,IAAI,yBAAyB;CAC7B,IAAI,yBAAyB;CAC7B,IAAI,wBAAwB;CAC5B,IAAI,uBAAuB;AAC3B;CACA,IAAI;CACJ;CACA,GAAG;CACH,IAAI,yBAAyB;CAC7B,IAAI,wBAAwB;CAC5B,IAAI,gCAAgC;CACpC,IAAI,wBAAwB;CAC5B,IAAI,wBAAwB;CAC5B,IAAI,uBAAuB;AAC3B;CACA,IAAI;CACJ,GAAG;CACH,IAAI,sBAAsB;CAC1B,IAAI,qBAAqB;CACzB,IAAI,sBAAsB;CAC1B,IAAI,sBAAsB;CAC1B,IAAI,qBAAqB;CACzB,IAAI,oBAAoB;CACxB,IAAI;CACJ,GAAG;CACH,IAAI,qBAAqB;CACzB,IAAI,kBAAkB;CACtB,IAAI,qBAAqB;CACzB,IAAI,qBAAqB;CACzB,IAAI,oBAAoB;CACxB,IAAI,mBAAmB;CACvB,IAAI;CACJ,GAAG,CAAC;AACJ;CACA,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;CACZ,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;CACvB,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf;CACA,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;CACrB,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;CAClB,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;CAClC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CACrC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;CAC/B,KAAK;CACL,IAAI,OAAO,GAAG,CAAC;CACf,IAAI;CACJ,GAAG;AACH;CACA,EAAE,OAAO,KAAK,CAAC;CACf,EAAE,GAAG,CAAC;AACN;CACA,CAAC,IAAI,YAAY,GAAG;CACpB,EAAE,MAAM,EAAE,EAAE,CAAC,gBAAgB;CAC7B,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe;CAC3B,EAAE,CAAC;AACH;CACA,CAAC,IAAI,UAAU,GAAG;CAClB,EAAE,OAAO,EAAE,UAAU,OAAO,EAAE,OAAO,EAAE;CACvC,GAAG,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE;CACjD,IAAI,IAAI,mBAAmB,GAAG,YAAY;CAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;CAC7C,KAAK,OAAO,EAAE,CAAC;CACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB;CACA,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;AAC3C;CACA,IAAI,OAAO,GAAG,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC;AAClD;CACA,IAAI,IAAI,aAAa,GAAG,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC;AAC/D;CACA,IAAI,IAAI,aAAa,YAAY,OAAO,EAAE;CAC1C,KAAK,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CAC3D,KAAK;CACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;CACjB,GAAG;CACH,EAAE,IAAI,EAAE,YAAY;CACpB,GAAG,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE;CACjD,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;CAC5B,KAAK,OAAO,EAAE,CAAC;CACf,KAAK,OAAO;CACZ,KAAK;AACL;CACA,IAAI,IAAI,gBAAgB,GAAG,YAAY;CACvC,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;CAC1C,KAAK,OAAO,EAAE,CAAC;CACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB;CACA,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AACxC;CACA,IAAI,IAAI,aAAa,GAAG,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;AACtD;CACA,IAAI,IAAI,aAAa,YAAY,OAAO,EAAE;CAC1C,KAAK,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CACxD,KAAK;CACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;CACjB,GAAG;CACH,EAAE,MAAM,EAAE,UAAU,OAAO,EAAE,OAAO,EAAE;CACtC,GAAG,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC3E,GAAG;CACH,EAAE,QAAQ,EAAE,UAAU,QAAQ,EAAE;CAChC,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;CAC/B,GAAG;CACH,EAAE,OAAO,EAAE,UAAU,QAAQ,EAAE;CAC/B,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;CAC9B,GAAG;CACH,EAAE,EAAE,EAAE,UAAU,KAAK,EAAE,QAAQ,EAAE;CACjC,GAAG,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;CACvC,GAAG,IAAI,SAAS,EAAE;CAClB,IAAI,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;CAC1D,IAAI;CACJ,GAAG;CACH,EAAE,GAAG,EAAE,UAAU,KAAK,EAAE,QAAQ,EAAE;CAClC,GAAG,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;CACvC,GAAG,IAAI,SAAS,EAAE;CAClB,IAAI,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;CAC7D,IAAI;CACJ,GAAG;CACH,EAAE,GAAG,EAAE,EAAE;CACT,EAAE,CAAC;AACH;CACA,CAAC,IAAI,CAAC,EAAE,EAAE;CACV,EAAE,IAAI,UAAU,EAAE;CAClB,GAAG,cAAc,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;CACvC,GAAG,MAAM;CACT,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;CAC1C,GAAG;AACH;CACA,EAAE,OAAO;CACT,EAAE;AACF;CACA,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE;CACrC,EAAE,YAAY,EAAE;CAChB,GAAG,GAAG,EAAE,YAAY;CACpB,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;CACnD,IAAI;CACJ,GAAG;CACH,EAAE,OAAO,EAAE;CACX,GAAG,UAAU,EAAE,IAAI;CACnB,GAAG,GAAG,EAAE,YAAY;CACpB,IAAI,OAAO,QAAQ,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;CAC1C,IAAI;CACJ,GAAG;CACH,EAAE,SAAS,EAAE;CACb,GAAG,UAAU,EAAE,IAAI;CACnB,GAAG,GAAG,EAAE,YAAY;CACpB;CACA,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;CACnD,IAAI;CACJ,GAAG;CACH,EAAE,CAAC,CAAC;AACJ;CACA,CAAC,IAAI,UAAU,EAAE;CACjB,EAAE,cAAc,GAAG,UAAU,CAAC;CAC9B,EAAE,MAAM;CACR,EAAE,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;CACjC,EAAE;CACF,CAAC,GAAG;;;;CCnFyB,CAAC,MAAM;CAChC,MAAI;CACA,QAAI,OAAOxuC,WAAP,KAAuB,QAAvB,IACG,OAAOA,WAAW,CAAC6J,WAAnB,KAAmC,UAD1C,EACsD;CAClD,YAAM/M,MAAM,GAAG,IAAIkD,WAAW,CAAC1G,MAAhB,CAAuB6C,UAAU,CAACsyC,EAAX,CAAc,GAAd,EAAmB,IAAnB,EAAyB,IAAzB,EAA+B,IAA/B,EAAqC,IAArC,EAA2C,IAA3C,EAAiD,IAAjD,EAAuD,IAAvD,CAAvB,CAAf;CACA,UAAI3xC,MAAM,YAAYkD,WAAW,CAAC1G,MAAlC,EACI,OAAO,IAAI0G,WAAW,CAAC0uC,QAAhB,CAAyB5xC,MAAzB,aAA4CkD,WAAW,CAAC0uC,QAA/D;CACP;CACJ,GAPD,CAOE,OAAOhnC,CAAP,EAAU;;CAEZ,SAAO,KAAP;CACH,CAX4B;CAqLtB,SAASinC,2BAAT,CAAqCC,IAArC,EAA2C;CAC9C,MAAIC,UAAU,GAAGD,IAAI,CAAC/tC,QAAL,CAAc,CAAd,EAAiB,CAAjB,CAAjB;CACA,MAAIiuC,WAAW,GAAG,OAAlB;;CACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,CAApB,EAAuBA,CAAC,EAAxB,EAA4B;CACxB,QAAI3F,CAAC,GAAGyF,UAAU,CAACE,CAAD,CAAV,CAAc3tC,QAAd,CAAuB,EAAvB,CAAR;;CACA,QAAIgoC,CAAC,CAAC1sC,MAAF,GAAW,CAAf,EAAkB;CACd0sC,MAAAA,CAAC,GAAG,MAAMA,CAAV;CACH;;CACD0F,IAAAA,WAAW,IAAI1F,CAAf;CACH;;CAED,SAAO;CACH4F,IAAAA,KAAK,EAAEF,WADJ;CAEHG,IAAAA,WAAW,EAAEL;CAFV,GAAP;CAIH;;CCnSD,IAAI,CAAC/+B,IAAI,CAACC,GAAV,EAAeD,IAAI,CAACC,GAAL,GAAW,YAAY;CAClC,SAAO,IAAID,IAAJ,GAAWiV,OAAX,EAAP;CACH,CAFc;;AAIfxrB,QAAM,CAAC2M,OAAP,GAAiB,YAAY;CACzB,MAAI/J,MAAM,GAAG,EAAb;CACA,MAAIgzC,eAAe,GAAG,EAAtB;CACA,MAAIC,eAAe,GAAG,EAAtB;;CACA,MAAI,kBAAkB3xC,IAAtB,EAA4B;CACxB2xC,IAAAA,eAAe,GAAG;CACdC,MAAAA,OAAO,EAAE,KADK;CAEdC,MAAAA,UAAU,EAAE,KAFE;CAGdC,MAAAA,eAAe,EAAE,IAHH;CAIdC,MAAAA,kBAAkB,EAAE,IAJN;CAKd9C,MAAAA,OAAO,EAAE,IAAI+C,YAAJ,CAAiB;CACtB1gC,QAAAA,MAAM,EAAE,UAAU2gC,UAAV,EAAsB;CAC1B,cAAI,CAACN,eAAe,CAACE,UAArB,EAAiC;CAC7B5C,YAAAA,SAAO,CAACiD,GAAR,CAAYtN,KAAZ,IAAqB3oC,OAAO,CAACC,GAAR,CAAY,+CAAZ,CAArB;CACAG,YAAAA,WAAW,CAAC;CACRC,cAAAA,GAAG,EAAE2zC,eAAe,CAACC,SADb;CAERvE,cAAAA,CAAC,EAAEsG,UAAU,CAACE,UAFN;CAGRvG,cAAAA,CAAC,EAAEqG,UAAU,CAACG;CAHN,aAAD,CAAX;CAKAT,YAAAA,eAAe,CAACE,UAAhB,GAA6B,IAA7B;CACAF,YAAAA,eAAe,CAACG,eAAhB,GAAkC,IAAIO,eAAJ,CAAoBJ,UAAU,CAACE,UAA/B,EAA2CF,UAAU,CAACG,WAAtD,CAAlC;CACAT,YAAAA,eAAe,CAACI,kBAAhB,GAAqCJ,eAAe,CAACG,eAAhB,CAAgCQ,UAAhC,CAA2C,IAA3C,CAArC;CACH;;CAEDX,UAAAA,eAAe,CAACI,kBAAhB,CAAmCQ,SAAnC,CAA6CN,UAA7C,EAAyD,CAAzD,EAA4D,CAA5D,EAA+DA,UAAU,CAACE,UAA1E,EAAsFF,UAAU,CAACG,WAAjG;CACA,cAAII,YAAY,GAAGb,eAAe,CAACG,eAAhB,CAAgCW,qBAAhC,EAAnB;CACAp2C,UAAAA,WAAW,CAAC;CACRC,YAAAA,GAAG,EAAE2zC,eAAe,CAACvE,MADb;CAERhtC,YAAAA,MAAM,EAAE8zC,YAFA;CAGRE,YAAAA,KAAK,EAAEzD,SAAO,CAACyD,KAHP;CAIRC,YAAAA,EAAE,EAAE;CAJI,WAAD,EAKR,CAACH,YAAD,CALQ,CAAX;CAOA3yC,UAAAA,UAAU,CAAC,YAAY;CACnB,gBAAIoyC,UAAU,CAACngC,KAAf,EAAsB;CAClBmgC,cAAAA,UAAU,CAACngC,KAAX;CACH,aAFD,MAEO;CACHmgC,cAAAA,UAAU,CAAC1F,OAAX;CACH;CACJ,WANS,EAMP,GANO,CAAV;CAQH,SA/BqB;CAgCtBxsC,QAAAA,KAAK,EAAE,UAAUA,KAAV,EAAiB;CACpB9D,UAAAA,OAAO,CAAC8D,KAAR,CAAcA,KAAd;CACH;CAlCqB,OAAjB,CALK;CAyCdqD,MAAAA,MAAM,EAAE,UAAUwvC,OAAV,EAAmBD,EAAnB,EAAuB;CAC3B,cAAME,QAAQ,GAAGD,OAAO,CAAC,CAAD,CAAP,IAAc,CAAd,KAAoB,CAArC;;CACA,YAAI,CAACjB,eAAe,CAACC,OAArB,EAA8B;CAC1B,cAAIiB,QAAQ,IAAID,OAAO,CAAC,CAAD,CAAP,KAAe,CAA/B,EAAkC;CAC9B,kBAAME,UAAU,GAAIF,OAAO,CAAC,CAAD,CAAP,GAAa,IAAjC;CACA3D,YAAAA,SAAO,CAAC8D,aAAR,CAAsBD,UAAtB;CACA,kBAAME,MAAM,GAAG7B,2BAA2B,CAACyB,OAAO,CAACvzC,KAAR,CAAc,CAAd,CAAD,CAA1C;CACAsyC,YAAAA,eAAe,CAAC1C,OAAhB,CAAwBgE,SAAxB,CAAkCD,MAAlC;CACArB,YAAAA,eAAe,CAACC,OAAhB,GAA0B,IAA1B;CACH;CACJ,SARD,MAQO;CACH,gBAAMsB,KAAK,GAAG,IAAIC,iBAAJ,CAAsB;CAChCl0C,YAAAA,IAAI,EAAE2zC,OAAO,CAACvzC,KAAR,CAAc,CAAd,CAD0B;CAEhC+S,YAAAA,SAAS,EAAEugC,EAFqB;CAGhCn1B,YAAAA,IAAI,EAAEq1B,QAAQ,GAAG9B,kBAAkB,CAACx5B,GAAtB,GAA4Bw5B,kBAAkB,CAACC;CAH7B,WAAtB,CAAd;CAKAW,UAAAA,eAAe,CAAC1C,OAAhB,CAAwB7rC,MAAxB,CAA+B8vC,KAA/B;CACH;CACJ,OA3Da;;CA4DdE,MAAAA,KAAK,GAAG;CACJzB,QAAAA,eAAe,CAACC,OAAhB,GAA0B,KAA1B;CACAD,QAAAA,eAAe,CAACE,UAAhB,GAA6B,KAA7B;CACAF,QAAAA,eAAe,CAACG,eAAhB,GAAkC,IAAlC;CACAH,QAAAA,eAAe,CAACI,kBAAhB,GAAqC,IAArC;CACH;;CAjEa,KAAlB;CAmEH;;CAED,MAAI9C,SAAO,GAAG;CACViD,IAAAA,GAAG,EAAE;CACDtN,MAAAA,KAAK,EAAEwI,sBAAsB,CAACxI,KAD7B;CAED8K,MAAAA,YAAY,EAAEtC,sBAAsB,CAACsC,YAFpC;CAGDH,MAAAA,MAAM,EAAEnC,sBAAsB,CAACmC,MAH9B;CAIDlC,MAAAA,WAAW,EAAED,sBAAsB,CAACC,WAJnC;CAKDjF,MAAAA,kBAAkB,EAAEgF,sBAAsB,CAAChF,kBAL1C;CAMDkF,MAAAA,gBAAgB,EAAEF,sBAAsB,CAACE;CANxC,KADK;CASVoC,IAAAA,YAAY,EAAE,YAAY;CACtB,aAAOT,SAAO,CAACiD,GAAR,CAAYxC,YAAZ,IAA4B,OAAO2C,eAAP,IAA0B,WAA7D;CACH,KAXS;CAYVgB,IAAAA,eAAe,EAAE,UAAUC,QAAV,EAAoBC,UAApB,EAAgC;CAC7Cl3C,MAAAA,WAAW,CAAC;CAACC,QAAAA,GAAG,EAAE2zC,eAAe,CAACG,SAAtB;CAAiCoD,QAAAA,UAAU,EAAED,UAA7C;CAAyDD,QAAAA,QAAQ,EAAEA;CAAnE,OAAD,CAAX;CACA,UAAIG,WAAW,GAAG,EAAlB;CACA,UAAIC,MAAM,GAAG,CAAb;;CACA,WAAKC,eAAL,GAAuB,UAAU10C,IAAV,EAAgB2F,GAAhB,EAAqB+tC,EAArB,EAAyB;CAC5C,YAAIiB,UAAU,GAAGhvC,GAAjB;CACA,YAAIivC,MAAM,GAAG,EAAb;CACA,YAAIvjC,KAAK,GAAG,CAAZ;;CACA,aAAK,IAAIwjC,OAAO,GAAG,CAAnB,EAAsBA,OAAO,GAAG,CAAhC,EAAmCA,OAAO,EAA1C,EAA8C;CAC1C,cAAI1gB,EAAE,GAAGt3B,OAAM,CAACqK,OAAP,CAAe,CAAClH,IAAI,IAAI,CAAT,IAAc60C,OAA7B,KAAyC,CAAlD;CACAD,UAAAA,MAAM,CAACC,OAAD,CAAN,GAAkBh4C,OAAM,CAACsK,OAAP,CAAe/C,QAAf,CAAwB+vB,EAAxB,EAA4BA,EAAE,GAAGwgB,UAAjC,CAAlB;CACH;;CACD,YAAIF,MAAJ,EAAY;CACR9uC,UAAAA,GAAG,GAAG,OAAO8uC,MAAb;;CACA,cAAIE,UAAU,IAAIhvC,GAAlB,EAAuB;CACnB6uC,YAAAA,WAAW,CAAC,CAAD,CAAX,GAAiB5sC,YAAY,CAACoqC,EAAb,CAAgB,GAAGS,eAAe,CAAC,CAAD,CAAlC,EAAuC,GAAGmC,MAAM,CAAC,CAAD,CAAN,CAAUxwC,QAAV,CAAmB,CAAnB,EAAsBuB,GAAtB,CAA1C,CAAjB;;CACA,gBAAI0uC,QAAQ,IAAI,CAAhB,EAAmB;CACfG,cAAAA,WAAW,CAAC,CAAD,CAAX,GAAiB5sC,YAAY,CAACoqC,EAAb,CAAgB,GAAGS,eAAe,CAAC,CAAD,CAAlC,EAAuC,GAAGmC,MAAM,CAAC,CAAD,CAAN,CAAUxwC,QAAV,CAAmB,CAAnB,EAAsBuB,GAAtB,CAA1C,CAAjB;CACH;;CACDvI,YAAAA,WAAW,CAAC;CACRC,cAAAA,GAAG,EAAE2zC,eAAe,CAACE,SADb;CAERzxC,cAAAA,MAAM,EAAE+0C,WAFA;CAGRd,cAAAA;CAHQ,aAAD,EAIRc,WAAW,CAAC3f,GAAZ,CAAgB7mB,CAAC,IAAIA,CAAC,CAACvO,MAAvB,CAJQ,CAAX;CAKA4R,YAAAA,KAAK,GAAG1L,GAAR;CACAgvC,YAAAA,UAAU,IAAIhvC,GAAd;CACH,WAZD,MAYO;CACH8uC,YAAAA,MAAM,IAAIE,UAAV;CACAlC,YAAAA,eAAe,CAAC,CAAD,CAAf,GAAqB7qC,YAAY,CAACoqC,EAAb,CAAgB,GAAGS,eAAe,CAAC,CAAD,CAAlC,EAAuC,GAAGmC,MAAM,CAAC,CAAD,CAAhD,CAArB;;CACA,gBAAIP,QAAQ,IAAI,CAAhB,EAAmB;CACf5B,cAAAA,eAAe,CAAC,CAAD,CAAf,GAAqB7qC,YAAY,CAACoqC,EAAb,CAAgB,GAAGS,eAAe,CAAC,CAAD,CAAlC,EAAuC,GAAGmC,MAAM,CAAC,CAAD,CAAhD,CAArB;CACH;;CACD;CACH;CACJ;;CACD,aAAKH,MAAM,GAAGE,UAAd,EAA0BF,MAAM,IAAI,IAApC,EAA0CA,MAAM,IAAI,IAApD,EAA0D;CACtDD,UAAAA,WAAW,CAAC,CAAD,CAAX,GAAiBI,MAAM,CAAC,CAAD,CAAN,CAAUx0C,KAAV,CAAgBiR,KAAhB,EAAuBA,KAAK,IAAI,IAAhC,CAAjB;;CACA,cAAIgjC,QAAQ,IAAI,CAAhB,EAAmB;CACfG,YAAAA,WAAW,CAAC,CAAD,CAAX,GAAiBI,MAAM,CAAC,CAAD,CAAN,CAAUx0C,KAAV,CAAgBiR,KAAK,GAAG,IAAxB,EAA8BA,KAA9B,CAAjB;CACH;;CACDjU,UAAAA,WAAW,CAAC;CACRC,YAAAA,GAAG,EAAE2zC,eAAe,CAACE,SADb;CAERzxC,YAAAA,MAAM,EAAE+0C,WAFA;CAGRd,YAAAA;CAHQ,WAAD,EAIRc,WAAW,CAAC3f,GAAZ,CAAgB7mB,CAAC,IAAIA,CAAC,CAACvO,MAAvB,CAJQ,CAAX;CAKH;;CACD,YAAIg1C,MAAJ,EAAY;CACRhC,UAAAA,eAAe,CAAC,CAAD,CAAf,GAAqBmC,MAAM,CAAC,CAAD,CAAN,CAAUx0C,KAAV,CAAgBiR,KAAhB,CAArB;;CACA,cAAIgjC,QAAQ,IAAI,CAAhB,EAAmB;CACf5B,YAAAA,eAAe,CAAC,CAAD,CAAf,GAAqBmC,MAAM,CAAC,CAAD,CAAN,CAAUx0C,KAAV,CAAgBiR,KAAhB,CAArB;CACH;CACJ;CACJ,OAhDD;CAiDH,KAjES;CAkEVyiC,IAAAA,aAAa,EAAE,UAAU9xB,IAAV,EAAgB;CAC3B5kB,MAAAA,WAAW,CAAC;CAACC,QAAAA,GAAG,EAAE2zC,eAAe,CAACM,SAAtB;CAAiCtvB,QAAAA;CAAjC,OAAD,CAAX;CACH,KApES;CAqEV8yB,IAAAA,aAAa,EAAE,UAAU9yB,IAAV,EAAgB;CAC3B5kB,MAAAA,WAAW,CAAC;CAACC,QAAAA,GAAG,EAAE2zC,eAAe,CAACK,SAAtB;CAAiCrvB,QAAAA;CAAjC,OAAD,CAAX;CACH,KAvES;CAwEV+yB,IAAAA,YAAY,EAAE,UAAUrI,CAAV,EAAaC,CAAb,EAAgB;CAC1BvvC,MAAAA,WAAW,CAAC;CAACC,QAAAA,GAAG,EAAE2zC,eAAe,CAACC,SAAtB;CAAiCvE,QAAAA,CAAC,EAAEA,CAApC;CAAuCC,QAAAA,CAAC,EAAEA;CAA1C,OAAD,CAAX;CACA,UAAI9lC,IAAI,GAAG6lC,CAAC,GAAGC,CAAf;CACA,UAAIqI,KAAK,GAAGnuC,IAAI,IAAI,CAApB;;CACA,UAAImpC,SAAO,CAACS,YAAR,EAAJ,EAA4B;CACxB,aAAKoC,eAAL,GAAuB,IAAIO,eAAJ,CAAoB1G,CAApB,EAAuBC,CAAvB,CAAvB;CACA,aAAKsI,iBAAL,GAAyB,KAAKpC,eAAL,CAAqBQ,UAArB,CAAgC,OAAhC,CAAzB;CACA,aAAK6B,QAAL,GAAgBC,WAAW,CAAC,KAAKF,iBAAN,EAAyBjF,SAAO,CAACiD,GAAR,CAAY9J,kBAArC,CAA3B;;CACA,aAAKiM,IAAL,GAAY,UAAU1B,EAAV,EAAczlC,CAAd,EAAiB3I,CAAjB,EAAoB2zB,CAApB,EAAuB;CAC/B,gBAAMoc,KAAK,GAAGx4C,OAAM,CAACkI,MAAP,CAAcX,QAAd,CAAuB6J,CAAvB,EAA0BA,CAAC,GAAGpH,IAA9B,CAAd;CACA,gBAAMyuC,KAAK,GAAGz4C,OAAM,CAACkI,MAAP,CAAcX,QAAd,CAAuBkB,CAAvB,EAA0BA,CAAC,GAAG0vC,KAA9B,CAAd;CACA,gBAAMO,KAAK,GAAG14C,OAAM,CAACkI,MAAP,CAAcX,QAAd,CAAuB60B,CAAvB,EAA0BA,CAAC,GAAI+b,KAA/B,CAAd,CAH+B;CAK/B;CACA;CACA;;CAEA,eAAKE,QAAL,CAAczI,MAAd,CAAqBC,CAArB,EAAwBC,CAAxB,EAA2B0I,KAA3B,EAAkCC,KAAlC,EAAyCC,KAAzC;CACA,cAAIhC,YAAY,GAAG,KAAKV,eAAL,CAAqBW,qBAArB,EAAnB;CACAp2C,UAAAA,WAAW,CAAC;CACRC,YAAAA,GAAG,EAAE2zC,eAAe,CAACvE,MADb;CAERhtC,YAAAA,MAAM,EAAE8zC,YAFA;CAGRE,YAAAA,KAAK,EAAE,KAAKA,KAHJ;CAIRC,YAAAA;CAJQ,WAAD,EAKR,CAACH,YAAD,CALQ,CAAX;CAMH,SAjBD;CAkBH,OAtBD,MAsBO;CACH,aAAK6B,IAAL,GAAY,UAAU1B,EAAV,EAAczlC,CAAd,EAAiB3I,CAAjB,EAAoB2zB,CAApB,EAAuB;CAC/B,gBAAMoc,KAAK,GAAG31C,UAAU,CAACuR,IAAX,CAAgBpU,OAAM,CAACkI,MAAP,CAAcX,QAAd,CAAuB6J,CAAvB,EAA0BA,CAAC,GAAGpH,IAA9B,CAAhB,CAAd;CACA,gBAAMyuC,KAAK,GAAG51C,UAAU,CAACuR,IAAX,CAAgBpU,OAAM,CAACkI,MAAP,CAAcX,QAAd,CAAuBkB,CAAvB,EAA0BA,CAAC,GAAG0vC,KAA9B,CAAhB,CAAd;CACA,gBAAMO,KAAK,GAAG71C,UAAU,CAACuR,IAAX,CAAgBpU,OAAM,CAACkI,MAAP,CAAcX,QAAd,CAAuB60B,CAAvB,EAA0BA,CAAC,GAAI+b,KAA/B,CAAhB,CAAd,CAH+B;CAK/B;CACA;CACA;;CACA,gBAAMR,WAAW,GAAG,CAACa,KAAD,EAAQC,KAAR,EAAeC,KAAf,CAApB;CACAn4C,UAAAA,WAAW,CAAC;CACRC,YAAAA,GAAG,EAAE2zC,eAAe,CAACvE,MADb;CAERp6B,YAAAA,MAAM,EAAEmiC,WAFA;CAGRf,YAAAA,KAAK,EAAE,KAAKA,KAHJ;CAIRC,YAAAA;CAJQ,WAAD,EAKRc,WAAW,CAAC3f,GAAZ,CAAgB7mB,CAAC,IAAIA,CAAC,CAACvO,MAAvB,CALQ,CAAX;CAMH,SAfD;CAgBH;CACJ,KApHS;CAqHV+1C,IAAAA,QAAQ,EAAE,UAAUriC,SAAV,EAAqB;CAC3B,UAAI,CAACA,SAAL,EAAgB;CACZ,eAAO,CAAC,CAAR;CACH;;CACD,UAAI,CAAC,KAAKsiC,cAAV,EAA0B;CACtB,aAAKA,cAAL,GAAsBtiC,SAAtB;CACA,aAAKuiC,cAAL,GAAsBtiC,IAAI,CAACC,GAAL,EAAtB;CACA,aAAKogC,KAAL,GAAa,CAAC,CAAd;CACH,OAJD,MAIO;CAEH,YAAItgC,SAAJ,EAAe;CACX,gBAAMwiC,cAAc,GAAIviC,IAAI,CAACC,GAAL,KAAa,KAAKqiC,cAA1C;CACA,gBAAME,aAAa,GAAIziC,SAAS,GAAG,KAAKsiC,cAAxC;;CACA,cAAIE,cAAc,IAAIC,aAAtB,EAAqC;CACjC,iBAAKnC,KAAL,GAAakC,cAAc,GAAGC,aAA9B;CACH,WAFD,MAEO;CACH,iBAAKnC,KAAL,GAAamC,aAAa,GAAGD,cAA7B;CACH;CACJ;CACJ;;CACD,aAAO,KAAKlC,KAAZ;CACH,KA1IS;CA2IVoC,IAAAA,UAAU,EAAE,YAAY;CACpB,WAAKJ,cAAL,GAAsB,IAAtB;CACA,WAAKC,cAAL,GAAsB,IAAtB;CACA,WAAKjC,KAAL,GAAa,CAAC,CAAd;CACH,KA/IS;CAiJVpqC,IAAAA,IAAI,EAAE,YAAY;CACd2mC,MAAAA,SAAO,CAACiD,GAAR,CAAYtN,KAAZ,IAAqB3oC,OAAO,CAACC,GAAR,CAAY,mBAAZ,CAArB;;CACA,YAAM64C,SAAS,GAAI91C,IAAD,IAAU;CACxB;CACA,YAAIgwC,SAAO,CAACiD,GAAR,CAAY3C,MAAZ,IAAsBN,SAAO,CAACS,YAAR,EAAtB,IAAgDzwC,IAAI,CAACue,IAAL,KAAcizB,UAAU,CAACC,KAAzE,IAAkFiB,eAAe,CAACvuC,MAAtG,EAA8G;CAC1GuuC,UAAAA,eAAe,CAACvuC,MAAhB,CAAuBnE,IAAI,CAAC2zC,OAA5B,EAAqC3zC,IAAI,CAAC0zC,EAA1C;CACH,SAFD,MAEO;CACH;CACA1zC,UAAAA,IAAI,CAACgwC,OAAL,CAAa7rC,MAAb,CAAoBnE,IAAI,CAAC2zC,OAAzB,EAAkC3zC,IAAI,CAAC0zC,EAAvC;CACH;CACJ,OARD;;CASA,YAAMqC,IAAI,GAAG,MAAM;CACf,YAAIt2C,MAAM,CAACQ,MAAX,EAAmB;CACf,cAAI,KAAK+1C,QAAT,EAAmB;CACf;CACAh2C,YAAAA,IAAI,GAAGP,MAAM,CAACwJ,KAAP,EAAP,CAFe;;CAIf,gBAAIjJ,IAAI,CAACue,IAAL,KAAcizB,UAAU,CAAC7B,KAAzB,IAAkC3vC,IAAI,CAAC2zC,OAAL,CAAa,CAAb,MAAoB,CAA1D,EAA6D;CACzDmC,cAAAA,SAAS,CAAC91C,IAAD,CAAT;CACH;;CACD,mBAAO,CAACA,IAAI,CAAC4zC,QAAN,IAAkBn0C,MAAM,CAACQ,MAAhC,EAAwC;CACpC;CACAD,cAAAA,IAAI,GAAGP,MAAM,CAACwJ,KAAP,EAAP,CAFoC;;CAIpC,kBAAIjJ,IAAI,CAACue,IAAL,KAAcizB,UAAU,CAAC7B,KAAzB,IAAkC3vC,IAAI,CAAC2zC,OAAL,CAAa,CAAb,MAAoB,CAA1D,EAA6D;CACzDmC,gBAAAA,SAAS,CAAC91C,IAAD,CAAT;CACH;CACJ;;CACD,gBAAIA,IAAI,CAAC4zC,QAAT,EAAmB;CACf,mBAAKoC,QAAL,GAAgB,KAAhB;;CACAF,cAAAA,SAAS,CAAC91C,IAAD,CAAT;CACH;CACJ,WAnBD,MAmBO;CACH,gBAAIA,IAAI,GAAGP,MAAM,CAAC,CAAD,CAAjB;;CACA,gBAAI,KAAK+1C,QAAL,CAAcx1C,IAAI,CAAC0zC,EAAnB,MAA2B,CAAC,CAAhC,EAAmC;CAC/B;CACAj0C,cAAAA,MAAM,CAACwJ,KAAP;;CACA6sC,cAAAA,SAAS,CAAC91C,IAAD,CAAT;CACH,aAJD,MAIO,IAAI,KAAKyzC,KAAL,GAAazD,SAAO,CAACiD,GAAR,CAAY7E,WAAZ,GAA0B4B,SAAO,CAACiD,GAAR,CAAY5E,gBAAvD,EAAyE;CAC5E;CACA,mBAAKwH,UAAL;CACA,mBAAKG,QAAL,GAAgB,IAAhB;CACH,aAJM,MAIA;CACH,qBAAOv2C,MAAM,CAACQ,MAAd,EAAsB;CAClBD,gBAAAA,IAAI,GAAGP,MAAM,CAAC,CAAD,CAAb;;CACA,oBAAI,KAAK+1C,QAAL,CAAcx1C,IAAI,CAAC0zC,EAAnB,IAAyB1D,SAAO,CAACiD,GAAR,CAAY7E,WAAzC,EAAsD;CAClD;CACA3uC,kBAAAA,MAAM,CAACwJ,KAAP;;CACA6sC,kBAAAA,SAAS,CAAC91C,IAAD,CAAT;CACH,iBAJD,MAIO;CACH;CACA;CACH;CACJ;CACJ;CACJ;CACJ;CAGJ,OAhDD;;CAiDA,WAAKi2C,MAAL,GAActrC,WAAW,CAACorC,IAAD,EAAO,EAAP,CAAzB;CACH,KA9MS;CA+MVljC,IAAAA,KAAK,EAAE,YAAY;CACfm9B,MAAAA,SAAO,CAACiD,GAAR,CAAYtN,KAAZ,IAAqB3oC,OAAO,CAACC,GAAR,CAAY,qBAAZ,CAArB;CACA2N,MAAAA,aAAa,CAAC,KAAKqrC,MAAN,CAAb;CACA,WAAKA,MAAL,GAAc,IAAd;CACAC,MAAAA,YAAY,CAACC,KAAb,IAAsBD,YAAY,CAACC,KAAb,EAAtB;CACAC,MAAAA,YAAY,CAACD,KAAb,IAAsBC,YAAY,CAACD,KAAb,EAAtB;CACAzD,MAAAA,eAAe,CAACyB,KAAhB,IAAyBzB,eAAe,CAACyB,KAAhB,EAAzB;CACA,WAAKsB,cAAL,GAAsB,IAAtB;CACA,WAAKC,cAAL,GAAsB,IAAtB;CACA,WAAKjC,KAAL,GAAa,CAAC,CAAd;CACA,WAAKuC,QAAL,GAAgB,KAAhB;;CAEA,UAAI,KAAKd,QAAT,EAAmB;CACf,aAAKA,QAAL,CAAc5H,OAAd;CACA,aAAKuF,eAAL,GAAuB,IAAvB;CACA,aAAKoC,iBAAL,GAAyB,IAAzB;CACA,aAAKnC,kBAAL,GAA0B,IAA1B;CACH;;CACDrzC,MAAAA,MAAM,GAAG,EAAT;CACAgzC,MAAAA,eAAe,GAAG,EAAlB;CACA,aAAO,KAAKiC,eAAZ;CACA,aAAO,KAAKU,IAAZ;CACH,KArOS;CAsOViB,IAAAA,UAAU,EAAE,UAAUvL,UAAV,EAAsB7e,OAAtB,EAA+B;CACvC;CACA,UAAIA,OAAO,CAAC1N,IAAR,KAAiBizB,UAAU,CAAC7B,KAAhC,EAAuC;CACnClwC,QAAAA,MAAM,CAACmS,IAAP,CAAY;CACR8hC,UAAAA,EAAE,EAAEznB,OAAO,CAACynB,EADJ;CAERC,UAAAA,OAAO,EAAE7I,UAFD;CAGRkF,UAAAA,OAAO,EAAEkG,YAHD;CAIR33B,UAAAA,IAAI,EAAEizB,UAAU,CAAC7B;CAJT,SAAZ;CAMH,OAPD,MAOO,IAAI1jB,OAAO,CAAC1N,IAAR,KAAiBizB,UAAU,CAACC,KAAhC,EAAuC;CAC1ChyC,QAAAA,MAAM,CAACmS,IAAP,CAAY;CACR8hC,UAAAA,EAAE,EAAEznB,OAAO,CAACynB,EADJ;CAERC,UAAAA,OAAO,EAAE7I,UAFD;CAGRkF,UAAAA,OAAO,EAAEoG,YAHD;CAIR73B,UAAAA,IAAI,EAAEizB,UAAU,CAACC,KAJT;CAKRmC,UAAAA,QAAQ,EAAE3nB,OAAO,CAAC2nB;CALV,SAAZ;CAOH;CACJ;CAxPS,GAAd;CA0PA,MAAIsC,YAAY,GAAG,IAAIr5C,OAAM,CAACy5C,YAAX,CAAwBtG,SAAxB,CAAnB;CACA,MAAIoG,YAAY,GAAG,IAAIv5C,OAAM,CAACk2C,YAAX,CAAwB/C,SAAxB,CAAnB;CACA5yC,EAAAA,WAAW,CAAC;CAACC,IAAAA,GAAG,EAAEq0C,gBAAgB,CAACroC;CAAvB,GAAD,CAAX;;CACAtI,EAAAA,IAAI,CAACw1C,SAAL,GAAiB,UAAUj9B,KAAV,EAAiB;CAC9B,QAAInW,GAAG,GAAGmW,KAAK,CAACtZ,IAAhB;;CACA,YAAQmD,GAAG,CAAC9F,GAAZ;CACI,WAAKq0C,gBAAgB,CAACroC,IAAtB;CACI,YAAI;CACA2mC,UAAAA,SAAO,CAACiD,GAAR,GAAcz1C,MAAM,CAACC,MAAP,CAAcuyC,SAAO,CAACiD,GAAtB,EAA2BuD,IAAI,CAACC,KAAL,CAAWtzC,GAAG,CAAC8vC,GAAf,CAA3B,CAAd;CACH,SAFD,CAEE,OAAOhoC,CAAP,EAAU;;CAGZirC,QAAAA,YAAY,CAACQ,WAAb,GAA2BvzC,GAAG,CAACoxC,UAA/B;CACAvE,QAAAA,SAAO,CAAC3mC,IAAR;CACA;;CACJ,WAAKqoC,gBAAgB,CAACvtC,MAAtB;CACI6rC,QAAAA,SAAO,CAACqG,UAAR,CAAmBlzC,GAAG,CAAC1D,MAAvB,EAA+B0D,GAAG,CAAC8oB,OAAnC;CACA;;CACJ,WAAKylB,gBAAgB,CAACC,WAAtB;CACIuE,QAAAA,YAAY,CAAC/xC,MAAb,CAAoBhB,GAAG,CAAC1D,MAAxB,EAAgC0D,GAAG,CAACuwC,EAApC;CACA;;CACJ,WAAKhC,gBAAgB,CAACE,WAAtB;CACIwE,QAAAA,YAAY,CAACjyC,MAAb,CAAoBhB,GAAG,CAAC1D,MAAxB,EAAgC0D,GAAG,CAACuwC,EAApC;CACA;;CACJ,WAAKhC,gBAAgB,CAAC7+B,KAAtB;CACIm9B,QAAAA,SAAO,CAACn9B,KAAR;CACA;;CACJ,WAAK6+B,gBAAgB,CAACG,YAAtB;CACI7B,QAAAA,SAAO,CAACiD,GAAR,CAAY9vC,GAAG,CAACmV,GAAhB,IAAuBnV,GAAG,CAACmL,KAA3B;CACA;CAxBR;CA0BH,GA5BD;CA6BH,CApWD;;;;;;"} \ No newline at end of file diff --git a/demo/public/dist.zip b/demo/public/dist.zip index faf6fca823fb87db4ee5ad0d423e1f61cd4daee7..773dfb626d97284af152589e308617102285f81a 100644 GIT binary patch delta 74373 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 delta 74375 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 1 && arguments[1] !== undefined ? arguments[1] : {}; return new Promise((resolve, reject) => { + if (this.isDestroyed()) { + reject('Jessibuca is destroyed'); + return; + } + if (!url && !this._opt.url) { this.emit(EVENTS.error, EVENTS_ERROR.playError); reject('play url is empty'); @@ -13432,7 +13444,18 @@ }); }); } else { + this.debug.log('Jessibuca', '_play ant waiting decoderWorkerInit'); + + this._checkInitDecoderWorkerTimeout(); + this.player.once(EVENTS.decoderWorkerInit, () => { + this._clearInitDecoderWorkerTimeout(); + + if (this.isDestroyed()) { + return; + } + + this.debug.log('Jessibuca', '_play decoderWorkerInit success and play'); this.player.play(url, options).then(() => { resolve(); }).catch(e => { @@ -13625,6 +13648,29 @@ return result; } + _clearInitDecoderWorkerTimeout() { + if (this.initDecoderWorkerTimeout) { + clearTimeout(this.initDecoderWorkerTimeout); + this.initDecoderWorkerTimeout = null; + } + } + + _checkInitDecoderWorkerTimeout() { + this._clearInitDecoderWorkerTimeout(); + + this.initDecoderWorkerTimeout = setTimeout(() => { + this._handleInitDecoderWorkerTimeout(); + }, this._opt.initDecoderWorkerTimeout * 1000); + } + + _handleInitDecoderWorkerTimeout() { + this.pause().then(() => { + this.debug.log('Jessibuca', 'init decoder worker timeout and pause play'); + }).catch(e => { + this.debug.warn('Jessibuca', 'init decoder worker timeout and pause play error', e); + }); + } + } _defineProperty(Jessibuca, "ERROR", EVENTS_ERROR); diff --git a/demo/public/jessibuca.js.map b/demo/public/jessibuca.js.map index 31a5cd06..091dd626 100644 --- a/demo/public/jessibuca.js.map +++ b/demo/public/jessibuca.js.map @@ -1 +1 @@ -{"version":3,"file":"jessibuca.js","sources":["../../node_modules/@babel/runtime/helpers/defineProperty.js","../../src/constant/index.js","../../src/utils/debug.js","../../src/utils/events.js","../../src/player/property.js","../../node_modules/screenfull/dist/screenfull.js","../../src/utils/index.js","../../src/player/events.js","../../src/utils/emitter.js","../../src/utils/webgl.js","../../src/video/commonLoader.js","../../src/utils/file-save.js","../../src/video/canvasLoader.js","../../src/video/videoLoader.js","../../src/video/index.js","../../src/audio/audioContextLoader.js","../../src/audio/index.js","../../src/stream/fetchLoader.js","../../src/stream/websocketLoader.js","../../src/stream/index.js","../../node_modules/recordrtc/RecordRTC.js","../../src/recorder/recordRTCLoader.js","../../src/recorder/index.js","../../src/worker/index.js","../../src/demux/commonLoader.js","../../src/demux/flvLoader.js","../../src/demux/m7sLoader.js","../../src/demux/index.js","../../src/utils/exp-golomb.js","../../src/utils/h264-sps-parser.js","../../src/utils/h264.js","../../src/decoder/webcodecs.js","../../src/control/icons.js","../../src/control/template.js","../../src/control/observer.js","../../src/control/property.js","../../src/control/events.js","../../node_modules/style-inject/dist/style-inject.es.js","../../src/control/hotkey.js","../../src/control/index.js","../../src/player/observer.js","../../src/remux/fmp4-generator.js","../../src/decoder/mediaSource.js","../../src/utils/noSleep.js","../../src/player/index.js","../../src/jessibuca.js"],"sourcesContent":["function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// 播放协议\nexport const PLAYER_PLAY_PROTOCOL = {\n websocket: 0,\n fetch: 1,\n webrtc: 2,\n}\n\nexport const DEMUX_TYPE = {\n flv: 'flv',\n m7s: 'm7s'\n}\n\nexport const FILE_SUFFIX = {\n mp4: 'mp4',\n webm: 'webm'\n};\n\nexport const MEDIA_SOURCE_UPDATE_END_TIMEOUT = 10 * 1000\n\nexport const CONTAINER_DATA_SET_KEY = 'jessibuca'\n\nexport const VERSION = '__VERSION__'\n\n\n// default player options\nexport const DEFAULT_PLAYER_OPTIONS = {\n videoBuffer: 1000, //1000ms 1 second\n videoBufferDelay: 1000,// 1000ms\n isResize: true,\n isFullResize: false, //\n isFlv: false,\n debug: false,\n hotKey: false, // 快捷键\n loadingTimeout: 10, // loading timeout\n heartTimeout: 5, // heart timeout\n timeout: 10, // second\n loadingTimeoutReplay: true, // loading timeout replay. default is true\n heartTimeoutReplay: true,// heart timeout replay.\n loadingTimeoutReplayTimes: 3, // loading timeout replay fail times\n heartTimeoutReplayTimes: 3, // heart timeout replay fail times\n supportDblclickFullscreen: false, // support double click toggle fullscreen\n showBandwidth: false, // show band width\n keepScreenOn: false, //\n isNotMute: false, //\n hasAudio: true, // has audio\n hasVideo: true, // has video\n operateBtns: {\n fullscreen: false,\n screenshot: false,\n play: false,\n audio: false,\n record: false,\n },\n controlAutoHide: false, // control auto hide\n hasControl: false,\n loadingText: '', // loading Text\n background: '',\n decoder: 'decoder.js',\n url: '',// play url\n rotate: 0, //\n // text: '',\n forceNoOffscreen: true, // 默认是不采用\n hiddenAutoPause: false, //\n protocol: PLAYER_PLAY_PROTOCOL.fetch,\n demuxType: DEMUX_TYPE.flv, // demux type\n useWCS: false, //\n wcsUseVideoRender: true,// 默认设置为true\n useMSE: false, //\n useOffscreen: false, //\n autoWasm: true, // 自动降级到 wasm 模式\n wasmDecodeErrorReplay: true, // 解码失败重新播放。\n openWebglAlignment: false,// https://github.com/langhuihui/jessibuca/issues/152\n wasmDecodeAudioSyncVideo: false,// wasm 解码之后音视频同步\n recordType: FILE_SUFFIX.webm,\n useWebFullScreen: false, // use web full screen\n}\n\n\nexport const WORKER_CMD_TYPE = {\n init: 'init',\n initVideo: 'initVideo',\n render: 'render',\n playAudio: 'playAudio',\n initAudio: 'initAudio',\n kBps: 'kBps',\n decode: 'decode',\n audioCode: 'audioCode',\n videoCode: 'videoCode',\n wasmError: 'wasmError'\n}\n\nexport const WASM_ERROR = {\n invalidNalUnitSize: 'Invalid NAL unit size',\n // errorSplittingTheInputIntoNALUnits: 'Error splitting the input into NAL units'\n}\n\nexport const MEDIA_TYPE = {\n audio: 1,\n video: 2\n}\n\nexport const FLV_MEDIA_TYPE = {\n audio: 8,\n video: 9\n}\n\nexport const WORKER_SEND_TYPE = {\n init: 'init',\n decode: 'decode',\n audioDecode: 'audioDecode',\n videoDecode: 'videoDecode',\n close: 'close',\n updateConfig: 'updateConfig'\n}\n\n\n//\nexport const EVENTS = {\n fullscreen: 'fullscreen$2',\n webFullscreen: 'webFullscreen',\n decoderWorkerInit: 'decoderWorkerInit',\n play: 'play',\n playing: 'playing',\n pause: 'pause',\n mute: 'mute',\n load: 'load',\n loading: 'loading',\n videoInfo: 'videoInfo',\n timeUpdate: 'timeUpdate',\n audioInfo: \"audioInfo\",\n log: 'log',\n error: \"error\",\n kBps: 'kBps',\n timeout: 'timeout',\n delayTimeout: 'delayTimeout',\n loadingTimeout: 'loadingTimeout',\n stats: 'stats',\n performance: \"performance\",\n record: 'record',\n recording: 'recording',\n recordingTimestamp: 'recordingTimestamp',\n recordStart: 'recordStart',\n recordEnd: 'recordEnd',\n recordCreateError: 'recordCreateError',\n buffer: 'buffer',\n videoFrame: 'videoFrame',\n start: 'start',\n metadata: 'metadata',\n resize: 'resize',\n streamEnd: 'streamEnd',\n streamSuccess: 'streamSuccess',\n streamMessage: 'streamMessage',\n streamError: 'streamError',\n volumechange: 'volumechange',\n volume: 'volume',\n destroy: 'destroy',\n mseSourceOpen: 'mseSourceOpen',\n mseSourceClose: 'mseSourceClose',\n mseSourceBufferError: 'mseSourceBufferError',\n mseSourceBufferBusy: 'mseSourceBufferBusy',\n mseSourceBufferFull: 'mseSourceBufferFull',\n videoWaiting: 'videoWaiting',\n videoTimeUpdate: 'videoTimeUpdate',\n videoSyncAudio: 'videoSyncAudio',\n playToRenderTimes: 'playToRenderTimes'\n}\n\n\nexport const JESSIBUCA_EVENTS = {\n load: EVENTS.load,\n timeUpdate: EVENTS.timeUpdate,\n videoInfo: EVENTS.videoInfo,\n audioInfo: EVENTS.audioInfo,\n error: EVENTS.error,\n kBps: EVENTS.kBps,\n log: EVENTS.log,\n start: EVENTS.start,\n timeout: EVENTS.timeout,\n loadingTimeout: EVENTS.loadingTimeout,\n delayTimeout: EVENTS.delayTimeout,\n fullscreen: 'fullscreen',\n webFullscreen: EVENTS.webFullscreen,\n play: EVENTS.play,\n pause: EVENTS.pause,\n mute: EVENTS.mute,\n stats: EVENTS.stats,\n volumechange: EVENTS.volumechange,\n performance: EVENTS.performance,\n recordingTimestamp: EVENTS.recordingTimestamp,\n recordStart: EVENTS.recordStart,\n recordEnd: EVENTS.recordEnd,\n playToRenderTimes: EVENTS.playToRenderTimes,\n volume: EVENTS.volume\n}\n\nexport const EVENTS_ERROR = {\n playError: 'playIsNotPauseOrUrlIsNull',\n fetchError: \"fetchError\",\n websocketError: 'websocketError',\n webcodecsH265NotSupport: 'webcodecsH265NotSupport',\n webcodecsConfigureError:'webcodecsConfigureError',\n webcodecsDecodeError: 'webcodecsDecodeError',\n webcodecsWidthOrHeightChange: 'webcodecsWidthOrHeightChange',\n mediaSourceH265NotSupport: 'mediaSourceH265NotSupport',\n mediaSourceFull: EVENTS.mseSourceBufferFull,\n mseSourceBufferError: EVENTS.mseSourceBufferError,\n mediaSourceAppendBufferError: 'mediaSourceAppendBufferError',\n mediaSourceBufferListLarge: 'mediaSourceBufferListLarge',\n mediaSourceAppendBufferEndTimeout: 'mediaSourceAppendBufferEndTimeout',\n wasmDecodeError: 'wasmDecodeError',\n webglAlignmentError: 'webglAlignmentError'\n}\n\n\nexport const WEBSOCKET_STATUS = {\n notConnect: 'notConnect',\n open: 'open',\n close: 'close',\n error: 'error'\n}\n\nexport const BUFFER_STATUS = {\n empty: 'empty',\n buffering: 'buffering',\n full: 'full'\n}\n\n\nexport const SCREENSHOT_TYPE = {\n download: 'download',\n base64: 'base64',\n blob: 'blob'\n}\n\n\nexport const VIDEO_ENC_TYPE = {\n 7: 'H264(AVC)', //\n 12: 'H265(HEVC)' //\n}\n\nexport const VIDEO_ENC_CODE = {\n h264: 7,\n h265: 12\n}\n\n\nexport const AUDIO_ENC_TYPE = {\n 10: 'AAC',\n 7: 'ALAW',\n 8: 'MULAW'\n}\n\nexport const H265_NAL_TYPE = {\n vps: 32,\n sps: 33,\n pps: 34\n}\n\nexport const CONTROL_HEIGHT = 38\n\nexport const SCALE_MODE_TYPE = {\n full: 0, // 视频画面完全填充canvas区域,画面会被拉伸\n auto: 1, // 视频画面做等比缩放后,高或宽对齐canvas区域,画面不被拉伸,但有黑边\n fullAuto: 2 // 视频画面做等比缩放后,完全填充canvas区域,画面不被拉伸,没有黑边,但画面显示不全\n}\n\n\nexport const CANVAS_RENDER_TYPE = {\n webcodecs: 'webcodecs',\n webgl: 'webgl',\n offscreen: 'offscreen'\n}\n\nexport const ENCODED_VIDEO_TYPE = {\n key: 'key',\n delta: 'delta'\n}\n\n\nexport const MP4_CODECS = {\n avc: 'video/mp4; codecs=\"avc1.64002A\"',\n hev: 'video/mp4; codecs=\"hev1.1.6.L123.b0\"',\n}\n\n\nexport const MEDIA_SOURCE_STATE = {\n ended: 'ended',\n open: 'open',\n closed: 'closed'\n}\n\n\n// frag duration\nexport const FRAG_DURATION = Math.ceil(1000 / 25)\n\n\nexport const AUDIO_SYNC_VIDEO_DIFF = 1000;\n\n\nexport const HOT_KEY = {\n esc: 27, //\n arrowUp: 38, //\n arrowDown: 40, //\n}\nexport const WCS_ERROR = {\n keyframeIsRequiredError: 'A key frame is required after configure() or flush()',\n canNotDecodeClosedCodec: \"Cannot call 'decode' on a closed codec\"\n}\n\n\nexport const FETCH_ERROR = {\n abortError1: 'The user aborted a request',\n abortError2: 'AbortError',\n abort: 'AbortError'\n}\n\nexport const FRAME_HEADER_EX = 0x80\n\n\nexport const PACKET_TYPE_EX = {\n PACKET_TYPE_SEQ_START: 0,\n PACKET_TYPE_FRAMES: 1,\n PACKET_TYPE_FRAMESX: 3,\n};\n\n\nexport const FRAME_TYPE_EX = {\n FT_KEY: 0x10,\n FT_INTER: 0x20\n};\n\n\n\n","export default class Debug {\n constructor(master) {\n this.log = (name, ...args) => {\n if (master._opt && master._opt.debug) {\n console.log(`Jb: [${name}]`, ...args);\n }\n };\n\n this.warn = (name, ...args) => {\n if (master._opt && master._opt.debug) {\n console.warn(`Jb: [${name}]`, ...args);\n }\n };\n\n this.error = (name, ...args) => {\n console.error(`Jb: [${name}]`, ...args);\n };\n }\n}\n","export default class Events {\n constructor(master) {\n this.destroys = [];\n this.proxy = this.proxy.bind(this);\n this.master = master;\n }\n\n proxy(target, name, callback, option = {}) {\n if (!target) {\n return;\n }\n if (Array.isArray(name)) {\n return name.map(item => this.proxy(target, item, callback, option));\n }\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroys.push(destroy);\n return destroy;\n }\n\n destroy() {\n this.master.debug && this.master.debug.log(`Events`, 'destroy');\n this.destroys.forEach(event => event());\n }\n}\n","export default (player) => {\n Object.defineProperty(player, 'rect', {\n get: () => {\n const clientRect = player.$container.getBoundingClientRect()\n clientRect.width = Math.max(clientRect.width, player.$container.clientWidth);\n clientRect.height = Math.max(clientRect.height, player.$container.clientHeight);\n return clientRect;\n },\n });\n\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(key => {\n Object.defineProperty(player, key, {\n get: () => {\n return player.rect[key];\n },\n });\n });\n}\n","/*!\n* screenfull\n* v5.1.0 - 2020-12-24\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element, options) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen](options);\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element, options) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element, options);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import {MP4_CODECS, FILE_SUFFIX} from \"../constant\";\nimport screenfull from \"screenfull\";\n\nexport function noop() {\n}\n\n\nexport function supportOffscreen($canvas) {\n return typeof $canvas.transferControlToOffscreen === 'function';\n}\n\n\nexport function supportOffscreenV2() {\n return typeof OffscreenCanvas !== \"undefined\";\n}\n\n\nexport function createContextGL($canvas) {\n let gl = null;\n\n const validContextNames = [\"webgl\", \"experimental-webgl\", \"moz-webgl\", \"webkit-3d\"];\n let nameIndex = 0;\n\n while (!gl && nameIndex < validContextNames.length) {\n const contextName = validContextNames[nameIndex];\n\n try {\n let contextOptions = {preserveDrawingBuffer: true};\n gl = $canvas.getContext(contextName, contextOptions);\n } catch (e) {\n gl = null;\n }\n\n if (!gl || typeof gl.getParameter !== \"function\") {\n gl = null;\n }\n\n ++nameIndex;\n }\n\n\n return gl;\n}\n\n\nexport function audioContextUnlock(context) {\n context.resume();\n const source = context.createBufferSource();\n source.buffer = context.createBuffer(1, 1, 22050);\n source.connect(context.destination);\n if (source.noteOn) {\n source.noteOn(0);\n } else {\n source.start(0);\n }\n}\n\nexport function dataURLToFile(dataURL = '') {\n const arr = dataURL.split(\",\");\n const bstr = atob(arr[1]);\n const type = arr[0].replace(\"data:\", \"\").replace(\";base64\", \"\")\n let n = bstr.length, u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n return new File([u8arr], 'file', {type});\n}\n\nexport function downloadFile(file, fileName) {\n if (file instanceof Blob || file instanceof File) {\n file = new Blob([file]);\n }\n const aLink = document.createElement(\"a\");\n aLink.download = fileName;\n aLink.href = file;\n aLink.click();\n}\n\n\nexport function downloadImg(content, fileName) {\n const aLink = document.createElement(\"a\");\n aLink.download = fileName;\n const href = URL.createObjectURL(content);\n aLink.href = href;\n aLink.click();\n setTimeout(() => {\n URL.revokeObjectURL(href);\n }, isIOS() ? 1000 : 0)\n}\n\nexport function checkFull() {\n let isFull = document.fullscreenElement || window.webkitFullscreenElement || document.msFullscreenElement;\n if (isFull === undefined) isFull = false;\n return !!isFull;\n}\n\nexport function now() {\n return new Date().getTime();\n}\n\nexport const supportedWasm = (() => {\n try {\n if (typeof WebAssembly === \"object\"\n && typeof WebAssembly.instantiate === \"function\") {\n const module = new WebAssembly.Module(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00));\n if (module instanceof WebAssembly.Module)\n return new WebAssembly.Instance(module) instanceof WebAssembly.Instance;\n }\n } catch (e) {\n }\n return false;\n})();\n\nexport function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function setStyle(element, key, value) {\n if (!element) {\n return\n }\n if (typeof key === 'object') {\n Object.keys(key).forEach(item => {\n setStyle(element, item, key[item]);\n });\n }\n element.style[key] = value;\n return element;\n}\n\n\nexport function getStyle(element, key, numberType = true) {\n if (!element) {\n return 0\n }\n\n const value = getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function getNowTime() {\n if (performance && typeof performance.now === 'function') {\n return performance.now();\n }\n return Date.now();\n}\n\nexport function calculationRate(callback) {\n let totalSize = 0;\n let lastTime = getNowTime();\n return size => {\n totalSize += size;\n const thisTime = getNowTime();\n const diffTime = thisTime - lastTime;\n if (diffTime >= 1000) {\n callback((totalSize / diffTime) * 1000);\n lastTime = thisTime;\n totalSize = 0;\n }\n };\n}\n\nexport function downloadRecord(blob, name, suffix) {\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = (name || now()) + '.' + (suffix || FILE_SUFFIX.webm);\n a.click();\n setTimeout(() => {\n window.URL.revokeObjectURL(url);\n }, isIOS() ? 1000 : 0)\n}\n\nexport const env = '__ENV__';\n\nexport function isMobile() {\n return (/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase()));\n}\n\nexport function isPad(){\n return (/ipad|android(?!.*mobile)|tablet|kindle|silk/i.test(window.navigator.userAgent.toLowerCase()));\n}\n\nexport function isAndroid() {\n const UA = window.navigator.userAgent.toLowerCase();\n return (/android/i.test(UA));\n}\n\nexport function isIOS() {\n const UA = window.navigator.userAgent.toLowerCase();\n return UA && /iphone|ipad|ipod|ios/.test(UA);\n}\n\n\nexport function parseTime(time, cFormat) {\n if (arguments.length === 0) {\n return null\n }\n var format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'\n var date;\n if (typeof time === 'object') {\n date = time\n } else {\n if (('' + time).length === 10) time = parseInt(time) * 1000;\n time = +time; // 转成int 型\n date = new Date(time)\n }\n var formatObj = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n };\n var time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {\n var value = formatObj[key]\n if (key === 'a') return ['一', '二', '三', '四', '五', '六', '日'][value - 1]\n if (result.length > 0 && value < 10) {\n value = '0' + value\n }\n return value || 0\n });\n return time_str\n}\n\n// 是否支持 webcodecs\nexport function supportWCS() {\n return \"VideoEncoder\" in window;\n}\n\nexport function toNumber(value) {\n if (typeof value !== 'string') {\n return value;\n } else {\n // 转换成 number 类型\n var parsed = Number(value);\n return isNaN(parsed) ? value : parsed;\n }\n}\n\nexport function uuid16() {\n return 'xxxxxxxxxxxx4xxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8)\n return v.toString(16)\n })\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n\n return fn;\n}\n\n\nexport function isDef(v) {\n return v !== undefined && v !== null;\n}\n\nexport function formatVideoDecoderConfigure(avcC) {\n let codecArray = avcC.subarray(1, 4);\n let codecString = \"avc1.\";\n for (let j = 0; j < 3; j++) {\n let h = codecArray[j].toString(16);\n if (h.length < 2) {\n h = \"0\" + h\n }\n codecString += h\n }\n\n return {\n codec: codecString,\n description: avcC\n }\n}\n\nexport function isFullScreen() {\n return screenfull.isFullscreen\n}\n\nexport function bpsSize(value) {\n if (null == value || value === '' || parseInt(value) === 0 || isNaN(parseInt(value))) {\n return \"0KB/s\";\n }\n let size = parseFloat(value);\n size = size.toFixed(2);\n return size + 'KB/s';\n}\n\n\nexport function fpsStatus(fps) {\n let result = 0;\n if (fps >= 24) {\n result = 2;\n } else if (fps >= 15) {\n result = 1;\n }\n\n return result;\n}\n\nexport function createEmptyImageBitmap(width, height) {\n const $canvasElement = document.createElement(\"canvas\");\n $canvasElement.width = width;\n $canvasElement.height = height;\n return window.createImageBitmap($canvasElement, 0, 0, width, height);\n}\n\n\nexport function supportMSE() {\n return window.MediaSource && window.MediaSource.isTypeSupported(MP4_CODECS.avc);\n}\n\nexport function supportMediaStreamTrack() {\n return window.MediaStreamTrackGenerator && typeof window.MediaStreamTrackGenerator === 'function'\n}\n\n\nexport function formatMp4VideoCodec(codec) {\n return `video/mp4; codecs=\"${codec}\"`\n}\n\n\nexport function saveBlobToFile(fileName, blob) {\n let url = window.URL.createObjectURL(blob);\n let aLink = window.document.createElement('a');\n aLink.download = fileName;\n aLink.href = url;\n //创建内置事件并触发\n let evt = window.document.createEvent('MouseEvents');\n evt.initEvent(\"click\", true, true); //initEvent 不加后两个参数在FF下会报错 事件类型,是否冒泡,是否阻止浏览器的默认行为\n aLink.dispatchEvent(evt);\n setTimeout(() => {\n window.URL.revokeObjectURL(url);\n }, isIOS() ? 1000 : 0)\n}\n\nexport function isEmpty(value) {\n return value === null || value === undefined\n}\n\nexport function isBoolean(value) {\n return value === true || value === false;\n}\n\nexport function isNotEmpty(value) {\n return !isEmpty(value)\n}\n\nexport function initPlayTimes() {\n return {\n playInitStart: '', //1\n playStart: '', // 2\n streamStart: '', //3\n streamResponse: '', // 4\n demuxStart: '', // 5\n decodeStart: '', // 6\n videoStart: '', // 7\n playTimestamp: '',// playStart- playInitStart\n streamTimestamp: '',// streamStart - playStart\n streamResponseTimestamp: '',// streamResponse - streamStart\n demuxTimestamp: '', // demuxStart - streamResponse\n decodeTimestamp: '', // decodeStart - demuxStart\n videoTimestamp: '',// videoStart - decodeStart\n allTimestamp: '' // videoStart - playInitStart\n }\n}\n\n// create watermark\nexport function createWatermark(options) {\n let defaultConfig = {\n container: '',\n left: '',\n right: '',\n top: '',\n bottom: '',\n image: {\n src: '',\n width: '100',\n height: '60',\n },\n text: {\n content: '',\n fontSize: '14',\n color: '#000'\n },\n }\n defaultConfig = Object.assign(defaultConfig, options)\n\n const $container = defaultConfig.container;\n\n if ($container) {\n return\n }\n\n let shadowRoot = null;\n const otDiv = document.createElement('div');\n otDiv.setAttribute('style', 'pointer-events: none !important; display: block !important');\n\n if (typeof otDiv.attachShadow === \"function\") {\n shadowRoot = otDiv.attachShadow({mode: 'open'});\n } else if (otDiv.shadowRoot) {\n shadowRoot = otDiv.shadowRoot;\n } else {\n shadowRoot = otDiv;\n }\n\n const nodeList = $container.children;\n const index = Math.floor(Math.random() * (nodeList.length - 1));\n\n if (nodeList[index]) {\n $container.insertBefore(otDiv, nodeList[index]);\n } else {\n $container.appendChild(otDiv);\n }\n\n\n const maskDiv = document.createElement('div');\n let innerDom = null;\n if (defaultConfig.text && defaultConfig.text.content) {\n innerDom = document.createTextNode(defaultConfig.text);\n } else if (defaultConfig.image && defaultConfig.image.src) {\n innerDom = document.createElement('img')\n innerDom.style.height = '100%'\n innerDom.style.width = '100%'\n innerDom.src = defaultConfig.image.src;\n }\n\n if (!innerDom) {\n return;\n }\n\n maskDiv.appendChild(innerDom);\n\n maskDiv.style.visibility = '';\n maskDiv.style.position = \"absolute\";\n maskDiv.style.display = 'block'\n maskDiv.style['-ms-user-select'] = \"none\";\n maskDiv.style.left = defaultConfig.left;\n maskDiv.style.right = defaultConfig.right;\n maskDiv.style.top = defaultConfig.top;\n maskDiv.style.bottom = defaultConfig.bottom;\n maskDiv.style.overflow = 'hidden';\n maskDiv.style.zIndex = \"9999999\";\n if (defaultConfig.text && defaultConfig.text.content) {\n maskDiv.style.fontSize = defaultConfig.text.fontSize;\n maskDiv.style.color = defaultConfig.text.color;\n } else if (defaultConfig.image && defaultConfig.image.src) {\n maskDiv.style.width = defaultConfig.image.width + 'px';\n maskDiv.style.height = defaultConfig.image.height + 'px';\n }\n\n shadowRoot.appendChild(maskDiv)\n\n // remove function\n return () => {\n $container.removeChild(otDiv);\n }\n}\n\nexport function formatTimeTips(time) {\n var result;\n\n //\n if (time > -1) {\n var hour = Math.floor(time / 3600);\n var min = Math.floor(time / 60) % 60;\n var sec = time % 60;\n\n sec = Math.round(sec);\n\n if (hour < 10) {\n result = '0' + hour + \":\";\n } else {\n result = hour + \":\";\n }\n\n if (min < 10) {\n result += \"0\";\n }\n result += min + \":\";\n if (sec < 10) {\n result += \"0\";\n }\n result += sec.toFixed(0);\n }\n\n return result;\n}\n\nexport function getTarget(e) {\n const event = e || window.event;\n const target = event.target || event.srcElement;\n return target;\n}\n\nexport function isWebglRenderSupport(width) {\n return (width / 2) % 4 === 0\n}\n\nexport function isGreenYUV(arrayBuffer) {\n let zeroNum = 0;\n for (let i = 0; i < 10; i++) {\n let temp = arrayBuffer[i];\n if (temp === 0) {\n zeroNum += 1\n }\n }\n return zeroNum === 10;\n}\n\nexport function getBrowser() {\n const UserAgent = navigator.userAgent.toLowerCase();\n const browserInfo = {};\n const browserArray = {\n IE: window.ActiveXObject || \"ActiveXObject\" in window, // IE\n Chrome: UserAgent.indexOf('chrome') > -1 && UserAgent.indexOf('safari') > -1, // Chrome浏览器\n Firefox: UserAgent.indexOf('firefox') > -1, // 火狐浏览器\n Opera: UserAgent.indexOf('opera') > -1, // Opera浏览器\n Safari: UserAgent.indexOf('safari') > -1 && UserAgent.indexOf('chrome') == -1, // safari浏览器\n Edge: UserAgent.indexOf('edge') > -1, // Edge浏览器\n QQBrowser: /qqbrowser/.test(UserAgent), // qq浏览器\n WeixinBrowser: /MicroMessenger/i.test(UserAgent) // 微信浏览器\n };\n // console.log(browserArray)\n for (let i in browserArray) {\n if (browserArray[i]) {\n let versions = '';\n if (i === 'IE') {\n versions = UserAgent.match(/(msie\\s|trident.*rv:)([\\w.]+)/)[2];\n } else if (i === 'Chrome') {\n for (let mt in navigator.mimeTypes) {\n //检测是否是360浏览器(测试只有pc端的360才起作用)\n if (navigator.mimeTypes[mt]['type'] === 'application/360softmgrplugin') {\n i = '360';\n }\n }\n versions = UserAgent.match(/chrome\\/([\\d.]+)/)[1];\n } else if (i === 'Firefox') {\n versions = UserAgent.match(/firefox\\/([\\d.]+)/)[1];\n } else if (i === 'Opera') {\n versions = UserAgent.match(/opera\\/([\\d.]+)/)[1];\n } else if (i === 'Safari') {\n versions = UserAgent.match(/version\\/([\\d.]+)/)[1];\n } else if (i === 'Edge') {\n versions = UserAgent.match(/edge\\/([\\d.]+)/)[1];\n } else if (i === 'QQBrowser') {\n versions = UserAgent.match(/qqbrowser\\/([\\d.]+)/)[1];\n }\n browserInfo.type = i;\n browserInfo.version = parseInt(versions);\n }\n }\n return browserInfo;\n}\n\n\nexport function closeVideoFrame(videoFrame) {\n if (videoFrame.close) {\n videoFrame.close()\n } else if (videoFrame.destroy) {\n videoFrame.destroy()\n }\n}\n\n\nexport function removeElement(element) {\n let result = false;\n if (element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n result = true;\n }\n }\n return result;\n}\n\nexport function hevcEncoderNalePacketNotLength(oneNALBuffer, isIframe) {\n const idrBit = 0x10 | 12;\n const nIdrBit = 0x20 | 12;\n let tmp = [];\n if (isIframe) {\n tmp[0] = idrBit;\n } else {\n tmp[0] = nIdrBit;\n }\n tmp[1] = 1;\n //\n tmp[2] = 0;\n tmp[3] = 0;\n tmp[4] = 0;\n\n const arrayBuffer = new Uint8Array(tmp.length + oneNALBuffer.byteLength);\n arrayBuffer.set(tmp, 0);\n arrayBuffer.set(oneNALBuffer, tmp.length);\n return arrayBuffer;\n}\n\n\nexport function isTrue(value) {\n return value === true || value === 'true';\n}\n\nexport function isFalse(value) {\n return value !== true && value !== 'true';\n}\n\nexport function getElementDataset(element, key) {\n if (!element) {\n return '';\n }\n\n if (element.dataset) {\n return element.dataset[key];\n }\n return element.getAttribute('data-' + key);\n}\n\nexport function setElementDataset(element, key, value) {\n if (!element) {\n return;\n }\n\n if (element.dataset) {\n element.dataset[key] = value;\n } else {\n element.setAttribute('data-' + key, value);\n }\n}\n\nexport function removeElementDataset(element, key) {\n if (!element) {\n return;\n }\n\n if (element.dataset) {\n delete element.dataset[key];\n } else {\n element.removeAttribute('data-' + key);\n }\n}\n","import {EVENTS, EVENTS_ERROR, JESSIBUCA_EVENTS} from \"../constant\";\nimport screenfull from \"screenfull\";\nimport {getTarget, isMobile, setStyle} from \"../utils\";\n\nexport default (player) => {\n\n\n try {\n const screenfullChange = (e) => {\n if (getTarget(e) === player.$container) {\n player.emit(JESSIBUCA_EVENTS.fullscreen, player.fullscreen)\n\n // 如果不是fullscreen,则触发下 resize 方法\n if (!player.fullscreen) {\n player.resize();\n } else {\n if (player._opt.useMSE) {\n player.resize();\n }\n }\n }\n };\n screenfull.on('change', screenfullChange);\n player.events.destroys.push(() => {\n screenfull.off('change', screenfullChange);\n });\n } catch (error) {\n //\n }\n //\n player.on(EVENTS.decoderWorkerInit, () => {\n player.debug.log('player', 'has loaded');\n player.loaded = true;\n })\n\n //\n player.on(EVENTS.play, () => {\n player.loading = false;\n })\n\n //\n player.on(EVENTS.fullscreen, (value) => {\n if (value) {\n try {\n screenfull.request(player.$container).then(() => {\n\n }).catch((e) => {\n if (isMobile() && player._opt.useWebFullScreen) {\n player.webFullscreen = true;\n }\n });\n\n } catch (e) {\n if (isMobile() && player._opt.useWebFullScreen) {\n player.webFullscreen = true;\n }\n }\n } else {\n try {\n screenfull.exit().then(() => {\n if (player.webFullscreen) {\n player.webFullscreen = false;\n }\n }).catch(() => {\n player.webFullscreen = false;\n\n });\n } catch (e) {\n player.webFullscreen = false;\n }\n }\n })\n\n if (isMobile()) {\n player.on(EVENTS.webFullscreen, (value) => {\n if (value) {\n player.$container.classList.add('jessibuca-fullscreen-web')\n } else {\n player.$container.classList.remove('jessibuca-fullscreen-web')\n }\n //\n player.emit(JESSIBUCA_EVENTS.fullscreen, player.fullscreen)\n })\n }\n\n\n //\n player.on(EVENTS.resize, () => {\n player.video && player.video.resize();\n })\n\n\n if (player._opt.debug) {\n const ignoreList = [EVENTS.timeUpdate];\n const stringList = [\n EVENTS.stats,\n EVENTS.playToRenderTimes,\n EVENTS.audioInfo,\n EVENTS.videoInfo\n ]\n Object.keys(EVENTS).forEach((key) => {\n player.on(EVENTS[key], (value) => {\n if (ignoreList.includes(key)) {\n return;\n }\n\n if (stringList.includes(key)) {\n value = JSON.stringify(value)\n }\n\n player.debug.log('player events', EVENTS[key], value);\n })\n })\n\n Object.keys(EVENTS_ERROR).forEach((key) => {\n player.on(EVENTS_ERROR[key], (value) => {\n player.debug.log('player event error', EVENTS_ERROR[key], value);\n })\n })\n }\n}\n","export default class Emitter {\n on(name, fn, ctx) {\n const e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({fn, ctx});\n return this;\n }\n\n once(name, fn, ctx) {\n const self = this;\n\n function listener(...args) {\n self.off(name, listener);\n fn.apply(ctx, args);\n }\n\n listener._ = fn;\n return this.on(name, listener, ctx);\n }\n\n emit(name, ...data) {\n const evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n for (let i = 0; i < evtArr.length; i += 1) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n return this;\n }\n\n off(name, callback) {\n const e = this.e || (this.e = {});\n\n if (!name) {\n Object.keys(e).forEach((key) => {\n delete e[key];\n })\n delete this.e\n return;\n }\n\n const evts = e[name];\n const liveEvents = [];\n if (evts && callback) {\n for (let i = 0, len = evts.length; i < len; i += 1) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback) liveEvents.push(evts[i]);\n }\n }\n if (liveEvents.length) {\n e[name] = liveEvents;\n } else {\n delete e[name];\n }\n return this;\n }\n}\n","export default (gl, openWebglAlignment) => {\n var vertexShaderScript = [\n 'attribute vec4 vertexPos;',\n 'attribute vec4 texturePos;',\n 'varying vec2 textureCoord;',\n\n 'void main()',\n '{',\n 'gl_Position = vertexPos;',\n 'textureCoord = texturePos.xy;',\n '}'\n ].join('\\n');\n\n var fragmentShaderScript = [\n 'precision highp float;',\n 'varying highp vec2 textureCoord;',\n 'uniform sampler2D ySampler;',\n 'uniform sampler2D uSampler;',\n 'uniform sampler2D vSampler;',\n 'const mat4 YUV2RGB = mat4',\n '(',\n '1.1643828125, 0, 1.59602734375, -.87078515625,',\n '1.1643828125, -.39176171875, -.81296875, .52959375,',\n '1.1643828125, 2.017234375, 0, -1.081390625,',\n '0, 0, 0, 1',\n ');',\n\n 'void main(void) {',\n 'highp float y = texture2D(ySampler, textureCoord).r;',\n 'highp float u = texture2D(uSampler, textureCoord).r;',\n 'highp float v = texture2D(vSampler, textureCoord).r;',\n 'gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;',\n '}'\n ].join('\\n');\n\n if (openWebglAlignment) {\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n }\n var vertexShader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(vertexShader, vertexShaderScript);\n gl.compileShader(vertexShader);\n if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {\n console.log('Vertex shader failed to compile: ' + gl.getShaderInfoLog(vertexShader));\n }\n\n var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n gl.shaderSource(fragmentShader, fragmentShaderScript);\n gl.compileShader(fragmentShader);\n if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n console.log('Fragment shader failed to compile: ' + gl.getShaderInfoLog(fragmentShader));\n }\n\n var program = gl.createProgram();\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n console.log('Program failed to compile: ' + gl.getProgramInfoLog(program));\n }\n\n gl.useProgram(program);\n\n // initBuffers\n var vertexPosBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, vertexPosBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1, 1, -1, 1, 1, -1, -1, -1]), gl.STATIC_DRAW);\n\n var vertexPosRef = gl.getAttribLocation(program, 'vertexPos');\n gl.enableVertexAttribArray(vertexPosRef);\n gl.vertexAttribPointer(vertexPosRef, 2, gl.FLOAT, false, 0, 0);\n\n var texturePosBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texturePosBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1, 0, 0, 0, 1, 1, 0, 1]), gl.STATIC_DRAW);\n\n var texturePosRef = gl.getAttribLocation(program, 'texturePos');\n gl.enableVertexAttribArray(texturePosRef);\n gl.vertexAttribPointer(texturePosRef, 2, gl.FLOAT, false, 0, 0);\n\n function _initTexture(name, index) {\n var textureRef = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, textureRef);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.uniform1i(gl.getUniformLocation(program, name), index);\n return textureRef;\n }\n\n var yTextureRef = _initTexture('ySampler', 0);\n var uTextureRef = _initTexture('uSampler', 1);\n var vTextureRef = _initTexture('vSampler', 2);\n\n return {\n render: function (w, h, y, u, v) {\n gl.viewport(0, 0, w, h);\n gl.activeTexture(gl.TEXTURE0);\n gl.bindTexture(gl.TEXTURE_2D, yTextureRef);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, w, h, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, y);\n gl.activeTexture(gl.TEXTURE1);\n gl.bindTexture(gl.TEXTURE_2D, uTextureRef);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, w / 2, h / 2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, u);\n gl.activeTexture(gl.TEXTURE2);\n gl.bindTexture(gl.TEXTURE_2D, vTextureRef);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, w / 2, h / 2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, v);\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);\n },\n destroy: function () {\n try {\n gl.deleteProgram(program);\n\n gl.deleteBuffer(vertexPosBuffer)\n gl.deleteBuffer(texturePosBuffer);\n\n gl.deleteTexture(yTextureRef);\n gl.deleteTexture(uTextureRef);\n gl.deleteTexture(vTextureRef);\n } catch (e) {\n // console.error(e);\n }\n\n }\n }\n};\n","import Emitter from \"../utils/emitter\";\nimport {CONTROL_HEIGHT, EVENTS, VIDEO_ENC_TYPE} from \"../constant\";\n\nexport default class CommonLoader extends Emitter {\n constructor() {\n super();\n this.init = false;\n }\n\n resetInit() {\n this.init = false;\n this.videoInfo = {\n width: '',\n height: '',\n encType: '',\n encTypeCode: ''\n }\n }\n destroy() {\n this.resetInit();\n this.player.$container.removeChild(this.$videoElement);\n this.off();\n }\n\n //\n updateVideoInfo(data) {\n if (data.encTypeCode) {\n this.videoInfo.encType = VIDEO_ENC_TYPE[data.encTypeCode];\n this.videoInfo.encTypeCode = data.encTypeCode;\n }\n\n if (data.width) {\n this.videoInfo.width = data.width;\n }\n\n if (data.height) {\n this.videoInfo.height = data.height;\n }\n\n // video 基本信息\n if (this.videoInfo.encType && this.videoInfo.height && this.videoInfo.width && !this.init) {\n this.player.emit(EVENTS.videoInfo, this.videoInfo);\n this.init = true;\n }\n }\n\n play() {\n\n }\n\n pause() {\n\n }\n\n clearView() {\n\n }\n}\n","/*\n* FileSaver.js\n* A saveAs() FileSaver implementation.\n*\n* By Eli Grey, http://eligrey.com\n*\n* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n* source : http://purl.eligrey.com/github/FileSaver.js\n*/\n\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nvar _global = typeof window === 'object' && window.window === window\n ? window : typeof self === 'object' && self.self === self\n ? self : typeof global === 'object' && global.global === global\n ? global\n : this\n\nfunction bom(blob, opts) {\n if (typeof opts === 'undefined') opts = {autoBom: false}\n else if (typeof opts !== 'object') {\n console.warn('Deprecated: Expected third argument to be a object')\n opts = {autoBom: !opts}\n }\n\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (opts.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type})\n }\n return blob\n}\n\nfunction download(url, name, opts) {\n var xhr = new XMLHttpRequest()\n xhr.open('GET', url)\n xhr.responseType = 'blob'\n xhr.onload = function () {\n saveAs(xhr.response, name, opts)\n }\n xhr.onerror = function () {\n console.error('could not download file')\n }\n xhr.send()\n}\n\nfunction corsEnabled(url) {\n var xhr = new XMLHttpRequest()\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false)\n try {\n xhr.send()\n } catch (e) {\n }\n return xhr.status >= 200 && xhr.status <= 299\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent('click'))\n } catch (e) {\n var evt = document.createEvent('MouseEvents')\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,\n 20, false, false, false, false, 0, null)\n node.dispatchEvent(evt)\n }\n}\n\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nvar isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent)\n\nvar saveAs = (\n // probably in some web worker\n (typeof window !== 'object' || window !== _global)\n ? function saveAs() { /* noop */\n }\n\n // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView\n : ('download' in HTMLAnchorElement.prototype && !isMacOSWebView)\n ? function saveAs(blob, name, opts) {\n var URL = _global.URL || _global.webkitURL\n // Namespace is used to prevent conflict w/ Chrome Poper Blocker extension (Issue #561)\n var a = document.createElementNS('http://www.w3.org/1999/xhtml', 'a')\n name = name || blob.name || 'download'\n\n a.download = name\n a.rel = 'noopener' // tabnabbing\n\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob\n if (a.origin !== location.origin) {\n corsEnabled(a.href)\n ? download(blob, name, opts)\n : click(a, a.target = '_blank')\n } else {\n click(a)\n }\n } else {\n // Support blobs\n a.href = URL.createObjectURL(blob)\n setTimeout(function () {\n URL.revokeObjectURL(a.href)\n }, 4E4) // 40s\n setTimeout(function () {\n click(a)\n }, 0)\n }\n }\n\n // Use msSaveOrOpenBlob as a second approach\n : 'msSaveOrOpenBlob' in navigator\n ? function saveAs(blob, name, opts) {\n name = name || blob.name || 'download'\n\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts)\n } else {\n var a = document.createElement('a')\n a.href = blob\n a.target = '_blank'\n setTimeout(function () {\n click(a)\n })\n }\n } else {\n navigator.msSaveOrOpenBlob(bom(blob, opts), name)\n }\n }\n\n // Fallback to using FileReader and a popup\n : function saveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank')\n if (popup) {\n popup.document.title =\n popup.document.body.innerText = 'downloading...'\n }\n\n if (typeof blob === 'string') return download(blob, name, opts)\n\n var force = blob.type === 'application/octet-stream'\n var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari\n var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent)\n\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) && typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n var reader = new FileReader()\n reader.onloadend = function () {\n var url = reader.result\n url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;')\n if (popup) popup.location.href = url\n else location = url\n popup = null // reverse-tabnabbing #460\n }\n reader.readAsDataURL(blob)\n } else {\n var URL = _global.URL || _global.webkitURL\n var url = URL.createObjectURL(blob)\n if (popup) popup.location = url\n else location.href = url\n popup = null // reverse-tabnabbing #460\n setTimeout(function () {\n URL.revokeObjectURL(url)\n }, 4E4) // 40s\n }\n }\n)\n\n\nexport default saveAs\n","import Emitter from \"../utils/emitter\";\nimport {\n closeVideoFrame,\n createContextGL,\n createEmptyImageBitmap,\n dataURLToFile,\n downloadImg,\n isMobile,\n now,\n supportOffscreen\n} from \"../utils\";\nimport createWebGL from \"../utils/webgl\";\nimport {CANVAS_RENDER_TYPE, CONTROL_HEIGHT, EVENTS, SCREENSHOT_TYPE, VIDEO_ENC_TYPE} from \"../constant\";\nimport CommonLoader from \"./commonLoader\";\nimport saveAs from \"../utils/file-save\";\n\nexport default class CanvasVideoLoader extends CommonLoader {\n\n constructor(player) {\n super()\n this.player = player;\n const $canvasElement = document.createElement(\"canvas\");\n $canvasElement.style.position = \"absolute\";\n $canvasElement.style.top = 0;\n $canvasElement.style.left = 0;\n this.$videoElement = $canvasElement;\n player.$container.appendChild(this.$videoElement);\n\n this.context2D = null;\n this.contextGl = null;\n this.contextGlRender = null;\n this.contextGlDestroy = null;\n this.bitmaprenderer = null;\n this.renderType = null;\n this.videoInfo = {\n width: '',\n height: '',\n encType: '',\n }\n //\n this._initCanvasRender();\n this.player.debug.log('CanvasVideo', 'init');\n }\n\n async destroy() {\n super.destroy();\n if (this.contextGl) {\n this.contextGl = null;\n }\n if (this.context2D) {\n this.context2D = null;\n }\n if (this.contextGlRender) {\n this.contextGlDestroy && this.contextGlDestroy();\n this.contextGlDestroy = null;\n this.contextGlRender = null;\n }\n if (this.bitmaprenderer) {\n this.bitmaprenderer = null;\n }\n\n this.renderType = null;\n\n this.player.debug.log(`CanvasVideoLoader`, 'destroy');\n }\n\n\n _initContextGl() {\n this.contextGl = createContextGL(this.$videoElement);\n if(this.contextGl){\n const webgl = createWebGL(this.contextGl, this.player._opt.openWebglAlignment);\n this.contextGlRender = webgl.render;\n this.contextGlDestroy = webgl.destroy\n }\n else {\n this.player.debug.error(`CanvasVideoLoader`, 'init webgl fail');\n }\n }\n\n _initContext2D() {\n this.context2D = this.$videoElement.getContext('2d');\n }\n\n\n // 渲染类型\n _initCanvasRender() {\n if (this.player._opt.useWCS && !this._supportOffscreen()) {\n this.renderType = CANVAS_RENDER_TYPE.webcodecs;\n this._initContext2D();\n } else if (this._supportOffscreen()) {\n this.renderType = CANVAS_RENDER_TYPE.offscreen;\n this._bindOffscreen();\n } else {\n this.renderType = CANVAS_RENDER_TYPE.webgl;\n this._initContextGl();\n }\n }\n\n _supportOffscreen() {\n return supportOffscreen(this.$videoElement) && this.player._opt.useOffscreen;\n }\n\n //\n _bindOffscreen() {\n this.bitmaprenderer = this.$videoElement.getContext('bitmaprenderer');\n }\n\n initCanvasViewSize() {\n this.$videoElement.width = this.videoInfo.width;\n this.$videoElement.height = this.videoInfo.height;\n this.resize();\n }\n\n //\n render(msg) {\n this.player.videoTimestamp = msg.ts;\n switch (this.renderType) {\n case CANVAS_RENDER_TYPE.offscreen:\n this.bitmaprenderer.transferFromImageBitmap(msg.buffer);\n break;\n case CANVAS_RENDER_TYPE.webgl:\n this.contextGlRender(this.$videoElement.width, this.$videoElement.height, msg.output[0], msg.output[1], msg.output[2]);\n break;\n case CANVAS_RENDER_TYPE.webcodecs:\n // can use createImageBitmap in wexin\n this.context2D.drawImage(msg.videoFrame, 0, 0, this.$videoElement.width, this.$videoElement.height);\n closeVideoFrame(msg.videoFrame);\n break;\n }\n }\n\n screenshot(filename, format, quality, type) {\n filename = filename || now();\n type = type || SCREENSHOT_TYPE.download;\n const formatType = {\n png: 'image/png',\n jpeg: 'image/jpeg',\n webp: 'image/webp'\n };\n let encoderOptions = 0.92;\n if (!formatType[format] && SCREENSHOT_TYPE[format]) {\n type = format;\n format = 'png';\n quality = undefined\n }\n\n if (typeof quality === \"string\") {\n type = quality;\n quality = undefined;\n }\n\n if (typeof quality !== 'undefined') {\n encoderOptions = Number(quality);\n }\n const dataURL = this.$videoElement.toDataURL(formatType[format] || formatType.png, encoderOptions);\n\n if (type === SCREENSHOT_TYPE.base64) {\n return dataURL;\n } else {\n const file = dataURLToFile(dataURL)\n if (type === SCREENSHOT_TYPE.blob) {\n return file;\n } else if (type === SCREENSHOT_TYPE.download) {\n // downloadImg(file, filename);\n saveAs(file, filename);\n }\n }\n\n }\n\n //\n clearView() {\n switch (this.renderType) {\n case CANVAS_RENDER_TYPE.offscreen:\n createEmptyImageBitmap(this.$videoElement.width, this.$videoElement.height).then((imageBitMap) => {\n this.bitmaprenderer.transferFromImageBitmap(imageBitMap);\n })\n break;\n case CANVAS_RENDER_TYPE.webgl:\n this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT);\n break;\n case CANVAS_RENDER_TYPE.webcodecs:\n this.context2D.clearRect(0, 0, this.$videoElement.width, this.$videoElement.height)\n break;\n }\n }\n\n resize() {\n this.player.debug.log('canvasVideo', 'resize');\n const option = this.player._opt;\n let width = this.player.width;\n let height = this.player.height;\n if (this.player.isControlBarShow()) {\n if (isMobile() && this.player.fullscreen && option.useWebFullScreen) {\n width -= CONTROL_HEIGHT;\n } else {\n height -= CONTROL_HEIGHT;\n }\n }\n let resizeWidth = this.$videoElement.width;\n let resizeHeight = this.$videoElement.height;\n const rotate = option.rotate;\n let left = ((width - resizeWidth) / 2)\n let top = ((height - resizeHeight) / 2)\n if (rotate === 270 || rotate === 90) {\n resizeWidth = this.$videoElement.height;\n resizeHeight = this.$videoElement.width;\n }\n\n const wScale = width / resizeWidth;\n const hScale = height / resizeHeight;\n\n let scale = wScale > hScale ? hScale : wScale;\n //\n if (!option.isResize) {\n if (wScale !== hScale) {\n scale = wScale + ',' + hScale;\n }\n }\n //\n if (option.isFullResize) {\n scale = wScale > hScale ? wScale : hScale;\n }\n let transform = \"scale(\" + scale + \")\";\n\n if (rotate) {\n transform += ' rotate(' + rotate + 'deg)'\n }\n\n this.$videoElement.style.transform = transform;\n this.$videoElement.style.left = left + \"px\"\n this.$videoElement.style.top = top + \"px\"\n }\n\n\n}\n","import Emitter from \"../utils/emitter\";\nimport {CONTROL_HEIGHT, EVENTS, SCREENSHOT_TYPE, VIDEO_ENC_TYPE} from \"../constant\";\nimport {dataURLToFile, downloadImg, getBrowser, isAndroid, isMobile, now} from \"../utils\";\nimport CommonLoader from \"./commonLoader\";\nimport saveAs from \"../utils/file-save\";\n\nexport default class VideoLoader extends CommonLoader {\n constructor(player) {\n super();\n this.player = player;\n const $videoElement = document.createElement('video');\n const $canvasElement = document.createElement('canvas');\n $videoElement.muted = true;\n $videoElement.disablePictureInPicture = true;\n if (isAndroid()) {\n // default no poster\n $videoElement.poster = 'noposter';\n }\n $videoElement.style.position = \"absolute\";\n $videoElement.style.top = 0;\n $videoElement.style.left = 0;\n this._delayPlay = false;\n player.$container.appendChild($videoElement);\n this.videoInfo = {\n width: '',\n height: '',\n encType: '',\n }\n const _opt = this.player._opt;\n if (_opt.useWCS && _opt.wcsUseVideoRender) {\n this.trackGenerator = new MediaStreamTrackGenerator({kind: 'video'});\n $videoElement.srcObject = new MediaStream([this.trackGenerator]);\n this.vwriter = this.trackGenerator.writable.getWriter();\n }\n this.$videoElement = $videoElement;\n this.$canvasElement = $canvasElement;\n this.canvasContext = $canvasElement.getContext('2d');\n this.fixChromeVideoFlashBug();\n this.resize();\n\n const {proxy} = this.player.events;\n\n proxy(this.$videoElement, 'canplay', () => {\n this.player.debug.log('Video', `canplay`);\n if (this._delayPlay) {\n this.player.debug.log('Video', `canplay and _delayPlay is true and next play()`);\n this._play();\n }\n })\n\n proxy(this.$videoElement, 'waiting', () => {\n // this.player.emit(EVENTS.videoWaiting);\n this.player.debug.log('Video', 'waiting');\n })\n\n proxy(this.$videoElement, 'timeupdate', (event) => {\n // this.player.emit(EVENTS.videoTimeUpdate, event.timeStamp);\n const timeStamp = parseInt(event.timeStamp, 10);\n this.player.emit(EVENTS.timeUpdate, timeStamp)\n // check is pause;\n if (!this.isPlaying() && this.init) {\n this.player.debug.log('Video', `timeupdate and this.isPlaying is false and retry play`);\n this.$videoElement.play();\n }\n })\n\n this.player.debug.log('Video', 'init');\n }\n\n async destroy() {\n super.destroy();\n this.$canvasElement = null;\n this.canvasContext = null;\n if (this.$videoElement) {\n this.$videoElement.pause();\n this.$videoElement.currentTime = 0;\n this.$videoElement.src = ''\n this.$videoElement.removeAttribute('src');\n this.$videoElement = null;\n }\n if (this.trackGenerator) {\n this.trackGenerator.stop();\n this.trackGenerator = null;\n }\n if (this.vwriter) {\n await this.vwriter.close();\n this.vwriter = null;\n }\n this.player.debug.log('Video', 'destroy');\n }\n\n fixChromeVideoFlashBug() {\n const browser = getBrowser();\n const type = browser.type.toLowerCase();\n if (type === 'chrome' || type === 'edge') {\n const $container = this.player.$container;\n $container.style.backdropFilter = 'blur(0px)';\n $container.style.translateZ = '0';\n }\n }\n\n play() {\n if (this.$videoElement) {\n const readyState = this._getVideoReadyState();\n this.player.debug.log('Video', `play and readyState: ${readyState}`);\n if (readyState === 0) {\n this.player.debug.warn('Video', 'readyState is 0 and set _delayPlay to true');\n this._delayPlay = true;\n return;\n }\n this._play();\n }\n }\n\n _getVideoReadyState() {\n let result = 0;\n if (this.$videoElement) {\n result = this.$videoElement.readyState;\n }\n return result;\n }\n\n _play() {\n this.$videoElement && this.$videoElement.play().then(() => {\n this._delayPlay = false;\n this.player.debug.log('Video', '_play success');\n setTimeout(() => {\n if (!this.isPlaying()) {\n this.player.debug.warn('Video', `play failed and retry play`)\n this._play();\n }\n }, 100)\n\n }).catch((e) => {\n this.player.debug.error('Video', '_play error', e);\n })\n }\n\n pause(isNow) {\n // 预防\n // https://developer.chrome.com/blog/play-request-was-interrupted/\n // http://alonesuperman.com/?p=23\n if (isNow) {\n this.$videoElement && this.$videoElement.pause();\n } else {\n setTimeout(() => {\n this.$videoElement && this.$videoElement.pause();\n }, 100)\n }\n }\n\n clearView() {\n\n }\n\n screenshot(filename, format, quality, type) {\n filename = filename || now();\n type = type || SCREENSHOT_TYPE.download;\n const formatType = {\n png: 'image/png',\n jpeg: 'image/jpeg',\n webp: 'image/webp'\n };\n let encoderOptions = 0.92;\n if (!formatType[format] && SCREENSHOT_TYPE[format]) {\n type = format;\n format = 'png';\n quality = undefined\n }\n if (typeof quality === \"string\") {\n type = quality;\n quality = undefined;\n }\n\n if (typeof quality !== 'undefined') {\n encoderOptions = Number(quality);\n }\n const $video = this.$videoElement;\n let canvas = this.$canvasElement;\n canvas.width = $video.videoWidth;\n canvas.height = $video.videoHeight;\n this.canvasContext.drawImage($video, 0, 0, canvas.width, canvas.height);\n const dataURL = canvas.toDataURL(formatType[format] || formatType.png, encoderOptions);\n // release memory\n this.canvasContext.clearRect(0, 0, canvas.width, canvas.height);\n canvas.width = 0;\n canvas.height = 0;\n if (type === SCREENSHOT_TYPE.base64) {\n return dataURL;\n } else {\n const file = dataURLToFile(dataURL);\n if (type === SCREENSHOT_TYPE.blob) {\n return file;\n } else if (type === SCREENSHOT_TYPE.download) {\n // downloadImg(file, filename);\n saveAs(file, filename)\n }\n }\n\n }\n\n initCanvasViewSize() {\n this.resize();\n }\n\n //\n render(msg) {\n if (this.vwriter) {\n this.vwriter.write(msg.videoFrame);\n }\n }\n\n resize() {\n let width = this.player.width;\n let height = this.player.height;\n const option = this.player._opt;\n const rotate = option.rotate;\n if (this.player.isControlBarShow()) {\n if (isMobile() && this.player.fullscreen && option.useWebFullScreen) {\n width -= CONTROL_HEIGHT;\n } else {\n height -= CONTROL_HEIGHT;\n }\n }\n\n this.$videoElement.width = width;\n this.$videoElement.height = height;\n\n if (rotate === 270 || rotate === 90) {\n this.$videoElement.width = height;\n this.$videoElement.height = width;\n }\n let resizeWidth = this.$videoElement.width;\n let resizeHeight = this.$videoElement.height;\n let left = ((width - resizeWidth) / 2)\n let top = ((height - resizeHeight) / 2)\n let objectFill = 'contain';\n\n // 默认是true\n // 视频画面做等比缩放后,高或宽对齐canvas区域,画面不被拉伸,但有黑边\n\n // 视频画面完全填充canvas区域,画面会被拉伸\n if (!option.isResize) {\n objectFill = 'fill';\n }\n\n // 视频画面做等比缩放后,完全填充canvas区域,画面不被拉伸,没有黑边,但画面显示不全\n if (option.isFullResize) {\n objectFill = 'none';\n }\n this.$videoElement.style.objectFit = objectFill;\n this.$videoElement.style.transform = 'rotate(' + rotate + 'deg)';\n this.$videoElement.style.left = left + \"px\"\n this.$videoElement.style.top = top + \"px\"\n }\n\n isPlaying() {\n return this.$videoElement && !this.$videoElement.paused;\n }\n}\n","import CanvasVideoLoader from './canvasLoader';\nimport VideoLoader from \"./videoLoader\";\n\nexport default class Video {\n constructor(player) {\n const Loader = Video.getLoaderFactory(player._opt);\n return new Loader(player);\n }\n\n static getLoaderFactory(opt) {\n if (opt.useMSE || (opt.useWCS && !opt.useOffscreen && opt.wcsUseVideoRender)) {\n return VideoLoader;\n } else {\n return CanvasVideoLoader;\n }\n }\n}\n","import Emitter from \"../utils/emitter\";\nimport {AUDIO_ENC_TYPE, AUDIO_SYNC_VIDEO_DIFF, EVENTS, VIDEO_ENC_TYPE} from \"../constant\";\nimport {clamp, noop} from \"../utils\";\n\nexport default class AudioContextLoader extends Emitter {\n constructor(player) {\n super();\n this.bufferList = [];\n this.player = player;\n this.scriptNode = null;\n this.hasInitScriptNode = false;\n this.audioContextChannel = null;\n\n this.audioContext = new (window.AudioContext || window.webkitAudioContext)();\n //\n this.gainNode = this.audioContext.createGain();\n // Get an AudioBufferSourceNode.\n // This is the AudioNode to use when we want to play an AudioBuffer\n const source = this.audioContext.createBufferSource();\n // set the buffer in the AudioBufferSourceNode\n source.buffer = this.audioContext.createBuffer(1, 1, 22050);\n // connect the AudioBufferSourceNode to the\n // destination so we can hear the sound\n source.connect(this.audioContext.destination);\n // noteOn as start\n // start the source playing\n if (source.noteOn) {\n source.noteOn(0);\n } else {\n source.start(0);\n }\n this.audioBufferSourceNode = source;\n //\n this.mediaStreamAudioDestinationNode = this.audioContext.createMediaStreamDestination();\n //\n this.audioEnabled(true);\n // default setting 0\n this.gainNode.gain.value = 0;\n this._prevVolume = null;\n\n this.playing = false;\n //\n this.audioSyncVideoOption = {\n diff: null\n };\n\n\n this.audioInfo = {\n encType: '',\n channels: '',\n sampleRate: ''\n }\n this.init = false;\n this.hasAudio = false;\n\n // update\n this.on(EVENTS.videoSyncAudio, (options) => {\n // this.player.debug.log('AudioContext', `videoSyncAudio , audioTimestamp: ${options.audioTimestamp},videoTimestamp: ${options.videoTimestamp},diff:${options.diff}`)\n this.audioSyncVideoOption = options;\n })\n\n this.player.debug.log('AudioContext', 'init');\n }\n\n resetInit() {\n this.init = false;\n this.audioInfo = {\n encType: '',\n channels: '',\n sampleRate: ''\n }\n }\n\n\n async destroy() {\n this.closeAudio();\n this.resetInit();\n if(this.audioContext){\n await this.audioContext.close();\n this.audioContext = null;\n }\n\n this.gainNode = null;\n this.hasAudio = false;\n this.playing = false;\n if (this.scriptNode) {\n this.scriptNode.onaudioprocess = noop;\n this.scriptNode = null;\n }\n this.audioBufferSourceNode = null;\n this.mediaStreamAudioDestinationNode = null;\n this.hasInitScriptNode = false;\n this.audioSyncVideoOption = {\n diff: null\n };\n this._prevVolume = null;\n this.off();\n this.player.debug.log('AudioContext', 'destroy');\n }\n\n updateAudioInfo(data) {\n if (data.encTypeCode) {\n this.audioInfo.encType = AUDIO_ENC_TYPE[data.encTypeCode];\n this.audioInfo.encTypeCode = data.encTypeCode;\n }\n\n if (data.channels) {\n this.audioInfo.channels = data.channels;\n }\n\n if (data.sampleRate) {\n this.audioInfo.sampleRate = data.sampleRate;\n }\n\n // audio 基本信息\n if (this.audioInfo.sampleRate && this.audioInfo.channels && this.audioInfo.encType && !this.init) {\n this.player.emit(EVENTS.audioInfo, this.audioInfo);\n this.init = true;\n }\n }\n\n //\n get isPlaying() {\n return this.playing;\n }\n\n get isMute() {\n return this.gainNode.gain.value === 0;\n }\n\n get volume() {\n return this.gainNode.gain.value;\n }\n\n get bufferSize() {\n return this.bufferList.length;\n }\n\n\n initScriptNode() {\n this.playing = true;\n\n if (this.hasInitScriptNode) {\n return;\n }\n const channels = this.audioInfo.channels;\n\n const scriptNode = this.audioContext.createScriptProcessor(1024, 0, channels);\n // tips: if audio isStateSuspended onaudioprocess method not working\n scriptNode.onaudioprocess = (audioProcessingEvent) => {\n const outputBuffer = audioProcessingEvent.outputBuffer;\n\n if (this.bufferList.length && this.playing) {\n // just for wasm\n if (!this.player._opt.useWCS && !this.player._opt.useMSE && this.player._opt.wasmDecodeAudioSyncVideo) {\n // audio > video\n // wait\n if (this.audioSyncVideoOption.diff > AUDIO_SYNC_VIDEO_DIFF) {\n this.player.debug.warn('AudioContext', `audioSyncVideoOption more than diff :${this.audioSyncVideoOption.diff}, waiting`)\n // wait\n return;\n }\n // audio < video\n // throw away then chase video\n else if (this.audioSyncVideoOption.diff < -AUDIO_SYNC_VIDEO_DIFF) {\n this.player.debug.warn('AudioContext', `audioSyncVideoOption less than diff :${this.audioSyncVideoOption.diff}, dropping`)\n\n //\n let bufferItem = this.bufferList.shift();\n //\n while ((bufferItem.ts - this.player.videoTimestamp < -AUDIO_SYNC_VIDEO_DIFF) && this.bufferList.length > 0) {\n // this.player.debug.warn('AudioContext', `audioSyncVideoOption less than inner ts is:${bufferItem.ts}, videoTimestamp is ${this.player.videoTimestamp},diff:${bufferItem.ts - this.player.videoTimestamp}`)\n bufferItem = this.bufferList.shift();\n }\n\n if (this.bufferList.length === 0) {\n return;\n }\n }\n }\n\n if (this.bufferList.length === 0) {\n return;\n }\n\n const bufferItem = this.bufferList.shift();\n\n // update audio time stamp\n if (bufferItem && bufferItem.ts) {\n this.player.audioTimestamp = bufferItem.ts;\n }\n\n for (let channel = 0; channel < channels; channel++) {\n const b = bufferItem.buffer[channel]\n const nowBuffering = outputBuffer.getChannelData(channel);\n for (let i = 0; i < 1024; i++) {\n nowBuffering[i] = b[i] || 0\n }\n }\n }\n }\n\n scriptNode.connect(this.gainNode);\n this.scriptNode = scriptNode;\n this.gainNode.connect(this.audioContext.destination);\n this.gainNode.connect(this.mediaStreamAudioDestinationNode);\n this.hasInitScriptNode = true;\n }\n\n mute(flag) {\n if (flag) {\n // if (!this.isMute) {\n // this.player.emit(EVENTS.mute, flag);\n // }\n this.setVolume(0);\n this.clear();\n } else {\n // if (this.isMute) {\n // this.player.emit(EVENTS.mute, flag);\n // }\n this.setVolume(0.5);\n }\n }\n\n setVolume(volume) {\n volume = parseFloat(volume).toFixed(2);\n if (isNaN(volume)) {\n return;\n }\n this.audioEnabled(true);\n volume = clamp(volume, 0, 1);\n if (this._prevVolume === null) {\n this.player.emit(EVENTS.mute, volume === 0);\n } else {\n if (this._prevVolume === 0 && volume > 0) {\n this.player.emit(EVENTS.mute, false);\n } else if (this._prevVolume > 0 && volume === 0) {\n this.player.emit(EVENTS.mute, true);\n }\n }\n this.gainNode.gain.value = volume;\n this.gainNode.gain.setValueAtTime(volume, this.audioContext.currentTime);\n this.player.emit(EVENTS.volumechange, this.player.volume);\n this.player.emit(EVENTS.volume, this.player.volume); // outer\n // save last volume\n this._prevVolume = volume;\n }\n\n closeAudio() {\n if (this.hasInitScriptNode) {\n this.scriptNode && this.scriptNode.disconnect(this.gainNode);\n this.gainNode && this.gainNode.disconnect(this.audioContext.destination);\n this.gainNode && this.gainNode.disconnect(this.mediaStreamAudioDestinationNode);\n }\n this.clear();\n }\n\n // 是否播放。。。\n audioEnabled(flag) {\n if (flag) {\n if (this.audioContext.state === 'suspended') {\n // resume\n this.audioContext.resume();\n }\n } else {\n if (this.audioContext.state === 'running') {\n // suspend\n this.audioContext.suspend();\n }\n }\n }\n\n isStateRunning() {\n return this.audioContext.state === 'running';\n }\n\n isStateSuspended() {\n return this.audioContext.state === 'suspended';\n }\n\n clear() {\n this.bufferList = [];\n }\n\n play(buffer, ts) {\n // if is mute\n if (this.isMute) {\n return;\n }\n\n this.hasAudio = true;\n\n this.bufferList.push({\n buffer,\n ts\n });\n\n if (this.bufferList.length > 20) {\n this.player.debug.warn('AudioContext', `bufferList is large: ${this.bufferList.length}`)\n\n // out of memory\n if (this.bufferList.length > 50) {\n this.bufferList.shift();\n }\n }\n // this.player.debug.log('AudioContext', `bufferList is ${this.bufferList.length}`)\n }\n\n pause() {\n this.audioSyncVideoOption = {\n diff: null\n };\n this.playing = false;\n this.clear();\n }\n\n resume() {\n this.playing = true;\n }\n\n\n}\n","import AudioContextLoader from \"./audioContextLoader\";\n\nexport default class Audio {\n constructor(player) {\n const Loader = Audio.getLoaderFactory();\n return new Loader(player);\n }\n\n static getLoaderFactory() {\n return AudioContextLoader;\n }\n}\n","import Emitter from \"../utils/emitter\";\nimport {EVENTS, EVENTS_ERROR, FETCH_ERROR, JESSIBUCA_EVENTS} from \"../constant\";\nimport {calculationRate, now} from \"../utils\";\n\nexport default class FetchLoader extends Emitter {\n constructor(player) {\n super();\n this.player = player;\n this.playing = false;\n\n this.abortController = new AbortController();\n //\n this.streamRate = calculationRate(rate => {\n player.emit(EVENTS.kBps, (rate / 1024).toFixed(2));\n });\n player.debug.log('FetchStream', 'init');\n }\n\n async destroy() {\n this.abort()\n this.off();\n this.streamRate = null;\n this.player.debug.log('FetchStream', 'destroy');\n }\n\n /**\n *\n * @param url\n * @param options\n */\n fetchStream(url, options = {}) {\n const {demux} = this.player;\n this.player.debug.log('FetchStream', 'fetchStream', url, JSON.stringify(options));\n this.player._times.streamStart = now();\n const fetchOptions = Object.assign({\n signal: this.abortController.signal,\n }, {\n headers: options.headers || {}\n });\n fetch(url, fetchOptions).then((res) => {\n const reader = res.body.getReader();\n this.emit(EVENTS.streamSuccess);\n const fetchNext = () => {\n reader.read().then(({done, value}) => {\n if (done) {\n demux.close();\n } else {\n this.streamRate && this.streamRate(value.byteLength);\n demux.dispatch(value);\n fetchNext();\n }\n }\n ).catch((e) => {\n demux.close();\n const errorString = e.toString();\n // aborted a request 。\n if (errorString.indexOf(FETCH_ERROR.abortError1) !== -1) {\n return\n }\n\n if (errorString.indexOf(FETCH_ERROR.abortError2) !== -1) {\n return;\n }\n\n if (e.name === FETCH_ERROR.abort) {\n return;\n }\n\n\n this.abort();\n\n this.emit(EVENTS_ERROR.fetchError, e);\n this.player.emit(EVENTS.error, EVENTS_ERROR.fetchError);\n })\n }\n fetchNext();\n }).catch((e) => {\n if (e.name === 'AbortError') {\n return;\n }\n demux.close();\n this.abort();\n this.emit(EVENTS_ERROR.fetchError, e)\n this.player.emit(EVENTS.error, EVENTS_ERROR.fetchError);\n })\n }\n\n abort() {\n if (this.abortController) {\n this.abortController.abort();\n this.abortController = null\n }\n }\n\n\n}\n","import Emitter from \"../utils/emitter\";\nimport {EVENTS, EVENTS_ERROR, WEBSOCKET_STATUS} from \"../constant\";\nimport {calculationRate, now} from \"../utils\";\n\nexport default class WebsocketLoader extends Emitter {\n constructor(player) {\n super();\n this.player = player;\n this.socket = null;\n this.socketStatus = WEBSOCKET_STATUS.notConnect;\n this.wsUrl = null;\n //\n this.streamRate = calculationRate(rate => {\n player.emit(EVENTS.kBps, (rate / 1024).toFixed(2));\n });\n\n player.debug.log('WebsocketLoader', 'init');\n }\n\n async destroy() {\n if (this.socket) {\n this.socket.close(1000, 'Client disconnecting');\n this.socket = null;\n }\n this.socketStatus = WEBSOCKET_STATUS.notConnect;\n this.streamRate = null;\n this.wsUrl = null;\n this.off();\n this.player.debug.log('websocketLoader', 'destroy');\n }\n\n _createWebSocket() {\n const player = this.player;\n const {\n debug,\n events: {proxy},\n demux,\n } = player;\n\n this.socket = new WebSocket(this.wsUrl);\n this.socket.binaryType = 'arraybuffer';\n proxy(this.socket, 'open', () => {\n this.emit(EVENTS.streamSuccess);\n debug.log('websocketLoader', 'socket open');\n this.socketStatus = WEBSOCKET_STATUS.open;\n });\n\n proxy(this.socket, 'message', event => {\n this.streamRate && this.streamRate(event.data.byteLength);\n this._handleMessage(event.data);\n });\n\n\n proxy(this.socket, 'close', () => {\n debug.log('websocketLoader', 'socket close');\n this.emit(EVENTS.streamEnd);\n this.socketStatus = WEBSOCKET_STATUS.close;\n });\n\n proxy(this.socket, 'error', error => {\n debug.log('websocketLoader', 'socket error');\n this.emit(EVENTS_ERROR.websocketError, error);\n this.player.emit(EVENTS.error, EVENTS_ERROR.websocketError);\n this.socketStatus = WEBSOCKET_STATUS.error;\n demux.close();\n debug.log('websocketLoader', `socket error:`, error);\n });\n }\n\n //\n _handleMessage(message) {\n const {demux} = this.player;\n if (!demux) {\n this.player.debug.warn('websocketLoader', 'websocket handle message demux is null');\n return;\n }\n demux.dispatch(message);\n }\n\n\n /**\n *\n * @param url\n * @param options\n */\n fetchStream(url, options) {\n this.player._times.streamStart = now();\n this.wsUrl = url;\n this._createWebSocket();\n }\n\n\n}\n","import FetchLoader from \"./fetchLoader\";\nimport WebsocketLoader from \"./websocketLoader\";\nimport {PLAYER_PLAY_PROTOCOL} from \"../constant\";\n\nexport default class Stream {\n constructor(player) {\n const Loader = Stream.getLoaderFactory(player._opt.protocol);\n return new Loader(player);\n }\n\n static getLoaderFactory(protocol) {\n if (protocol === PLAYER_PLAY_PROTOCOL.fetch) {\n return FetchLoader;\n } else if (protocol === PLAYER_PLAY_PROTOCOL.websocket) {\n return WebsocketLoader;\n }\n }\n}\n","'use strict';\r\n\r\n// Last time updated: 2021-03-09 3:20:22 AM UTC\r\n\r\n// ________________\r\n// RecordRTC v5.6.2\r\n\r\n// Open-Sourced: https://github.com/muaz-khan/RecordRTC\r\n\r\n// --------------------------------------------------\r\n// Muaz Khan - www.MuazKhan.com\r\n// MIT License - www.WebRTC-Experiment.com/licence\r\n// --------------------------------------------------\r\n\r\n// ____________\r\n// RecordRTC.js\r\n\r\n/**\r\n * {@link https://github.com/muaz-khan/RecordRTC|RecordRTC} is a WebRTC JavaScript library for audio/video as well as screen activity recording. It supports Chrome, Firefox, Opera, Android, and Microsoft Edge. Platforms: Linux, Mac and Windows. \r\n * @summary Record audio, video or screen inside the browser.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef RecordRTC\r\n * @class\r\n * @example\r\n * var recorder = RecordRTC(mediaStream or [arrayOfMediaStream], {\r\n * type: 'video', // audio or video or gif or canvas\r\n * recorderType: MediaStreamRecorder || CanvasRecorder || StereoAudioRecorder || Etc\r\n * });\r\n * recorder.startRecording();\r\n * @see For further information:\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - Single media-stream object, array of media-streams, html-canvas-element, etc.\r\n * @param {object} config - {type:\"video\", recorderType: MediaStreamRecorder, disableLogs: true, numberOfAudioChannels: 1, bufferSize: 0, sampleRate: 0, desiredSampRate: 16000, video: HTMLVideoElement, etc.}\r\n */\r\n\r\nfunction RecordRTC(mediaStream, config) {\r\n if (!mediaStream) {\r\n throw 'First parameter is required.';\r\n }\r\n\r\n config = config || {\r\n type: 'video'\r\n };\r\n\r\n config = new RecordRTCConfiguration(mediaStream, config);\r\n\r\n // a reference to user's recordRTC object\r\n var self = this;\r\n\r\n function startRecording(config2) {\r\n if (!config.disableLogs) {\r\n console.log('RecordRTC version: ', self.version);\r\n }\r\n\r\n if (!!config2) {\r\n // allow users to set options using startRecording method\r\n // config2 is similar to main \"config\" object (second parameter over RecordRTC constructor)\r\n config = new RecordRTCConfiguration(mediaStream, config2);\r\n }\r\n\r\n if (!config.disableLogs) {\r\n console.log('started recording ' + config.type + ' stream.');\r\n }\r\n\r\n if (mediaRecorder) {\r\n mediaRecorder.clearRecordedData();\r\n mediaRecorder.record();\r\n\r\n setState('recording');\r\n\r\n if (self.recordingDuration) {\r\n handleRecordingDuration();\r\n }\r\n return self;\r\n }\r\n\r\n initRecorder(function() {\r\n if (self.recordingDuration) {\r\n handleRecordingDuration();\r\n }\r\n });\r\n\r\n return self;\r\n }\r\n\r\n function initRecorder(initCallback) {\r\n if (initCallback) {\r\n config.initCallback = function() {\r\n initCallback();\r\n initCallback = config.initCallback = null; // recorder.initRecorder should be call-backed once.\r\n };\r\n }\r\n\r\n var Recorder = new GetRecorderType(mediaStream, config);\r\n\r\n mediaRecorder = new Recorder(mediaStream, config);\r\n mediaRecorder.record();\r\n\r\n setState('recording');\r\n\r\n if (!config.disableLogs) {\r\n console.log('Initialized recorderType:', mediaRecorder.constructor.name, 'for output-type:', config.type);\r\n }\r\n }\r\n\r\n function stopRecording(callback) {\r\n callback = callback || function() {};\r\n\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n if (self.state === 'paused') {\r\n self.resumeRecording();\r\n\r\n setTimeout(function() {\r\n stopRecording(callback);\r\n }, 1);\r\n return;\r\n }\r\n\r\n if (self.state !== 'recording' && !config.disableLogs) {\r\n console.warn('Recording state should be: \"recording\", however current state is: ', self.state);\r\n }\r\n\r\n if (!config.disableLogs) {\r\n console.log('Stopped recording ' + config.type + ' stream.');\r\n }\r\n\r\n if (config.type !== 'gif') {\r\n mediaRecorder.stop(_callback);\r\n } else {\r\n mediaRecorder.stop();\r\n _callback();\r\n }\r\n\r\n setState('stopped');\r\n\r\n function _callback(__blob) {\r\n if (!mediaRecorder) {\r\n if (typeof callback.call === 'function') {\r\n callback.call(self, '');\r\n } else {\r\n callback('');\r\n }\r\n return;\r\n }\r\n\r\n Object.keys(mediaRecorder).forEach(function(key) {\r\n if (typeof mediaRecorder[key] === 'function') {\r\n return;\r\n }\r\n\r\n self[key] = mediaRecorder[key];\r\n });\r\n\r\n var blob = mediaRecorder.blob;\r\n\r\n if (!blob) {\r\n if (__blob) {\r\n mediaRecorder.blob = blob = __blob;\r\n } else {\r\n throw 'Recording failed.';\r\n }\r\n }\r\n\r\n if (blob && !config.disableLogs) {\r\n console.log(blob.type, '->', bytesToSize(blob.size));\r\n }\r\n\r\n if (callback) {\r\n var url;\r\n\r\n try {\r\n url = URL.createObjectURL(blob);\r\n } catch (e) {}\r\n\r\n if (typeof callback.call === 'function') {\r\n callback.call(self, url);\r\n } else {\r\n callback(url);\r\n }\r\n }\r\n\r\n if (!config.autoWriteToDisk) {\r\n return;\r\n }\r\n\r\n getDataURL(function(dataURL) {\r\n var parameter = {};\r\n parameter[config.type + 'Blob'] = dataURL;\r\n DiskStorage.Store(parameter);\r\n });\r\n }\r\n }\r\n\r\n function pauseRecording() {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n if (self.state !== 'recording') {\r\n if (!config.disableLogs) {\r\n console.warn('Unable to pause the recording. Recording state: ', self.state);\r\n }\r\n return;\r\n }\r\n\r\n setState('paused');\r\n\r\n mediaRecorder.pause();\r\n\r\n if (!config.disableLogs) {\r\n console.log('Paused recording.');\r\n }\r\n }\r\n\r\n function resumeRecording() {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n if (self.state !== 'paused') {\r\n if (!config.disableLogs) {\r\n console.warn('Unable to resume the recording. Recording state: ', self.state);\r\n }\r\n return;\r\n }\r\n\r\n setState('recording');\r\n\r\n // not all libs have this method yet\r\n mediaRecorder.resume();\r\n\r\n if (!config.disableLogs) {\r\n console.log('Resumed recording.');\r\n }\r\n }\r\n\r\n function readFile(_blob) {\r\n postMessage(new FileReaderSync().readAsDataURL(_blob));\r\n }\r\n\r\n function getDataURL(callback, _mediaRecorder) {\r\n if (!callback) {\r\n throw 'Pass a callback function over getDataURL.';\r\n }\r\n\r\n var blob = _mediaRecorder ? _mediaRecorder.blob : (mediaRecorder || {}).blob;\r\n\r\n if (!blob) {\r\n if (!config.disableLogs) {\r\n console.warn('Blob encoder did not finish its job yet.');\r\n }\r\n\r\n setTimeout(function() {\r\n getDataURL(callback, _mediaRecorder);\r\n }, 1000);\r\n return;\r\n }\r\n\r\n if (typeof Worker !== 'undefined' && !navigator.mozGetUserMedia) {\r\n var webWorker = processInWebWorker(readFile);\r\n\r\n webWorker.onmessage = function(event) {\r\n callback(event.data);\r\n };\r\n\r\n webWorker.postMessage(blob);\r\n } else {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n reader.onload = function(event) {\r\n callback(event.target.result);\r\n };\r\n }\r\n\r\n function processInWebWorker(_function) {\r\n try {\r\n var blob = URL.createObjectURL(new Blob([_function.toString(),\r\n 'this.onmessage = function (eee) {' + _function.name + '(eee.data);}'\r\n ], {\r\n type: 'application/javascript'\r\n }));\r\n\r\n var worker = new Worker(blob);\r\n URL.revokeObjectURL(blob);\r\n return worker;\r\n } catch (e) {}\r\n }\r\n }\r\n\r\n function handleRecordingDuration(counter) {\r\n counter = counter || 0;\r\n\r\n if (self.state === 'paused') {\r\n setTimeout(function() {\r\n handleRecordingDuration(counter);\r\n }, 1000);\r\n return;\r\n }\r\n\r\n if (self.state === 'stopped') {\r\n return;\r\n }\r\n\r\n if (counter >= self.recordingDuration) {\r\n stopRecording(self.onRecordingStopped);\r\n return;\r\n }\r\n\r\n counter += 1000; // 1-second\r\n\r\n setTimeout(function() {\r\n handleRecordingDuration(counter);\r\n }, 1000);\r\n }\r\n\r\n function setState(state) {\r\n if (!self) {\r\n return;\r\n }\r\n\r\n self.state = state;\r\n\r\n if (typeof self.onStateChanged.call === 'function') {\r\n self.onStateChanged.call(self, state);\r\n } else {\r\n self.onStateChanged(state);\r\n }\r\n }\r\n\r\n var WARNING = 'It seems that recorder is destroyed or \"startRecording\" is not invoked for ' + config.type + ' recorder.';\r\n\r\n function warningLog() {\r\n if (config.disableLogs === true) {\r\n return;\r\n }\r\n\r\n console.warn(WARNING);\r\n }\r\n\r\n var mediaRecorder;\r\n\r\n var returnObject = {\r\n /**\r\n * This method starts the recording.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * var recorder = RecordRTC(mediaStream, {\r\n * type: 'video'\r\n * });\r\n * recorder.startRecording();\r\n */\r\n startRecording: startRecording,\r\n\r\n /**\r\n * This method stops the recording. It is strongly recommended to get \"blob\" or \"URI\" inside the callback to make sure all recorders finished their job.\r\n * @param {function} callback - Callback to get the recorded blob.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * // use either \"this\" or \"recorder\" object; both are identical\r\n * video.src = this.toURL();\r\n * var blob = this.getBlob();\r\n * });\r\n */\r\n stopRecording: stopRecording,\r\n\r\n /**\r\n * This method pauses the recording. You can resume recording using \"resumeRecording\" method.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @todo Firefox is unable to pause the recording. Fix it.\r\n * @example\r\n * recorder.pauseRecording(); // pause the recording\r\n * recorder.resumeRecording(); // resume again\r\n */\r\n pauseRecording: pauseRecording,\r\n\r\n /**\r\n * This method resumes the recording.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.pauseRecording(); // first of all, pause the recording\r\n * recorder.resumeRecording(); // now resume it\r\n */\r\n resumeRecording: resumeRecording,\r\n\r\n /**\r\n * This method initializes the recording.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @todo This method should be deprecated.\r\n * @example\r\n * recorder.initRecorder();\r\n */\r\n initRecorder: initRecorder,\r\n\r\n /**\r\n * Ask RecordRTC to auto-stop the recording after 5 minutes.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * var fiveMinutes = 5 * 1000 * 60;\r\n * recorder.setRecordingDuration(fiveMinutes, function() {\r\n * var blob = this.getBlob();\r\n * video.src = this.toURL();\r\n * });\r\n * \r\n * // or otherwise\r\n * recorder.setRecordingDuration(fiveMinutes).onRecordingStopped(function() {\r\n * var blob = this.getBlob();\r\n * video.src = this.toURL();\r\n * });\r\n */\r\n setRecordingDuration: function(recordingDuration, callback) {\r\n if (typeof recordingDuration === 'undefined') {\r\n throw 'recordingDuration is required.';\r\n }\r\n\r\n if (typeof recordingDuration !== 'number') {\r\n throw 'recordingDuration must be a number.';\r\n }\r\n\r\n self.recordingDuration = recordingDuration;\r\n self.onRecordingStopped = callback || function() {};\r\n\r\n return {\r\n onRecordingStopped: function(callback) {\r\n self.onRecordingStopped = callback;\r\n }\r\n };\r\n },\r\n\r\n /**\r\n * This method can be used to clear/reset all the recorded data.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @todo Figure out the difference between \"reset\" and \"clearRecordedData\" methods.\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n clearRecordedData: function() {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n mediaRecorder.clearRecordedData();\r\n\r\n if (!config.disableLogs) {\r\n console.log('Cleared old recorded data.');\r\n }\r\n },\r\n\r\n /**\r\n * Get the recorded blob. Use this method inside the \"stopRecording\" callback.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * var blob = this.getBlob();\r\n *\r\n * var file = new File([blob], 'filename.webm', {\r\n * type: 'video/webm'\r\n * });\r\n *\r\n * var formData = new FormData();\r\n * formData.append('file', file); // upload \"File\" object rather than a \"Blob\"\r\n * uploadToServer(formData);\r\n * });\r\n * @returns {Blob} Returns recorded data as \"Blob\" object.\r\n */\r\n getBlob: function() {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n return mediaRecorder.blob;\r\n },\r\n\r\n /**\r\n * Get data-URI instead of Blob.\r\n * @param {function} callback - Callback to get the Data-URI.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * recorder.getDataURL(function(dataURI) {\r\n * video.src = dataURI;\r\n * });\r\n * });\r\n */\r\n getDataURL: getDataURL,\r\n\r\n /**\r\n * Get virtual/temporary URL. Usage of this URL is limited to current tab.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * video.src = this.toURL();\r\n * });\r\n * @returns {String} Returns a virtual/temporary URL for the recorded \"Blob\".\r\n */\r\n toURL: function() {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n return URL.createObjectURL(mediaRecorder.blob);\r\n },\r\n\r\n /**\r\n * Get internal recording object (i.e. internal module) e.g. MutliStreamRecorder, MediaStreamRecorder, StereoAudioRecorder or WhammyRecorder etc.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * var internalRecorder = recorder.getInternalRecorder();\r\n * if(internalRecorder instanceof MultiStreamRecorder) {\r\n * internalRecorder.addStreams([newAudioStream]);\r\n * internalRecorder.resetVideoStreams([screenStream]);\r\n * }\r\n * @returns {Object} Returns internal recording object.\r\n */\r\n getInternalRecorder: function() {\r\n return mediaRecorder;\r\n },\r\n\r\n /**\r\n * Invoke save-as dialog to save the recorded blob into your disk.\r\n * @param {string} fileName - Set your own file name.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * this.save('file-name');\r\n *\r\n * // or manually:\r\n * invokeSaveAsDialog(this.getBlob(), 'filename.webm');\r\n * });\r\n */\r\n save: function(fileName) {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n invokeSaveAsDialog(mediaRecorder.blob, fileName);\r\n },\r\n\r\n /**\r\n * This method gets a blob from indexed-DB storage.\r\n * @param {function} callback - Callback to get the recorded blob.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.getFromDisk(function(dataURL) {\r\n * video.src = dataURL;\r\n * });\r\n */\r\n getFromDisk: function(callback) {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n RecordRTC.getFromDisk(config.type, callback);\r\n },\r\n\r\n /**\r\n * This method appends an array of webp images to the recorded video-blob. It takes an \"array\" object.\r\n * @type {Array.}\r\n * @param {Array} arrayOfWebPImages - Array of webp images.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @todo This method should be deprecated.\r\n * @example\r\n * var arrayOfWebPImages = [];\r\n * arrayOfWebPImages.push({\r\n * duration: index,\r\n * image: 'data:image/webp;base64,...'\r\n * });\r\n * recorder.setAdvertisementArray(arrayOfWebPImages);\r\n */\r\n setAdvertisementArray: function(arrayOfWebPImages) {\r\n config.advertisement = [];\r\n\r\n var length = arrayOfWebPImages.length;\r\n for (var i = 0; i < length; i++) {\r\n config.advertisement.push({\r\n duration: i,\r\n image: arrayOfWebPImages[i]\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * It is equivalent to \"recorder.getBlob()\" method. Usage of \"getBlob\" is recommended, though.\r\n * @property {Blob} blob - Recorded Blob can be accessed using this property.\r\n * @memberof RecordRTC\r\n * @instance\r\n * @readonly\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * var blob = this.blob;\r\n *\r\n * // below one is recommended\r\n * var blob = this.getBlob();\r\n * });\r\n */\r\n blob: null,\r\n\r\n /**\r\n * This works only with {recorderType:StereoAudioRecorder}. Use this property on \"stopRecording\" to verify the encoder's sample-rates.\r\n * @property {number} bufferSize - Buffer-size used to encode the WAV container\r\n * @memberof RecordRTC\r\n * @instance\r\n * @readonly\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * alert('Recorder used this buffer-size: ' + this.bufferSize);\r\n * });\r\n */\r\n bufferSize: 0,\r\n\r\n /**\r\n * This works only with {recorderType:StereoAudioRecorder}. Use this property on \"stopRecording\" to verify the encoder's sample-rates.\r\n * @property {number} sampleRate - Sample-rates used to encode the WAV container\r\n * @memberof RecordRTC\r\n * @instance\r\n * @readonly\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * alert('Recorder used these sample-rates: ' + this.sampleRate);\r\n * });\r\n */\r\n sampleRate: 0,\r\n\r\n /**\r\n * {recorderType:StereoAudioRecorder} returns ArrayBuffer object.\r\n * @property {ArrayBuffer} buffer - Audio ArrayBuffer, supported only in Chrome.\r\n * @memberof RecordRTC\r\n * @instance\r\n * @readonly\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * var arrayBuffer = this.buffer;\r\n * alert(arrayBuffer.byteLength);\r\n * });\r\n */\r\n buffer: null,\r\n\r\n /**\r\n * This method resets the recorder. So that you can reuse single recorder instance many times.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.reset();\r\n * recorder.startRecording();\r\n */\r\n reset: function() {\r\n if (self.state === 'recording' && !config.disableLogs) {\r\n console.warn('Stop an active recorder.');\r\n }\r\n\r\n if (mediaRecorder && typeof mediaRecorder.clearRecordedData === 'function') {\r\n mediaRecorder.clearRecordedData();\r\n }\r\n mediaRecorder = null;\r\n setState('inactive');\r\n self.blob = null;\r\n },\r\n\r\n /**\r\n * This method is called whenever recorder's state changes. Use this as an \"event\".\r\n * @property {String} state - A recorder's state can be: recording, paused, stopped or inactive.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.onStateChanged = function(state) {\r\n * console.log('Recorder state: ', state);\r\n * };\r\n */\r\n onStateChanged: function(state) {\r\n if (!config.disableLogs) {\r\n console.log('Recorder state changed:', state);\r\n }\r\n },\r\n\r\n /**\r\n * A recorder can have inactive, recording, paused or stopped states.\r\n * @property {String} state - A recorder's state can be: recording, paused, stopped or inactive.\r\n * @memberof RecordRTC\r\n * @static\r\n * @readonly\r\n * @example\r\n * // this looper function will keep you updated about the recorder's states.\r\n * (function looper() {\r\n * document.querySelector('h1').innerHTML = 'Recorder\\'s state is: ' + recorder.state;\r\n * if(recorder.state === 'stopped') return; // ignore+stop\r\n * setTimeout(looper, 1000); // update after every 3-seconds\r\n * })();\r\n * recorder.startRecording();\r\n */\r\n state: 'inactive',\r\n\r\n /**\r\n * Get recorder's readonly state.\r\n * @method\r\n * @memberof RecordRTC\r\n * @example\r\n * var state = recorder.getState();\r\n * @returns {String} Returns recording state.\r\n */\r\n getState: function() {\r\n return self.state;\r\n },\r\n\r\n /**\r\n * Destroy RecordRTC instance. Clear all recorders and objects.\r\n * @method\r\n * @memberof RecordRTC\r\n * @example\r\n * recorder.destroy();\r\n */\r\n destroy: function() {\r\n var disableLogsCache = config.disableLogs;\r\n\r\n config = {\r\n disableLogs: true\r\n };\r\n self.reset();\r\n setState('destroyed');\r\n returnObject = self = null;\r\n\r\n if (Storage.AudioContextConstructor) {\r\n Storage.AudioContextConstructor.close();\r\n Storage.AudioContextConstructor = null;\r\n }\r\n\r\n config.disableLogs = disableLogsCache;\r\n\r\n if (!config.disableLogs) {\r\n console.log('RecordRTC is destroyed.');\r\n }\r\n },\r\n\r\n /**\r\n * RecordRTC version number\r\n * @property {String} version - Release version number.\r\n * @memberof RecordRTC\r\n * @static\r\n * @readonly\r\n * @example\r\n * alert(recorder.version);\r\n */\r\n version: '5.6.2'\r\n };\r\n\r\n if (!this) {\r\n self = returnObject;\r\n return returnObject;\r\n }\r\n\r\n // if someone wants to use RecordRTC with the \"new\" keyword.\r\n for (var prop in returnObject) {\r\n this[prop] = returnObject[prop];\r\n }\r\n\r\n self = this;\r\n\r\n return returnObject;\r\n}\r\n\r\nRecordRTC.version = '5.6.2';\r\n\r\nif (typeof module !== 'undefined' /* && !!module.exports*/ ) {\r\n module.exports = RecordRTC;\r\n}\r\n\r\nif (typeof define === 'function' && define.amd) {\r\n define('RecordRTC', [], function() {\r\n return RecordRTC;\r\n });\r\n}\n\r\nRecordRTC.getFromDisk = function(type, callback) {\r\n if (!callback) {\r\n throw 'callback is mandatory.';\r\n }\r\n\r\n console.log('Getting recorded ' + (type === 'all' ? 'blobs' : type + ' blob ') + ' from disk!');\r\n DiskStorage.Fetch(function(dataURL, _type) {\r\n if (type !== 'all' && _type === type + 'Blob' && callback) {\r\n callback(dataURL);\r\n }\r\n\r\n if (type === 'all' && callback) {\r\n callback(dataURL, _type.replace('Blob', ''));\r\n }\r\n });\r\n};\r\n\r\n/**\r\n * This method can be used to store recorded blobs into IndexedDB storage.\r\n * @param {object} options - {audio: Blob, video: Blob, gif: Blob}\r\n * @method\r\n * @memberof RecordRTC\r\n * @example\r\n * RecordRTC.writeToDisk({\r\n * audio: audioBlob,\r\n * video: videoBlob,\r\n * gif : gifBlob\r\n * });\r\n */\r\nRecordRTC.writeToDisk = function(options) {\r\n console.log('Writing recorded blob(s) to disk!');\r\n options = options || {};\r\n if (options.audio && options.video && options.gif) {\r\n options.audio.getDataURL(function(audioDataURL) {\r\n options.video.getDataURL(function(videoDataURL) {\r\n options.gif.getDataURL(function(gifDataURL) {\r\n DiskStorage.Store({\r\n audioBlob: audioDataURL,\r\n videoBlob: videoDataURL,\r\n gifBlob: gifDataURL\r\n });\r\n });\r\n });\r\n });\r\n } else if (options.audio && options.video) {\r\n options.audio.getDataURL(function(audioDataURL) {\r\n options.video.getDataURL(function(videoDataURL) {\r\n DiskStorage.Store({\r\n audioBlob: audioDataURL,\r\n videoBlob: videoDataURL\r\n });\r\n });\r\n });\r\n } else if (options.audio && options.gif) {\r\n options.audio.getDataURL(function(audioDataURL) {\r\n options.gif.getDataURL(function(gifDataURL) {\r\n DiskStorage.Store({\r\n audioBlob: audioDataURL,\r\n gifBlob: gifDataURL\r\n });\r\n });\r\n });\r\n } else if (options.video && options.gif) {\r\n options.video.getDataURL(function(videoDataURL) {\r\n options.gif.getDataURL(function(gifDataURL) {\r\n DiskStorage.Store({\r\n videoBlob: videoDataURL,\r\n gifBlob: gifDataURL\r\n });\r\n });\r\n });\r\n } else if (options.audio) {\r\n options.audio.getDataURL(function(audioDataURL) {\r\n DiskStorage.Store({\r\n audioBlob: audioDataURL\r\n });\r\n });\r\n } else if (options.video) {\r\n options.video.getDataURL(function(videoDataURL) {\r\n DiskStorage.Store({\r\n videoBlob: videoDataURL\r\n });\r\n });\r\n } else if (options.gif) {\r\n options.gif.getDataURL(function(gifDataURL) {\r\n DiskStorage.Store({\r\n gifBlob: gifDataURL\r\n });\r\n });\r\n }\r\n};\n\r\n// __________________________\r\n// RecordRTC-Configuration.js\r\n\r\n/**\r\n * {@link RecordRTCConfiguration} is an inner/private helper for {@link RecordRTC}.\r\n * @summary It configures the 2nd parameter passed over {@link RecordRTC} and returns a valid \"config\" object.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef RecordRTCConfiguration\r\n * @class\r\n * @example\r\n * var options = RecordRTCConfiguration(mediaStream, options);\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {type:\"video\", disableLogs: true, numberOfAudioChannels: 1, bufferSize: 0, sampleRate: 0, video: HTMLVideoElement, getNativeBlob:true, etc.}\r\n */\r\n\r\nfunction RecordRTCConfiguration(mediaStream, config) {\r\n if (!config.recorderType && !config.type) {\r\n if (!!config.audio && !!config.video) {\r\n config.type = 'video';\r\n } else if (!!config.audio && !config.video) {\r\n config.type = 'audio';\r\n }\r\n }\r\n\r\n if (config.recorderType && !config.type) {\r\n if (config.recorderType === WhammyRecorder || config.recorderType === CanvasRecorder || (typeof WebAssemblyRecorder !== 'undefined' && config.recorderType === WebAssemblyRecorder)) {\r\n config.type = 'video';\r\n } else if (config.recorderType === GifRecorder) {\r\n config.type = 'gif';\r\n } else if (config.recorderType === StereoAudioRecorder) {\r\n config.type = 'audio';\r\n } else if (config.recorderType === MediaStreamRecorder) {\r\n if (getTracks(mediaStream, 'audio').length && getTracks(mediaStream, 'video').length) {\r\n config.type = 'video';\r\n } else if (!getTracks(mediaStream, 'audio').length && getTracks(mediaStream, 'video').length) {\r\n config.type = 'video';\r\n } else if (getTracks(mediaStream, 'audio').length && !getTracks(mediaStream, 'video').length) {\r\n config.type = 'audio';\r\n } else {\r\n // config.type = 'UnKnown';\r\n }\r\n }\r\n }\r\n\r\n if (typeof MediaStreamRecorder !== 'undefined' && typeof MediaRecorder !== 'undefined' && 'requestData' in MediaRecorder.prototype) {\r\n if (!config.mimeType) {\r\n config.mimeType = 'video/webm';\r\n }\r\n\r\n if (!config.type) {\r\n config.type = config.mimeType.split('/')[0];\r\n }\r\n\r\n if (!config.bitsPerSecond) {\r\n // config.bitsPerSecond = 128000;\r\n }\r\n }\r\n\r\n // consider default type=audio\r\n if (!config.type) {\r\n if (config.mimeType) {\r\n config.type = config.mimeType.split('/')[0];\r\n }\r\n if (!config.type) {\r\n config.type = 'audio';\r\n }\r\n }\r\n\r\n return config;\r\n}\n\r\n// __________________\r\n// GetRecorderType.js\r\n\r\n/**\r\n * {@link GetRecorderType} is an inner/private helper for {@link RecordRTC}.\r\n * @summary It returns best recorder-type available for your browser.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef GetRecorderType\r\n * @class\r\n * @example\r\n * var RecorderType = GetRecorderType(options);\r\n * var recorder = new RecorderType(options);\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {type:\"video\", disableLogs: true, numberOfAudioChannels: 1, bufferSize: 0, sampleRate: 0, video: HTMLVideoElement, etc.}\r\n */\r\n\r\nfunction GetRecorderType(mediaStream, config) {\r\n var recorder;\r\n\r\n // StereoAudioRecorder can work with all three: Edge, Firefox and Chrome\r\n // todo: detect if it is Edge, then auto use: StereoAudioRecorder\r\n if (isChrome || isEdge || isOpera) {\r\n // Media Stream Recording API has not been implemented in chrome yet;\r\n // That's why using WebAudio API to record stereo audio in WAV format\r\n recorder = StereoAudioRecorder;\r\n }\r\n\r\n if (typeof MediaRecorder !== 'undefined' && 'requestData' in MediaRecorder.prototype && !isChrome) {\r\n recorder = MediaStreamRecorder;\r\n }\r\n\r\n // video recorder (in WebM format)\r\n if (config.type === 'video' && (isChrome || isOpera)) {\r\n recorder = WhammyRecorder;\r\n\r\n if (typeof WebAssemblyRecorder !== 'undefined' && typeof ReadableStream !== 'undefined') {\r\n recorder = WebAssemblyRecorder;\r\n }\r\n }\r\n\r\n // video recorder (in Gif format)\r\n if (config.type === 'gif') {\r\n recorder = GifRecorder;\r\n }\r\n\r\n // html2canvas recording!\r\n if (config.type === 'canvas') {\r\n recorder = CanvasRecorder;\r\n }\r\n\r\n if (isMediaRecorderCompatible() && recorder !== CanvasRecorder && recorder !== GifRecorder && typeof MediaRecorder !== 'undefined' && 'requestData' in MediaRecorder.prototype) {\r\n if (getTracks(mediaStream, 'video').length || getTracks(mediaStream, 'audio').length) {\r\n // audio-only recording\r\n if (config.type === 'audio') {\r\n if (typeof MediaRecorder.isTypeSupported === 'function' && MediaRecorder.isTypeSupported('audio/webm')) {\r\n recorder = MediaStreamRecorder;\r\n }\r\n // else recorder = StereoAudioRecorder;\r\n } else {\r\n // video or screen tracks\r\n if (typeof MediaRecorder.isTypeSupported === 'function' && MediaRecorder.isTypeSupported('video/webm')) {\r\n recorder = MediaStreamRecorder;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (mediaStream instanceof Array && mediaStream.length) {\r\n recorder = MultiStreamRecorder;\r\n }\r\n\r\n if (config.recorderType) {\r\n recorder = config.recorderType;\r\n }\r\n\r\n if (!config.disableLogs && !!recorder && !!recorder.name) {\r\n console.log('Using recorderType:', recorder.name || recorder.constructor.name);\r\n }\r\n\r\n if (!recorder && isSafari) {\r\n recorder = MediaStreamRecorder;\r\n }\r\n\r\n return recorder;\r\n}\n\r\n// _____________\r\n// MRecordRTC.js\r\n\r\n/**\r\n * MRecordRTC runs on top of {@link RecordRTC} to bring multiple recordings in a single place, by providing simple API.\r\n * @summary MRecordRTC stands for \"Multiple-RecordRTC\".\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef MRecordRTC\r\n * @class\r\n * @example\r\n * var recorder = new MRecordRTC();\r\n * recorder.addStream(MediaStream);\r\n * recorder.mediaType = {\r\n * audio: true, // or StereoAudioRecorder or MediaStreamRecorder\r\n * video: true, // or WhammyRecorder or MediaStreamRecorder or WebAssemblyRecorder or CanvasRecorder\r\n * gif: true // or GifRecorder\r\n * };\r\n * // mimeType is optional and should be set only in advance cases.\r\n * recorder.mimeType = {\r\n * audio: 'audio/wav',\r\n * video: 'video/webm',\r\n * gif: 'image/gif'\r\n * };\r\n * recorder.startRecording();\r\n * @see For further information:\r\n * @see {@link https://github.com/muaz-khan/RecordRTC/tree/master/MRecordRTC|MRecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @requires {@link RecordRTC}\r\n */\r\n\r\nfunction MRecordRTC(mediaStream) {\r\n\r\n /**\r\n * This method attaches MediaStream object to {@link MRecordRTC}.\r\n * @param {MediaStream} mediaStream - A MediaStream object, either fetched using getUserMedia API, or generated using captureStreamUntilEnded or WebAudio API.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.addStream(MediaStream);\r\n */\r\n this.addStream = function(_mediaStream) {\r\n if (_mediaStream) {\r\n mediaStream = _mediaStream;\r\n }\r\n };\r\n\r\n /**\r\n * This property can be used to set the recording type e.g. audio, or video, or gif, or canvas.\r\n * @property {object} mediaType - {audio: true, video: true, gif: true}\r\n * @memberof MRecordRTC\r\n * @example\r\n * var recorder = new MRecordRTC();\r\n * recorder.mediaType = {\r\n * audio: true, // TRUE or StereoAudioRecorder or MediaStreamRecorder\r\n * video: true, // TRUE or WhammyRecorder or MediaStreamRecorder or WebAssemblyRecorder or CanvasRecorder\r\n * gif : true // TRUE or GifRecorder\r\n * };\r\n */\r\n this.mediaType = {\r\n audio: true,\r\n video: true\r\n };\r\n\r\n /**\r\n * This method starts recording.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.startRecording();\r\n */\r\n this.startRecording = function() {\r\n var mediaType = this.mediaType;\r\n var recorderType;\r\n var mimeType = this.mimeType || {\r\n audio: null,\r\n video: null,\r\n gif: null\r\n };\r\n\r\n if (typeof mediaType.audio !== 'function' && isMediaRecorderCompatible() && !getTracks(mediaStream, 'audio').length) {\r\n mediaType.audio = false;\r\n }\r\n\r\n if (typeof mediaType.video !== 'function' && isMediaRecorderCompatible() && !getTracks(mediaStream, 'video').length) {\r\n mediaType.video = false;\r\n }\r\n\r\n if (typeof mediaType.gif !== 'function' && isMediaRecorderCompatible() && !getTracks(mediaStream, 'video').length) {\r\n mediaType.gif = false;\r\n }\r\n\r\n if (!mediaType.audio && !mediaType.video && !mediaType.gif) {\r\n throw 'MediaStream must have either audio or video tracks.';\r\n }\r\n\r\n if (!!mediaType.audio) {\r\n recorderType = null;\r\n if (typeof mediaType.audio === 'function') {\r\n recorderType = mediaType.audio;\r\n }\r\n\r\n this.audioRecorder = new RecordRTC(mediaStream, {\r\n type: 'audio',\r\n bufferSize: this.bufferSize,\r\n sampleRate: this.sampleRate,\r\n numberOfAudioChannels: this.numberOfAudioChannels || 2,\r\n disableLogs: this.disableLogs,\r\n recorderType: recorderType,\r\n mimeType: mimeType.audio,\r\n timeSlice: this.timeSlice,\r\n onTimeStamp: this.onTimeStamp\r\n });\r\n\r\n if (!mediaType.video) {\r\n this.audioRecorder.startRecording();\r\n }\r\n }\r\n\r\n if (!!mediaType.video) {\r\n recorderType = null;\r\n if (typeof mediaType.video === 'function') {\r\n recorderType = mediaType.video;\r\n }\r\n\r\n var newStream = mediaStream;\r\n\r\n if (isMediaRecorderCompatible() && !!mediaType.audio && typeof mediaType.audio === 'function') {\r\n var videoTrack = getTracks(mediaStream, 'video')[0];\r\n\r\n if (isFirefox) {\r\n newStream = new MediaStream();\r\n newStream.addTrack(videoTrack);\r\n\r\n if (recorderType && recorderType === WhammyRecorder) {\r\n // Firefox does NOT supports webp-encoding yet\r\n // But Firefox do supports WebAssemblyRecorder\r\n recorderType = MediaStreamRecorder;\r\n }\r\n } else {\r\n newStream = new MediaStream();\r\n newStream.addTrack(videoTrack);\r\n }\r\n }\r\n\r\n this.videoRecorder = new RecordRTC(newStream, {\r\n type: 'video',\r\n video: this.video,\r\n canvas: this.canvas,\r\n frameInterval: this.frameInterval || 10,\r\n disableLogs: this.disableLogs,\r\n recorderType: recorderType,\r\n mimeType: mimeType.video,\r\n timeSlice: this.timeSlice,\r\n onTimeStamp: this.onTimeStamp,\r\n workerPath: this.workerPath,\r\n webAssemblyPath: this.webAssemblyPath,\r\n frameRate: this.frameRate, // used by WebAssemblyRecorder; values: usually 30; accepts any.\r\n bitrate: this.bitrate // used by WebAssemblyRecorder; values: 0 to 1000+\r\n });\r\n\r\n if (!mediaType.audio) {\r\n this.videoRecorder.startRecording();\r\n }\r\n }\r\n\r\n if (!!mediaType.audio && !!mediaType.video) {\r\n var self = this;\r\n\r\n var isSingleRecorder = isMediaRecorderCompatible() === true;\r\n\r\n if (mediaType.audio instanceof StereoAudioRecorder && !!mediaType.video) {\r\n isSingleRecorder = false;\r\n } else if (mediaType.audio !== true && mediaType.video !== true && mediaType.audio !== mediaType.video) {\r\n isSingleRecorder = false;\r\n }\r\n\r\n if (isSingleRecorder === true) {\r\n self.audioRecorder = null;\r\n self.videoRecorder.startRecording();\r\n } else {\r\n self.videoRecorder.initRecorder(function() {\r\n self.audioRecorder.initRecorder(function() {\r\n // Both recorders are ready to record things accurately\r\n self.videoRecorder.startRecording();\r\n self.audioRecorder.startRecording();\r\n });\r\n });\r\n }\r\n }\r\n\r\n if (!!mediaType.gif) {\r\n recorderType = null;\r\n if (typeof mediaType.gif === 'function') {\r\n recorderType = mediaType.gif;\r\n }\r\n this.gifRecorder = new RecordRTC(mediaStream, {\r\n type: 'gif',\r\n frameRate: this.frameRate || 200,\r\n quality: this.quality || 10,\r\n disableLogs: this.disableLogs,\r\n recorderType: recorderType,\r\n mimeType: mimeType.gif\r\n });\r\n this.gifRecorder.startRecording();\r\n }\r\n };\r\n\r\n /**\r\n * This method stops recording.\r\n * @param {function} callback - Callback function is invoked when all encoders finished their jobs.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.stopRecording(function(recording){\r\n * var audioBlob = recording.audio;\r\n * var videoBlob = recording.video;\r\n * var gifBlob = recording.gif;\r\n * });\r\n */\r\n this.stopRecording = function(callback) {\r\n callback = callback || function() {};\r\n\r\n if (this.audioRecorder) {\r\n this.audioRecorder.stopRecording(function(blobURL) {\r\n callback(blobURL, 'audio');\r\n });\r\n }\r\n\r\n if (this.videoRecorder) {\r\n this.videoRecorder.stopRecording(function(blobURL) {\r\n callback(blobURL, 'video');\r\n });\r\n }\r\n\r\n if (this.gifRecorder) {\r\n this.gifRecorder.stopRecording(function(blobURL) {\r\n callback(blobURL, 'gif');\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * This method pauses recording.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.pauseRecording();\r\n */\r\n this.pauseRecording = function() {\r\n if (this.audioRecorder) {\r\n this.audioRecorder.pauseRecording();\r\n }\r\n\r\n if (this.videoRecorder) {\r\n this.videoRecorder.pauseRecording();\r\n }\r\n\r\n if (this.gifRecorder) {\r\n this.gifRecorder.pauseRecording();\r\n }\r\n };\r\n\r\n /**\r\n * This method resumes recording.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.resumeRecording();\r\n */\r\n this.resumeRecording = function() {\r\n if (this.audioRecorder) {\r\n this.audioRecorder.resumeRecording();\r\n }\r\n\r\n if (this.videoRecorder) {\r\n this.videoRecorder.resumeRecording();\r\n }\r\n\r\n if (this.gifRecorder) {\r\n this.gifRecorder.resumeRecording();\r\n }\r\n };\r\n\r\n /**\r\n * This method can be used to manually get all recorded blobs.\r\n * @param {function} callback - All recorded blobs are passed back to the \"callback\" function.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.getBlob(function(recording){\r\n * var audioBlob = recording.audio;\r\n * var videoBlob = recording.video;\r\n * var gifBlob = recording.gif;\r\n * });\r\n * // or\r\n * var audioBlob = recorder.getBlob().audio;\r\n * var videoBlob = recorder.getBlob().video;\r\n */\r\n this.getBlob = function(callback) {\r\n var output = {};\r\n\r\n if (this.audioRecorder) {\r\n output.audio = this.audioRecorder.getBlob();\r\n }\r\n\r\n if (this.videoRecorder) {\r\n output.video = this.videoRecorder.getBlob();\r\n }\r\n\r\n if (this.gifRecorder) {\r\n output.gif = this.gifRecorder.getBlob();\r\n }\r\n\r\n if (callback) {\r\n callback(output);\r\n }\r\n\r\n return output;\r\n };\r\n\r\n /**\r\n * Destroy all recorder instances.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.destroy();\r\n */\r\n this.destroy = function() {\r\n if (this.audioRecorder) {\r\n this.audioRecorder.destroy();\r\n this.audioRecorder = null;\r\n }\r\n\r\n if (this.videoRecorder) {\r\n this.videoRecorder.destroy();\r\n this.videoRecorder = null;\r\n }\r\n\r\n if (this.gifRecorder) {\r\n this.gifRecorder.destroy();\r\n this.gifRecorder = null;\r\n }\r\n };\r\n\r\n /**\r\n * This method can be used to manually get all recorded blobs' DataURLs.\r\n * @param {function} callback - All recorded blobs' DataURLs are passed back to the \"callback\" function.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.getDataURL(function(recording){\r\n * var audioDataURL = recording.audio;\r\n * var videoDataURL = recording.video;\r\n * var gifDataURL = recording.gif;\r\n * });\r\n */\r\n this.getDataURL = function(callback) {\r\n this.getBlob(function(blob) {\r\n if (blob.audio && blob.video) {\r\n getDataURL(blob.audio, function(_audioDataURL) {\r\n getDataURL(blob.video, function(_videoDataURL) {\r\n callback({\r\n audio: _audioDataURL,\r\n video: _videoDataURL\r\n });\r\n });\r\n });\r\n } else if (blob.audio) {\r\n getDataURL(blob.audio, function(_audioDataURL) {\r\n callback({\r\n audio: _audioDataURL\r\n });\r\n });\r\n } else if (blob.video) {\r\n getDataURL(blob.video, function(_videoDataURL) {\r\n callback({\r\n video: _videoDataURL\r\n });\r\n });\r\n }\r\n });\r\n\r\n function getDataURL(blob, callback00) {\r\n if (typeof Worker !== 'undefined') {\r\n var webWorker = processInWebWorker(function readFile(_blob) {\r\n postMessage(new FileReaderSync().readAsDataURL(_blob));\r\n });\r\n\r\n webWorker.onmessage = function(event) {\r\n callback00(event.data);\r\n };\r\n\r\n webWorker.postMessage(blob);\r\n } else {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n reader.onload = function(event) {\r\n callback00(event.target.result);\r\n };\r\n }\r\n }\r\n\r\n function processInWebWorker(_function) {\r\n var blob = URL.createObjectURL(new Blob([_function.toString(),\r\n 'this.onmessage = function (eee) {' + _function.name + '(eee.data);}'\r\n ], {\r\n type: 'application/javascript'\r\n }));\r\n\r\n var worker = new Worker(blob);\r\n var url;\r\n if (typeof URL !== 'undefined') {\r\n url = URL;\r\n } else if (typeof webkitURL !== 'undefined') {\r\n url = webkitURL;\r\n } else {\r\n throw 'Neither URL nor webkitURL detected.';\r\n }\r\n url.revokeObjectURL(blob);\r\n return worker;\r\n }\r\n };\r\n\r\n /**\r\n * This method can be used to ask {@link MRecordRTC} to write all recorded blobs into IndexedDB storage.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.writeToDisk();\r\n */\r\n this.writeToDisk = function() {\r\n RecordRTC.writeToDisk({\r\n audio: this.audioRecorder,\r\n video: this.videoRecorder,\r\n gif: this.gifRecorder\r\n });\r\n };\r\n\r\n /**\r\n * This method can be used to invoke a save-as dialog for all recorded blobs.\r\n * @param {object} args - {audio: 'audio-name', video: 'video-name', gif: 'gif-name'}\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.save({\r\n * audio: 'audio-file-name',\r\n * video: 'video-file-name',\r\n * gif : 'gif-file-name'\r\n * });\r\n */\r\n this.save = function(args) {\r\n args = args || {\r\n audio: true,\r\n video: true,\r\n gif: true\r\n };\r\n\r\n if (!!args.audio && this.audioRecorder) {\r\n this.audioRecorder.save(typeof args.audio === 'string' ? args.audio : '');\r\n }\r\n\r\n if (!!args.video && this.videoRecorder) {\r\n this.videoRecorder.save(typeof args.video === 'string' ? args.video : '');\r\n }\r\n if (!!args.gif && this.gifRecorder) {\r\n this.gifRecorder.save(typeof args.gif === 'string' ? args.gif : '');\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * This method can be used to get all recorded blobs from IndexedDB storage.\r\n * @param {string} type - 'all' or 'audio' or 'video' or 'gif'\r\n * @param {function} callback - Callback function to get all stored blobs.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * MRecordRTC.getFromDisk('all', function(dataURL, type){\r\n * if(type === 'audio') { }\r\n * if(type === 'video') { }\r\n * if(type === 'gif') { }\r\n * });\r\n */\r\nMRecordRTC.getFromDisk = RecordRTC.getFromDisk;\r\n\r\n/**\r\n * This method can be used to store recorded blobs into IndexedDB storage.\r\n * @param {object} options - {audio: Blob, video: Blob, gif: Blob}\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * MRecordRTC.writeToDisk({\r\n * audio: audioBlob,\r\n * video: videoBlob,\r\n * gif : gifBlob\r\n * });\r\n */\r\nMRecordRTC.writeToDisk = RecordRTC.writeToDisk;\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.MRecordRTC = MRecordRTC;\r\n}\n\r\nvar browserFakeUserAgent = 'Fake/5.0 (FakeOS) AppleWebKit/123 (KHTML, like Gecko) Fake/12.3.4567.89 Fake/123.45';\r\n\r\n(function(that) {\r\n if (!that) {\r\n return;\r\n }\r\n\r\n if (typeof window !== 'undefined') {\r\n return;\r\n }\r\n\r\n if (typeof global === 'undefined') {\r\n return;\r\n }\r\n\r\n global.navigator = {\r\n userAgent: browserFakeUserAgent,\r\n getUserMedia: function() {}\r\n };\r\n\r\n if (!global.console) {\r\n global.console = {};\r\n }\r\n\r\n if (typeof global.console.log === 'undefined' || typeof global.console.error === 'undefined') {\r\n global.console.error = global.console.log = global.console.log || function() {\r\n console.log(arguments);\r\n };\r\n }\r\n\r\n if (typeof document === 'undefined') {\r\n /*global document:true */\r\n that.document = {\r\n documentElement: {\r\n appendChild: function() {\r\n return '';\r\n }\r\n }\r\n };\r\n\r\n document.createElement = document.captureStream = document.mozCaptureStream = function() {\r\n var obj = {\r\n getContext: function() {\r\n return obj;\r\n },\r\n play: function() {},\r\n pause: function() {},\r\n drawImage: function() {},\r\n toDataURL: function() {\r\n return '';\r\n },\r\n style: {}\r\n };\r\n return obj;\r\n };\r\n\r\n that.HTMLVideoElement = function() {};\r\n }\r\n\r\n if (typeof location === 'undefined') {\r\n /*global location:true */\r\n that.location = {\r\n protocol: 'file:',\r\n href: '',\r\n hash: ''\r\n };\r\n }\r\n\r\n if (typeof screen === 'undefined') {\r\n /*global screen:true */\r\n that.screen = {\r\n width: 0,\r\n height: 0\r\n };\r\n }\r\n\r\n if (typeof URL === 'undefined') {\r\n /*global screen:true */\r\n that.URL = {\r\n createObjectURL: function() {\r\n return '';\r\n },\r\n revokeObjectURL: function() {\r\n return '';\r\n }\r\n };\r\n }\r\n\r\n /*global window:true */\r\n that.window = global;\r\n})(typeof global !== 'undefined' ? global : null);\n\r\n// _____________________________\r\n// Cross-Browser-Declarations.js\r\n\r\n// animation-frame used in WebM recording\r\n\r\n/*jshint -W079 */\r\nvar requestAnimationFrame = window.requestAnimationFrame;\r\nif (typeof requestAnimationFrame === 'undefined') {\r\n if (typeof webkitRequestAnimationFrame !== 'undefined') {\r\n /*global requestAnimationFrame:true */\r\n requestAnimationFrame = webkitRequestAnimationFrame;\r\n } else if (typeof mozRequestAnimationFrame !== 'undefined') {\r\n /*global requestAnimationFrame:true */\r\n requestAnimationFrame = mozRequestAnimationFrame;\r\n } else if (typeof msRequestAnimationFrame !== 'undefined') {\r\n /*global requestAnimationFrame:true */\r\n requestAnimationFrame = msRequestAnimationFrame;\r\n } else if (typeof requestAnimationFrame === 'undefined') {\r\n // via: https://gist.github.com/paulirish/1579671\r\n var lastTime = 0;\r\n\r\n /*global requestAnimationFrame:true */\r\n requestAnimationFrame = function(callback, element) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = setTimeout(function() {\r\n callback(currTime + timeToCall);\r\n }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n }\r\n}\r\n\r\n/*jshint -W079 */\r\nvar cancelAnimationFrame = window.cancelAnimationFrame;\r\nif (typeof cancelAnimationFrame === 'undefined') {\r\n if (typeof webkitCancelAnimationFrame !== 'undefined') {\r\n /*global cancelAnimationFrame:true */\r\n cancelAnimationFrame = webkitCancelAnimationFrame;\r\n } else if (typeof mozCancelAnimationFrame !== 'undefined') {\r\n /*global cancelAnimationFrame:true */\r\n cancelAnimationFrame = mozCancelAnimationFrame;\r\n } else if (typeof msCancelAnimationFrame !== 'undefined') {\r\n /*global cancelAnimationFrame:true */\r\n cancelAnimationFrame = msCancelAnimationFrame;\r\n } else if (typeof cancelAnimationFrame === 'undefined') {\r\n /*global cancelAnimationFrame:true */\r\n cancelAnimationFrame = function(id) {\r\n clearTimeout(id);\r\n };\r\n }\r\n}\r\n\r\n// WebAudio API representer\r\nvar AudioContext = window.AudioContext;\r\n\r\nif (typeof AudioContext === 'undefined') {\r\n if (typeof webkitAudioContext !== 'undefined') {\r\n /*global AudioContext:true */\r\n AudioContext = webkitAudioContext;\r\n }\r\n\r\n if (typeof mozAudioContext !== 'undefined') {\r\n /*global AudioContext:true */\r\n AudioContext = mozAudioContext;\r\n }\r\n}\r\n\r\n/*jshint -W079 */\r\nvar URL = window.URL;\r\n\r\nif (typeof URL === 'undefined' && typeof webkitURL !== 'undefined') {\r\n /*global URL:true */\r\n URL = webkitURL;\r\n}\r\n\r\nif (typeof navigator !== 'undefined' && typeof navigator.getUserMedia === 'undefined') { // maybe window.navigator?\r\n if (typeof navigator.webkitGetUserMedia !== 'undefined') {\r\n navigator.getUserMedia = navigator.webkitGetUserMedia;\r\n }\r\n\r\n if (typeof navigator.mozGetUserMedia !== 'undefined') {\r\n navigator.getUserMedia = navigator.mozGetUserMedia;\r\n }\r\n}\r\n\r\nvar isEdge = navigator.userAgent.indexOf('Edge') !== -1 && (!!navigator.msSaveBlob || !!navigator.msSaveOrOpenBlob);\r\nvar isOpera = !!window.opera || navigator.userAgent.indexOf('OPR/') !== -1;\r\nvar isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1 && ('netscape' in window) && / rv:/.test(navigator.userAgent);\r\nvar isChrome = (!isOpera && !isEdge && !!navigator.webkitGetUserMedia) || isElectron() || navigator.userAgent.toLowerCase().indexOf('chrome/') !== -1;\r\n\r\nvar isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n\r\nif (isSafari && !isChrome && navigator.userAgent.indexOf('CriOS') !== -1) {\r\n isSafari = false;\r\n isChrome = true;\r\n}\r\n\r\nvar MediaStream = window.MediaStream;\r\n\r\nif (typeof MediaStream === 'undefined' && typeof webkitMediaStream !== 'undefined') {\r\n MediaStream = webkitMediaStream;\r\n}\r\n\r\n/*global MediaStream:true */\r\nif (typeof MediaStream !== 'undefined') {\r\n // override \"stop\" method for all browsers\r\n if (typeof MediaStream.prototype.stop === 'undefined') {\r\n MediaStream.prototype.stop = function() {\r\n this.getTracks().forEach(function(track) {\r\n track.stop();\r\n });\r\n };\r\n }\r\n}\r\n\r\n// below function via: http://goo.gl/B3ae8c\r\n/**\r\n * Return human-readable file size.\r\n * @param {number} bytes - Pass bytes and get formatted string.\r\n * @returns {string} - formatted string\r\n * @example\r\n * bytesToSize(1024*1024*5) === '5 GB'\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\nfunction bytesToSize(bytes) {\r\n var k = 1000;\r\n var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\r\n if (bytes === 0) {\r\n return '0 Bytes';\r\n }\r\n var i = parseInt(Math.floor(Math.log(bytes) / Math.log(k)), 10);\r\n return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i];\r\n}\r\n\r\n/**\r\n * @param {Blob} file - File or Blob object. This parameter is required.\r\n * @param {string} fileName - Optional file name e.g. \"Recorded-Video.webm\"\r\n * @example\r\n * invokeSaveAsDialog(blob or file, [optional] fileName);\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\nfunction invokeSaveAsDialog(file, fileName) {\r\n if (!file) {\r\n throw 'Blob object is required.';\r\n }\r\n\r\n if (!file.type) {\r\n try {\r\n file.type = 'video/webm';\r\n } catch (e) {}\r\n }\r\n\r\n var fileExtension = (file.type || 'video/webm').split('/')[1];\r\n if (fileExtension.indexOf(';') !== -1) {\r\n // extended mimetype, e.g. 'video/webm;codecs=vp8,opus'\r\n fileExtension = fileExtension.split(';')[0];\r\n }\r\n if (fileName && fileName.indexOf('.') !== -1) {\r\n var splitted = fileName.split('.');\r\n fileName = splitted[0];\r\n fileExtension = splitted[1];\r\n }\r\n\r\n var fileFullName = (fileName || (Math.round(Math.random() * 9999999999) + 888888888)) + '.' + fileExtension;\r\n\r\n if (typeof navigator.msSaveOrOpenBlob !== 'undefined') {\r\n return navigator.msSaveOrOpenBlob(file, fileFullName);\r\n } else if (typeof navigator.msSaveBlob !== 'undefined') {\r\n return navigator.msSaveBlob(file, fileFullName);\r\n }\r\n\r\n var hyperlink = document.createElement('a');\r\n hyperlink.href = URL.createObjectURL(file);\r\n hyperlink.download = fileFullName;\r\n\r\n hyperlink.style = 'display:none;opacity:0;color:transparent;';\r\n (document.body || document.documentElement).appendChild(hyperlink);\r\n\r\n if (typeof hyperlink.click === 'function') {\r\n hyperlink.click();\r\n } else {\r\n hyperlink.target = '_blank';\r\n hyperlink.dispatchEvent(new MouseEvent('click', {\r\n view: window,\r\n bubbles: true,\r\n cancelable: true\r\n }));\r\n }\r\n\r\n URL.revokeObjectURL(hyperlink.href);\r\n}\r\n\r\n/**\r\n * from: https://github.com/cheton/is-electron/blob/master/index.js\r\n **/\r\nfunction isElectron() {\r\n // Renderer process\r\n if (typeof window !== 'undefined' && typeof window.process === 'object' && window.process.type === 'renderer') {\r\n return true;\r\n }\r\n\r\n // Main process\r\n if (typeof process !== 'undefined' && typeof process.versions === 'object' && !!process.versions.electron) {\r\n return true;\r\n }\r\n\r\n // Detect the user agent when the `nodeIntegration` option is set to true\r\n if (typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction getTracks(stream, kind) {\r\n if (!stream || !stream.getTracks) {\r\n return [];\r\n }\r\n\r\n return stream.getTracks().filter(function(t) {\r\n return t.kind === (kind || 'audio');\r\n });\r\n}\r\n\r\nfunction setSrcObject(stream, element) {\r\n if ('srcObject' in element) {\r\n element.srcObject = stream;\r\n } else if ('mozSrcObject' in element) {\r\n element.mozSrcObject = stream;\r\n } else {\r\n element.srcObject = stream;\r\n }\r\n}\r\n\r\n/**\r\n * @param {Blob} file - File or Blob object.\r\n * @param {function} callback - Callback function.\r\n * @example\r\n * getSeekableBlob(blob or file, callback);\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\nfunction getSeekableBlob(inputBlob, callback) {\r\n // EBML.js copyrights goes to: https://github.com/legokichi/ts-ebml\r\n if (typeof EBML === 'undefined') {\r\n throw new Error('Please link: https://www.webrtc-experiment.com/EBML.js');\r\n }\r\n\r\n var reader = new EBML.Reader();\r\n var decoder = new EBML.Decoder();\r\n var tools = EBML.tools;\r\n\r\n var fileReader = new FileReader();\r\n fileReader.onload = function(e) {\r\n var ebmlElms = decoder.decode(this.result);\r\n ebmlElms.forEach(function(element) {\r\n reader.read(element);\r\n });\r\n reader.stop();\r\n var refinedMetadataBuf = tools.makeMetadataSeekable(reader.metadatas, reader.duration, reader.cues);\r\n var body = this.result.slice(reader.metadataSize);\r\n var newBlob = new Blob([refinedMetadataBuf, body], {\r\n type: 'video/webm'\r\n });\r\n\r\n callback(newBlob);\r\n };\r\n fileReader.readAsArrayBuffer(inputBlob);\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.invokeSaveAsDialog = invokeSaveAsDialog;\r\n RecordRTC.getTracks = getTracks;\r\n RecordRTC.getSeekableBlob = getSeekableBlob;\r\n RecordRTC.bytesToSize = bytesToSize;\r\n RecordRTC.isElectron = isElectron;\r\n}\r\n\r\n// __________ (used to handle stuff like http://goo.gl/xmE5eg) issue #129\r\n// Storage.js\r\n\r\n/**\r\n * Storage is a standalone object used by {@link RecordRTC} to store reusable objects e.g. \"new AudioContext\".\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @example\r\n * Storage.AudioContext === webkitAudioContext\r\n * @property {webkitAudioContext} AudioContext - Keeps a reference to AudioContext object.\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\n\r\nvar Storage = {};\r\n\r\nif (typeof AudioContext !== 'undefined') {\r\n Storage.AudioContext = AudioContext;\r\n} else if (typeof webkitAudioContext !== 'undefined') {\r\n Storage.AudioContext = webkitAudioContext;\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.Storage = Storage;\r\n}\n\r\nfunction isMediaRecorderCompatible() {\r\n if (isFirefox || isSafari || isEdge) {\r\n return true;\r\n }\r\n\r\n var nVer = navigator.appVersion;\r\n var nAgt = navigator.userAgent;\r\n var fullVersion = '' + parseFloat(navigator.appVersion);\r\n var majorVersion = parseInt(navigator.appVersion, 10);\r\n var nameOffset, verOffset, ix;\r\n\r\n if (isChrome || isOpera) {\r\n verOffset = nAgt.indexOf('Chrome');\r\n fullVersion = nAgt.substring(verOffset + 7);\r\n }\r\n\r\n // trim the fullVersion string at semicolon/space if present\r\n if ((ix = fullVersion.indexOf(';')) !== -1) {\r\n fullVersion = fullVersion.substring(0, ix);\r\n }\r\n\r\n if ((ix = fullVersion.indexOf(' ')) !== -1) {\r\n fullVersion = fullVersion.substring(0, ix);\r\n }\r\n\r\n majorVersion = parseInt('' + fullVersion, 10);\r\n\r\n if (isNaN(majorVersion)) {\r\n fullVersion = '' + parseFloat(navigator.appVersion);\r\n majorVersion = parseInt(navigator.appVersion, 10);\r\n }\r\n\r\n return majorVersion >= 49;\r\n}\n\r\n// ______________________\r\n// MediaStreamRecorder.js\r\n\r\n/**\r\n * MediaStreamRecorder is an abstraction layer for {@link https://w3c.github.io/mediacapture-record/MediaRecorder.html|MediaRecorder API}. It is used by {@link RecordRTC} to record MediaStream(s) in both Chrome and Firefox.\r\n * @summary Runs top over {@link https://w3c.github.io/mediacapture-record/MediaRecorder.html|MediaRecorder API}.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://github.com/muaz-khan|Muaz Khan}\r\n * @typedef MediaStreamRecorder\r\n * @class\r\n * @example\r\n * var config = {\r\n * mimeType: 'video/webm', // vp8, vp9, h264, mkv, opus/vorbis\r\n * audioBitsPerSecond : 256 * 8 * 1024,\r\n * videoBitsPerSecond : 256 * 8 * 1024,\r\n * bitsPerSecond: 256 * 8 * 1024, // if this is provided, skip above two\r\n * checkForInactiveTracks: true,\r\n * timeSlice: 1000, // concatenate intervals based blobs\r\n * ondataavailable: function() {} // get intervals based blobs\r\n * }\r\n * var recorder = new MediaStreamRecorder(mediaStream, config);\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n *\r\n * // or\r\n * var blob = recorder.blob;\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {disableLogs:true, initCallback: function, mimeType: \"video/webm\", timeSlice: 1000}\r\n * @throws Will throw an error if first argument \"MediaStream\" is missing. Also throws error if \"MediaRecorder API\" are not supported by the browser.\r\n */\r\n\r\nfunction MediaStreamRecorder(mediaStream, config) {\r\n var self = this;\r\n\r\n if (typeof mediaStream === 'undefined') {\r\n throw 'First argument \"MediaStream\" is required.';\r\n }\r\n\r\n if (typeof MediaRecorder === 'undefined') {\r\n throw 'Your browser does not support the Media Recorder API. Please try other modules e.g. WhammyRecorder or StereoAudioRecorder.';\r\n }\r\n\r\n config = config || {\r\n // bitsPerSecond: 256 * 8 * 1024,\r\n mimeType: 'video/webm'\r\n };\r\n\r\n if (config.type === 'audio') {\r\n if (getTracks(mediaStream, 'video').length && getTracks(mediaStream, 'audio').length) {\r\n var stream;\r\n if (!!navigator.mozGetUserMedia) {\r\n stream = new MediaStream();\r\n stream.addTrack(getTracks(mediaStream, 'audio')[0]);\r\n } else {\r\n // webkitMediaStream\r\n stream = new MediaStream(getTracks(mediaStream, 'audio'));\r\n }\r\n mediaStream = stream;\r\n }\r\n\r\n if (!config.mimeType || config.mimeType.toString().toLowerCase().indexOf('audio') === -1) {\r\n config.mimeType = isChrome ? 'audio/webm' : 'audio/ogg';\r\n }\r\n\r\n if (config.mimeType && config.mimeType.toString().toLowerCase() !== 'audio/ogg' && !!navigator.mozGetUserMedia) {\r\n // forcing better codecs on Firefox (via #166)\r\n config.mimeType = 'audio/ogg';\r\n }\r\n }\r\n\r\n var arrayOfBlobs = [];\r\n\r\n /**\r\n * This method returns array of blobs. Use only with \"timeSlice\". Its useful to preview recording anytime, without using the \"stop\" method.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * var arrayOfBlobs = recorder.getArrayOfBlobs();\r\n * @returns {Array} Returns array of recorded blobs.\r\n */\r\n this.getArrayOfBlobs = function() {\r\n return arrayOfBlobs;\r\n };\r\n\r\n /**\r\n * This method records MediaStream.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n // set defaults\r\n self.blob = null;\r\n self.clearRecordedData();\r\n self.timestamps = [];\r\n allStates = [];\r\n arrayOfBlobs = [];\r\n\r\n var recorderHints = config;\r\n\r\n if (!config.disableLogs) {\r\n console.log('Passing following config over MediaRecorder API.', recorderHints);\r\n }\r\n\r\n if (mediaRecorder) {\r\n // mandatory to make sure Firefox doesn't fails to record streams 3-4 times without reloading the page.\r\n mediaRecorder = null;\r\n }\r\n\r\n if (isChrome && !isMediaRecorderCompatible()) {\r\n // to support video-only recording on stable\r\n recorderHints = 'video/vp8';\r\n }\r\n\r\n if (typeof MediaRecorder.isTypeSupported === 'function' && recorderHints.mimeType) {\r\n if (!MediaRecorder.isTypeSupported(recorderHints.mimeType)) {\r\n if (!config.disableLogs) {\r\n console.warn('MediaRecorder API seems unable to record mimeType:', recorderHints.mimeType);\r\n }\r\n\r\n recorderHints.mimeType = config.type === 'audio' ? 'audio/webm' : 'video/webm';\r\n }\r\n }\r\n\r\n // using MediaRecorder API here\r\n try {\r\n mediaRecorder = new MediaRecorder(mediaStream, recorderHints);\r\n\r\n // reset\r\n config.mimeType = recorderHints.mimeType;\r\n } catch (e) {\r\n // chrome-based fallback\r\n mediaRecorder = new MediaRecorder(mediaStream);\r\n }\r\n\r\n // old hack?\r\n if (recorderHints.mimeType && !MediaRecorder.isTypeSupported && 'canRecordMimeType' in mediaRecorder && mediaRecorder.canRecordMimeType(recorderHints.mimeType) === false) {\r\n if (!config.disableLogs) {\r\n console.warn('MediaRecorder API seems unable to record mimeType:', recorderHints.mimeType);\r\n }\r\n }\r\n\r\n // Dispatching OnDataAvailable Handler\r\n mediaRecorder.ondataavailable = function(e) {\r\n if (e.data) {\r\n allStates.push('ondataavailable: ' + bytesToSize(e.data.size));\r\n }\r\n\r\n if (typeof config.timeSlice === 'number') {\r\n if (e.data && e.data.size) {\r\n arrayOfBlobs.push(e.data);\r\n updateTimeStamp();\r\n\r\n if (typeof config.ondataavailable === 'function') {\r\n // intervals based blobs\r\n var blob = config.getNativeBlob ? e.data : new Blob([e.data], {\r\n type: getMimeType(recorderHints)\r\n });\r\n config.ondataavailable(blob);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n if (!e.data || !e.data.size || e.data.size < 100 || self.blob) {\r\n // make sure that stopRecording always getting fired\r\n // even if there is invalid data\r\n if (self.recordingCallback) {\r\n self.recordingCallback(new Blob([], {\r\n type: getMimeType(recorderHints)\r\n }));\r\n self.recordingCallback = null;\r\n }\r\n return;\r\n }\r\n\r\n self.blob = config.getNativeBlob ? e.data : new Blob([e.data], {\r\n type: getMimeType(recorderHints)\r\n });\r\n\r\n if (self.recordingCallback) {\r\n self.recordingCallback(self.blob);\r\n self.recordingCallback = null;\r\n }\r\n };\r\n\r\n mediaRecorder.onstart = function() {\r\n allStates.push('started');\r\n };\r\n\r\n mediaRecorder.onpause = function() {\r\n allStates.push('paused');\r\n };\r\n\r\n mediaRecorder.onresume = function() {\r\n allStates.push('resumed');\r\n };\r\n\r\n mediaRecorder.onstop = function() {\r\n allStates.push('stopped');\r\n };\r\n\r\n mediaRecorder.onerror = function(error) {\r\n if (!error) {\r\n return;\r\n }\r\n\r\n if (!error.name) {\r\n error.name = 'UnknownError';\r\n }\r\n\r\n allStates.push('error: ' + error);\r\n\r\n if (!config.disableLogs) {\r\n // via: https://w3c.github.io/mediacapture-record/MediaRecorder.html#exception-summary\r\n if (error.name.toString().toLowerCase().indexOf('invalidstate') !== -1) {\r\n console.error('The MediaRecorder is not in a state in which the proposed operation is allowed to be executed.', error);\r\n } else if (error.name.toString().toLowerCase().indexOf('notsupported') !== -1) {\r\n console.error('MIME type (', recorderHints.mimeType, ') is not supported.', error);\r\n } else if (error.name.toString().toLowerCase().indexOf('security') !== -1) {\r\n console.error('MediaRecorder security error', error);\r\n }\r\n\r\n // older code below\r\n else if (error.name === 'OutOfMemory') {\r\n console.error('The UA has exhaused the available memory. User agents SHOULD provide as much additional information as possible in the message attribute.', error);\r\n } else if (error.name === 'IllegalStreamModification') {\r\n console.error('A modification to the stream has occurred that makes it impossible to continue recording. An example would be the addition of a Track while recording is occurring. User agents SHOULD provide as much additional information as possible in the message attribute.', error);\r\n } else if (error.name === 'OtherRecordingError') {\r\n console.error('Used for an fatal error other than those listed above. User agents SHOULD provide as much additional information as possible in the message attribute.', error);\r\n } else if (error.name === 'GenericError') {\r\n console.error('The UA cannot provide the codec or recording option that has been requested.', error);\r\n } else {\r\n console.error('MediaRecorder Error', error);\r\n }\r\n }\r\n\r\n (function(looper) {\r\n if (!self.manuallyStopped && mediaRecorder && mediaRecorder.state === 'inactive') {\r\n delete config.timeslice;\r\n\r\n // 10 minutes, enough?\r\n mediaRecorder.start(10 * 60 * 1000);\r\n return;\r\n }\r\n\r\n setTimeout(looper, 1000);\r\n })();\r\n\r\n if (mediaRecorder.state !== 'inactive' && mediaRecorder.state !== 'stopped') {\r\n mediaRecorder.stop();\r\n }\r\n };\r\n\r\n if (typeof config.timeSlice === 'number') {\r\n updateTimeStamp();\r\n mediaRecorder.start(config.timeSlice);\r\n } else {\r\n // default is 60 minutes; enough?\r\n // use config => {timeSlice: 1000} otherwise\r\n\r\n mediaRecorder.start(3.6e+6);\r\n }\r\n\r\n if (config.initCallback) {\r\n config.initCallback(); // old code\r\n }\r\n };\r\n\r\n /**\r\n * @property {Array} timestamps - Array of time stamps\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * console.log(recorder.timestamps);\r\n */\r\n this.timestamps = [];\r\n\r\n function updateTimeStamp() {\r\n self.timestamps.push(new Date().getTime());\r\n\r\n if (typeof config.onTimeStamp === 'function') {\r\n config.onTimeStamp(self.timestamps[self.timestamps.length - 1], self.timestamps);\r\n }\r\n }\r\n\r\n function getMimeType(secondObject) {\r\n if (mediaRecorder && mediaRecorder.mimeType) {\r\n return mediaRecorder.mimeType;\r\n }\r\n\r\n return secondObject.mimeType || 'video/webm';\r\n }\r\n\r\n /**\r\n * This method stops recording MediaStream.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n callback = callback || function() {};\r\n\r\n self.manuallyStopped = true; // used inside the mediaRecorder.onerror\r\n\r\n if (!mediaRecorder) {\r\n return;\r\n }\r\n\r\n this.recordingCallback = callback;\r\n\r\n if (mediaRecorder.state === 'recording') {\r\n mediaRecorder.stop();\r\n }\r\n\r\n if (typeof config.timeSlice === 'number') {\r\n setTimeout(function() {\r\n self.blob = new Blob(arrayOfBlobs, {\r\n type: getMimeType(config)\r\n });\r\n\r\n self.recordingCallback(self.blob);\r\n }, 100);\r\n }\r\n };\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n if (!mediaRecorder) {\r\n return;\r\n }\r\n\r\n if (mediaRecorder.state === 'recording') {\r\n mediaRecorder.pause();\r\n }\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n if (!mediaRecorder) {\r\n return;\r\n }\r\n\r\n if (mediaRecorder.state === 'paused') {\r\n mediaRecorder.resume();\r\n }\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n if (mediaRecorder && mediaRecorder.state === 'recording') {\r\n self.stop(clearRecordedDataCB);\r\n }\r\n\r\n clearRecordedDataCB();\r\n };\r\n\r\n function clearRecordedDataCB() {\r\n arrayOfBlobs = [];\r\n mediaRecorder = null;\r\n self.timestamps = [];\r\n }\r\n\r\n // Reference to \"MediaRecorder\" object\r\n var mediaRecorder;\r\n\r\n /**\r\n * Access to native MediaRecorder API\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @instance\r\n * @example\r\n * var internal = recorder.getInternalRecorder();\r\n * internal.ondataavailable = function() {}; // override\r\n * internal.stream, internal.onpause, internal.onstop, etc.\r\n * @returns {Object} Returns internal recording object.\r\n */\r\n this.getInternalRecorder = function() {\r\n return mediaRecorder;\r\n };\r\n\r\n function isMediaStreamActive() {\r\n if ('active' in mediaStream) {\r\n if (!mediaStream.active) {\r\n return false;\r\n }\r\n } else if ('ended' in mediaStream) { // old hack\r\n if (mediaStream.ended) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * @property {Blob} blob - Recorded data as \"Blob\" object.\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.stop(function() {\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n this.blob = null;\r\n\r\n\r\n /**\r\n * Get MediaRecorder readonly state.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * var state = recorder.getState();\r\n * @returns {String} Returns recording state.\r\n */\r\n this.getState = function() {\r\n if (!mediaRecorder) {\r\n return 'inactive';\r\n }\r\n\r\n return mediaRecorder.state || 'inactive';\r\n };\r\n\r\n // list of all recording states\r\n var allStates = [];\r\n\r\n /**\r\n * Get MediaRecorder all recording states.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * var state = recorder.getAllStates();\r\n * @returns {Array} Returns all recording states\r\n */\r\n this.getAllStates = function() {\r\n return allStates;\r\n };\r\n\r\n // if any Track within the MediaStream is muted or not enabled at any time, \r\n // the browser will only record black frames \r\n // or silence since that is the content produced by the Track\r\n // so we need to stopRecording as soon as any single track ends.\r\n if (typeof config.checkForInactiveTracks === 'undefined') {\r\n config.checkForInactiveTracks = false; // disable to minimize CPU usage\r\n }\r\n\r\n var self = this;\r\n\r\n // this method checks if media stream is stopped\r\n // or if any track is ended.\r\n (function looper() {\r\n if (!mediaRecorder || config.checkForInactiveTracks === false) {\r\n return;\r\n }\r\n\r\n if (isMediaStreamActive() === false) {\r\n if (!config.disableLogs) {\r\n console.log('MediaStream seems stopped.');\r\n }\r\n self.stop();\r\n return;\r\n }\r\n\r\n setTimeout(looper, 1000); // check every second\r\n })();\r\n\r\n // for debugging\r\n this.name = 'MediaStreamRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.MediaStreamRecorder = MediaStreamRecorder;\r\n}\r\n\r\n// source code from: http://typedarray.org/wp-content/projects/WebAudioRecorder/script.js\r\n// https://github.com/mattdiamond/Recorderjs#license-mit\r\n// ______________________\r\n// StereoAudioRecorder.js\r\n\r\n/**\r\n * StereoAudioRecorder is a standalone class used by {@link RecordRTC} to bring \"stereo\" audio-recording in chrome.\r\n * @summary JavaScript standalone object for stereo audio recording.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef StereoAudioRecorder\r\n * @class\r\n * @example\r\n * var recorder = new StereoAudioRecorder(MediaStream, {\r\n * sampleRate: 44100,\r\n * bufferSize: 4096\r\n * });\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {sampleRate: 44100, bufferSize: 4096, numberOfAudioChannels: 1, etc.}\r\n */\r\n\r\nfunction StereoAudioRecorder(mediaStream, config) {\r\n if (!getTracks(mediaStream, 'audio').length) {\r\n throw 'Your stream has no audio tracks.';\r\n }\r\n\r\n config = config || {};\r\n\r\n var self = this;\r\n\r\n // variables\r\n var leftchannel = [];\r\n var rightchannel = [];\r\n var recording = false;\r\n var recordingLength = 0;\r\n var jsAudioNode;\r\n\r\n var numberOfAudioChannels = 2;\r\n\r\n /**\r\n * Set sample rates such as 8K or 16K. Reference: http://stackoverflow.com/a/28977136/552182\r\n * @property {number} desiredSampRate - Desired Bits per sample * 1000\r\n * @memberof StereoAudioRecorder\r\n * @instance\r\n * @example\r\n * var recorder = StereoAudioRecorder(mediaStream, {\r\n * desiredSampRate: 16 * 1000 // bits-per-sample * 1000\r\n * });\r\n */\r\n var desiredSampRate = config.desiredSampRate;\r\n\r\n // backward compatibility\r\n if (config.leftChannel === true) {\r\n numberOfAudioChannels = 1;\r\n }\r\n\r\n if (config.numberOfAudioChannels === 1) {\r\n numberOfAudioChannels = 1;\r\n }\r\n\r\n if (!numberOfAudioChannels || numberOfAudioChannels < 1) {\r\n numberOfAudioChannels = 2;\r\n }\r\n\r\n if (!config.disableLogs) {\r\n console.log('StereoAudioRecorder is set to record number of channels: ' + numberOfAudioChannels);\r\n }\r\n\r\n // if any Track within the MediaStream is muted or not enabled at any time, \r\n // the browser will only record black frames \r\n // or silence since that is the content produced by the Track\r\n // so we need to stopRecording as soon as any single track ends.\r\n if (typeof config.checkForInactiveTracks === 'undefined') {\r\n config.checkForInactiveTracks = true;\r\n }\r\n\r\n function isMediaStreamActive() {\r\n if (config.checkForInactiveTracks === false) {\r\n // always return \"true\"\r\n return true;\r\n }\r\n\r\n if ('active' in mediaStream) {\r\n if (!mediaStream.active) {\r\n return false;\r\n }\r\n } else if ('ended' in mediaStream) { // old hack\r\n if (mediaStream.ended) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * This method records MediaStream.\r\n * @method\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n if (isMediaStreamActive() === false) {\r\n throw 'Please make sure MediaStream is active.';\r\n }\r\n\r\n resetVariables();\r\n\r\n isAudioProcessStarted = isPaused = false;\r\n recording = true;\r\n\r\n if (typeof config.timeSlice !== 'undefined') {\r\n looper();\r\n }\r\n };\r\n\r\n function mergeLeftRightBuffers(config, callback) {\r\n function mergeAudioBuffers(config, cb) {\r\n var numberOfAudioChannels = config.numberOfAudioChannels;\r\n\r\n // todo: \"slice(0)\" --- is it causes loop? Should be removed?\r\n var leftBuffers = config.leftBuffers.slice(0);\r\n var rightBuffers = config.rightBuffers.slice(0);\r\n var sampleRate = config.sampleRate;\r\n var internalInterleavedLength = config.internalInterleavedLength;\r\n var desiredSampRate = config.desiredSampRate;\r\n\r\n if (numberOfAudioChannels === 2) {\r\n leftBuffers = mergeBuffers(leftBuffers, internalInterleavedLength);\r\n rightBuffers = mergeBuffers(rightBuffers, internalInterleavedLength);\r\n\r\n if (desiredSampRate) {\r\n leftBuffers = interpolateArray(leftBuffers, desiredSampRate, sampleRate);\r\n rightBuffers = interpolateArray(rightBuffers, desiredSampRate, sampleRate);\r\n }\r\n }\r\n\r\n if (numberOfAudioChannels === 1) {\r\n leftBuffers = mergeBuffers(leftBuffers, internalInterleavedLength);\r\n\r\n if (desiredSampRate) {\r\n leftBuffers = interpolateArray(leftBuffers, desiredSampRate, sampleRate);\r\n }\r\n }\r\n\r\n // set sample rate as desired sample rate\r\n if (desiredSampRate) {\r\n sampleRate = desiredSampRate;\r\n }\r\n\r\n // for changing the sampling rate, reference:\r\n // http://stackoverflow.com/a/28977136/552182\r\n function interpolateArray(data, newSampleRate, oldSampleRate) {\r\n var fitCount = Math.round(data.length * (newSampleRate / oldSampleRate));\r\n var newData = [];\r\n var springFactor = Number((data.length - 1) / (fitCount - 1));\r\n newData[0] = data[0];\r\n for (var i = 1; i < fitCount - 1; i++) {\r\n var tmp = i * springFactor;\r\n var before = Number(Math.floor(tmp)).toFixed();\r\n var after = Number(Math.ceil(tmp)).toFixed();\r\n var atPoint = tmp - before;\r\n newData[i] = linearInterpolate(data[before], data[after], atPoint);\r\n }\r\n newData[fitCount - 1] = data[data.length - 1];\r\n return newData;\r\n }\r\n\r\n function linearInterpolate(before, after, atPoint) {\r\n return before + (after - before) * atPoint;\r\n }\r\n\r\n function mergeBuffers(channelBuffer, rLength) {\r\n var result = new Float64Array(rLength);\r\n var offset = 0;\r\n var lng = channelBuffer.length;\r\n\r\n for (var i = 0; i < lng; i++) {\r\n var buffer = channelBuffer[i];\r\n result.set(buffer, offset);\r\n offset += buffer.length;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n function interleave(leftChannel, rightChannel) {\r\n var length = leftChannel.length + rightChannel.length;\r\n\r\n var result = new Float64Array(length);\r\n\r\n var inputIndex = 0;\r\n\r\n for (var index = 0; index < length;) {\r\n result[index++] = leftChannel[inputIndex];\r\n result[index++] = rightChannel[inputIndex];\r\n inputIndex++;\r\n }\r\n return result;\r\n }\r\n\r\n function writeUTFBytes(view, offset, string) {\r\n var lng = string.length;\r\n for (var i = 0; i < lng; i++) {\r\n view.setUint8(offset + i, string.charCodeAt(i));\r\n }\r\n }\r\n\r\n // interleave both channels together\r\n var interleaved;\r\n\r\n if (numberOfAudioChannels === 2) {\r\n interleaved = interleave(leftBuffers, rightBuffers);\r\n }\r\n\r\n if (numberOfAudioChannels === 1) {\r\n interleaved = leftBuffers;\r\n }\r\n\r\n var interleavedLength = interleaved.length;\r\n\r\n // create wav file\r\n var resultingBufferLength = 44 + interleavedLength * 2;\r\n\r\n var buffer = new ArrayBuffer(resultingBufferLength);\r\n\r\n var view = new DataView(buffer);\r\n\r\n // RIFF chunk descriptor/identifier \r\n writeUTFBytes(view, 0, 'RIFF');\r\n\r\n // RIFF chunk length\r\n // changed \"44\" to \"36\" via #401\r\n view.setUint32(4, 36 + interleavedLength * 2, true);\r\n\r\n // RIFF type \r\n writeUTFBytes(view, 8, 'WAVE');\r\n\r\n // format chunk identifier \r\n // FMT sub-chunk\r\n writeUTFBytes(view, 12, 'fmt ');\r\n\r\n // format chunk length \r\n view.setUint32(16, 16, true);\r\n\r\n // sample format (raw)\r\n view.setUint16(20, 1, true);\r\n\r\n // stereo (2 channels)\r\n view.setUint16(22, numberOfAudioChannels, true);\r\n\r\n // sample rate \r\n view.setUint32(24, sampleRate, true);\r\n\r\n // byte rate (sample rate * block align)\r\n view.setUint32(28, sampleRate * numberOfAudioChannels * 2, true);\r\n\r\n // block align (channel count * bytes per sample) \r\n view.setUint16(32, numberOfAudioChannels * 2, true);\r\n\r\n // bits per sample \r\n view.setUint16(34, 16, true);\r\n\r\n // data sub-chunk\r\n // data chunk identifier \r\n writeUTFBytes(view, 36, 'data');\r\n\r\n // data chunk length \r\n view.setUint32(40, interleavedLength * 2, true);\r\n\r\n // write the PCM samples\r\n var lng = interleavedLength;\r\n var index = 44;\r\n var volume = 1;\r\n for (var i = 0; i < lng; i++) {\r\n view.setInt16(index, interleaved[i] * (0x7FFF * volume), true);\r\n index += 2;\r\n }\r\n\r\n if (cb) {\r\n return cb({\r\n buffer: buffer,\r\n view: view\r\n });\r\n }\r\n\r\n postMessage({\r\n buffer: buffer,\r\n view: view\r\n });\r\n }\r\n\r\n if (config.noWorker) {\r\n mergeAudioBuffers(config, function(data) {\r\n callback(data.buffer, data.view);\r\n });\r\n return;\r\n }\r\n\r\n\r\n var webWorker = processInWebWorker(mergeAudioBuffers);\r\n\r\n webWorker.onmessage = function(event) {\r\n callback(event.data.buffer, event.data.view);\r\n\r\n // release memory\r\n URL.revokeObjectURL(webWorker.workerURL);\r\n\r\n // kill webworker (or Chrome will kill your page after ~25 calls)\r\n webWorker.terminate();\r\n };\r\n\r\n webWorker.postMessage(config);\r\n }\r\n\r\n function processInWebWorker(_function) {\r\n var workerURL = URL.createObjectURL(new Blob([_function.toString(),\r\n ';this.onmessage = function (eee) {' + _function.name + '(eee.data);}'\r\n ], {\r\n type: 'application/javascript'\r\n }));\r\n\r\n var worker = new Worker(workerURL);\r\n worker.workerURL = workerURL;\r\n return worker;\r\n }\r\n\r\n /**\r\n * This method stops recording MediaStream.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n callback = callback || function() {};\r\n\r\n // stop recording\r\n recording = false;\r\n\r\n mergeLeftRightBuffers({\r\n desiredSampRate: desiredSampRate,\r\n sampleRate: sampleRate,\r\n numberOfAudioChannels: numberOfAudioChannels,\r\n internalInterleavedLength: recordingLength,\r\n leftBuffers: leftchannel,\r\n rightBuffers: numberOfAudioChannels === 1 ? [] : rightchannel,\r\n noWorker: config.noWorker\r\n }, function(buffer, view) {\r\n /**\r\n * @property {Blob} blob - The recorded blob object.\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.stop(function(){\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n self.blob = new Blob([view], {\r\n type: 'audio/wav'\r\n });\r\n\r\n /**\r\n * @property {ArrayBuffer} buffer - The recorded buffer object.\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.stop(function(){\r\n * var buffer = recorder.buffer;\r\n * });\r\n */\r\n self.buffer = new ArrayBuffer(view.buffer.byteLength);\r\n\r\n /**\r\n * @property {DataView} view - The recorded data-view object.\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.stop(function(){\r\n * var view = recorder.view;\r\n * });\r\n */\r\n self.view = view;\r\n\r\n self.sampleRate = desiredSampRate || sampleRate;\r\n self.bufferSize = bufferSize;\r\n\r\n // recorded audio length\r\n self.length = recordingLength;\r\n\r\n isAudioProcessStarted = false;\r\n\r\n if (callback) {\r\n callback(self.blob);\r\n }\r\n });\r\n };\r\n\r\n if (typeof RecordRTC.Storage === 'undefined') {\r\n RecordRTC.Storage = {\r\n AudioContextConstructor: null,\r\n AudioContext: window.AudioContext || window.webkitAudioContext\r\n };\r\n }\r\n\r\n if (!RecordRTC.Storage.AudioContextConstructor || RecordRTC.Storage.AudioContextConstructor.state === 'closed') {\r\n RecordRTC.Storage.AudioContextConstructor = new RecordRTC.Storage.AudioContext();\r\n }\r\n\r\n var context = RecordRTC.Storage.AudioContextConstructor;\r\n\r\n // creates an audio node from the microphone incoming stream\r\n var audioInput = context.createMediaStreamSource(mediaStream);\r\n\r\n var legalBufferValues = [0, 256, 512, 1024, 2048, 4096, 8192, 16384];\r\n\r\n /**\r\n * From the spec: This value controls how frequently the audioprocess event is\r\n * dispatched and how many sample-frames need to be processed each call.\r\n * Lower values for buffer size will result in a lower (better) latency.\r\n * Higher values will be necessary to avoid audio breakup and glitches\r\n * The size of the buffer (in sample-frames) which needs to\r\n * be processed each time onprocessaudio is called.\r\n * Legal values are (256, 512, 1024, 2048, 4096, 8192, 16384).\r\n * @property {number} bufferSize - Buffer-size for how frequently the audioprocess event is dispatched.\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder = new StereoAudioRecorder(mediaStream, {\r\n * bufferSize: 4096\r\n * });\r\n */\r\n\r\n // \"0\" means, let chrome decide the most accurate buffer-size for current platform.\r\n var bufferSize = typeof config.bufferSize === 'undefined' ? 4096 : config.bufferSize;\r\n\r\n if (legalBufferValues.indexOf(bufferSize) === -1) {\r\n if (!config.disableLogs) {\r\n console.log('Legal values for buffer-size are ' + JSON.stringify(legalBufferValues, null, '\\t'));\r\n }\r\n }\r\n\r\n if (context.createJavaScriptNode) {\r\n jsAudioNode = context.createJavaScriptNode(bufferSize, numberOfAudioChannels, numberOfAudioChannels);\r\n } else if (context.createScriptProcessor) {\r\n jsAudioNode = context.createScriptProcessor(bufferSize, numberOfAudioChannels, numberOfAudioChannels);\r\n } else {\r\n throw 'WebAudio API has no support on this browser.';\r\n }\r\n\r\n // connect the stream to the script processor\r\n audioInput.connect(jsAudioNode);\r\n\r\n if (!config.bufferSize) {\r\n bufferSize = jsAudioNode.bufferSize; // device buffer-size\r\n }\r\n\r\n /**\r\n * The sample rate (in sample-frames per second) at which the\r\n * AudioContext handles audio. It is assumed that all AudioNodes\r\n * in the context run at this rate. In making this assumption,\r\n * sample-rate converters or \"varispeed\" processors are not supported\r\n * in real-time processing.\r\n * The sampleRate parameter describes the sample-rate of the\r\n * linear PCM audio data in the buffer in sample-frames per second.\r\n * An implementation must support sample-rates in at least\r\n * the range 22050 to 96000.\r\n * @property {number} sampleRate - Buffer-size for how frequently the audioprocess event is dispatched.\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder = new StereoAudioRecorder(mediaStream, {\r\n * sampleRate: 44100\r\n * });\r\n */\r\n var sampleRate = typeof config.sampleRate !== 'undefined' ? config.sampleRate : context.sampleRate || 44100;\r\n\r\n if (sampleRate < 22050 || sampleRate > 96000) {\r\n // Ref: http://stackoverflow.com/a/26303918/552182\r\n if (!config.disableLogs) {\r\n console.log('sample-rate must be under range 22050 and 96000.');\r\n }\r\n }\r\n\r\n if (!config.disableLogs) {\r\n if (config.desiredSampRate) {\r\n console.log('Desired sample-rate: ' + config.desiredSampRate);\r\n }\r\n }\r\n\r\n var isPaused = false;\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n isPaused = true;\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n if (isMediaStreamActive() === false) {\r\n throw 'Please make sure MediaStream is active.';\r\n }\r\n\r\n if (!recording) {\r\n if (!config.disableLogs) {\r\n console.log('Seems recording has been restarted.');\r\n }\r\n this.record();\r\n return;\r\n }\r\n\r\n isPaused = false;\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n config.checkForInactiveTracks = false;\r\n\r\n if (recording) {\r\n this.stop(clearRecordedDataCB);\r\n }\r\n\r\n clearRecordedDataCB();\r\n };\r\n\r\n function resetVariables() {\r\n leftchannel = [];\r\n rightchannel = [];\r\n recordingLength = 0;\r\n isAudioProcessStarted = false;\r\n recording = false;\r\n isPaused = false;\r\n context = null;\r\n\r\n self.leftchannel = leftchannel;\r\n self.rightchannel = rightchannel;\r\n self.numberOfAudioChannels = numberOfAudioChannels;\r\n self.desiredSampRate = desiredSampRate;\r\n self.sampleRate = sampleRate;\r\n self.recordingLength = recordingLength;\r\n\r\n intervalsBasedBuffers = {\r\n left: [],\r\n right: [],\r\n recordingLength: 0\r\n };\r\n }\r\n\r\n function clearRecordedDataCB() {\r\n if (jsAudioNode) {\r\n jsAudioNode.onaudioprocess = null;\r\n jsAudioNode.disconnect();\r\n jsAudioNode = null;\r\n }\r\n\r\n if (audioInput) {\r\n audioInput.disconnect();\r\n audioInput = null;\r\n }\r\n\r\n resetVariables();\r\n }\r\n\r\n // for debugging\r\n this.name = 'StereoAudioRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n var isAudioProcessStarted = false;\r\n\r\n function onAudioProcessDataAvailable(e) {\r\n if (isPaused) {\r\n return;\r\n }\r\n\r\n if (isMediaStreamActive() === false) {\r\n if (!config.disableLogs) {\r\n console.log('MediaStream seems stopped.');\r\n }\r\n jsAudioNode.disconnect();\r\n recording = false;\r\n }\r\n\r\n if (!recording) {\r\n if (audioInput) {\r\n audioInput.disconnect();\r\n audioInput = null;\r\n }\r\n return;\r\n }\r\n\r\n /**\r\n * This method is called on \"onaudioprocess\" event's first invocation.\r\n * @method {function} onAudioProcessStarted\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.onAudioProcessStarted: function() { };\r\n */\r\n if (!isAudioProcessStarted) {\r\n isAudioProcessStarted = true;\r\n if (config.onAudioProcessStarted) {\r\n config.onAudioProcessStarted();\r\n }\r\n\r\n if (config.initCallback) {\r\n config.initCallback();\r\n }\r\n }\r\n\r\n var left = e.inputBuffer.getChannelData(0);\r\n\r\n // we clone the samples\r\n var chLeft = new Float32Array(left);\r\n leftchannel.push(chLeft);\r\n\r\n if (numberOfAudioChannels === 2) {\r\n var right = e.inputBuffer.getChannelData(1);\r\n var chRight = new Float32Array(right);\r\n rightchannel.push(chRight);\r\n }\r\n\r\n recordingLength += bufferSize;\r\n\r\n // export raw PCM\r\n self.recordingLength = recordingLength;\r\n\r\n if (typeof config.timeSlice !== 'undefined') {\r\n intervalsBasedBuffers.recordingLength += bufferSize;\r\n intervalsBasedBuffers.left.push(chLeft);\r\n\r\n if (numberOfAudioChannels === 2) {\r\n intervalsBasedBuffers.right.push(chRight);\r\n }\r\n }\r\n }\r\n\r\n jsAudioNode.onaudioprocess = onAudioProcessDataAvailable;\r\n\r\n // to prevent self audio to be connected with speakers\r\n if (context.createMediaStreamDestination) {\r\n jsAudioNode.connect(context.createMediaStreamDestination());\r\n } else {\r\n jsAudioNode.connect(context.destination);\r\n }\r\n\r\n // export raw PCM\r\n this.leftchannel = leftchannel;\r\n this.rightchannel = rightchannel;\r\n this.numberOfAudioChannels = numberOfAudioChannels;\r\n this.desiredSampRate = desiredSampRate;\r\n this.sampleRate = sampleRate;\r\n self.recordingLength = recordingLength;\r\n\r\n // helper for intervals based blobs\r\n var intervalsBasedBuffers = {\r\n left: [],\r\n right: [],\r\n recordingLength: 0\r\n };\r\n\r\n // this looper is used to support intervals based blobs (via timeSlice+ondataavailable)\r\n function looper() {\r\n if (!recording || typeof config.ondataavailable !== 'function' || typeof config.timeSlice === 'undefined') {\r\n return;\r\n }\r\n\r\n if (intervalsBasedBuffers.left.length) {\r\n mergeLeftRightBuffers({\r\n desiredSampRate: desiredSampRate,\r\n sampleRate: sampleRate,\r\n numberOfAudioChannels: numberOfAudioChannels,\r\n internalInterleavedLength: intervalsBasedBuffers.recordingLength,\r\n leftBuffers: intervalsBasedBuffers.left,\r\n rightBuffers: numberOfAudioChannels === 1 ? [] : intervalsBasedBuffers.right\r\n }, function(buffer, view) {\r\n var blob = new Blob([view], {\r\n type: 'audio/wav'\r\n });\r\n config.ondataavailable(blob);\r\n\r\n setTimeout(looper, config.timeSlice);\r\n });\r\n\r\n intervalsBasedBuffers = {\r\n left: [],\r\n right: [],\r\n recordingLength: 0\r\n };\r\n } else {\r\n setTimeout(looper, config.timeSlice);\r\n }\r\n }\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.StereoAudioRecorder = StereoAudioRecorder;\r\n}\r\n\r\n// _________________\r\n// CanvasRecorder.js\r\n\r\n/**\r\n * CanvasRecorder is a standalone class used by {@link RecordRTC} to bring HTML5-Canvas recording into video WebM. It uses HTML2Canvas library and runs top over {@link Whammy}.\r\n * @summary HTML2Canvas recording into video WebM.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef CanvasRecorder\r\n * @class\r\n * @example\r\n * var recorder = new CanvasRecorder(htmlElement, { disableLogs: true, useWhammyRecorder: true });\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {HTMLElement} htmlElement - querySelector/getElementById/getElementsByTagName[0]/etc.\r\n * @param {object} config - {disableLogs:true, initCallback: function}\r\n */\r\n\r\nfunction CanvasRecorder(htmlElement, config) {\r\n if (typeof html2canvas === 'undefined') {\r\n throw 'Please link: https://www.webrtc-experiment.com/screenshot.js';\r\n }\r\n\r\n config = config || {};\r\n if (!config.frameInterval) {\r\n config.frameInterval = 10;\r\n }\r\n\r\n // via DetectRTC.js\r\n var isCanvasSupportsStreamCapturing = false;\r\n ['captureStream', 'mozCaptureStream', 'webkitCaptureStream'].forEach(function(item) {\r\n if (item in document.createElement('canvas')) {\r\n isCanvasSupportsStreamCapturing = true;\r\n }\r\n });\r\n\r\n var _isChrome = (!!window.webkitRTCPeerConnection || !!window.webkitGetUserMedia) && !!window.chrome;\r\n\r\n var chromeVersion = 50;\r\n var matchArray = navigator.userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./);\r\n if (_isChrome && matchArray && matchArray[2]) {\r\n chromeVersion = parseInt(matchArray[2], 10);\r\n }\r\n\r\n if (_isChrome && chromeVersion < 52) {\r\n isCanvasSupportsStreamCapturing = false;\r\n }\r\n\r\n if (config.useWhammyRecorder) {\r\n isCanvasSupportsStreamCapturing = false;\r\n }\r\n\r\n var globalCanvas, mediaStreamRecorder;\r\n\r\n if (isCanvasSupportsStreamCapturing) {\r\n if (!config.disableLogs) {\r\n console.log('Your browser supports both MediRecorder API and canvas.captureStream!');\r\n }\r\n\r\n if (htmlElement instanceof HTMLCanvasElement) {\r\n globalCanvas = htmlElement;\r\n } else if (htmlElement instanceof CanvasRenderingContext2D) {\r\n globalCanvas = htmlElement.canvas;\r\n } else {\r\n throw 'Please pass either HTMLCanvasElement or CanvasRenderingContext2D.';\r\n }\r\n } else if (!!navigator.mozGetUserMedia) {\r\n if (!config.disableLogs) {\r\n console.error('Canvas recording is NOT supported in Firefox.');\r\n }\r\n }\r\n\r\n var isRecording;\r\n\r\n /**\r\n * This method records Canvas.\r\n * @method\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n isRecording = true;\r\n\r\n if (isCanvasSupportsStreamCapturing && !config.useWhammyRecorder) {\r\n // CanvasCaptureMediaStream\r\n var canvasMediaStream;\r\n if ('captureStream' in globalCanvas) {\r\n canvasMediaStream = globalCanvas.captureStream(25); // 25 FPS\r\n } else if ('mozCaptureStream' in globalCanvas) {\r\n canvasMediaStream = globalCanvas.mozCaptureStream(25);\r\n } else if ('webkitCaptureStream' in globalCanvas) {\r\n canvasMediaStream = globalCanvas.webkitCaptureStream(25);\r\n }\r\n\r\n try {\r\n var mdStream = new MediaStream();\r\n mdStream.addTrack(getTracks(canvasMediaStream, 'video')[0]);\r\n canvasMediaStream = mdStream;\r\n } catch (e) {}\r\n\r\n if (!canvasMediaStream) {\r\n throw 'captureStream API are NOT available.';\r\n }\r\n\r\n // Note: Jan 18, 2016 status is that, \r\n // Firefox MediaRecorder API can't record CanvasCaptureMediaStream object.\r\n mediaStreamRecorder = new MediaStreamRecorder(canvasMediaStream, {\r\n mimeType: config.mimeType || 'video/webm'\r\n });\r\n mediaStreamRecorder.record();\r\n } else {\r\n whammy.frames = [];\r\n lastTime = new Date().getTime();\r\n drawCanvasFrame();\r\n }\r\n\r\n if (config.initCallback) {\r\n config.initCallback();\r\n }\r\n };\r\n\r\n this.getWebPImages = function(callback) {\r\n if (htmlElement.nodeName.toLowerCase() !== 'canvas') {\r\n callback();\r\n return;\r\n }\r\n\r\n var framesLength = whammy.frames.length;\r\n whammy.frames.forEach(function(frame, idx) {\r\n var framesRemaining = framesLength - idx;\r\n if (!config.disableLogs) {\r\n console.log(framesRemaining + '/' + framesLength + ' frames remaining');\r\n }\r\n\r\n if (config.onEncodingCallback) {\r\n config.onEncodingCallback(framesRemaining, framesLength);\r\n }\r\n\r\n var webp = frame.image.toDataURL('image/webp', 1);\r\n whammy.frames[idx].image = webp;\r\n });\r\n\r\n if (!config.disableLogs) {\r\n console.log('Generating WebM');\r\n }\r\n\r\n callback();\r\n };\r\n\r\n /**\r\n * This method stops recording Canvas.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n isRecording = false;\r\n\r\n var that = this;\r\n\r\n if (isCanvasSupportsStreamCapturing && mediaStreamRecorder) {\r\n mediaStreamRecorder.stop(callback);\r\n return;\r\n }\r\n\r\n this.getWebPImages(function() {\r\n /**\r\n * @property {Blob} blob - Recorded frames in video/webm blob.\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.stop(function() {\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n whammy.compile(function(blob) {\r\n if (!config.disableLogs) {\r\n console.log('Recording finished!');\r\n }\r\n\r\n that.blob = blob;\r\n\r\n if (that.blob.forEach) {\r\n that.blob = new Blob([], {\r\n type: 'video/webm'\r\n });\r\n }\r\n\r\n if (callback) {\r\n callback(that.blob);\r\n }\r\n\r\n whammy.frames = [];\r\n });\r\n });\r\n };\r\n\r\n var isPausedRecording = false;\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n isPausedRecording = true;\r\n\r\n if (mediaStreamRecorder instanceof MediaStreamRecorder) {\r\n mediaStreamRecorder.pause();\r\n return;\r\n }\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n isPausedRecording = false;\r\n\r\n if (mediaStreamRecorder instanceof MediaStreamRecorder) {\r\n mediaStreamRecorder.resume();\r\n return;\r\n }\r\n\r\n if (!isRecording) {\r\n this.record();\r\n }\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n if (isRecording) {\r\n this.stop(clearRecordedDataCB);\r\n }\r\n clearRecordedDataCB();\r\n };\r\n\r\n function clearRecordedDataCB() {\r\n whammy.frames = [];\r\n isRecording = false;\r\n isPausedRecording = false;\r\n }\r\n\r\n // for debugging\r\n this.name = 'CanvasRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n function cloneCanvas() {\r\n //create a new canvas\r\n var newCanvas = document.createElement('canvas');\r\n var context = newCanvas.getContext('2d');\r\n\r\n //set dimensions\r\n newCanvas.width = htmlElement.width;\r\n newCanvas.height = htmlElement.height;\r\n\r\n //apply the old canvas to the new one\r\n context.drawImage(htmlElement, 0, 0);\r\n\r\n //return the new canvas\r\n return newCanvas;\r\n }\r\n\r\n function drawCanvasFrame() {\r\n if (isPausedRecording) {\r\n lastTime = new Date().getTime();\r\n return setTimeout(drawCanvasFrame, 500);\r\n }\r\n\r\n if (htmlElement.nodeName.toLowerCase() === 'canvas') {\r\n var duration = new Date().getTime() - lastTime;\r\n // via #206, by Jack i.e. @Seymourr\r\n lastTime = new Date().getTime();\r\n\r\n whammy.frames.push({\r\n image: cloneCanvas(),\r\n duration: duration\r\n });\r\n\r\n if (isRecording) {\r\n setTimeout(drawCanvasFrame, config.frameInterval);\r\n }\r\n return;\r\n }\r\n\r\n html2canvas(htmlElement, {\r\n grabMouse: typeof config.showMousePointer === 'undefined' || config.showMousePointer,\r\n onrendered: function(canvas) {\r\n var duration = new Date().getTime() - lastTime;\r\n if (!duration) {\r\n return setTimeout(drawCanvasFrame, config.frameInterval);\r\n }\r\n\r\n // via #206, by Jack i.e. @Seymourr\r\n lastTime = new Date().getTime();\r\n\r\n whammy.frames.push({\r\n image: canvas.toDataURL('image/webp', 1),\r\n duration: duration\r\n });\r\n\r\n if (isRecording) {\r\n setTimeout(drawCanvasFrame, config.frameInterval);\r\n }\r\n }\r\n });\r\n }\r\n\r\n var lastTime = new Date().getTime();\r\n\r\n var whammy = new Whammy.Video(100);\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.CanvasRecorder = CanvasRecorder;\r\n}\n\r\n// _________________\r\n// WhammyRecorder.js\r\n\r\n/**\r\n * WhammyRecorder is a standalone class used by {@link RecordRTC} to bring video recording in Chrome. It runs top over {@link Whammy}.\r\n * @summary Video recording feature in Chrome.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef WhammyRecorder\r\n * @class\r\n * @example\r\n * var recorder = new WhammyRecorder(mediaStream);\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {disableLogs: true, initCallback: function, video: HTMLVideoElement, etc.}\r\n */\r\n\r\nfunction WhammyRecorder(mediaStream, config) {\r\n\r\n config = config || {};\r\n\r\n if (!config.frameInterval) {\r\n config.frameInterval = 10;\r\n }\r\n\r\n if (!config.disableLogs) {\r\n console.log('Using frames-interval:', config.frameInterval);\r\n }\r\n\r\n /**\r\n * This method records video.\r\n * @method\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n if (!config.width) {\r\n config.width = 320;\r\n }\r\n\r\n if (!config.height) {\r\n config.height = 240;\r\n }\r\n\r\n if (!config.video) {\r\n config.video = {\r\n width: config.width,\r\n height: config.height\r\n };\r\n }\r\n\r\n if (!config.canvas) {\r\n config.canvas = {\r\n width: config.width,\r\n height: config.height\r\n };\r\n }\r\n\r\n canvas.width = config.canvas.width || 320;\r\n canvas.height = config.canvas.height || 240;\r\n\r\n context = canvas.getContext('2d');\r\n\r\n // setting defaults\r\n if (config.video && config.video instanceof HTMLVideoElement) {\r\n video = config.video.cloneNode();\r\n\r\n if (config.initCallback) {\r\n config.initCallback();\r\n }\r\n } else {\r\n video = document.createElement('video');\r\n\r\n setSrcObject(mediaStream, video);\r\n\r\n video.onloadedmetadata = function() { // \"onloadedmetadata\" may NOT work in FF?\r\n if (config.initCallback) {\r\n config.initCallback();\r\n }\r\n };\r\n\r\n video.width = config.video.width;\r\n video.height = config.video.height;\r\n }\r\n\r\n video.muted = true;\r\n video.play();\r\n\r\n lastTime = new Date().getTime();\r\n whammy = new Whammy.Video();\r\n\r\n if (!config.disableLogs) {\r\n console.log('canvas resolutions', canvas.width, '*', canvas.height);\r\n console.log('video width/height', video.width || canvas.width, '*', video.height || canvas.height);\r\n }\r\n\r\n drawFrames(config.frameInterval);\r\n };\r\n\r\n /**\r\n * Draw and push frames to Whammy\r\n * @param {integer} frameInterval - set minimum interval (in milliseconds) between each time we push a frame to Whammy\r\n */\r\n function drawFrames(frameInterval) {\r\n frameInterval = typeof frameInterval !== 'undefined' ? frameInterval : 10;\r\n\r\n var duration = new Date().getTime() - lastTime;\r\n if (!duration) {\r\n return setTimeout(drawFrames, frameInterval, frameInterval);\r\n }\r\n\r\n if (isPausedRecording) {\r\n lastTime = new Date().getTime();\r\n return setTimeout(drawFrames, 100);\r\n }\r\n\r\n // via #206, by Jack i.e. @Seymourr\r\n lastTime = new Date().getTime();\r\n\r\n if (video.paused) {\r\n // via: https://github.com/muaz-khan/WebRTC-Experiment/pull/316\r\n // Tweak for Android Chrome\r\n video.play();\r\n }\r\n\r\n context.drawImage(video, 0, 0, canvas.width, canvas.height);\r\n whammy.frames.push({\r\n duration: duration,\r\n image: canvas.toDataURL('image/webp')\r\n });\r\n\r\n if (!isStopDrawing) {\r\n setTimeout(drawFrames, frameInterval, frameInterval);\r\n }\r\n }\r\n\r\n function asyncLoop(o) {\r\n var i = -1,\r\n length = o.length;\r\n\r\n (function loop() {\r\n i++;\r\n if (i === length) {\r\n o.callback();\r\n return;\r\n }\r\n\r\n // \"setTimeout\" added by Jim McLeod\r\n setTimeout(function() {\r\n o.functionToLoop(loop, i);\r\n }, 1);\r\n })();\r\n }\r\n\r\n\r\n /**\r\n * remove black frames from the beginning to the specified frame\r\n * @param {Array} _frames - array of frames to be checked\r\n * @param {number} _framesToCheck - number of frame until check will be executed (-1 - will drop all frames until frame not matched will be found)\r\n * @param {number} _pixTolerance - 0 - very strict (only black pixel color) ; 1 - all\r\n * @param {number} _frameTolerance - 0 - very strict (only black frame color) ; 1 - all\r\n * @returns {Array} - array of frames\r\n */\r\n // pull#293 by @volodalexey\r\n function dropBlackFrames(_frames, _framesToCheck, _pixTolerance, _frameTolerance, callback) {\r\n var localCanvas = document.createElement('canvas');\r\n localCanvas.width = canvas.width;\r\n localCanvas.height = canvas.height;\r\n var context2d = localCanvas.getContext('2d');\r\n var resultFrames = [];\r\n\r\n var checkUntilNotBlack = _framesToCheck === -1;\r\n var endCheckFrame = (_framesToCheck && _framesToCheck > 0 && _framesToCheck <= _frames.length) ?\r\n _framesToCheck : _frames.length;\r\n var sampleColor = {\r\n r: 0,\r\n g: 0,\r\n b: 0\r\n };\r\n var maxColorDifference = Math.sqrt(\r\n Math.pow(255, 2) +\r\n Math.pow(255, 2) +\r\n Math.pow(255, 2)\r\n );\r\n var pixTolerance = _pixTolerance && _pixTolerance >= 0 && _pixTolerance <= 1 ? _pixTolerance : 0;\r\n var frameTolerance = _frameTolerance && _frameTolerance >= 0 && _frameTolerance <= 1 ? _frameTolerance : 0;\r\n var doNotCheckNext = false;\r\n\r\n asyncLoop({\r\n length: endCheckFrame,\r\n functionToLoop: function(loop, f) {\r\n var matchPixCount, endPixCheck, maxPixCount;\r\n\r\n var finishImage = function() {\r\n if (!doNotCheckNext && maxPixCount - matchPixCount <= maxPixCount * frameTolerance) {\r\n // console.log('removed black frame : ' + f + ' ; frame duration ' + _frames[f].duration);\r\n } else {\r\n // console.log('frame is passed : ' + f);\r\n if (checkUntilNotBlack) {\r\n doNotCheckNext = true;\r\n }\r\n resultFrames.push(_frames[f]);\r\n }\r\n loop();\r\n };\r\n\r\n if (!doNotCheckNext) {\r\n var image = new Image();\r\n image.onload = function() {\r\n context2d.drawImage(image, 0, 0, canvas.width, canvas.height);\r\n var imageData = context2d.getImageData(0, 0, canvas.width, canvas.height);\r\n matchPixCount = 0;\r\n endPixCheck = imageData.data.length;\r\n maxPixCount = imageData.data.length / 4;\r\n\r\n for (var pix = 0; pix < endPixCheck; pix += 4) {\r\n var currentColor = {\r\n r: imageData.data[pix],\r\n g: imageData.data[pix + 1],\r\n b: imageData.data[pix + 2]\r\n };\r\n var colorDifference = Math.sqrt(\r\n Math.pow(currentColor.r - sampleColor.r, 2) +\r\n Math.pow(currentColor.g - sampleColor.g, 2) +\r\n Math.pow(currentColor.b - sampleColor.b, 2)\r\n );\r\n // difference in color it is difference in color vectors (r1,g1,b1) <=> (r2,g2,b2)\r\n if (colorDifference <= maxColorDifference * pixTolerance) {\r\n matchPixCount++;\r\n }\r\n }\r\n finishImage();\r\n };\r\n image.src = _frames[f].image;\r\n } else {\r\n finishImage();\r\n }\r\n },\r\n callback: function() {\r\n resultFrames = resultFrames.concat(_frames.slice(endCheckFrame));\r\n\r\n if (resultFrames.length <= 0) {\r\n // at least one last frame should be available for next manipulation\r\n // if total duration of all frames will be < 1000 than ffmpeg doesn't work well...\r\n resultFrames.push(_frames[_frames.length - 1]);\r\n }\r\n callback(resultFrames);\r\n }\r\n });\r\n }\r\n\r\n var isStopDrawing = false;\r\n\r\n /**\r\n * This method stops recording video.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n callback = callback || function() {};\r\n\r\n isStopDrawing = true;\r\n\r\n var _this = this;\r\n // analyse of all frames takes some time!\r\n setTimeout(function() {\r\n // e.g. dropBlackFrames(frames, 10, 1, 1) - will cut all 10 frames\r\n // e.g. dropBlackFrames(frames, 10, 0.5, 0.5) - will analyse 10 frames\r\n // e.g. dropBlackFrames(frames, 10) === dropBlackFrames(frames, 10, 0, 0) - will analyse 10 frames with strict black color\r\n dropBlackFrames(whammy.frames, -1, null, null, function(frames) {\r\n whammy.frames = frames;\r\n\r\n // to display advertisement images!\r\n if (config.advertisement && config.advertisement.length) {\r\n whammy.frames = config.advertisement.concat(whammy.frames);\r\n }\r\n\r\n /**\r\n * @property {Blob} blob - Recorded frames in video/webm blob.\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.stop(function() {\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n whammy.compile(function(blob) {\r\n _this.blob = blob;\r\n\r\n if (_this.blob.forEach) {\r\n _this.blob = new Blob([], {\r\n type: 'video/webm'\r\n });\r\n }\r\n\r\n if (callback) {\r\n callback(_this.blob);\r\n }\r\n });\r\n });\r\n }, 10);\r\n };\r\n\r\n var isPausedRecording = false;\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n isPausedRecording = true;\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n isPausedRecording = false;\r\n\r\n if (isStopDrawing) {\r\n this.record();\r\n }\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n if (!isStopDrawing) {\r\n this.stop(clearRecordedDataCB);\r\n }\r\n clearRecordedDataCB();\r\n };\r\n\r\n function clearRecordedDataCB() {\r\n whammy.frames = [];\r\n isStopDrawing = true;\r\n isPausedRecording = false;\r\n }\r\n\r\n // for debugging\r\n this.name = 'WhammyRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n var canvas = document.createElement('canvas');\r\n var context = canvas.getContext('2d');\r\n\r\n var video;\r\n var lastTime;\r\n var whammy;\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.WhammyRecorder = WhammyRecorder;\r\n}\n\r\n// https://github.com/antimatter15/whammy/blob/master/LICENSE\r\n// _________\r\n// Whammy.js\r\n\r\n// todo: Firefox now supports webp for webm containers!\r\n// their MediaRecorder implementation works well!\r\n// should we provide an option to record via Whammy.js or MediaRecorder API is a better solution?\r\n\r\n/**\r\n * Whammy is a standalone class used by {@link RecordRTC} to bring video recording in Chrome. It is written by {@link https://github.com/antimatter15|antimatter15}\r\n * @summary A real time javascript webm encoder based on a canvas hack.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef Whammy\r\n * @class\r\n * @example\r\n * var recorder = new Whammy().Video(15);\r\n * recorder.add(context || canvas || dataURL);\r\n * var output = recorder.compile();\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\n\r\nvar Whammy = (function() {\r\n // a more abstract-ish API\r\n\r\n function WhammyVideo(duration) {\r\n this.frames = [];\r\n this.duration = duration || 1;\r\n this.quality = 0.8;\r\n }\r\n\r\n /**\r\n * Pass Canvas or Context or image/webp(string) to {@link Whammy} encoder.\r\n * @method\r\n * @memberof Whammy\r\n * @example\r\n * recorder = new Whammy().Video(0.8, 100);\r\n * recorder.add(canvas || context || 'image/webp');\r\n * @param {string} frame - Canvas || Context || image/webp\r\n * @param {number} duration - Stick a duration (in milliseconds)\r\n */\r\n WhammyVideo.prototype.add = function(frame, duration) {\r\n if ('canvas' in frame) { //CanvasRenderingContext2D\r\n frame = frame.canvas;\r\n }\r\n\r\n if ('toDataURL' in frame) {\r\n frame = frame.toDataURL('image/webp', this.quality);\r\n }\r\n\r\n if (!(/^data:image\\/webp;base64,/ig).test(frame)) {\r\n throw 'Input must be formatted properly as a base64 encoded DataURI of type image/webp';\r\n }\r\n this.frames.push({\r\n image: frame,\r\n duration: duration || this.duration\r\n });\r\n };\r\n\r\n function processInWebWorker(_function) {\r\n var blob = URL.createObjectURL(new Blob([_function.toString(),\r\n 'this.onmessage = function (eee) {' + _function.name + '(eee.data);}'\r\n ], {\r\n type: 'application/javascript'\r\n }));\r\n\r\n var worker = new Worker(blob);\r\n URL.revokeObjectURL(blob);\r\n return worker;\r\n }\r\n\r\n function whammyInWebWorker(frames) {\r\n function ArrayToWebM(frames) {\r\n var info = checkFrames(frames);\r\n if (!info) {\r\n return [];\r\n }\r\n\r\n var clusterMaxDuration = 30000;\r\n\r\n var EBML = [{\r\n 'id': 0x1a45dfa3, // EBML\r\n 'data': [{\r\n 'data': 1,\r\n 'id': 0x4286 // EBMLVersion\r\n }, {\r\n 'data': 1,\r\n 'id': 0x42f7 // EBMLReadVersion\r\n }, {\r\n 'data': 4,\r\n 'id': 0x42f2 // EBMLMaxIDLength\r\n }, {\r\n 'data': 8,\r\n 'id': 0x42f3 // EBMLMaxSizeLength\r\n }, {\r\n 'data': 'webm',\r\n 'id': 0x4282 // DocType\r\n }, {\r\n 'data': 2,\r\n 'id': 0x4287 // DocTypeVersion\r\n }, {\r\n 'data': 2,\r\n 'id': 0x4285 // DocTypeReadVersion\r\n }]\r\n }, {\r\n 'id': 0x18538067, // Segment\r\n 'data': [{\r\n 'id': 0x1549a966, // Info\r\n 'data': [{\r\n 'data': 1e6, //do things in millisecs (num of nanosecs for duration scale)\r\n 'id': 0x2ad7b1 // TimecodeScale\r\n }, {\r\n 'data': 'whammy',\r\n 'id': 0x4d80 // MuxingApp\r\n }, {\r\n 'data': 'whammy',\r\n 'id': 0x5741 // WritingApp\r\n }, {\r\n 'data': doubleToString(info.duration),\r\n 'id': 0x4489 // Duration\r\n }]\r\n }, {\r\n 'id': 0x1654ae6b, // Tracks\r\n 'data': [{\r\n 'id': 0xae, // TrackEntry\r\n 'data': [{\r\n 'data': 1,\r\n 'id': 0xd7 // TrackNumber\r\n }, {\r\n 'data': 1,\r\n 'id': 0x73c5 // TrackUID\r\n }, {\r\n 'data': 0,\r\n 'id': 0x9c // FlagLacing\r\n }, {\r\n 'data': 'und',\r\n 'id': 0x22b59c // Language\r\n }, {\r\n 'data': 'V_VP8',\r\n 'id': 0x86 // CodecID\r\n }, {\r\n 'data': 'VP8',\r\n 'id': 0x258688 // CodecName\r\n }, {\r\n 'data': 1,\r\n 'id': 0x83 // TrackType\r\n }, {\r\n 'id': 0xe0, // Video\r\n 'data': [{\r\n 'data': info.width,\r\n 'id': 0xb0 // PixelWidth\r\n }, {\r\n 'data': info.height,\r\n 'id': 0xba // PixelHeight\r\n }]\r\n }]\r\n }]\r\n }]\r\n }];\r\n\r\n //Generate clusters (max duration)\r\n var frameNumber = 0;\r\n var clusterTimecode = 0;\r\n while (frameNumber < frames.length) {\r\n\r\n var clusterFrames = [];\r\n var clusterDuration = 0;\r\n do {\r\n clusterFrames.push(frames[frameNumber]);\r\n clusterDuration += frames[frameNumber].duration;\r\n frameNumber++;\r\n } while (frameNumber < frames.length && clusterDuration < clusterMaxDuration);\r\n\r\n var clusterCounter = 0;\r\n var cluster = {\r\n 'id': 0x1f43b675, // Cluster\r\n 'data': getClusterData(clusterTimecode, clusterCounter, clusterFrames)\r\n }; //Add cluster to segment\r\n EBML[1].data.push(cluster);\r\n clusterTimecode += clusterDuration;\r\n }\r\n\r\n return generateEBML(EBML);\r\n }\r\n\r\n function getClusterData(clusterTimecode, clusterCounter, clusterFrames) {\r\n return [{\r\n 'data': clusterTimecode,\r\n 'id': 0xe7 // Timecode\r\n }].concat(clusterFrames.map(function(webp) {\r\n var block = makeSimpleBlock({\r\n discardable: 0,\r\n frame: webp.data.slice(4),\r\n invisible: 0,\r\n keyframe: 1,\r\n lacing: 0,\r\n trackNum: 1,\r\n timecode: Math.round(clusterCounter)\r\n });\r\n clusterCounter += webp.duration;\r\n return {\r\n data: block,\r\n id: 0xa3\r\n };\r\n }));\r\n }\r\n\r\n // sums the lengths of all the frames and gets the duration\r\n\r\n function checkFrames(frames) {\r\n if (!frames[0]) {\r\n postMessage({\r\n error: 'Something went wrong. Maybe WebP format is not supported in the current browser.'\r\n });\r\n return;\r\n }\r\n\r\n var width = frames[0].width,\r\n height = frames[0].height,\r\n duration = frames[0].duration;\r\n\r\n for (var i = 1; i < frames.length; i++) {\r\n duration += frames[i].duration;\r\n }\r\n return {\r\n duration: duration,\r\n width: width,\r\n height: height\r\n };\r\n }\r\n\r\n function numToBuffer(num) {\r\n var parts = [];\r\n while (num > 0) {\r\n parts.push(num & 0xff);\r\n num = num >> 8;\r\n }\r\n return new Uint8Array(parts.reverse());\r\n }\r\n\r\n function strToBuffer(str) {\r\n return new Uint8Array(str.split('').map(function(e) {\r\n return e.charCodeAt(0);\r\n }));\r\n }\r\n\r\n function bitsToBuffer(bits) {\r\n var data = [];\r\n var pad = (bits.length % 8) ? (new Array(1 + 8 - (bits.length % 8))).join('0') : '';\r\n bits = pad + bits;\r\n for (var i = 0; i < bits.length; i += 8) {\r\n data.push(parseInt(bits.substr(i, 8), 2));\r\n }\r\n return new Uint8Array(data);\r\n }\r\n\r\n function generateEBML(json) {\r\n var ebml = [];\r\n for (var i = 0; i < json.length; i++) {\r\n var data = json[i].data;\r\n\r\n if (typeof data === 'object') {\r\n data = generateEBML(data);\r\n }\r\n\r\n if (typeof data === 'number') {\r\n data = bitsToBuffer(data.toString(2));\r\n }\r\n\r\n if (typeof data === 'string') {\r\n data = strToBuffer(data);\r\n }\r\n\r\n var len = data.size || data.byteLength || data.length;\r\n var zeroes = Math.ceil(Math.ceil(Math.log(len) / Math.log(2)) / 8);\r\n var sizeToString = len.toString(2);\r\n var padded = (new Array((zeroes * 7 + 7 + 1) - sizeToString.length)).join('0') + sizeToString;\r\n var size = (new Array(zeroes)).join('0') + '1' + padded;\r\n\r\n ebml.push(numToBuffer(json[i].id));\r\n ebml.push(bitsToBuffer(size));\r\n ebml.push(data);\r\n }\r\n\r\n return new Blob(ebml, {\r\n type: 'video/webm'\r\n });\r\n }\r\n\r\n function toBinStrOld(bits) {\r\n var data = '';\r\n var pad = (bits.length % 8) ? (new Array(1 + 8 - (bits.length % 8))).join('0') : '';\r\n bits = pad + bits;\r\n for (var i = 0; i < bits.length; i += 8) {\r\n data += String.fromCharCode(parseInt(bits.substr(i, 8), 2));\r\n }\r\n return data;\r\n }\r\n\r\n function makeSimpleBlock(data) {\r\n var flags = 0;\r\n\r\n if (data.keyframe) {\r\n flags |= 128;\r\n }\r\n\r\n if (data.invisible) {\r\n flags |= 8;\r\n }\r\n\r\n if (data.lacing) {\r\n flags |= (data.lacing << 1);\r\n }\r\n\r\n if (data.discardable) {\r\n flags |= 1;\r\n }\r\n\r\n if (data.trackNum > 127) {\r\n throw 'TrackNumber > 127 not supported';\r\n }\r\n\r\n var out = [data.trackNum | 0x80, data.timecode >> 8, data.timecode & 0xff, flags].map(function(e) {\r\n return String.fromCharCode(e);\r\n }).join('') + data.frame;\r\n\r\n return out;\r\n }\r\n\r\n function parseWebP(riff) {\r\n var VP8 = riff.RIFF[0].WEBP[0];\r\n\r\n var frameStart = VP8.indexOf('\\x9d\\x01\\x2a'); // A VP8 keyframe starts with the 0x9d012a header\r\n for (var i = 0, c = []; i < 4; i++) {\r\n c[i] = VP8.charCodeAt(frameStart + 3 + i);\r\n }\r\n\r\n var width, height, tmp;\r\n\r\n //the code below is literally copied verbatim from the bitstream spec\r\n tmp = (c[1] << 8) | c[0];\r\n width = tmp & 0x3FFF;\r\n tmp = (c[3] << 8) | c[2];\r\n height = tmp & 0x3FFF;\r\n return {\r\n width: width,\r\n height: height,\r\n data: VP8,\r\n riff: riff\r\n };\r\n }\r\n\r\n function getStrLength(string, offset) {\r\n return parseInt(string.substr(offset + 4, 4).split('').map(function(i) {\r\n var unpadded = i.charCodeAt(0).toString(2);\r\n return (new Array(8 - unpadded.length + 1)).join('0') + unpadded;\r\n }).join(''), 2);\r\n }\r\n\r\n function parseRIFF(string) {\r\n var offset = 0;\r\n var chunks = {};\r\n\r\n while (offset < string.length) {\r\n var id = string.substr(offset, 4);\r\n var len = getStrLength(string, offset);\r\n var data = string.substr(offset + 4 + 4, len);\r\n offset += 4 + 4 + len;\r\n chunks[id] = chunks[id] || [];\r\n\r\n if (id === 'RIFF' || id === 'LIST') {\r\n chunks[id].push(parseRIFF(data));\r\n } else {\r\n chunks[id].push(data);\r\n }\r\n }\r\n return chunks;\r\n }\r\n\r\n function doubleToString(num) {\r\n return [].slice.call(\r\n new Uint8Array((new Float64Array([num])).buffer), 0).map(function(e) {\r\n return String.fromCharCode(e);\r\n }).reverse().join('');\r\n }\r\n\r\n var webm = new ArrayToWebM(frames.map(function(frame) {\r\n var webp = parseWebP(parseRIFF(atob(frame.image.slice(23))));\r\n webp.duration = frame.duration;\r\n return webp;\r\n }));\r\n\r\n postMessage(webm);\r\n }\r\n\r\n /**\r\n * Encodes frames in WebM container. It uses WebWorkinvoke to invoke 'ArrayToWebM' method.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof Whammy\r\n * @example\r\n * recorder = new Whammy().Video(0.8, 100);\r\n * recorder.compile(function(blob) {\r\n * // blob.size - blob.type\r\n * });\r\n */\r\n WhammyVideo.prototype.compile = function(callback) {\r\n var webWorker = processInWebWorker(whammyInWebWorker);\r\n\r\n webWorker.onmessage = function(event) {\r\n if (event.data.error) {\r\n console.error(event.data.error);\r\n return;\r\n }\r\n callback(event.data);\r\n };\r\n\r\n webWorker.postMessage(this.frames);\r\n };\r\n\r\n return {\r\n /**\r\n * A more abstract-ish API.\r\n * @method\r\n * @memberof Whammy\r\n * @example\r\n * recorder = new Whammy().Video(0.8, 100);\r\n * @param {?number} speed - 0.8\r\n * @param {?number} quality - 100\r\n */\r\n Video: WhammyVideo\r\n };\r\n})();\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.Whammy = Whammy;\r\n}\n\r\n// ______________ (indexed-db)\r\n// DiskStorage.js\r\n\r\n/**\r\n * DiskStorage is a standalone object used by {@link RecordRTC} to store recorded blobs in IndexedDB storage.\r\n * @summary Writing blobs into IndexedDB.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @example\r\n * DiskStorage.Store({\r\n * audioBlob: yourAudioBlob,\r\n * videoBlob: yourVideoBlob,\r\n * gifBlob : yourGifBlob\r\n * });\r\n * DiskStorage.Fetch(function(dataURL, type) {\r\n * if(type === 'audioBlob') { }\r\n * if(type === 'videoBlob') { }\r\n * if(type === 'gifBlob') { }\r\n * });\r\n * // DiskStorage.dataStoreName = 'recordRTC';\r\n * // DiskStorage.onError = function(error) { };\r\n * @property {function} init - This method must be called once to initialize IndexedDB ObjectStore. Though, it is auto-used internally.\r\n * @property {function} Fetch - This method fetches stored blobs from IndexedDB.\r\n * @property {function} Store - This method stores blobs in IndexedDB.\r\n * @property {function} onError - This function is invoked for any known/unknown error.\r\n * @property {string} dataStoreName - Name of the ObjectStore created in IndexedDB storage.\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\n\r\n\r\nvar DiskStorage = {\r\n /**\r\n * This method must be called once to initialize IndexedDB ObjectStore. Though, it is auto-used internally.\r\n * @method\r\n * @memberof DiskStorage\r\n * @internal\r\n * @example\r\n * DiskStorage.init();\r\n */\r\n init: function() {\r\n var self = this;\r\n\r\n if (typeof indexedDB === 'undefined' || typeof indexedDB.open === 'undefined') {\r\n console.error('IndexedDB API are not available in this browser.');\r\n return;\r\n }\r\n\r\n var dbVersion = 1;\r\n var dbName = this.dbName || location.href.replace(/\\/|:|#|%|\\.|\\[|\\]/g, ''),\r\n db;\r\n var request = indexedDB.open(dbName, dbVersion);\r\n\r\n function createObjectStore(dataBase) {\r\n dataBase.createObjectStore(self.dataStoreName);\r\n }\r\n\r\n function putInDB() {\r\n var transaction = db.transaction([self.dataStoreName], 'readwrite');\r\n\r\n if (self.videoBlob) {\r\n transaction.objectStore(self.dataStoreName).put(self.videoBlob, 'videoBlob');\r\n }\r\n\r\n if (self.gifBlob) {\r\n transaction.objectStore(self.dataStoreName).put(self.gifBlob, 'gifBlob');\r\n }\r\n\r\n if (self.audioBlob) {\r\n transaction.objectStore(self.dataStoreName).put(self.audioBlob, 'audioBlob');\r\n }\r\n\r\n function getFromStore(portionName) {\r\n transaction.objectStore(self.dataStoreName).get(portionName).onsuccess = function(event) {\r\n if (self.callback) {\r\n self.callback(event.target.result, portionName);\r\n }\r\n };\r\n }\r\n\r\n getFromStore('audioBlob');\r\n getFromStore('videoBlob');\r\n getFromStore('gifBlob');\r\n }\r\n\r\n request.onerror = self.onError;\r\n\r\n request.onsuccess = function() {\r\n db = request.result;\r\n db.onerror = self.onError;\r\n\r\n if (db.setVersion) {\r\n if (db.version !== dbVersion) {\r\n var setVersion = db.setVersion(dbVersion);\r\n setVersion.onsuccess = function() {\r\n createObjectStore(db);\r\n putInDB();\r\n };\r\n } else {\r\n putInDB();\r\n }\r\n } else {\r\n putInDB();\r\n }\r\n };\r\n request.onupgradeneeded = function(event) {\r\n createObjectStore(event.target.result);\r\n };\r\n },\r\n /**\r\n * This method fetches stored blobs from IndexedDB.\r\n * @method\r\n * @memberof DiskStorage\r\n * @internal\r\n * @example\r\n * DiskStorage.Fetch(function(dataURL, type) {\r\n * if(type === 'audioBlob') { }\r\n * if(type === 'videoBlob') { }\r\n * if(type === 'gifBlob') { }\r\n * });\r\n */\r\n Fetch: function(callback) {\r\n this.callback = callback;\r\n this.init();\r\n\r\n return this;\r\n },\r\n /**\r\n * This method stores blobs in IndexedDB.\r\n * @method\r\n * @memberof DiskStorage\r\n * @internal\r\n * @example\r\n * DiskStorage.Store({\r\n * audioBlob: yourAudioBlob,\r\n * videoBlob: yourVideoBlob,\r\n * gifBlob : yourGifBlob\r\n * });\r\n */\r\n Store: function(config) {\r\n this.audioBlob = config.audioBlob;\r\n this.videoBlob = config.videoBlob;\r\n this.gifBlob = config.gifBlob;\r\n\r\n this.init();\r\n\r\n return this;\r\n },\r\n /**\r\n * This function is invoked for any known/unknown error.\r\n * @method\r\n * @memberof DiskStorage\r\n * @internal\r\n * @example\r\n * DiskStorage.onError = function(error){\r\n * alerot( JSON.stringify(error) );\r\n * };\r\n */\r\n onError: function(error) {\r\n console.error(JSON.stringify(error, null, '\\t'));\r\n },\r\n\r\n /**\r\n * @property {string} dataStoreName - Name of the ObjectStore created in IndexedDB storage.\r\n * @memberof DiskStorage\r\n * @internal\r\n * @example\r\n * DiskStorage.dataStoreName = 'recordRTC';\r\n */\r\n dataStoreName: 'recordRTC',\r\n dbName: null\r\n};\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.DiskStorage = DiskStorage;\r\n}\n\r\n// ______________\r\n// GifRecorder.js\r\n\r\n/**\r\n * GifRecorder is standalone calss used by {@link RecordRTC} to record video or canvas into animated gif.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef GifRecorder\r\n * @class\r\n * @example\r\n * var recorder = new GifRecorder(mediaStream || canvas || context, { onGifPreview: function, onGifRecordingStarted: function, width: 1280, height: 720, frameRate: 200, quality: 10 });\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * img.src = URL.createObjectURL(blob);\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object or HTMLCanvasElement or CanvasRenderingContext2D.\r\n * @param {object} config - {disableLogs:true, initCallback: function, width: 320, height: 240, frameRate: 200, quality: 10}\r\n */\r\n\r\nfunction GifRecorder(mediaStream, config) {\r\n if (typeof GIFEncoder === 'undefined') {\r\n var script = document.createElement('script');\r\n script.src = 'https://www.webrtc-experiment.com/gif-recorder.js';\r\n (document.body || document.documentElement).appendChild(script);\r\n }\r\n\r\n config = config || {};\r\n\r\n var isHTMLObject = mediaStream instanceof CanvasRenderingContext2D || mediaStream instanceof HTMLCanvasElement;\r\n\r\n /**\r\n * This method records MediaStream.\r\n * @method\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n if (typeof GIFEncoder === 'undefined') {\r\n setTimeout(self.record, 1000);\r\n return;\r\n }\r\n\r\n if (!isLoadedMetaData) {\r\n setTimeout(self.record, 1000);\r\n return;\r\n }\r\n\r\n if (!isHTMLObject) {\r\n if (!config.width) {\r\n config.width = video.offsetWidth || 320;\r\n }\r\n\r\n if (!config.height) {\r\n config.height = video.offsetHeight || 240;\r\n }\r\n\r\n if (!config.video) {\r\n config.video = {\r\n width: config.width,\r\n height: config.height\r\n };\r\n }\r\n\r\n if (!config.canvas) {\r\n config.canvas = {\r\n width: config.width,\r\n height: config.height\r\n };\r\n }\r\n\r\n canvas.width = config.canvas.width || 320;\r\n canvas.height = config.canvas.height || 240;\r\n\r\n video.width = config.video.width || 320;\r\n video.height = config.video.height || 240;\r\n }\r\n\r\n // external library to record as GIF images\r\n gifEncoder = new GIFEncoder();\r\n\r\n // void setRepeat(int iter) \r\n // Sets the number of times the set of GIF frames should be played. \r\n // Default is 1; 0 means play indefinitely.\r\n gifEncoder.setRepeat(0);\r\n\r\n // void setFrameRate(Number fps) \r\n // Sets frame rate in frames per second. \r\n // Equivalent to setDelay(1000/fps).\r\n // Using \"setDelay\" instead of \"setFrameRate\"\r\n gifEncoder.setDelay(config.frameRate || 200);\r\n\r\n // void setQuality(int quality) \r\n // Sets quality of color quantization (conversion of images to the \r\n // maximum 256 colors allowed by the GIF specification). \r\n // Lower values (minimum = 1) produce better colors, \r\n // but slow processing significantly. 10 is the default, \r\n // and produces good color mapping at reasonable speeds. \r\n // Values greater than 20 do not yield significant improvements in speed.\r\n gifEncoder.setQuality(config.quality || 10);\r\n\r\n // Boolean start() \r\n // This writes the GIF Header and returns false if it fails.\r\n gifEncoder.start();\r\n\r\n if (typeof config.onGifRecordingStarted === 'function') {\r\n config.onGifRecordingStarted();\r\n }\r\n\r\n startTime = Date.now();\r\n\r\n function drawVideoFrame(time) {\r\n if (self.clearedRecordedData === true) {\r\n return;\r\n }\r\n\r\n if (isPausedRecording) {\r\n return setTimeout(function() {\r\n drawVideoFrame(time);\r\n }, 100);\r\n }\r\n\r\n lastAnimationFrame = requestAnimationFrame(drawVideoFrame);\r\n\r\n if (typeof lastFrameTime === undefined) {\r\n lastFrameTime = time;\r\n }\r\n\r\n // ~10 fps\r\n if (time - lastFrameTime < 90) {\r\n return;\r\n }\r\n\r\n if (!isHTMLObject && video.paused) {\r\n // via: https://github.com/muaz-khan/WebRTC-Experiment/pull/316\r\n // Tweak for Android Chrome\r\n video.play();\r\n }\r\n\r\n if (!isHTMLObject) {\r\n context.drawImage(video, 0, 0, canvas.width, canvas.height);\r\n }\r\n\r\n if (config.onGifPreview) {\r\n config.onGifPreview(canvas.toDataURL('image/png'));\r\n }\r\n\r\n gifEncoder.addFrame(context);\r\n lastFrameTime = time;\r\n }\r\n\r\n lastAnimationFrame = requestAnimationFrame(drawVideoFrame);\r\n\r\n if (config.initCallback) {\r\n config.initCallback();\r\n }\r\n };\r\n\r\n /**\r\n * This method stops recording MediaStream.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * img.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n callback = callback || function() {};\r\n\r\n if (lastAnimationFrame) {\r\n cancelAnimationFrame(lastAnimationFrame);\r\n }\r\n\r\n endTime = Date.now();\r\n\r\n /**\r\n * @property {Blob} blob - The recorded blob object.\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.stop(function(){\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n this.blob = new Blob([new Uint8Array(gifEncoder.stream().bin)], {\r\n type: 'image/gif'\r\n });\r\n\r\n callback(this.blob);\r\n\r\n // bug: find a way to clear old recorded blobs\r\n gifEncoder.stream().bin = [];\r\n };\r\n\r\n var isPausedRecording = false;\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n isPausedRecording = true;\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n isPausedRecording = false;\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n self.clearedRecordedData = true;\r\n clearRecordedDataCB();\r\n };\r\n\r\n function clearRecordedDataCB() {\r\n if (gifEncoder) {\r\n gifEncoder.stream().bin = [];\r\n }\r\n }\r\n\r\n // for debugging\r\n this.name = 'GifRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n var canvas = document.createElement('canvas');\r\n var context = canvas.getContext('2d');\r\n\r\n if (isHTMLObject) {\r\n if (mediaStream instanceof CanvasRenderingContext2D) {\r\n context = mediaStream;\r\n canvas = context.canvas;\r\n } else if (mediaStream instanceof HTMLCanvasElement) {\r\n context = mediaStream.getContext('2d');\r\n canvas = mediaStream;\r\n }\r\n }\r\n\r\n var isLoadedMetaData = true;\r\n\r\n if (!isHTMLObject) {\r\n var video = document.createElement('video');\r\n video.muted = true;\r\n video.autoplay = true;\r\n video.playsInline = true;\r\n\r\n isLoadedMetaData = false;\r\n video.onloadedmetadata = function() {\r\n isLoadedMetaData = true;\r\n };\r\n\r\n setSrcObject(mediaStream, video);\r\n\r\n video.play();\r\n }\r\n\r\n var lastAnimationFrame = null;\r\n var startTime, endTime, lastFrameTime;\r\n\r\n var gifEncoder;\r\n\r\n var self = this;\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.GifRecorder = GifRecorder;\r\n}\n\r\n// Last time updated: 2019-06-21 4:09:42 AM UTC\r\n\r\n// ________________________\r\n// MultiStreamsMixer v1.2.2\r\n\r\n// Open-Sourced: https://github.com/muaz-khan/MultiStreamsMixer\r\n\r\n// --------------------------------------------------\r\n// Muaz Khan - www.MuazKhan.com\r\n// MIT License - www.WebRTC-Experiment.com/licence\r\n// --------------------------------------------------\r\n\r\nfunction MultiStreamsMixer(arrayOfMediaStreams, elementClass) {\r\n\r\n var browserFakeUserAgent = 'Fake/5.0 (FakeOS) AppleWebKit/123 (KHTML, like Gecko) Fake/12.3.4567.89 Fake/123.45';\r\n\r\n (function(that) {\r\n if (typeof RecordRTC !== 'undefined') {\r\n return;\r\n }\r\n\r\n if (!that) {\r\n return;\r\n }\r\n\r\n if (typeof window !== 'undefined') {\r\n return;\r\n }\r\n\r\n if (typeof global === 'undefined') {\r\n return;\r\n }\r\n\r\n global.navigator = {\r\n userAgent: browserFakeUserAgent,\r\n getUserMedia: function() {}\r\n };\r\n\r\n if (!global.console) {\r\n global.console = {};\r\n }\r\n\r\n if (typeof global.console.log === 'undefined' || typeof global.console.error === 'undefined') {\r\n global.console.error = global.console.log = global.console.log || function() {\r\n console.log(arguments);\r\n };\r\n }\r\n\r\n if (typeof document === 'undefined') {\r\n /*global document:true */\r\n that.document = {\r\n documentElement: {\r\n appendChild: function() {\r\n return '';\r\n }\r\n }\r\n };\r\n\r\n document.createElement = document.captureStream = document.mozCaptureStream = function() {\r\n var obj = {\r\n getContext: function() {\r\n return obj;\r\n },\r\n play: function() {},\r\n pause: function() {},\r\n drawImage: function() {},\r\n toDataURL: function() {\r\n return '';\r\n },\r\n style: {}\r\n };\r\n return obj;\r\n };\r\n\r\n that.HTMLVideoElement = function() {};\r\n }\r\n\r\n if (typeof location === 'undefined') {\r\n /*global location:true */\r\n that.location = {\r\n protocol: 'file:',\r\n href: '',\r\n hash: ''\r\n };\r\n }\r\n\r\n if (typeof screen === 'undefined') {\r\n /*global screen:true */\r\n that.screen = {\r\n width: 0,\r\n height: 0\r\n };\r\n }\r\n\r\n if (typeof URL === 'undefined') {\r\n /*global screen:true */\r\n that.URL = {\r\n createObjectURL: function() {\r\n return '';\r\n },\r\n revokeObjectURL: function() {\r\n return '';\r\n }\r\n };\r\n }\r\n\r\n /*global window:true */\r\n that.window = global;\r\n })(typeof global !== 'undefined' ? global : null);\r\n\r\n // requires: chrome://flags/#enable-experimental-web-platform-features\r\n\r\n elementClass = elementClass || 'multi-streams-mixer';\r\n\r\n var videos = [];\r\n var isStopDrawingFrames = false;\r\n\r\n var canvas = document.createElement('canvas');\r\n var context = canvas.getContext('2d');\r\n canvas.style.opacity = 0;\r\n canvas.style.position = 'absolute';\r\n canvas.style.zIndex = -1;\r\n canvas.style.top = '-1000em';\r\n canvas.style.left = '-1000em';\r\n canvas.className = elementClass;\r\n (document.body || document.documentElement).appendChild(canvas);\r\n\r\n this.disableLogs = false;\r\n this.frameInterval = 10;\r\n\r\n this.width = 360;\r\n this.height = 240;\r\n\r\n // use gain node to prevent echo\r\n this.useGainNode = true;\r\n\r\n var self = this;\r\n\r\n // _____________________________\r\n // Cross-Browser-Declarations.js\r\n\r\n // WebAudio API representer\r\n var AudioContext = window.AudioContext;\r\n\r\n if (typeof AudioContext === 'undefined') {\r\n if (typeof webkitAudioContext !== 'undefined') {\r\n /*global AudioContext:true */\r\n AudioContext = webkitAudioContext;\r\n }\r\n\r\n if (typeof mozAudioContext !== 'undefined') {\r\n /*global AudioContext:true */\r\n AudioContext = mozAudioContext;\r\n }\r\n }\r\n\r\n /*jshint -W079 */\r\n var URL = window.URL;\r\n\r\n if (typeof URL === 'undefined' && typeof webkitURL !== 'undefined') {\r\n /*global URL:true */\r\n URL = webkitURL;\r\n }\r\n\r\n if (typeof navigator !== 'undefined' && typeof navigator.getUserMedia === 'undefined') { // maybe window.navigator?\r\n if (typeof navigator.webkitGetUserMedia !== 'undefined') {\r\n navigator.getUserMedia = navigator.webkitGetUserMedia;\r\n }\r\n\r\n if (typeof navigator.mozGetUserMedia !== 'undefined') {\r\n navigator.getUserMedia = navigator.mozGetUserMedia;\r\n }\r\n }\r\n\r\n var MediaStream = window.MediaStream;\r\n\r\n if (typeof MediaStream === 'undefined' && typeof webkitMediaStream !== 'undefined') {\r\n MediaStream = webkitMediaStream;\r\n }\r\n\r\n /*global MediaStream:true */\r\n if (typeof MediaStream !== 'undefined') {\r\n // override \"stop\" method for all browsers\r\n if (typeof MediaStream.prototype.stop === 'undefined') {\r\n MediaStream.prototype.stop = function() {\r\n this.getTracks().forEach(function(track) {\r\n track.stop();\r\n });\r\n };\r\n }\r\n }\r\n\r\n var Storage = {};\r\n\r\n if (typeof AudioContext !== 'undefined') {\r\n Storage.AudioContext = AudioContext;\r\n } else if (typeof webkitAudioContext !== 'undefined') {\r\n Storage.AudioContext = webkitAudioContext;\r\n }\r\n\r\n function setSrcObject(stream, element) {\r\n if ('srcObject' in element) {\r\n element.srcObject = stream;\r\n } else if ('mozSrcObject' in element) {\r\n element.mozSrcObject = stream;\r\n } else {\r\n element.srcObject = stream;\r\n }\r\n }\r\n\r\n this.startDrawingFrames = function() {\r\n drawVideosToCanvas();\r\n };\r\n\r\n function drawVideosToCanvas() {\r\n if (isStopDrawingFrames) {\r\n return;\r\n }\r\n\r\n var videosLength = videos.length;\r\n\r\n var fullcanvas = false;\r\n var remaining = [];\r\n videos.forEach(function(video) {\r\n if (!video.stream) {\r\n video.stream = {};\r\n }\r\n\r\n if (video.stream.fullcanvas) {\r\n fullcanvas = video;\r\n } else {\r\n // todo: video.stream.active or video.stream.live to fix blank frames issues?\r\n remaining.push(video);\r\n }\r\n });\r\n\r\n if (fullcanvas) {\r\n canvas.width = fullcanvas.stream.width;\r\n canvas.height = fullcanvas.stream.height;\r\n } else if (remaining.length) {\r\n canvas.width = videosLength > 1 ? remaining[0].width * 2 : remaining[0].width;\r\n\r\n var height = 1;\r\n if (videosLength === 3 || videosLength === 4) {\r\n height = 2;\r\n }\r\n if (videosLength === 5 || videosLength === 6) {\r\n height = 3;\r\n }\r\n if (videosLength === 7 || videosLength === 8) {\r\n height = 4;\r\n }\r\n if (videosLength === 9 || videosLength === 10) {\r\n height = 5;\r\n }\r\n canvas.height = remaining[0].height * height;\r\n } else {\r\n canvas.width = self.width || 360;\r\n canvas.height = self.height || 240;\r\n }\r\n\r\n if (fullcanvas && fullcanvas instanceof HTMLVideoElement) {\r\n drawImage(fullcanvas);\r\n }\r\n\r\n remaining.forEach(function(video, idx) {\r\n drawImage(video, idx);\r\n });\r\n\r\n setTimeout(drawVideosToCanvas, self.frameInterval);\r\n }\r\n\r\n function drawImage(video, idx) {\r\n if (isStopDrawingFrames) {\r\n return;\r\n }\r\n\r\n var x = 0;\r\n var y = 0;\r\n var width = video.width;\r\n var height = video.height;\r\n\r\n if (idx === 1) {\r\n x = video.width;\r\n }\r\n\r\n if (idx === 2) {\r\n y = video.height;\r\n }\r\n\r\n if (idx === 3) {\r\n x = video.width;\r\n y = video.height;\r\n }\r\n\r\n if (idx === 4) {\r\n y = video.height * 2;\r\n }\r\n\r\n if (idx === 5) {\r\n x = video.width;\r\n y = video.height * 2;\r\n }\r\n\r\n if (idx === 6) {\r\n y = video.height * 3;\r\n }\r\n\r\n if (idx === 7) {\r\n x = video.width;\r\n y = video.height * 3;\r\n }\r\n\r\n if (typeof video.stream.left !== 'undefined') {\r\n x = video.stream.left;\r\n }\r\n\r\n if (typeof video.stream.top !== 'undefined') {\r\n y = video.stream.top;\r\n }\r\n\r\n if (typeof video.stream.width !== 'undefined') {\r\n width = video.stream.width;\r\n }\r\n\r\n if (typeof video.stream.height !== 'undefined') {\r\n height = video.stream.height;\r\n }\r\n\r\n context.drawImage(video, x, y, width, height);\r\n\r\n if (typeof video.stream.onRender === 'function') {\r\n video.stream.onRender(context, x, y, width, height, idx);\r\n }\r\n }\r\n\r\n function getMixedStream() {\r\n isStopDrawingFrames = false;\r\n var mixedVideoStream = getMixedVideoStream();\r\n\r\n var mixedAudioStream = getMixedAudioStream();\r\n if (mixedAudioStream) {\r\n mixedAudioStream.getTracks().filter(function(t) {\r\n return t.kind === 'audio';\r\n }).forEach(function(track) {\r\n mixedVideoStream.addTrack(track);\r\n });\r\n }\r\n\r\n var fullcanvas;\r\n arrayOfMediaStreams.forEach(function(stream) {\r\n if (stream.fullcanvas) {\r\n fullcanvas = true;\r\n }\r\n });\r\n\r\n // mixedVideoStream.prototype.appendStreams = appendStreams;\r\n // mixedVideoStream.prototype.resetVideoStreams = resetVideoStreams;\r\n // mixedVideoStream.prototype.clearRecordedData = clearRecordedData;\r\n\r\n return mixedVideoStream;\r\n }\r\n\r\n function getMixedVideoStream() {\r\n resetVideoStreams();\r\n\r\n var capturedStream;\r\n\r\n if ('captureStream' in canvas) {\r\n capturedStream = canvas.captureStream();\r\n } else if ('mozCaptureStream' in canvas) {\r\n capturedStream = canvas.mozCaptureStream();\r\n } else if (!self.disableLogs) {\r\n console.error('Upgrade to latest Chrome or otherwise enable this flag: chrome://flags/#enable-experimental-web-platform-features');\r\n }\r\n\r\n var videoStream = new MediaStream();\r\n\r\n capturedStream.getTracks().filter(function(t) {\r\n return t.kind === 'video';\r\n }).forEach(function(track) {\r\n videoStream.addTrack(track);\r\n });\r\n\r\n canvas.stream = videoStream;\r\n\r\n return videoStream;\r\n }\r\n\r\n function getMixedAudioStream() {\r\n // via: @pehrsons\r\n if (!Storage.AudioContextConstructor) {\r\n Storage.AudioContextConstructor = new Storage.AudioContext();\r\n }\r\n\r\n self.audioContext = Storage.AudioContextConstructor;\r\n\r\n self.audioSources = [];\r\n\r\n if (self.useGainNode === true) {\r\n self.gainNode = self.audioContext.createGain();\r\n self.gainNode.connect(self.audioContext.destination);\r\n self.gainNode.gain.value = 0; // don't hear self\r\n }\r\n\r\n var audioTracksLength = 0;\r\n arrayOfMediaStreams.forEach(function(stream) {\r\n if (!stream.getTracks().filter(function(t) {\r\n return t.kind === 'audio';\r\n }).length) {\r\n return;\r\n }\r\n\r\n audioTracksLength++;\r\n\r\n var audioSource = self.audioContext.createMediaStreamSource(stream);\r\n\r\n if (self.useGainNode === true) {\r\n audioSource.connect(self.gainNode);\r\n }\r\n\r\n self.audioSources.push(audioSource);\r\n });\r\n\r\n if (!audioTracksLength) {\r\n // because \"self.audioContext\" is not initialized\r\n // that's why we've to ignore rest of the code\r\n return;\r\n }\r\n\r\n self.audioDestination = self.audioContext.createMediaStreamDestination();\r\n self.audioSources.forEach(function(audioSource) {\r\n audioSource.connect(self.audioDestination);\r\n });\r\n return self.audioDestination.stream;\r\n }\r\n\r\n function getVideo(stream) {\r\n var video = document.createElement('video');\r\n\r\n setSrcObject(stream, video);\r\n\r\n video.className = elementClass;\r\n\r\n video.muted = true;\r\n video.volume = 0;\r\n\r\n video.width = stream.width || self.width || 360;\r\n video.height = stream.height || self.height || 240;\r\n\r\n video.play();\r\n\r\n return video;\r\n }\r\n\r\n this.appendStreams = function(streams) {\r\n if (!streams) {\r\n throw 'First parameter is required.';\r\n }\r\n\r\n if (!(streams instanceof Array)) {\r\n streams = [streams];\r\n }\r\n\r\n streams.forEach(function(stream) {\r\n var newStream = new MediaStream();\r\n\r\n if (stream.getTracks().filter(function(t) {\r\n return t.kind === 'video';\r\n }).length) {\r\n var video = getVideo(stream);\r\n video.stream = stream;\r\n videos.push(video);\r\n\r\n newStream.addTrack(stream.getTracks().filter(function(t) {\r\n return t.kind === 'video';\r\n })[0]);\r\n }\r\n\r\n if (stream.getTracks().filter(function(t) {\r\n return t.kind === 'audio';\r\n }).length) {\r\n var audioSource = self.audioContext.createMediaStreamSource(stream);\r\n self.audioDestination = self.audioContext.createMediaStreamDestination();\r\n audioSource.connect(self.audioDestination);\r\n\r\n newStream.addTrack(self.audioDestination.stream.getTracks().filter(function(t) {\r\n return t.kind === 'audio';\r\n })[0]);\r\n }\r\n\r\n arrayOfMediaStreams.push(newStream);\r\n });\r\n };\r\n\r\n this.releaseStreams = function() {\r\n videos = [];\r\n isStopDrawingFrames = true;\r\n\r\n if (self.gainNode) {\r\n self.gainNode.disconnect();\r\n self.gainNode = null;\r\n }\r\n\r\n if (self.audioSources.length) {\r\n self.audioSources.forEach(function(source) {\r\n source.disconnect();\r\n });\r\n self.audioSources = [];\r\n }\r\n\r\n if (self.audioDestination) {\r\n self.audioDestination.disconnect();\r\n self.audioDestination = null;\r\n }\r\n\r\n if (self.audioContext) {\r\n self.audioContext.close();\r\n }\r\n\r\n self.audioContext = null;\r\n\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n if (canvas.stream) {\r\n canvas.stream.stop();\r\n canvas.stream = null;\r\n }\r\n };\r\n\r\n this.resetVideoStreams = function(streams) {\r\n if (streams && !(streams instanceof Array)) {\r\n streams = [streams];\r\n }\r\n\r\n resetVideoStreams(streams);\r\n };\r\n\r\n function resetVideoStreams(streams) {\r\n videos = [];\r\n streams = streams || arrayOfMediaStreams;\r\n\r\n // via: @adrian-ber\r\n streams.forEach(function(stream) {\r\n if (!stream.getTracks().filter(function(t) {\r\n return t.kind === 'video';\r\n }).length) {\r\n return;\r\n }\r\n\r\n var video = getVideo(stream);\r\n video.stream = stream;\r\n videos.push(video);\r\n });\r\n }\r\n\r\n // for debugging\r\n this.name = 'MultiStreamsMixer';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n this.getMixedStream = getMixedStream;\r\n\r\n}\r\n\r\nif (typeof RecordRTC === 'undefined') {\r\n if (typeof module !== 'undefined' /* && !!module.exports*/ ) {\r\n module.exports = MultiStreamsMixer;\r\n }\r\n\r\n if (typeof define === 'function' && define.amd) {\r\n define('MultiStreamsMixer', [], function() {\r\n return MultiStreamsMixer;\r\n });\r\n }\r\n}\n\r\n// ______________________\r\n// MultiStreamRecorder.js\r\n\r\n/*\r\n * Video conference recording, using captureStream API along with WebAudio and Canvas2D API.\r\n */\r\n\r\n/**\r\n * MultiStreamRecorder can record multiple videos in single container.\r\n * @summary Multi-videos recorder.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef MultiStreamRecorder\r\n * @class\r\n * @example\r\n * var options = {\r\n * mimeType: 'video/webm'\r\n * }\r\n * var recorder = new MultiStreamRecorder(ArrayOfMediaStreams, options);\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n *\r\n * // or\r\n * var blob = recorder.blob;\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStreams} mediaStreams - Array of MediaStreams.\r\n * @param {object} config - {disableLogs:true, frameInterval: 1, mimeType: \"video/webm\"}\r\n */\r\n\r\nfunction MultiStreamRecorder(arrayOfMediaStreams, options) {\r\n arrayOfMediaStreams = arrayOfMediaStreams || [];\r\n var self = this;\r\n\r\n var mixer;\r\n var mediaRecorder;\r\n\r\n options = options || {\r\n elementClass: 'multi-streams-mixer',\r\n mimeType: 'video/webm',\r\n video: {\r\n width: 360,\r\n height: 240\r\n }\r\n };\r\n\r\n if (!options.frameInterval) {\r\n options.frameInterval = 10;\r\n }\r\n\r\n if (!options.video) {\r\n options.video = {};\r\n }\r\n\r\n if (!options.video.width) {\r\n options.video.width = 360;\r\n }\r\n\r\n if (!options.video.height) {\r\n options.video.height = 240;\r\n }\r\n\r\n /**\r\n * This method records all MediaStreams.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n // github/muaz-khan/MultiStreamsMixer\r\n mixer = new MultiStreamsMixer(arrayOfMediaStreams, options.elementClass || 'multi-streams-mixer');\r\n\r\n if (getAllVideoTracks().length) {\r\n mixer.frameInterval = options.frameInterval || 10;\r\n mixer.width = options.video.width || 360;\r\n mixer.height = options.video.height || 240;\r\n mixer.startDrawingFrames();\r\n }\r\n\r\n if (options.previewStream && typeof options.previewStream === 'function') {\r\n options.previewStream(mixer.getMixedStream());\r\n }\r\n\r\n // record using MediaRecorder API\r\n mediaRecorder = new MediaStreamRecorder(mixer.getMixedStream(), options);\r\n mediaRecorder.record();\r\n };\r\n\r\n function getAllVideoTracks() {\r\n var tracks = [];\r\n arrayOfMediaStreams.forEach(function(stream) {\r\n getTracks(stream, 'video').forEach(function(track) {\r\n tracks.push(track);\r\n });\r\n });\r\n return tracks;\r\n }\r\n\r\n /**\r\n * This method stops recording MediaStream.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n if (!mediaRecorder) {\r\n return;\r\n }\r\n\r\n mediaRecorder.stop(function(blob) {\r\n self.blob = blob;\r\n\r\n callback(blob);\r\n\r\n self.clearRecordedData();\r\n });\r\n };\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n if (mediaRecorder) {\r\n mediaRecorder.pause();\r\n }\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n if (mediaRecorder) {\r\n mediaRecorder.resume();\r\n }\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n if (mediaRecorder) {\r\n mediaRecorder.clearRecordedData();\r\n mediaRecorder = null;\r\n }\r\n\r\n if (mixer) {\r\n mixer.releaseStreams();\r\n mixer = null;\r\n }\r\n };\r\n\r\n /**\r\n * Add extra media-streams to existing recordings.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @param {MediaStreams} mediaStreams - Array of MediaStreams\r\n * @example\r\n * recorder.addStreams([newAudioStream, newVideoStream]);\r\n */\r\n this.addStreams = function(streams) {\r\n if (!streams) {\r\n throw 'First parameter is required.';\r\n }\r\n\r\n if (!(streams instanceof Array)) {\r\n streams = [streams];\r\n }\r\n\r\n arrayOfMediaStreams.concat(streams);\r\n\r\n if (!mediaRecorder || !mixer) {\r\n return;\r\n }\r\n\r\n mixer.appendStreams(streams);\r\n\r\n if (options.previewStream && typeof options.previewStream === 'function') {\r\n options.previewStream(mixer.getMixedStream());\r\n }\r\n };\r\n\r\n /**\r\n * Reset videos during live recording. Replace old videos e.g. replace cameras with full-screen.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @param {MediaStreams} mediaStreams - Array of MediaStreams\r\n * @example\r\n * recorder.resetVideoStreams([newVideo1, newVideo2]);\r\n */\r\n this.resetVideoStreams = function(streams) {\r\n if (!mixer) {\r\n return;\r\n }\r\n\r\n if (streams && !(streams instanceof Array)) {\r\n streams = [streams];\r\n }\r\n\r\n mixer.resetVideoStreams(streams);\r\n };\r\n\r\n /**\r\n * Returns MultiStreamsMixer\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * let mixer = recorder.getMixer();\r\n * mixer.appendStreams([newStream]);\r\n */\r\n this.getMixer = function() {\r\n return mixer;\r\n };\r\n\r\n // for debugging\r\n this.name = 'MultiStreamRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.MultiStreamRecorder = MultiStreamRecorder;\r\n}\n\r\n// _____________________\r\n// RecordRTC.promises.js\r\n\r\n/**\r\n * RecordRTCPromisesHandler adds promises support in {@link RecordRTC}. Try a {@link https://github.com/muaz-khan/RecordRTC/blob/master/simple-demos/RecordRTCPromisesHandler.html|demo here}\r\n * @summary Promises for {@link RecordRTC}\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef RecordRTCPromisesHandler\r\n * @class\r\n * @example\r\n * var recorder = new RecordRTCPromisesHandler(mediaStream, options);\r\n * recorder.startRecording()\r\n * .then(successCB)\r\n * .catch(errorCB);\r\n * // Note: You can access all RecordRTC API using \"recorder.recordRTC\" e.g. \r\n * recorder.recordRTC.onStateChanged = function(state) {};\r\n * recorder.recordRTC.setRecordingDuration(5000);\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - Single media-stream object, array of media-streams, html-canvas-element, etc.\r\n * @param {object} config - {type:\"video\", recorderType: MediaStreamRecorder, disableLogs: true, numberOfAudioChannels: 1, bufferSize: 0, sampleRate: 0, video: HTMLVideoElement, etc.}\r\n * @throws Will throw an error if \"new\" keyword is not used to initiate \"RecordRTCPromisesHandler\". Also throws error if first argument \"MediaStream\" is missing.\r\n * @requires {@link RecordRTC}\r\n */\r\n\r\nfunction RecordRTCPromisesHandler(mediaStream, options) {\r\n if (!this) {\r\n throw 'Use \"new RecordRTCPromisesHandler()\"';\r\n }\r\n\r\n if (typeof mediaStream === 'undefined') {\r\n throw 'First argument \"MediaStream\" is required.';\r\n }\r\n\r\n var self = this;\r\n\r\n /**\r\n * @property {Blob} blob - Access/reach the native {@link RecordRTC} object.\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * let internal = recorder.recordRTC.getInternalRecorder();\r\n * alert(internal instanceof MediaStreamRecorder);\r\n * recorder.recordRTC.onStateChanged = function(state) {};\r\n */\r\n self.recordRTC = new RecordRTC(mediaStream, options);\r\n\r\n /**\r\n * This method records MediaStream.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.startRecording()\r\n * .then(successCB)\r\n * .catch(errorCB);\r\n */\r\n this.startRecording = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n self.recordRTC.startRecording();\r\n resolve();\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method stops the recording.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.stopRecording().then(function() {\r\n * var blob = recorder.getBlob();\r\n * }).catch(errorCB);\r\n */\r\n this.stopRecording = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n self.recordRTC.stopRecording(function(url) {\r\n self.blob = self.recordRTC.getBlob();\r\n\r\n if (!self.blob || !self.blob.size) {\r\n reject('Empty blob.', self.blob);\r\n return;\r\n }\r\n\r\n resolve(url);\r\n });\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method pauses the recording. You can resume recording using \"resumeRecording\" method.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.pauseRecording()\r\n * .then(successCB)\r\n * .catch(errorCB);\r\n */\r\n this.pauseRecording = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n self.recordRTC.pauseRecording();\r\n resolve();\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method resumes the recording.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.resumeRecording()\r\n * .then(successCB)\r\n * .catch(errorCB);\r\n */\r\n this.resumeRecording = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n self.recordRTC.resumeRecording();\r\n resolve();\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method returns data-url for the recorded blob.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.stopRecording().then(function() {\r\n * recorder.getDataURL().then(function(dataURL) {\r\n * window.open(dataURL);\r\n * }).catch(errorCB);;\r\n * }).catch(errorCB);\r\n */\r\n this.getDataURL = function(callback) {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n self.recordRTC.getDataURL(function(dataURL) {\r\n resolve(dataURL);\r\n });\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method returns the recorded blob.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.stopRecording().then(function() {\r\n * recorder.getBlob().then(function(blob) {})\r\n * }).catch(errorCB);\r\n */\r\n this.getBlob = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n resolve(self.recordRTC.getBlob());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method returns the internal recording object.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * let internalRecorder = await recorder.getInternalRecorder();\r\n * if(internalRecorder instanceof MultiStreamRecorder) {\r\n * internalRecorder.addStreams([newAudioStream]);\r\n * internalRecorder.resetVideoStreams([screenStream]);\r\n * }\r\n * @returns {Object} \r\n */\r\n this.getInternalRecorder = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n resolve(self.recordRTC.getInternalRecorder());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method resets the recorder. So that you can reuse single recorder instance many times.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * await recorder.reset();\r\n * recorder.startRecording(); // record again\r\n */\r\n this.reset = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n resolve(self.recordRTC.reset());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Destroy RecordRTC instance. Clear all recorders and objects.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.destroy().then(successCB).catch(errorCB);\r\n */\r\n this.destroy = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n resolve(self.recordRTC.destroy());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Get recorder's readonly state.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * let state = await recorder.getState();\r\n * // or\r\n * recorder.getState().then(state => { console.log(state); })\r\n * @returns {String} Returns recording state.\r\n */\r\n this.getState = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n resolve(self.recordRTC.getState());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * @property {Blob} blob - Recorded data as \"Blob\" object.\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * await recorder.stopRecording();\r\n * let blob = recorder.getBlob(); // or \"recorder.recordRTC.blob\"\r\n * invokeSaveAsDialog(blob);\r\n */\r\n this.blob = null;\r\n\r\n /**\r\n * RecordRTC version number\r\n * @property {String} version - Release version number.\r\n * @memberof RecordRTCPromisesHandler\r\n * @static\r\n * @readonly\r\n * @example\r\n * alert(recorder.version);\r\n */\r\n this.version = '5.6.2';\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.RecordRTCPromisesHandler = RecordRTCPromisesHandler;\r\n}\n\r\n// ______________________\r\n// WebAssemblyRecorder.js\r\n\r\n/**\r\n * WebAssemblyRecorder lets you create webm videos in JavaScript via WebAssembly. The library consumes raw RGBA32 buffers (4 bytes per pixel) and turns them into a webm video with the given framerate and quality. This makes it compatible out-of-the-box with ImageData from a CANVAS. With realtime mode you can also use webm-wasm for streaming webm videos.\r\n * @summary Video recording feature in Chrome, Firefox and maybe Edge.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef WebAssemblyRecorder\r\n * @class\r\n * @example\r\n * var recorder = new WebAssemblyRecorder(mediaStream);\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {webAssemblyPath:'webm-wasm.wasm',workerPath: 'webm-worker.js', frameRate: 30, width: 1920, height: 1080, bitrate: 1024, realtime: true}\r\n */\r\nfunction WebAssemblyRecorder(stream, config) {\r\n // based on: github.com/GoogleChromeLabs/webm-wasm\r\n\r\n if (typeof ReadableStream === 'undefined' || typeof WritableStream === 'undefined') {\r\n // because it fixes readable/writable streams issues\r\n console.error('Following polyfill is strongly recommended: https://unpkg.com/@mattiasbuelens/web-streams-polyfill/dist/polyfill.min.js');\r\n }\r\n\r\n config = config || {};\r\n\r\n config.width = config.width || 640;\r\n config.height = config.height || 480;\r\n config.frameRate = config.frameRate || 30;\r\n config.bitrate = config.bitrate || 1200;\r\n config.realtime = config.realtime || true;\r\n\r\n function createBufferURL(buffer, type) {\r\n return URL.createObjectURL(new Blob([buffer], {\r\n type: type || ''\r\n }));\r\n }\r\n\r\n var finished;\r\n\r\n function cameraStream() {\r\n return new ReadableStream({\r\n start: function(controller) {\r\n var cvs = document.createElement('canvas');\r\n var video = document.createElement('video');\r\n var first = true;\r\n video.srcObject = stream;\r\n video.muted = true;\r\n video.height = config.height;\r\n video.width = config.width;\r\n video.volume = 0;\r\n video.onplaying = function() {\r\n cvs.width = config.width;\r\n cvs.height = config.height;\r\n var ctx = cvs.getContext('2d');\r\n var frameTimeout = 1000 / config.frameRate;\r\n var cameraTimer = setInterval(function f() {\r\n if (finished) {\r\n clearInterval(cameraTimer);\r\n controller.close();\r\n }\r\n\r\n if (first) {\r\n first = false;\r\n if (config.onVideoProcessStarted) {\r\n config.onVideoProcessStarted();\r\n }\r\n }\r\n\r\n ctx.drawImage(video, 0, 0);\r\n if (controller._controlledReadableStream.state !== 'closed') {\r\n try {\r\n controller.enqueue(\r\n ctx.getImageData(0, 0, config.width, config.height)\r\n );\r\n } catch (e) {}\r\n }\r\n }, frameTimeout);\r\n };\r\n video.play();\r\n }\r\n });\r\n }\r\n\r\n var worker;\r\n\r\n function startRecording(stream, buffer) {\r\n if (!config.workerPath && !buffer) {\r\n finished = false;\r\n\r\n // is it safe to use @latest ?\r\n\r\n fetch(\r\n 'https://unpkg.com/webm-wasm@latest/dist/webm-worker.js'\r\n ).then(function(r) {\r\n r.arrayBuffer().then(function(buffer) {\r\n startRecording(stream, buffer);\r\n });\r\n });\r\n return;\r\n }\r\n\r\n if (!config.workerPath && buffer instanceof ArrayBuffer) {\r\n var blob = new Blob([buffer], {\r\n type: 'text/javascript'\r\n });\r\n config.workerPath = URL.createObjectURL(blob);\r\n }\r\n\r\n if (!config.workerPath) {\r\n console.error('workerPath parameter is missing.');\r\n }\r\n\r\n worker = new Worker(config.workerPath);\r\n\r\n worker.postMessage(config.webAssemblyPath || 'https://unpkg.com/webm-wasm@latest/dist/webm-wasm.wasm');\r\n worker.addEventListener('message', function(event) {\r\n if (event.data === 'READY') {\r\n worker.postMessage({\r\n width: config.width,\r\n height: config.height,\r\n bitrate: config.bitrate || 1200,\r\n timebaseDen: config.frameRate || 30,\r\n realtime: config.realtime\r\n });\r\n\r\n cameraStream().pipeTo(new WritableStream({\r\n write: function(image) {\r\n if (finished) {\r\n console.error('Got image, but recorder is finished!');\r\n return;\r\n }\r\n\r\n worker.postMessage(image.data.buffer, [image.data.buffer]);\r\n }\r\n }));\r\n } else if (!!event.data) {\r\n if (!isPaused) {\r\n arrayOfBuffers.push(event.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * This method records video.\r\n * @method\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n arrayOfBuffers = [];\r\n isPaused = false;\r\n this.blob = null;\r\n startRecording(stream);\r\n\r\n if (typeof config.initCallback === 'function') {\r\n config.initCallback();\r\n }\r\n };\r\n\r\n var isPaused;\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n isPaused = true;\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n isPaused = false;\r\n };\r\n\r\n function terminate(callback) {\r\n if (!worker) {\r\n if (callback) {\r\n callback();\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Wait for null event data to indicate that the encoding is complete\r\n worker.addEventListener('message', function(event) {\r\n if (event.data === null) {\r\n worker.terminate();\r\n worker = null;\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n });\r\n\r\n worker.postMessage(null);\r\n }\r\n\r\n var arrayOfBuffers = [];\r\n\r\n /**\r\n * This method stops recording video.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n finished = true;\r\n\r\n var recorder = this;\r\n\r\n terminate(function() {\r\n recorder.blob = new Blob(arrayOfBuffers, {\r\n type: 'video/webm'\r\n });\r\n\r\n callback(recorder.blob);\r\n });\r\n };\r\n\r\n // for debugging\r\n this.name = 'WebAssemblyRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n arrayOfBuffers = [];\r\n isPaused = false;\r\n this.blob = null;\r\n\r\n // todo: if recording-ON then STOP it first\r\n };\r\n\r\n /**\r\n * @property {Blob} blob - The recorded blob object.\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.stop(function(){\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n this.blob = null;\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.WebAssemblyRecorder = WebAssemblyRecorder;\r\n}\n","import {downloadRecord, now} from \"../utils\";\nimport saveAs from \"../utils/file-save\";\nimport RecordRTC from 'recordrtc';\nimport {EVENTS, FILE_SUFFIX} from \"../constant\";\nimport Emitter from \"../utils/emitter\";\n\nexport default class RecordRTCLoader extends Emitter {\n constructor(player) {\n super();\n this.player = player;\n this.fileName = '';\n this.fileType = player._opt.recordType || FILE_SUFFIX.webm;\n this.isRecording = false;\n this.recordingTimestamp = 0;\n this.recordingInterval = null;\n player.debug.log('Recorder', 'init');\n }\n\n destroy() {\n this._reset();\n this.player.debug.log('Recorder', 'destroy');\n }\n\n setFileName(fileName, fileType) {\n this.fileName = fileName;\n\n if (FILE_SUFFIX.mp4 === fileType || FILE_SUFFIX.webm === fileType) {\n this.fileType = fileType;\n }\n }\n\n get recording() {\n return this.isRecording;\n }\n\n get recordTime() {\n return this.recordingTimestamp;\n }\n\n startRecord() {\n const debug = this.player.debug;\n const options = {\n type: 'video',\n mimeType: 'video/webm;codecs=h264',\n onTimeStamp: (timestamp) => {\n debug.log('Recorder', 'record timestamp :' + timestamp);\n },\n disableLogs: !this.player._opt.debug\n }\n\n try {\n const stream = this.player.video.$videoElement.captureStream(25);\n if (this.player.audio && this.player.audio.mediaStreamAudioDestinationNode &&\n this.player.audio.mediaStreamAudioDestinationNode.stream &&\n !this.player.audio.isStateSuspended() &&\n this.player.audio.hasAudio && this.player._opt.hasAudio) {\n const audioStream = this.player.audio.mediaStreamAudioDestinationNode.stream;\n if (audioStream.getAudioTracks().length > 0) {\n const audioTrack = audioStream.getAudioTracks()[0];\n if (audioTrack && audioTrack.enabled) {\n stream.addTrack(audioTrack);\n }\n }\n }\n this.recorder = RecordRTC(stream, options);\n } catch (e) {\n debug.error('Recorder', 'startRecord error', e);\n this.emit(EVENTS.recordCreateError);\n }\n if (this.recorder) {\n this.isRecording = true;\n this.player.emit(EVENTS.recording, true);\n this.recorder.startRecording();\n debug.log('Recorder', 'start recording');\n this.player.emit(EVENTS.recordStart);\n this.recordingInterval = window.setInterval(() => {\n this.recordingTimestamp += 1;\n this.player.emit(EVENTS.recordingTimestamp, this.recordingTimestamp);\n }, 1000);\n }\n }\n\n stopRecordAndSave() {\n if (!this.recorder || !this.isRecording) {\n return;\n }\n this.recorder.stopRecording(() => {\n this.player.debug.log('Recorder', 'stop recording');\n this.player.emit(EVENTS.recordEnd)\n const fileName = (this.fileName || now()) + '.' + (this.fileType || FILE_SUFFIX.webm)\n saveAs(this.recorder.getBlob(), fileName)\n this._reset();\n this.player.emit(EVENTS.recording, false);\n })\n }\n\n _reset() {\n this.isRecording = false;\n this.recordingTimestamp = 0;\n\n if (this.recorder) {\n this.recorder.destroy();\n this.recorder = null;\n }\n this.fileName = null;\n if (this.recordingInterval) {\n clearInterval(this.recordingInterval);\n }\n this.recordingInterval = null;\n }\n\n\n}\n","import RecordRTCLoader from \"./recordRTCLoader\";\n\nexport default class Recorder {\n constructor(player) {\n const Loader = Recorder.getLoaderFactory();\n return new Loader(player);\n }\n\n static getLoaderFactory() {\n return RecordRTCLoader;\n }\n}\n","import {EVENTS, EVENTS_ERROR, MEDIA_TYPE, WASM_ERROR, WORKER_CMD_TYPE, WORKER_SEND_TYPE} from \"../constant\";\nimport {isWebglRenderSupport, now} from \"../utils\";\n\nexport default class DecoderWorker {\n constructor(player) {\n this.player = player;\n this.decoderWorker = new Worker(player._opt.decoder)\n this._initDecoderWorker();\n player.debug.log('decoderWorker', 'init')\n }\n\n async destroy() {\n this.decoderWorker.postMessage({cmd: WORKER_SEND_TYPE.close})\n this.decoderWorker.terminate();\n this.decoderWorker = null;\n this.player.debug.log(`decoderWorker`, 'destroy');\n }\n\n _initDecoderWorker() {\n const {\n debug,\n events: {proxy},\n } = this.player;\n\n this.decoderWorker.onmessage = (event) => {\n const msg = event.data;\n switch (msg.cmd) {\n case WORKER_CMD_TYPE.init:\n debug.log(`decoderWorker`, 'onmessage:', WORKER_CMD_TYPE.init);\n if (!this.player.loaded) {\n this.player.emit(EVENTS.load);\n }\n this.player.emit(EVENTS.decoderWorkerInit);\n this._initWork();\n break;\n case WORKER_CMD_TYPE.videoCode:\n debug.log(`decoderWorker`, 'onmessage:', WORKER_CMD_TYPE.videoCode, msg.code);\n if (!this.player._times.decodeStart) {\n this.player._times.decodeStart = now();\n }\n this.player.video.updateVideoInfo({\n encTypeCode: msg.code\n })\n break;\n case WORKER_CMD_TYPE.audioCode:\n debug.log(`decoderWorker`, 'onmessage:', WORKER_CMD_TYPE.audioCode, msg.code);\n this.player.audio && this.player.audio.updateAudioInfo({\n encTypeCode: msg.code\n })\n break;\n case WORKER_CMD_TYPE.initVideo:\n debug.log(`decoderWorker`, 'onmessage:', WORKER_CMD_TYPE.initVideo, `width:${msg.w},height:${msg.h}`);\n this.player.video.updateVideoInfo({\n width: msg.w,\n height: msg.h\n })\n if (!this.player._opt.openWebglAlignment && !isWebglRenderSupport(msg.w)) {\n this.player.emit(EVENTS_ERROR.webglAlignmentError);\n return;\n }\n\n this.player.video.initCanvasViewSize();\n break;\n case WORKER_CMD_TYPE.initAudio:\n debug.log(`decoderWorker`, 'onmessage:', WORKER_CMD_TYPE.initAudio, `channels:${msg.channels},sampleRate:${msg.sampleRate}`);\n if (this.player.audio) {\n this.player.audio.updateAudioInfo(msg);\n this.player.audio.initScriptNode(msg);\n }\n break;\n case WORKER_CMD_TYPE.render:\n // debug.log(`decoderWorker`, 'onmessage:', WORKER_CMD_TYPE.render, `msg ts:${msg.ts}`);\n this.player.handleRender();\n this.player.video.render(msg);\n this.player.emit(EVENTS.timeUpdate, msg.ts)\n this.player.updateStats({fps: true, ts: msg.ts, buf: msg.delay})\n if (!this.player._times.videoStart) {\n this.player._times.videoStart = now();\n this.player.handlePlayToRenderTimes();\n }\n break;\n case WORKER_CMD_TYPE.playAudio:\n // debug.log(`decoderWorker`, 'onmessage:', WORKER_CMD_TYPE.playAudio, `msg ts:${msg.ts}`);\n // 只有在 playing 的时候。\n if (this.player.playing && this.player.audio) {\n this.player.audio.play(msg.buffer, msg.ts);\n }\n break;\n case WORKER_CMD_TYPE.wasmError:\n if (msg.message) {\n if (msg.message.indexOf(WASM_ERROR.invalidNalUnitSize) !== -1) {\n this.player.emitError(EVENTS_ERROR.wasmDecodeError);\n }\n }\n break;\n default:\n this.player[msg.cmd] && this.player[msg.cmd](msg);\n }\n }\n }\n\n _initWork() {\n const opt = {\n debug: this.player._opt.debug,\n useOffscreen: this.player._opt.useOffscreen,\n useWCS: this.player._opt.useWCS,\n videoBuffer: this.player._opt.videoBuffer,\n videoBufferDelay: this.player._opt.videoBufferDelay,\n openWebglAlignment: this.player._opt.openWebglAlignment\n }\n this.decoderWorker.postMessage({\n cmd: WORKER_SEND_TYPE.init,\n opt: JSON.stringify(opt),\n sampleRate: (this.player.audio && this.player.audio.audioContext.sampleRate) || 0\n })\n }\n\n decodeVideo(arrayBuffer, ts, isIFrame) {\n\n const options = {\n type: MEDIA_TYPE.video,\n ts: Math.max(ts, 0),\n isIFrame\n }\n // this.player.debug.log('decoderWorker', 'decodeVideo', options);\n this.decoderWorker.postMessage({\n cmd: WORKER_SEND_TYPE.decode,\n buffer: arrayBuffer,\n options\n }, [arrayBuffer.buffer])\n }\n\n decodeAudio(arrayBuffer, ts) {\n if (this.player._opt.useWCS) {\n this._decodeAudioNoDelay(arrayBuffer, ts);\n } else if (this.player._opt.useMSE) {\n this._decodeAudioNoDelay(arrayBuffer, ts);\n } else {\n this._decodeAudio(arrayBuffer, ts);\n }\n }\n\n //\n _decodeAudio(arrayBuffer, ts) {\n const options = {\n type: MEDIA_TYPE.audio,\n ts: Math.max(ts, 0)\n }\n // this.player.debug.log('decoderWorker', 'decodeAudio',options);\n this.decoderWorker.postMessage({\n cmd: WORKER_SEND_TYPE.decode,\n buffer: arrayBuffer,\n options\n }, [arrayBuffer.buffer])\n }\n\n\n _decodeAudioNoDelay(arrayBuffer, ts) {\n // console.log('_decodeAudioNoDelay', arrayBuffer);\n this.decoderWorker.postMessage({\n cmd: WORKER_SEND_TYPE.audioDecode,\n buffer: arrayBuffer,\n ts: Math.max(ts, 0)\n }, [arrayBuffer.buffer])\n }\n\n\n updateWorkConfig(config) {\n this.decoderWorker.postMessage({\n cmd: WORKER_SEND_TYPE.updateConfig,\n key: config.key,\n value: config.value\n })\n }\n\n}\n","import Emitter from \"../utils/emitter\";\nimport {FRAME_HEADER_EX, FRAME_TYPE_EX, MEDIA_TYPE, PACKET_TYPE_EX} from \"../constant\";\nimport {hevcEncoderNalePacketNotLength} from \"../utils\";\n\nexport default class CommonLoader extends Emitter {\n constructor(player) {\n super();\n this.player = player;\n\n this.stopId = null;\n this.firstTimestamp = null;\n this.startTimestamp = null;\n this.delay = -1;\n this.bufferList = [];\n this.dropping = false;\n this.initInterval();\n }\n\n destroy() {\n if (this.stopId) {\n clearInterval(this.stopId);\n this.stopId = null;\n }\n this.firstTimestamp = null;\n this.startTimestamp = null;\n this.delay = -1;\n this.bufferList = [];\n this.dropping = false;\n this.off();\n this.player.debug.log('CommonDemux', 'destroy');\n }\n\n getDelay(timestamp) {\n if (!timestamp) {\n return -1\n }\n if (!this.firstTimestamp) {\n this.firstTimestamp = timestamp\n this.startTimestamp = Date.now()\n this.delay = -1;\n } else {\n if (timestamp) {\n const localTimestamp = (Date.now() - this.startTimestamp);\n const timeTimestamp = (timestamp - this.firstTimestamp);\n if (localTimestamp >= timeTimestamp) {\n this.delay = localTimestamp - timeTimestamp;\n } else {\n this.delay = timeTimestamp - localTimestamp;\n }\n }\n }\n return this.delay\n }\n\n resetDelay() {\n this.firstTimestamp = null;\n this.startTimestamp = null;\n this.delay = -1;\n this.dropping = false;\n }\n\n //\n initInterval() {\n this.player.debug.log('common dumex', `init Interval`);\n let _loop = () => {\n let data;\n const videoBuffer = this.player._opt.videoBuffer;\n const videoBufferDelay = this.player._opt.videoBufferDelay;\n\n if (this.player._opt.useMSE &&\n this.player.mseDecoder &&\n this.player.mseDecoder.getSourceBufferUpdating()) {\n this.player.debug.warn('CommonDemux', `_loop getSourceBufferUpdating is true and bufferList length is ${this.bufferList.length}`);\n return;\n }\n\n if (this.bufferList.length) {\n if (this.dropping) {\n // this.player.debug.log('common dumex', `is dropping`);\n data = this.bufferList.shift();\n if (data.type === MEDIA_TYPE.audio && data.payload[1] === 0) {\n this._doDecoderDecode(data);\n }\n while (!data.isIFrame && this.bufferList.length) {\n data = this.bufferList.shift();\n if (data.type === MEDIA_TYPE.audio && data.payload[1] === 0) {\n this._doDecoderDecode(data);\n }\n }\n // i frame\n if (data.isIFrame && this.getDelay(data.ts) <= Math.min(videoBuffer, 200)) {\n this.dropping = false;\n this._doDecoderDecode(data);\n }\n } else {\n data = this.bufferList[0];\n if (this.getDelay(data.ts) === -1) {\n // this.player.debug.log('common dumex', `delay is -1`);\n this.bufferList.shift()\n this._doDecoderDecode(data);\n } else if (this.delay > (videoBuffer + videoBufferDelay)) {\n // this.player.debug.log('common dumex', `delay is ${this.delay}, set dropping is true`);\n this.resetDelay();\n this.dropping = true\n } else {\n data = this.bufferList[0]\n if (this.getDelay(data.ts) > videoBuffer) {\n // drop frame\n this.bufferList.shift()\n this._doDecoderDecode(data);\n } else {\n // this.player.debug.log('common dumex', `delay is ${this.delay}`);\n }\n }\n }\n }\n }\n _loop();\n this.stopId = setInterval(_loop, 10)\n }\n\n _doDecode(payload, type, ts, isIFrame, cts) {\n const player = this.player;\n let options = {\n ts: ts,\n cts: cts,\n type: type,\n isIFrame: false\n }\n // use offscreen\n if (player._opt.useWCS && !player._opt.useOffscreen) {\n if (type === MEDIA_TYPE.video) {\n options.isIFrame = isIFrame;\n }\n this.pushBuffer(payload, options)\n } else if (player._opt.useMSE) {\n // use mse\n if (type === MEDIA_TYPE.video) {\n options.isIFrame = isIFrame;\n }\n this.pushBuffer(payload, options)\n } else {\n //\n if (type === MEDIA_TYPE.video) {\n player.decoderWorker && player.decoderWorker.decodeVideo(payload, ts, isIFrame);\n } else if (type === MEDIA_TYPE.audio) {\n if (player._opt.hasAudio) {\n player.decoderWorker && player.decoderWorker.decodeAudio(payload, ts);\n }\n }\n }\n }\n\n _doDecoderDecode(data) {\n const player = this.player;\n const {webcodecsDecoder, mseDecoder} = player;\n\n if (data.type === MEDIA_TYPE.audio) {\n if (player._opt.hasAudio) {\n player.decoderWorker && player.decoderWorker.decodeAudio(data.payload, data.ts)\n }\n } else if (data.type === MEDIA_TYPE.video) {\n if (player._opt.useWCS && !player._opt.useOffscreen) {\n webcodecsDecoder.decodeVideo(data.payload, data.ts, data.isIFrame);\n } else if (player._opt.useMSE) {\n mseDecoder.decodeVideo(data.payload, data.ts, data.isIFrame, data.cts);\n }\n }\n }\n\n pushBuffer(payload, options) {\n // 音频\n if (options.type === MEDIA_TYPE.audio) {\n this.bufferList.push({\n ts: options.ts,\n payload: payload,\n type: MEDIA_TYPE.audio,\n })\n } else if (options.type === MEDIA_TYPE.video) {\n this.bufferList.push({\n ts: options.ts,\n cts: options.cts,\n payload: payload,\n type: MEDIA_TYPE.video,\n isIFrame: options.isIFrame\n })\n }\n }\n\n close() {\n\n }\n\n _decodeEnhancedH265Video(payload, ts) {\n const flags = payload[0];\n const frameTypeEx = flags & 0x30;\n const packetEx = flags & 0x0F;\n const codecId = payload.slice(1, 5);\n const tmp = new ArrayBuffer(4);\n const tmp32 = new Uint32Array(tmp);\n const isAV1 = String.fromCharCode(codecId[0]) == 'a';\n if (packetEx === PACKET_TYPE_EX.PACKET_TYPE_SEQ_START) {\n if (frameTypeEx === FRAME_TYPE_EX.FT_KEY) {\n // header video info\n const extraData = payload.slice(5);\n if (!isAV1) {\n const payloadBuffer = new Uint8Array(5 + extraData.length);\n payloadBuffer.set([0x1c, 0x00, 0x00, 0x00, 0x00], 0);\n payloadBuffer.set(extraData, 5);\n this._doDecode(payloadBuffer, MEDIA_TYPE.video, 0, true, 0);\n }\n }\n } else if (packetEx === PACKET_TYPE_EX.PACKET_TYPE_FRAMES) {\n let payloadBuffer = payload;\n let cts = 0;\n const isIFrame = frameTypeEx === FRAME_TYPE_EX.FT_KEY;\n\n if (!isAV1) {\n // h265\n tmp32[0] = payload[4]\n tmp32[1] = payload[3]\n tmp32[2] = payload[2]\n tmp32[3] = 0\n cts = tmp32[0];\n const data = payload.slice(8);\n payloadBuffer = hevcEncoderNalePacketNotLength(data, isIFrame);\n this._doDecode(payloadBuffer, MEDIA_TYPE.video, ts, isIFrame, cts);\n }\n\n } else if (packetEx === PACKET_TYPE_EX.PACKET_TYPE_FRAMESX) {\n const isIFrame = frameTypeEx === FRAME_TYPE_EX.FT_KEY;\n const data = payload.slice(5);\n let payloadBuffer = hevcEncoderNalePacketNotLength(data, isIFrame);\n this._doDecode(payloadBuffer, MEDIA_TYPE.video, ts, isIFrame, 0);\n }\n }\n\n\n _isEnhancedH265Header(flags) {\n return (flags & FRAME_HEADER_EX) === FRAME_HEADER_EX;\n }\n}\n","import {FLV_MEDIA_TYPE, MEDIA_TYPE} from \"../constant\";\nimport CommonLoader from \"./commonLoader\";\nimport {now} from \"../utils\";\n\nexport default class FlvLoader extends CommonLoader {\n constructor(player) {\n super(player);\n this.input = this._inputFlv();\n this.flvDemux = this.dispatchFlvData(this.input);\n player.debug.log('FlvDemux', 'init')\n }\n\n destroy() {\n super.destroy();\n this.input = null;\n this.flvDemux = null;\n this.player.debug.log('FlvDemux', 'destroy')\n }\n\n dispatch(data) {\n this.flvDemux(data);\n }\n\n * _inputFlv() {\n yield 9;\n const tmp = new ArrayBuffer(4)\n const tmp8 = new Uint8Array(tmp)\n const tmp32 = new Uint32Array(tmp)\n const player = this.player;\n\n while (true) {\n tmp8[3] = 0\n const t = yield 15\n const type = t[4]\n tmp8[0] = t[7]\n tmp8[1] = t[6]\n tmp8[2] = t[5]\n const length = tmp32[0]\n tmp8[0] = t[10]\n tmp8[1] = t[9]\n tmp8[2] = t[8]\n let ts = tmp32[0]\n if (ts === 0xFFFFFF) {\n tmp8[3] = t[11]\n ts = tmp32[0]\n }\n const payload = yield length\n switch (type) {\n case FLV_MEDIA_TYPE.audio:\n if (player._opt.hasAudio) {\n player.updateStats({\n abps: payload.byteLength\n })\n if (payload.byteLength > 0) {\n this._doDecode(payload, MEDIA_TYPE.audio, ts)\n }\n }\n break\n case FLV_MEDIA_TYPE.video:\n if (!player._times.demuxStart) {\n player._times.demuxStart = now();\n }\n if (player._opt.hasVideo) {\n player.updateStats({\n vbps: payload.byteLength\n })\n const flags = payload[0];\n if (this._isEnhancedH265Header(flags)) {\n this._decodeEnhancedH265Video(payload, ts);\n } else {\n const isIFrame = payload[0] >> 4 === 1;\n if (payload.byteLength > 0) {\n tmp32[0] = payload[4]\n tmp32[1] = payload[3]\n tmp32[2] = payload[2]\n tmp32[3] = 0\n let cts = tmp32[0]\n this._doDecode(payload, MEDIA_TYPE.video, ts, isIFrame, cts);\n }\n }\n }\n break\n }\n }\n }\n\n dispatchFlvData(input) {\n let need = input.next()\n let buffer = null\n return (value) => {\n let data = new Uint8Array(value)\n if (buffer) {\n let combine = new Uint8Array(buffer.length + data.length)\n combine.set(buffer)\n combine.set(data, buffer.length)\n data = combine\n buffer = null\n }\n while (data.length >= need.value) {\n let remain = data.slice(need.value)\n need = input.next(data.slice(0, need.value))\n data = remain\n }\n if (data.length > 0) {\n buffer = data\n }\n }\n }\n\n close() {\n this.input && this.input.return(null)\n }\n\n\n}\n","import {FLV_MEDIA_TYPE, MEDIA_TYPE} from \"../constant\";\nimport CommonLoader from \"./commonLoader\";\nimport {now} from \"../utils\";\n\nexport default class M7sLoader extends CommonLoader {\n constructor(player) {\n super(player);\n player.debug.log('M7sDemux', 'init')\n }\n\n destroy() {\n super.destroy();\n this.player.debug.log('M7sDemux', 'destroy')\n this.player = null;\n }\n\n dispatch(data) {\n const player = this.player;\n const dv = new DataView(data)\n const type = dv.getUint8(0);\n const ts = dv.getUint32(1, false);\n const tmp = new ArrayBuffer(4);\n const tmp32 = new Uint32Array(tmp);\n switch (type) {\n case MEDIA_TYPE.audio:\n if (player._opt.hasAudio) {\n const payload = new Uint8Array(data, 5)\n player.updateStats({\n abps: payload.byteLength\n })\n if (payload.byteLength > 0) {\n this._doDecode(payload, type, ts)\n }\n }\n break;\n case MEDIA_TYPE.video:\n if (player._opt.hasVideo) {\n if (!player._times.demuxStart) {\n player._times.demuxStart = now();\n }\n if (dv.byteLength > 5) {\n const payload = new Uint8Array(data, 5);\n\n const flags = payload[0];\n if (this._isEnhancedH265Header(flags)) {\n this._decodeEnhancedH265Video(payload, ts);\n } else {\n const isIframe = dv.getUint8(5) >> 4 === 1;\n player.updateStats({\n vbps: payload.byteLength\n })\n\n tmp32[0] = payload[4]\n tmp32[1] = payload[3]\n tmp32[2] = payload[2]\n tmp32[3] = 0\n let cts = tmp32[0]\n this._doDecode(payload, type, ts, isIframe, cts);\n }\n } else {\n this.player.debug.warn('M7sDemux', 'dispatch', 'dv byteLength is', dv.byteLength)\n }\n }\n break;\n }\n }\n\n\n}\n","import FlvLoader from \"./flvLoader\";\nimport M7sLoader from \"./m7sLoader\";\nimport {DEMUX_TYPE} from \"../constant\";\n\nexport default class Demux {\n constructor(player) {\n const Loader = Demux.getLoaderFactory(player._opt.demuxType);\n return new Loader(player);\n }\n\n static getLoaderFactory(type) {\n if (type === DEMUX_TYPE.m7s) {\n return M7sLoader;\n } else if (type === DEMUX_TYPE.flv) {\n return FlvLoader;\n }\n }\n}\n","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n// Exponential-Golomb buffer decoder\nclass ExpGolomb {\n\n constructor(uint8array) {\n this.TAG = 'ExpGolomb';\n\n this._buffer = uint8array;\n this._buffer_index = 0;\n this._total_bytes = uint8array.byteLength;\n this._total_bits = uint8array.byteLength * 8;\n this._current_word = 0;\n this._current_word_bits_left = 0;\n }\n\n destroy() {\n this._buffer = null;\n }\n\n _fillCurrentWord() {\n let buffer_bytes_left = this._total_bytes - this._buffer_index;\n if (buffer_bytes_left <= 0) {\n // throw new IllegalStateException('ExpGolomb: _fillCurrentWord() but no bytes available');\n }\n\n let bytes_read = Math.min(4, buffer_bytes_left);\n let word = new Uint8Array(4);\n word.set(this._buffer.subarray(this._buffer_index, this._buffer_index + bytes_read));\n this._current_word = new DataView(word.buffer).getUint32(0, false);\n\n this._buffer_index += bytes_read;\n this._current_word_bits_left = bytes_read * 8;\n }\n\n readBits(bits) {\n if (bits > 32) {\n // throw new InvalidArgumentException('ExpGolomb: readBits() bits exceeded max 32bits!');\n }\n\n if (bits <= this._current_word_bits_left) {\n let result = this._current_word >>> (32 - bits);\n this._current_word <<= bits;\n this._current_word_bits_left -= bits;\n return result;\n }\n\n let result = this._current_word_bits_left ? this._current_word : 0;\n result = result >>> (32 - this._current_word_bits_left);\n let bits_need_left = bits - this._current_word_bits_left;\n\n this._fillCurrentWord();\n let bits_read_next = Math.min(bits_need_left, this._current_word_bits_left);\n\n let result2 = this._current_word >>> (32 - bits_read_next);\n this._current_word <<= bits_read_next;\n this._current_word_bits_left -= bits_read_next;\n\n result = (result << bits_read_next) | result2;\n return result;\n }\n\n readBool() {\n return this.readBits(1) === 1;\n }\n\n readByte() {\n return this.readBits(8);\n }\n\n _skipLeadingZero() {\n let zero_count;\n for (zero_count = 0; zero_count < this._current_word_bits_left; zero_count++) {\n if (0 !== (this._current_word & (0x80000000 >>> zero_count))) {\n this._current_word <<= zero_count;\n this._current_word_bits_left -= zero_count;\n return zero_count;\n }\n }\n this._fillCurrentWord();\n return zero_count + this._skipLeadingZero();\n }\n\n readUEG() { // unsigned exponential golomb\n let leading_zeros = this._skipLeadingZero();\n return this.readBits(leading_zeros + 1) - 1;\n }\n\n readSEG() { // signed exponential golomb\n let value = this.readUEG();\n if (value & 0x01) {\n return (value + 1) >>> 1;\n } else {\n return -1 * (value >>> 1);\n }\n }\n\n}\n\nexport default ExpGolomb;\n","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport ExpGolomb from './exp-golomb.js';\n\nclass SPSParser {\n\n static _ebsp2rbsp(uint8array) {\n let src = uint8array;\n let src_length = src.byteLength;\n let dst = new Uint8Array(src_length);\n let dst_idx = 0;\n\n for (let i = 0; i < src_length; i++) {\n if (i >= 2) {\n // Unescape: Skip 0x03 after 00 00\n if (src[i] === 0x03 && src[i - 1] === 0x00 && src[i - 2] === 0x00) {\n continue;\n }\n }\n dst[dst_idx] = src[i];\n dst_idx++;\n }\n\n return new Uint8Array(dst.buffer, 0, dst_idx);\n }\n\n // 解析 SPS\n // https://zhuanlan.zhihu.com/p/27896239\n static parseSPS(uint8array) {\n let rbsp = SPSParser._ebsp2rbsp(uint8array);\n let gb = new ExpGolomb(rbsp);\n\n gb.readByte();\n // 标识当前H.264码流的profile。\n // 我们知道,H.264中定义了三种常用的档次profile: 基准档次:baseline profile;主要档次:main profile; 扩展档次:extended profile;\n\n let profile_idc = gb.readByte(); // profile_idc\n gb.readByte(); // constraint_set_flags[5] + reserved_zero[3]\n // 标识当前码流的Level。编码的Level定义了某种条件下的最大视频分辨率、最大视频帧率等参数,码流所遵从的level由level_idc指定。\n let level_idc = gb.readByte(); // level_idc\n // 表示当前的序列参数集的id。通过该id值,图像参数集pps可以引用其代表的sps中的参数。\n gb.readUEG(); // seq_parameter_set_id\n\n let profile_string = SPSParser.getProfileString(profile_idc);\n\n let level_string = SPSParser.getLevelString(level_idc);\n\n let chroma_format_idc = 1;\n let chroma_format = 420;\n let chroma_format_table = [0, 420, 422, 444];\n let bit_depth = 8;\n\n //\n if (profile_idc === 100 || profile_idc === 110 || profile_idc === 122 ||\n profile_idc === 244 || profile_idc === 44 || profile_idc === 83 ||\n profile_idc === 86 || profile_idc === 118 || profile_idc === 128 ||\n profile_idc === 138 || profile_idc === 144) {\n //\n chroma_format_idc = gb.readUEG();\n\n if (chroma_format_idc === 3) {\n gb.readBits(1); // separate_colour_plane_flag\n }\n if (chroma_format_idc <= 3) {\n chroma_format = chroma_format_table[chroma_format_idc];\n }\n\n bit_depth = gb.readUEG() + 8; // bit_depth_luma_minus8\n gb.readUEG(); // bit_depth_chroma_minus8\n gb.readBits(1); // qpprime_y_zero_transform_bypass_flag\n if (gb.readBool()) { // seq_scaling_matrix_present_flag\n let scaling_list_count = (chroma_format_idc !== 3) ? 8 : 12;\n for (let i = 0; i < scaling_list_count; i++) {\n if (gb.readBool()) { // seq_scaling_list_present_flag\n if (i < 6) {\n SPSParser._skipScalingList(gb, 16);\n } else {\n SPSParser._skipScalingList(gb, 64);\n }\n }\n }\n }\n }\n // 用于计算MaxFrameNum的值。计算公式为MaxFrameNum = 2^(log2_max_frame_num_minus4 +\n gb.readUEG(); // log2_max_frame_num_minus4\n // 表示解码picture order count(POC)的方法。POC是另一种计量图像序号的方式,与frame_num有着不同的计算方法。该语法元素的取值为0、1或2。\n let pic_order_cnt_type = gb.readUEG();\n if (pic_order_cnt_type === 0) {\n gb.readUEG(); // log2_max_pic_order_cnt_lsb_minus_4\n } else if (pic_order_cnt_type === 1) {\n gb.readBits(1); // delta_pic_order_always_zero_flag\n gb.readSEG(); // offset_for_non_ref_pic\n gb.readSEG(); // offset_for_top_to_bottom_field\n let num_ref_frames_in_pic_order_cnt_cycle = gb.readUEG();\n for (let i = 0; i < num_ref_frames_in_pic_order_cnt_cycle; i++) {\n gb.readSEG(); // offset_for_ref_frame\n }\n }\n // 用于表示参考帧的最大数目。\n let ref_frames = gb.readUEG(); // max_num_ref_frames\n // 标识位,说明frame_num中是否允许不连续的值。\n gb.readBits(1); // gaps_in_frame_num_value_allowed_flag\n // 用于计算图像的宽度。单位为宏块个数,因此图像的实际宽度为:\n let pic_width_in_mbs_minus1 = gb.readUEG();\n // 使用PicHeightInMapUnits来度量视频中一帧图像的高度。\n // PicHeightInMapUnits并非图像明确的以像素或宏块为单位的高度,而需要考虑该宏块是帧编码或场编码。PicHeightInMapUnits的计算方式为:\n let pic_height_in_map_units_minus1 = gb.readUEG();\n // 标识位,说明宏块的编码方式。当该标识位为0时,宏块可能为帧编码或场编码;\n // 该标识位为1时,所有宏块都采用帧编码。根据该标识位取值不同,PicHeightInMapUnits的含义也不同,\n // 为0时表示一场数据按宏块计算的高度,为1时表示一帧数据按宏块计算的高度。\n let frame_mbs_only_flag = gb.readBits(1);\n if (frame_mbs_only_flag === 0) {\n // 标识位,说明是否采用了宏块级的帧场自适应编码。当该标识位为0时,不存在帧编码和场编码之间的切换;当标识位为1时,宏块可能在帧编码和场编码模式之间进行选择。\n gb.readBits(1); // mb_adaptive_frame_field_flag\n }\n // 标识位,用于B_Skip、B_Direct模式运动矢量的推导计算。\n gb.readBits(1); // direct_8x8_inference_flag\n\n let frame_crop_left_offset = 0;\n let frame_crop_right_offset = 0;\n let frame_crop_top_offset = 0;\n let frame_crop_bottom_offset = 0;\n\n let frame_cropping_flag = gb.readBool();\n if (frame_cropping_flag) {\n frame_crop_left_offset = gb.readUEG();\n frame_crop_right_offset = gb.readUEG();\n frame_crop_top_offset = gb.readUEG();\n frame_crop_bottom_offset = gb.readUEG();\n }\n\n let sar_width = 1, sar_height = 1;\n let fps = 0, fps_fixed = true, fps_num = 0, fps_den = 0;\n // 标识位,说明SPS中是否存在VUI信息。\n let vui_parameters_present_flag = gb.readBool();\n if (vui_parameters_present_flag) {\n if (gb.readBool()) { // aspect_ratio_info_present_flag\n let aspect_ratio_idc = gb.readByte();\n let sar_w_table = [1, 12, 10, 16, 40, 24, 20, 32, 80, 18, 15, 64, 160, 4, 3, 2];\n let sar_h_table = [1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11, 33, 99, 3, 2, 1];\n\n if (aspect_ratio_idc > 0 && aspect_ratio_idc < 16) {\n sar_width = sar_w_table[aspect_ratio_idc - 1];\n sar_height = sar_h_table[aspect_ratio_idc - 1];\n } else if (aspect_ratio_idc === 255) {\n sar_width = gb.readByte() << 8 | gb.readByte();\n sar_height = gb.readByte() << 8 | gb.readByte();\n }\n }\n\n if (gb.readBool()) { // overscan_info_present_flag\n gb.readBool(); // overscan_appropriate_flag\n }\n if (gb.readBool()) { // video_signal_type_present_flag\n gb.readBits(4); // video_format & video_full_range_flag\n if (gb.readBool()) { // colour_description_present_flag\n gb.readBits(24); // colour_primaries & transfer_characteristics & matrix_coefficients\n }\n }\n if (gb.readBool()) { // chroma_loc_info_present_flag\n gb.readUEG(); // chroma_sample_loc_type_top_field\n gb.readUEG(); // chroma_sample_loc_type_bottom_field\n }\n if (gb.readBool()) { // timing_info_present_flag\n let num_units_in_tick = gb.readBits(32);\n let time_scale = gb.readBits(32);\n fps_fixed = gb.readBool(); // fixed_frame_rate_flag\n\n fps_num = time_scale;\n fps_den = num_units_in_tick * 2;\n fps = fps_num / fps_den;\n }\n }\n\n let sarScale = 1;\n if (sar_width !== 1 || sar_height !== 1) {\n sarScale = sar_width / sar_height;\n }\n\n let crop_unit_x = 0, crop_unit_y = 0;\n if (chroma_format_idc === 0) {\n crop_unit_x = 1;\n crop_unit_y = 2 - frame_mbs_only_flag;\n } else {\n let sub_wc = (chroma_format_idc === 3) ? 1 : 2;\n let sub_hc = (chroma_format_idc === 1) ? 2 : 1;\n crop_unit_x = sub_wc;\n crop_unit_y = sub_hc * (2 - frame_mbs_only_flag);\n }\n\n let codec_width = (pic_width_in_mbs_minus1 + 1) * 16;\n let codec_height = (2 - frame_mbs_only_flag) * ((pic_height_in_map_units_minus1 + 1) * 16);\n\n codec_width -= (frame_crop_left_offset + frame_crop_right_offset) * crop_unit_x;\n codec_height -= (frame_crop_top_offset + frame_crop_bottom_offset) * crop_unit_y;\n\n let present_width = Math.ceil(codec_width * sarScale);\n\n gb.destroy();\n gb = null;\n\n\n // 解析出来的SPS 内容。\n return {\n profile_string: profile_string, // baseline, high, high10, ...\n level_string: level_string, // 3, 3.1, 4, 4.1, 5, 5.1, ...\n bit_depth: bit_depth, // 8bit, 10bit, ...\n ref_frames: ref_frames,\n chroma_format: chroma_format, // 4:2:0, 4:2:2, ...\n chroma_format_string: SPSParser.getChromaFormatString(chroma_format),\n\n frame_rate: {\n fixed: fps_fixed,\n fps: fps,\n fps_den: fps_den,\n fps_num: fps_num\n },\n\n sar_ratio: {\n width: sar_width,\n height: sar_height\n },\n\n codec_size: {\n width: codec_width,\n height: codec_height\n },\n\n present_size: {\n width: present_width,\n height: codec_height\n }\n };\n }\n\n static _skipScalingList(gb, count) {\n let last_scale = 8, next_scale = 8;\n let delta_scale = 0;\n for (let i = 0; i < count; i++) {\n if (next_scale !== 0) {\n delta_scale = gb.readSEG();\n next_scale = (last_scale + delta_scale + 256) % 256;\n }\n last_scale = (next_scale === 0) ? last_scale : next_scale;\n }\n }\n\n // profile_idc = 66 → baseline profile;\n // profile_idc = 77 → main profile;\n // profile_idc = 88 → extended profile;\n // 在新版的标准中,还包括了High、High 10、High 4:2:2、High 4:4:4、High 10 Intra、High\n // 4:2:2 Intra、High 4:4:4 Intra、CAVLC 4:4:4 Intra\n static getProfileString(profile_idc) {\n switch (profile_idc) {\n case 66:\n return 'Baseline';\n case 77:\n return 'Main';\n case 88:\n return 'Extended';\n case 100:\n return 'High';\n case 110:\n return 'High10';\n case 122:\n return 'High422';\n case 244:\n return 'High444';\n default:\n return 'Unknown';\n }\n }\n\n static getLevelString(level_idc) {\n return (level_idc / 10).toFixed(1);\n }\n\n static getChromaFormatString(chroma) {\n switch (chroma) {\n case 420:\n return '4:2:0';\n case 422:\n return '4:2:2';\n case 444:\n return '4:4:4';\n default:\n return 'Unknown';\n }\n }\n\n}\n\nexport default SPSParser;","import SPSParser from './h264-sps-parser.js';\n\n//\nexport function parseAVCDecoderConfigurationRecord(arrayBuffer) {\n const meta = {}\n const v = new DataView(arrayBuffer.buffer);\n let version = v.getUint8(0); // configurationVersion\n let avcProfile = v.getUint8(1); // avcProfileIndication\n let profileCompatibility = v.getUint8(2); // profile_compatibil\n let avcLevel = v.getUint8(3); // AVCLevelIndication\n\n if (version !== 1 || avcProfile === 0) {\n // this._onError(DemuxErrors.FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord');\n\n return meta;\n }\n\n const _naluLengthSize = (v.getUint8(4) & 3) + 1; // lengthSizeMinusOne\n\n if (_naluLengthSize !== 3 && _naluLengthSize !== 4) { // holy shit!!!\n // this._onError(DemuxErrors.FORMAT_ERROR, `Flv: Strange NaluLengthSizeMinusOne: ${_naluLengthSize - 1}`);\n return meta;\n }\n let spsCount = v.getUint8(5) & 31; // numOfSequenceParameterSets\n\n if (spsCount === 0) {\n // this._onError(DemuxErrors.FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord: No SPS');\n return;\n } else if (spsCount > 1) {\n // Log.w(this.TAG, `Flv: Strange AVCDecoderConfigurationRecord: SPS Count = ${spsCount}`);\n }\n\n let offset = 6;\n for (let i = 0; i < spsCount; i++) {\n let len = v.getUint16(offset, false); // sequenceParameterSetLength\n offset += 2;\n\n if (len === 0) {\n continue;\n }\n\n // Notice: Nalu without startcode header (00 00 00 01)\n let sps = new Uint8Array(arrayBuffer.buffer, offset, len);\n offset += len;\n // flv.js作者选择了自己来解析这个数据结构,也是迫不得已,因为JS环境下没有ffmpeg,解析这个结构主要是为了提取 sps和pps。虽然理论上sps允许有多个,但其实一般就一个。\n // packetTtype 为 1 表示 NALU,NALU= network abstract layer unit,这是H.264的概念,网络抽象层数据单元,其实简单理解就是一帧视频数据。\n // pps的信息没什么用,所以作者只实现了sps的分析器,说明作者下了很大功夫去学习264的标准,其中的Golomb解码还是挺复杂的,能解对不容易,我在PC和手机平台都是用ffmpeg去解析的。\n // SPS里面包括了视频分辨率,帧率,profile level等视频重要信息。\n let config = SPSParser.parseSPS(sps);\n if (i !== 0) {\n // ignore other sps's config\n continue;\n }\n\n meta.codecWidth = config.codec_size.width;\n meta.codecHeight = config.codec_size.height;\n meta.presentWidth = config.present_size.width;\n meta.presentHeight = config.present_size.height;\n\n meta.profile = config.profile_string;\n meta.level = config.level_string;\n meta.bitDepth = config.bit_depth;\n meta.chromaFormat = config.chroma_format;\n meta.sarRatio = config.sar_ratio;\n meta.frameRate = config.frame_rate;\n\n if (config.frame_rate.fixed === false ||\n config.frame_rate.fps_num === 0 ||\n config.frame_rate.fps_den === 0) {\n meta.frameRate = {};\n }\n\n let fps_den = meta.frameRate.fps_den;\n let fps_num = meta.frameRate.fps_num;\n\n meta.refSampleDuration = meta.timescale * (fps_den / fps_num);\n\n let codecArray = sps.subarray(1, 4);\n\n let codecString = 'avc1.';\n for (let j = 0; j < 3; j++) {\n let h = codecArray[j].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n codecString += h;\n }\n // codec\n meta.codec = codecString;\n }\n\n let ppsCount = v.getUint8(offset); // numOfPictureParameterSets\n if (ppsCount === 0) {\n // this._onError(DemuxErrors.FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord: No PPS');\n return meta;\n } else if (ppsCount > 1) {\n // Log.w(this.TAG, `Flv: Strange AVCDecoderConfigurationRecord: PPS Count = ${ppsCount}`);\n }\n\n offset++;\n for (let i = 0; i < ppsCount; i++) {\n let len = v.getUint16(offset, false); // pictureParameterSetLength\n offset += 2;\n\n if (len === 0) {\n continue;\n }\n let pps = new Uint8Array(arrayBuffer.buffer, offset, len);\n\n // pps is useless for extracting video information\n offset += len;\n }\n\n meta.videoType = 'avc';\n\n // meta.avcc = arrayBuffer;\n return meta;\n}\n","import {formatVideoDecoderConfigure, noop, now} from \"../utils\";\nimport Emitter from \"../utils/emitter\";\nimport {ENCODED_VIDEO_TYPE, EVENTS, EVENTS_ERROR, VIDEO_ENC_CODE, WCS_ERROR} from \"../constant\";\nimport {parseAVCDecoderConfigurationRecord} from \"../utils/h264\";\n\n\nexport default class WebcodecsDecoder extends Emitter {\n constructor(player) {\n super();\n this.player = player;\n this.hasInit = false;\n this.isDecodeFirstIIframe = false;\n this.isInitInfo = false;\n this.decoder = null;\n this.initDecoder();\n player.debug.log('Webcodecs', 'init')\n }\n\n destroy() {\n if (this.decoder) {\n if (this.decoder.state !== 'closed') {\n this.decoder.close();\n }\n this.decoder = null;\n }\n\n this.hasInit = false;\n this.isInitInfo = false;\n this.isDecodeFirstIIframe = false;\n this.off();\n this.player.debug.log('Webcodecs', 'destroy')\n }\n\n initDecoder() {\n const _this = this;\n this.decoder = new VideoDecoder({\n output(videoFrame) {\n _this.handleDecode(videoFrame)\n },\n error(error) {\n _this.handleError(error)\n }\n })\n }\n\n handleDecode(videoFrame) {\n if (!this.isInitInfo) {\n this.player.video.updateVideoInfo({\n width: videoFrame.codedWidth,\n height: videoFrame.codedHeight\n })\n this.player.video.initCanvasViewSize();\n this.isInitInfo = true;\n }\n\n if (!this.player._times.videoStart) {\n this.player._times.videoStart = now();\n this.player.handlePlayToRenderTimes();\n }\n\n this.player.handleRender();\n this.player.video.render({\n videoFrame\n })\n\n this.player.updateStats({fps: true, ts: 0, buf: this.player.demux.delay})\n }\n\n handleError(error) {\n this.player.debug.error('Webcodecs', 'VideoDecoder handleError', error)\n }\n\n decodeVideo(payload, ts, isIframe) {\n // this.player.debug.log('Webcodecs decoder', 'decodeVideo', ts, isIframe);\n if (!this.hasInit) {\n if (isIframe && payload[1] === 0) {\n const videoCodec = (payload[0] & 0x0F);\n this.player.video.updateVideoInfo({\n encTypeCode: videoCodec\n })\n\n // 如果解码出来的是\n if (videoCodec === VIDEO_ENC_CODE.h265) {\n this.emit(EVENTS_ERROR.webcodecsH265NotSupport)\n return;\n }\n if (!this.player._times.decodeStart) {\n this.player._times.decodeStart = now();\n }\n\n const config = formatVideoDecoderConfigure(payload.slice(5));\n this.player.debug.log('Webcodecs', 'VideoDecoder configure', config)\n try {\n this.decoder.configure(config);\n }\n catch (e){\n this.player.debug.error('Webcodecs', 'VideoDecoder configure', e);\n this.player.emit(EVENTS_ERROR.webcodecsConfigureError);\n return;\n }\n this.hasInit = true;\n }\n } else {\n\n // check width or height change\n if (isIframe && payload[1] === 0) {\n let data = payload.slice(5);\n const config = parseAVCDecoderConfigurationRecord(data)\n const videoInfo = this.player.video.videoInfo;\n if (config.codecWidth !== videoInfo.width || config.codecHeight !== videoInfo.height) {\n this.player.debug.log('Webcodecs', `width or height is update, width ${videoInfo.width}-> ${config.codecWidth}, height ${videoInfo.height}-> ${config.codecHeight}`)\n this.player.emit(EVENTS_ERROR.webcodecsWidthOrHeightChange)\n return;\n }\n }\n\n\n // fix : Uncaught DOMException: Failed to execute 'decode' on 'VideoDecoder': A key frame is required after configure() or flush().\n if (!this.isDecodeFirstIIframe && isIframe) {\n this.isDecodeFirstIIframe = true;\n }\n\n if (this.isDecodeFirstIIframe) {\n const chunk = new EncodedVideoChunk({\n data: payload.slice(5),\n timestamp: ts,\n type: isIframe ? ENCODED_VIDEO_TYPE.key : ENCODED_VIDEO_TYPE.delta\n })\n this.player.emit(EVENTS.timeUpdate, ts);\n try {\n if (this.isDecodeStateClosed()) {\n this.player.debug.warn('Webcodecs', 'VideoDecoder isDecodeStateClosed true');\n return;\n }\n this.decoder.decode(chunk);\n } catch (e) {\n this.player.debug.error('Webcodecs', 'VideoDecoder', e)\n if (e.toString().indexOf(WCS_ERROR.keyframeIsRequiredError) !== -1) {\n this.player.emitError(EVENTS_ERROR.webcodecsDecodeError);\n }\n else if (e.toString().indexOf(WCS_ERROR.canNotDecodeClosedCodec) !== -1) {\n this.player.emitError(EVENTS_ERROR.webcodecsDecodeError);\n }\n }\n } else {\n this.player.debug.warn('Webcodecs', 'VideoDecoder isDecodeFirstIIframe false')\n }\n }\n }\n\n isDecodeStateClosed() {\n return this.decoder.state === 'closed';\n }\n}\n","const iconsMap = {\n play: '播放',\n pause: '暂停',\n audio: '',\n mute: '',\n screenshot: '截图',\n loading: '加载',\n fullscreen: '全屏',\n fullscreenExit: '退出全屏',\n record: '录制',\n recordStop: '停止录制',\n}\n\nexport default Object.keys(iconsMap).reduce((icons, key) => {\n icons[key] = `\n \n ${iconsMap[key] ? `${iconsMap[key]}` : ''}\n`;\n return icons;\n}, {});\n","import icons from './icons';\n\nexport default (player, control) => {\n\n if (player._opt.hasControl && player._opt.controlAutoHide) {\n player.$container.classList.add('jessibuca-controls-show-auto-hide');\n }\n else {\n player.$container.classList.add('jessibuca-controls-show');\n }\n const options = player._opt;\n const operateBtns = options.operateBtns;\n\n\n player.$container.insertAdjacentHTML(\n 'beforeend',\n `\n ${options.background ? `
` : ''}\n
\n ${icons.loading}\n ${options.loadingText ? `
${options.loadingText}
` : ''}\n
\n ${options.hasControl && operateBtns.play ? `
` : ''}\n ${options.hasControl ? `\n
\n
\n
00:00:01
\n
${icons.recordStop}
\n
\n `:''}\n ${options.hasControl ? `\n
\n
\n
\n ${options.showBandwidth ? `
` : ''}\n
\n
\n ${operateBtns.audio ? `\n
\n ${icons.audio}\n ${icons.mute}\n
\n
\n
\n
\n
\n
\n
\n ` : ''}\n ${operateBtns.play ? `
${icons.play}
${icons.pause}
` : ''}\n ${operateBtns.screenshot ? `
${icons.screenshot}
` : ''}\n ${operateBtns.record ? `
${icons.record}
${icons.recordStop}
` : ''}\n ${operateBtns.fullscreen ? `
${icons.fullscreen}
${icons.fullscreenExit}
` : ''}\n
\n
\n
\n ` : ''}\n\n `\n )\n\n Object.defineProperty(control, '$poster', {\n value: player.$container.querySelector('.jessibuca-poster'),\n });\n\n Object.defineProperty(control, '$loading', {\n value: player.$container.querySelector('.jessibuca-loading'),\n });\n\n Object.defineProperty(control, '$play', {\n value: player.$container.querySelector('.jessibuca-play'),\n });\n\n Object.defineProperty(control, '$playBig', {\n value: player.$container.querySelector('.jessibuca-play-big'),\n });\n\n Object.defineProperty(control, '$recording', {\n value: player.$container.querySelector('.jessibuca-recording'),\n });\n Object.defineProperty(control, '$recordingTime', {\n value: player.$container.querySelector('.jessibuca-recording-time'),\n });\n\n Object.defineProperty(control, '$recordingStop', {\n value: player.$container.querySelector('.jessibuca-recording-stop'),\n });\n\n Object.defineProperty(control, '$pause', {\n value: player.$container.querySelector('.jessibuca-pause'),\n });\n\n Object.defineProperty(control, '$controls', {\n value: player.$container.querySelector('.jessibuca-controls'),\n });\n\n Object.defineProperty(control, '$fullscreen', {\n value: player.$container.querySelector('.jessibuca-fullscreen'),\n });\n\n Object.defineProperty(control, '$fullscreen', {\n value: player.$container.querySelector('.jessibuca-fullscreen'),\n });\n\n\n Object.defineProperty(control, '$volume', {\n value: player.$container.querySelector('.jessibuca-volume'),\n });\n\n Object.defineProperty(control, '$volumePanelWrap', {\n value: player.$container.querySelector('.jessibuca-volume-panel-wrap'),\n });\n\n Object.defineProperty(control, '$volumePanelText', {\n value: player.$container.querySelector('.jessibuca-volume-panel-text'),\n });\n\n Object.defineProperty(control, '$volumePanel', {\n value: player.$container.querySelector('.jessibuca-volume-panel'),\n });\n\n Object.defineProperty(control, '$volumeHandle', {\n value: player.$container.querySelector('.jessibuca-volume-panel-handle'),\n });\n\n Object.defineProperty(control, '$volumeOn', {\n value: player.$container.querySelector('.jessibuca-icon-audio'),\n });\n\n Object.defineProperty(control, '$volumeOff', {\n value: player.$container.querySelector('.jessibuca-icon-mute'),\n });\n\n\n Object.defineProperty(control, '$fullscreen', {\n value: player.$container.querySelector('.jessibuca-fullscreen'),\n });\n\n Object.defineProperty(control, '$fullscreenExit', {\n value: player.$container.querySelector('.jessibuca-fullscreen-exit'),\n });\n\n Object.defineProperty(control, '$record', {\n value: player.$container.querySelector('.jessibuca-record'),\n });\n Object.defineProperty(control, '$recordStop', {\n value: player.$container.querySelector('.jessibuca-record-stop'),\n });\n\n Object.defineProperty(control, '$screenshot', {\n value: player.$container.querySelector('.jessibuca-screenshot'),\n });\n\n Object.defineProperty(control, '$speed', {\n value: player.$container.querySelector('.jessibuca-speed'),\n });\n}\n","import {CONTROL_HEIGHT, EVENTS} from \"../constant\";\nimport {bpsSize, formatTimeTips, getStyle, isBoolean, isMobile, setStyle} from \"../utils\";\nimport screenfull from \"screenfull\";\n\nexport default (player, control) => {\n const {\n events: {proxy},\n } = player;\n\n const object = document.createElement('object');\n object.setAttribute('aria-hidden', 'true');\n object.setAttribute('tabindex', -1);\n object.type = 'text/html';\n object.data = 'about:blank';\n\n setStyle(object, {\n display: 'block',\n position: 'absolute',\n top: '0',\n left: '0',\n height: '100%',\n width: '100%',\n overflow: 'hidden',\n pointerEvents: 'none',\n zIndex: '-1',\n });\n\n let playerWidth = player.width;\n let playerHeight = player.height;\n\n proxy(object, 'load', () => {\n proxy(object.contentDocument.defaultView, 'resize', () => {\n if (player.width !== playerWidth || player.height !== playerHeight) {\n playerWidth = player.width;\n playerHeight = player.height;\n player.emit(EVENTS.resize);\n screenfullH5Control();\n }\n });\n });\n player.$container.appendChild(object);\n\n player.on(EVENTS.destroy, () => {\n player.$container.removeChild(object);\n })\n\n function setVolumeHandle(percentage) {\n if (percentage === 0) {\n setStyle(control.$volumeOn, 'display', 'none');\n setStyle(control.$volumeOff, 'display', 'flex');\n setStyle(control.$volumeHandle, 'top', `${48}px`);\n } else {\n if (control.$volumeHandle && control.$volumePanel) {\n const panelHeight = getStyle(control.$volumePanel, 'height') || 60;\n const handleHeight = getStyle(control.$volumeHandle, 'height');\n const top = panelHeight - (panelHeight - handleHeight) * percentage - handleHeight;\n setStyle(control.$volumeHandle, 'top', `${top}px`);\n setStyle(control.$volumeOn, 'display', 'flex');\n setStyle(control.$volumeOff, 'display', 'none');\n }\n }\n control.$volumePanelText && (control.$volumePanelText.innerHTML = parseInt(percentage * 100))\n }\n\n player.on(EVENTS.volumechange, () => {\n setVolumeHandle(player.volume);\n });\n\n player.on(EVENTS.loading, (flag) => {\n setStyle(control.$loading, 'display', flag ? 'flex' : 'none');\n setStyle(control.$poster, 'display', 'none')\n\n if (flag) {\n setStyle(control.$playBig, 'display', 'none');\n }\n })\n\n const screenfullChange = (fullscreen) => {\n let isFullScreen = isBoolean(fullscreen) ? fullscreen : player.fullscreen\n setStyle(control.$fullscreenExit, 'display', isFullScreen ? 'flex' : 'none');\n setStyle(control.$fullscreen, 'display', isFullScreen ? 'none' : 'flex');\n // control.autoSize();\n };\n const screenfullH5Control = () => {\n if (isMobile() && control.$controls && player._opt.useWebFullScreen) {\n setTimeout(() => {\n if (player.fullscreen) {\n // console.log(player.width, player.height);\n let translateX = player.height / 2 - player.width + CONTROL_HEIGHT / 2;\n let translateY = player.height / 2 - CONTROL_HEIGHT / 2;\n\n control.$controls.style.transform = `translateX(${-translateX}px) translateY(-${translateY}px) rotate(-90deg)`\n } else {\n control.$controls.style.transform = `translateX(0) translateY(0) rotate(0)`\n }\n\n }, 10)\n }\n }\n\n try {\n\n screenfull.on('change', screenfullChange);\n player.events.destroys.push(() => {\n screenfull.off('change', screenfullChange);\n });\n } catch (error) {\n //\n }\n\n //\n player.on(EVENTS.webFullscreen, (value) => {\n screenfullChange(value);\n screenfullH5Control();\n\n })\n\n\n player.on(EVENTS.recording, () => {\n setStyle(control.$record, 'display', player.recording ? 'none' : 'flex');\n setStyle(control.$recordStop, 'display', player.recording ? 'flex' : 'none');\n setStyle(control.$recording, 'display', player.recording ? 'flex' : 'none')\n if(!player.recording && control.$recordingTime){\n control.$recordingTime.innerHTML = formatTimeTips(0);\n }\n })\n\n //\n player.on(EVENTS.recordingTimestamp, (timestamp) => {\n // console.log(timestamp);\n control.$recordingTime && (control.$recordingTime.innerHTML = formatTimeTips(timestamp))\n })\n\n player.on(EVENTS.playing, (flag) => {\n setStyle(control.$play, 'display', flag ? 'none' : 'flex');\n setStyle(control.$playBig, 'display', flag ? 'none' : 'block');\n setStyle(control.$pause, 'display', flag ? 'flex' : 'none');\n setStyle(control.$screenshot, 'display', flag ? 'flex' : 'none');\n setStyle(control.$record, 'display', flag ? 'flex' : 'none');\n setStyle(control.$qualityMenu, 'display', flag ? 'flex' : 'none');\n setStyle(control.$volume, 'display', flag ? 'flex' : 'none');\n // setStyle(control.$fullscreen, 'display', flag ? 'flex' : 'none');\n screenfullChange();\n // 不在播放\n if (!flag) {\n control.$speed && (control.$speed.innerHTML = bpsSize(''));\n }\n })\n\n\n player.on(EVENTS.kBps, (rate) => {\n const bps = bpsSize(rate);\n control.$speed && (control.$speed.innerHTML = bps);\n })\n}\n","export default (player, control) => {\n\n Object.defineProperty(control, 'controlsRect', {\n get: () => {\n return control.$controls.getBoundingClientRect();\n },\n });\n\n}\n","import {clamp, isMobile, setStyle} from \"../utils\";\n\nexport default (player, control) => {\n const {\n events: {proxy},\n debug\n } = player;\n\n function volumeChangeFromEvent(event) {\n const {bottom: panelBottom, height: panelHeight} = control.$volumePanel.getBoundingClientRect();\n const {height: handleHeight} = control.$volumeHandle.getBoundingClientRect();\n\n let moveLen = event.y;\n\n // if (isMobile() && player.fullscreen) {\n // moveLen = event.x;\n // }\n\n const percentage =\n clamp(panelBottom - moveLen - handleHeight / 2, 0, panelHeight - handleHeight / 2) / (panelHeight - handleHeight);\n return percentage;\n }\n\n //\n proxy(window, ['click', 'contextmenu'], event => {\n if (event.composedPath().indexOf(player.$container) > -1) {\n control.isFocus = true;\n } else {\n control.isFocus = false;\n }\n });\n\n //\n proxy(window, 'orientationchange', () => {\n setTimeout(() => {\n player.resize();\n }, 300);\n });\n\n\n proxy(control.$controls, 'click', (e) => {\n e.stopPropagation();\n })\n\n proxy(control.$pause, 'click', (e) => {\n player.pause();\n })\n // 监听 play 方法\n proxy(control.$play, 'click', (e) => {\n player.play();\n player.resumeAudioAfterPause()\n })\n\n // 监听 play 方法\n proxy(control.$playBig, 'click', (e) => {\n player.play();\n player.resumeAudioAfterPause()\n })\n\n proxy(control.$volume, 'mouseover', () => {\n control.$volumePanelWrap.classList.add('jessibuca-volume-panel-wrap-show');\n })\n\n proxy(control.$volume, 'mouseout', () => {\n control.$volumePanelWrap.classList.remove('jessibuca-volume-panel-wrap-show');\n })\n\n proxy(control.$volumeOn, 'click', (e) => {\n e.stopPropagation();\n setStyle(control.$volumeOn, 'display', 'none');\n setStyle(control.$volumeOff, 'display', 'block');\n const lastVolume = player.volume;\n player.volume = 0;\n player._lastVolume = lastVolume;\n })\n\n proxy(control.$volumeOff, 'click', (e) => {\n e.stopPropagation();\n setStyle(control.$volumeOn, 'display', 'block');\n setStyle(control.$volumeOff, 'display', 'none');\n player.volume = player.lastVolume || 0.5;\n })\n\n proxy(control.$screenshot, 'click', (e) => {\n e.stopPropagation();\n player.video.screenshot();\n })\n\n proxy(control.$volumePanel, 'click', event => {\n event.stopPropagation();\n player.volume = volumeChangeFromEvent(event);\n });\n\n proxy(control.$volumeHandle, 'mousedown', () => {\n control.isVolumeDroging = true;\n });\n\n proxy(control.$volumeHandle, 'mousemove', event => {\n if (control.isVolumeDroging) {\n player.volume = volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (control.isVolumeDroging) {\n control.isVolumeDroging = false;\n }\n });\n\n proxy(control.$record, 'click', (e) => {\n e.stopPropagation();\n player.recording = true;\n })\n\n proxy(control.$recordStop, 'click', (e) => {\n e.stopPropagation();\n player.recording = false;\n })\n\n proxy(control.$recordingStop, 'click', (e) => {\n e.stopPropagation();\n player.recording = false;\n })\n\n proxy(control.$fullscreen, 'click', (e) => {\n e.stopPropagation();\n player.fullscreen = true;\n })\n\n proxy(control.$fullscreenExit, 'click', (e) => {\n e.stopPropagation();\n player.fullscreen = false;\n })\n\n if (player._opt.hasControl && player._opt.controlAutoHide) {\n //\n proxy(player.$container, 'mouseover', () => {\n if (!player.fullscreen) {\n setStyle(control.$controls, 'display', 'block');\n startDelayControlHidden();\n }\n })\n\n proxy(player.$container, 'mousemove', () => {\n if (player.$container && control.$controls) {\n if (!player.fullscreen) {\n if (control.$controls.style.display === 'none') {\n setStyle(control.$controls, 'display', 'block');\n startDelayControlHidden();\n }\n } else {\n if (control.$controls.style.display === 'none') {\n setStyle(control.$controls, 'display', 'block');\n startDelayControlHidden();\n }\n }\n }\n })\n\n proxy(player.$container, 'mouseout', () => {\n stopDelayControlHidden();\n setStyle(control.$controls, 'display', 'none');\n })\n let delayHiddenTimeout = null;\n const startDelayControlHidden = () => {\n stopDelayControlHidden();\n delayHiddenTimeout = setTimeout(() => {\n setStyle(control.$controls, 'display', 'none');\n }, 5 * 1000)\n }\n\n const stopDelayControlHidden = () => {\n if (delayHiddenTimeout) {\n clearTimeout(delayHiddenTimeout);\n delayHiddenTimeout = null;\n }\n }\n }\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","// todo: 待定\nimport {HOT_KEY} from \"../constant\";\n\nexport default (player, control) => {\n const {\n events: {proxy}\n } = player;\n\n const keys = {};\n\n function addHotkey(key, event) {\n if (keys[key]) {\n keys[key].push(event);\n } else {\n keys[key] = [event];\n }\n }\n\n //\n addHotkey(HOT_KEY.esc, () => {\n if (player.fullscreen) {\n player.fullscreen = false;\n }\n })\n\n //\n addHotkey(HOT_KEY.arrowUp, () => {\n player.volume += 0.05;\n })\n\n //\n addHotkey(HOT_KEY.arrowDown, () => {\n player.volume -= 0.05;\n })\n\n proxy(window, 'keydown', event => {\n if (control.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = keys[event.keyCode];\n if (events) {\n event.preventDefault();\n events.forEach(fn => fn());\n }\n }\n }\n });\n}\n","import template from \"./template\";\nimport observer from './observer';\nimport property from './property';\nimport events from './events';\nimport './style.scss'\nimport hotkey from \"./hotkey\";\nimport {getStyle, isBoolean, removeElement, setStyle} from \"../utils\";\n\nexport default class Control {\n constructor(player) {\n this.player = player;\n template(player, this);\n property(player, this);\n observer(player, this);\n events(player, this);\n if (player._opt.hotKey) {\n hotkey(player, this);\n }\n this.player.debug.log('Control', 'init');\n }\n\n destroy() {\n if (this.$poster) {\n const result = removeElement(this.$poster);\n if(!result){\n const $poster = this.player.$container.querySelector('.jessibuca-poster');\n if ($poster && this.player.$container) {\n this.player.$container.removeChild($poster);\n }\n }\n }\n if (this.$loading) {\n const result = removeElement(this.$loading)\n if (!result) {\n const $loading = this.player.$container.querySelector('.jessibuca-loading');\n if ($loading && this.player.$container) {\n this.player.$container.removeChild($loading);\n }\n }\n }\n if (this.$controls) {\n const result = removeElement(this.$controls)\n if (!result) {\n const $controls = this.player.$container.querySelector('.jessibuca-controls');\n if ($controls && this.player.$container) {\n this.player.$container.removeChild($controls);\n }\n }\n }\n\n if (this.$recording) {\n const result = removeElement(this.$recording)\n if (!result) {\n const $recording = this.player.$container.querySelector('.jessibuca-recording');\n if ($recording && this.player.$container) {\n this.player.$container.removeChild($recording);\n }\n }\n }\n\n if (this.$playBig) {\n const result = removeElement(this.$playBig)\n if (!result) {\n const $playBig = this.player.$container.querySelector('.jessibuca-play-big');\n if ($playBig && this.player.$container) {\n this.player.$container.removeChild($playBig);\n }\n }\n }\n\n if(this.player.$container){\n this.player.$container.classList.remove('jessibuca-controls-show-auto-hide');\n this.player.$container.classList.remove('jessibuca-controls-show');\n }\n\n this.player.debug.log('control', 'destroy');\n }\n\n autoSize() {\n const player = this.player;\n player.$container.style.padding = '0 0';\n const playerWidth = player.width;\n const playerHeight = player.height;\n const playerRatio = playerWidth / playerHeight;\n const canvasWidth = player.video.$videoElement.width;\n const canvasHeight = player.video.$videoElement.height;\n const canvasRatio = canvasWidth / canvasHeight;\n if (playerRatio > canvasRatio) {\n const padding = (playerWidth - playerHeight * canvasRatio) / 2;\n player.$container.style.padding = `0 ${padding}px`;\n } else {\n const padding = (playerHeight - playerWidth / canvasRatio) / 2;\n player.$container.style.padding = `${padding}px 0`;\n }\n }\n\n toggleBar(flag) {\n if (this.$controls) {\n if (!isBoolean(flag)) {\n // flag = this.$controls.style.display === 'none';\n flag = getStyle(this.$controls, 'display', false) === 'none';\n }\n\n if (flag) {\n setStyle(this.$controls, 'display', 'flex');\n } else {\n setStyle(this.$controls, 'display', 'none');\n }\n }\n }\n\n getBarIsShow() {\n let result = false;\n if (this.$controls) {\n result = getStyle(this.$controls, 'display', false) !== 'none';\n }\n return result;\n }\n}\n","import {getTarget} from \"../utils\";\n\nexport default (player) => {\n\n const {\n _opt,\n debug,\n events: {proxy},\n } = player;\n\n\n if (_opt.supportDblclickFullscreen) {\n proxy(player.$container, 'dblclick', (e) => {\n const target = getTarget(e);\n const nodeName = target.nodeName.toLowerCase();\n if (nodeName === 'canvas' || nodeName === 'video') {\n player.fullscreen = !player.fullscreen;\n }\n })\n }\n\n\n //\n proxy(document, 'visibilitychange', () => {\n if (_opt.hiddenAutoPause) {\n debug.log('visibilitychange', document.visibilityState, player._isPlayingBeforePageHidden)\n\n if (\"visible\" === document.visibilityState) {\n if (player._isPlayingBeforePageHidden) {\n player.play();\n }\n } else {\n player._isPlayingBeforePageHidden = player.playing;\n // hidden\n if (player.playing) {\n player.pause();\n }\n }\n }\n })\n\n proxy(window, 'fullscreenchange', () => {\n //\n if (player.keepScreenOn !== null && \"visible\" === document.visibilityState) {\n player.enableWakeLock();\n }\n })\n}\n","class MP4 {\n\n static init() {\n MP4.types = {\n avc1: [],\n avcC: [],\n hvc1: [],\n hvcC: [],\n btrt: [],\n dinf: [],\n dref: [],\n esds: [],\n ftyp: [],\n hdlr: [],\n mdat: [],\n mdhd: [],\n mdia: [],\n mfhd: [],\n minf: [],\n moof: [],\n moov: [],\n mp4a: [],\n mvex: [],\n mvhd: [],\n sdtp: [],\n stbl: [],\n stco: [],\n stsc: [],\n stsd: [],\n stsz: [],\n stts: [],\n tfdt: [],\n tfhd: [],\n traf: [],\n trak: [],\n trun: [],\n trex: [],\n tkhd: [],\n vmhd: [],\n smhd: []\n };\n\n for (let name in MP4.types) {\n if (MP4.types.hasOwnProperty(name)) {\n MP4.types[name] = [\n name.charCodeAt(0),\n name.charCodeAt(1),\n name.charCodeAt(2),\n name.charCodeAt(3)\n ];\n }\n }\n\n let constants = MP4.constants = {};\n\n constants.FTYP = new Uint8Array([\n 0x69, 0x73, 0x6F, 0x6D, // major_brand: isom\n 0x0, 0x0, 0x0, 0x1, // minor_version: 0x01\n 0x69, 0x73, 0x6F, 0x6D, // isom\n 0x61, 0x76, 0x63, 0x31 // avc1\n ]);\n\n constants.STSD_PREFIX = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x01 // entry_count\n ]);\n\n constants.STTS = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00 // entry_count\n ]);\n\n constants.STSC = constants.STCO = constants.STTS;\n\n constants.STSZ = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // sample_size\n 0x00, 0x00, 0x00, 0x00 // sample_count\n ]);\n\n constants.HDLR_VIDEO = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0x76, 0x69, 0x64, 0x65, // handler_type: 'vide'\n 0x00, 0x00, 0x00, 0x00, // reserved: 3 * 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x56, 0x69, 0x64, 0x65,\n 0x6F, 0x48, 0x61, 0x6E,\n 0x64, 0x6C, 0x65, 0x72, 0x00 // name: VideoHandler\n ]);\n\n constants.HDLR_AUDIO = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0x73, 0x6F, 0x75, 0x6E, // handler_type: 'soun'\n 0x00, 0x00, 0x00, 0x00, // reserved: 3 * 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x53, 0x6F, 0x75, 0x6E,\n 0x64, 0x48, 0x61, 0x6E,\n 0x64, 0x6C, 0x65, 0x72, 0x00 // name: SoundHandler\n ]);\n\n constants.DREF = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x01, // entry_count\n 0x00, 0x00, 0x00, 0x0C, // entry_size\n 0x75, 0x72, 0x6C, 0x20, // type 'url '\n 0x00, 0x00, 0x00, 0x01 // version(0) + flags\n ]);\n\n // Sound media header\n constants.SMHD = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00 // balance(2) + reserved(2)\n ]);\n\n // video media header\n constants.VMHD = new Uint8Array([\n 0x00, 0x00, 0x00, 0x01, // version(0) + flags\n 0x00, 0x00, // graphicsmode: 2 bytes\n 0x00, 0x00, 0x00, 0x00, // opcolor: 3 * 2 bytes\n 0x00, 0x00\n ]);\n }\n\n // Generate a box\n static box(type) {\n let size = 8;\n let result = null;\n let datas = Array.prototype.slice.call(arguments, 1);\n let arrayCount = datas.length;\n\n for (let i = 0; i < arrayCount; i++) {\n size += datas[i].byteLength;\n }\n\n result = new Uint8Array(size);\n result[0] = (size >>> 24) & 0xFF; // size\n result[1] = (size >>> 16) & 0xFF;\n result[2] = (size >>> 8) & 0xFF;\n result[3] = (size) & 0xFF;\n\n result.set(type, 4); // type\n\n let offset = 8;\n for (let i = 0; i < arrayCount; i++) { // data body\n result.set(datas[i], offset);\n offset += datas[i].byteLength;\n }\n\n return result;\n }\n\n // emit ftyp & moov\n static generateInitSegment(meta) {\n let ftyp = MP4.box(MP4.types.ftyp, MP4.constants.FTYP);\n let moov = MP4.moov(meta);\n\n let result = new Uint8Array(ftyp.byteLength + moov.byteLength);\n result.set(ftyp, 0);\n result.set(moov, ftyp.byteLength);\n return result;\n }\n\n // Movie metadata box\n static moov(meta) {\n let mvhd = MP4.mvhd(meta.timescale, meta.duration);\n let trak = MP4.trak(meta);\n let mvex = MP4.mvex(meta);\n return MP4.box(MP4.types.moov, mvhd, trak, mvex);\n }\n\n // Movie header box\n static mvhd(timescale, duration) {\n return MP4.box(MP4.types.mvhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // creation_time\n 0x00, 0x00, 0x00, 0x00, // modification_time\n (timescale >>> 24) & 0xFF, // timescale: 4 bytes\n (timescale >>> 16) & 0xFF,\n (timescale >>> 8) & 0xFF,\n (timescale) & 0xFF,\n (duration >>> 24) & 0xFF, // duration: 4 bytes\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n 0x00, 0x01, 0x00, 0x00, // Preferred rate: 1.0\n 0x01, 0x00, 0x00, 0x00, // PreferredVolume(1.0, 2bytes) + reserved(2bytes)\n 0x00, 0x00, 0x00, 0x00, // reserved: 4 + 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00, // ----begin composition matrix----\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x40, 0x00, 0x00, 0x00, // ----end composition matrix----\n 0x00, 0x00, 0x00, 0x00, // ----begin pre_defined 6 * 4 bytes----\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // ----end pre_defined 6 * 4 bytes----\n 0xFF, 0xFF, 0xFF, 0xFF // next_track_ID\n ]));\n }\n\n // Track box\n static trak(meta) {\n return MP4.box(MP4.types.trak, MP4.tkhd(meta), MP4.mdia(meta));\n }\n\n // Track header box\n static tkhd(meta) {\n let trackId = meta.id, duration = meta.duration;\n let width = meta.presentWidth, height = meta.presentHeight;\n\n return MP4.box(MP4.types.tkhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x07, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // creation_time\n 0x00, 0x00, 0x00, 0x00, // modification_time\n (trackId >>> 24) & 0xFF, // track_ID: 4 bytes\n (trackId >>> 16) & 0xFF,\n (trackId >>> 8) & 0xFF,\n (trackId) & 0xFF,\n 0x00, 0x00, 0x00, 0x00, // reserved: 4 bytes\n (duration >>> 24) & 0xFF, // duration: 4 bytes\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n 0x00, 0x00, 0x00, 0x00, // reserved: 2 * 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // layer(2bytes) + alternate_group(2bytes)\n 0x00, 0x00, 0x00, 0x00, // volume(2bytes) + reserved(2bytes)\n 0x00, 0x01, 0x00, 0x00, // ----begin composition matrix----\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x40, 0x00, 0x00, 0x00, // ----end composition matrix----\n (width >>> 8) & 0xFF, // width and height\n (width) & 0xFF,\n 0x00, 0x00,\n (height >>> 8) & 0xFF,\n (height) & 0xFF,\n 0x00, 0x00\n ]));\n }\n\n static mdia(meta) {\n return MP4.box(MP4.types.mdia, MP4.mdhd(meta), MP4.hdlr(meta), MP4.minf(meta))\n }\n\n // Media header box\n static mdhd(meta) {\n let timescale = meta.timescale;\n let duration = meta.duration;\n return MP4.box(MP4.types.mdhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // creation_time\n 0x00, 0x00, 0x00, 0x00, // modification_time\n (timescale >>> 24) & 0xFF, // timescale: 4 bytes\n (timescale >>> 16) & 0xFF,\n (timescale >>> 8) & 0xFF,\n (timescale) & 0xFF,\n (duration >>> 24) & 0xFF, // duration: 4 bytes\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n 0x55, 0xC4, // language: und (undetermined)\n 0x00, 0x00 // pre_defined = 0\n ]));\n }\n\n // Media handler reference box\n static hdlr(meta) {\n let data = null;\n if (meta.type === 'audio') {\n data = MP4.constants.HDLR_AUDIO;\n } else {\n data = MP4.constants.HDLR_VIDEO;\n }\n return MP4.box(MP4.types.hdlr, data);\n }\n\n // Media infomation box\n static minf(meta) {\n let xmhd = null;\n if (meta.type === 'audio') {\n xmhd = MP4.box(MP4.types.smhd, MP4.constants.SMHD);\n } else {\n xmhd = MP4.box(MP4.types.vmhd, MP4.constants.VMHD);\n }\n return MP4.box(MP4.types.minf, xmhd, MP4.dinf(), MP4.stbl(meta));\n }\n\n // Data infomation box\n static dinf() {\n let result = MP4.box(MP4.types.dinf,\n MP4.box(MP4.types.dref, MP4.constants.DREF)\n );\n return result;\n }\n\n // Sample table box\n static stbl(meta) {\n let result = MP4.box(MP4.types.stbl, // type: stbl\n MP4.stsd(meta), // Sample Description Table\n MP4.box(MP4.types.stts, MP4.constants.STTS), // Time-To-Sample\n MP4.box(MP4.types.stsc, MP4.constants.STSC), // Sample-To-Chunk\n MP4.box(MP4.types.stsz, MP4.constants.STSZ), // Sample size\n MP4.box(MP4.types.stco, MP4.constants.STCO) // Chunk offset\n );\n return result;\n }\n\n // Sample description box\n static stsd(meta) {\n if (meta.type === 'audio') {\n // else: aac -> mp4a\n return MP4.box(MP4.types.stsd, MP4.constants.STSD_PREFIX, MP4.mp4a(meta));\n } else {\n if (meta.videoType === 'avc') {\n //\n return MP4.box(MP4.types.stsd, MP4.constants.STSD_PREFIX, MP4.avc1(meta));\n } else {\n //\n return MP4.box(MP4.types.stsd, MP4.constants.STSD_PREFIX, MP4.hvc1(meta))\n }\n }\n }\n\n static mp4a(meta) {\n let channelCount = meta.channelCount;\n let sampleRate = meta.audioSampleRate;\n\n let data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // reserved(4)\n 0x00, 0x00, 0x00, 0x01, // reserved(2) + data_reference_index(2)\n 0x00, 0x00, 0x00, 0x00, // reserved: 2 * 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, channelCount, // channelCount(2)\n 0x00, 0x10, // sampleSize(2)\n 0x00, 0x00, 0x00, 0x00, // reserved(4)\n (sampleRate >>> 8) & 0xFF, // Audio sample rate\n (sampleRate) & 0xFF,\n 0x00, 0x00\n ]);\n\n return MP4.box(MP4.types.mp4a, data, MP4.esds(meta));\n }\n\n static esds(meta) {\n let config = meta.config || [];\n let configSize = config.length;\n let data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version 0 + flags\n\n 0x03, // descriptor_type\n 0x17 + configSize, // length3\n 0x00, 0x01, // es_id\n 0x00, // stream_priority\n\n 0x04, // descriptor_type\n 0x0F + configSize, // length\n 0x40, // codec: mpeg4_audio\n 0x15, // stream_type: Audio\n 0x00, 0x00, 0x00, // buffer_size\n 0x00, 0x00, 0x00, 0x00, // maxBitrate\n 0x00, 0x00, 0x00, 0x00, // avgBitrate\n\n 0x05 // descriptor_type\n ].concat([\n configSize\n ]).concat(\n config\n ).concat([\n 0x06, 0x01, 0x02 // GASpecificConfig\n ]));\n return MP4.box(MP4.types.esds, data);\n }\n\n // avc\n static avc1(meta) {\n let avcc = meta.avcc;\n const width = meta.codecWidth;\n const height = meta.codecHeight;\n let data = new Uint8Array([\n 0, 0, 0, 0,\n 0, 0, 0, 1,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n width >>> 8 & 255,\n width & 255,\n height >>> 8 & 255,\n height & 255,\n 0, 72, 0, 0,\n 0, 72, 0, 0,\n 0, 0, 0, 0,\n 0, 1,\n 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0,\n 0, 24,\n 255, 255]\n );\n return MP4.box(MP4.types.avc1, data, MP4.box(MP4.types.avcC, avcc))\n }\n\n // hvc\n static hvc1(meta) {\n let avcc = meta.avcc;\n const width = meta.codecWidth;\n const height = meta.codecHeight;\n let data = new Uint8Array([\n 0, 0, 0, 0,\n 0, 0, 0, 1,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n width >>> 8 & 255,\n width & 255,\n height >>> 8 & 255,\n height & 255,\n 0, 72, 0, 0,\n 0, 72, 0, 0,\n 0, 0, 0, 0,\n 0, 1,\n 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0,\n 0, 24,\n 255, 255\n ]);\n return MP4.box(MP4.types.hvc1, data, MP4.box(MP4.types.hvcC, avcc))\n }\n\n // Movie Extends box\n static mvex(meta) {\n return MP4.box(MP4.types.mvex, MP4.trex(meta))\n }\n\n // Track Extends box\n static trex(meta) {\n let trackId = meta.id;\n let data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n (trackId >>> 24) & 0xFF, // track_ID\n (trackId >>> 16) & 0xFF,\n (trackId >>> 8) & 0xFF,\n (trackId) & 0xFF,\n 0x00, 0x00, 0x00, 0x01, // default_sample_description_index\n 0x00, 0x00, 0x00, 0x00, // default_sample_duration\n 0x00, 0x00, 0x00, 0x00, // default_sample_size\n 0x00, 0x01, 0x00, 0x01 // default_sample_flags\n ]);\n return MP4.box(MP4.types.trex, data);\n }\n\n // Movie fragment box\n static moof(track, baseMediaDecodeTime) {\n return MP4.box(MP4.types.moof, MP4.mfhd(track.sequenceNumber), MP4.traf(track, baseMediaDecodeTime))\n }\n //\n static mfhd(sequenceNumber) {\n let data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n (sequenceNumber >>> 24) & 0xFF, // sequence_number: int32\n (sequenceNumber >>> 16) & 0xFF,\n (sequenceNumber >>> 8) & 0xFF,\n (sequenceNumber) & 0xFF\n ]);\n return MP4.box(MP4.types.mfhd, data);\n }\n\n // Track fragment box\n static traf(track, baseMediaDecodeTime) {\n let trackId = track.id;\n\n // Track fragment header box\n let tfhd = MP4.box(MP4.types.tfhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) & flags\n (trackId >>> 24) & 0xFF, // track_ID\n (trackId >>> 16) & 0xFF,\n (trackId >>> 8) & 0xFF,\n (trackId) & 0xFF\n ]));\n // Track Fragment Decode Time\n let tfdt = MP4.box(MP4.types.tfdt, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) & flags\n (baseMediaDecodeTime >>> 24) & 0xFF, // baseMediaDecodeTime: int32\n (baseMediaDecodeTime >>> 16) & 0xFF,\n (baseMediaDecodeTime >>> 8) & 0xFF,\n (baseMediaDecodeTime) & 0xFF\n ]));\n let sdtp = MP4.sdtp(track);\n let trun = MP4.trun(track, sdtp.byteLength + 16 + 16 + 8 + 16 + 8 + 8);\n\n return MP4.box(MP4.types.traf, tfhd, tfdt, trun, sdtp);\n }\n\n // Sample Dependency Type box\n static sdtp(track) {\n let data = new Uint8Array(4 + 1);\n let flags = track.flags;\n data[4] = flags.isLeading << 6\n | flags.dependsOn << 4\n | flags.isDependedOn << 2\n | flags.hasRedundancy;\n return MP4.box(MP4.types.sdtp, data);\n }\n // trun\n static trun(track, offset) {\n let dataSize = 12 + 16;\n let data = new Uint8Array(dataSize);\n offset += 8 + dataSize;\n\n data.set([\n 0x00, 0x00, 0x0F, 0x01, // version(0) & flags\n 0x00, 0x00, 0x00, 0x01, // sample_count\n (offset >>> 24) & 0xFF, // data_offset\n (offset >>> 16) & 0xFF,\n (offset >>> 8) & 0xFF,\n (offset) & 0xFF\n ], 0);\n\n let duration = track.duration;\n let size = track.size;\n let flags = track.flags;\n let cts = track.cts;\n\n data.set([\n (duration >>> 24) & 0xFF, // sample_duration\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n (size >>> 24) & 0xFF, // sample_size\n (size >>> 16) & 0xFF,\n (size >>> 8) & 0xFF,\n (size) & 0xFF,\n (flags.isLeading << 2) | flags.dependsOn, // sample_flags\n (flags.isDependedOn << 6) | (flags.hasRedundancy << 4) | flags.isNonSync,\n 0x00, 0x00, // sample_degradation_priority\n (cts >>> 24) & 0xFF, // sample_composition_time_offset\n (cts >>> 16) & 0xFF,\n (cts >>> 8) & 0xFF,\n (cts) & 0xFF\n ], 12);\n\n return MP4.box(MP4.types.trun, data);\n }\n // mdat\n static mdat(data) {\n return MP4.box(MP4.types.mdat, data)\n }\n}\n\nMP4.init();\n\nexport default MP4;\n","import Emitter from \"../utils/emitter\";\nimport {EVENTS, EVENTS_ERROR, FRAG_DURATION, MEDIA_SOURCE_STATE, MP4_CODECS, VIDEO_ENC_CODE} from \"../constant\";\nimport MP4 from \"../remux/fmp4-generator\";\nimport {parseAVCDecoderConfigurationRecord,} from \"../utils/h264\";\nimport {now} from \"../utils\";\n\nexport default class MseDecoder extends Emitter {\n constructor(player) {\n super();\n this.player = player;\n this.isAvc = true;\n this.mediaSource = new window.MediaSource();\n this.sourceBuffer = null;\n this.hasInit = false;\n this.isInitInfo = false;\n this.cacheTrack = {};\n this.timeInit = false;\n this.sequenceNumber = 0;\n this.mediaSourceOpen = false;\n this.dropping = false;\n this.firstRenderTime = null;\n this.mediaSourceAppendBufferError = false;\n this.mediaSourceAppendBufferFull = false;\n this.isDecodeFirstIIframe = false;\n this.player.video.$videoElement.src = window.URL.createObjectURL(this.mediaSource);\n const {\n debug,\n events: {proxy},\n } = player;\n\n\n proxy(this.mediaSource, 'sourceopen', () => {\n this.mediaSourceOpen = true;\n this.player.emit(EVENTS.mseSourceOpen)\n })\n\n proxy(this.mediaSource, 'sourceclose', () => {\n this.player.emit(EVENTS.mseSourceClose);\n })\n\n player.debug.log('MediaSource', 'init')\n }\n\n destroy() {\n this.stop();\n this.mediaSource = null;\n this.mediaSourceOpen = false;\n this.sourceBuffer = null;\n this.hasInit = false;\n this.isInitInfo = false;\n this.sequenceNumber = 0;\n this.cacheTrack = null;\n this.timeInit = false;\n this.mediaSourceAppendBufferError = false;\n this.mediaSourceAppendBufferFull = false;\n this.isDecodeFirstIIframe = false;\n this.off();\n this.player.debug.log('MediaSource', 'destroy')\n }\n\n get state() {\n return this.mediaSource && this.mediaSource.readyState\n }\n\n get isStateOpen() {\n return this.state === MEDIA_SOURCE_STATE.open;\n }\n\n get isStateClosed() {\n return this.state === MEDIA_SOURCE_STATE.closed;\n }\n\n get isStateEnded() {\n return this.state === MEDIA_SOURCE_STATE.ended;\n }\n\n get duration() {\n return this.mediaSource && this.mediaSource.duration\n }\n\n set duration(duration) {\n this.mediaSource.duration = duration\n }\n\n decodeVideo(payload, ts, isIframe, cts) {\n const player = this.player;\n\n if (!player) {\n return;\n }\n\n if (!this.hasInit) {\n if (isIframe && payload[1] === 0) {\n const videoCodec = (payload[0] & 0x0F);\n player.video.updateVideoInfo({\n encTypeCode: videoCodec\n })\n\n // 如果解码出来的是\n if (videoCodec === VIDEO_ENC_CODE.h265) {\n this.emit(EVENTS_ERROR.mediaSourceH265NotSupport)\n return;\n }\n if (!player._times.decodeStart) {\n player._times.decodeStart = now();\n }\n\n this._decodeConfigurationRecord(payload, ts, isIframe, videoCodec)\n this.hasInit = true;\n }\n } else {\n if (isIframe && payload[1] === 0) {\n let config = parseAVCDecoderConfigurationRecord(payload.slice(5))\n const videoInfo = this.player.video.videoInfo;\n if ((videoInfo && videoInfo.width && videoInfo.height) && (config && config.codecWidth && config.codecHeight) && (config.codecWidth !== videoInfo.width || config.codecHeight !== videoInfo.height)) {\n this.player.debug.warn('MediaSource', `width or height is update, width ${videoInfo.width}-> ${config.codecWidth}, height ${videoInfo.height}-> ${config.codecHeight}`)\n this.isInitInfo = false;\n this.player.video.init = false;\n }\n }\n\n if (!this.isDecodeFirstIIframe && isIframe) {\n this.isDecodeFirstIIframe = true;\n }\n if (this.isDecodeFirstIIframe) {\n if (this.firstRenderTime === null) {\n this.firstRenderTime = ts;\n }\n const dts = ts - this.firstRenderTime;\n\n this._decodeVideo(payload, dts, isIframe, cts);\n } else {\n this.player.debug.warn('MediaSource', 'decodeVideo isDecodeFirstIIframe false')\n }\n }\n }\n\n\n _decodeConfigurationRecord(payload, ts, isIframe, videoCodec) {\n let data = payload.slice(5);\n let config = {};\n\n config = parseAVCDecoderConfigurationRecord(data)\n\n const metaData = {\n id: 1, // video tag data\n type: 'video',\n timescale: 1000,\n duration: 0,\n avcc: data,\n codecWidth: config.codecWidth,\n codecHeight: config.codecHeight,\n videoType: config.videoType\n }\n // ftyp\n const metaBox = MP4.generateInitSegment(metaData);\n this.isAvc = true;\n this.appendBuffer(metaBox.buffer);\n this.sequenceNumber = 0;\n this.cacheTrack = null;\n this.timeInit = false;\n }\n\n //\n _decodeVideo(payload, dts, isIframe, cts) {\n const player = this.player;\n let arrayBuffer = payload.slice(5);\n let bytes = arrayBuffer.byteLength;\n // player.debug.log('MediaSource', '_decodeVideo', ts);\n const $video = player.video.$videoElement;\n const videoBufferDelay = player._opt.videoBufferDelay;\n if ($video.buffered.length > 1) {\n this.removeBuffer($video.buffered.start(0), $video.buffered.end(0));\n this.timeInit = false;\n }\n if (this.dropping && dts - this.cacheTrack.dts > videoBufferDelay) {\n this.dropping = false;\n this.cacheTrack = {};\n } else if (this.cacheTrack && dts >= this.cacheTrack.dts) {\n // 需要额外加8个size\n let mdatBytes = 8 + this.cacheTrack.size;\n let mdatbox = new Uint8Array(mdatBytes);\n mdatbox[0] = mdatBytes >>> 24 & 255;\n mdatbox[1] = mdatBytes >>> 16 & 255;\n mdatbox[2] = mdatBytes >>> 8 & 255;\n mdatbox[3] = mdatBytes & 255;\n mdatbox.set(MP4.types.mdat, 4);\n mdatbox.set(this.cacheTrack.data, 8);\n\n this.cacheTrack.duration = dts - this.cacheTrack.dts;\n // moof\n let moofbox = MP4.moof(this.cacheTrack, this.cacheTrack.dts);\n let result = new Uint8Array(moofbox.byteLength + mdatbox.byteLength);\n result.set(moofbox, 0);\n result.set(mdatbox, moofbox.byteLength);\n // appendBuffer\n this.appendBuffer(result.buffer)\n player.handleRender();\n player.updateStats({fps: true, ts: dts, buf: (player.demux && player.demux.delay) || 0})\n if (!player._times.videoStart) {\n player._times.videoStart = now();\n player.handlePlayToRenderTimes()\n }\n } else {\n player.debug.log('MediaSource', 'timeInit set false , cacheTrack = {}');\n this.timeInit = false;\n this.cacheTrack = {};\n }\n if (!this.cacheTrack) {\n this.cacheTrack = {};\n }\n this.cacheTrack.id = 1;\n this.cacheTrack.sequenceNumber = ++this.sequenceNumber;\n this.cacheTrack.size = bytes;\n this.cacheTrack.dts = dts;\n this.cacheTrack.cts = cts;\n this.cacheTrack.isKeyframe = isIframe;\n this.cacheTrack.data = arrayBuffer;\n //\n this.cacheTrack.flags = {\n isLeading: 0,\n dependsOn: isIframe ? 2 : 1,\n isDependedOn: isIframe ? 1 : 0,\n hasRedundancy: 0,\n isNonSync: isIframe ? 0 : 1\n }\n\n //\n if (!this.timeInit && $video.buffered.length === 1) {\n player.debug.log('MediaSource', 'timeInit set true');\n this.timeInit = true;\n $video.currentTime = $video.buffered.end(0);\n }\n\n if (!this.isInitInfo && $video.videoWidth > 0 && $video.videoHeight > 0) {\n player.debug.log('MediaSource', `updateVideoInfo: ${$video.videoWidth},${$video.videoHeight}`);\n player.video.updateVideoInfo({\n width: $video.videoWidth,\n height: $video.videoHeight\n })\n player.video.initCanvasViewSize();\n this.isInitInfo = true;\n }\n }\n\n appendBuffer(buffer) {\n const {\n debug,\n events: {proxy},\n } = this.player;\n\n if (this.sourceBuffer === null) {\n this.sourceBuffer = this.mediaSource.addSourceBuffer(MP4_CODECS.avc);\n proxy(this.sourceBuffer, 'error', (error) => {\n debug.error('MediaSource', 'sourceBuffer error', error);\n this.player.emit(EVENTS.mseSourceBufferError, error);\n // this.dropSourceBuffer(false)\n })\n }\n\n if (this.mediaSourceAppendBufferError) {\n debug.error('MediaSource', `this.mediaSourceAppendBufferError is true`);\n return;\n }\n\n if (this.mediaSourceAppendBufferFull) {\n debug.error('MediaSource', `this.mediaSourceAppendBufferFull is true`);\n return;\n }\n\n\n if (this.sourceBuffer.updating === false && this.isStateOpen) {\n try {\n this.sourceBuffer.appendBuffer(buffer);\n } catch (e) {\n debug.warn('MediaSource', 'this.sourceBuffer.appendBuffer()', e.code, e);\n if (e.code === 22) {\n // QuotaExceededError\n // The SourceBuffer is full, and cannot free space to append additional buffers\n this.stop();\n this.mediaSourceAppendBufferFull = true;\n this.emit(EVENTS_ERROR.mediaSourceFull)\n } else if (e.code === 11) {\n // Failed to execute 'appendBuffer' on 'SourceBuffer': The HTMLMediaElement.error attribute is not null.\n this.stop();\n this.mediaSourceAppendBufferError = true;\n this.emit(EVENTS_ERROR.mediaSourceAppendBufferError);\n } else {\n debug.error('MediaSource', 'appendBuffer error', e)\n this.player.emit(EVENTS.mseSourceBufferError, e);\n }\n }\n return;\n }\n\n if (this.isStateClosed) {\n this.player.emitError(EVENTS_ERROR.mseSourceBufferError, 'mediaSource is not attached to video or mediaSource is closed')\n } else if (this.isStateEnded) {\n this.player.emitError(EVENTS_ERROR.mseSourceBufferError, 'mediaSource is closed')\n } else {\n if (this.sourceBuffer.updating === true) {\n this.player.emit(EVENTS.mseSourceBufferBusy);\n // this.dropSourceBuffer(true);\n }\n }\n }\n\n stop() {\n this.abortSourceBuffer();\n this.removeSourceBuffer();\n this.endOfStream();\n }\n\n dropSourceBuffer(isDropping) {\n const $video = this.player.video.$videoElement;\n this.dropping = isDropping;\n if ($video.buffered.length > 0) {\n if ($video.buffered.end(0) - $video.currentTime > 1) {\n this.player.debug.warn('MediaSource', 'dropSourceBuffer', `$video.buffered.end(0) is ${$video.buffered.end(0)} - $video.currentTime ${$video.currentTime}`);\n $video.currentTime = $video.buffered.end(0);\n }\n }\n }\n\n\n removeBuffer(start, end) {\n\n if (this.isStateOpen && this.sourceBuffer.updating === false) {\n try {\n this.sourceBuffer.remove(start, end)\n } catch (e) {\n this.player.debug.warn('MediaSource', 'removeBuffer() error', e);\n }\n } else {\n this.player.debug.warn('MediaSource', 'removeBuffer() this.isStateOpen is', this.isStateOpen, 'this.sourceBuffer.updating', this.sourceBuffer.updating);\n }\n }\n\n endOfStream() {\n // fix: MediaSource endOfStream before demuxer initialization completes (before HAVE_METADATA) is treated as an error\n const $videoElement = this.player.video && this.player.video.$videoElement;\n if (this.isStateOpen && $videoElement && $videoElement.readyState >= 1) {\n try {\n this.mediaSource.endOfStream();\n } catch (e) {\n this.player.debug.warn('MediaSource', 'endOfStream() error', e);\n }\n }\n }\n\n abortSourceBuffer() {\n if (this.isStateOpen) {\n if (this.sourceBuffer) {\n this.sourceBuffer.abort();\n this.sourceBuffer = null;\n }\n }\n }\n\n removeSourceBuffer() {\n if (!this.isStateClosed) {\n if (this.mediaSource && this.sourceBuffer) {\n try {\n this.mediaSource.removeSourceBuffer(this.sourceBuffer);\n } catch (e) {\n this.player.debug.warn('MediaSource', 'removeSourceBuffer() error', e);\n }\n }\n }\n }\n\n getSourceBufferUpdating() {\n return this.sourceBuffer && this.sourceBuffer.updating;\n }\n\n}\n","// tks: https://github.com/richtr/NoSleep.js\n\nconst WEBM = \"data:video/webm;base64,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\";\nconst MP4 = \"data:video/mp4;base64,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\";\n\n\n// Detect iOS browsers < version 10\nconst\n oldIOS = () =>\n typeof navigator !== \"undefined\" &&\n parseFloat(\n (\n \"\" +\n (/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(\n navigator.userAgent\n ) || [0, \"\"])[1]\n )\n .replace(\"undefined\", \"3_2\")\n .replace(\"_\", \".\")\n .replace(\"_\", \"\")\n ) < 10 &&\n !window.MSStream;\n\n// Detect native Wake Lock API support\nconst nativeWakeLock = () => \"wakeLock\" in navigator;\n\nexport default class NoSleep {\n constructor(player) {\n this.player = player;\n this.enabled = false;\n if (nativeWakeLock()) {\n this._wakeLock = null;\n const handleVisibilityChange = () => {\n if (this._wakeLock !== null && document.visibilityState === \"visible\") {\n this.enable();\n }\n };\n document.addEventListener(\"visibilitychange\", handleVisibilityChange);\n document.addEventListener(\"fullscreenchange\", handleVisibilityChange);\n } else if (oldIOS()) {\n this.noSleepTimer = null;\n } else {\n // Set up no sleep video element\n this.noSleepVideo = document.createElement(\"video\");\n\n this.noSleepVideo.setAttribute(\"title\", \"No Sleep\");\n this.noSleepVideo.setAttribute(\"playsinline\", \"\");\n\n this._addSourceToVideo(this.noSleepVideo, \"webm\", WEBM);\n this._addSourceToVideo(this.noSleepVideo, \"mp4\", MP4);\n\n this.noSleepVideo.addEventListener(\"loadedmetadata\", () => {\n if (this.noSleepVideo.duration <= 1) {\n // webm source\n this.noSleepVideo.setAttribute(\"loop\", \"\");\n } else {\n // mp4 source\n this.noSleepVideo.addEventListener(\"timeupdate\", () => {\n if (this.noSleepVideo.currentTime > 0.5) {\n this.noSleepVideo.currentTime = Math.random();\n }\n });\n }\n });\n }\n }\n\n _addSourceToVideo(element, type, dataURI) {\n var source = document.createElement(\"source\");\n source.src = dataURI;\n source.type = `video/${type}`;\n element.appendChild(source);\n }\n\n get isEnabled() {\n return this.enabled;\n }\n\n enable() {\n const debug = this.player.debug;\n if (nativeWakeLock()) {\n return navigator.wakeLock\n .request(\"screen\")\n .then((wakeLock) => {\n this._wakeLock = wakeLock;\n this.enabled = true;\n debug.log('wakeLock', 'Wake Lock active.')\n this._wakeLock.addEventListener(\"release\", () => {\n // ToDo: Potentially emit an event for the page to observe since\n // Wake Lock releases happen when page visibility changes.\n // (https://web.dev/wakelock/#wake-lock-lifecycle)\n debug.log('wakeLock', 'Wake Lock released.')\n });\n })\n .catch((err) => {\n this.enabled = false;\n debug.error('wakeLock', `${err.name}, ${err.message}`)\n throw err;\n });\n } else if (oldIOS()) {\n this.disable();\n this.noSleepTimer = window.setInterval(() => {\n if (!document.hidden) {\n window.location.href = window.location.href.split(\"#\")[0];\n window.setTimeout(window.stop, 0);\n }\n }, 15000);\n this.enabled = true;\n return Promise.resolve();\n } else {\n let playPromise = this.noSleepVideo.play();\n return playPromise\n .then((res) => {\n this.enabled = true;\n return res;\n })\n .catch((err) => {\n this.enabled = false;\n throw err;\n });\n }\n }\n\n disable() {\n const debug = this.player.debug;\n if (nativeWakeLock()) {\n if (this._wakeLock) {\n this._wakeLock.release();\n }\n this._wakeLock = null;\n } else if (oldIOS()) {\n if (this.noSleepTimer) {\n debug.warn('wakeLock', 'NoSleep now disabled for older iOS devices.')\n\n window.clearInterval(this.noSleepTimer);\n this.noSleepTimer = null;\n }\n } else {\n this.noSleepVideo.pause();\n }\n this.enabled = false;\n }\n}\n","import {DEFAULT_PLAYER_OPTIONS, EVENTS, EVENTS_ERROR, JESSIBUCA_EVENTS,VERSION} from \"../constant\";\nimport Debug from \"../utils/debug\";\nimport Events from \"../utils/events\";\nimport property from './property';\nimport events from './events';\nimport {\n fpsStatus,\n initPlayTimes,\n isEmpty, isFalse,\n isFullScreen, isMobile,isPad,\n isNotEmpty,\n now, supportMediaStreamTrack,\n supportMSE,\n supportOffscreenV2,\n supportWCS\n} from \"../utils\";\nimport Video from \"../video\";\nimport Audio from \"../audio\";\nimport Stream from \"../stream\";\nimport Recorder from \"../recorder\";\nimport DecoderWorker from \"../worker/index\";\nimport Emitter from \"../utils/emitter\";\nimport Demux from \"../demux\";\nimport WebcodecsDecoder from \"../decoder/webcodecs\";\nimport Control from \"../control\";\nimport './style.scss'\nimport observer from \"./observer\";\nimport MseDecoder from \"../decoder/mediaSource\";\nimport NoSleep from \"../utils/noSleep\";\nimport screenfull from \"screenfull\";\n\nexport default class Player extends Emitter {\n constructor(container, options) {\n super()\n this.$container = container;\n this._opt = Object.assign({}, DEFAULT_PLAYER_OPTIONS, options)\n this.debug = new Debug(this);\n this.debug.log('Player', 'init');\n\n // disable offscreen\n this._opt.forceNoOffscreen = true;\n\n if (isMobile() || isPad()) {\n this.debug.log('Player', 'isMobile and set _opt.controlAutoHide false');\n this._opt.controlAutoHide = false;\n }\n\n if (screenfull.isEnabled &&\n this._opt.useWebFullScreen) {\n this.debug.log('Player', 'screenfull.isEnabled is true and _opt.useWebFullScreen is true , set _opt.useWebFullScreen false');\n this._opt.useWebFullScreen = false;\n }\n\n if (isFalse(screenfull.isEnabled) &&\n isFalse(this._opt.useWebFullScreen)) {\n this.debug.log('Player', 'screenfull.isEnabled is false and _opt.useWebFullScreen is false , set _opt.useWebFullScreen true');\n this._opt.useWebFullScreen = true;\n }\n\n\n //\n if (this._opt.useWCS) {\n this._opt.useWCS = supportWCS();\n }\n\n //\n if (this._opt.useMSE) {\n this._opt.useMSE = supportMSE();\n }\n\n //\n if (this._opt.wcsUseVideoRender) {\n this._opt.wcsUseVideoRender = supportMediaStreamTrack()\n }\n\n // 如果使用mse则强制不允许 webcodecs\n if (this._opt.useMSE) {\n if (this._opt.useWCS) {\n this.debug.log('Player', 'useWCS set true->false')\n }\n\n if (!this._opt.forceNoOffscreen) {\n this.debug.log('Player', 'forceNoOffscreen set false->true')\n }\n\n this._opt.useWCS = false;\n this._opt.forceNoOffscreen = true;\n }\n\n if (!this._opt.forceNoOffscreen) {\n if (!supportOffscreenV2()) {\n this._opt.forceNoOffscreen = true;\n this._opt.useOffscreen = false;\n } else {\n this._opt.useOffscreen = true;\n }\n }\n\n if (!this._opt.hasAudio) {\n this._opt.operateBtns.audio = false\n }\n\n this._opt.hasControl = this._hasControl();\n //\n this._loading = false;\n this._playing = false;\n this._hasLoaded = false;\n\n //\n this._checkHeartTimeout = null;\n this._checkLoadingTimeout = null;\n this._checkStatsInterval = null;\n\n //\n this._startBpsTime = null;\n this._isPlayingBeforePageHidden = false;\n this._stats = {\n buf: 0, // 当前缓冲区时长,单位毫秒,\n fps: 0, // 当前视频帧率\n abps: 0, // 当前音频码率,单位bit\n vbps: 0, // 当前视频码率,单位bit\n ts: 0 // 当前视频帧pts,单位毫秒\n }\n\n // 各个步骤的时间统计\n this._times = initPlayTimes();\n\n //\n this._videoTimestamp = 0;\n this._audioTimestamp = 0;\n\n property(this);\n\n this.events = new Events(this);\n this.video = new Video(this);\n\n if (this._opt.hasAudio) {\n this.audio = new Audio(this);\n }\n this.recorder = new Recorder(this);\n\n if (!this._onlyMseOrWcsVideo()) {\n this.decoderWorker = new DecoderWorker(this);\n } else {\n this.loaded = true;\n }\n\n this.stream = null;\n this.demux = null;\n this._lastVolume = null;\n\n if (this._opt.useWCS) {\n this.webcodecsDecoder = new WebcodecsDecoder(this)\n this.loaded = true\n }\n\n if (this._opt.useMSE) {\n this.mseDecoder = new MseDecoder(this);\n this.loaded = true\n }\n\n //\n this.control = new Control(this);\n\n if (isMobile()) {\n this.keepScreenOn = new NoSleep(this);\n }\n\n events(this);\n observer(this);\n this.debug.log('Player', 'init and version is',VERSION);\n\n if (this._opt.useWCS) {\n this.debug.log('Player', 'use WCS')\n }\n\n if (this._opt.useMSE) {\n this.debug.log('Player', 'use MSE')\n }\n\n if (this._opt.useOffscreen) {\n this.debug.log('Player', 'use offscreen')\n }\n\n try {\n this.debug.log('Player options', JSON.stringify(this._opt));\n } catch (e) {\n // ignore\n }\n }\n\n\n async destroy() {\n this._loading = false;\n this._playing = false;\n this._hasLoaded = false;\n this._lastVolume = null;\n this._times = initPlayTimes();\n\n if (this.decoderWorker) {\n await this.decoderWorker.destroy();\n this.decoderWorker = null;\n }\n if (this.video) {\n this.video.destroy();\n this.video = null;\n }\n\n if (this.audio) {\n this.audio.destroy();\n this.audio = null;\n }\n\n if (this.stream) {\n await this.stream.destroy();\n this.stream = null;\n }\n\n if (this.recorder) {\n this.recorder.destroy();\n this.recorder = null;\n }\n\n if (this.control) {\n this.control.destroy();\n this.control = null;\n }\n\n if (this.webcodecsDecoder) {\n this.webcodecsDecoder.destroy();\n this.webcodecsDecoder = null;\n }\n\n if (this.mseDecoder) {\n this.mseDecoder.destroy();\n this.mseDecoder = null;\n }\n\n if (this.demux) {\n this.demux.destroy();\n this.demux = null;\n }\n\n\n if (this.events) {\n this.events.destroy();\n this.events = null;\n }\n\n this.clearCheckHeartTimeout();\n this.clearCheckLoadingTimeout();\n this.clearStatsInterval();\n //\n this.releaseWakeLock();\n this.keepScreenOn = null;\n // reset stats\n this.resetStats();\n this._audioTimestamp = 0;\n this._videoTimestamp = 0;\n\n // 其他没法解耦的,通过 destroy 方式\n this.emit('destroy');\n // 接触所有绑定事件\n this.off();\n\n this.debug.log('play', 'destroy end');\n }\n\n set fullscreen(value) {\n if (isMobile() && this._opt.useWebFullScreen) {\n this.emit(EVENTS.webFullscreen, value);\n setTimeout(() => {\n this.updateOption({\n rotate: value ? 270 : 0,\n })\n this.resize();\n }, 10)\n } else {\n this.emit(EVENTS.fullscreen, value);\n }\n }\n\n get fullscreen() {\n return isFullScreen() || this.webFullscreen;\n }\n\n set webFullscreen(value) {\n this.emit(EVENTS.webFullscreen, value);\n }\n\n get webFullscreen() {\n return this.$container.classList.contains('jessibuca-fullscreen-web')\n }\n\n set loaded(value) {\n this._hasLoaded = value;\n }\n\n get loaded() {\n return this._hasLoaded;\n }\n\n //\n set playing(value) {\n\n if (value) {\n // 将loading 设置为 false\n this.loading = false;\n }\n\n if (this.playing !== value) {\n this._playing = value;\n this.emit(EVENTS.playing, value);\n this.emit(EVENTS.volumechange, this.volume);\n\n if (value) {\n this.emit(EVENTS.play);\n } else {\n this.emit(EVENTS.pause);\n }\n }\n }\n\n get playing() {\n return this._playing;\n }\n\n get volume() {\n return (this.audio && this.audio.volume) || 0;\n }\n\n set volume(value) {\n if (value !== this.volume) {\n this.audio && this.audio.setVolume(value);\n this._lastVolume = value;\n }\n }\n\n get lastVolume() {\n return this._lastVolume\n }\n\n set loading(value) {\n if (this.loading !== value) {\n this._loading = value;\n this.emit(EVENTS.loading, this._loading);\n }\n }\n\n get loading() {\n return this._loading;\n }\n\n set recording(value) {\n if (value) {\n if (this.playing) {\n this.recorder && this.recorder.startRecord();\n }\n } else {\n this.recorder && this.recorder.stopRecordAndSave();\n }\n }\n\n get recording() {\n return this.recorder ? this.recorder.recording : false;\n }\n\n set audioTimestamp(value) {\n if (value === null) {\n return;\n }\n this._audioTimestamp = value;\n }\n\n //\n get audioTimestamp() {\n return this._audioTimestamp;\n }\n\n //\n set videoTimestamp(value) {\n if (value === null) {\n return;\n }\n this._videoTimestamp = value;\n // just for wasm\n if (!this._opt.useWCS && !this._opt.useMSE) {\n if (this.audioTimestamp && this.videoTimestamp) {\n this.audio && this.audio.emit(EVENTS.videoSyncAudio, {\n audioTimestamp: this.audioTimestamp,\n videoTimestamp: this.videoTimestamp,\n diff: this.audioTimestamp - this.videoTimestamp\n })\n }\n }\n }\n\n //\n get videoTimestamp() {\n return this._videoTimestamp;\n }\n\n get isDebug() {\n return this._opt.debug === true;\n }\n\n\n /**\n *\n * @param options\n */\n updateOption(options) {\n this._opt = Object.assign({}, this._opt, options)\n }\n\n /**\n *\n * @returns {Promise}\n */\n init() {\n return new Promise((resolve, reject) => {\n if (!this.stream) {\n this.stream = new Stream(this);\n }\n\n if (!this.audio) {\n if (this._opt.hasAudio) {\n this.audio = new Audio(this);\n }\n }\n if (!this.demux) {\n this.demux = new Demux(this);\n }\n\n if (this._opt.useWCS) {\n if (!this.webcodecsDecoder) {\n this.webcodecsDecoder = new WebcodecsDecoder(this)\n }\n }\n\n if (this._opt.useMSE) {\n if (!this.mseDecoder) {\n this.mseDecoder = new MseDecoder(this);\n }\n }\n\n if (!this.decoderWorker && !this._onlyMseOrWcsVideo()) {\n this.decoderWorker = new DecoderWorker(this);\n this.debug.log('Player', 'waiting decoderWorker init');\n this.once(EVENTS.decoderWorkerInit, () => {\n this.debug.log('Player', 'decoderWorker init success');\n resolve()\n })\n } else {\n resolve()\n }\n\n })\n }\n\n\n /**\n *\n * @param url\n * @returns {Promise}\n */\n play(url, options) {\n return new Promise((resolve, reject) => {\n if (!url && !this._opt.url) {\n return reject();\n }\n\n this.loading = true;\n this.playing = false;\n this._times.playInitStart = now();\n if (!url) {\n url = this._opt.url;\n }\n this._opt.url = url;\n\n this.clearCheckHeartTimeout();\n\n this.init().then(() => {\n this._times.playStart = now();\n //\n if (this._opt.isNotMute) {\n this.mute(false);\n }\n\n\n if (this.webcodecsDecoder) {\n this.webcodecsDecoder.once(EVENTS_ERROR.webcodecsH265NotSupport, () => {\n this.emit(EVENTS_ERROR.webcodecsH265NotSupport)\n if (!this._opt.autoWasm) {\n this.emit(EVENTS.error, EVENTS_ERROR.webcodecsH265NotSupport);\n }\n })\n }\n\n if (this.mseDecoder) {\n this.mseDecoder.once(EVENTS_ERROR.mediaSourceH265NotSupport, () => {\n this.emit(EVENTS_ERROR.mediaSourceH265NotSupport)\n if (!this._opt.autoWasm) {\n this.emit(EVENTS.error, EVENTS_ERROR.mediaSourceH265NotSupport);\n }\n })\n\n this.mseDecoder.once(EVENTS_ERROR.mediaSourceFull, () => {\n this.emitError(EVENTS_ERROR.mediaSourceFull)\n })\n\n this.mseDecoder.once(EVENTS_ERROR.mediaSourceAppendBufferError, () => {\n this.emitError(EVENTS_ERROR.mediaSourceAppendBufferError)\n })\n\n this.mseDecoder.once(EVENTS_ERROR.mediaSourceBufferListLarge, () => {\n this.emitError(EVENTS_ERROR.mediaSourceBufferListLarge);\n })\n\n this.mseDecoder.once(EVENTS_ERROR.mediaSourceAppendBufferEndTimeout, () => {\n this.emitError(EVENTS_ERROR.mediaSourceAppendBufferEndTimeout);\n })\n }\n\n this.enableWakeLock();\n\n this.stream.fetchStream(url, options);\n\n //\n this.checkLoadingTimeout();\n // fetch error\n this.stream.once(EVENTS_ERROR.fetchError, (error) => {\n // reject(error)\n this.emitError(EVENTS_ERROR.fetchError, error);\n })\n\n // ws\n this.stream.once(EVENTS_ERROR.websocketError, (error) => {\n // reject(error)\n this.emitError(EVENTS_ERROR.websocketError, error);\n })\n\n // stream end\n this.stream.once(EVENTS.streamEnd, (msg) => {\n // reject();\n this.emitError(EVENTS.streamEnd, msg);\n })\n\n // success\n this.stream.once(EVENTS.streamSuccess, () => {\n resolve();\n this._times.streamResponse = now();\n //\n this.video.play();\n this.checkStatsInterval();\n })\n\n }).catch((e) => {\n reject(e)\n })\n })\n }\n\n /**\n *\n */\n close() {\n return new Promise((resolve, reject) => {\n this._close().then(() => {\n this.video && this.video.clearView();\n resolve()\n })\n })\n }\n\n resumeAudioAfterPause() {\n if (this.lastVolume) {\n this.volume = this.lastVolume;\n }\n }\n\n _close() {\n return new Promise((resolve, reject) => {\n //\n if (this.stream) {\n this.stream.destroy();\n this.stream = null;\n }\n\n if (this.demux) {\n this.demux.destroy();\n this.demux = null;\n }\n\n //\n if (this.decoderWorker) {\n this.decoderWorker.destroy();\n this.decoderWorker = null;\n }\n\n if (this.webcodecsDecoder) {\n this.webcodecsDecoder.destroy();\n this.webcodecsDecoder = null;\n }\n\n if (this.mseDecoder) {\n this.mseDecoder.destroy();\n this.mseDecoder = null;\n }\n\n if (this.audio) {\n this.audio.destroy();\n this.audio = null;\n }\n this.clearCheckHeartTimeout();\n this.clearCheckLoadingTimeout();\n this.clearStatsInterval();\n this.playing = false;\n this.loading = false;\n this.recording = false;\n\n if (this.video) {\n this.video.resetInit();\n this.video.pause(true);\n }\n // release lock\n this.releaseWakeLock();\n // reset stats\n this.resetStats();\n //\n this._audioTimestamp = 0;\n this._videoTimestamp = 0;\n //\n this._times = initPlayTimes();\n //\n setTimeout(() => {\n resolve()\n }, 0)\n })\n }\n\n /**\n *\n * @param flag {boolean} 是否清除画面\n * @returns {Promise}\n */\n pause(flag = false) {\n if (flag) {\n return this.close();\n } else {\n return this._close();\n }\n }\n\n /**\n *\n * @param flag\n */\n mute(flag) {\n this.audio && this.audio.mute(flag)\n }\n\n /**\n *\n */\n resize() {\n this.video.resize();\n }\n\n /**\n *\n * @param fileName\n * @param fileType\n */\n startRecord(fileName, fileType) {\n if (this.recording) {\n return;\n }\n\n this.recorder.setFileName(fileName, fileType);\n this.recording = true;\n }\n\n /**\n *\n */\n stopRecordAndSave() {\n if (this.recording) {\n this.recording = false;\n }\n }\n\n _hasControl() {\n let result = false;\n\n let hasBtnShow = false;\n Object.keys(this._opt.operateBtns).forEach((key) => {\n if (this._opt.operateBtns[key]) {\n hasBtnShow = true;\n }\n });\n\n if (this._opt.showBandwidth || this._opt.text || hasBtnShow) {\n result = true;\n }\n\n return result;\n }\n\n _onlyMseOrWcsVideo() {\n return this._opt.hasAudio === false && (this._opt.useMSE || (this._opt.useWCS && !this._opt.useOffscreen))\n }\n\n checkHeart() {\n this.clearCheckHeartTimeout();\n this.checkHeartTimeout();\n }\n\n // 心跳检查,如果渲染间隔暂停了多少时间之后,就会抛出异常\n checkHeartTimeout() {\n this._checkHeartTimeout = setTimeout(() => {\n if (this.playing) {\n // check again\n if (this._stats.fps !== 0) {\n return;\n }\n this.pause().then(() => {\n this.emit(EVENTS.timeout, EVENTS.delayTimeout);\n this.emit(EVENTS.delayTimeout);\n });\n }\n\n }, this._opt.heartTimeout * 1000)\n }\n\n checkStatsInterval() {\n this._checkStatsInterval = setInterval(() => {\n this.updateStats();\n }, 1000)\n }\n\n //\n clearCheckHeartTimeout() {\n if (this._checkHeartTimeout) {\n clearTimeout(this._checkHeartTimeout);\n this._checkHeartTimeout = null;\n }\n }\n\n // loading 等待时间\n checkLoadingTimeout() {\n this._checkLoadingTimeout = setTimeout(() => {\n // check again\n if (this.playing) {\n return;\n }\n this.pause().then(() => {\n this.emit(EVENTS.timeout, EVENTS.loadingTimeout);\n this.emit(EVENTS.loadingTimeout);\n });\n }, this._opt.loadingTimeout * 1000)\n }\n\n clearCheckLoadingTimeout() {\n if (this._checkLoadingTimeout) {\n clearTimeout(this._checkLoadingTimeout);\n this._checkLoadingTimeout = null;\n }\n }\n\n clearStatsInterval() {\n if (this._checkStatsInterval) {\n clearInterval(this._checkStatsInterval);\n this._checkStatsInterval = null;\n }\n }\n\n handleRender() {\n if (this.loading) {\n this.emit(EVENTS.start);\n this.loading = false;\n this.clearCheckLoadingTimeout();\n }\n if (!this.playing) {\n this.playing = true;\n }\n this.checkHeart();\n }\n\n\n //\n updateStats(options) {\n options = options || {};\n\n if (!this._startBpsTime) {\n this._startBpsTime = now();\n }\n\n if (isNotEmpty(options.ts)) {\n this._stats.ts = options.ts;\n }\n\n if (isNotEmpty(options.buf)) {\n this._stats.buf = options.buf;\n }\n\n if (options.fps) {\n this._stats.fps += 1;\n }\n if (options.abps) {\n this._stats.abps += options.abps;\n }\n if (options.vbps) {\n this._stats.vbps += options.vbps;\n }\n\n const _nowTime = now();\n const timestamp = _nowTime - this._startBpsTime;\n\n if (timestamp < 1 * 1000) {\n return;\n }\n\n this.emit(EVENTS.stats, this._stats);\n this.emit(EVENTS.performance, fpsStatus(this._stats.fps));\n this._stats.fps = 0;\n this._stats.abps = 0;\n this._stats.vbps = 0;\n this._startBpsTime = _nowTime;\n }\n\n resetStats() {\n this._startBpsTime = null;\n this._stats = {\n buf: 0, //ms\n fps: 0,\n abps: 0,\n vbps: 0,\n ts: 0\n }\n }\n\n enableWakeLock() {\n if (this._opt.keepScreenOn) {\n this.keepScreenOn && this.keepScreenOn.enable();\n }\n }\n\n releaseWakeLock() {\n if (this._opt.keepScreenOn) {\n this.keepScreenOn && this.keepScreenOn.disable();\n }\n }\n\n handlePlayToRenderTimes() {\n const _times = this._times;\n _times.playTimestamp = _times.playStart - _times.playInitStart;\n _times.streamTimestamp = _times.streamStart - _times.playStart;\n _times.streamResponseTimestamp = _times.streamResponse - _times.streamStart;\n _times.demuxTimestamp = _times.demuxStart - _times.streamResponse;\n _times.decodeTimestamp = _times.decodeStart - _times.demuxStart;\n _times.videoTimestamp = _times.videoStart - _times.decodeStart;\n _times.allTimestamp = _times.videoStart - _times.playInitStart;\n this.emit(EVENTS.playToRenderTimes, _times);\n }\n\n getOption() {\n return this._opt;\n }\n\n emitError(errorType, message = '') {\n this.emit(EVENTS.error, errorType, message);\n this.emit(errorType, message);\n }\n\n isControlBarShow() {\n const hasControl = this._opt.hasControl;\n const controlAutoHide = this._opt.controlAutoHide;\n\n let result = hasControl && !controlAutoHide;\n\n if (result) {\n if (this.control) {\n result = this.control.getBarIsShow();\n }\n }\n\n return result;\n }\n\n getControlBarShow(){\n let result = false;\n if (this.control) {\n result = this.control.getBarIsShow();\n }\n return result;\n }\n\n toggleControlBar(isShow) {\n if (this.control) {\n this.control.toggleBar(isShow);\n this.resize();\n }\n }\n}\n","import Player from './player';\nimport Events from \"./utils/events\";\nimport {\n CONTAINER_DATA_SET_KEY,\n DEMUX_TYPE,\n EVENTS,\n EVENTS_ERROR,\n JESSIBUCA_EVENTS,\n PLAYER_PLAY_PROTOCOL,\n SCALE_MODE_TYPE,\n VERSION\n} from \"./constant\";\nimport {\n getElementDataset,\n isEmpty,\n isMobile,\n isNotEmpty,\n removeElementDataset,\n setElementDataset,\n supportWCS,\n uuid16\n} from \"./utils\";\nimport Emitter from \"./utils/emitter\";\nimport Debug from \"./utils/debug\";\n\n\nclass Jessibuca extends Emitter {\n static ERROR = EVENTS_ERROR\n\n static TIMEOUT = {\n loadingTimeout: EVENTS.loadingTimeout,\n delayTimeout: EVENTS.delayTimeout,\n }\n\n constructor(options) {\n super()\n let _opt = options;\n let $container = options.container;\n if (typeof options.container === 'string') {\n $container = document.querySelector(options.container);\n }\n if (!$container) {\n throw new Error('Jessibuca need container option');\n return;\n }\n // check container node name\n if ($container.nodeName === 'CANVAS' || $container.nodeName === 'VIDEO') {\n throw new Error(`Jessibuca container type can not be ${$container.nodeName} type`);\n return;\n }\n\n if (_opt.videoBuffer >= _opt.heartTimeout) {\n throw new Error(`Jessibuca videoBuffer ${_opt.videoBuffer}s must be less than heartTimeout ${_opt.heartTimeout}s`);\n return;\n }\n\n\n if (this._checkHasCreated($container)) {\n throw new Error(`Jessibuca container has been created and can not be created again`, $container);\n return;\n }\n\n // videoBuffer set too long\n if (_opt.videoBuffer > 10) {\n console.warn('Jessibuca', `videoBuffer ${_opt.videoBuffer}s is too long, will black screen for ${_opt.videoBuffer}s , it is recommended to set it to less than 10s`);\n }\n\n if (!$container.classList) {\n throw new Error('Jessibuca container option must be DOM Element');\n return;\n }\n\n $container.classList.add('jessibuca-container');\n setElementDataset($container, CONTAINER_DATA_SET_KEY, uuid16());\n\n delete _opt.container;\n\n // 禁用离屏渲染\n _opt.forceNoOffscreen = true;\n\n // 移动端不支持自动关闭控制栏\n if (isMobile()) {\n _opt.controlAutoHide = false;\n }\n\n // s -> ms\n if (isNotEmpty(_opt.videoBuffer)) {\n _opt.videoBuffer = Number(_opt.videoBuffer) * 1000\n }\n\n // setting\n if (isNotEmpty(_opt.timeout)) {\n if (isEmpty(_opt.loadingTimeout)) {\n _opt.loadingTimeout = _opt.timeout;\n }\n\n if (isEmpty(_opt.heartTimeout)) {\n _opt.heartTimeout = _opt.timeout\n }\n }\n\n this._opt = _opt;\n this.$container = $container;\n this._loadingTimeoutReplayTimes = 0;\n this._heartTimeoutReplayTimes = 0;\n this._destroyed = false;\n this.events = new Events(this);\n this.debug = new Debug(this);\n this._initPlayer($container, _opt);\n console.log(`Jessibuca version: ${VERSION}`);\n }\n\n /**\n *\n */\n async destroy() {\n this._destroyed = true;\n if (this.events) {\n this.events.destroy();\n this.events = null;\n }\n\n if (this.player) {\n await this.player.destroy();\n this.player = null;\n }\n if (this.$container) {\n this.$container.classList.remove('jessibuca-container');\n this.$container.classList.remove('jessibuca-fullscreen-web');\n removeElementDataset(this.$container, CONTAINER_DATA_SET_KEY);\n this.$container = null;\n }\n\n this._opt = null;\n this._loadingTimeoutReplayTimes = 0;\n this._heartTimeoutReplayTimes = 0;\n this.off();\n }\n\n _initPlayer($container, options) {\n this.player = new Player($container, options);\n try {\n this.debug.log('jessibuca', '_initPlayer', JSON.stringify(this.player.getOption()))\n } catch (e) {\n // ignore\n }\n this._bindEvents();\n }\n\n _resetPlayer(options = {}) {\n this.player.destroy();\n this.player = null;\n this._opt = Object.assign(this._opt, options);\n this._opt.url = '';// reset url\n this._initPlayer(this.$container, this._opt);\n }\n\n _bindEvents() {\n // 对外的事件\n Object.keys(JESSIBUCA_EVENTS).forEach((key) => {\n this.player.on(JESSIBUCA_EVENTS[key], (value) => {\n this.emit(key, value)\n })\n })\n }\n\n /**\n * 是否销毁\n * @returns {boolean}\n */\n isDestroyed() {\n return this._destroyed;\n }\n\n /**\n * 是否开启控制台调试打印\n * @param value {Boolean}\n */\n setDebug(value) {\n this.player.updateOption({\n debug: !!value\n })\n }\n\n /**\n *\n */\n mute() {\n this.player.mute(true);\n }\n\n /**\n *\n */\n cancelMute() {\n this.player.mute(false);\n }\n\n /**\n *\n * @param value {number}\n */\n setVolume(value) {\n this.player.volume = value;\n }\n\n /**\n *\n */\n audioResume() {\n this.player.audio && this.player.audio.audioEnabled(true);\n }\n\n /**\n * 设置超时时长, 单位秒 在连接成功之前和播放中途,如果超过设定时长无数据返回,则回调timeout事件\n * @param value {number}\n */\n setTimeout(time) {\n time = Number(time);\n this.player.updateOption({\n timeout: time,\n loadingTimeout: time,\n heartTimeout: time\n })\n }\n\n /**\n *\n * @param type {number}: 0,1,2\n */\n setScaleMode(type) {\n type = Number(type);\n let options = {\n isFullResize: false,\n isResize: false\n }\n switch (type) {\n case SCALE_MODE_TYPE.full:\n options.isFullResize = false;\n options.isResize = false;\n break;\n case SCALE_MODE_TYPE.auto:\n options.isFullResize = false;\n options.isResize = true;\n break;\n case SCALE_MODE_TYPE.fullAuto:\n options.isFullResize = true;\n options.isResize = true;\n break;\n }\n\n this.player.updateOption(options);\n this.resize();\n }\n\n /**\n *\n * @returns {Promise}\n */\n pause() {\n return new Promise((resolve, reject) => {\n if (this.player) {\n this.player.pause().then(() => {\n resolve();\n }).catch((e) => {\n reject(e)\n });\n } else {\n reject('player is null')\n }\n })\n }\n\n /**\n *\n */\n async close() {\n await this.destroy();\n return true;\n }\n\n\n /**\n *\n */\n clearView() {\n this.player.video.clearView()\n }\n\n /**\n *\n * @param url {string}\n * @param options {object}\n * @returns {Promise}\n */\n play(url, options = {}) {\n return new Promise((resolve, reject) => {\n if (!url && !this._opt.url) {\n this.emit(EVENTS.error, EVENTS_ERROR.playError)\n reject('play url is empty')\n return;\n }\n\n if (url) {\n // url 相等的时候。\n if (this._opt.url) {\n // 存在相同的 url\n if (url === this._opt.url) {\n // 正在播放\n if (this.player.playing) {\n resolve();\n } else {\n // pause -> play\n this.clearView();\n this.player.play(this._opt.url, this._opt.playOptions).then(() => {\n resolve();\n // 恢复下之前的音量\n this.player.resumeAudioAfterPause();\n }).catch((e) => {\n this.debug.warn('jessibuca', 'pause -> play and play error', e)\n this.player.pause().then(() => {\n reject(e);\n })\n })\n }\n } else {\n // url 发生改变了\n this.player.pause().then(() => {\n // 清除 画面\n this.clearView();\n this._play(url, options).then(() => {\n resolve()\n }).catch((e) => {\n this.debug.warn('jessibuca', 'this._play error', e)\n reject(e)\n });\n }).catch((e) => {\n this.debug.warn('jessibuca', 'this._opt.url is null and pause error', e)\n reject(e);\n })\n }\n } else {\n this._play(url, options).then(() => {\n resolve()\n }).catch((e) => {\n this.debug.warn('jessibuca', 'this._play error', e)\n reject(e)\n });\n }\n } else {\n // url 不存在的时候\n // 就是从 play -> pause -> play\n this.player.play(this._opt.url, this._opt.playOptions).then(() => {\n resolve();\n // 恢复下之前的音量\n this.player.resumeAudioAfterPause();\n }).catch((e) => {\n this.debug.warn('jessibuca', 'url is null and play error', e)\n this.player.pause().then(() => {\n reject(e);\n })\n })\n }\n })\n }\n\n /**\n *\n * @param url {string}\n * @param options {object}\n * @returns {Promise}\n * @private\n */\n _play(url, options = {}) {\n return new Promise((resolve, reject) => {\n this._opt.url = url;\n this._opt.playOptions = options;\n // 新的url\n const isHttp = url.indexOf(\"http\") === 0;\n //\n const protocol = isHttp ? PLAYER_PLAY_PROTOCOL.fetch : PLAYER_PLAY_PROTOCOL.websocket\n //\n const demuxType = (isHttp || url.indexOf(\".flv\") !== -1 || this._opt.isFlv) ? DEMUX_TYPE.flv : DEMUX_TYPE.m7s;\n\n this.player.updateOption({\n protocol,\n demuxType\n })\n\n this.player.once(EVENTS_ERROR.webglAlignmentError, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'webglAlignmentError')\n this._resetPlayer({openWebglAlignment: true})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'webglAlignmentError and play success')\n }).catch(() => {\n // reject();\n this.debug.log('Jessibuca', 'webglAlignmentError and play error')\n });\n });\n })\n\n\n this.player.once(EVENTS_ERROR.mediaSourceH265NotSupport, () => {\n this.pause().then(() => {\n if (this.player._opt.autoWasm) {\n this.debug.log('Jessibuca', 'auto wasm [mse-> wasm] reset player and play')\n this._resetPlayer({useMSE: false})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'auto wasm [mse-> wasm] reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.log('Jessibuca', 'auto wasm [mse-> wasm] reset player and play error')\n });\n } else {\n this.debug.log('Jessibuca', 'media source h265 not support and paused');\n }\n });\n })\n\n // media source full error\n this.player.once(EVENTS_ERROR.mediaSourceFull, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'media source full');\n this._resetPlayer()\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'media source full and reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'media source full and reset player and play error')\n });\n })\n })\n // media source append buffer error\n this.player.once(EVENTS_ERROR.mediaSourceAppendBufferError, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'media source append buffer error');\n this._resetPlayer()\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'media source append buffer error and reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'media source append buffer error and reset player and play error')\n });\n })\n })\n\n this.player.once(EVENTS_ERROR.mediaSourceBufferListLarge, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'media source buffer list large');\n this._resetPlayer()\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'media source buffer list large and reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'media source buffer list large and reset player and play error')\n });\n })\n })\n\n this.player.once(EVENTS_ERROR.mediaSourceAppendBufferEndTimeout, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'media source append buffer end timeout');\n this._resetPlayer()\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'media source append buffer end timeout and reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'media source append buffer end timeout and reset player and play error')\n });\n })\n })\n\n this.player.once(EVENTS_ERROR.mseSourceBufferError, () => {\n this.pause().then(() => {\n if (this.player._opt.autoWasm) {\n this.debug.log('Jessibuca', 'auto wasm [mse-> wasm] reset player and play')\n this._resetPlayer({useMSE: false})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'auto wasm [mse-> wasm] reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'auto wasm [mse-> wasm] reset player and play error')\n });\n } else {\n this.debug.log('Jessibuca', 'mse source buffer error and paused');\n }\n })\n })\n //\n this.player.once(EVENTS_ERROR.webcodecsH265NotSupport, () => {\n this.pause().then(() => {\n if (this.player._opt.autoWasm) {\n this.debug.log('Jessibuca', 'auto wasm [wcs-> wasm] reset player and play')\n this._resetPlayer({useWCS: false})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'auto wasm [wcs-> wasm] reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'auto wasm [wcs-> wasm] reset player and play error')\n });\n } else {\n this.debug.log('Jessibuca', 'webcodecs h265 not support and paused');\n }\n });\n })\n // webcodecs\n this.player.once(EVENTS_ERROR.webcodecsWidthOrHeightChange, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'webcodecs Width Or Height Change reset player and play')\n this._resetPlayer({useWCS: true})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'webcodecs Width Or Height Change reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'webcodecs Width Or Height Change reset player and play error')\n });\n });\n })\n // webcodecs\n this.player.once(EVENTS_ERROR.webcodecsDecodeError, () => {\n this.pause().then(() => {\n if (this.player._opt.autoWasm) {\n this.debug.log('Jessibuca', 'webcodecs decode error reset player and play')\n this._resetPlayer({useWCS: false})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'webcodecs decode error reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'webcodecs decode error reset player and play error')\n });\n } else {\n this.debug.log('Jessibuca', 'webcodecs decode error and paused');\n }\n });\n })\n // webcodecs\n this.player.once(EVENTS_ERROR.webcodecsConfigureError, () => {\n this.pause().then(() => {\n if (this.player._opt.autoWasm) {\n this.debug.log('Jessibuca', 'webcodecs Configure error reset player and play')\n this._resetPlayer({useWCS: false})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'webcodecs Configure error reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'webcodecs Configure error reset player and play error')\n });\n } else {\n this.debug.log('Jessibuca', 'webcodecs Configure error and paused');\n }\n });\n })\n // wasm。\n this.player.once(EVENTS_ERROR.wasmDecodeError, () => {\n if (this.player._opt.wasmDecodeErrorReplay) {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'wasm decode error and reset player and play')\n this._resetPlayer({useWCS: false})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'wasm decode error and reset player and play success')\n }).catch((e) => {\n // reject();\n this.debug.warn('Jessibuca', 'wasm decode error and reset player and play error')\n });\n })\n } else {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'wasm decode error and paused');\n }).catch((e) => {\n this.debug.warn('Jessibuca', 'wasm decode error and paused error', e)\n })\n }\n })\n // fetch error\n this.player.once(EVENTS_ERROR.fetchError, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'fetch error and pause play')\n }).catch((e) => {\n this.debug.warn('Jessibuca', 'fetch error and pause play error', e)\n })\n })\n\n //\n this.player.once(EVENTS_ERROR.websocketError, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'websocket Error and pause play')\n }).catch((e) => {\n this.debug.warn('Jessibuca', 'websocket Error and pause play error', e)\n })\n })\n\n //\n this.player.once(EVENTS.streamEnd, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'stream End and pause play')\n }).catch((e) => {\n this.debug.warn('Jessibuca', 'stream End and pause play error', e)\n })\n })\n\n // 监听 delay timeout\n this.player.on(EVENTS.delayTimeout, () => {\n if (this.player._opt.heartTimeoutReplay &&\n (this._heartTimeoutReplayTimes < this.player._opt.heartTimeoutReplayTimes || this.player._opt.heartTimeoutReplayTimes === -1)) {\n this.debug.log('Jessibuca', `delay timeout replay time is ${this._heartTimeoutReplayTimes}`)\n this._heartTimeoutReplayTimes += 1;\n this.play(url, options).then(() => {\n // resolve();\n this._heartTimeoutReplayTimes = 0;\n }).catch(() => {\n // reject();\n });\n }\n })\n\n // 监听 loading timeout\n this.player.on(EVENTS.loadingTimeout, () => {\n if (this.player._opt.loadingTimeoutReplay &&\n (this._loadingTimeoutReplayTimes < this.player._opt.loadingTimeoutReplayTimes || this.player._opt.loadingTimeoutReplayTimes === -1)) {\n this.debug.log('Jessibuca', `loading timeout replay time is ${this._loadingTimeoutReplayTimes}`)\n this._loadingTimeoutReplayTimes += 1;\n this.play(url, options).then(() => {\n // resolve();\n this._loadingTimeoutReplayTimes = 0;\n }).catch(() => {\n // reject();\n });\n }\n })\n\n\n if (this.hasLoaded()) {\n this.player.play(url, options).then(() => {\n resolve();\n }).catch((e) => {\n this.debug.warn('Jessibuca', 'hasLoaded and play error', e)\n this.player && this.player.pause().then(() => {\n reject(e);\n })\n })\n } else {\n this.player.once(EVENTS.decoderWorkerInit, () => {\n this.player.play(url, options).then(() => {\n resolve();\n }).catch((e) => {\n this.debug.warn('Jessibuca', 'decoderWorkerInit and play error', e)\n this.player && this.player.pause().then(() => {\n reject(e);\n })\n })\n })\n }\n })\n }\n\n\n /**\n *\n */\n resize() {\n this.player.resize();\n }\n\n /**\n *\n * @param time {number} s\n */\n setBufferTime(time) {\n time = Number(time)\n // s -> ms\n this.player.updateOption({\n videoBuffer: time * 1000\n })\n // update worker config\n this.player.decoderWorker && this.player.decoderWorker.updateWorkConfig({\n key: 'videoBuffer',\n value: time * 1000\n })\n }\n\n /**\n *\n * @param deg {number}\n */\n setRotate(deg) {\n deg = parseInt(deg, 10)\n const list = [0, 90, 180, 270];\n if (this._opt.rotate === deg || list.indexOf(deg) === -1) {\n return;\n }\n this.player.updateOption({\n rotate: deg\n })\n this.resize();\n }\n\n /**\n *\n * @returns {boolean}\n */\n hasLoaded() {\n return this.player.loaded;\n }\n\n /**\n *\n */\n setKeepScreenOn() {\n this.player.updateOption({\n keepScreenOn: true\n })\n }\n\n /**\n *\n * @param flag {Boolean}\n */\n setFullscreen(flag) {\n const fullscreen = !!flag;\n if (this.player.fullscreen !== fullscreen) {\n this.player.fullscreen = fullscreen;\n }\n }\n\n /**\n *\n * @param filename {string}\n * @param format {string}\n * @param quality {number}\n * @param type {string} download,base64,blob\n */\n screenshot(filename, format, quality, type) {\n\n if (!this.player.video) {\n return ''\n }\n\n return this.player.video.screenshot(filename, format, quality, type)\n }\n\n /**\n *\n * @param fileName {string}\n * @param fileType {string}\n * @returns {Promise}\n */\n startRecord(fileName, fileType) {\n return new Promise((resolve, reject) => {\n if (this.player.playing) {\n this.player.startRecord(fileName, fileType)\n resolve();\n } else {\n reject();\n }\n })\n }\n\n stopRecordAndSave() {\n if (this.player.recording) {\n this.player.stopRecordAndSave();\n }\n }\n\n /**\n *\n * @returns {Boolean}\n */\n isPlaying() {\n return this.player ? this.player.playing : false;\n }\n\n /**\n * 是否静音状态\n * @returns {Boolean}\n */\n isMute() {\n return this.player.audio ? this.player.audio.isMute : true;\n }\n\n /**\n * 是否在录制视频\n * @returns {*}\n */\n isRecording() {\n return this.player.recorder.recording;\n }\n\n _checkHasCreated(element) {\n if (!element) return false;\n const gbProV = getElementDataset(element, CONTAINER_DATA_SET_KEY);\n if (gbProV) {\n return true;\n }\n return false;\n }\n\n\n toggleControlBar(isShow) {\n if (this.isDestroyed()) {\n return;\n }\n\n if (this.player) {\n this.player.toggleControlBar(isShow);\n }\n }\n\n getControlBarShow() {\n if (this.isDestroyed()) {\n return false;\n }\n let result = false;\n if (this.player) {\n result = this.player.getControlBarShow();\n }\n return result;\n }\n\n}\n\n\nwindow.Jessibuca = Jessibuca;\n\nexport default Jessibuca;\n\n"],"names":["PLAYER_PLAY_PROTOCOL","websocket","fetch","webrtc","DEMUX_TYPE","flv","m7s","FILE_SUFFIX","mp4","webm","CONTAINER_DATA_SET_KEY","VERSION","DEFAULT_PLAYER_OPTIONS","videoBuffer","videoBufferDelay","isResize","isFullResize","isFlv","debug","hotKey","loadingTimeout","heartTimeout","timeout","loadingTimeoutReplay","heartTimeoutReplay","loadingTimeoutReplayTimes","heartTimeoutReplayTimes","supportDblclickFullscreen","showBandwidth","keepScreenOn","isNotMute","hasAudio","hasVideo","operateBtns","fullscreen","screenshot","play","audio","record","controlAutoHide","hasControl","loadingText","background","decoder","url","rotate","forceNoOffscreen","hiddenAutoPause","protocol","demuxType","useWCS","wcsUseVideoRender","useMSE","useOffscreen","autoWasm","wasmDecodeErrorReplay","openWebglAlignment","wasmDecodeAudioSyncVideo","recordType","useWebFullScreen","WORKER_CMD_TYPE","init","initVideo","render","playAudio","initAudio","kBps","decode","audioCode","videoCode","wasmError","WASM_ERROR","invalidNalUnitSize","MEDIA_TYPE","video","FLV_MEDIA_TYPE","WORKER_SEND_TYPE","audioDecode","videoDecode","close","updateConfig","EVENTS","webFullscreen","decoderWorkerInit","playing","pause","mute","load","loading","videoInfo","timeUpdate","audioInfo","log","error","delayTimeout","stats","performance","recording","recordingTimestamp","recordStart","recordEnd","recordCreateError","buffer","videoFrame","start","metadata","resize","streamEnd","streamSuccess","streamMessage","streamError","volumechange","volume","destroy","mseSourceOpen","mseSourceClose","mseSourceBufferError","mseSourceBufferBusy","mseSourceBufferFull","videoWaiting","videoTimeUpdate","videoSyncAudio","playToRenderTimes","JESSIBUCA_EVENTS","EVENTS_ERROR","playError","fetchError","websocketError","webcodecsH265NotSupport","webcodecsConfigureError","webcodecsDecodeError","webcodecsWidthOrHeightChange","mediaSourceH265NotSupport","mediaSourceFull","mediaSourceAppendBufferError","mediaSourceBufferListLarge","mediaSourceAppendBufferEndTimeout","wasmDecodeError","webglAlignmentError","WEBSOCKET_STATUS","notConnect","open","SCREENSHOT_TYPE","download","base64","blob","VIDEO_ENC_TYPE","VIDEO_ENC_CODE","h264","h265","AUDIO_ENC_TYPE","CONTROL_HEIGHT","SCALE_MODE_TYPE","full","auto","fullAuto","CANVAS_RENDER_TYPE","webcodecs","webgl","offscreen","ENCODED_VIDEO_TYPE","key","delta","MP4_CODECS","avc","hev","MEDIA_SOURCE_STATE","ended","closed","AUDIO_SYNC_VIDEO_DIFF","HOT_KEY","esc","arrowUp","arrowDown","WCS_ERROR","keyframeIsRequiredError","canNotDecodeClosedCodec","FETCH_ERROR","abortError1","abortError2","abort","FRAME_HEADER_EX","PACKET_TYPE_EX","PACKET_TYPE_SEQ_START","PACKET_TYPE_FRAMES","PACKET_TYPE_FRAMESX","FRAME_TYPE_EX","FT_KEY","FT_INTER","Debug","constructor","master","name","_opt","args","console","warn","Events","destroys","proxy","bind","target","callback","option","Array","isArray","map","item","addEventListener","removeEventListener","push","forEach","event","player","Object","defineProperty","get","clientRect","$container","getBoundingClientRect","width","Math","max","clientWidth","height","clientHeight","rect","noop","supportOffscreen","$canvas","transferControlToOffscreen","supportOffscreenV2","OffscreenCanvas","createContextGL","gl","validContextNames","nameIndex","length","contextName","contextOptions","preserveDrawingBuffer","getContext","e","getParameter","dataURLToFile","dataURL","arr","split","bstr","atob","type","replace","n","u8arr","Uint8Array","charCodeAt","File","now","Date","getTime","WebAssembly","instantiate","module","Module","of","Instance","clamp","num","a","b","min","setStyle","element","value","keys","style","getStyle","numberType","getComputedStyle","getPropertyValue","parseFloat","getNowTime","calculationRate","totalSize","lastTime","size","thisTime","diffTime","isMobile","test","window","navigator","userAgent","toLowerCase","isPad","isAndroid","UA","supportWCS","uuid16","c","r","random","v","toString","formatVideoDecoderConfigure","avcC","codecArray","subarray","codecString","j","h","codec","description","isFullScreen","screenfull","isFullscreen","bpsSize","parseInt","isNaN","toFixed","fpsStatus","fps","result","createEmptyImageBitmap","$canvasElement","document","createElement","createImageBitmap","supportMSE","MediaSource","isTypeSupported","supportMediaStreamTrack","MediaStreamTrackGenerator","isEmpty","undefined","isBoolean","isNotEmpty","initPlayTimes","playInitStart","playStart","streamStart","streamResponse","demuxStart","decodeStart","videoStart","playTimestamp","streamTimestamp","streamResponseTimestamp","demuxTimestamp","decodeTimestamp","videoTimestamp","allTimestamp","formatTimeTips","time","hour","floor","sec","round","getTarget","srcElement","isWebglRenderSupport","getBrowser","UserAgent","browserInfo","browserArray","IE","ActiveXObject","Chrome","indexOf","Firefox","Opera","Safari","Edge","QQBrowser","WeixinBrowser","i","versions","match","mt","mimeTypes","version","closeVideoFrame","removeElement","parentNode","removeChild","hevcEncoderNalePacketNotLength","oneNALBuffer","isIframe","idrBit","nIdrBit","tmp","arrayBuffer","byteLength","set","isFalse","getElementDataset","dataset","getAttribute","setElementDataset","setAttribute","removeElementDataset","removeAttribute","screenfullChange","emit","on","events","off","loaded","request","then","catch","exit","classList","add","remove","ignoreList","stringList","includes","JSON","stringify","Emitter","fn","ctx","once","self","listener","apply","_","evtArr","slice","data","evts","liveEvents","len","vertexShaderScript","join","fragmentShaderScript","pixelStorei","UNPACK_ALIGNMENT","vertexShader","createShader","VERTEX_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","fragmentShader","FRAGMENT_SHADER","program","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","useProgram","vertexPosBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","Float32Array","STATIC_DRAW","vertexPosRef","getAttribLocation","enableVertexAttribArray","vertexAttribPointer","FLOAT","texturePosBuffer","texturePosRef","_initTexture","index","textureRef","createTexture","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_MAG_FILTER","LINEAR","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","uniform1i","getUniformLocation","yTextureRef","uTextureRef","vTextureRef","w","y","u","viewport","activeTexture","TEXTURE0","texImage2D","LUMINANCE","UNSIGNED_BYTE","TEXTURE1","TEXTURE2","drawArrays","TRIANGLE_STRIP","deleteProgram","deleteBuffer","deleteTexture","CommonLoader","resetInit","encType","encTypeCode","$videoElement","updateVideoInfo","clearView","_global","global","this","bom","opts","autoBom","Blob","String","fromCharCode","xhr","XMLHttpRequest","responseType","onload","saveAs","response","onerror","send","corsEnabled","status","click","node","dispatchEvent","MouseEvent","evt","createEvent","initMouseEvent","isMacOSWebView","HTMLAnchorElement","prototype","URL","webkitURL","createElementNS","rel","href","origin","location","createObjectURL","setTimeout","revokeObjectURL","msSaveOrOpenBlob","popup","title","body","innerText","force","isSafari","HTMLElement","safari","isChromeIOS","FileReader","reader","onloadend","readAsDataURL","CanvasVideoLoader","position","top","left","appendChild","context2D","contextGl","contextGlRender","contextGlDestroy","bitmaprenderer","renderType","_initCanvasRender","_initContextGl","createWebGL","_initContext2D","_supportOffscreen","_bindOffscreen","initCanvasViewSize","msg","ts","transferFromImageBitmap","output","drawImage","filename","format","quality","formatType","png","jpeg","webp","encoderOptions","Number","toDataURL","file","imageBitMap","clear","COLOR_BUFFER_BIT","clearRect","isControlBarShow","resizeWidth","resizeHeight","wScale","hScale","scale","transform","VideoLoader","muted","disablePictureInPicture","poster","_delayPlay","trackGenerator","kind","srcObject","MediaStream","vwriter","writable","getWriter","canvasContext","fixChromeVideoFlashBug","_play","timeStamp","isPlaying","currentTime","src","stop","browser","backdropFilter","translateZ","readyState","_getVideoReadyState","isNow","$video","canvas","videoWidth","videoHeight","write","objectFill","objectFit","paused","Video","Loader","getLoaderFactory","opt","AudioContextLoader","bufferList","scriptNode","hasInitScriptNode","audioContextChannel","audioContext","AudioContext","webkitAudioContext","gainNode","createGain","source","createBufferSource","connect","destination","noteOn","audioBufferSourceNode","mediaStreamAudioDestinationNode","createMediaStreamDestination","audioEnabled","gain","_prevVolume","audioSyncVideoOption","diff","channels","sampleRate","options","closeAudio","onaudioprocess","updateAudioInfo","isMute","bufferSize","initScriptNode","createScriptProcessor","audioProcessingEvent","outputBuffer","bufferItem","shift","audioTimestamp","channel","nowBuffering","getChannelData","flag","setVolume","setValueAtTime","disconnect","state","resume","suspend","isStateRunning","isStateSuspended","Audio","FetchLoader","abortController","AbortController","streamRate","rate","fetchStream","demux","_times","fetchOptions","assign","signal","headers","res","getReader","fetchNext","read","done","dispatch","errorString","WebsocketLoader","socket","socketStatus","wsUrl","_createWebSocket","WebSocket","binaryType","_handleMessage","message","Stream","RecordRTCLoader","fileName","fileType","isRecording","recordingInterval","_reset","setFileName","recordTime","startRecord","mimeType","onTimeStamp","timestamp","disableLogs","stream","captureStream","audioStream","getAudioTracks","audioTrack","enabled","addTrack","recorder","RecordRTC","startRecording","setInterval","stopRecordAndSave","stopRecording","getBlob","clearInterval","Recorder","DecoderWorker","decoderWorker","Worker","_initDecoderWorker","postMessage","cmd","terminate","onmessage","_initWork","code","handleRender","updateStats","buf","delay","handlePlayToRenderTimes","emitError","decodeVideo","isIFrame","decodeAudio","_decodeAudioNoDelay","_decodeAudio","updateWorkConfig","config","stopId","firstTimestamp","startTimestamp","dropping","initInterval","getDelay","localTimestamp","timeTimestamp","resetDelay","_loop","mseDecoder","getSourceBufferUpdating","payload","_doDecoderDecode","_doDecode","cts","pushBuffer","webcodecsDecoder","_decodeEnhancedH265Video","flags","frameTypeEx","packetEx","codecId","ArrayBuffer","tmp32","Uint32Array","isAV1","extraData","payloadBuffer","_isEnhancedH265Header","FlvLoader","input","_inputFlv","flvDemux","dispatchFlvData","tmp8","t","abps","vbps","need","next","combine","remain","return","M7sLoader","dv","DataView","getUint8","getUint32","Demux","ExpGolomb","uint8array","TAG","_buffer","_buffer_index","_total_bytes","_total_bits","_current_word","_current_word_bits_left","_fillCurrentWord","buffer_bytes_left","bytes_read","word","readBits","bits","bits_need_left","bits_read_next","result2","readBool","readByte","_skipLeadingZero","zero_count","readUEG","leading_zeros","readSEG","SPSParser","_ebsp2rbsp","src_length","dst","dst_idx","parseSPS","rbsp","gb","profile_idc","level_idc","profile_string","getProfileString","level_string","getLevelString","chroma_format_idc","chroma_format","chroma_format_table","bit_depth","scaling_list_count","_skipScalingList","pic_order_cnt_type","num_ref_frames_in_pic_order_cnt_cycle","ref_frames","pic_width_in_mbs_minus1","pic_height_in_map_units_minus1","frame_mbs_only_flag","frame_crop_left_offset","frame_crop_right_offset","frame_crop_top_offset","frame_crop_bottom_offset","frame_cropping_flag","sar_width","sar_height","fps_fixed","fps_num","fps_den","vui_parameters_present_flag","aspect_ratio_idc","sar_w_table","sar_h_table","num_units_in_tick","time_scale","sarScale","crop_unit_x","crop_unit_y","sub_wc","sub_hc","codec_width","codec_height","present_width","ceil","chroma_format_string","getChromaFormatString","frame_rate","fixed","sar_ratio","codec_size","present_size","count","last_scale","next_scale","delta_scale","chroma","parseAVCDecoderConfigurationRecord","meta","avcProfile","_naluLengthSize","spsCount","offset","getUint16","sps","codecWidth","codecHeight","presentWidth","presentHeight","profile","level","bitDepth","chromaFormat","sarRatio","frameRate","refSampleDuration","timescale","ppsCount","videoType","WebcodecsDecoder","hasInit","isDecodeFirstIIframe","isInitInfo","initDecoder","_this","VideoDecoder","handleDecode","handleError","codedWidth","codedHeight","videoCodec","configure","chunk","EncodedVideoChunk","isDecodeStateClosed","iconsMap","fullscreenExit","recordStop","reduce","icons","control","insertAdjacentHTML","querySelector","object","display","overflow","pointerEvents","zIndex","playerWidth","playerHeight","contentDocument","defaultView","screenfullH5Control","setVolumeHandle","percentage","$volumeOn","$volumeOff","$volumeHandle","$volumePanel","panelHeight","handleHeight","$volumePanelText","innerHTML","$loading","$poster","$playBig","$fullscreenExit","$fullscreen","$controls","translateX","translateY","$record","$recordStop","$recording","$recordingTime","$play","$pause","$screenshot","$qualityMenu","$volume","$speed","bps","volumeChangeFromEvent","bottom","panelBottom","moveLen","composedPath","isFocus","stopPropagation","resumeAudioAfterPause","$volumePanelWrap","lastVolume","_lastVolume","isVolumeDroging","$recordingStop","startDelayControlHidden","stopDelayControlHidden","delayHiddenTimeout","clearTimeout","addHotkey","tag","activeElement","tagName","toUpperCase","editable","keyCode","preventDefault","Control","template","property","observer","hotkey","autoSize","padding","playerRatio","canvasWidth","canvasHeight","canvasRatio","toggleBar","getBarIsShow","nodeName","visibilityState","_isPlayingBeforePageHidden","enableWakeLock","MP4","types","avc1","hvc1","hvcC","btrt","dinf","dref","esds","ftyp","hdlr","mdat","mdhd","mdia","mfhd","minf","moof","moov","mp4a","mvex","mvhd","sdtp","stbl","stco","stsc","stsd","stsz","stts","tfdt","tfhd","traf","trak","trun","trex","tkhd","vmhd","smhd","hasOwnProperty","constants","FTYP","STSD_PREFIX","STTS","STSC","STCO","STSZ","HDLR_VIDEO","HDLR_AUDIO","DREF","SMHD","VMHD","box","datas","call","arguments","arrayCount","generateInitSegment","duration","trackId","id","xmhd","channelCount","audioSampleRate","configSize","concat","avcc","track","baseMediaDecodeTime","sequenceNumber","isLeading","dependsOn","isDependedOn","hasRedundancy","dataSize","isNonSync","MseDecoder","isAvc","mediaSource","sourceBuffer","cacheTrack","timeInit","mediaSourceOpen","firstRenderTime","mediaSourceAppendBufferFull","isStateOpen","isStateClosed","isStateEnded","_decodeConfigurationRecord","dts","_decodeVideo","metaData","metaBox","appendBuffer","bytes","buffered","removeBuffer","end","mdatBytes","mdatbox","moofbox","isKeyframe","addSourceBuffer","updating","abortSourceBuffer","removeSourceBuffer","endOfStream","dropSourceBuffer","isDropping","WEBM","oldIOS","exec","MSStream","nativeWakeLock","NoSleep","_wakeLock","handleVisibilityChange","enable","noSleepTimer","noSleepVideo","_addSourceToVideo","dataURI","isEnabled","wakeLock","err","disable","hidden","Promise","resolve","playPromise","release","Player","container","_hasControl","_loading","_playing","_hasLoaded","_checkHeartTimeout","_checkLoadingTimeout","_checkStatsInterval","_startBpsTime","_stats","_videoTimestamp","_audioTimestamp","_onlyMseOrWcsVideo","clearCheckHeartTimeout","clearCheckLoadingTimeout","clearStatsInterval","releaseWakeLock","resetStats","updateOption","contains","isDebug","reject","checkLoadingTimeout","checkStatsInterval","_close","hasBtnShow","text","checkHeart","checkHeartTimeout","_nowTime","getOption","errorType","getControlBarShow","toggleControlBar","isShow","Jessibuca","Error","_checkHasCreated","_loadingTimeoutReplayTimes","_heartTimeoutReplayTimes","_destroyed","_initPlayer","_bindEvents","_resetPlayer","isDestroyed","setDebug","cancelMute","audioResume","setScaleMode","playOptions","isHttp","hasLoaded","setBufferTime","setRotate","deg","list","setKeepScreenOn","setFullscreen","gbProV"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"jessibuca.js","sources":["../../node_modules/@babel/runtime/helpers/defineProperty.js","../../src/constant/index.js","../../src/utils/debug.js","../../src/utils/events.js","../../src/player/property.js","../../node_modules/screenfull/dist/screenfull.js","../../src/utils/index.js","../../src/player/events.js","../../src/utils/emitter.js","../../src/utils/webgl.js","../../src/video/commonLoader.js","../../src/utils/file-save.js","../../src/video/canvasLoader.js","../../src/video/videoLoader.js","../../src/video/index.js","../../src/audio/audioContextLoader.js","../../src/audio/index.js","../../src/stream/fetchLoader.js","../../src/stream/websocketLoader.js","../../src/stream/index.js","../../node_modules/recordrtc/RecordRTC.js","../../src/recorder/recordRTCLoader.js","../../src/recorder/index.js","../../src/worker/index.js","../../src/demux/commonLoader.js","../../src/demux/flvLoader.js","../../src/demux/m7sLoader.js","../../src/demux/index.js","../../src/utils/exp-golomb.js","../../src/utils/h264-sps-parser.js","../../src/utils/h264.js","../../src/decoder/webcodecs.js","../../src/control/icons.js","../../src/control/template.js","../../src/control/observer.js","../../src/control/property.js","../../src/control/events.js","../../node_modules/style-inject/dist/style-inject.es.js","../../src/control/hotkey.js","../../src/control/index.js","../../src/player/observer.js","../../src/remux/fmp4-generator.js","../../src/decoder/mediaSource.js","../../src/utils/noSleep.js","../../src/player/index.js","../../src/jessibuca.js"],"sourcesContent":["function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// 播放协议\nexport const PLAYER_PLAY_PROTOCOL = {\n websocket: 0,\n fetch: 1,\n webrtc: 2,\n}\n\nexport const DEMUX_TYPE = {\n flv: 'flv',\n m7s: 'm7s'\n}\n\nexport const FILE_SUFFIX = {\n mp4: 'mp4',\n webm: 'webm'\n};\n\nexport const MEDIA_SOURCE_UPDATE_END_TIMEOUT = 10 * 1000\n\nexport const CONTAINER_DATA_SET_KEY = 'jessibuca'\n\nexport const VERSION = '__VERSION__'\n\n\n// default player options\nexport const DEFAULT_PLAYER_OPTIONS = {\n videoBuffer: 1000, //1000ms 1 second\n videoBufferDelay: 1000,// 1000ms\n isResize: true,\n isFullResize: false, //\n isFlv: false,\n debug: false,\n hotKey: false, // 快捷键\n loadingTimeout: 10, // loading timeout\n heartTimeout: 5, // heart timeout\n timeout: 10, // second\n loadingTimeoutReplay: true, // loading timeout replay. default is true\n heartTimeoutReplay: true,// heart timeout replay.\n loadingTimeoutReplayTimes: 3, // loading timeout replay fail times\n heartTimeoutReplayTimes: 3, // heart timeout replay fail times\n supportDblclickFullscreen: false, // support double click toggle fullscreen\n showBandwidth: false, // show band width\n keepScreenOn: false, //\n isNotMute: false, //\n hasAudio: true, // has audio\n hasVideo: true, // has video\n operateBtns: {\n fullscreen: false,\n screenshot: false,\n play: false,\n audio: false,\n record: false,\n },\n controlAutoHide: false, // control auto hide\n hasControl: false,\n loadingText: '', // loading Text\n background: '',\n decoder: 'decoder.js',\n url: '',// play url\n rotate: 0, //\n // text: '',\n forceNoOffscreen: true, // 默认是不采用\n hiddenAutoPause: false, //\n protocol: PLAYER_PLAY_PROTOCOL.fetch,\n demuxType: DEMUX_TYPE.flv, // demux type\n useWCS: false, //\n wcsUseVideoRender: false,// 默认设置为true\n useMSE: false, //\n useOffscreen: false, //\n autoWasm: true, // 自动降级到 wasm 模式\n wasmDecodeErrorReplay: true, // 解码失败重新播放。\n openWebglAlignment: false,// https://github.com/langhuihui/jessibuca/issues/152\n wasmDecodeAudioSyncVideo: false,// wasm 解码之后音视频同步\n recordType: FILE_SUFFIX.webm,\n useWebFullScreen: false, // use web full screen\n initDecoderWorkerTimeout: 10 //\n}\n\n\nexport const WORKER_CMD_TYPE = {\n init: 'init',\n initVideo: 'initVideo',\n render: 'render',\n playAudio: 'playAudio',\n initAudio: 'initAudio',\n kBps: 'kBps',\n decode: 'decode',\n audioCode: 'audioCode',\n videoCode: 'videoCode',\n wasmError: 'wasmError'\n}\n\nexport const WASM_ERROR = {\n invalidNalUnitSize: 'Invalid NAL unit size',\n // errorSplittingTheInputIntoNALUnits: 'Error splitting the input into NAL units'\n}\n\nexport const MEDIA_TYPE = {\n audio: 1,\n video: 2\n}\n\nexport const FLV_MEDIA_TYPE = {\n audio: 8,\n video: 9\n}\n\nexport const WORKER_SEND_TYPE = {\n init: 'init',\n decode: 'decode',\n audioDecode: 'audioDecode',\n videoDecode: 'videoDecode',\n close: 'close',\n updateConfig: 'updateConfig'\n}\n\n\n//\nexport const EVENTS = {\n fullscreen: 'fullscreen$2',\n webFullscreen: 'webFullscreen',\n decoderWorkerInit: 'decoderWorkerInit',\n play: 'play',\n playing: 'playing',\n pause: 'pause',\n mute: 'mute',\n load: 'load',\n loading: 'loading',\n videoInfo: 'videoInfo',\n timeUpdate: 'timeUpdate',\n audioInfo: \"audioInfo\",\n log: 'log',\n error: \"error\",\n kBps: 'kBps',\n timeout: 'timeout',\n delayTimeout: 'delayTimeout',\n loadingTimeout: 'loadingTimeout',\n stats: 'stats',\n performance: \"performance\",\n record: 'record',\n recording: 'recording',\n recordingTimestamp: 'recordingTimestamp',\n recordStart: 'recordStart',\n recordEnd: 'recordEnd',\n recordCreateError: 'recordCreateError',\n buffer: 'buffer',\n videoFrame: 'videoFrame',\n start: 'start',\n metadata: 'metadata',\n resize: 'resize',\n streamEnd: 'streamEnd',\n streamSuccess: 'streamSuccess',\n streamMessage: 'streamMessage',\n streamError: 'streamError',\n volumechange: 'volumechange',\n volume: 'volume',\n destroy: 'destroy',\n mseSourceOpen: 'mseSourceOpen',\n mseSourceClose: 'mseSourceClose',\n mseSourceBufferError: 'mseSourceBufferError',\n mseSourceBufferBusy: 'mseSourceBufferBusy',\n mseSourceBufferFull: 'mseSourceBufferFull',\n videoWaiting: 'videoWaiting',\n videoTimeUpdate: 'videoTimeUpdate',\n videoSyncAudio: 'videoSyncAudio',\n playToRenderTimes: 'playToRenderTimes'\n}\n\n\nexport const JESSIBUCA_EVENTS = {\n load: EVENTS.load,\n timeUpdate: EVENTS.timeUpdate,\n videoInfo: EVENTS.videoInfo,\n audioInfo: EVENTS.audioInfo,\n error: EVENTS.error,\n kBps: EVENTS.kBps,\n log: EVENTS.log,\n start: EVENTS.start,\n timeout: EVENTS.timeout,\n loadingTimeout: EVENTS.loadingTimeout,\n delayTimeout: EVENTS.delayTimeout,\n fullscreen: 'fullscreen',\n webFullscreen: EVENTS.webFullscreen,\n play: EVENTS.play,\n pause: EVENTS.pause,\n mute: EVENTS.mute,\n stats: EVENTS.stats,\n volumechange: EVENTS.volumechange,\n performance: EVENTS.performance,\n recordingTimestamp: EVENTS.recordingTimestamp,\n recordStart: EVENTS.recordStart,\n recordEnd: EVENTS.recordEnd,\n playToRenderTimes: EVENTS.playToRenderTimes,\n volume: EVENTS.volume\n}\n\nexport const EVENTS_ERROR = {\n playError: 'playIsNotPauseOrUrlIsNull',\n fetchError: \"fetchError\",\n websocketError: 'websocketError',\n webcodecsH265NotSupport: 'webcodecsH265NotSupport',\n webcodecsConfigureError: 'webcodecsConfigureError',\n webcodecsDecodeError: 'webcodecsDecodeError',\n webcodecsWidthOrHeightChange: 'webcodecsWidthOrHeightChange',\n mediaSourceH265NotSupport: 'mediaSourceH265NotSupport',\n mediaSourceFull: EVENTS.mseSourceBufferFull,\n mseSourceBufferError: EVENTS.mseSourceBufferError,\n mediaSourceAppendBufferError: 'mediaSourceAppendBufferError',\n mediaSourceBufferListLarge: 'mediaSourceBufferListLarge',\n mediaSourceAppendBufferEndTimeout: 'mediaSourceAppendBufferEndTimeout',\n wasmDecodeError: 'wasmDecodeError',\n webglAlignmentError: 'webglAlignmentError'\n}\n\n\nexport const WEBSOCKET_STATUS = {\n notConnect: 'notConnect',\n open: 'open',\n close: 'close',\n error: 'error'\n}\n\nexport const BUFFER_STATUS = {\n empty: 'empty',\n buffering: 'buffering',\n full: 'full'\n}\n\n\nexport const SCREENSHOT_TYPE = {\n download: 'download',\n base64: 'base64',\n blob: 'blob'\n}\n\n\nexport const VIDEO_ENC_TYPE = {\n 7: 'H264(AVC)', //\n 12: 'H265(HEVC)' //\n}\n\nexport const VIDEO_ENC_CODE = {\n h264: 7,\n h265: 12\n}\n\n\nexport const AUDIO_ENC_TYPE = {\n 10: 'AAC',\n 7: 'ALAW',\n 8: 'MULAW'\n}\n\nexport const H265_NAL_TYPE = {\n vps: 32,\n sps: 33,\n pps: 34\n}\n\nexport const CONTROL_HEIGHT = 38\n\nexport const SCALE_MODE_TYPE = {\n full: 0, // 视频画面完全填充canvas区域,画面会被拉伸\n auto: 1, // 视频画面做等比缩放后,高或宽对齐canvas区域,画面不被拉伸,但有黑边\n fullAuto: 2 // 视频画面做等比缩放后,完全填充canvas区域,画面不被拉伸,没有黑边,但画面显示不全\n}\n\n\nexport const CANVAS_RENDER_TYPE = {\n webcodecs: 'webcodecs',\n webgl: 'webgl',\n offscreen: 'offscreen'\n}\n\nexport const ENCODED_VIDEO_TYPE = {\n key: 'key',\n delta: 'delta'\n}\n\n\nexport const MP4_CODECS = {\n avc: 'video/mp4; codecs=\"avc1.64002A\"',\n hev: 'video/mp4; codecs=\"hev1.1.6.L123.b0\"',\n}\n\n\nexport const MEDIA_SOURCE_STATE = {\n ended: 'ended',\n open: 'open',\n closed: 'closed'\n}\n\n\n// frag duration\nexport const FRAG_DURATION = Math.ceil(1000 / 25)\n\n\nexport const AUDIO_SYNC_VIDEO_DIFF = 1000;\n\n\nexport const HOT_KEY = {\n esc: 27, //\n arrowUp: 38, //\n arrowDown: 40, //\n}\nexport const WCS_ERROR = {\n keyframeIsRequiredError: 'A key frame is required after configure() or flush()',\n canNotDecodeClosedCodec: \"Cannot call 'decode' on a closed codec\"\n}\n\n\nexport const FETCH_ERROR = {\n abortError1: 'The user aborted a request',\n abortError2: 'AbortError',\n abort: 'AbortError'\n}\n\nexport const FRAME_HEADER_EX = 0x80\n\n\nexport const PACKET_TYPE_EX = {\n PACKET_TYPE_SEQ_START: 0,\n PACKET_TYPE_FRAMES: 1,\n PACKET_TYPE_FRAMESX: 3,\n};\n\n\nexport const FRAME_TYPE_EX = {\n FT_KEY: 0x10,\n FT_INTER: 0x20\n};\n\n\n\n","export default class Debug {\n constructor(master) {\n this.log = (name, ...args) => {\n if (master._opt && master._opt.debug) {\n console.log(`Jb: [${name}]`, ...args);\n }\n };\n\n this.warn = (name, ...args) => {\n if (master._opt && master._opt.debug) {\n console.warn(`Jb: [${name}]`, ...args);\n }\n };\n\n this.error = (name, ...args) => {\n console.error(`Jb: [${name}]`, ...args);\n };\n }\n}\n","export default class Events {\n constructor(master) {\n this.destroys = [];\n this.proxy = this.proxy.bind(this);\n this.master = master;\n }\n\n proxy(target, name, callback, option = {}) {\n if (!target) {\n return;\n }\n if (Array.isArray(name)) {\n return name.map(item => this.proxy(target, item, callback, option));\n }\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroys.push(destroy);\n return destroy;\n }\n\n destroy() {\n this.master.debug && this.master.debug.log(`Events`, 'destroy');\n this.destroys.forEach(event => event());\n }\n}\n","export default (player) => {\n Object.defineProperty(player, 'rect', {\n get: () => {\n const clientRect = player.$container.getBoundingClientRect()\n clientRect.width = Math.max(clientRect.width, player.$container.clientWidth);\n clientRect.height = Math.max(clientRect.height, player.$container.clientHeight);\n return clientRect;\n },\n });\n\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(key => {\n Object.defineProperty(player, key, {\n get: () => {\n return player.rect[key];\n },\n });\n });\n}\n","/*!\n* screenfull\n* v5.1.0 - 2020-12-24\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element, options) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen](options);\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element, options) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element, options);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import {MP4_CODECS, FILE_SUFFIX} from \"../constant\";\nimport screenfull from \"screenfull\";\n\nexport function noop() {\n}\n\n\nexport function supportOffscreen($canvas) {\n return typeof $canvas.transferControlToOffscreen === 'function';\n}\n\n\nexport function supportOffscreenV2() {\n return typeof OffscreenCanvas !== \"undefined\";\n}\n\n\nexport function createContextGL($canvas) {\n let gl = null;\n\n const validContextNames = [\"webgl\", \"experimental-webgl\", \"moz-webgl\", \"webkit-3d\"];\n let nameIndex = 0;\n\n while (!gl && nameIndex < validContextNames.length) {\n const contextName = validContextNames[nameIndex];\n\n try {\n let contextOptions = {preserveDrawingBuffer: true};\n gl = $canvas.getContext(contextName, contextOptions);\n } catch (e) {\n gl = null;\n }\n\n if (!gl || typeof gl.getParameter !== \"function\") {\n gl = null;\n }\n\n ++nameIndex;\n }\n\n\n return gl;\n}\n\n\nexport function audioContextUnlock(context) {\n context.resume();\n const source = context.createBufferSource();\n source.buffer = context.createBuffer(1, 1, 22050);\n source.connect(context.destination);\n if (source.noteOn) {\n source.noteOn(0);\n } else {\n source.start(0);\n }\n}\n\nexport function dataURLToFile(dataURL = '') {\n const arr = dataURL.split(\",\");\n const bstr = atob(arr[1]);\n const type = arr[0].replace(\"data:\", \"\").replace(\";base64\", \"\")\n let n = bstr.length, u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n return new File([u8arr], 'file', {type});\n}\n\nexport function downloadFile(file, fileName) {\n if (file instanceof Blob || file instanceof File) {\n file = new Blob([file]);\n }\n const aLink = document.createElement(\"a\");\n aLink.download = fileName;\n aLink.href = file;\n aLink.click();\n}\n\n\nexport function downloadImg(content, fileName) {\n const aLink = document.createElement(\"a\");\n aLink.download = fileName;\n const href = URL.createObjectURL(content);\n aLink.href = href;\n aLink.click();\n setTimeout(() => {\n URL.revokeObjectURL(href);\n }, isIOS() ? 1000 : 0)\n}\n\nexport function checkFull() {\n let isFull = document.fullscreenElement || window.webkitFullscreenElement || document.msFullscreenElement;\n if (isFull === undefined) isFull = false;\n return !!isFull;\n}\n\nexport function now() {\n return new Date().getTime();\n}\n\nexport const supportedWasm = (() => {\n try {\n if (typeof WebAssembly === \"object\"\n && typeof WebAssembly.instantiate === \"function\") {\n const module = new WebAssembly.Module(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00));\n if (module instanceof WebAssembly.Module)\n return new WebAssembly.Instance(module) instanceof WebAssembly.Instance;\n }\n } catch (e) {\n }\n return false;\n})();\n\nexport function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function setStyle(element, key, value) {\n if (!element) {\n return\n }\n if (typeof key === 'object') {\n Object.keys(key).forEach(item => {\n setStyle(element, item, key[item]);\n });\n }\n element.style[key] = value;\n return element;\n}\n\n\nexport function getStyle(element, key, numberType = true) {\n if (!element) {\n return 0\n }\n\n const value = getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function getNowTime() {\n if (performance && typeof performance.now === 'function') {\n return performance.now();\n }\n return Date.now();\n}\n\nexport function calculationRate(callback) {\n let totalSize = 0;\n let lastTime = getNowTime();\n return size => {\n totalSize += size;\n const thisTime = getNowTime();\n const diffTime = thisTime - lastTime;\n if (diffTime >= 1000) {\n callback((totalSize / diffTime) * 1000);\n lastTime = thisTime;\n totalSize = 0;\n }\n };\n}\n\nexport function downloadRecord(blob, name, suffix) {\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = (name || now()) + '.' + (suffix || FILE_SUFFIX.webm);\n a.click();\n setTimeout(() => {\n window.URL.revokeObjectURL(url);\n }, isIOS() ? 1000 : 0)\n}\n\nexport const env = '__ENV__';\n\nexport function isMobile() {\n return (/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase()));\n}\n\nexport function isPad(){\n return (/ipad|android(?!.*mobile)|tablet|kindle|silk/i.test(window.navigator.userAgent.toLowerCase()));\n}\n\nexport function isAndroid() {\n const UA = window.navigator.userAgent.toLowerCase();\n return (/android/i.test(UA));\n}\n\nexport function isIOS() {\n const UA = window.navigator.userAgent.toLowerCase();\n return UA && /iphone|ipad|ipod|ios/.test(UA);\n}\n\n\nexport function parseTime(time, cFormat) {\n if (arguments.length === 0) {\n return null\n }\n var format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'\n var date;\n if (typeof time === 'object') {\n date = time\n } else {\n if (('' + time).length === 10) time = parseInt(time) * 1000;\n time = +time; // 转成int 型\n date = new Date(time)\n }\n var formatObj = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n };\n var time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {\n var value = formatObj[key]\n if (key === 'a') return ['一', '二', '三', '四', '五', '六', '日'][value - 1]\n if (result.length > 0 && value < 10) {\n value = '0' + value\n }\n return value || 0\n });\n return time_str\n}\n\n// 是否支持 webcodecs\nexport function supportWCS() {\n return \"VideoEncoder\" in window;\n}\n\nexport function toNumber(value) {\n if (typeof value !== 'string') {\n return value;\n } else {\n // 转换成 number 类型\n var parsed = Number(value);\n return isNaN(parsed) ? value : parsed;\n }\n}\n\nexport function uuid16() {\n return 'xxxxxxxxxxxx4xxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8)\n return v.toString(16)\n })\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n\n return fn;\n}\n\n\nexport function isDef(v) {\n return v !== undefined && v !== null;\n}\n\nexport function formatVideoDecoderConfigure(avcC) {\n let codecArray = avcC.subarray(1, 4);\n let codecString = \"avc1.\";\n for (let j = 0; j < 3; j++) {\n let h = codecArray[j].toString(16);\n if (h.length < 2) {\n h = \"0\" + h\n }\n codecString += h\n }\n\n return {\n codec: codecString,\n description: avcC\n }\n}\n\nexport function isFullScreen() {\n return screenfull.isFullscreen\n}\n\nexport function bpsSize(value) {\n if (null == value || value === '' || parseInt(value) === 0 || isNaN(parseInt(value))) {\n return \"0KB/s\";\n }\n let size = parseFloat(value);\n size = size.toFixed(2);\n return size + 'KB/s';\n}\n\n\nexport function fpsStatus(fps) {\n let result = 0;\n if (fps >= 24) {\n result = 2;\n } else if (fps >= 15) {\n result = 1;\n }\n\n return result;\n}\n\nexport function createEmptyImageBitmap(width, height) {\n const $canvasElement = document.createElement(\"canvas\");\n $canvasElement.width = width;\n $canvasElement.height = height;\n return window.createImageBitmap($canvasElement, 0, 0, width, height);\n}\n\n\nexport function supportMSE() {\n return window.MediaSource && window.MediaSource.isTypeSupported(MP4_CODECS.avc);\n}\n\nexport function supportMediaStreamTrack() {\n return window.MediaStreamTrackGenerator && typeof window.MediaStreamTrackGenerator === 'function'\n}\n\n\nexport function formatMp4VideoCodec(codec) {\n return `video/mp4; codecs=\"${codec}\"`\n}\n\n\nexport function saveBlobToFile(fileName, blob) {\n let url = window.URL.createObjectURL(blob);\n let aLink = window.document.createElement('a');\n aLink.download = fileName;\n aLink.href = url;\n //创建内置事件并触发\n let evt = window.document.createEvent('MouseEvents');\n evt.initEvent(\"click\", true, true); //initEvent 不加后两个参数在FF下会报错 事件类型,是否冒泡,是否阻止浏览器的默认行为\n aLink.dispatchEvent(evt);\n setTimeout(() => {\n window.URL.revokeObjectURL(url);\n }, isIOS() ? 1000 : 0)\n}\n\nexport function isEmpty(value) {\n return value === null || value === undefined\n}\n\nexport function isBoolean(value) {\n return value === true || value === false;\n}\n\nexport function isNotEmpty(value) {\n return !isEmpty(value)\n}\n\nexport function initPlayTimes() {\n return {\n playInitStart: '', //1\n playStart: '', // 2\n streamStart: '', //3\n streamResponse: '', // 4\n demuxStart: '', // 5\n decodeStart: '', // 6\n videoStart: '', // 7\n playTimestamp: '',// playStart- playInitStart\n streamTimestamp: '',// streamStart - playStart\n streamResponseTimestamp: '',// streamResponse - streamStart\n demuxTimestamp: '', // demuxStart - streamResponse\n decodeTimestamp: '', // decodeStart - demuxStart\n videoTimestamp: '',// videoStart - decodeStart\n allTimestamp: '' // videoStart - playInitStart\n }\n}\n\n// create watermark\nexport function createWatermark(options) {\n let defaultConfig = {\n container: '',\n left: '',\n right: '',\n top: '',\n bottom: '',\n image: {\n src: '',\n width: '100',\n height: '60',\n },\n text: {\n content: '',\n fontSize: '14',\n color: '#000'\n },\n }\n defaultConfig = Object.assign(defaultConfig, options)\n\n const $container = defaultConfig.container;\n\n if ($container) {\n return\n }\n\n let shadowRoot = null;\n const otDiv = document.createElement('div');\n otDiv.setAttribute('style', 'pointer-events: none !important; display: block !important');\n\n if (typeof otDiv.attachShadow === \"function\") {\n shadowRoot = otDiv.attachShadow({mode: 'open'});\n } else if (otDiv.shadowRoot) {\n shadowRoot = otDiv.shadowRoot;\n } else {\n shadowRoot = otDiv;\n }\n\n const nodeList = $container.children;\n const index = Math.floor(Math.random() * (nodeList.length - 1));\n\n if (nodeList[index]) {\n $container.insertBefore(otDiv, nodeList[index]);\n } else {\n $container.appendChild(otDiv);\n }\n\n\n const maskDiv = document.createElement('div');\n let innerDom = null;\n if (defaultConfig.text && defaultConfig.text.content) {\n innerDom = document.createTextNode(defaultConfig.text);\n } else if (defaultConfig.image && defaultConfig.image.src) {\n innerDom = document.createElement('img')\n innerDom.style.height = '100%'\n innerDom.style.width = '100%'\n innerDom.src = defaultConfig.image.src;\n }\n\n if (!innerDom) {\n return;\n }\n\n maskDiv.appendChild(innerDom);\n\n maskDiv.style.visibility = '';\n maskDiv.style.position = \"absolute\";\n maskDiv.style.display = 'block'\n maskDiv.style['-ms-user-select'] = \"none\";\n maskDiv.style.left = defaultConfig.left;\n maskDiv.style.right = defaultConfig.right;\n maskDiv.style.top = defaultConfig.top;\n maskDiv.style.bottom = defaultConfig.bottom;\n maskDiv.style.overflow = 'hidden';\n maskDiv.style.zIndex = \"9999999\";\n if (defaultConfig.text && defaultConfig.text.content) {\n maskDiv.style.fontSize = defaultConfig.text.fontSize;\n maskDiv.style.color = defaultConfig.text.color;\n } else if (defaultConfig.image && defaultConfig.image.src) {\n maskDiv.style.width = defaultConfig.image.width + 'px';\n maskDiv.style.height = defaultConfig.image.height + 'px';\n }\n\n shadowRoot.appendChild(maskDiv)\n\n // remove function\n return () => {\n $container.removeChild(otDiv);\n }\n}\n\nexport function formatTimeTips(time) {\n var result;\n\n //\n if (time > -1) {\n var hour = Math.floor(time / 3600);\n var min = Math.floor(time / 60) % 60;\n var sec = time % 60;\n\n sec = Math.round(sec);\n\n if (hour < 10) {\n result = '0' + hour + \":\";\n } else {\n result = hour + \":\";\n }\n\n if (min < 10) {\n result += \"0\";\n }\n result += min + \":\";\n if (sec < 10) {\n result += \"0\";\n }\n result += sec.toFixed(0);\n }\n\n return result;\n}\n\nexport function getTarget(e) {\n const event = e || window.event;\n const target = event.target || event.srcElement;\n return target;\n}\n\nexport function isWebglRenderSupport(width) {\n return (width / 2) % 4 === 0\n}\n\nexport function isGreenYUV(arrayBuffer) {\n let zeroNum = 0;\n for (let i = 0; i < 10; i++) {\n let temp = arrayBuffer[i];\n if (temp === 0) {\n zeroNum += 1\n }\n }\n return zeroNum === 10;\n}\n\nexport function getBrowser() {\n const UserAgent = navigator.userAgent.toLowerCase();\n const browserInfo = {};\n const browserArray = {\n IE: window.ActiveXObject || \"ActiveXObject\" in window, // IE\n Chrome: UserAgent.indexOf('chrome') > -1 && UserAgent.indexOf('safari') > -1, // Chrome浏览器\n Firefox: UserAgent.indexOf('firefox') > -1, // 火狐浏览器\n Opera: UserAgent.indexOf('opera') > -1, // Opera浏览器\n Safari: UserAgent.indexOf('safari') > -1 && UserAgent.indexOf('chrome') == -1, // safari浏览器\n Edge: UserAgent.indexOf('edge') > -1, // Edge浏览器\n QQBrowser: /qqbrowser/.test(UserAgent), // qq浏览器\n WeixinBrowser: /MicroMessenger/i.test(UserAgent) // 微信浏览器\n };\n // console.log(browserArray)\n for (let i in browserArray) {\n if (browserArray[i]) {\n let versions = '';\n if (i === 'IE') {\n versions = UserAgent.match(/(msie\\s|trident.*rv:)([\\w.]+)/)[2];\n } else if (i === 'Chrome') {\n for (let mt in navigator.mimeTypes) {\n //检测是否是360浏览器(测试只有pc端的360才起作用)\n if (navigator.mimeTypes[mt]['type'] === 'application/360softmgrplugin') {\n i = '360';\n }\n }\n versions = UserAgent.match(/chrome\\/([\\d.]+)/)[1];\n } else if (i === 'Firefox') {\n versions = UserAgent.match(/firefox\\/([\\d.]+)/)[1];\n } else if (i === 'Opera') {\n versions = UserAgent.match(/opera\\/([\\d.]+)/)[1];\n } else if (i === 'Safari') {\n versions = UserAgent.match(/version\\/([\\d.]+)/)[1];\n } else if (i === 'Edge') {\n versions = UserAgent.match(/edge\\/([\\d.]+)/)[1];\n } else if (i === 'QQBrowser') {\n versions = UserAgent.match(/qqbrowser\\/([\\d.]+)/)[1];\n }\n browserInfo.type = i;\n browserInfo.version = parseInt(versions);\n }\n }\n return browserInfo;\n}\n\n\nexport function closeVideoFrame(videoFrame) {\n if (videoFrame.close) {\n videoFrame.close()\n } else if (videoFrame.destroy) {\n videoFrame.destroy()\n }\n}\n\n\nexport function removeElement(element) {\n let result = false;\n if (element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n result = true;\n }\n }\n return result;\n}\n\nexport function hevcEncoderNalePacketNotLength(oneNALBuffer, isIframe) {\n const idrBit = 0x10 | 12;\n const nIdrBit = 0x20 | 12;\n let tmp = [];\n if (isIframe) {\n tmp[0] = idrBit;\n } else {\n tmp[0] = nIdrBit;\n }\n tmp[1] = 1;\n //\n tmp[2] = 0;\n tmp[3] = 0;\n tmp[4] = 0;\n\n const arrayBuffer = new Uint8Array(tmp.length + oneNALBuffer.byteLength);\n arrayBuffer.set(tmp, 0);\n arrayBuffer.set(oneNALBuffer, tmp.length);\n return arrayBuffer;\n}\n\n\nexport function isTrue(value) {\n return value === true || value === 'true';\n}\n\nexport function isFalse(value) {\n return value !== true && value !== 'true';\n}\n\nexport function getElementDataset(element, key) {\n if (!element) {\n return '';\n }\n\n if (element.dataset) {\n return element.dataset[key];\n }\n return element.getAttribute('data-' + key);\n}\n\nexport function setElementDataset(element, key, value) {\n if (!element) {\n return;\n }\n\n if (element.dataset) {\n element.dataset[key] = value;\n } else {\n element.setAttribute('data-' + key, value);\n }\n}\n\nexport function removeElementDataset(element, key) {\n if (!element) {\n return;\n }\n\n if (element.dataset) {\n delete element.dataset[key];\n } else {\n element.removeAttribute('data-' + key);\n }\n}\n","import {EVENTS, EVENTS_ERROR, JESSIBUCA_EVENTS} from \"../constant\";\nimport screenfull from \"screenfull\";\nimport {getTarget, isMobile, setStyle} from \"../utils\";\n\nexport default (player) => {\n\n\n try {\n const screenfullChange = (e) => {\n if (getTarget(e) === player.$container) {\n player.emit(JESSIBUCA_EVENTS.fullscreen, player.fullscreen)\n\n // 如果不是fullscreen,则触发下 resize 方法\n if (!player.fullscreen) {\n player.resize();\n } else {\n if (player._opt.useMSE) {\n player.resize();\n }\n }\n }\n };\n screenfull.on('change', screenfullChange);\n player.events.destroys.push(() => {\n screenfull.off('change', screenfullChange);\n });\n } catch (error) {\n //\n }\n //\n player.on(EVENTS.decoderWorkerInit, () => {\n player.debug.log('player', 'has loaded');\n player.loaded = true;\n })\n\n //\n player.on(EVENTS.play, () => {\n player.loading = false;\n })\n\n //\n player.on(EVENTS.fullscreen, (value) => {\n if (value) {\n try {\n screenfull.request(player.$container).then(() => {\n\n }).catch((e) => {\n if (isMobile() && player._opt.useWebFullScreen) {\n player.webFullscreen = true;\n }\n });\n\n } catch (e) {\n if (isMobile() && player._opt.useWebFullScreen) {\n player.webFullscreen = true;\n }\n }\n } else {\n try {\n screenfull.exit().then(() => {\n if (player.webFullscreen) {\n player.webFullscreen = false;\n }\n }).catch(() => {\n player.webFullscreen = false;\n\n });\n } catch (e) {\n player.webFullscreen = false;\n }\n }\n })\n\n if (isMobile()) {\n player.on(EVENTS.webFullscreen, (value) => {\n if (value) {\n player.$container.classList.add('jessibuca-fullscreen-web')\n } else {\n player.$container.classList.remove('jessibuca-fullscreen-web')\n }\n //\n player.emit(JESSIBUCA_EVENTS.fullscreen, player.fullscreen)\n })\n }\n\n\n //\n player.on(EVENTS.resize, () => {\n player.video && player.video.resize();\n })\n\n\n if (player._opt.debug) {\n const ignoreList = [EVENTS.timeUpdate];\n const stringList = [\n EVENTS.stats,\n EVENTS.playToRenderTimes,\n EVENTS.audioInfo,\n EVENTS.videoInfo\n ]\n Object.keys(EVENTS).forEach((key) => {\n player.on(EVENTS[key], (value) => {\n if (ignoreList.includes(key)) {\n return;\n }\n\n if (stringList.includes(key)) {\n value = JSON.stringify(value)\n }\n\n player.debug.log('player events', EVENTS[key], value);\n })\n })\n\n Object.keys(EVENTS_ERROR).forEach((key) => {\n player.on(EVENTS_ERROR[key], (value) => {\n player.debug.log('player event error', EVENTS_ERROR[key], value);\n })\n })\n }\n}\n","export default class Emitter {\n on(name, fn, ctx) {\n const e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({fn, ctx});\n return this;\n }\n\n once(name, fn, ctx) {\n const self = this;\n\n function listener(...args) {\n self.off(name, listener);\n fn.apply(ctx, args);\n }\n\n listener._ = fn;\n return this.on(name, listener, ctx);\n }\n\n emit(name, ...data) {\n const evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n for (let i = 0; i < evtArr.length; i += 1) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n return this;\n }\n\n off(name, callback) {\n const e = this.e || (this.e = {});\n\n if (!name) {\n Object.keys(e).forEach((key) => {\n delete e[key];\n })\n delete this.e\n return;\n }\n\n const evts = e[name];\n const liveEvents = [];\n if (evts && callback) {\n for (let i = 0, len = evts.length; i < len; i += 1) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback) liveEvents.push(evts[i]);\n }\n }\n if (liveEvents.length) {\n e[name] = liveEvents;\n } else {\n delete e[name];\n }\n return this;\n }\n}\n","export default (gl, openWebglAlignment) => {\n var vertexShaderScript = [\n 'attribute vec4 vertexPos;',\n 'attribute vec4 texturePos;',\n 'varying vec2 textureCoord;',\n\n 'void main()',\n '{',\n 'gl_Position = vertexPos;',\n 'textureCoord = texturePos.xy;',\n '}'\n ].join('\\n');\n\n var fragmentShaderScript = [\n 'precision highp float;',\n 'varying highp vec2 textureCoord;',\n 'uniform sampler2D ySampler;',\n 'uniform sampler2D uSampler;',\n 'uniform sampler2D vSampler;',\n 'const mat4 YUV2RGB = mat4',\n '(',\n '1.1643828125, 0, 1.59602734375, -.87078515625,',\n '1.1643828125, -.39176171875, -.81296875, .52959375,',\n '1.1643828125, 2.017234375, 0, -1.081390625,',\n '0, 0, 0, 1',\n ');',\n\n 'void main(void) {',\n 'highp float y = texture2D(ySampler, textureCoord).r;',\n 'highp float u = texture2D(uSampler, textureCoord).r;',\n 'highp float v = texture2D(vSampler, textureCoord).r;',\n 'gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;',\n '}'\n ].join('\\n');\n\n if (openWebglAlignment) {\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n }\n var vertexShader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(vertexShader, vertexShaderScript);\n gl.compileShader(vertexShader);\n if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {\n console.log('Vertex shader failed to compile: ' + gl.getShaderInfoLog(vertexShader));\n }\n\n var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n gl.shaderSource(fragmentShader, fragmentShaderScript);\n gl.compileShader(fragmentShader);\n if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n console.log('Fragment shader failed to compile: ' + gl.getShaderInfoLog(fragmentShader));\n }\n\n var program = gl.createProgram();\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n console.log('Program failed to compile: ' + gl.getProgramInfoLog(program));\n }\n\n gl.useProgram(program);\n\n // initBuffers\n var vertexPosBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, vertexPosBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1, 1, -1, 1, 1, -1, -1, -1]), gl.STATIC_DRAW);\n\n var vertexPosRef = gl.getAttribLocation(program, 'vertexPos');\n gl.enableVertexAttribArray(vertexPosRef);\n gl.vertexAttribPointer(vertexPosRef, 2, gl.FLOAT, false, 0, 0);\n\n var texturePosBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texturePosBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1, 0, 0, 0, 1, 1, 0, 1]), gl.STATIC_DRAW);\n\n var texturePosRef = gl.getAttribLocation(program, 'texturePos');\n gl.enableVertexAttribArray(texturePosRef);\n gl.vertexAttribPointer(texturePosRef, 2, gl.FLOAT, false, 0, 0);\n\n function _initTexture(name, index) {\n var textureRef = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, textureRef);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.uniform1i(gl.getUniformLocation(program, name), index);\n return textureRef;\n }\n\n var yTextureRef = _initTexture('ySampler', 0);\n var uTextureRef = _initTexture('uSampler', 1);\n var vTextureRef = _initTexture('vSampler', 2);\n\n return {\n render: function (w, h, y, u, v) {\n gl.viewport(0, 0, w, h);\n gl.activeTexture(gl.TEXTURE0);\n gl.bindTexture(gl.TEXTURE_2D, yTextureRef);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, w, h, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, y);\n gl.activeTexture(gl.TEXTURE1);\n gl.bindTexture(gl.TEXTURE_2D, uTextureRef);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, w / 2, h / 2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, u);\n gl.activeTexture(gl.TEXTURE2);\n gl.bindTexture(gl.TEXTURE_2D, vTextureRef);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, w / 2, h / 2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, v);\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);\n },\n destroy: function () {\n try {\n gl.deleteProgram(program);\n\n gl.deleteBuffer(vertexPosBuffer)\n gl.deleteBuffer(texturePosBuffer);\n\n gl.deleteTexture(yTextureRef);\n gl.deleteTexture(uTextureRef);\n gl.deleteTexture(vTextureRef);\n } catch (e) {\n // console.error(e);\n }\n\n }\n }\n};\n","import Emitter from \"../utils/emitter\";\nimport {CONTROL_HEIGHT, EVENTS, VIDEO_ENC_TYPE} from \"../constant\";\n\nexport default class CommonLoader extends Emitter {\n constructor() {\n super();\n this.init = false;\n }\n\n resetInit() {\n this.init = false;\n this.videoInfo = {\n width: '',\n height: '',\n encType: '',\n encTypeCode: ''\n }\n }\n destroy() {\n this.resetInit();\n this.player.$container.removeChild(this.$videoElement);\n this.off();\n }\n\n //\n updateVideoInfo(data) {\n if (data.encTypeCode) {\n this.videoInfo.encType = VIDEO_ENC_TYPE[data.encTypeCode];\n this.videoInfo.encTypeCode = data.encTypeCode;\n }\n\n if (data.width) {\n this.videoInfo.width = data.width;\n }\n\n if (data.height) {\n this.videoInfo.height = data.height;\n }\n\n // video 基本信息\n if (this.videoInfo.encType && this.videoInfo.height && this.videoInfo.width && !this.init) {\n this.player.emit(EVENTS.videoInfo, this.videoInfo);\n this.init = true;\n }\n }\n\n play() {\n\n }\n\n pause() {\n\n }\n\n clearView() {\n\n }\n}\n","/*\n* FileSaver.js\n* A saveAs() FileSaver implementation.\n*\n* By Eli Grey, http://eligrey.com\n*\n* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n* source : http://purl.eligrey.com/github/FileSaver.js\n*/\n\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nvar _global = typeof window === 'object' && window.window === window\n ? window : typeof self === 'object' && self.self === self\n ? self : typeof global === 'object' && global.global === global\n ? global\n : this\n\nfunction bom(blob, opts) {\n if (typeof opts === 'undefined') opts = {autoBom: false}\n else if (typeof opts !== 'object') {\n console.warn('Deprecated: Expected third argument to be a object')\n opts = {autoBom: !opts}\n }\n\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (opts.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type})\n }\n return blob\n}\n\nfunction download(url, name, opts) {\n var xhr = new XMLHttpRequest()\n xhr.open('GET', url)\n xhr.responseType = 'blob'\n xhr.onload = function () {\n saveAs(xhr.response, name, opts)\n }\n xhr.onerror = function () {\n console.error('could not download file')\n }\n xhr.send()\n}\n\nfunction corsEnabled(url) {\n var xhr = new XMLHttpRequest()\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false)\n try {\n xhr.send()\n } catch (e) {\n }\n return xhr.status >= 200 && xhr.status <= 299\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent('click'))\n } catch (e) {\n var evt = document.createEvent('MouseEvents')\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,\n 20, false, false, false, false, 0, null)\n node.dispatchEvent(evt)\n }\n}\n\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nvar isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent)\n\nvar saveAs = (\n // probably in some web worker\n (typeof window !== 'object' || window !== _global)\n ? function saveAs() { /* noop */\n }\n\n // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView\n : ('download' in HTMLAnchorElement.prototype && !isMacOSWebView)\n ? function saveAs(blob, name, opts) {\n var URL = _global.URL || _global.webkitURL\n // Namespace is used to prevent conflict w/ Chrome Poper Blocker extension (Issue #561)\n var a = document.createElementNS('http://www.w3.org/1999/xhtml', 'a')\n name = name || blob.name || 'download'\n\n a.download = name\n a.rel = 'noopener' // tabnabbing\n\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob\n if (a.origin !== location.origin) {\n corsEnabled(a.href)\n ? download(blob, name, opts)\n : click(a, a.target = '_blank')\n } else {\n click(a)\n }\n } else {\n // Support blobs\n a.href = URL.createObjectURL(blob)\n setTimeout(function () {\n URL.revokeObjectURL(a.href)\n }, 4E4) // 40s\n setTimeout(function () {\n click(a)\n }, 0)\n }\n }\n\n // Use msSaveOrOpenBlob as a second approach\n : 'msSaveOrOpenBlob' in navigator\n ? function saveAs(blob, name, opts) {\n name = name || blob.name || 'download'\n\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts)\n } else {\n var a = document.createElement('a')\n a.href = blob\n a.target = '_blank'\n setTimeout(function () {\n click(a)\n })\n }\n } else {\n navigator.msSaveOrOpenBlob(bom(blob, opts), name)\n }\n }\n\n // Fallback to using FileReader and a popup\n : function saveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank')\n if (popup) {\n popup.document.title =\n popup.document.body.innerText = 'downloading...'\n }\n\n if (typeof blob === 'string') return download(blob, name, opts)\n\n var force = blob.type === 'application/octet-stream'\n var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari\n var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent)\n\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) && typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n var reader = new FileReader()\n reader.onloadend = function () {\n var url = reader.result\n url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;')\n if (popup) popup.location.href = url\n else location = url\n popup = null // reverse-tabnabbing #460\n }\n reader.readAsDataURL(blob)\n } else {\n var URL = _global.URL || _global.webkitURL\n var url = URL.createObjectURL(blob)\n if (popup) popup.location = url\n else location.href = url\n popup = null // reverse-tabnabbing #460\n setTimeout(function () {\n URL.revokeObjectURL(url)\n }, 4E4) // 40s\n }\n }\n)\n\n\nexport default saveAs\n","import Emitter from \"../utils/emitter\";\nimport {\n closeVideoFrame,\n createContextGL,\n createEmptyImageBitmap,\n dataURLToFile,\n downloadImg,\n isMobile,\n now,\n supportOffscreen\n} from \"../utils\";\nimport createWebGL from \"../utils/webgl\";\nimport {CANVAS_RENDER_TYPE, CONTROL_HEIGHT, EVENTS, SCREENSHOT_TYPE, VIDEO_ENC_TYPE} from \"../constant\";\nimport CommonLoader from \"./commonLoader\";\nimport saveAs from \"../utils/file-save\";\n\nexport default class CanvasVideoLoader extends CommonLoader {\n\n constructor(player) {\n super()\n this.player = player;\n const $canvasElement = document.createElement(\"canvas\");\n $canvasElement.style.position = \"absolute\";\n $canvasElement.style.top = 0;\n $canvasElement.style.left = 0;\n this.$videoElement = $canvasElement;\n player.$container.appendChild(this.$videoElement);\n\n this.context2D = null;\n this.contextGl = null;\n this.contextGlRender = null;\n this.contextGlDestroy = null;\n this.bitmaprenderer = null;\n this.renderType = null;\n this.videoInfo = {\n width: '',\n height: '',\n encType: '',\n }\n //\n this._initCanvasRender();\n this.player.debug.log('CanvasVideo', 'init');\n }\n\n async destroy() {\n super.destroy();\n if (this.contextGl) {\n this.contextGl = null;\n }\n if (this.context2D) {\n this.context2D = null;\n }\n if (this.contextGlRender) {\n this.contextGlDestroy && this.contextGlDestroy();\n this.contextGlDestroy = null;\n this.contextGlRender = null;\n }\n if (this.bitmaprenderer) {\n this.bitmaprenderer = null;\n }\n\n this.renderType = null;\n\n this.player.debug.log(`CanvasVideoLoader`, 'destroy');\n }\n\n\n _initContextGl() {\n this.contextGl = createContextGL(this.$videoElement);\n if(this.contextGl){\n const webgl = createWebGL(this.contextGl, this.player._opt.openWebglAlignment);\n this.contextGlRender = webgl.render;\n this.contextGlDestroy = webgl.destroy\n }\n else {\n this.player.debug.error(`CanvasVideoLoader`, 'init webgl fail');\n }\n }\n\n _initContext2D() {\n this.context2D = this.$videoElement.getContext('2d');\n }\n\n\n // 渲染类型\n _initCanvasRender() {\n if (this.player._opt.useWCS && !this._supportOffscreen()) {\n this.renderType = CANVAS_RENDER_TYPE.webcodecs;\n this._initContext2D();\n } else if (this._supportOffscreen()) {\n this.renderType = CANVAS_RENDER_TYPE.offscreen;\n this._bindOffscreen();\n } else {\n this.renderType = CANVAS_RENDER_TYPE.webgl;\n this._initContextGl();\n }\n }\n\n _supportOffscreen() {\n return supportOffscreen(this.$videoElement) && this.player._opt.useOffscreen;\n }\n\n //\n _bindOffscreen() {\n this.bitmaprenderer = this.$videoElement.getContext('bitmaprenderer');\n }\n\n initCanvasViewSize() {\n this.$videoElement.width = this.videoInfo.width;\n this.$videoElement.height = this.videoInfo.height;\n this.resize();\n }\n\n //\n render(msg) {\n this.player.videoTimestamp = msg.ts;\n switch (this.renderType) {\n case CANVAS_RENDER_TYPE.offscreen:\n this.bitmaprenderer.transferFromImageBitmap(msg.buffer);\n break;\n case CANVAS_RENDER_TYPE.webgl:\n this.contextGlRender(this.$videoElement.width, this.$videoElement.height, msg.output[0], msg.output[1], msg.output[2]);\n break;\n case CANVAS_RENDER_TYPE.webcodecs:\n // can use createImageBitmap in wexin\n this.context2D.drawImage(msg.videoFrame, 0, 0, this.$videoElement.width, this.$videoElement.height);\n closeVideoFrame(msg.videoFrame);\n break;\n }\n }\n\n screenshot(filename, format, quality, type) {\n filename = filename || now();\n type = type || SCREENSHOT_TYPE.download;\n const formatType = {\n png: 'image/png',\n jpeg: 'image/jpeg',\n webp: 'image/webp'\n };\n let encoderOptions = 0.92;\n if (!formatType[format] && SCREENSHOT_TYPE[format]) {\n type = format;\n format = 'png';\n quality = undefined\n }\n\n if (typeof quality === \"string\") {\n type = quality;\n quality = undefined;\n }\n\n if (typeof quality !== 'undefined') {\n encoderOptions = Number(quality);\n }\n const dataURL = this.$videoElement.toDataURL(formatType[format] || formatType.png, encoderOptions);\n\n if (type === SCREENSHOT_TYPE.base64) {\n return dataURL;\n } else {\n const file = dataURLToFile(dataURL)\n if (type === SCREENSHOT_TYPE.blob) {\n return file;\n } else if (type === SCREENSHOT_TYPE.download) {\n // downloadImg(file, filename);\n saveAs(file, filename);\n }\n }\n\n }\n\n //\n clearView() {\n switch (this.renderType) {\n case CANVAS_RENDER_TYPE.offscreen:\n createEmptyImageBitmap(this.$videoElement.width, this.$videoElement.height).then((imageBitMap) => {\n this.bitmaprenderer.transferFromImageBitmap(imageBitMap);\n })\n break;\n case CANVAS_RENDER_TYPE.webgl:\n this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT);\n break;\n case CANVAS_RENDER_TYPE.webcodecs:\n this.context2D.clearRect(0, 0, this.$videoElement.width, this.$videoElement.height)\n break;\n }\n }\n\n resize() {\n this.player.debug.log('canvasVideo', 'resize');\n const option = this.player._opt;\n let width = this.player.width;\n let height = this.player.height;\n if (this.player.isControlBarShow()) {\n if (isMobile() && this.player.fullscreen && option.useWebFullScreen) {\n width -= CONTROL_HEIGHT;\n } else {\n height -= CONTROL_HEIGHT;\n }\n }\n let resizeWidth = this.$videoElement.width;\n let resizeHeight = this.$videoElement.height;\n const rotate = option.rotate;\n let left = ((width - resizeWidth) / 2)\n let top = ((height - resizeHeight) / 2)\n if (rotate === 270 || rotate === 90) {\n resizeWidth = this.$videoElement.height;\n resizeHeight = this.$videoElement.width;\n }\n\n const wScale = width / resizeWidth;\n const hScale = height / resizeHeight;\n\n let scale = wScale > hScale ? hScale : wScale;\n //\n if (!option.isResize) {\n if (wScale !== hScale) {\n scale = wScale + ',' + hScale;\n }\n }\n //\n if (option.isFullResize) {\n scale = wScale > hScale ? wScale : hScale;\n }\n let transform = \"scale(\" + scale + \")\";\n\n if (rotate) {\n transform += ' rotate(' + rotate + 'deg)'\n }\n\n this.$videoElement.style.transform = transform;\n this.$videoElement.style.left = left + \"px\"\n this.$videoElement.style.top = top + \"px\"\n }\n\n\n}\n","import Emitter from \"../utils/emitter\";\nimport {CONTROL_HEIGHT, EVENTS, SCREENSHOT_TYPE, VIDEO_ENC_TYPE} from \"../constant\";\nimport {dataURLToFile, downloadImg, getBrowser, isAndroid, isMobile, now} from \"../utils\";\nimport CommonLoader from \"./commonLoader\";\nimport saveAs from \"../utils/file-save\";\n\nexport default class VideoLoader extends CommonLoader {\n constructor(player) {\n super();\n this.player = player;\n const $videoElement = document.createElement('video');\n const $canvasElement = document.createElement('canvas');\n $videoElement.muted = true;\n $videoElement.disablePictureInPicture = true;\n if (isAndroid()) {\n // default no poster\n $videoElement.poster = 'noposter';\n }\n $videoElement.style.position = \"absolute\";\n $videoElement.style.top = 0;\n $videoElement.style.left = 0;\n this._delayPlay = false;\n player.$container.appendChild($videoElement);\n this.videoInfo = {\n width: '',\n height: '',\n encType: '',\n }\n const _opt = this.player._opt;\n if (_opt.useWCS && _opt.wcsUseVideoRender) {\n this.trackGenerator = new MediaStreamTrackGenerator({kind: 'video'});\n $videoElement.srcObject = new MediaStream([this.trackGenerator]);\n this.vwriter = this.trackGenerator.writable.getWriter();\n }\n this.$videoElement = $videoElement;\n this.$canvasElement = $canvasElement;\n this.canvasContext = $canvasElement.getContext('2d');\n this.fixChromeVideoFlashBug();\n this.resize();\n\n const {proxy} = this.player.events;\n\n proxy(this.$videoElement, 'canplay', () => {\n this.player.debug.log('Video', `canplay`);\n if (this._delayPlay) {\n this.player.debug.log('Video', `canplay and _delayPlay is true and next play()`);\n this._play();\n }\n })\n\n proxy(this.$videoElement, 'waiting', () => {\n // this.player.emit(EVENTS.videoWaiting);\n this.player.debug.log('Video', 'waiting');\n })\n\n proxy(this.$videoElement, 'timeupdate', (event) => {\n // this.player.emit(EVENTS.videoTimeUpdate, event.timeStamp);\n const timeStamp = parseInt(event.timeStamp, 10);\n this.player.emit(EVENTS.timeUpdate, timeStamp)\n // check is pause;\n if (!this.isPlaying() && this.init) {\n this.player.debug.log('Video', `timeupdate and this.isPlaying is false and retry play`);\n this.$videoElement.play();\n }\n })\n\n this.player.debug.log('Video', 'init');\n }\n\n async destroy() {\n super.destroy();\n this.$canvasElement = null;\n this.canvasContext = null;\n if (this.$videoElement) {\n this.$videoElement.pause();\n this.$videoElement.currentTime = 0;\n this.$videoElement.src = ''\n this.$videoElement.removeAttribute('src');\n this.$videoElement = null;\n }\n if (this.trackGenerator) {\n this.trackGenerator.stop();\n this.trackGenerator = null;\n }\n if (this.vwriter) {\n await this.vwriter.close();\n this.vwriter = null;\n }\n this.player.debug.log('Video', 'destroy');\n }\n\n fixChromeVideoFlashBug() {\n const browser = getBrowser();\n const type = browser.type.toLowerCase();\n if (type === 'chrome' || type === 'edge') {\n const $container = this.player.$container;\n $container.style.backdropFilter = 'blur(0px)';\n $container.style.translateZ = '0';\n }\n }\n\n play() {\n if (this.$videoElement) {\n const readyState = this._getVideoReadyState();\n this.player.debug.log('Video', `play and readyState: ${readyState}`);\n if (readyState === 0) {\n this.player.debug.warn('Video', 'readyState is 0 and set _delayPlay to true');\n this._delayPlay = true;\n return;\n }\n this._play();\n }\n }\n\n _getVideoReadyState() {\n let result = 0;\n if (this.$videoElement) {\n result = this.$videoElement.readyState;\n }\n return result;\n }\n\n _play() {\n this.$videoElement && this.$videoElement.play().then(() => {\n this._delayPlay = false;\n this.player.debug.log('Video', '_play success');\n setTimeout(() => {\n if (!this.isPlaying()) {\n this.player.debug.warn('Video', `play failed and retry play`)\n this._play();\n }\n }, 100)\n\n }).catch((e) => {\n this.player.debug.error('Video', '_play error', e);\n })\n }\n\n pause(isNow) {\n // 预防\n // https://developer.chrome.com/blog/play-request-was-interrupted/\n // http://alonesuperman.com/?p=23\n if (isNow) {\n this.$videoElement && this.$videoElement.pause();\n } else {\n setTimeout(() => {\n this.$videoElement && this.$videoElement.pause();\n }, 100)\n }\n }\n\n clearView() {\n\n }\n\n screenshot(filename, format, quality, type) {\n filename = filename || now();\n type = type || SCREENSHOT_TYPE.download;\n const formatType = {\n png: 'image/png',\n jpeg: 'image/jpeg',\n webp: 'image/webp'\n };\n let encoderOptions = 0.92;\n if (!formatType[format] && SCREENSHOT_TYPE[format]) {\n type = format;\n format = 'png';\n quality = undefined\n }\n if (typeof quality === \"string\") {\n type = quality;\n quality = undefined;\n }\n\n if (typeof quality !== 'undefined') {\n encoderOptions = Number(quality);\n }\n const $video = this.$videoElement;\n let canvas = this.$canvasElement;\n canvas.width = $video.videoWidth;\n canvas.height = $video.videoHeight;\n this.canvasContext.drawImage($video, 0, 0, canvas.width, canvas.height);\n const dataURL = canvas.toDataURL(formatType[format] || formatType.png, encoderOptions);\n // release memory\n this.canvasContext.clearRect(0, 0, canvas.width, canvas.height);\n canvas.width = 0;\n canvas.height = 0;\n if (type === SCREENSHOT_TYPE.base64) {\n return dataURL;\n } else {\n const file = dataURLToFile(dataURL);\n if (type === SCREENSHOT_TYPE.blob) {\n return file;\n } else if (type === SCREENSHOT_TYPE.download) {\n // downloadImg(file, filename);\n saveAs(file, filename)\n }\n }\n\n }\n\n initCanvasViewSize() {\n this.resize();\n }\n\n //\n render(msg) {\n if (this.vwriter) {\n this.vwriter.write(msg.videoFrame);\n // release memory\n msg.videoFrame.close();\n }\n }\n\n resize() {\n let width = this.player.width;\n let height = this.player.height;\n const option = this.player._opt;\n const rotate = option.rotate;\n if (this.player.isControlBarShow()) {\n if (isMobile() && this.player.fullscreen && option.useWebFullScreen) {\n width -= CONTROL_HEIGHT;\n } else {\n height -= CONTROL_HEIGHT;\n }\n }\n\n this.$videoElement.width = width;\n this.$videoElement.height = height;\n\n if (rotate === 270 || rotate === 90) {\n this.$videoElement.width = height;\n this.$videoElement.height = width;\n }\n let resizeWidth = this.$videoElement.width;\n let resizeHeight = this.$videoElement.height;\n let left = ((width - resizeWidth) / 2)\n let top = ((height - resizeHeight) / 2)\n let objectFill = 'contain';\n\n // 默认是true\n // 视频画面做等比缩放后,高或宽对齐canvas区域,画面不被拉伸,但有黑边\n\n // 视频画面完全填充canvas区域,画面会被拉伸\n if (!option.isResize) {\n objectFill = 'fill';\n }\n\n // 视频画面做等比缩放后,完全填充canvas区域,画面不被拉伸,没有黑边,但画面显示不全\n if (option.isFullResize) {\n objectFill = 'none';\n }\n this.$videoElement.style.objectFit = objectFill;\n this.$videoElement.style.transform = 'rotate(' + rotate + 'deg)';\n this.$videoElement.style.left = left + \"px\"\n this.$videoElement.style.top = top + \"px\"\n }\n\n isPlaying() {\n return this.$videoElement && !this.$videoElement.paused;\n }\n}\n","import CanvasVideoLoader from './canvasLoader';\nimport VideoLoader from \"./videoLoader\";\n\nexport default class Video {\n constructor(player) {\n const Loader = Video.getLoaderFactory(player._opt);\n return new Loader(player);\n }\n\n static getLoaderFactory(opt) {\n if (opt.useMSE ||\n (opt.useWCS && !opt.useOffscreen && opt.wcsUseVideoRender)) {\n return VideoLoader;\n } else {\n return CanvasVideoLoader;\n }\n }\n}\n","import Emitter from \"../utils/emitter\";\nimport {AUDIO_ENC_TYPE, AUDIO_SYNC_VIDEO_DIFF, EVENTS, VIDEO_ENC_TYPE} from \"../constant\";\nimport {clamp, noop} from \"../utils\";\n\nexport default class AudioContextLoader extends Emitter {\n constructor(player) {\n super();\n this.bufferList = [];\n this.player = player;\n this.scriptNode = null;\n this.hasInitScriptNode = false;\n this.audioContextChannel = null;\n\n this.audioContext = new (window.AudioContext || window.webkitAudioContext)();\n //\n this.gainNode = this.audioContext.createGain();\n // Get an AudioBufferSourceNode.\n // This is the AudioNode to use when we want to play an AudioBuffer\n const source = this.audioContext.createBufferSource();\n // set the buffer in the AudioBufferSourceNode\n source.buffer = this.audioContext.createBuffer(1, 1, 22050);\n // connect the AudioBufferSourceNode to the\n // destination so we can hear the sound\n source.connect(this.audioContext.destination);\n // noteOn as start\n // start the source playing\n if (source.noteOn) {\n source.noteOn(0);\n } else {\n source.start(0);\n }\n this.audioBufferSourceNode = source;\n //\n this.mediaStreamAudioDestinationNode = this.audioContext.createMediaStreamDestination();\n //\n this.audioEnabled(true);\n // default setting 0\n this.gainNode.gain.value = 0;\n this._prevVolume = null;\n\n this.playing = false;\n //\n this.audioSyncVideoOption = {\n diff: null\n };\n\n\n this.audioInfo = {\n encType: '',\n channels: '',\n sampleRate: ''\n }\n this.init = false;\n this.hasAudio = false;\n\n // update\n this.on(EVENTS.videoSyncAudio, (options) => {\n // this.player.debug.log('AudioContext', `videoSyncAudio , audioTimestamp: ${options.audioTimestamp},videoTimestamp: ${options.videoTimestamp},diff:${options.diff}`)\n this.audioSyncVideoOption = options;\n })\n\n this.player.debug.log('AudioContext', 'init');\n }\n\n resetInit() {\n this.init = false;\n this.audioInfo = {\n encType: '',\n channels: '',\n sampleRate: ''\n }\n }\n\n\n async destroy() {\n this.closeAudio();\n this.resetInit();\n if(this.audioContext){\n await this.audioContext.close();\n this.audioContext = null;\n }\n\n this.gainNode = null;\n this.hasAudio = false;\n this.playing = false;\n if (this.scriptNode) {\n this.scriptNode.onaudioprocess = noop;\n this.scriptNode = null;\n }\n this.audioBufferSourceNode = null;\n this.mediaStreamAudioDestinationNode = null;\n this.hasInitScriptNode = false;\n this.audioSyncVideoOption = {\n diff: null\n };\n this._prevVolume = null;\n this.off();\n this.player.debug.log('AudioContext', 'destroy');\n }\n\n updateAudioInfo(data) {\n if (data.encTypeCode) {\n this.audioInfo.encType = AUDIO_ENC_TYPE[data.encTypeCode];\n this.audioInfo.encTypeCode = data.encTypeCode;\n }\n\n if (data.channels) {\n this.audioInfo.channels = data.channels;\n }\n\n if (data.sampleRate) {\n this.audioInfo.sampleRate = data.sampleRate;\n }\n\n // audio 基本信息\n if (this.audioInfo.sampleRate && this.audioInfo.channels && this.audioInfo.encType && !this.init) {\n this.player.emit(EVENTS.audioInfo, this.audioInfo);\n this.init = true;\n }\n }\n\n //\n get isPlaying() {\n return this.playing;\n }\n\n get isMute() {\n return this.gainNode.gain.value === 0;\n }\n\n get volume() {\n return this.gainNode.gain.value;\n }\n\n get bufferSize() {\n return this.bufferList.length;\n }\n\n\n initScriptNode() {\n this.playing = true;\n\n if (this.hasInitScriptNode) {\n return;\n }\n const channels = this.audioInfo.channels;\n\n const scriptNode = this.audioContext.createScriptProcessor(1024, 0, channels);\n // tips: if audio isStateSuspended onaudioprocess method not working\n scriptNode.onaudioprocess = (audioProcessingEvent) => {\n const outputBuffer = audioProcessingEvent.outputBuffer;\n\n if (this.bufferList.length && this.playing) {\n // just for wasm\n if (!this.player._opt.useWCS && !this.player._opt.useMSE && this.player._opt.wasmDecodeAudioSyncVideo) {\n // audio > video\n // wait\n if (this.audioSyncVideoOption.diff > AUDIO_SYNC_VIDEO_DIFF) {\n this.player.debug.warn('AudioContext', `audioSyncVideoOption more than diff :${this.audioSyncVideoOption.diff}, waiting`)\n // wait\n return;\n }\n // audio < video\n // throw away then chase video\n else if (this.audioSyncVideoOption.diff < -AUDIO_SYNC_VIDEO_DIFF) {\n this.player.debug.warn('AudioContext', `audioSyncVideoOption less than diff :${this.audioSyncVideoOption.diff}, dropping`)\n\n //\n let bufferItem = this.bufferList.shift();\n //\n while ((bufferItem.ts - this.player.videoTimestamp < -AUDIO_SYNC_VIDEO_DIFF) && this.bufferList.length > 0) {\n // this.player.debug.warn('AudioContext', `audioSyncVideoOption less than inner ts is:${bufferItem.ts}, videoTimestamp is ${this.player.videoTimestamp},diff:${bufferItem.ts - this.player.videoTimestamp}`)\n bufferItem = this.bufferList.shift();\n }\n\n if (this.bufferList.length === 0) {\n return;\n }\n }\n }\n\n if (this.bufferList.length === 0) {\n return;\n }\n\n const bufferItem = this.bufferList.shift();\n\n // update audio time stamp\n if (bufferItem && bufferItem.ts) {\n this.player.audioTimestamp = bufferItem.ts;\n }\n\n for (let channel = 0; channel < channels; channel++) {\n const b = bufferItem.buffer[channel]\n const nowBuffering = outputBuffer.getChannelData(channel);\n for (let i = 0; i < 1024; i++) {\n nowBuffering[i] = b[i] || 0\n }\n }\n }\n }\n\n scriptNode.connect(this.gainNode);\n this.scriptNode = scriptNode;\n this.gainNode.connect(this.audioContext.destination);\n this.gainNode.connect(this.mediaStreamAudioDestinationNode);\n this.hasInitScriptNode = true;\n }\n\n mute(flag) {\n if (flag) {\n // if (!this.isMute) {\n // this.player.emit(EVENTS.mute, flag);\n // }\n this.setVolume(0);\n this.clear();\n } else {\n // if (this.isMute) {\n // this.player.emit(EVENTS.mute, flag);\n // }\n this.setVolume(0.5);\n }\n }\n\n setVolume(volume) {\n volume = parseFloat(volume).toFixed(2);\n if (isNaN(volume)) {\n return;\n }\n this.audioEnabled(true);\n volume = clamp(volume, 0, 1);\n if (this._prevVolume === null) {\n this.player.emit(EVENTS.mute, volume === 0);\n } else {\n if (this._prevVolume === 0 && volume > 0) {\n this.player.emit(EVENTS.mute, false);\n } else if (this._prevVolume > 0 && volume === 0) {\n this.player.emit(EVENTS.mute, true);\n }\n }\n this.gainNode.gain.value = volume;\n this.gainNode.gain.setValueAtTime(volume, this.audioContext.currentTime);\n this.player.emit(EVENTS.volumechange, this.player.volume);\n this.player.emit(EVENTS.volume, this.player.volume); // outer\n // save last volume\n this._prevVolume = volume;\n }\n\n closeAudio() {\n if (this.hasInitScriptNode) {\n this.scriptNode && this.scriptNode.disconnect(this.gainNode);\n this.gainNode && this.gainNode.disconnect(this.audioContext.destination);\n this.gainNode && this.gainNode.disconnect(this.mediaStreamAudioDestinationNode);\n }\n this.clear();\n }\n\n // 是否播放。。。\n audioEnabled(flag) {\n if (flag) {\n if (this.audioContext.state === 'suspended') {\n // resume\n this.audioContext.resume();\n }\n } else {\n if (this.audioContext.state === 'running') {\n // suspend\n this.audioContext.suspend();\n }\n }\n }\n\n isStateRunning() {\n return this.audioContext.state === 'running';\n }\n\n isStateSuspended() {\n return this.audioContext.state === 'suspended';\n }\n\n clear() {\n this.bufferList = [];\n }\n\n play(buffer, ts) {\n // if is mute\n if (this.isMute) {\n return;\n }\n\n this.hasAudio = true;\n\n this.bufferList.push({\n buffer,\n ts\n });\n\n if (this.bufferList.length > 20) {\n this.player.debug.warn('AudioContext', `bufferList is large: ${this.bufferList.length}`)\n\n // out of memory\n if (this.bufferList.length > 50) {\n this.bufferList.shift();\n }\n }\n // this.player.debug.log('AudioContext', `bufferList is ${this.bufferList.length}`)\n }\n\n pause() {\n this.audioSyncVideoOption = {\n diff: null\n };\n this.playing = false;\n this.clear();\n }\n\n resume() {\n this.playing = true;\n }\n\n\n}\n","import AudioContextLoader from \"./audioContextLoader\";\n\nexport default class Audio {\n constructor(player) {\n const Loader = Audio.getLoaderFactory();\n return new Loader(player);\n }\n\n static getLoaderFactory() {\n return AudioContextLoader;\n }\n}\n","import Emitter from \"../utils/emitter\";\nimport {EVENTS, EVENTS_ERROR, FETCH_ERROR, JESSIBUCA_EVENTS} from \"../constant\";\nimport {calculationRate, now} from \"../utils\";\n\nexport default class FetchLoader extends Emitter {\n constructor(player) {\n super();\n this.player = player;\n this.playing = false;\n\n this.abortController = new AbortController();\n //\n this.streamRate = calculationRate(rate => {\n player.emit(EVENTS.kBps, (rate / 1024).toFixed(2));\n });\n player.debug.log('FetchStream', 'init');\n }\n\n async destroy() {\n this.abort()\n this.off();\n this.streamRate = null;\n this.player.debug.log('FetchStream', 'destroy');\n }\n\n /**\n *\n * @param url\n * @param options\n */\n fetchStream(url, options = {}) {\n const {demux} = this.player;\n this.player.debug.log('FetchStream', 'fetchStream', url, JSON.stringify(options));\n this.player._times.streamStart = now();\n const fetchOptions = Object.assign({\n signal: this.abortController.signal,\n }, {\n headers: options.headers || {}\n });\n fetch(url, fetchOptions).then((res) => {\n const reader = res.body.getReader();\n this.emit(EVENTS.streamSuccess);\n const fetchNext = () => {\n reader.read().then(({done, value}) => {\n if (done) {\n demux.close();\n } else {\n this.streamRate && this.streamRate(value.byteLength);\n demux.dispatch(value);\n fetchNext();\n }\n }\n ).catch((e) => {\n demux.close();\n const errorString = e.toString();\n // aborted a request 。\n if (errorString.indexOf(FETCH_ERROR.abortError1) !== -1) {\n return\n }\n\n if (errorString.indexOf(FETCH_ERROR.abortError2) !== -1) {\n return;\n }\n\n if (e.name === FETCH_ERROR.abort) {\n return;\n }\n\n\n this.abort();\n\n this.emit(EVENTS_ERROR.fetchError, e);\n this.player.emit(EVENTS.error, EVENTS_ERROR.fetchError);\n })\n }\n fetchNext();\n }).catch((e) => {\n if (e.name === 'AbortError') {\n return;\n }\n demux.close();\n this.abort();\n this.emit(EVENTS_ERROR.fetchError, e)\n this.player.emit(EVENTS.error, EVENTS_ERROR.fetchError);\n })\n }\n\n abort() {\n if (this.abortController) {\n this.abortController.abort();\n this.abortController = null\n }\n }\n\n\n}\n","import Emitter from \"../utils/emitter\";\nimport {EVENTS, EVENTS_ERROR, WEBSOCKET_STATUS} from \"../constant\";\nimport {calculationRate, now} from \"../utils\";\n\nexport default class WebsocketLoader extends Emitter {\n constructor(player) {\n super();\n this.player = player;\n this.socket = null;\n this.socketStatus = WEBSOCKET_STATUS.notConnect;\n this.wsUrl = null;\n //\n this.streamRate = calculationRate(rate => {\n player.emit(EVENTS.kBps, (rate / 1024).toFixed(2));\n });\n\n player.debug.log('WebsocketLoader', 'init');\n }\n\n async destroy() {\n if (this.socket) {\n this.socket.close(1000, 'Client disconnecting');\n this.socket = null;\n }\n this.socketStatus = WEBSOCKET_STATUS.notConnect;\n this.streamRate = null;\n this.wsUrl = null;\n this.off();\n this.player.debug.log('websocketLoader', 'destroy');\n }\n\n _createWebSocket() {\n const player = this.player;\n const {\n debug,\n events: {proxy},\n demux,\n } = player;\n\n this.socket = new WebSocket(this.wsUrl);\n this.socket.binaryType = 'arraybuffer';\n proxy(this.socket, 'open', () => {\n this.emit(EVENTS.streamSuccess);\n debug.log('websocketLoader', 'socket open');\n this.socketStatus = WEBSOCKET_STATUS.open;\n });\n\n proxy(this.socket, 'message', event => {\n this.streamRate && this.streamRate(event.data.byteLength);\n this._handleMessage(event.data);\n });\n\n\n proxy(this.socket, 'close', () => {\n debug.log('websocketLoader', 'socket close');\n this.emit(EVENTS.streamEnd);\n this.socketStatus = WEBSOCKET_STATUS.close;\n });\n\n proxy(this.socket, 'error', error => {\n debug.log('websocketLoader', 'socket error');\n this.emit(EVENTS_ERROR.websocketError, error);\n this.player.emit(EVENTS.error, EVENTS_ERROR.websocketError);\n this.socketStatus = WEBSOCKET_STATUS.error;\n demux.close();\n debug.log('websocketLoader', `socket error:`, error);\n });\n }\n\n //\n _handleMessage(message) {\n const {demux} = this.player;\n if (!demux) {\n this.player.debug.warn('websocketLoader', 'websocket handle message demux is null');\n return;\n }\n demux.dispatch(message);\n }\n\n\n /**\n *\n * @param url\n * @param options\n */\n fetchStream(url, options) {\n this.player._times.streamStart = now();\n this.wsUrl = url;\n this._createWebSocket();\n }\n\n\n}\n","import FetchLoader from \"./fetchLoader\";\nimport WebsocketLoader from \"./websocketLoader\";\nimport {PLAYER_PLAY_PROTOCOL} from \"../constant\";\n\nexport default class Stream {\n constructor(player) {\n const Loader = Stream.getLoaderFactory(player._opt.protocol);\n return new Loader(player);\n }\n\n static getLoaderFactory(protocol) {\n if (protocol === PLAYER_PLAY_PROTOCOL.fetch) {\n return FetchLoader;\n } else if (protocol === PLAYER_PLAY_PROTOCOL.websocket) {\n return WebsocketLoader;\n }\n }\n}\n","'use strict';\r\n\r\n// Last time updated: 2021-03-09 3:20:22 AM UTC\r\n\r\n// ________________\r\n// RecordRTC v5.6.2\r\n\r\n// Open-Sourced: https://github.com/muaz-khan/RecordRTC\r\n\r\n// --------------------------------------------------\r\n// Muaz Khan - www.MuazKhan.com\r\n// MIT License - www.WebRTC-Experiment.com/licence\r\n// --------------------------------------------------\r\n\r\n// ____________\r\n// RecordRTC.js\r\n\r\n/**\r\n * {@link https://github.com/muaz-khan/RecordRTC|RecordRTC} is a WebRTC JavaScript library for audio/video as well as screen activity recording. It supports Chrome, Firefox, Opera, Android, and Microsoft Edge. Platforms: Linux, Mac and Windows. \r\n * @summary Record audio, video or screen inside the browser.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef RecordRTC\r\n * @class\r\n * @example\r\n * var recorder = RecordRTC(mediaStream or [arrayOfMediaStream], {\r\n * type: 'video', // audio or video or gif or canvas\r\n * recorderType: MediaStreamRecorder || CanvasRecorder || StereoAudioRecorder || Etc\r\n * });\r\n * recorder.startRecording();\r\n * @see For further information:\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - Single media-stream object, array of media-streams, html-canvas-element, etc.\r\n * @param {object} config - {type:\"video\", recorderType: MediaStreamRecorder, disableLogs: true, numberOfAudioChannels: 1, bufferSize: 0, sampleRate: 0, desiredSampRate: 16000, video: HTMLVideoElement, etc.}\r\n */\r\n\r\nfunction RecordRTC(mediaStream, config) {\r\n if (!mediaStream) {\r\n throw 'First parameter is required.';\r\n }\r\n\r\n config = config || {\r\n type: 'video'\r\n };\r\n\r\n config = new RecordRTCConfiguration(mediaStream, config);\r\n\r\n // a reference to user's recordRTC object\r\n var self = this;\r\n\r\n function startRecording(config2) {\r\n if (!config.disableLogs) {\r\n console.log('RecordRTC version: ', self.version);\r\n }\r\n\r\n if (!!config2) {\r\n // allow users to set options using startRecording method\r\n // config2 is similar to main \"config\" object (second parameter over RecordRTC constructor)\r\n config = new RecordRTCConfiguration(mediaStream, config2);\r\n }\r\n\r\n if (!config.disableLogs) {\r\n console.log('started recording ' + config.type + ' stream.');\r\n }\r\n\r\n if (mediaRecorder) {\r\n mediaRecorder.clearRecordedData();\r\n mediaRecorder.record();\r\n\r\n setState('recording');\r\n\r\n if (self.recordingDuration) {\r\n handleRecordingDuration();\r\n }\r\n return self;\r\n }\r\n\r\n initRecorder(function() {\r\n if (self.recordingDuration) {\r\n handleRecordingDuration();\r\n }\r\n });\r\n\r\n return self;\r\n }\r\n\r\n function initRecorder(initCallback) {\r\n if (initCallback) {\r\n config.initCallback = function() {\r\n initCallback();\r\n initCallback = config.initCallback = null; // recorder.initRecorder should be call-backed once.\r\n };\r\n }\r\n\r\n var Recorder = new GetRecorderType(mediaStream, config);\r\n\r\n mediaRecorder = new Recorder(mediaStream, config);\r\n mediaRecorder.record();\r\n\r\n setState('recording');\r\n\r\n if (!config.disableLogs) {\r\n console.log('Initialized recorderType:', mediaRecorder.constructor.name, 'for output-type:', config.type);\r\n }\r\n }\r\n\r\n function stopRecording(callback) {\r\n callback = callback || function() {};\r\n\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n if (self.state === 'paused') {\r\n self.resumeRecording();\r\n\r\n setTimeout(function() {\r\n stopRecording(callback);\r\n }, 1);\r\n return;\r\n }\r\n\r\n if (self.state !== 'recording' && !config.disableLogs) {\r\n console.warn('Recording state should be: \"recording\", however current state is: ', self.state);\r\n }\r\n\r\n if (!config.disableLogs) {\r\n console.log('Stopped recording ' + config.type + ' stream.');\r\n }\r\n\r\n if (config.type !== 'gif') {\r\n mediaRecorder.stop(_callback);\r\n } else {\r\n mediaRecorder.stop();\r\n _callback();\r\n }\r\n\r\n setState('stopped');\r\n\r\n function _callback(__blob) {\r\n if (!mediaRecorder) {\r\n if (typeof callback.call === 'function') {\r\n callback.call(self, '');\r\n } else {\r\n callback('');\r\n }\r\n return;\r\n }\r\n\r\n Object.keys(mediaRecorder).forEach(function(key) {\r\n if (typeof mediaRecorder[key] === 'function') {\r\n return;\r\n }\r\n\r\n self[key] = mediaRecorder[key];\r\n });\r\n\r\n var blob = mediaRecorder.blob;\r\n\r\n if (!blob) {\r\n if (__blob) {\r\n mediaRecorder.blob = blob = __blob;\r\n } else {\r\n throw 'Recording failed.';\r\n }\r\n }\r\n\r\n if (blob && !config.disableLogs) {\r\n console.log(blob.type, '->', bytesToSize(blob.size));\r\n }\r\n\r\n if (callback) {\r\n var url;\r\n\r\n try {\r\n url = URL.createObjectURL(blob);\r\n } catch (e) {}\r\n\r\n if (typeof callback.call === 'function') {\r\n callback.call(self, url);\r\n } else {\r\n callback(url);\r\n }\r\n }\r\n\r\n if (!config.autoWriteToDisk) {\r\n return;\r\n }\r\n\r\n getDataURL(function(dataURL) {\r\n var parameter = {};\r\n parameter[config.type + 'Blob'] = dataURL;\r\n DiskStorage.Store(parameter);\r\n });\r\n }\r\n }\r\n\r\n function pauseRecording() {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n if (self.state !== 'recording') {\r\n if (!config.disableLogs) {\r\n console.warn('Unable to pause the recording. Recording state: ', self.state);\r\n }\r\n return;\r\n }\r\n\r\n setState('paused');\r\n\r\n mediaRecorder.pause();\r\n\r\n if (!config.disableLogs) {\r\n console.log('Paused recording.');\r\n }\r\n }\r\n\r\n function resumeRecording() {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n if (self.state !== 'paused') {\r\n if (!config.disableLogs) {\r\n console.warn('Unable to resume the recording. Recording state: ', self.state);\r\n }\r\n return;\r\n }\r\n\r\n setState('recording');\r\n\r\n // not all libs have this method yet\r\n mediaRecorder.resume();\r\n\r\n if (!config.disableLogs) {\r\n console.log('Resumed recording.');\r\n }\r\n }\r\n\r\n function readFile(_blob) {\r\n postMessage(new FileReaderSync().readAsDataURL(_blob));\r\n }\r\n\r\n function getDataURL(callback, _mediaRecorder) {\r\n if (!callback) {\r\n throw 'Pass a callback function over getDataURL.';\r\n }\r\n\r\n var blob = _mediaRecorder ? _mediaRecorder.blob : (mediaRecorder || {}).blob;\r\n\r\n if (!blob) {\r\n if (!config.disableLogs) {\r\n console.warn('Blob encoder did not finish its job yet.');\r\n }\r\n\r\n setTimeout(function() {\r\n getDataURL(callback, _mediaRecorder);\r\n }, 1000);\r\n return;\r\n }\r\n\r\n if (typeof Worker !== 'undefined' && !navigator.mozGetUserMedia) {\r\n var webWorker = processInWebWorker(readFile);\r\n\r\n webWorker.onmessage = function(event) {\r\n callback(event.data);\r\n };\r\n\r\n webWorker.postMessage(blob);\r\n } else {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n reader.onload = function(event) {\r\n callback(event.target.result);\r\n };\r\n }\r\n\r\n function processInWebWorker(_function) {\r\n try {\r\n var blob = URL.createObjectURL(new Blob([_function.toString(),\r\n 'this.onmessage = function (eee) {' + _function.name + '(eee.data);}'\r\n ], {\r\n type: 'application/javascript'\r\n }));\r\n\r\n var worker = new Worker(blob);\r\n URL.revokeObjectURL(blob);\r\n return worker;\r\n } catch (e) {}\r\n }\r\n }\r\n\r\n function handleRecordingDuration(counter) {\r\n counter = counter || 0;\r\n\r\n if (self.state === 'paused') {\r\n setTimeout(function() {\r\n handleRecordingDuration(counter);\r\n }, 1000);\r\n return;\r\n }\r\n\r\n if (self.state === 'stopped') {\r\n return;\r\n }\r\n\r\n if (counter >= self.recordingDuration) {\r\n stopRecording(self.onRecordingStopped);\r\n return;\r\n }\r\n\r\n counter += 1000; // 1-second\r\n\r\n setTimeout(function() {\r\n handleRecordingDuration(counter);\r\n }, 1000);\r\n }\r\n\r\n function setState(state) {\r\n if (!self) {\r\n return;\r\n }\r\n\r\n self.state = state;\r\n\r\n if (typeof self.onStateChanged.call === 'function') {\r\n self.onStateChanged.call(self, state);\r\n } else {\r\n self.onStateChanged(state);\r\n }\r\n }\r\n\r\n var WARNING = 'It seems that recorder is destroyed or \"startRecording\" is not invoked for ' + config.type + ' recorder.';\r\n\r\n function warningLog() {\r\n if (config.disableLogs === true) {\r\n return;\r\n }\r\n\r\n console.warn(WARNING);\r\n }\r\n\r\n var mediaRecorder;\r\n\r\n var returnObject = {\r\n /**\r\n * This method starts the recording.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * var recorder = RecordRTC(mediaStream, {\r\n * type: 'video'\r\n * });\r\n * recorder.startRecording();\r\n */\r\n startRecording: startRecording,\r\n\r\n /**\r\n * This method stops the recording. It is strongly recommended to get \"blob\" or \"URI\" inside the callback to make sure all recorders finished their job.\r\n * @param {function} callback - Callback to get the recorded blob.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * // use either \"this\" or \"recorder\" object; both are identical\r\n * video.src = this.toURL();\r\n * var blob = this.getBlob();\r\n * });\r\n */\r\n stopRecording: stopRecording,\r\n\r\n /**\r\n * This method pauses the recording. You can resume recording using \"resumeRecording\" method.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @todo Firefox is unable to pause the recording. Fix it.\r\n * @example\r\n * recorder.pauseRecording(); // pause the recording\r\n * recorder.resumeRecording(); // resume again\r\n */\r\n pauseRecording: pauseRecording,\r\n\r\n /**\r\n * This method resumes the recording.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.pauseRecording(); // first of all, pause the recording\r\n * recorder.resumeRecording(); // now resume it\r\n */\r\n resumeRecording: resumeRecording,\r\n\r\n /**\r\n * This method initializes the recording.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @todo This method should be deprecated.\r\n * @example\r\n * recorder.initRecorder();\r\n */\r\n initRecorder: initRecorder,\r\n\r\n /**\r\n * Ask RecordRTC to auto-stop the recording after 5 minutes.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * var fiveMinutes = 5 * 1000 * 60;\r\n * recorder.setRecordingDuration(fiveMinutes, function() {\r\n * var blob = this.getBlob();\r\n * video.src = this.toURL();\r\n * });\r\n * \r\n * // or otherwise\r\n * recorder.setRecordingDuration(fiveMinutes).onRecordingStopped(function() {\r\n * var blob = this.getBlob();\r\n * video.src = this.toURL();\r\n * });\r\n */\r\n setRecordingDuration: function(recordingDuration, callback) {\r\n if (typeof recordingDuration === 'undefined') {\r\n throw 'recordingDuration is required.';\r\n }\r\n\r\n if (typeof recordingDuration !== 'number') {\r\n throw 'recordingDuration must be a number.';\r\n }\r\n\r\n self.recordingDuration = recordingDuration;\r\n self.onRecordingStopped = callback || function() {};\r\n\r\n return {\r\n onRecordingStopped: function(callback) {\r\n self.onRecordingStopped = callback;\r\n }\r\n };\r\n },\r\n\r\n /**\r\n * This method can be used to clear/reset all the recorded data.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @todo Figure out the difference between \"reset\" and \"clearRecordedData\" methods.\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n clearRecordedData: function() {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n mediaRecorder.clearRecordedData();\r\n\r\n if (!config.disableLogs) {\r\n console.log('Cleared old recorded data.');\r\n }\r\n },\r\n\r\n /**\r\n * Get the recorded blob. Use this method inside the \"stopRecording\" callback.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * var blob = this.getBlob();\r\n *\r\n * var file = new File([blob], 'filename.webm', {\r\n * type: 'video/webm'\r\n * });\r\n *\r\n * var formData = new FormData();\r\n * formData.append('file', file); // upload \"File\" object rather than a \"Blob\"\r\n * uploadToServer(formData);\r\n * });\r\n * @returns {Blob} Returns recorded data as \"Blob\" object.\r\n */\r\n getBlob: function() {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n return mediaRecorder.blob;\r\n },\r\n\r\n /**\r\n * Get data-URI instead of Blob.\r\n * @param {function} callback - Callback to get the Data-URI.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * recorder.getDataURL(function(dataURI) {\r\n * video.src = dataURI;\r\n * });\r\n * });\r\n */\r\n getDataURL: getDataURL,\r\n\r\n /**\r\n * Get virtual/temporary URL. Usage of this URL is limited to current tab.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * video.src = this.toURL();\r\n * });\r\n * @returns {String} Returns a virtual/temporary URL for the recorded \"Blob\".\r\n */\r\n toURL: function() {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n return URL.createObjectURL(mediaRecorder.blob);\r\n },\r\n\r\n /**\r\n * Get internal recording object (i.e. internal module) e.g. MutliStreamRecorder, MediaStreamRecorder, StereoAudioRecorder or WhammyRecorder etc.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * var internalRecorder = recorder.getInternalRecorder();\r\n * if(internalRecorder instanceof MultiStreamRecorder) {\r\n * internalRecorder.addStreams([newAudioStream]);\r\n * internalRecorder.resetVideoStreams([screenStream]);\r\n * }\r\n * @returns {Object} Returns internal recording object.\r\n */\r\n getInternalRecorder: function() {\r\n return mediaRecorder;\r\n },\r\n\r\n /**\r\n * Invoke save-as dialog to save the recorded blob into your disk.\r\n * @param {string} fileName - Set your own file name.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * this.save('file-name');\r\n *\r\n * // or manually:\r\n * invokeSaveAsDialog(this.getBlob(), 'filename.webm');\r\n * });\r\n */\r\n save: function(fileName) {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n invokeSaveAsDialog(mediaRecorder.blob, fileName);\r\n },\r\n\r\n /**\r\n * This method gets a blob from indexed-DB storage.\r\n * @param {function} callback - Callback to get the recorded blob.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.getFromDisk(function(dataURL) {\r\n * video.src = dataURL;\r\n * });\r\n */\r\n getFromDisk: function(callback) {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n RecordRTC.getFromDisk(config.type, callback);\r\n },\r\n\r\n /**\r\n * This method appends an array of webp images to the recorded video-blob. It takes an \"array\" object.\r\n * @type {Array.}\r\n * @param {Array} arrayOfWebPImages - Array of webp images.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @todo This method should be deprecated.\r\n * @example\r\n * var arrayOfWebPImages = [];\r\n * arrayOfWebPImages.push({\r\n * duration: index,\r\n * image: 'data:image/webp;base64,...'\r\n * });\r\n * recorder.setAdvertisementArray(arrayOfWebPImages);\r\n */\r\n setAdvertisementArray: function(arrayOfWebPImages) {\r\n config.advertisement = [];\r\n\r\n var length = arrayOfWebPImages.length;\r\n for (var i = 0; i < length; i++) {\r\n config.advertisement.push({\r\n duration: i,\r\n image: arrayOfWebPImages[i]\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * It is equivalent to \"recorder.getBlob()\" method. Usage of \"getBlob\" is recommended, though.\r\n * @property {Blob} blob - Recorded Blob can be accessed using this property.\r\n * @memberof RecordRTC\r\n * @instance\r\n * @readonly\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * var blob = this.blob;\r\n *\r\n * // below one is recommended\r\n * var blob = this.getBlob();\r\n * });\r\n */\r\n blob: null,\r\n\r\n /**\r\n * This works only with {recorderType:StereoAudioRecorder}. Use this property on \"stopRecording\" to verify the encoder's sample-rates.\r\n * @property {number} bufferSize - Buffer-size used to encode the WAV container\r\n * @memberof RecordRTC\r\n * @instance\r\n * @readonly\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * alert('Recorder used this buffer-size: ' + this.bufferSize);\r\n * });\r\n */\r\n bufferSize: 0,\r\n\r\n /**\r\n * This works only with {recorderType:StereoAudioRecorder}. Use this property on \"stopRecording\" to verify the encoder's sample-rates.\r\n * @property {number} sampleRate - Sample-rates used to encode the WAV container\r\n * @memberof RecordRTC\r\n * @instance\r\n * @readonly\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * alert('Recorder used these sample-rates: ' + this.sampleRate);\r\n * });\r\n */\r\n sampleRate: 0,\r\n\r\n /**\r\n * {recorderType:StereoAudioRecorder} returns ArrayBuffer object.\r\n * @property {ArrayBuffer} buffer - Audio ArrayBuffer, supported only in Chrome.\r\n * @memberof RecordRTC\r\n * @instance\r\n * @readonly\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * var arrayBuffer = this.buffer;\r\n * alert(arrayBuffer.byteLength);\r\n * });\r\n */\r\n buffer: null,\r\n\r\n /**\r\n * This method resets the recorder. So that you can reuse single recorder instance many times.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.reset();\r\n * recorder.startRecording();\r\n */\r\n reset: function() {\r\n if (self.state === 'recording' && !config.disableLogs) {\r\n console.warn('Stop an active recorder.');\r\n }\r\n\r\n if (mediaRecorder && typeof mediaRecorder.clearRecordedData === 'function') {\r\n mediaRecorder.clearRecordedData();\r\n }\r\n mediaRecorder = null;\r\n setState('inactive');\r\n self.blob = null;\r\n },\r\n\r\n /**\r\n * This method is called whenever recorder's state changes. Use this as an \"event\".\r\n * @property {String} state - A recorder's state can be: recording, paused, stopped or inactive.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.onStateChanged = function(state) {\r\n * console.log('Recorder state: ', state);\r\n * };\r\n */\r\n onStateChanged: function(state) {\r\n if (!config.disableLogs) {\r\n console.log('Recorder state changed:', state);\r\n }\r\n },\r\n\r\n /**\r\n * A recorder can have inactive, recording, paused or stopped states.\r\n * @property {String} state - A recorder's state can be: recording, paused, stopped or inactive.\r\n * @memberof RecordRTC\r\n * @static\r\n * @readonly\r\n * @example\r\n * // this looper function will keep you updated about the recorder's states.\r\n * (function looper() {\r\n * document.querySelector('h1').innerHTML = 'Recorder\\'s state is: ' + recorder.state;\r\n * if(recorder.state === 'stopped') return; // ignore+stop\r\n * setTimeout(looper, 1000); // update after every 3-seconds\r\n * })();\r\n * recorder.startRecording();\r\n */\r\n state: 'inactive',\r\n\r\n /**\r\n * Get recorder's readonly state.\r\n * @method\r\n * @memberof RecordRTC\r\n * @example\r\n * var state = recorder.getState();\r\n * @returns {String} Returns recording state.\r\n */\r\n getState: function() {\r\n return self.state;\r\n },\r\n\r\n /**\r\n * Destroy RecordRTC instance. Clear all recorders and objects.\r\n * @method\r\n * @memberof RecordRTC\r\n * @example\r\n * recorder.destroy();\r\n */\r\n destroy: function() {\r\n var disableLogsCache = config.disableLogs;\r\n\r\n config = {\r\n disableLogs: true\r\n };\r\n self.reset();\r\n setState('destroyed');\r\n returnObject = self = null;\r\n\r\n if (Storage.AudioContextConstructor) {\r\n Storage.AudioContextConstructor.close();\r\n Storage.AudioContextConstructor = null;\r\n }\r\n\r\n config.disableLogs = disableLogsCache;\r\n\r\n if (!config.disableLogs) {\r\n console.log('RecordRTC is destroyed.');\r\n }\r\n },\r\n\r\n /**\r\n * RecordRTC version number\r\n * @property {String} version - Release version number.\r\n * @memberof RecordRTC\r\n * @static\r\n * @readonly\r\n * @example\r\n * alert(recorder.version);\r\n */\r\n version: '5.6.2'\r\n };\r\n\r\n if (!this) {\r\n self = returnObject;\r\n return returnObject;\r\n }\r\n\r\n // if someone wants to use RecordRTC with the \"new\" keyword.\r\n for (var prop in returnObject) {\r\n this[prop] = returnObject[prop];\r\n }\r\n\r\n self = this;\r\n\r\n return returnObject;\r\n}\r\n\r\nRecordRTC.version = '5.6.2';\r\n\r\nif (typeof module !== 'undefined' /* && !!module.exports*/ ) {\r\n module.exports = RecordRTC;\r\n}\r\n\r\nif (typeof define === 'function' && define.amd) {\r\n define('RecordRTC', [], function() {\r\n return RecordRTC;\r\n });\r\n}\n\r\nRecordRTC.getFromDisk = function(type, callback) {\r\n if (!callback) {\r\n throw 'callback is mandatory.';\r\n }\r\n\r\n console.log('Getting recorded ' + (type === 'all' ? 'blobs' : type + ' blob ') + ' from disk!');\r\n DiskStorage.Fetch(function(dataURL, _type) {\r\n if (type !== 'all' && _type === type + 'Blob' && callback) {\r\n callback(dataURL);\r\n }\r\n\r\n if (type === 'all' && callback) {\r\n callback(dataURL, _type.replace('Blob', ''));\r\n }\r\n });\r\n};\r\n\r\n/**\r\n * This method can be used to store recorded blobs into IndexedDB storage.\r\n * @param {object} options - {audio: Blob, video: Blob, gif: Blob}\r\n * @method\r\n * @memberof RecordRTC\r\n * @example\r\n * RecordRTC.writeToDisk({\r\n * audio: audioBlob,\r\n * video: videoBlob,\r\n * gif : gifBlob\r\n * });\r\n */\r\nRecordRTC.writeToDisk = function(options) {\r\n console.log('Writing recorded blob(s) to disk!');\r\n options = options || {};\r\n if (options.audio && options.video && options.gif) {\r\n options.audio.getDataURL(function(audioDataURL) {\r\n options.video.getDataURL(function(videoDataURL) {\r\n options.gif.getDataURL(function(gifDataURL) {\r\n DiskStorage.Store({\r\n audioBlob: audioDataURL,\r\n videoBlob: videoDataURL,\r\n gifBlob: gifDataURL\r\n });\r\n });\r\n });\r\n });\r\n } else if (options.audio && options.video) {\r\n options.audio.getDataURL(function(audioDataURL) {\r\n options.video.getDataURL(function(videoDataURL) {\r\n DiskStorage.Store({\r\n audioBlob: audioDataURL,\r\n videoBlob: videoDataURL\r\n });\r\n });\r\n });\r\n } else if (options.audio && options.gif) {\r\n options.audio.getDataURL(function(audioDataURL) {\r\n options.gif.getDataURL(function(gifDataURL) {\r\n DiskStorage.Store({\r\n audioBlob: audioDataURL,\r\n gifBlob: gifDataURL\r\n });\r\n });\r\n });\r\n } else if (options.video && options.gif) {\r\n options.video.getDataURL(function(videoDataURL) {\r\n options.gif.getDataURL(function(gifDataURL) {\r\n DiskStorage.Store({\r\n videoBlob: videoDataURL,\r\n gifBlob: gifDataURL\r\n });\r\n });\r\n });\r\n } else if (options.audio) {\r\n options.audio.getDataURL(function(audioDataURL) {\r\n DiskStorage.Store({\r\n audioBlob: audioDataURL\r\n });\r\n });\r\n } else if (options.video) {\r\n options.video.getDataURL(function(videoDataURL) {\r\n DiskStorage.Store({\r\n videoBlob: videoDataURL\r\n });\r\n });\r\n } else if (options.gif) {\r\n options.gif.getDataURL(function(gifDataURL) {\r\n DiskStorage.Store({\r\n gifBlob: gifDataURL\r\n });\r\n });\r\n }\r\n};\n\r\n// __________________________\r\n// RecordRTC-Configuration.js\r\n\r\n/**\r\n * {@link RecordRTCConfiguration} is an inner/private helper for {@link RecordRTC}.\r\n * @summary It configures the 2nd parameter passed over {@link RecordRTC} and returns a valid \"config\" object.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef RecordRTCConfiguration\r\n * @class\r\n * @example\r\n * var options = RecordRTCConfiguration(mediaStream, options);\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {type:\"video\", disableLogs: true, numberOfAudioChannels: 1, bufferSize: 0, sampleRate: 0, video: HTMLVideoElement, getNativeBlob:true, etc.}\r\n */\r\n\r\nfunction RecordRTCConfiguration(mediaStream, config) {\r\n if (!config.recorderType && !config.type) {\r\n if (!!config.audio && !!config.video) {\r\n config.type = 'video';\r\n } else if (!!config.audio && !config.video) {\r\n config.type = 'audio';\r\n }\r\n }\r\n\r\n if (config.recorderType && !config.type) {\r\n if (config.recorderType === WhammyRecorder || config.recorderType === CanvasRecorder || (typeof WebAssemblyRecorder !== 'undefined' && config.recorderType === WebAssemblyRecorder)) {\r\n config.type = 'video';\r\n } else if (config.recorderType === GifRecorder) {\r\n config.type = 'gif';\r\n } else if (config.recorderType === StereoAudioRecorder) {\r\n config.type = 'audio';\r\n } else if (config.recorderType === MediaStreamRecorder) {\r\n if (getTracks(mediaStream, 'audio').length && getTracks(mediaStream, 'video').length) {\r\n config.type = 'video';\r\n } else if (!getTracks(mediaStream, 'audio').length && getTracks(mediaStream, 'video').length) {\r\n config.type = 'video';\r\n } else if (getTracks(mediaStream, 'audio').length && !getTracks(mediaStream, 'video').length) {\r\n config.type = 'audio';\r\n } else {\r\n // config.type = 'UnKnown';\r\n }\r\n }\r\n }\r\n\r\n if (typeof MediaStreamRecorder !== 'undefined' && typeof MediaRecorder !== 'undefined' && 'requestData' in MediaRecorder.prototype) {\r\n if (!config.mimeType) {\r\n config.mimeType = 'video/webm';\r\n }\r\n\r\n if (!config.type) {\r\n config.type = config.mimeType.split('/')[0];\r\n }\r\n\r\n if (!config.bitsPerSecond) {\r\n // config.bitsPerSecond = 128000;\r\n }\r\n }\r\n\r\n // consider default type=audio\r\n if (!config.type) {\r\n if (config.mimeType) {\r\n config.type = config.mimeType.split('/')[0];\r\n }\r\n if (!config.type) {\r\n config.type = 'audio';\r\n }\r\n }\r\n\r\n return config;\r\n}\n\r\n// __________________\r\n// GetRecorderType.js\r\n\r\n/**\r\n * {@link GetRecorderType} is an inner/private helper for {@link RecordRTC}.\r\n * @summary It returns best recorder-type available for your browser.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef GetRecorderType\r\n * @class\r\n * @example\r\n * var RecorderType = GetRecorderType(options);\r\n * var recorder = new RecorderType(options);\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {type:\"video\", disableLogs: true, numberOfAudioChannels: 1, bufferSize: 0, sampleRate: 0, video: HTMLVideoElement, etc.}\r\n */\r\n\r\nfunction GetRecorderType(mediaStream, config) {\r\n var recorder;\r\n\r\n // StereoAudioRecorder can work with all three: Edge, Firefox and Chrome\r\n // todo: detect if it is Edge, then auto use: StereoAudioRecorder\r\n if (isChrome || isEdge || isOpera) {\r\n // Media Stream Recording API has not been implemented in chrome yet;\r\n // That's why using WebAudio API to record stereo audio in WAV format\r\n recorder = StereoAudioRecorder;\r\n }\r\n\r\n if (typeof MediaRecorder !== 'undefined' && 'requestData' in MediaRecorder.prototype && !isChrome) {\r\n recorder = MediaStreamRecorder;\r\n }\r\n\r\n // video recorder (in WebM format)\r\n if (config.type === 'video' && (isChrome || isOpera)) {\r\n recorder = WhammyRecorder;\r\n\r\n if (typeof WebAssemblyRecorder !== 'undefined' && typeof ReadableStream !== 'undefined') {\r\n recorder = WebAssemblyRecorder;\r\n }\r\n }\r\n\r\n // video recorder (in Gif format)\r\n if (config.type === 'gif') {\r\n recorder = GifRecorder;\r\n }\r\n\r\n // html2canvas recording!\r\n if (config.type === 'canvas') {\r\n recorder = CanvasRecorder;\r\n }\r\n\r\n if (isMediaRecorderCompatible() && recorder !== CanvasRecorder && recorder !== GifRecorder && typeof MediaRecorder !== 'undefined' && 'requestData' in MediaRecorder.prototype) {\r\n if (getTracks(mediaStream, 'video').length || getTracks(mediaStream, 'audio').length) {\r\n // audio-only recording\r\n if (config.type === 'audio') {\r\n if (typeof MediaRecorder.isTypeSupported === 'function' && MediaRecorder.isTypeSupported('audio/webm')) {\r\n recorder = MediaStreamRecorder;\r\n }\r\n // else recorder = StereoAudioRecorder;\r\n } else {\r\n // video or screen tracks\r\n if (typeof MediaRecorder.isTypeSupported === 'function' && MediaRecorder.isTypeSupported('video/webm')) {\r\n recorder = MediaStreamRecorder;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (mediaStream instanceof Array && mediaStream.length) {\r\n recorder = MultiStreamRecorder;\r\n }\r\n\r\n if (config.recorderType) {\r\n recorder = config.recorderType;\r\n }\r\n\r\n if (!config.disableLogs && !!recorder && !!recorder.name) {\r\n console.log('Using recorderType:', recorder.name || recorder.constructor.name);\r\n }\r\n\r\n if (!recorder && isSafari) {\r\n recorder = MediaStreamRecorder;\r\n }\r\n\r\n return recorder;\r\n}\n\r\n// _____________\r\n// MRecordRTC.js\r\n\r\n/**\r\n * MRecordRTC runs on top of {@link RecordRTC} to bring multiple recordings in a single place, by providing simple API.\r\n * @summary MRecordRTC stands for \"Multiple-RecordRTC\".\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef MRecordRTC\r\n * @class\r\n * @example\r\n * var recorder = new MRecordRTC();\r\n * recorder.addStream(MediaStream);\r\n * recorder.mediaType = {\r\n * audio: true, // or StereoAudioRecorder or MediaStreamRecorder\r\n * video: true, // or WhammyRecorder or MediaStreamRecorder or WebAssemblyRecorder or CanvasRecorder\r\n * gif: true // or GifRecorder\r\n * };\r\n * // mimeType is optional and should be set only in advance cases.\r\n * recorder.mimeType = {\r\n * audio: 'audio/wav',\r\n * video: 'video/webm',\r\n * gif: 'image/gif'\r\n * };\r\n * recorder.startRecording();\r\n * @see For further information:\r\n * @see {@link https://github.com/muaz-khan/RecordRTC/tree/master/MRecordRTC|MRecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @requires {@link RecordRTC}\r\n */\r\n\r\nfunction MRecordRTC(mediaStream) {\r\n\r\n /**\r\n * This method attaches MediaStream object to {@link MRecordRTC}.\r\n * @param {MediaStream} mediaStream - A MediaStream object, either fetched using getUserMedia API, or generated using captureStreamUntilEnded or WebAudio API.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.addStream(MediaStream);\r\n */\r\n this.addStream = function(_mediaStream) {\r\n if (_mediaStream) {\r\n mediaStream = _mediaStream;\r\n }\r\n };\r\n\r\n /**\r\n * This property can be used to set the recording type e.g. audio, or video, or gif, or canvas.\r\n * @property {object} mediaType - {audio: true, video: true, gif: true}\r\n * @memberof MRecordRTC\r\n * @example\r\n * var recorder = new MRecordRTC();\r\n * recorder.mediaType = {\r\n * audio: true, // TRUE or StereoAudioRecorder or MediaStreamRecorder\r\n * video: true, // TRUE or WhammyRecorder or MediaStreamRecorder or WebAssemblyRecorder or CanvasRecorder\r\n * gif : true // TRUE or GifRecorder\r\n * };\r\n */\r\n this.mediaType = {\r\n audio: true,\r\n video: true\r\n };\r\n\r\n /**\r\n * This method starts recording.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.startRecording();\r\n */\r\n this.startRecording = function() {\r\n var mediaType = this.mediaType;\r\n var recorderType;\r\n var mimeType = this.mimeType || {\r\n audio: null,\r\n video: null,\r\n gif: null\r\n };\r\n\r\n if (typeof mediaType.audio !== 'function' && isMediaRecorderCompatible() && !getTracks(mediaStream, 'audio').length) {\r\n mediaType.audio = false;\r\n }\r\n\r\n if (typeof mediaType.video !== 'function' && isMediaRecorderCompatible() && !getTracks(mediaStream, 'video').length) {\r\n mediaType.video = false;\r\n }\r\n\r\n if (typeof mediaType.gif !== 'function' && isMediaRecorderCompatible() && !getTracks(mediaStream, 'video').length) {\r\n mediaType.gif = false;\r\n }\r\n\r\n if (!mediaType.audio && !mediaType.video && !mediaType.gif) {\r\n throw 'MediaStream must have either audio or video tracks.';\r\n }\r\n\r\n if (!!mediaType.audio) {\r\n recorderType = null;\r\n if (typeof mediaType.audio === 'function') {\r\n recorderType = mediaType.audio;\r\n }\r\n\r\n this.audioRecorder = new RecordRTC(mediaStream, {\r\n type: 'audio',\r\n bufferSize: this.bufferSize,\r\n sampleRate: this.sampleRate,\r\n numberOfAudioChannels: this.numberOfAudioChannels || 2,\r\n disableLogs: this.disableLogs,\r\n recorderType: recorderType,\r\n mimeType: mimeType.audio,\r\n timeSlice: this.timeSlice,\r\n onTimeStamp: this.onTimeStamp\r\n });\r\n\r\n if (!mediaType.video) {\r\n this.audioRecorder.startRecording();\r\n }\r\n }\r\n\r\n if (!!mediaType.video) {\r\n recorderType = null;\r\n if (typeof mediaType.video === 'function') {\r\n recorderType = mediaType.video;\r\n }\r\n\r\n var newStream = mediaStream;\r\n\r\n if (isMediaRecorderCompatible() && !!mediaType.audio && typeof mediaType.audio === 'function') {\r\n var videoTrack = getTracks(mediaStream, 'video')[0];\r\n\r\n if (isFirefox) {\r\n newStream = new MediaStream();\r\n newStream.addTrack(videoTrack);\r\n\r\n if (recorderType && recorderType === WhammyRecorder) {\r\n // Firefox does NOT supports webp-encoding yet\r\n // But Firefox do supports WebAssemblyRecorder\r\n recorderType = MediaStreamRecorder;\r\n }\r\n } else {\r\n newStream = new MediaStream();\r\n newStream.addTrack(videoTrack);\r\n }\r\n }\r\n\r\n this.videoRecorder = new RecordRTC(newStream, {\r\n type: 'video',\r\n video: this.video,\r\n canvas: this.canvas,\r\n frameInterval: this.frameInterval || 10,\r\n disableLogs: this.disableLogs,\r\n recorderType: recorderType,\r\n mimeType: mimeType.video,\r\n timeSlice: this.timeSlice,\r\n onTimeStamp: this.onTimeStamp,\r\n workerPath: this.workerPath,\r\n webAssemblyPath: this.webAssemblyPath,\r\n frameRate: this.frameRate, // used by WebAssemblyRecorder; values: usually 30; accepts any.\r\n bitrate: this.bitrate // used by WebAssemblyRecorder; values: 0 to 1000+\r\n });\r\n\r\n if (!mediaType.audio) {\r\n this.videoRecorder.startRecording();\r\n }\r\n }\r\n\r\n if (!!mediaType.audio && !!mediaType.video) {\r\n var self = this;\r\n\r\n var isSingleRecorder = isMediaRecorderCompatible() === true;\r\n\r\n if (mediaType.audio instanceof StereoAudioRecorder && !!mediaType.video) {\r\n isSingleRecorder = false;\r\n } else if (mediaType.audio !== true && mediaType.video !== true && mediaType.audio !== mediaType.video) {\r\n isSingleRecorder = false;\r\n }\r\n\r\n if (isSingleRecorder === true) {\r\n self.audioRecorder = null;\r\n self.videoRecorder.startRecording();\r\n } else {\r\n self.videoRecorder.initRecorder(function() {\r\n self.audioRecorder.initRecorder(function() {\r\n // Both recorders are ready to record things accurately\r\n self.videoRecorder.startRecording();\r\n self.audioRecorder.startRecording();\r\n });\r\n });\r\n }\r\n }\r\n\r\n if (!!mediaType.gif) {\r\n recorderType = null;\r\n if (typeof mediaType.gif === 'function') {\r\n recorderType = mediaType.gif;\r\n }\r\n this.gifRecorder = new RecordRTC(mediaStream, {\r\n type: 'gif',\r\n frameRate: this.frameRate || 200,\r\n quality: this.quality || 10,\r\n disableLogs: this.disableLogs,\r\n recorderType: recorderType,\r\n mimeType: mimeType.gif\r\n });\r\n this.gifRecorder.startRecording();\r\n }\r\n };\r\n\r\n /**\r\n * This method stops recording.\r\n * @param {function} callback - Callback function is invoked when all encoders finished their jobs.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.stopRecording(function(recording){\r\n * var audioBlob = recording.audio;\r\n * var videoBlob = recording.video;\r\n * var gifBlob = recording.gif;\r\n * });\r\n */\r\n this.stopRecording = function(callback) {\r\n callback = callback || function() {};\r\n\r\n if (this.audioRecorder) {\r\n this.audioRecorder.stopRecording(function(blobURL) {\r\n callback(blobURL, 'audio');\r\n });\r\n }\r\n\r\n if (this.videoRecorder) {\r\n this.videoRecorder.stopRecording(function(blobURL) {\r\n callback(blobURL, 'video');\r\n });\r\n }\r\n\r\n if (this.gifRecorder) {\r\n this.gifRecorder.stopRecording(function(blobURL) {\r\n callback(blobURL, 'gif');\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * This method pauses recording.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.pauseRecording();\r\n */\r\n this.pauseRecording = function() {\r\n if (this.audioRecorder) {\r\n this.audioRecorder.pauseRecording();\r\n }\r\n\r\n if (this.videoRecorder) {\r\n this.videoRecorder.pauseRecording();\r\n }\r\n\r\n if (this.gifRecorder) {\r\n this.gifRecorder.pauseRecording();\r\n }\r\n };\r\n\r\n /**\r\n * This method resumes recording.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.resumeRecording();\r\n */\r\n this.resumeRecording = function() {\r\n if (this.audioRecorder) {\r\n this.audioRecorder.resumeRecording();\r\n }\r\n\r\n if (this.videoRecorder) {\r\n this.videoRecorder.resumeRecording();\r\n }\r\n\r\n if (this.gifRecorder) {\r\n this.gifRecorder.resumeRecording();\r\n }\r\n };\r\n\r\n /**\r\n * This method can be used to manually get all recorded blobs.\r\n * @param {function} callback - All recorded blobs are passed back to the \"callback\" function.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.getBlob(function(recording){\r\n * var audioBlob = recording.audio;\r\n * var videoBlob = recording.video;\r\n * var gifBlob = recording.gif;\r\n * });\r\n * // or\r\n * var audioBlob = recorder.getBlob().audio;\r\n * var videoBlob = recorder.getBlob().video;\r\n */\r\n this.getBlob = function(callback) {\r\n var output = {};\r\n\r\n if (this.audioRecorder) {\r\n output.audio = this.audioRecorder.getBlob();\r\n }\r\n\r\n if (this.videoRecorder) {\r\n output.video = this.videoRecorder.getBlob();\r\n }\r\n\r\n if (this.gifRecorder) {\r\n output.gif = this.gifRecorder.getBlob();\r\n }\r\n\r\n if (callback) {\r\n callback(output);\r\n }\r\n\r\n return output;\r\n };\r\n\r\n /**\r\n * Destroy all recorder instances.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.destroy();\r\n */\r\n this.destroy = function() {\r\n if (this.audioRecorder) {\r\n this.audioRecorder.destroy();\r\n this.audioRecorder = null;\r\n }\r\n\r\n if (this.videoRecorder) {\r\n this.videoRecorder.destroy();\r\n this.videoRecorder = null;\r\n }\r\n\r\n if (this.gifRecorder) {\r\n this.gifRecorder.destroy();\r\n this.gifRecorder = null;\r\n }\r\n };\r\n\r\n /**\r\n * This method can be used to manually get all recorded blobs' DataURLs.\r\n * @param {function} callback - All recorded blobs' DataURLs are passed back to the \"callback\" function.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.getDataURL(function(recording){\r\n * var audioDataURL = recording.audio;\r\n * var videoDataURL = recording.video;\r\n * var gifDataURL = recording.gif;\r\n * });\r\n */\r\n this.getDataURL = function(callback) {\r\n this.getBlob(function(blob) {\r\n if (blob.audio && blob.video) {\r\n getDataURL(blob.audio, function(_audioDataURL) {\r\n getDataURL(blob.video, function(_videoDataURL) {\r\n callback({\r\n audio: _audioDataURL,\r\n video: _videoDataURL\r\n });\r\n });\r\n });\r\n } else if (blob.audio) {\r\n getDataURL(blob.audio, function(_audioDataURL) {\r\n callback({\r\n audio: _audioDataURL\r\n });\r\n });\r\n } else if (blob.video) {\r\n getDataURL(blob.video, function(_videoDataURL) {\r\n callback({\r\n video: _videoDataURL\r\n });\r\n });\r\n }\r\n });\r\n\r\n function getDataURL(blob, callback00) {\r\n if (typeof Worker !== 'undefined') {\r\n var webWorker = processInWebWorker(function readFile(_blob) {\r\n postMessage(new FileReaderSync().readAsDataURL(_blob));\r\n });\r\n\r\n webWorker.onmessage = function(event) {\r\n callback00(event.data);\r\n };\r\n\r\n webWorker.postMessage(blob);\r\n } else {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n reader.onload = function(event) {\r\n callback00(event.target.result);\r\n };\r\n }\r\n }\r\n\r\n function processInWebWorker(_function) {\r\n var blob = URL.createObjectURL(new Blob([_function.toString(),\r\n 'this.onmessage = function (eee) {' + _function.name + '(eee.data);}'\r\n ], {\r\n type: 'application/javascript'\r\n }));\r\n\r\n var worker = new Worker(blob);\r\n var url;\r\n if (typeof URL !== 'undefined') {\r\n url = URL;\r\n } else if (typeof webkitURL !== 'undefined') {\r\n url = webkitURL;\r\n } else {\r\n throw 'Neither URL nor webkitURL detected.';\r\n }\r\n url.revokeObjectURL(blob);\r\n return worker;\r\n }\r\n };\r\n\r\n /**\r\n * This method can be used to ask {@link MRecordRTC} to write all recorded blobs into IndexedDB storage.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.writeToDisk();\r\n */\r\n this.writeToDisk = function() {\r\n RecordRTC.writeToDisk({\r\n audio: this.audioRecorder,\r\n video: this.videoRecorder,\r\n gif: this.gifRecorder\r\n });\r\n };\r\n\r\n /**\r\n * This method can be used to invoke a save-as dialog for all recorded blobs.\r\n * @param {object} args - {audio: 'audio-name', video: 'video-name', gif: 'gif-name'}\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.save({\r\n * audio: 'audio-file-name',\r\n * video: 'video-file-name',\r\n * gif : 'gif-file-name'\r\n * });\r\n */\r\n this.save = function(args) {\r\n args = args || {\r\n audio: true,\r\n video: true,\r\n gif: true\r\n };\r\n\r\n if (!!args.audio && this.audioRecorder) {\r\n this.audioRecorder.save(typeof args.audio === 'string' ? args.audio : '');\r\n }\r\n\r\n if (!!args.video && this.videoRecorder) {\r\n this.videoRecorder.save(typeof args.video === 'string' ? args.video : '');\r\n }\r\n if (!!args.gif && this.gifRecorder) {\r\n this.gifRecorder.save(typeof args.gif === 'string' ? args.gif : '');\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * This method can be used to get all recorded blobs from IndexedDB storage.\r\n * @param {string} type - 'all' or 'audio' or 'video' or 'gif'\r\n * @param {function} callback - Callback function to get all stored blobs.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * MRecordRTC.getFromDisk('all', function(dataURL, type){\r\n * if(type === 'audio') { }\r\n * if(type === 'video') { }\r\n * if(type === 'gif') { }\r\n * });\r\n */\r\nMRecordRTC.getFromDisk = RecordRTC.getFromDisk;\r\n\r\n/**\r\n * This method can be used to store recorded blobs into IndexedDB storage.\r\n * @param {object} options - {audio: Blob, video: Blob, gif: Blob}\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * MRecordRTC.writeToDisk({\r\n * audio: audioBlob,\r\n * video: videoBlob,\r\n * gif : gifBlob\r\n * });\r\n */\r\nMRecordRTC.writeToDisk = RecordRTC.writeToDisk;\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.MRecordRTC = MRecordRTC;\r\n}\n\r\nvar browserFakeUserAgent = 'Fake/5.0 (FakeOS) AppleWebKit/123 (KHTML, like Gecko) Fake/12.3.4567.89 Fake/123.45';\r\n\r\n(function(that) {\r\n if (!that) {\r\n return;\r\n }\r\n\r\n if (typeof window !== 'undefined') {\r\n return;\r\n }\r\n\r\n if (typeof global === 'undefined') {\r\n return;\r\n }\r\n\r\n global.navigator = {\r\n userAgent: browserFakeUserAgent,\r\n getUserMedia: function() {}\r\n };\r\n\r\n if (!global.console) {\r\n global.console = {};\r\n }\r\n\r\n if (typeof global.console.log === 'undefined' || typeof global.console.error === 'undefined') {\r\n global.console.error = global.console.log = global.console.log || function() {\r\n console.log(arguments);\r\n };\r\n }\r\n\r\n if (typeof document === 'undefined') {\r\n /*global document:true */\r\n that.document = {\r\n documentElement: {\r\n appendChild: function() {\r\n return '';\r\n }\r\n }\r\n };\r\n\r\n document.createElement = document.captureStream = document.mozCaptureStream = function() {\r\n var obj = {\r\n getContext: function() {\r\n return obj;\r\n },\r\n play: function() {},\r\n pause: function() {},\r\n drawImage: function() {},\r\n toDataURL: function() {\r\n return '';\r\n },\r\n style: {}\r\n };\r\n return obj;\r\n };\r\n\r\n that.HTMLVideoElement = function() {};\r\n }\r\n\r\n if (typeof location === 'undefined') {\r\n /*global location:true */\r\n that.location = {\r\n protocol: 'file:',\r\n href: '',\r\n hash: ''\r\n };\r\n }\r\n\r\n if (typeof screen === 'undefined') {\r\n /*global screen:true */\r\n that.screen = {\r\n width: 0,\r\n height: 0\r\n };\r\n }\r\n\r\n if (typeof URL === 'undefined') {\r\n /*global screen:true */\r\n that.URL = {\r\n createObjectURL: function() {\r\n return '';\r\n },\r\n revokeObjectURL: function() {\r\n return '';\r\n }\r\n };\r\n }\r\n\r\n /*global window:true */\r\n that.window = global;\r\n})(typeof global !== 'undefined' ? global : null);\n\r\n// _____________________________\r\n// Cross-Browser-Declarations.js\r\n\r\n// animation-frame used in WebM recording\r\n\r\n/*jshint -W079 */\r\nvar requestAnimationFrame = window.requestAnimationFrame;\r\nif (typeof requestAnimationFrame === 'undefined') {\r\n if (typeof webkitRequestAnimationFrame !== 'undefined') {\r\n /*global requestAnimationFrame:true */\r\n requestAnimationFrame = webkitRequestAnimationFrame;\r\n } else if (typeof mozRequestAnimationFrame !== 'undefined') {\r\n /*global requestAnimationFrame:true */\r\n requestAnimationFrame = mozRequestAnimationFrame;\r\n } else if (typeof msRequestAnimationFrame !== 'undefined') {\r\n /*global requestAnimationFrame:true */\r\n requestAnimationFrame = msRequestAnimationFrame;\r\n } else if (typeof requestAnimationFrame === 'undefined') {\r\n // via: https://gist.github.com/paulirish/1579671\r\n var lastTime = 0;\r\n\r\n /*global requestAnimationFrame:true */\r\n requestAnimationFrame = function(callback, element) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = setTimeout(function() {\r\n callback(currTime + timeToCall);\r\n }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n }\r\n}\r\n\r\n/*jshint -W079 */\r\nvar cancelAnimationFrame = window.cancelAnimationFrame;\r\nif (typeof cancelAnimationFrame === 'undefined') {\r\n if (typeof webkitCancelAnimationFrame !== 'undefined') {\r\n /*global cancelAnimationFrame:true */\r\n cancelAnimationFrame = webkitCancelAnimationFrame;\r\n } else if (typeof mozCancelAnimationFrame !== 'undefined') {\r\n /*global cancelAnimationFrame:true */\r\n cancelAnimationFrame = mozCancelAnimationFrame;\r\n } else if (typeof msCancelAnimationFrame !== 'undefined') {\r\n /*global cancelAnimationFrame:true */\r\n cancelAnimationFrame = msCancelAnimationFrame;\r\n } else if (typeof cancelAnimationFrame === 'undefined') {\r\n /*global cancelAnimationFrame:true */\r\n cancelAnimationFrame = function(id) {\r\n clearTimeout(id);\r\n };\r\n }\r\n}\r\n\r\n// WebAudio API representer\r\nvar AudioContext = window.AudioContext;\r\n\r\nif (typeof AudioContext === 'undefined') {\r\n if (typeof webkitAudioContext !== 'undefined') {\r\n /*global AudioContext:true */\r\n AudioContext = webkitAudioContext;\r\n }\r\n\r\n if (typeof mozAudioContext !== 'undefined') {\r\n /*global AudioContext:true */\r\n AudioContext = mozAudioContext;\r\n }\r\n}\r\n\r\n/*jshint -W079 */\r\nvar URL = window.URL;\r\n\r\nif (typeof URL === 'undefined' && typeof webkitURL !== 'undefined') {\r\n /*global URL:true */\r\n URL = webkitURL;\r\n}\r\n\r\nif (typeof navigator !== 'undefined' && typeof navigator.getUserMedia === 'undefined') { // maybe window.navigator?\r\n if (typeof navigator.webkitGetUserMedia !== 'undefined') {\r\n navigator.getUserMedia = navigator.webkitGetUserMedia;\r\n }\r\n\r\n if (typeof navigator.mozGetUserMedia !== 'undefined') {\r\n navigator.getUserMedia = navigator.mozGetUserMedia;\r\n }\r\n}\r\n\r\nvar isEdge = navigator.userAgent.indexOf('Edge') !== -1 && (!!navigator.msSaveBlob || !!navigator.msSaveOrOpenBlob);\r\nvar isOpera = !!window.opera || navigator.userAgent.indexOf('OPR/') !== -1;\r\nvar isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1 && ('netscape' in window) && / rv:/.test(navigator.userAgent);\r\nvar isChrome = (!isOpera && !isEdge && !!navigator.webkitGetUserMedia) || isElectron() || navigator.userAgent.toLowerCase().indexOf('chrome/') !== -1;\r\n\r\nvar isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n\r\nif (isSafari && !isChrome && navigator.userAgent.indexOf('CriOS') !== -1) {\r\n isSafari = false;\r\n isChrome = true;\r\n}\r\n\r\nvar MediaStream = window.MediaStream;\r\n\r\nif (typeof MediaStream === 'undefined' && typeof webkitMediaStream !== 'undefined') {\r\n MediaStream = webkitMediaStream;\r\n}\r\n\r\n/*global MediaStream:true */\r\nif (typeof MediaStream !== 'undefined') {\r\n // override \"stop\" method for all browsers\r\n if (typeof MediaStream.prototype.stop === 'undefined') {\r\n MediaStream.prototype.stop = function() {\r\n this.getTracks().forEach(function(track) {\r\n track.stop();\r\n });\r\n };\r\n }\r\n}\r\n\r\n// below function via: http://goo.gl/B3ae8c\r\n/**\r\n * Return human-readable file size.\r\n * @param {number} bytes - Pass bytes and get formatted string.\r\n * @returns {string} - formatted string\r\n * @example\r\n * bytesToSize(1024*1024*5) === '5 GB'\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\nfunction bytesToSize(bytes) {\r\n var k = 1000;\r\n var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\r\n if (bytes === 0) {\r\n return '0 Bytes';\r\n }\r\n var i = parseInt(Math.floor(Math.log(bytes) / Math.log(k)), 10);\r\n return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i];\r\n}\r\n\r\n/**\r\n * @param {Blob} file - File or Blob object. This parameter is required.\r\n * @param {string} fileName - Optional file name e.g. \"Recorded-Video.webm\"\r\n * @example\r\n * invokeSaveAsDialog(blob or file, [optional] fileName);\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\nfunction invokeSaveAsDialog(file, fileName) {\r\n if (!file) {\r\n throw 'Blob object is required.';\r\n }\r\n\r\n if (!file.type) {\r\n try {\r\n file.type = 'video/webm';\r\n } catch (e) {}\r\n }\r\n\r\n var fileExtension = (file.type || 'video/webm').split('/')[1];\r\n if (fileExtension.indexOf(';') !== -1) {\r\n // extended mimetype, e.g. 'video/webm;codecs=vp8,opus'\r\n fileExtension = fileExtension.split(';')[0];\r\n }\r\n if (fileName && fileName.indexOf('.') !== -1) {\r\n var splitted = fileName.split('.');\r\n fileName = splitted[0];\r\n fileExtension = splitted[1];\r\n }\r\n\r\n var fileFullName = (fileName || (Math.round(Math.random() * 9999999999) + 888888888)) + '.' + fileExtension;\r\n\r\n if (typeof navigator.msSaveOrOpenBlob !== 'undefined') {\r\n return navigator.msSaveOrOpenBlob(file, fileFullName);\r\n } else if (typeof navigator.msSaveBlob !== 'undefined') {\r\n return navigator.msSaveBlob(file, fileFullName);\r\n }\r\n\r\n var hyperlink = document.createElement('a');\r\n hyperlink.href = URL.createObjectURL(file);\r\n hyperlink.download = fileFullName;\r\n\r\n hyperlink.style = 'display:none;opacity:0;color:transparent;';\r\n (document.body || document.documentElement).appendChild(hyperlink);\r\n\r\n if (typeof hyperlink.click === 'function') {\r\n hyperlink.click();\r\n } else {\r\n hyperlink.target = '_blank';\r\n hyperlink.dispatchEvent(new MouseEvent('click', {\r\n view: window,\r\n bubbles: true,\r\n cancelable: true\r\n }));\r\n }\r\n\r\n URL.revokeObjectURL(hyperlink.href);\r\n}\r\n\r\n/**\r\n * from: https://github.com/cheton/is-electron/blob/master/index.js\r\n **/\r\nfunction isElectron() {\r\n // Renderer process\r\n if (typeof window !== 'undefined' && typeof window.process === 'object' && window.process.type === 'renderer') {\r\n return true;\r\n }\r\n\r\n // Main process\r\n if (typeof process !== 'undefined' && typeof process.versions === 'object' && !!process.versions.electron) {\r\n return true;\r\n }\r\n\r\n // Detect the user agent when the `nodeIntegration` option is set to true\r\n if (typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction getTracks(stream, kind) {\r\n if (!stream || !stream.getTracks) {\r\n return [];\r\n }\r\n\r\n return stream.getTracks().filter(function(t) {\r\n return t.kind === (kind || 'audio');\r\n });\r\n}\r\n\r\nfunction setSrcObject(stream, element) {\r\n if ('srcObject' in element) {\r\n element.srcObject = stream;\r\n } else if ('mozSrcObject' in element) {\r\n element.mozSrcObject = stream;\r\n } else {\r\n element.srcObject = stream;\r\n }\r\n}\r\n\r\n/**\r\n * @param {Blob} file - File or Blob object.\r\n * @param {function} callback - Callback function.\r\n * @example\r\n * getSeekableBlob(blob or file, callback);\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\nfunction getSeekableBlob(inputBlob, callback) {\r\n // EBML.js copyrights goes to: https://github.com/legokichi/ts-ebml\r\n if (typeof EBML === 'undefined') {\r\n throw new Error('Please link: https://www.webrtc-experiment.com/EBML.js');\r\n }\r\n\r\n var reader = new EBML.Reader();\r\n var decoder = new EBML.Decoder();\r\n var tools = EBML.tools;\r\n\r\n var fileReader = new FileReader();\r\n fileReader.onload = function(e) {\r\n var ebmlElms = decoder.decode(this.result);\r\n ebmlElms.forEach(function(element) {\r\n reader.read(element);\r\n });\r\n reader.stop();\r\n var refinedMetadataBuf = tools.makeMetadataSeekable(reader.metadatas, reader.duration, reader.cues);\r\n var body = this.result.slice(reader.metadataSize);\r\n var newBlob = new Blob([refinedMetadataBuf, body], {\r\n type: 'video/webm'\r\n });\r\n\r\n callback(newBlob);\r\n };\r\n fileReader.readAsArrayBuffer(inputBlob);\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.invokeSaveAsDialog = invokeSaveAsDialog;\r\n RecordRTC.getTracks = getTracks;\r\n RecordRTC.getSeekableBlob = getSeekableBlob;\r\n RecordRTC.bytesToSize = bytesToSize;\r\n RecordRTC.isElectron = isElectron;\r\n}\r\n\r\n// __________ (used to handle stuff like http://goo.gl/xmE5eg) issue #129\r\n// Storage.js\r\n\r\n/**\r\n * Storage is a standalone object used by {@link RecordRTC} to store reusable objects e.g. \"new AudioContext\".\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @example\r\n * Storage.AudioContext === webkitAudioContext\r\n * @property {webkitAudioContext} AudioContext - Keeps a reference to AudioContext object.\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\n\r\nvar Storage = {};\r\n\r\nif (typeof AudioContext !== 'undefined') {\r\n Storage.AudioContext = AudioContext;\r\n} else if (typeof webkitAudioContext !== 'undefined') {\r\n Storage.AudioContext = webkitAudioContext;\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.Storage = Storage;\r\n}\n\r\nfunction isMediaRecorderCompatible() {\r\n if (isFirefox || isSafari || isEdge) {\r\n return true;\r\n }\r\n\r\n var nVer = navigator.appVersion;\r\n var nAgt = navigator.userAgent;\r\n var fullVersion = '' + parseFloat(navigator.appVersion);\r\n var majorVersion = parseInt(navigator.appVersion, 10);\r\n var nameOffset, verOffset, ix;\r\n\r\n if (isChrome || isOpera) {\r\n verOffset = nAgt.indexOf('Chrome');\r\n fullVersion = nAgt.substring(verOffset + 7);\r\n }\r\n\r\n // trim the fullVersion string at semicolon/space if present\r\n if ((ix = fullVersion.indexOf(';')) !== -1) {\r\n fullVersion = fullVersion.substring(0, ix);\r\n }\r\n\r\n if ((ix = fullVersion.indexOf(' ')) !== -1) {\r\n fullVersion = fullVersion.substring(0, ix);\r\n }\r\n\r\n majorVersion = parseInt('' + fullVersion, 10);\r\n\r\n if (isNaN(majorVersion)) {\r\n fullVersion = '' + parseFloat(navigator.appVersion);\r\n majorVersion = parseInt(navigator.appVersion, 10);\r\n }\r\n\r\n return majorVersion >= 49;\r\n}\n\r\n// ______________________\r\n// MediaStreamRecorder.js\r\n\r\n/**\r\n * MediaStreamRecorder is an abstraction layer for {@link https://w3c.github.io/mediacapture-record/MediaRecorder.html|MediaRecorder API}. It is used by {@link RecordRTC} to record MediaStream(s) in both Chrome and Firefox.\r\n * @summary Runs top over {@link https://w3c.github.io/mediacapture-record/MediaRecorder.html|MediaRecorder API}.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://github.com/muaz-khan|Muaz Khan}\r\n * @typedef MediaStreamRecorder\r\n * @class\r\n * @example\r\n * var config = {\r\n * mimeType: 'video/webm', // vp8, vp9, h264, mkv, opus/vorbis\r\n * audioBitsPerSecond : 256 * 8 * 1024,\r\n * videoBitsPerSecond : 256 * 8 * 1024,\r\n * bitsPerSecond: 256 * 8 * 1024, // if this is provided, skip above two\r\n * checkForInactiveTracks: true,\r\n * timeSlice: 1000, // concatenate intervals based blobs\r\n * ondataavailable: function() {} // get intervals based blobs\r\n * }\r\n * var recorder = new MediaStreamRecorder(mediaStream, config);\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n *\r\n * // or\r\n * var blob = recorder.blob;\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {disableLogs:true, initCallback: function, mimeType: \"video/webm\", timeSlice: 1000}\r\n * @throws Will throw an error if first argument \"MediaStream\" is missing. Also throws error if \"MediaRecorder API\" are not supported by the browser.\r\n */\r\n\r\nfunction MediaStreamRecorder(mediaStream, config) {\r\n var self = this;\r\n\r\n if (typeof mediaStream === 'undefined') {\r\n throw 'First argument \"MediaStream\" is required.';\r\n }\r\n\r\n if (typeof MediaRecorder === 'undefined') {\r\n throw 'Your browser does not support the Media Recorder API. Please try other modules e.g. WhammyRecorder or StereoAudioRecorder.';\r\n }\r\n\r\n config = config || {\r\n // bitsPerSecond: 256 * 8 * 1024,\r\n mimeType: 'video/webm'\r\n };\r\n\r\n if (config.type === 'audio') {\r\n if (getTracks(mediaStream, 'video').length && getTracks(mediaStream, 'audio').length) {\r\n var stream;\r\n if (!!navigator.mozGetUserMedia) {\r\n stream = new MediaStream();\r\n stream.addTrack(getTracks(mediaStream, 'audio')[0]);\r\n } else {\r\n // webkitMediaStream\r\n stream = new MediaStream(getTracks(mediaStream, 'audio'));\r\n }\r\n mediaStream = stream;\r\n }\r\n\r\n if (!config.mimeType || config.mimeType.toString().toLowerCase().indexOf('audio') === -1) {\r\n config.mimeType = isChrome ? 'audio/webm' : 'audio/ogg';\r\n }\r\n\r\n if (config.mimeType && config.mimeType.toString().toLowerCase() !== 'audio/ogg' && !!navigator.mozGetUserMedia) {\r\n // forcing better codecs on Firefox (via #166)\r\n config.mimeType = 'audio/ogg';\r\n }\r\n }\r\n\r\n var arrayOfBlobs = [];\r\n\r\n /**\r\n * This method returns array of blobs. Use only with \"timeSlice\". Its useful to preview recording anytime, without using the \"stop\" method.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * var arrayOfBlobs = recorder.getArrayOfBlobs();\r\n * @returns {Array} Returns array of recorded blobs.\r\n */\r\n this.getArrayOfBlobs = function() {\r\n return arrayOfBlobs;\r\n };\r\n\r\n /**\r\n * This method records MediaStream.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n // set defaults\r\n self.blob = null;\r\n self.clearRecordedData();\r\n self.timestamps = [];\r\n allStates = [];\r\n arrayOfBlobs = [];\r\n\r\n var recorderHints = config;\r\n\r\n if (!config.disableLogs) {\r\n console.log('Passing following config over MediaRecorder API.', recorderHints);\r\n }\r\n\r\n if (mediaRecorder) {\r\n // mandatory to make sure Firefox doesn't fails to record streams 3-4 times without reloading the page.\r\n mediaRecorder = null;\r\n }\r\n\r\n if (isChrome && !isMediaRecorderCompatible()) {\r\n // to support video-only recording on stable\r\n recorderHints = 'video/vp8';\r\n }\r\n\r\n if (typeof MediaRecorder.isTypeSupported === 'function' && recorderHints.mimeType) {\r\n if (!MediaRecorder.isTypeSupported(recorderHints.mimeType)) {\r\n if (!config.disableLogs) {\r\n console.warn('MediaRecorder API seems unable to record mimeType:', recorderHints.mimeType);\r\n }\r\n\r\n recorderHints.mimeType = config.type === 'audio' ? 'audio/webm' : 'video/webm';\r\n }\r\n }\r\n\r\n // using MediaRecorder API here\r\n try {\r\n mediaRecorder = new MediaRecorder(mediaStream, recorderHints);\r\n\r\n // reset\r\n config.mimeType = recorderHints.mimeType;\r\n } catch (e) {\r\n // chrome-based fallback\r\n mediaRecorder = new MediaRecorder(mediaStream);\r\n }\r\n\r\n // old hack?\r\n if (recorderHints.mimeType && !MediaRecorder.isTypeSupported && 'canRecordMimeType' in mediaRecorder && mediaRecorder.canRecordMimeType(recorderHints.mimeType) === false) {\r\n if (!config.disableLogs) {\r\n console.warn('MediaRecorder API seems unable to record mimeType:', recorderHints.mimeType);\r\n }\r\n }\r\n\r\n // Dispatching OnDataAvailable Handler\r\n mediaRecorder.ondataavailable = function(e) {\r\n if (e.data) {\r\n allStates.push('ondataavailable: ' + bytesToSize(e.data.size));\r\n }\r\n\r\n if (typeof config.timeSlice === 'number') {\r\n if (e.data && e.data.size) {\r\n arrayOfBlobs.push(e.data);\r\n updateTimeStamp();\r\n\r\n if (typeof config.ondataavailable === 'function') {\r\n // intervals based blobs\r\n var blob = config.getNativeBlob ? e.data : new Blob([e.data], {\r\n type: getMimeType(recorderHints)\r\n });\r\n config.ondataavailable(blob);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n if (!e.data || !e.data.size || e.data.size < 100 || self.blob) {\r\n // make sure that stopRecording always getting fired\r\n // even if there is invalid data\r\n if (self.recordingCallback) {\r\n self.recordingCallback(new Blob([], {\r\n type: getMimeType(recorderHints)\r\n }));\r\n self.recordingCallback = null;\r\n }\r\n return;\r\n }\r\n\r\n self.blob = config.getNativeBlob ? e.data : new Blob([e.data], {\r\n type: getMimeType(recorderHints)\r\n });\r\n\r\n if (self.recordingCallback) {\r\n self.recordingCallback(self.blob);\r\n self.recordingCallback = null;\r\n }\r\n };\r\n\r\n mediaRecorder.onstart = function() {\r\n allStates.push('started');\r\n };\r\n\r\n mediaRecorder.onpause = function() {\r\n allStates.push('paused');\r\n };\r\n\r\n mediaRecorder.onresume = function() {\r\n allStates.push('resumed');\r\n };\r\n\r\n mediaRecorder.onstop = function() {\r\n allStates.push('stopped');\r\n };\r\n\r\n mediaRecorder.onerror = function(error) {\r\n if (!error) {\r\n return;\r\n }\r\n\r\n if (!error.name) {\r\n error.name = 'UnknownError';\r\n }\r\n\r\n allStates.push('error: ' + error);\r\n\r\n if (!config.disableLogs) {\r\n // via: https://w3c.github.io/mediacapture-record/MediaRecorder.html#exception-summary\r\n if (error.name.toString().toLowerCase().indexOf('invalidstate') !== -1) {\r\n console.error('The MediaRecorder is not in a state in which the proposed operation is allowed to be executed.', error);\r\n } else if (error.name.toString().toLowerCase().indexOf('notsupported') !== -1) {\r\n console.error('MIME type (', recorderHints.mimeType, ') is not supported.', error);\r\n } else if (error.name.toString().toLowerCase().indexOf('security') !== -1) {\r\n console.error('MediaRecorder security error', error);\r\n }\r\n\r\n // older code below\r\n else if (error.name === 'OutOfMemory') {\r\n console.error('The UA has exhaused the available memory. User agents SHOULD provide as much additional information as possible in the message attribute.', error);\r\n } else if (error.name === 'IllegalStreamModification') {\r\n console.error('A modification to the stream has occurred that makes it impossible to continue recording. An example would be the addition of a Track while recording is occurring. User agents SHOULD provide as much additional information as possible in the message attribute.', error);\r\n } else if (error.name === 'OtherRecordingError') {\r\n console.error('Used for an fatal error other than those listed above. User agents SHOULD provide as much additional information as possible in the message attribute.', error);\r\n } else if (error.name === 'GenericError') {\r\n console.error('The UA cannot provide the codec or recording option that has been requested.', error);\r\n } else {\r\n console.error('MediaRecorder Error', error);\r\n }\r\n }\r\n\r\n (function(looper) {\r\n if (!self.manuallyStopped && mediaRecorder && mediaRecorder.state === 'inactive') {\r\n delete config.timeslice;\r\n\r\n // 10 minutes, enough?\r\n mediaRecorder.start(10 * 60 * 1000);\r\n return;\r\n }\r\n\r\n setTimeout(looper, 1000);\r\n })();\r\n\r\n if (mediaRecorder.state !== 'inactive' && mediaRecorder.state !== 'stopped') {\r\n mediaRecorder.stop();\r\n }\r\n };\r\n\r\n if (typeof config.timeSlice === 'number') {\r\n updateTimeStamp();\r\n mediaRecorder.start(config.timeSlice);\r\n } else {\r\n // default is 60 minutes; enough?\r\n // use config => {timeSlice: 1000} otherwise\r\n\r\n mediaRecorder.start(3.6e+6);\r\n }\r\n\r\n if (config.initCallback) {\r\n config.initCallback(); // old code\r\n }\r\n };\r\n\r\n /**\r\n * @property {Array} timestamps - Array of time stamps\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * console.log(recorder.timestamps);\r\n */\r\n this.timestamps = [];\r\n\r\n function updateTimeStamp() {\r\n self.timestamps.push(new Date().getTime());\r\n\r\n if (typeof config.onTimeStamp === 'function') {\r\n config.onTimeStamp(self.timestamps[self.timestamps.length - 1], self.timestamps);\r\n }\r\n }\r\n\r\n function getMimeType(secondObject) {\r\n if (mediaRecorder && mediaRecorder.mimeType) {\r\n return mediaRecorder.mimeType;\r\n }\r\n\r\n return secondObject.mimeType || 'video/webm';\r\n }\r\n\r\n /**\r\n * This method stops recording MediaStream.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n callback = callback || function() {};\r\n\r\n self.manuallyStopped = true; // used inside the mediaRecorder.onerror\r\n\r\n if (!mediaRecorder) {\r\n return;\r\n }\r\n\r\n this.recordingCallback = callback;\r\n\r\n if (mediaRecorder.state === 'recording') {\r\n mediaRecorder.stop();\r\n }\r\n\r\n if (typeof config.timeSlice === 'number') {\r\n setTimeout(function() {\r\n self.blob = new Blob(arrayOfBlobs, {\r\n type: getMimeType(config)\r\n });\r\n\r\n self.recordingCallback(self.blob);\r\n }, 100);\r\n }\r\n };\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n if (!mediaRecorder) {\r\n return;\r\n }\r\n\r\n if (mediaRecorder.state === 'recording') {\r\n mediaRecorder.pause();\r\n }\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n if (!mediaRecorder) {\r\n return;\r\n }\r\n\r\n if (mediaRecorder.state === 'paused') {\r\n mediaRecorder.resume();\r\n }\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n if (mediaRecorder && mediaRecorder.state === 'recording') {\r\n self.stop(clearRecordedDataCB);\r\n }\r\n\r\n clearRecordedDataCB();\r\n };\r\n\r\n function clearRecordedDataCB() {\r\n arrayOfBlobs = [];\r\n mediaRecorder = null;\r\n self.timestamps = [];\r\n }\r\n\r\n // Reference to \"MediaRecorder\" object\r\n var mediaRecorder;\r\n\r\n /**\r\n * Access to native MediaRecorder API\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @instance\r\n * @example\r\n * var internal = recorder.getInternalRecorder();\r\n * internal.ondataavailable = function() {}; // override\r\n * internal.stream, internal.onpause, internal.onstop, etc.\r\n * @returns {Object} Returns internal recording object.\r\n */\r\n this.getInternalRecorder = function() {\r\n return mediaRecorder;\r\n };\r\n\r\n function isMediaStreamActive() {\r\n if ('active' in mediaStream) {\r\n if (!mediaStream.active) {\r\n return false;\r\n }\r\n } else if ('ended' in mediaStream) { // old hack\r\n if (mediaStream.ended) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * @property {Blob} blob - Recorded data as \"Blob\" object.\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.stop(function() {\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n this.blob = null;\r\n\r\n\r\n /**\r\n * Get MediaRecorder readonly state.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * var state = recorder.getState();\r\n * @returns {String} Returns recording state.\r\n */\r\n this.getState = function() {\r\n if (!mediaRecorder) {\r\n return 'inactive';\r\n }\r\n\r\n return mediaRecorder.state || 'inactive';\r\n };\r\n\r\n // list of all recording states\r\n var allStates = [];\r\n\r\n /**\r\n * Get MediaRecorder all recording states.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * var state = recorder.getAllStates();\r\n * @returns {Array} Returns all recording states\r\n */\r\n this.getAllStates = function() {\r\n return allStates;\r\n };\r\n\r\n // if any Track within the MediaStream is muted or not enabled at any time, \r\n // the browser will only record black frames \r\n // or silence since that is the content produced by the Track\r\n // so we need to stopRecording as soon as any single track ends.\r\n if (typeof config.checkForInactiveTracks === 'undefined') {\r\n config.checkForInactiveTracks = false; // disable to minimize CPU usage\r\n }\r\n\r\n var self = this;\r\n\r\n // this method checks if media stream is stopped\r\n // or if any track is ended.\r\n (function looper() {\r\n if (!mediaRecorder || config.checkForInactiveTracks === false) {\r\n return;\r\n }\r\n\r\n if (isMediaStreamActive() === false) {\r\n if (!config.disableLogs) {\r\n console.log('MediaStream seems stopped.');\r\n }\r\n self.stop();\r\n return;\r\n }\r\n\r\n setTimeout(looper, 1000); // check every second\r\n })();\r\n\r\n // for debugging\r\n this.name = 'MediaStreamRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.MediaStreamRecorder = MediaStreamRecorder;\r\n}\r\n\r\n// source code from: http://typedarray.org/wp-content/projects/WebAudioRecorder/script.js\r\n// https://github.com/mattdiamond/Recorderjs#license-mit\r\n// ______________________\r\n// StereoAudioRecorder.js\r\n\r\n/**\r\n * StereoAudioRecorder is a standalone class used by {@link RecordRTC} to bring \"stereo\" audio-recording in chrome.\r\n * @summary JavaScript standalone object for stereo audio recording.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef StereoAudioRecorder\r\n * @class\r\n * @example\r\n * var recorder = new StereoAudioRecorder(MediaStream, {\r\n * sampleRate: 44100,\r\n * bufferSize: 4096\r\n * });\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {sampleRate: 44100, bufferSize: 4096, numberOfAudioChannels: 1, etc.}\r\n */\r\n\r\nfunction StereoAudioRecorder(mediaStream, config) {\r\n if (!getTracks(mediaStream, 'audio').length) {\r\n throw 'Your stream has no audio tracks.';\r\n }\r\n\r\n config = config || {};\r\n\r\n var self = this;\r\n\r\n // variables\r\n var leftchannel = [];\r\n var rightchannel = [];\r\n var recording = false;\r\n var recordingLength = 0;\r\n var jsAudioNode;\r\n\r\n var numberOfAudioChannels = 2;\r\n\r\n /**\r\n * Set sample rates such as 8K or 16K. Reference: http://stackoverflow.com/a/28977136/552182\r\n * @property {number} desiredSampRate - Desired Bits per sample * 1000\r\n * @memberof StereoAudioRecorder\r\n * @instance\r\n * @example\r\n * var recorder = StereoAudioRecorder(mediaStream, {\r\n * desiredSampRate: 16 * 1000 // bits-per-sample * 1000\r\n * });\r\n */\r\n var desiredSampRate = config.desiredSampRate;\r\n\r\n // backward compatibility\r\n if (config.leftChannel === true) {\r\n numberOfAudioChannels = 1;\r\n }\r\n\r\n if (config.numberOfAudioChannels === 1) {\r\n numberOfAudioChannels = 1;\r\n }\r\n\r\n if (!numberOfAudioChannels || numberOfAudioChannels < 1) {\r\n numberOfAudioChannels = 2;\r\n }\r\n\r\n if (!config.disableLogs) {\r\n console.log('StereoAudioRecorder is set to record number of channels: ' + numberOfAudioChannels);\r\n }\r\n\r\n // if any Track within the MediaStream is muted or not enabled at any time, \r\n // the browser will only record black frames \r\n // or silence since that is the content produced by the Track\r\n // so we need to stopRecording as soon as any single track ends.\r\n if (typeof config.checkForInactiveTracks === 'undefined') {\r\n config.checkForInactiveTracks = true;\r\n }\r\n\r\n function isMediaStreamActive() {\r\n if (config.checkForInactiveTracks === false) {\r\n // always return \"true\"\r\n return true;\r\n }\r\n\r\n if ('active' in mediaStream) {\r\n if (!mediaStream.active) {\r\n return false;\r\n }\r\n } else if ('ended' in mediaStream) { // old hack\r\n if (mediaStream.ended) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * This method records MediaStream.\r\n * @method\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n if (isMediaStreamActive() === false) {\r\n throw 'Please make sure MediaStream is active.';\r\n }\r\n\r\n resetVariables();\r\n\r\n isAudioProcessStarted = isPaused = false;\r\n recording = true;\r\n\r\n if (typeof config.timeSlice !== 'undefined') {\r\n looper();\r\n }\r\n };\r\n\r\n function mergeLeftRightBuffers(config, callback) {\r\n function mergeAudioBuffers(config, cb) {\r\n var numberOfAudioChannels = config.numberOfAudioChannels;\r\n\r\n // todo: \"slice(0)\" --- is it causes loop? Should be removed?\r\n var leftBuffers = config.leftBuffers.slice(0);\r\n var rightBuffers = config.rightBuffers.slice(0);\r\n var sampleRate = config.sampleRate;\r\n var internalInterleavedLength = config.internalInterleavedLength;\r\n var desiredSampRate = config.desiredSampRate;\r\n\r\n if (numberOfAudioChannels === 2) {\r\n leftBuffers = mergeBuffers(leftBuffers, internalInterleavedLength);\r\n rightBuffers = mergeBuffers(rightBuffers, internalInterleavedLength);\r\n\r\n if (desiredSampRate) {\r\n leftBuffers = interpolateArray(leftBuffers, desiredSampRate, sampleRate);\r\n rightBuffers = interpolateArray(rightBuffers, desiredSampRate, sampleRate);\r\n }\r\n }\r\n\r\n if (numberOfAudioChannels === 1) {\r\n leftBuffers = mergeBuffers(leftBuffers, internalInterleavedLength);\r\n\r\n if (desiredSampRate) {\r\n leftBuffers = interpolateArray(leftBuffers, desiredSampRate, sampleRate);\r\n }\r\n }\r\n\r\n // set sample rate as desired sample rate\r\n if (desiredSampRate) {\r\n sampleRate = desiredSampRate;\r\n }\r\n\r\n // for changing the sampling rate, reference:\r\n // http://stackoverflow.com/a/28977136/552182\r\n function interpolateArray(data, newSampleRate, oldSampleRate) {\r\n var fitCount = Math.round(data.length * (newSampleRate / oldSampleRate));\r\n var newData = [];\r\n var springFactor = Number((data.length - 1) / (fitCount - 1));\r\n newData[0] = data[0];\r\n for (var i = 1; i < fitCount - 1; i++) {\r\n var tmp = i * springFactor;\r\n var before = Number(Math.floor(tmp)).toFixed();\r\n var after = Number(Math.ceil(tmp)).toFixed();\r\n var atPoint = tmp - before;\r\n newData[i] = linearInterpolate(data[before], data[after], atPoint);\r\n }\r\n newData[fitCount - 1] = data[data.length - 1];\r\n return newData;\r\n }\r\n\r\n function linearInterpolate(before, after, atPoint) {\r\n return before + (after - before) * atPoint;\r\n }\r\n\r\n function mergeBuffers(channelBuffer, rLength) {\r\n var result = new Float64Array(rLength);\r\n var offset = 0;\r\n var lng = channelBuffer.length;\r\n\r\n for (var i = 0; i < lng; i++) {\r\n var buffer = channelBuffer[i];\r\n result.set(buffer, offset);\r\n offset += buffer.length;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n function interleave(leftChannel, rightChannel) {\r\n var length = leftChannel.length + rightChannel.length;\r\n\r\n var result = new Float64Array(length);\r\n\r\n var inputIndex = 0;\r\n\r\n for (var index = 0; index < length;) {\r\n result[index++] = leftChannel[inputIndex];\r\n result[index++] = rightChannel[inputIndex];\r\n inputIndex++;\r\n }\r\n return result;\r\n }\r\n\r\n function writeUTFBytes(view, offset, string) {\r\n var lng = string.length;\r\n for (var i = 0; i < lng; i++) {\r\n view.setUint8(offset + i, string.charCodeAt(i));\r\n }\r\n }\r\n\r\n // interleave both channels together\r\n var interleaved;\r\n\r\n if (numberOfAudioChannels === 2) {\r\n interleaved = interleave(leftBuffers, rightBuffers);\r\n }\r\n\r\n if (numberOfAudioChannels === 1) {\r\n interleaved = leftBuffers;\r\n }\r\n\r\n var interleavedLength = interleaved.length;\r\n\r\n // create wav file\r\n var resultingBufferLength = 44 + interleavedLength * 2;\r\n\r\n var buffer = new ArrayBuffer(resultingBufferLength);\r\n\r\n var view = new DataView(buffer);\r\n\r\n // RIFF chunk descriptor/identifier \r\n writeUTFBytes(view, 0, 'RIFF');\r\n\r\n // RIFF chunk length\r\n // changed \"44\" to \"36\" via #401\r\n view.setUint32(4, 36 + interleavedLength * 2, true);\r\n\r\n // RIFF type \r\n writeUTFBytes(view, 8, 'WAVE');\r\n\r\n // format chunk identifier \r\n // FMT sub-chunk\r\n writeUTFBytes(view, 12, 'fmt ');\r\n\r\n // format chunk length \r\n view.setUint32(16, 16, true);\r\n\r\n // sample format (raw)\r\n view.setUint16(20, 1, true);\r\n\r\n // stereo (2 channels)\r\n view.setUint16(22, numberOfAudioChannels, true);\r\n\r\n // sample rate \r\n view.setUint32(24, sampleRate, true);\r\n\r\n // byte rate (sample rate * block align)\r\n view.setUint32(28, sampleRate * numberOfAudioChannels * 2, true);\r\n\r\n // block align (channel count * bytes per sample) \r\n view.setUint16(32, numberOfAudioChannels * 2, true);\r\n\r\n // bits per sample \r\n view.setUint16(34, 16, true);\r\n\r\n // data sub-chunk\r\n // data chunk identifier \r\n writeUTFBytes(view, 36, 'data');\r\n\r\n // data chunk length \r\n view.setUint32(40, interleavedLength * 2, true);\r\n\r\n // write the PCM samples\r\n var lng = interleavedLength;\r\n var index = 44;\r\n var volume = 1;\r\n for (var i = 0; i < lng; i++) {\r\n view.setInt16(index, interleaved[i] * (0x7FFF * volume), true);\r\n index += 2;\r\n }\r\n\r\n if (cb) {\r\n return cb({\r\n buffer: buffer,\r\n view: view\r\n });\r\n }\r\n\r\n postMessage({\r\n buffer: buffer,\r\n view: view\r\n });\r\n }\r\n\r\n if (config.noWorker) {\r\n mergeAudioBuffers(config, function(data) {\r\n callback(data.buffer, data.view);\r\n });\r\n return;\r\n }\r\n\r\n\r\n var webWorker = processInWebWorker(mergeAudioBuffers);\r\n\r\n webWorker.onmessage = function(event) {\r\n callback(event.data.buffer, event.data.view);\r\n\r\n // release memory\r\n URL.revokeObjectURL(webWorker.workerURL);\r\n\r\n // kill webworker (or Chrome will kill your page after ~25 calls)\r\n webWorker.terminate();\r\n };\r\n\r\n webWorker.postMessage(config);\r\n }\r\n\r\n function processInWebWorker(_function) {\r\n var workerURL = URL.createObjectURL(new Blob([_function.toString(),\r\n ';this.onmessage = function (eee) {' + _function.name + '(eee.data);}'\r\n ], {\r\n type: 'application/javascript'\r\n }));\r\n\r\n var worker = new Worker(workerURL);\r\n worker.workerURL = workerURL;\r\n return worker;\r\n }\r\n\r\n /**\r\n * This method stops recording MediaStream.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n callback = callback || function() {};\r\n\r\n // stop recording\r\n recording = false;\r\n\r\n mergeLeftRightBuffers({\r\n desiredSampRate: desiredSampRate,\r\n sampleRate: sampleRate,\r\n numberOfAudioChannels: numberOfAudioChannels,\r\n internalInterleavedLength: recordingLength,\r\n leftBuffers: leftchannel,\r\n rightBuffers: numberOfAudioChannels === 1 ? [] : rightchannel,\r\n noWorker: config.noWorker\r\n }, function(buffer, view) {\r\n /**\r\n * @property {Blob} blob - The recorded blob object.\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.stop(function(){\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n self.blob = new Blob([view], {\r\n type: 'audio/wav'\r\n });\r\n\r\n /**\r\n * @property {ArrayBuffer} buffer - The recorded buffer object.\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.stop(function(){\r\n * var buffer = recorder.buffer;\r\n * });\r\n */\r\n self.buffer = new ArrayBuffer(view.buffer.byteLength);\r\n\r\n /**\r\n * @property {DataView} view - The recorded data-view object.\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.stop(function(){\r\n * var view = recorder.view;\r\n * });\r\n */\r\n self.view = view;\r\n\r\n self.sampleRate = desiredSampRate || sampleRate;\r\n self.bufferSize = bufferSize;\r\n\r\n // recorded audio length\r\n self.length = recordingLength;\r\n\r\n isAudioProcessStarted = false;\r\n\r\n if (callback) {\r\n callback(self.blob);\r\n }\r\n });\r\n };\r\n\r\n if (typeof RecordRTC.Storage === 'undefined') {\r\n RecordRTC.Storage = {\r\n AudioContextConstructor: null,\r\n AudioContext: window.AudioContext || window.webkitAudioContext\r\n };\r\n }\r\n\r\n if (!RecordRTC.Storage.AudioContextConstructor || RecordRTC.Storage.AudioContextConstructor.state === 'closed') {\r\n RecordRTC.Storage.AudioContextConstructor = new RecordRTC.Storage.AudioContext();\r\n }\r\n\r\n var context = RecordRTC.Storage.AudioContextConstructor;\r\n\r\n // creates an audio node from the microphone incoming stream\r\n var audioInput = context.createMediaStreamSource(mediaStream);\r\n\r\n var legalBufferValues = [0, 256, 512, 1024, 2048, 4096, 8192, 16384];\r\n\r\n /**\r\n * From the spec: This value controls how frequently the audioprocess event is\r\n * dispatched and how many sample-frames need to be processed each call.\r\n * Lower values for buffer size will result in a lower (better) latency.\r\n * Higher values will be necessary to avoid audio breakup and glitches\r\n * The size of the buffer (in sample-frames) which needs to\r\n * be processed each time onprocessaudio is called.\r\n * Legal values are (256, 512, 1024, 2048, 4096, 8192, 16384).\r\n * @property {number} bufferSize - Buffer-size for how frequently the audioprocess event is dispatched.\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder = new StereoAudioRecorder(mediaStream, {\r\n * bufferSize: 4096\r\n * });\r\n */\r\n\r\n // \"0\" means, let chrome decide the most accurate buffer-size for current platform.\r\n var bufferSize = typeof config.bufferSize === 'undefined' ? 4096 : config.bufferSize;\r\n\r\n if (legalBufferValues.indexOf(bufferSize) === -1) {\r\n if (!config.disableLogs) {\r\n console.log('Legal values for buffer-size are ' + JSON.stringify(legalBufferValues, null, '\\t'));\r\n }\r\n }\r\n\r\n if (context.createJavaScriptNode) {\r\n jsAudioNode = context.createJavaScriptNode(bufferSize, numberOfAudioChannels, numberOfAudioChannels);\r\n } else if (context.createScriptProcessor) {\r\n jsAudioNode = context.createScriptProcessor(bufferSize, numberOfAudioChannels, numberOfAudioChannels);\r\n } else {\r\n throw 'WebAudio API has no support on this browser.';\r\n }\r\n\r\n // connect the stream to the script processor\r\n audioInput.connect(jsAudioNode);\r\n\r\n if (!config.bufferSize) {\r\n bufferSize = jsAudioNode.bufferSize; // device buffer-size\r\n }\r\n\r\n /**\r\n * The sample rate (in sample-frames per second) at which the\r\n * AudioContext handles audio. It is assumed that all AudioNodes\r\n * in the context run at this rate. In making this assumption,\r\n * sample-rate converters or \"varispeed\" processors are not supported\r\n * in real-time processing.\r\n * The sampleRate parameter describes the sample-rate of the\r\n * linear PCM audio data in the buffer in sample-frames per second.\r\n * An implementation must support sample-rates in at least\r\n * the range 22050 to 96000.\r\n * @property {number} sampleRate - Buffer-size for how frequently the audioprocess event is dispatched.\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder = new StereoAudioRecorder(mediaStream, {\r\n * sampleRate: 44100\r\n * });\r\n */\r\n var sampleRate = typeof config.sampleRate !== 'undefined' ? config.sampleRate : context.sampleRate || 44100;\r\n\r\n if (sampleRate < 22050 || sampleRate > 96000) {\r\n // Ref: http://stackoverflow.com/a/26303918/552182\r\n if (!config.disableLogs) {\r\n console.log('sample-rate must be under range 22050 and 96000.');\r\n }\r\n }\r\n\r\n if (!config.disableLogs) {\r\n if (config.desiredSampRate) {\r\n console.log('Desired sample-rate: ' + config.desiredSampRate);\r\n }\r\n }\r\n\r\n var isPaused = false;\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n isPaused = true;\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n if (isMediaStreamActive() === false) {\r\n throw 'Please make sure MediaStream is active.';\r\n }\r\n\r\n if (!recording) {\r\n if (!config.disableLogs) {\r\n console.log('Seems recording has been restarted.');\r\n }\r\n this.record();\r\n return;\r\n }\r\n\r\n isPaused = false;\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n config.checkForInactiveTracks = false;\r\n\r\n if (recording) {\r\n this.stop(clearRecordedDataCB);\r\n }\r\n\r\n clearRecordedDataCB();\r\n };\r\n\r\n function resetVariables() {\r\n leftchannel = [];\r\n rightchannel = [];\r\n recordingLength = 0;\r\n isAudioProcessStarted = false;\r\n recording = false;\r\n isPaused = false;\r\n context = null;\r\n\r\n self.leftchannel = leftchannel;\r\n self.rightchannel = rightchannel;\r\n self.numberOfAudioChannels = numberOfAudioChannels;\r\n self.desiredSampRate = desiredSampRate;\r\n self.sampleRate = sampleRate;\r\n self.recordingLength = recordingLength;\r\n\r\n intervalsBasedBuffers = {\r\n left: [],\r\n right: [],\r\n recordingLength: 0\r\n };\r\n }\r\n\r\n function clearRecordedDataCB() {\r\n if (jsAudioNode) {\r\n jsAudioNode.onaudioprocess = null;\r\n jsAudioNode.disconnect();\r\n jsAudioNode = null;\r\n }\r\n\r\n if (audioInput) {\r\n audioInput.disconnect();\r\n audioInput = null;\r\n }\r\n\r\n resetVariables();\r\n }\r\n\r\n // for debugging\r\n this.name = 'StereoAudioRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n var isAudioProcessStarted = false;\r\n\r\n function onAudioProcessDataAvailable(e) {\r\n if (isPaused) {\r\n return;\r\n }\r\n\r\n if (isMediaStreamActive() === false) {\r\n if (!config.disableLogs) {\r\n console.log('MediaStream seems stopped.');\r\n }\r\n jsAudioNode.disconnect();\r\n recording = false;\r\n }\r\n\r\n if (!recording) {\r\n if (audioInput) {\r\n audioInput.disconnect();\r\n audioInput = null;\r\n }\r\n return;\r\n }\r\n\r\n /**\r\n * This method is called on \"onaudioprocess\" event's first invocation.\r\n * @method {function} onAudioProcessStarted\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.onAudioProcessStarted: function() { };\r\n */\r\n if (!isAudioProcessStarted) {\r\n isAudioProcessStarted = true;\r\n if (config.onAudioProcessStarted) {\r\n config.onAudioProcessStarted();\r\n }\r\n\r\n if (config.initCallback) {\r\n config.initCallback();\r\n }\r\n }\r\n\r\n var left = e.inputBuffer.getChannelData(0);\r\n\r\n // we clone the samples\r\n var chLeft = new Float32Array(left);\r\n leftchannel.push(chLeft);\r\n\r\n if (numberOfAudioChannels === 2) {\r\n var right = e.inputBuffer.getChannelData(1);\r\n var chRight = new Float32Array(right);\r\n rightchannel.push(chRight);\r\n }\r\n\r\n recordingLength += bufferSize;\r\n\r\n // export raw PCM\r\n self.recordingLength = recordingLength;\r\n\r\n if (typeof config.timeSlice !== 'undefined') {\r\n intervalsBasedBuffers.recordingLength += bufferSize;\r\n intervalsBasedBuffers.left.push(chLeft);\r\n\r\n if (numberOfAudioChannels === 2) {\r\n intervalsBasedBuffers.right.push(chRight);\r\n }\r\n }\r\n }\r\n\r\n jsAudioNode.onaudioprocess = onAudioProcessDataAvailable;\r\n\r\n // to prevent self audio to be connected with speakers\r\n if (context.createMediaStreamDestination) {\r\n jsAudioNode.connect(context.createMediaStreamDestination());\r\n } else {\r\n jsAudioNode.connect(context.destination);\r\n }\r\n\r\n // export raw PCM\r\n this.leftchannel = leftchannel;\r\n this.rightchannel = rightchannel;\r\n this.numberOfAudioChannels = numberOfAudioChannels;\r\n this.desiredSampRate = desiredSampRate;\r\n this.sampleRate = sampleRate;\r\n self.recordingLength = recordingLength;\r\n\r\n // helper for intervals based blobs\r\n var intervalsBasedBuffers = {\r\n left: [],\r\n right: [],\r\n recordingLength: 0\r\n };\r\n\r\n // this looper is used to support intervals based blobs (via timeSlice+ondataavailable)\r\n function looper() {\r\n if (!recording || typeof config.ondataavailable !== 'function' || typeof config.timeSlice === 'undefined') {\r\n return;\r\n }\r\n\r\n if (intervalsBasedBuffers.left.length) {\r\n mergeLeftRightBuffers({\r\n desiredSampRate: desiredSampRate,\r\n sampleRate: sampleRate,\r\n numberOfAudioChannels: numberOfAudioChannels,\r\n internalInterleavedLength: intervalsBasedBuffers.recordingLength,\r\n leftBuffers: intervalsBasedBuffers.left,\r\n rightBuffers: numberOfAudioChannels === 1 ? [] : intervalsBasedBuffers.right\r\n }, function(buffer, view) {\r\n var blob = new Blob([view], {\r\n type: 'audio/wav'\r\n });\r\n config.ondataavailable(blob);\r\n\r\n setTimeout(looper, config.timeSlice);\r\n });\r\n\r\n intervalsBasedBuffers = {\r\n left: [],\r\n right: [],\r\n recordingLength: 0\r\n };\r\n } else {\r\n setTimeout(looper, config.timeSlice);\r\n }\r\n }\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.StereoAudioRecorder = StereoAudioRecorder;\r\n}\r\n\r\n// _________________\r\n// CanvasRecorder.js\r\n\r\n/**\r\n * CanvasRecorder is a standalone class used by {@link RecordRTC} to bring HTML5-Canvas recording into video WebM. It uses HTML2Canvas library and runs top over {@link Whammy}.\r\n * @summary HTML2Canvas recording into video WebM.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef CanvasRecorder\r\n * @class\r\n * @example\r\n * var recorder = new CanvasRecorder(htmlElement, { disableLogs: true, useWhammyRecorder: true });\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {HTMLElement} htmlElement - querySelector/getElementById/getElementsByTagName[0]/etc.\r\n * @param {object} config - {disableLogs:true, initCallback: function}\r\n */\r\n\r\nfunction CanvasRecorder(htmlElement, config) {\r\n if (typeof html2canvas === 'undefined') {\r\n throw 'Please link: https://www.webrtc-experiment.com/screenshot.js';\r\n }\r\n\r\n config = config || {};\r\n if (!config.frameInterval) {\r\n config.frameInterval = 10;\r\n }\r\n\r\n // via DetectRTC.js\r\n var isCanvasSupportsStreamCapturing = false;\r\n ['captureStream', 'mozCaptureStream', 'webkitCaptureStream'].forEach(function(item) {\r\n if (item in document.createElement('canvas')) {\r\n isCanvasSupportsStreamCapturing = true;\r\n }\r\n });\r\n\r\n var _isChrome = (!!window.webkitRTCPeerConnection || !!window.webkitGetUserMedia) && !!window.chrome;\r\n\r\n var chromeVersion = 50;\r\n var matchArray = navigator.userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./);\r\n if (_isChrome && matchArray && matchArray[2]) {\r\n chromeVersion = parseInt(matchArray[2], 10);\r\n }\r\n\r\n if (_isChrome && chromeVersion < 52) {\r\n isCanvasSupportsStreamCapturing = false;\r\n }\r\n\r\n if (config.useWhammyRecorder) {\r\n isCanvasSupportsStreamCapturing = false;\r\n }\r\n\r\n var globalCanvas, mediaStreamRecorder;\r\n\r\n if (isCanvasSupportsStreamCapturing) {\r\n if (!config.disableLogs) {\r\n console.log('Your browser supports both MediRecorder API and canvas.captureStream!');\r\n }\r\n\r\n if (htmlElement instanceof HTMLCanvasElement) {\r\n globalCanvas = htmlElement;\r\n } else if (htmlElement instanceof CanvasRenderingContext2D) {\r\n globalCanvas = htmlElement.canvas;\r\n } else {\r\n throw 'Please pass either HTMLCanvasElement or CanvasRenderingContext2D.';\r\n }\r\n } else if (!!navigator.mozGetUserMedia) {\r\n if (!config.disableLogs) {\r\n console.error('Canvas recording is NOT supported in Firefox.');\r\n }\r\n }\r\n\r\n var isRecording;\r\n\r\n /**\r\n * This method records Canvas.\r\n * @method\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n isRecording = true;\r\n\r\n if (isCanvasSupportsStreamCapturing && !config.useWhammyRecorder) {\r\n // CanvasCaptureMediaStream\r\n var canvasMediaStream;\r\n if ('captureStream' in globalCanvas) {\r\n canvasMediaStream = globalCanvas.captureStream(25); // 25 FPS\r\n } else if ('mozCaptureStream' in globalCanvas) {\r\n canvasMediaStream = globalCanvas.mozCaptureStream(25);\r\n } else if ('webkitCaptureStream' in globalCanvas) {\r\n canvasMediaStream = globalCanvas.webkitCaptureStream(25);\r\n }\r\n\r\n try {\r\n var mdStream = new MediaStream();\r\n mdStream.addTrack(getTracks(canvasMediaStream, 'video')[0]);\r\n canvasMediaStream = mdStream;\r\n } catch (e) {}\r\n\r\n if (!canvasMediaStream) {\r\n throw 'captureStream API are NOT available.';\r\n }\r\n\r\n // Note: Jan 18, 2016 status is that, \r\n // Firefox MediaRecorder API can't record CanvasCaptureMediaStream object.\r\n mediaStreamRecorder = new MediaStreamRecorder(canvasMediaStream, {\r\n mimeType: config.mimeType || 'video/webm'\r\n });\r\n mediaStreamRecorder.record();\r\n } else {\r\n whammy.frames = [];\r\n lastTime = new Date().getTime();\r\n drawCanvasFrame();\r\n }\r\n\r\n if (config.initCallback) {\r\n config.initCallback();\r\n }\r\n };\r\n\r\n this.getWebPImages = function(callback) {\r\n if (htmlElement.nodeName.toLowerCase() !== 'canvas') {\r\n callback();\r\n return;\r\n }\r\n\r\n var framesLength = whammy.frames.length;\r\n whammy.frames.forEach(function(frame, idx) {\r\n var framesRemaining = framesLength - idx;\r\n if (!config.disableLogs) {\r\n console.log(framesRemaining + '/' + framesLength + ' frames remaining');\r\n }\r\n\r\n if (config.onEncodingCallback) {\r\n config.onEncodingCallback(framesRemaining, framesLength);\r\n }\r\n\r\n var webp = frame.image.toDataURL('image/webp', 1);\r\n whammy.frames[idx].image = webp;\r\n });\r\n\r\n if (!config.disableLogs) {\r\n console.log('Generating WebM');\r\n }\r\n\r\n callback();\r\n };\r\n\r\n /**\r\n * This method stops recording Canvas.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n isRecording = false;\r\n\r\n var that = this;\r\n\r\n if (isCanvasSupportsStreamCapturing && mediaStreamRecorder) {\r\n mediaStreamRecorder.stop(callback);\r\n return;\r\n }\r\n\r\n this.getWebPImages(function() {\r\n /**\r\n * @property {Blob} blob - Recorded frames in video/webm blob.\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.stop(function() {\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n whammy.compile(function(blob) {\r\n if (!config.disableLogs) {\r\n console.log('Recording finished!');\r\n }\r\n\r\n that.blob = blob;\r\n\r\n if (that.blob.forEach) {\r\n that.blob = new Blob([], {\r\n type: 'video/webm'\r\n });\r\n }\r\n\r\n if (callback) {\r\n callback(that.blob);\r\n }\r\n\r\n whammy.frames = [];\r\n });\r\n });\r\n };\r\n\r\n var isPausedRecording = false;\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n isPausedRecording = true;\r\n\r\n if (mediaStreamRecorder instanceof MediaStreamRecorder) {\r\n mediaStreamRecorder.pause();\r\n return;\r\n }\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n isPausedRecording = false;\r\n\r\n if (mediaStreamRecorder instanceof MediaStreamRecorder) {\r\n mediaStreamRecorder.resume();\r\n return;\r\n }\r\n\r\n if (!isRecording) {\r\n this.record();\r\n }\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n if (isRecording) {\r\n this.stop(clearRecordedDataCB);\r\n }\r\n clearRecordedDataCB();\r\n };\r\n\r\n function clearRecordedDataCB() {\r\n whammy.frames = [];\r\n isRecording = false;\r\n isPausedRecording = false;\r\n }\r\n\r\n // for debugging\r\n this.name = 'CanvasRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n function cloneCanvas() {\r\n //create a new canvas\r\n var newCanvas = document.createElement('canvas');\r\n var context = newCanvas.getContext('2d');\r\n\r\n //set dimensions\r\n newCanvas.width = htmlElement.width;\r\n newCanvas.height = htmlElement.height;\r\n\r\n //apply the old canvas to the new one\r\n context.drawImage(htmlElement, 0, 0);\r\n\r\n //return the new canvas\r\n return newCanvas;\r\n }\r\n\r\n function drawCanvasFrame() {\r\n if (isPausedRecording) {\r\n lastTime = new Date().getTime();\r\n return setTimeout(drawCanvasFrame, 500);\r\n }\r\n\r\n if (htmlElement.nodeName.toLowerCase() === 'canvas') {\r\n var duration = new Date().getTime() - lastTime;\r\n // via #206, by Jack i.e. @Seymourr\r\n lastTime = new Date().getTime();\r\n\r\n whammy.frames.push({\r\n image: cloneCanvas(),\r\n duration: duration\r\n });\r\n\r\n if (isRecording) {\r\n setTimeout(drawCanvasFrame, config.frameInterval);\r\n }\r\n return;\r\n }\r\n\r\n html2canvas(htmlElement, {\r\n grabMouse: typeof config.showMousePointer === 'undefined' || config.showMousePointer,\r\n onrendered: function(canvas) {\r\n var duration = new Date().getTime() - lastTime;\r\n if (!duration) {\r\n return setTimeout(drawCanvasFrame, config.frameInterval);\r\n }\r\n\r\n // via #206, by Jack i.e. @Seymourr\r\n lastTime = new Date().getTime();\r\n\r\n whammy.frames.push({\r\n image: canvas.toDataURL('image/webp', 1),\r\n duration: duration\r\n });\r\n\r\n if (isRecording) {\r\n setTimeout(drawCanvasFrame, config.frameInterval);\r\n }\r\n }\r\n });\r\n }\r\n\r\n var lastTime = new Date().getTime();\r\n\r\n var whammy = new Whammy.Video(100);\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.CanvasRecorder = CanvasRecorder;\r\n}\n\r\n// _________________\r\n// WhammyRecorder.js\r\n\r\n/**\r\n * WhammyRecorder is a standalone class used by {@link RecordRTC} to bring video recording in Chrome. It runs top over {@link Whammy}.\r\n * @summary Video recording feature in Chrome.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef WhammyRecorder\r\n * @class\r\n * @example\r\n * var recorder = new WhammyRecorder(mediaStream);\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {disableLogs: true, initCallback: function, video: HTMLVideoElement, etc.}\r\n */\r\n\r\nfunction WhammyRecorder(mediaStream, config) {\r\n\r\n config = config || {};\r\n\r\n if (!config.frameInterval) {\r\n config.frameInterval = 10;\r\n }\r\n\r\n if (!config.disableLogs) {\r\n console.log('Using frames-interval:', config.frameInterval);\r\n }\r\n\r\n /**\r\n * This method records video.\r\n * @method\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n if (!config.width) {\r\n config.width = 320;\r\n }\r\n\r\n if (!config.height) {\r\n config.height = 240;\r\n }\r\n\r\n if (!config.video) {\r\n config.video = {\r\n width: config.width,\r\n height: config.height\r\n };\r\n }\r\n\r\n if (!config.canvas) {\r\n config.canvas = {\r\n width: config.width,\r\n height: config.height\r\n };\r\n }\r\n\r\n canvas.width = config.canvas.width || 320;\r\n canvas.height = config.canvas.height || 240;\r\n\r\n context = canvas.getContext('2d');\r\n\r\n // setting defaults\r\n if (config.video && config.video instanceof HTMLVideoElement) {\r\n video = config.video.cloneNode();\r\n\r\n if (config.initCallback) {\r\n config.initCallback();\r\n }\r\n } else {\r\n video = document.createElement('video');\r\n\r\n setSrcObject(mediaStream, video);\r\n\r\n video.onloadedmetadata = function() { // \"onloadedmetadata\" may NOT work in FF?\r\n if (config.initCallback) {\r\n config.initCallback();\r\n }\r\n };\r\n\r\n video.width = config.video.width;\r\n video.height = config.video.height;\r\n }\r\n\r\n video.muted = true;\r\n video.play();\r\n\r\n lastTime = new Date().getTime();\r\n whammy = new Whammy.Video();\r\n\r\n if (!config.disableLogs) {\r\n console.log('canvas resolutions', canvas.width, '*', canvas.height);\r\n console.log('video width/height', video.width || canvas.width, '*', video.height || canvas.height);\r\n }\r\n\r\n drawFrames(config.frameInterval);\r\n };\r\n\r\n /**\r\n * Draw and push frames to Whammy\r\n * @param {integer} frameInterval - set minimum interval (in milliseconds) between each time we push a frame to Whammy\r\n */\r\n function drawFrames(frameInterval) {\r\n frameInterval = typeof frameInterval !== 'undefined' ? frameInterval : 10;\r\n\r\n var duration = new Date().getTime() - lastTime;\r\n if (!duration) {\r\n return setTimeout(drawFrames, frameInterval, frameInterval);\r\n }\r\n\r\n if (isPausedRecording) {\r\n lastTime = new Date().getTime();\r\n return setTimeout(drawFrames, 100);\r\n }\r\n\r\n // via #206, by Jack i.e. @Seymourr\r\n lastTime = new Date().getTime();\r\n\r\n if (video.paused) {\r\n // via: https://github.com/muaz-khan/WebRTC-Experiment/pull/316\r\n // Tweak for Android Chrome\r\n video.play();\r\n }\r\n\r\n context.drawImage(video, 0, 0, canvas.width, canvas.height);\r\n whammy.frames.push({\r\n duration: duration,\r\n image: canvas.toDataURL('image/webp')\r\n });\r\n\r\n if (!isStopDrawing) {\r\n setTimeout(drawFrames, frameInterval, frameInterval);\r\n }\r\n }\r\n\r\n function asyncLoop(o) {\r\n var i = -1,\r\n length = o.length;\r\n\r\n (function loop() {\r\n i++;\r\n if (i === length) {\r\n o.callback();\r\n return;\r\n }\r\n\r\n // \"setTimeout\" added by Jim McLeod\r\n setTimeout(function() {\r\n o.functionToLoop(loop, i);\r\n }, 1);\r\n })();\r\n }\r\n\r\n\r\n /**\r\n * remove black frames from the beginning to the specified frame\r\n * @param {Array} _frames - array of frames to be checked\r\n * @param {number} _framesToCheck - number of frame until check will be executed (-1 - will drop all frames until frame not matched will be found)\r\n * @param {number} _pixTolerance - 0 - very strict (only black pixel color) ; 1 - all\r\n * @param {number} _frameTolerance - 0 - very strict (only black frame color) ; 1 - all\r\n * @returns {Array} - array of frames\r\n */\r\n // pull#293 by @volodalexey\r\n function dropBlackFrames(_frames, _framesToCheck, _pixTolerance, _frameTolerance, callback) {\r\n var localCanvas = document.createElement('canvas');\r\n localCanvas.width = canvas.width;\r\n localCanvas.height = canvas.height;\r\n var context2d = localCanvas.getContext('2d');\r\n var resultFrames = [];\r\n\r\n var checkUntilNotBlack = _framesToCheck === -1;\r\n var endCheckFrame = (_framesToCheck && _framesToCheck > 0 && _framesToCheck <= _frames.length) ?\r\n _framesToCheck : _frames.length;\r\n var sampleColor = {\r\n r: 0,\r\n g: 0,\r\n b: 0\r\n };\r\n var maxColorDifference = Math.sqrt(\r\n Math.pow(255, 2) +\r\n Math.pow(255, 2) +\r\n Math.pow(255, 2)\r\n );\r\n var pixTolerance = _pixTolerance && _pixTolerance >= 0 && _pixTolerance <= 1 ? _pixTolerance : 0;\r\n var frameTolerance = _frameTolerance && _frameTolerance >= 0 && _frameTolerance <= 1 ? _frameTolerance : 0;\r\n var doNotCheckNext = false;\r\n\r\n asyncLoop({\r\n length: endCheckFrame,\r\n functionToLoop: function(loop, f) {\r\n var matchPixCount, endPixCheck, maxPixCount;\r\n\r\n var finishImage = function() {\r\n if (!doNotCheckNext && maxPixCount - matchPixCount <= maxPixCount * frameTolerance) {\r\n // console.log('removed black frame : ' + f + ' ; frame duration ' + _frames[f].duration);\r\n } else {\r\n // console.log('frame is passed : ' + f);\r\n if (checkUntilNotBlack) {\r\n doNotCheckNext = true;\r\n }\r\n resultFrames.push(_frames[f]);\r\n }\r\n loop();\r\n };\r\n\r\n if (!doNotCheckNext) {\r\n var image = new Image();\r\n image.onload = function() {\r\n context2d.drawImage(image, 0, 0, canvas.width, canvas.height);\r\n var imageData = context2d.getImageData(0, 0, canvas.width, canvas.height);\r\n matchPixCount = 0;\r\n endPixCheck = imageData.data.length;\r\n maxPixCount = imageData.data.length / 4;\r\n\r\n for (var pix = 0; pix < endPixCheck; pix += 4) {\r\n var currentColor = {\r\n r: imageData.data[pix],\r\n g: imageData.data[pix + 1],\r\n b: imageData.data[pix + 2]\r\n };\r\n var colorDifference = Math.sqrt(\r\n Math.pow(currentColor.r - sampleColor.r, 2) +\r\n Math.pow(currentColor.g - sampleColor.g, 2) +\r\n Math.pow(currentColor.b - sampleColor.b, 2)\r\n );\r\n // difference in color it is difference in color vectors (r1,g1,b1) <=> (r2,g2,b2)\r\n if (colorDifference <= maxColorDifference * pixTolerance) {\r\n matchPixCount++;\r\n }\r\n }\r\n finishImage();\r\n };\r\n image.src = _frames[f].image;\r\n } else {\r\n finishImage();\r\n }\r\n },\r\n callback: function() {\r\n resultFrames = resultFrames.concat(_frames.slice(endCheckFrame));\r\n\r\n if (resultFrames.length <= 0) {\r\n // at least one last frame should be available for next manipulation\r\n // if total duration of all frames will be < 1000 than ffmpeg doesn't work well...\r\n resultFrames.push(_frames[_frames.length - 1]);\r\n }\r\n callback(resultFrames);\r\n }\r\n });\r\n }\r\n\r\n var isStopDrawing = false;\r\n\r\n /**\r\n * This method stops recording video.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n callback = callback || function() {};\r\n\r\n isStopDrawing = true;\r\n\r\n var _this = this;\r\n // analyse of all frames takes some time!\r\n setTimeout(function() {\r\n // e.g. dropBlackFrames(frames, 10, 1, 1) - will cut all 10 frames\r\n // e.g. dropBlackFrames(frames, 10, 0.5, 0.5) - will analyse 10 frames\r\n // e.g. dropBlackFrames(frames, 10) === dropBlackFrames(frames, 10, 0, 0) - will analyse 10 frames with strict black color\r\n dropBlackFrames(whammy.frames, -1, null, null, function(frames) {\r\n whammy.frames = frames;\r\n\r\n // to display advertisement images!\r\n if (config.advertisement && config.advertisement.length) {\r\n whammy.frames = config.advertisement.concat(whammy.frames);\r\n }\r\n\r\n /**\r\n * @property {Blob} blob - Recorded frames in video/webm blob.\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.stop(function() {\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n whammy.compile(function(blob) {\r\n _this.blob = blob;\r\n\r\n if (_this.blob.forEach) {\r\n _this.blob = new Blob([], {\r\n type: 'video/webm'\r\n });\r\n }\r\n\r\n if (callback) {\r\n callback(_this.blob);\r\n }\r\n });\r\n });\r\n }, 10);\r\n };\r\n\r\n var isPausedRecording = false;\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n isPausedRecording = true;\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n isPausedRecording = false;\r\n\r\n if (isStopDrawing) {\r\n this.record();\r\n }\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n if (!isStopDrawing) {\r\n this.stop(clearRecordedDataCB);\r\n }\r\n clearRecordedDataCB();\r\n };\r\n\r\n function clearRecordedDataCB() {\r\n whammy.frames = [];\r\n isStopDrawing = true;\r\n isPausedRecording = false;\r\n }\r\n\r\n // for debugging\r\n this.name = 'WhammyRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n var canvas = document.createElement('canvas');\r\n var context = canvas.getContext('2d');\r\n\r\n var video;\r\n var lastTime;\r\n var whammy;\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.WhammyRecorder = WhammyRecorder;\r\n}\n\r\n// https://github.com/antimatter15/whammy/blob/master/LICENSE\r\n// _________\r\n// Whammy.js\r\n\r\n// todo: Firefox now supports webp for webm containers!\r\n// their MediaRecorder implementation works well!\r\n// should we provide an option to record via Whammy.js or MediaRecorder API is a better solution?\r\n\r\n/**\r\n * Whammy is a standalone class used by {@link RecordRTC} to bring video recording in Chrome. It is written by {@link https://github.com/antimatter15|antimatter15}\r\n * @summary A real time javascript webm encoder based on a canvas hack.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef Whammy\r\n * @class\r\n * @example\r\n * var recorder = new Whammy().Video(15);\r\n * recorder.add(context || canvas || dataURL);\r\n * var output = recorder.compile();\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\n\r\nvar Whammy = (function() {\r\n // a more abstract-ish API\r\n\r\n function WhammyVideo(duration) {\r\n this.frames = [];\r\n this.duration = duration || 1;\r\n this.quality = 0.8;\r\n }\r\n\r\n /**\r\n * Pass Canvas or Context or image/webp(string) to {@link Whammy} encoder.\r\n * @method\r\n * @memberof Whammy\r\n * @example\r\n * recorder = new Whammy().Video(0.8, 100);\r\n * recorder.add(canvas || context || 'image/webp');\r\n * @param {string} frame - Canvas || Context || image/webp\r\n * @param {number} duration - Stick a duration (in milliseconds)\r\n */\r\n WhammyVideo.prototype.add = function(frame, duration) {\r\n if ('canvas' in frame) { //CanvasRenderingContext2D\r\n frame = frame.canvas;\r\n }\r\n\r\n if ('toDataURL' in frame) {\r\n frame = frame.toDataURL('image/webp', this.quality);\r\n }\r\n\r\n if (!(/^data:image\\/webp;base64,/ig).test(frame)) {\r\n throw 'Input must be formatted properly as a base64 encoded DataURI of type image/webp';\r\n }\r\n this.frames.push({\r\n image: frame,\r\n duration: duration || this.duration\r\n });\r\n };\r\n\r\n function processInWebWorker(_function) {\r\n var blob = URL.createObjectURL(new Blob([_function.toString(),\r\n 'this.onmessage = function (eee) {' + _function.name + '(eee.data);}'\r\n ], {\r\n type: 'application/javascript'\r\n }));\r\n\r\n var worker = new Worker(blob);\r\n URL.revokeObjectURL(blob);\r\n return worker;\r\n }\r\n\r\n function whammyInWebWorker(frames) {\r\n function ArrayToWebM(frames) {\r\n var info = checkFrames(frames);\r\n if (!info) {\r\n return [];\r\n }\r\n\r\n var clusterMaxDuration = 30000;\r\n\r\n var EBML = [{\r\n 'id': 0x1a45dfa3, // EBML\r\n 'data': [{\r\n 'data': 1,\r\n 'id': 0x4286 // EBMLVersion\r\n }, {\r\n 'data': 1,\r\n 'id': 0x42f7 // EBMLReadVersion\r\n }, {\r\n 'data': 4,\r\n 'id': 0x42f2 // EBMLMaxIDLength\r\n }, {\r\n 'data': 8,\r\n 'id': 0x42f3 // EBMLMaxSizeLength\r\n }, {\r\n 'data': 'webm',\r\n 'id': 0x4282 // DocType\r\n }, {\r\n 'data': 2,\r\n 'id': 0x4287 // DocTypeVersion\r\n }, {\r\n 'data': 2,\r\n 'id': 0x4285 // DocTypeReadVersion\r\n }]\r\n }, {\r\n 'id': 0x18538067, // Segment\r\n 'data': [{\r\n 'id': 0x1549a966, // Info\r\n 'data': [{\r\n 'data': 1e6, //do things in millisecs (num of nanosecs for duration scale)\r\n 'id': 0x2ad7b1 // TimecodeScale\r\n }, {\r\n 'data': 'whammy',\r\n 'id': 0x4d80 // MuxingApp\r\n }, {\r\n 'data': 'whammy',\r\n 'id': 0x5741 // WritingApp\r\n }, {\r\n 'data': doubleToString(info.duration),\r\n 'id': 0x4489 // Duration\r\n }]\r\n }, {\r\n 'id': 0x1654ae6b, // Tracks\r\n 'data': [{\r\n 'id': 0xae, // TrackEntry\r\n 'data': [{\r\n 'data': 1,\r\n 'id': 0xd7 // TrackNumber\r\n }, {\r\n 'data': 1,\r\n 'id': 0x73c5 // TrackUID\r\n }, {\r\n 'data': 0,\r\n 'id': 0x9c // FlagLacing\r\n }, {\r\n 'data': 'und',\r\n 'id': 0x22b59c // Language\r\n }, {\r\n 'data': 'V_VP8',\r\n 'id': 0x86 // CodecID\r\n }, {\r\n 'data': 'VP8',\r\n 'id': 0x258688 // CodecName\r\n }, {\r\n 'data': 1,\r\n 'id': 0x83 // TrackType\r\n }, {\r\n 'id': 0xe0, // Video\r\n 'data': [{\r\n 'data': info.width,\r\n 'id': 0xb0 // PixelWidth\r\n }, {\r\n 'data': info.height,\r\n 'id': 0xba // PixelHeight\r\n }]\r\n }]\r\n }]\r\n }]\r\n }];\r\n\r\n //Generate clusters (max duration)\r\n var frameNumber = 0;\r\n var clusterTimecode = 0;\r\n while (frameNumber < frames.length) {\r\n\r\n var clusterFrames = [];\r\n var clusterDuration = 0;\r\n do {\r\n clusterFrames.push(frames[frameNumber]);\r\n clusterDuration += frames[frameNumber].duration;\r\n frameNumber++;\r\n } while (frameNumber < frames.length && clusterDuration < clusterMaxDuration);\r\n\r\n var clusterCounter = 0;\r\n var cluster = {\r\n 'id': 0x1f43b675, // Cluster\r\n 'data': getClusterData(clusterTimecode, clusterCounter, clusterFrames)\r\n }; //Add cluster to segment\r\n EBML[1].data.push(cluster);\r\n clusterTimecode += clusterDuration;\r\n }\r\n\r\n return generateEBML(EBML);\r\n }\r\n\r\n function getClusterData(clusterTimecode, clusterCounter, clusterFrames) {\r\n return [{\r\n 'data': clusterTimecode,\r\n 'id': 0xe7 // Timecode\r\n }].concat(clusterFrames.map(function(webp) {\r\n var block = makeSimpleBlock({\r\n discardable: 0,\r\n frame: webp.data.slice(4),\r\n invisible: 0,\r\n keyframe: 1,\r\n lacing: 0,\r\n trackNum: 1,\r\n timecode: Math.round(clusterCounter)\r\n });\r\n clusterCounter += webp.duration;\r\n return {\r\n data: block,\r\n id: 0xa3\r\n };\r\n }));\r\n }\r\n\r\n // sums the lengths of all the frames and gets the duration\r\n\r\n function checkFrames(frames) {\r\n if (!frames[0]) {\r\n postMessage({\r\n error: 'Something went wrong. Maybe WebP format is not supported in the current browser.'\r\n });\r\n return;\r\n }\r\n\r\n var width = frames[0].width,\r\n height = frames[0].height,\r\n duration = frames[0].duration;\r\n\r\n for (var i = 1; i < frames.length; i++) {\r\n duration += frames[i].duration;\r\n }\r\n return {\r\n duration: duration,\r\n width: width,\r\n height: height\r\n };\r\n }\r\n\r\n function numToBuffer(num) {\r\n var parts = [];\r\n while (num > 0) {\r\n parts.push(num & 0xff);\r\n num = num >> 8;\r\n }\r\n return new Uint8Array(parts.reverse());\r\n }\r\n\r\n function strToBuffer(str) {\r\n return new Uint8Array(str.split('').map(function(e) {\r\n return e.charCodeAt(0);\r\n }));\r\n }\r\n\r\n function bitsToBuffer(bits) {\r\n var data = [];\r\n var pad = (bits.length % 8) ? (new Array(1 + 8 - (bits.length % 8))).join('0') : '';\r\n bits = pad + bits;\r\n for (var i = 0; i < bits.length; i += 8) {\r\n data.push(parseInt(bits.substr(i, 8), 2));\r\n }\r\n return new Uint8Array(data);\r\n }\r\n\r\n function generateEBML(json) {\r\n var ebml = [];\r\n for (var i = 0; i < json.length; i++) {\r\n var data = json[i].data;\r\n\r\n if (typeof data === 'object') {\r\n data = generateEBML(data);\r\n }\r\n\r\n if (typeof data === 'number') {\r\n data = bitsToBuffer(data.toString(2));\r\n }\r\n\r\n if (typeof data === 'string') {\r\n data = strToBuffer(data);\r\n }\r\n\r\n var len = data.size || data.byteLength || data.length;\r\n var zeroes = Math.ceil(Math.ceil(Math.log(len) / Math.log(2)) / 8);\r\n var sizeToString = len.toString(2);\r\n var padded = (new Array((zeroes * 7 + 7 + 1) - sizeToString.length)).join('0') + sizeToString;\r\n var size = (new Array(zeroes)).join('0') + '1' + padded;\r\n\r\n ebml.push(numToBuffer(json[i].id));\r\n ebml.push(bitsToBuffer(size));\r\n ebml.push(data);\r\n }\r\n\r\n return new Blob(ebml, {\r\n type: 'video/webm'\r\n });\r\n }\r\n\r\n function toBinStrOld(bits) {\r\n var data = '';\r\n var pad = (bits.length % 8) ? (new Array(1 + 8 - (bits.length % 8))).join('0') : '';\r\n bits = pad + bits;\r\n for (var i = 0; i < bits.length; i += 8) {\r\n data += String.fromCharCode(parseInt(bits.substr(i, 8), 2));\r\n }\r\n return data;\r\n }\r\n\r\n function makeSimpleBlock(data) {\r\n var flags = 0;\r\n\r\n if (data.keyframe) {\r\n flags |= 128;\r\n }\r\n\r\n if (data.invisible) {\r\n flags |= 8;\r\n }\r\n\r\n if (data.lacing) {\r\n flags |= (data.lacing << 1);\r\n }\r\n\r\n if (data.discardable) {\r\n flags |= 1;\r\n }\r\n\r\n if (data.trackNum > 127) {\r\n throw 'TrackNumber > 127 not supported';\r\n }\r\n\r\n var out = [data.trackNum | 0x80, data.timecode >> 8, data.timecode & 0xff, flags].map(function(e) {\r\n return String.fromCharCode(e);\r\n }).join('') + data.frame;\r\n\r\n return out;\r\n }\r\n\r\n function parseWebP(riff) {\r\n var VP8 = riff.RIFF[0].WEBP[0];\r\n\r\n var frameStart = VP8.indexOf('\\x9d\\x01\\x2a'); // A VP8 keyframe starts with the 0x9d012a header\r\n for (var i = 0, c = []; i < 4; i++) {\r\n c[i] = VP8.charCodeAt(frameStart + 3 + i);\r\n }\r\n\r\n var width, height, tmp;\r\n\r\n //the code below is literally copied verbatim from the bitstream spec\r\n tmp = (c[1] << 8) | c[0];\r\n width = tmp & 0x3FFF;\r\n tmp = (c[3] << 8) | c[2];\r\n height = tmp & 0x3FFF;\r\n return {\r\n width: width,\r\n height: height,\r\n data: VP8,\r\n riff: riff\r\n };\r\n }\r\n\r\n function getStrLength(string, offset) {\r\n return parseInt(string.substr(offset + 4, 4).split('').map(function(i) {\r\n var unpadded = i.charCodeAt(0).toString(2);\r\n return (new Array(8 - unpadded.length + 1)).join('0') + unpadded;\r\n }).join(''), 2);\r\n }\r\n\r\n function parseRIFF(string) {\r\n var offset = 0;\r\n var chunks = {};\r\n\r\n while (offset < string.length) {\r\n var id = string.substr(offset, 4);\r\n var len = getStrLength(string, offset);\r\n var data = string.substr(offset + 4 + 4, len);\r\n offset += 4 + 4 + len;\r\n chunks[id] = chunks[id] || [];\r\n\r\n if (id === 'RIFF' || id === 'LIST') {\r\n chunks[id].push(parseRIFF(data));\r\n } else {\r\n chunks[id].push(data);\r\n }\r\n }\r\n return chunks;\r\n }\r\n\r\n function doubleToString(num) {\r\n return [].slice.call(\r\n new Uint8Array((new Float64Array([num])).buffer), 0).map(function(e) {\r\n return String.fromCharCode(e);\r\n }).reverse().join('');\r\n }\r\n\r\n var webm = new ArrayToWebM(frames.map(function(frame) {\r\n var webp = parseWebP(parseRIFF(atob(frame.image.slice(23))));\r\n webp.duration = frame.duration;\r\n return webp;\r\n }));\r\n\r\n postMessage(webm);\r\n }\r\n\r\n /**\r\n * Encodes frames in WebM container. It uses WebWorkinvoke to invoke 'ArrayToWebM' method.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof Whammy\r\n * @example\r\n * recorder = new Whammy().Video(0.8, 100);\r\n * recorder.compile(function(blob) {\r\n * // blob.size - blob.type\r\n * });\r\n */\r\n WhammyVideo.prototype.compile = function(callback) {\r\n var webWorker = processInWebWorker(whammyInWebWorker);\r\n\r\n webWorker.onmessage = function(event) {\r\n if (event.data.error) {\r\n console.error(event.data.error);\r\n return;\r\n }\r\n callback(event.data);\r\n };\r\n\r\n webWorker.postMessage(this.frames);\r\n };\r\n\r\n return {\r\n /**\r\n * A more abstract-ish API.\r\n * @method\r\n * @memberof Whammy\r\n * @example\r\n * recorder = new Whammy().Video(0.8, 100);\r\n * @param {?number} speed - 0.8\r\n * @param {?number} quality - 100\r\n */\r\n Video: WhammyVideo\r\n };\r\n})();\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.Whammy = Whammy;\r\n}\n\r\n// ______________ (indexed-db)\r\n// DiskStorage.js\r\n\r\n/**\r\n * DiskStorage is a standalone object used by {@link RecordRTC} to store recorded blobs in IndexedDB storage.\r\n * @summary Writing blobs into IndexedDB.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @example\r\n * DiskStorage.Store({\r\n * audioBlob: yourAudioBlob,\r\n * videoBlob: yourVideoBlob,\r\n * gifBlob : yourGifBlob\r\n * });\r\n * DiskStorage.Fetch(function(dataURL, type) {\r\n * if(type === 'audioBlob') { }\r\n * if(type === 'videoBlob') { }\r\n * if(type === 'gifBlob') { }\r\n * });\r\n * // DiskStorage.dataStoreName = 'recordRTC';\r\n * // DiskStorage.onError = function(error) { };\r\n * @property {function} init - This method must be called once to initialize IndexedDB ObjectStore. Though, it is auto-used internally.\r\n * @property {function} Fetch - This method fetches stored blobs from IndexedDB.\r\n * @property {function} Store - This method stores blobs in IndexedDB.\r\n * @property {function} onError - This function is invoked for any known/unknown error.\r\n * @property {string} dataStoreName - Name of the ObjectStore created in IndexedDB storage.\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\n\r\n\r\nvar DiskStorage = {\r\n /**\r\n * This method must be called once to initialize IndexedDB ObjectStore. Though, it is auto-used internally.\r\n * @method\r\n * @memberof DiskStorage\r\n * @internal\r\n * @example\r\n * DiskStorage.init();\r\n */\r\n init: function() {\r\n var self = this;\r\n\r\n if (typeof indexedDB === 'undefined' || typeof indexedDB.open === 'undefined') {\r\n console.error('IndexedDB API are not available in this browser.');\r\n return;\r\n }\r\n\r\n var dbVersion = 1;\r\n var dbName = this.dbName || location.href.replace(/\\/|:|#|%|\\.|\\[|\\]/g, ''),\r\n db;\r\n var request = indexedDB.open(dbName, dbVersion);\r\n\r\n function createObjectStore(dataBase) {\r\n dataBase.createObjectStore(self.dataStoreName);\r\n }\r\n\r\n function putInDB() {\r\n var transaction = db.transaction([self.dataStoreName], 'readwrite');\r\n\r\n if (self.videoBlob) {\r\n transaction.objectStore(self.dataStoreName).put(self.videoBlob, 'videoBlob');\r\n }\r\n\r\n if (self.gifBlob) {\r\n transaction.objectStore(self.dataStoreName).put(self.gifBlob, 'gifBlob');\r\n }\r\n\r\n if (self.audioBlob) {\r\n transaction.objectStore(self.dataStoreName).put(self.audioBlob, 'audioBlob');\r\n }\r\n\r\n function getFromStore(portionName) {\r\n transaction.objectStore(self.dataStoreName).get(portionName).onsuccess = function(event) {\r\n if (self.callback) {\r\n self.callback(event.target.result, portionName);\r\n }\r\n };\r\n }\r\n\r\n getFromStore('audioBlob');\r\n getFromStore('videoBlob');\r\n getFromStore('gifBlob');\r\n }\r\n\r\n request.onerror = self.onError;\r\n\r\n request.onsuccess = function() {\r\n db = request.result;\r\n db.onerror = self.onError;\r\n\r\n if (db.setVersion) {\r\n if (db.version !== dbVersion) {\r\n var setVersion = db.setVersion(dbVersion);\r\n setVersion.onsuccess = function() {\r\n createObjectStore(db);\r\n putInDB();\r\n };\r\n } else {\r\n putInDB();\r\n }\r\n } else {\r\n putInDB();\r\n }\r\n };\r\n request.onupgradeneeded = function(event) {\r\n createObjectStore(event.target.result);\r\n };\r\n },\r\n /**\r\n * This method fetches stored blobs from IndexedDB.\r\n * @method\r\n * @memberof DiskStorage\r\n * @internal\r\n * @example\r\n * DiskStorage.Fetch(function(dataURL, type) {\r\n * if(type === 'audioBlob') { }\r\n * if(type === 'videoBlob') { }\r\n * if(type === 'gifBlob') { }\r\n * });\r\n */\r\n Fetch: function(callback) {\r\n this.callback = callback;\r\n this.init();\r\n\r\n return this;\r\n },\r\n /**\r\n * This method stores blobs in IndexedDB.\r\n * @method\r\n * @memberof DiskStorage\r\n * @internal\r\n * @example\r\n * DiskStorage.Store({\r\n * audioBlob: yourAudioBlob,\r\n * videoBlob: yourVideoBlob,\r\n * gifBlob : yourGifBlob\r\n * });\r\n */\r\n Store: function(config) {\r\n this.audioBlob = config.audioBlob;\r\n this.videoBlob = config.videoBlob;\r\n this.gifBlob = config.gifBlob;\r\n\r\n this.init();\r\n\r\n return this;\r\n },\r\n /**\r\n * This function is invoked for any known/unknown error.\r\n * @method\r\n * @memberof DiskStorage\r\n * @internal\r\n * @example\r\n * DiskStorage.onError = function(error){\r\n * alerot( JSON.stringify(error) );\r\n * };\r\n */\r\n onError: function(error) {\r\n console.error(JSON.stringify(error, null, '\\t'));\r\n },\r\n\r\n /**\r\n * @property {string} dataStoreName - Name of the ObjectStore created in IndexedDB storage.\r\n * @memberof DiskStorage\r\n * @internal\r\n * @example\r\n * DiskStorage.dataStoreName = 'recordRTC';\r\n */\r\n dataStoreName: 'recordRTC',\r\n dbName: null\r\n};\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.DiskStorage = DiskStorage;\r\n}\n\r\n// ______________\r\n// GifRecorder.js\r\n\r\n/**\r\n * GifRecorder is standalone calss used by {@link RecordRTC} to record video or canvas into animated gif.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef GifRecorder\r\n * @class\r\n * @example\r\n * var recorder = new GifRecorder(mediaStream || canvas || context, { onGifPreview: function, onGifRecordingStarted: function, width: 1280, height: 720, frameRate: 200, quality: 10 });\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * img.src = URL.createObjectURL(blob);\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object or HTMLCanvasElement or CanvasRenderingContext2D.\r\n * @param {object} config - {disableLogs:true, initCallback: function, width: 320, height: 240, frameRate: 200, quality: 10}\r\n */\r\n\r\nfunction GifRecorder(mediaStream, config) {\r\n if (typeof GIFEncoder === 'undefined') {\r\n var script = document.createElement('script');\r\n script.src = 'https://www.webrtc-experiment.com/gif-recorder.js';\r\n (document.body || document.documentElement).appendChild(script);\r\n }\r\n\r\n config = config || {};\r\n\r\n var isHTMLObject = mediaStream instanceof CanvasRenderingContext2D || mediaStream instanceof HTMLCanvasElement;\r\n\r\n /**\r\n * This method records MediaStream.\r\n * @method\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n if (typeof GIFEncoder === 'undefined') {\r\n setTimeout(self.record, 1000);\r\n return;\r\n }\r\n\r\n if (!isLoadedMetaData) {\r\n setTimeout(self.record, 1000);\r\n return;\r\n }\r\n\r\n if (!isHTMLObject) {\r\n if (!config.width) {\r\n config.width = video.offsetWidth || 320;\r\n }\r\n\r\n if (!config.height) {\r\n config.height = video.offsetHeight || 240;\r\n }\r\n\r\n if (!config.video) {\r\n config.video = {\r\n width: config.width,\r\n height: config.height\r\n };\r\n }\r\n\r\n if (!config.canvas) {\r\n config.canvas = {\r\n width: config.width,\r\n height: config.height\r\n };\r\n }\r\n\r\n canvas.width = config.canvas.width || 320;\r\n canvas.height = config.canvas.height || 240;\r\n\r\n video.width = config.video.width || 320;\r\n video.height = config.video.height || 240;\r\n }\r\n\r\n // external library to record as GIF images\r\n gifEncoder = new GIFEncoder();\r\n\r\n // void setRepeat(int iter) \r\n // Sets the number of times the set of GIF frames should be played. \r\n // Default is 1; 0 means play indefinitely.\r\n gifEncoder.setRepeat(0);\r\n\r\n // void setFrameRate(Number fps) \r\n // Sets frame rate in frames per second. \r\n // Equivalent to setDelay(1000/fps).\r\n // Using \"setDelay\" instead of \"setFrameRate\"\r\n gifEncoder.setDelay(config.frameRate || 200);\r\n\r\n // void setQuality(int quality) \r\n // Sets quality of color quantization (conversion of images to the \r\n // maximum 256 colors allowed by the GIF specification). \r\n // Lower values (minimum = 1) produce better colors, \r\n // but slow processing significantly. 10 is the default, \r\n // and produces good color mapping at reasonable speeds. \r\n // Values greater than 20 do not yield significant improvements in speed.\r\n gifEncoder.setQuality(config.quality || 10);\r\n\r\n // Boolean start() \r\n // This writes the GIF Header and returns false if it fails.\r\n gifEncoder.start();\r\n\r\n if (typeof config.onGifRecordingStarted === 'function') {\r\n config.onGifRecordingStarted();\r\n }\r\n\r\n startTime = Date.now();\r\n\r\n function drawVideoFrame(time) {\r\n if (self.clearedRecordedData === true) {\r\n return;\r\n }\r\n\r\n if (isPausedRecording) {\r\n return setTimeout(function() {\r\n drawVideoFrame(time);\r\n }, 100);\r\n }\r\n\r\n lastAnimationFrame = requestAnimationFrame(drawVideoFrame);\r\n\r\n if (typeof lastFrameTime === undefined) {\r\n lastFrameTime = time;\r\n }\r\n\r\n // ~10 fps\r\n if (time - lastFrameTime < 90) {\r\n return;\r\n }\r\n\r\n if (!isHTMLObject && video.paused) {\r\n // via: https://github.com/muaz-khan/WebRTC-Experiment/pull/316\r\n // Tweak for Android Chrome\r\n video.play();\r\n }\r\n\r\n if (!isHTMLObject) {\r\n context.drawImage(video, 0, 0, canvas.width, canvas.height);\r\n }\r\n\r\n if (config.onGifPreview) {\r\n config.onGifPreview(canvas.toDataURL('image/png'));\r\n }\r\n\r\n gifEncoder.addFrame(context);\r\n lastFrameTime = time;\r\n }\r\n\r\n lastAnimationFrame = requestAnimationFrame(drawVideoFrame);\r\n\r\n if (config.initCallback) {\r\n config.initCallback();\r\n }\r\n };\r\n\r\n /**\r\n * This method stops recording MediaStream.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * img.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n callback = callback || function() {};\r\n\r\n if (lastAnimationFrame) {\r\n cancelAnimationFrame(lastAnimationFrame);\r\n }\r\n\r\n endTime = Date.now();\r\n\r\n /**\r\n * @property {Blob} blob - The recorded blob object.\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.stop(function(){\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n this.blob = new Blob([new Uint8Array(gifEncoder.stream().bin)], {\r\n type: 'image/gif'\r\n });\r\n\r\n callback(this.blob);\r\n\r\n // bug: find a way to clear old recorded blobs\r\n gifEncoder.stream().bin = [];\r\n };\r\n\r\n var isPausedRecording = false;\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n isPausedRecording = true;\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n isPausedRecording = false;\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n self.clearedRecordedData = true;\r\n clearRecordedDataCB();\r\n };\r\n\r\n function clearRecordedDataCB() {\r\n if (gifEncoder) {\r\n gifEncoder.stream().bin = [];\r\n }\r\n }\r\n\r\n // for debugging\r\n this.name = 'GifRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n var canvas = document.createElement('canvas');\r\n var context = canvas.getContext('2d');\r\n\r\n if (isHTMLObject) {\r\n if (mediaStream instanceof CanvasRenderingContext2D) {\r\n context = mediaStream;\r\n canvas = context.canvas;\r\n } else if (mediaStream instanceof HTMLCanvasElement) {\r\n context = mediaStream.getContext('2d');\r\n canvas = mediaStream;\r\n }\r\n }\r\n\r\n var isLoadedMetaData = true;\r\n\r\n if (!isHTMLObject) {\r\n var video = document.createElement('video');\r\n video.muted = true;\r\n video.autoplay = true;\r\n video.playsInline = true;\r\n\r\n isLoadedMetaData = false;\r\n video.onloadedmetadata = function() {\r\n isLoadedMetaData = true;\r\n };\r\n\r\n setSrcObject(mediaStream, video);\r\n\r\n video.play();\r\n }\r\n\r\n var lastAnimationFrame = null;\r\n var startTime, endTime, lastFrameTime;\r\n\r\n var gifEncoder;\r\n\r\n var self = this;\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.GifRecorder = GifRecorder;\r\n}\n\r\n// Last time updated: 2019-06-21 4:09:42 AM UTC\r\n\r\n// ________________________\r\n// MultiStreamsMixer v1.2.2\r\n\r\n// Open-Sourced: https://github.com/muaz-khan/MultiStreamsMixer\r\n\r\n// --------------------------------------------------\r\n// Muaz Khan - www.MuazKhan.com\r\n// MIT License - www.WebRTC-Experiment.com/licence\r\n// --------------------------------------------------\r\n\r\nfunction MultiStreamsMixer(arrayOfMediaStreams, elementClass) {\r\n\r\n var browserFakeUserAgent = 'Fake/5.0 (FakeOS) AppleWebKit/123 (KHTML, like Gecko) Fake/12.3.4567.89 Fake/123.45';\r\n\r\n (function(that) {\r\n if (typeof RecordRTC !== 'undefined') {\r\n return;\r\n }\r\n\r\n if (!that) {\r\n return;\r\n }\r\n\r\n if (typeof window !== 'undefined') {\r\n return;\r\n }\r\n\r\n if (typeof global === 'undefined') {\r\n return;\r\n }\r\n\r\n global.navigator = {\r\n userAgent: browserFakeUserAgent,\r\n getUserMedia: function() {}\r\n };\r\n\r\n if (!global.console) {\r\n global.console = {};\r\n }\r\n\r\n if (typeof global.console.log === 'undefined' || typeof global.console.error === 'undefined') {\r\n global.console.error = global.console.log = global.console.log || function() {\r\n console.log(arguments);\r\n };\r\n }\r\n\r\n if (typeof document === 'undefined') {\r\n /*global document:true */\r\n that.document = {\r\n documentElement: {\r\n appendChild: function() {\r\n return '';\r\n }\r\n }\r\n };\r\n\r\n document.createElement = document.captureStream = document.mozCaptureStream = function() {\r\n var obj = {\r\n getContext: function() {\r\n return obj;\r\n },\r\n play: function() {},\r\n pause: function() {},\r\n drawImage: function() {},\r\n toDataURL: function() {\r\n return '';\r\n },\r\n style: {}\r\n };\r\n return obj;\r\n };\r\n\r\n that.HTMLVideoElement = function() {};\r\n }\r\n\r\n if (typeof location === 'undefined') {\r\n /*global location:true */\r\n that.location = {\r\n protocol: 'file:',\r\n href: '',\r\n hash: ''\r\n };\r\n }\r\n\r\n if (typeof screen === 'undefined') {\r\n /*global screen:true */\r\n that.screen = {\r\n width: 0,\r\n height: 0\r\n };\r\n }\r\n\r\n if (typeof URL === 'undefined') {\r\n /*global screen:true */\r\n that.URL = {\r\n createObjectURL: function() {\r\n return '';\r\n },\r\n revokeObjectURL: function() {\r\n return '';\r\n }\r\n };\r\n }\r\n\r\n /*global window:true */\r\n that.window = global;\r\n })(typeof global !== 'undefined' ? global : null);\r\n\r\n // requires: chrome://flags/#enable-experimental-web-platform-features\r\n\r\n elementClass = elementClass || 'multi-streams-mixer';\r\n\r\n var videos = [];\r\n var isStopDrawingFrames = false;\r\n\r\n var canvas = document.createElement('canvas');\r\n var context = canvas.getContext('2d');\r\n canvas.style.opacity = 0;\r\n canvas.style.position = 'absolute';\r\n canvas.style.zIndex = -1;\r\n canvas.style.top = '-1000em';\r\n canvas.style.left = '-1000em';\r\n canvas.className = elementClass;\r\n (document.body || document.documentElement).appendChild(canvas);\r\n\r\n this.disableLogs = false;\r\n this.frameInterval = 10;\r\n\r\n this.width = 360;\r\n this.height = 240;\r\n\r\n // use gain node to prevent echo\r\n this.useGainNode = true;\r\n\r\n var self = this;\r\n\r\n // _____________________________\r\n // Cross-Browser-Declarations.js\r\n\r\n // WebAudio API representer\r\n var AudioContext = window.AudioContext;\r\n\r\n if (typeof AudioContext === 'undefined') {\r\n if (typeof webkitAudioContext !== 'undefined') {\r\n /*global AudioContext:true */\r\n AudioContext = webkitAudioContext;\r\n }\r\n\r\n if (typeof mozAudioContext !== 'undefined') {\r\n /*global AudioContext:true */\r\n AudioContext = mozAudioContext;\r\n }\r\n }\r\n\r\n /*jshint -W079 */\r\n var URL = window.URL;\r\n\r\n if (typeof URL === 'undefined' && typeof webkitURL !== 'undefined') {\r\n /*global URL:true */\r\n URL = webkitURL;\r\n }\r\n\r\n if (typeof navigator !== 'undefined' && typeof navigator.getUserMedia === 'undefined') { // maybe window.navigator?\r\n if (typeof navigator.webkitGetUserMedia !== 'undefined') {\r\n navigator.getUserMedia = navigator.webkitGetUserMedia;\r\n }\r\n\r\n if (typeof navigator.mozGetUserMedia !== 'undefined') {\r\n navigator.getUserMedia = navigator.mozGetUserMedia;\r\n }\r\n }\r\n\r\n var MediaStream = window.MediaStream;\r\n\r\n if (typeof MediaStream === 'undefined' && typeof webkitMediaStream !== 'undefined') {\r\n MediaStream = webkitMediaStream;\r\n }\r\n\r\n /*global MediaStream:true */\r\n if (typeof MediaStream !== 'undefined') {\r\n // override \"stop\" method for all browsers\r\n if (typeof MediaStream.prototype.stop === 'undefined') {\r\n MediaStream.prototype.stop = function() {\r\n this.getTracks().forEach(function(track) {\r\n track.stop();\r\n });\r\n };\r\n }\r\n }\r\n\r\n var Storage = {};\r\n\r\n if (typeof AudioContext !== 'undefined') {\r\n Storage.AudioContext = AudioContext;\r\n } else if (typeof webkitAudioContext !== 'undefined') {\r\n Storage.AudioContext = webkitAudioContext;\r\n }\r\n\r\n function setSrcObject(stream, element) {\r\n if ('srcObject' in element) {\r\n element.srcObject = stream;\r\n } else if ('mozSrcObject' in element) {\r\n element.mozSrcObject = stream;\r\n } else {\r\n element.srcObject = stream;\r\n }\r\n }\r\n\r\n this.startDrawingFrames = function() {\r\n drawVideosToCanvas();\r\n };\r\n\r\n function drawVideosToCanvas() {\r\n if (isStopDrawingFrames) {\r\n return;\r\n }\r\n\r\n var videosLength = videos.length;\r\n\r\n var fullcanvas = false;\r\n var remaining = [];\r\n videos.forEach(function(video) {\r\n if (!video.stream) {\r\n video.stream = {};\r\n }\r\n\r\n if (video.stream.fullcanvas) {\r\n fullcanvas = video;\r\n } else {\r\n // todo: video.stream.active or video.stream.live to fix blank frames issues?\r\n remaining.push(video);\r\n }\r\n });\r\n\r\n if (fullcanvas) {\r\n canvas.width = fullcanvas.stream.width;\r\n canvas.height = fullcanvas.stream.height;\r\n } else if (remaining.length) {\r\n canvas.width = videosLength > 1 ? remaining[0].width * 2 : remaining[0].width;\r\n\r\n var height = 1;\r\n if (videosLength === 3 || videosLength === 4) {\r\n height = 2;\r\n }\r\n if (videosLength === 5 || videosLength === 6) {\r\n height = 3;\r\n }\r\n if (videosLength === 7 || videosLength === 8) {\r\n height = 4;\r\n }\r\n if (videosLength === 9 || videosLength === 10) {\r\n height = 5;\r\n }\r\n canvas.height = remaining[0].height * height;\r\n } else {\r\n canvas.width = self.width || 360;\r\n canvas.height = self.height || 240;\r\n }\r\n\r\n if (fullcanvas && fullcanvas instanceof HTMLVideoElement) {\r\n drawImage(fullcanvas);\r\n }\r\n\r\n remaining.forEach(function(video, idx) {\r\n drawImage(video, idx);\r\n });\r\n\r\n setTimeout(drawVideosToCanvas, self.frameInterval);\r\n }\r\n\r\n function drawImage(video, idx) {\r\n if (isStopDrawingFrames) {\r\n return;\r\n }\r\n\r\n var x = 0;\r\n var y = 0;\r\n var width = video.width;\r\n var height = video.height;\r\n\r\n if (idx === 1) {\r\n x = video.width;\r\n }\r\n\r\n if (idx === 2) {\r\n y = video.height;\r\n }\r\n\r\n if (idx === 3) {\r\n x = video.width;\r\n y = video.height;\r\n }\r\n\r\n if (idx === 4) {\r\n y = video.height * 2;\r\n }\r\n\r\n if (idx === 5) {\r\n x = video.width;\r\n y = video.height * 2;\r\n }\r\n\r\n if (idx === 6) {\r\n y = video.height * 3;\r\n }\r\n\r\n if (idx === 7) {\r\n x = video.width;\r\n y = video.height * 3;\r\n }\r\n\r\n if (typeof video.stream.left !== 'undefined') {\r\n x = video.stream.left;\r\n }\r\n\r\n if (typeof video.stream.top !== 'undefined') {\r\n y = video.stream.top;\r\n }\r\n\r\n if (typeof video.stream.width !== 'undefined') {\r\n width = video.stream.width;\r\n }\r\n\r\n if (typeof video.stream.height !== 'undefined') {\r\n height = video.stream.height;\r\n }\r\n\r\n context.drawImage(video, x, y, width, height);\r\n\r\n if (typeof video.stream.onRender === 'function') {\r\n video.stream.onRender(context, x, y, width, height, idx);\r\n }\r\n }\r\n\r\n function getMixedStream() {\r\n isStopDrawingFrames = false;\r\n var mixedVideoStream = getMixedVideoStream();\r\n\r\n var mixedAudioStream = getMixedAudioStream();\r\n if (mixedAudioStream) {\r\n mixedAudioStream.getTracks().filter(function(t) {\r\n return t.kind === 'audio';\r\n }).forEach(function(track) {\r\n mixedVideoStream.addTrack(track);\r\n });\r\n }\r\n\r\n var fullcanvas;\r\n arrayOfMediaStreams.forEach(function(stream) {\r\n if (stream.fullcanvas) {\r\n fullcanvas = true;\r\n }\r\n });\r\n\r\n // mixedVideoStream.prototype.appendStreams = appendStreams;\r\n // mixedVideoStream.prototype.resetVideoStreams = resetVideoStreams;\r\n // mixedVideoStream.prototype.clearRecordedData = clearRecordedData;\r\n\r\n return mixedVideoStream;\r\n }\r\n\r\n function getMixedVideoStream() {\r\n resetVideoStreams();\r\n\r\n var capturedStream;\r\n\r\n if ('captureStream' in canvas) {\r\n capturedStream = canvas.captureStream();\r\n } else if ('mozCaptureStream' in canvas) {\r\n capturedStream = canvas.mozCaptureStream();\r\n } else if (!self.disableLogs) {\r\n console.error('Upgrade to latest Chrome or otherwise enable this flag: chrome://flags/#enable-experimental-web-platform-features');\r\n }\r\n\r\n var videoStream = new MediaStream();\r\n\r\n capturedStream.getTracks().filter(function(t) {\r\n return t.kind === 'video';\r\n }).forEach(function(track) {\r\n videoStream.addTrack(track);\r\n });\r\n\r\n canvas.stream = videoStream;\r\n\r\n return videoStream;\r\n }\r\n\r\n function getMixedAudioStream() {\r\n // via: @pehrsons\r\n if (!Storage.AudioContextConstructor) {\r\n Storage.AudioContextConstructor = new Storage.AudioContext();\r\n }\r\n\r\n self.audioContext = Storage.AudioContextConstructor;\r\n\r\n self.audioSources = [];\r\n\r\n if (self.useGainNode === true) {\r\n self.gainNode = self.audioContext.createGain();\r\n self.gainNode.connect(self.audioContext.destination);\r\n self.gainNode.gain.value = 0; // don't hear self\r\n }\r\n\r\n var audioTracksLength = 0;\r\n arrayOfMediaStreams.forEach(function(stream) {\r\n if (!stream.getTracks().filter(function(t) {\r\n return t.kind === 'audio';\r\n }).length) {\r\n return;\r\n }\r\n\r\n audioTracksLength++;\r\n\r\n var audioSource = self.audioContext.createMediaStreamSource(stream);\r\n\r\n if (self.useGainNode === true) {\r\n audioSource.connect(self.gainNode);\r\n }\r\n\r\n self.audioSources.push(audioSource);\r\n });\r\n\r\n if (!audioTracksLength) {\r\n // because \"self.audioContext\" is not initialized\r\n // that's why we've to ignore rest of the code\r\n return;\r\n }\r\n\r\n self.audioDestination = self.audioContext.createMediaStreamDestination();\r\n self.audioSources.forEach(function(audioSource) {\r\n audioSource.connect(self.audioDestination);\r\n });\r\n return self.audioDestination.stream;\r\n }\r\n\r\n function getVideo(stream) {\r\n var video = document.createElement('video');\r\n\r\n setSrcObject(stream, video);\r\n\r\n video.className = elementClass;\r\n\r\n video.muted = true;\r\n video.volume = 0;\r\n\r\n video.width = stream.width || self.width || 360;\r\n video.height = stream.height || self.height || 240;\r\n\r\n video.play();\r\n\r\n return video;\r\n }\r\n\r\n this.appendStreams = function(streams) {\r\n if (!streams) {\r\n throw 'First parameter is required.';\r\n }\r\n\r\n if (!(streams instanceof Array)) {\r\n streams = [streams];\r\n }\r\n\r\n streams.forEach(function(stream) {\r\n var newStream = new MediaStream();\r\n\r\n if (stream.getTracks().filter(function(t) {\r\n return t.kind === 'video';\r\n }).length) {\r\n var video = getVideo(stream);\r\n video.stream = stream;\r\n videos.push(video);\r\n\r\n newStream.addTrack(stream.getTracks().filter(function(t) {\r\n return t.kind === 'video';\r\n })[0]);\r\n }\r\n\r\n if (stream.getTracks().filter(function(t) {\r\n return t.kind === 'audio';\r\n }).length) {\r\n var audioSource = self.audioContext.createMediaStreamSource(stream);\r\n self.audioDestination = self.audioContext.createMediaStreamDestination();\r\n audioSource.connect(self.audioDestination);\r\n\r\n newStream.addTrack(self.audioDestination.stream.getTracks().filter(function(t) {\r\n return t.kind === 'audio';\r\n })[0]);\r\n }\r\n\r\n arrayOfMediaStreams.push(newStream);\r\n });\r\n };\r\n\r\n this.releaseStreams = function() {\r\n videos = [];\r\n isStopDrawingFrames = true;\r\n\r\n if (self.gainNode) {\r\n self.gainNode.disconnect();\r\n self.gainNode = null;\r\n }\r\n\r\n if (self.audioSources.length) {\r\n self.audioSources.forEach(function(source) {\r\n source.disconnect();\r\n });\r\n self.audioSources = [];\r\n }\r\n\r\n if (self.audioDestination) {\r\n self.audioDestination.disconnect();\r\n self.audioDestination = null;\r\n }\r\n\r\n if (self.audioContext) {\r\n self.audioContext.close();\r\n }\r\n\r\n self.audioContext = null;\r\n\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n if (canvas.stream) {\r\n canvas.stream.stop();\r\n canvas.stream = null;\r\n }\r\n };\r\n\r\n this.resetVideoStreams = function(streams) {\r\n if (streams && !(streams instanceof Array)) {\r\n streams = [streams];\r\n }\r\n\r\n resetVideoStreams(streams);\r\n };\r\n\r\n function resetVideoStreams(streams) {\r\n videos = [];\r\n streams = streams || arrayOfMediaStreams;\r\n\r\n // via: @adrian-ber\r\n streams.forEach(function(stream) {\r\n if (!stream.getTracks().filter(function(t) {\r\n return t.kind === 'video';\r\n }).length) {\r\n return;\r\n }\r\n\r\n var video = getVideo(stream);\r\n video.stream = stream;\r\n videos.push(video);\r\n });\r\n }\r\n\r\n // for debugging\r\n this.name = 'MultiStreamsMixer';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n this.getMixedStream = getMixedStream;\r\n\r\n}\r\n\r\nif (typeof RecordRTC === 'undefined') {\r\n if (typeof module !== 'undefined' /* && !!module.exports*/ ) {\r\n module.exports = MultiStreamsMixer;\r\n }\r\n\r\n if (typeof define === 'function' && define.amd) {\r\n define('MultiStreamsMixer', [], function() {\r\n return MultiStreamsMixer;\r\n });\r\n }\r\n}\n\r\n// ______________________\r\n// MultiStreamRecorder.js\r\n\r\n/*\r\n * Video conference recording, using captureStream API along with WebAudio and Canvas2D API.\r\n */\r\n\r\n/**\r\n * MultiStreamRecorder can record multiple videos in single container.\r\n * @summary Multi-videos recorder.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef MultiStreamRecorder\r\n * @class\r\n * @example\r\n * var options = {\r\n * mimeType: 'video/webm'\r\n * }\r\n * var recorder = new MultiStreamRecorder(ArrayOfMediaStreams, options);\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n *\r\n * // or\r\n * var blob = recorder.blob;\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStreams} mediaStreams - Array of MediaStreams.\r\n * @param {object} config - {disableLogs:true, frameInterval: 1, mimeType: \"video/webm\"}\r\n */\r\n\r\nfunction MultiStreamRecorder(arrayOfMediaStreams, options) {\r\n arrayOfMediaStreams = arrayOfMediaStreams || [];\r\n var self = this;\r\n\r\n var mixer;\r\n var mediaRecorder;\r\n\r\n options = options || {\r\n elementClass: 'multi-streams-mixer',\r\n mimeType: 'video/webm',\r\n video: {\r\n width: 360,\r\n height: 240\r\n }\r\n };\r\n\r\n if (!options.frameInterval) {\r\n options.frameInterval = 10;\r\n }\r\n\r\n if (!options.video) {\r\n options.video = {};\r\n }\r\n\r\n if (!options.video.width) {\r\n options.video.width = 360;\r\n }\r\n\r\n if (!options.video.height) {\r\n options.video.height = 240;\r\n }\r\n\r\n /**\r\n * This method records all MediaStreams.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n // github/muaz-khan/MultiStreamsMixer\r\n mixer = new MultiStreamsMixer(arrayOfMediaStreams, options.elementClass || 'multi-streams-mixer');\r\n\r\n if (getAllVideoTracks().length) {\r\n mixer.frameInterval = options.frameInterval || 10;\r\n mixer.width = options.video.width || 360;\r\n mixer.height = options.video.height || 240;\r\n mixer.startDrawingFrames();\r\n }\r\n\r\n if (options.previewStream && typeof options.previewStream === 'function') {\r\n options.previewStream(mixer.getMixedStream());\r\n }\r\n\r\n // record using MediaRecorder API\r\n mediaRecorder = new MediaStreamRecorder(mixer.getMixedStream(), options);\r\n mediaRecorder.record();\r\n };\r\n\r\n function getAllVideoTracks() {\r\n var tracks = [];\r\n arrayOfMediaStreams.forEach(function(stream) {\r\n getTracks(stream, 'video').forEach(function(track) {\r\n tracks.push(track);\r\n });\r\n });\r\n return tracks;\r\n }\r\n\r\n /**\r\n * This method stops recording MediaStream.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n if (!mediaRecorder) {\r\n return;\r\n }\r\n\r\n mediaRecorder.stop(function(blob) {\r\n self.blob = blob;\r\n\r\n callback(blob);\r\n\r\n self.clearRecordedData();\r\n });\r\n };\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n if (mediaRecorder) {\r\n mediaRecorder.pause();\r\n }\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n if (mediaRecorder) {\r\n mediaRecorder.resume();\r\n }\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n if (mediaRecorder) {\r\n mediaRecorder.clearRecordedData();\r\n mediaRecorder = null;\r\n }\r\n\r\n if (mixer) {\r\n mixer.releaseStreams();\r\n mixer = null;\r\n }\r\n };\r\n\r\n /**\r\n * Add extra media-streams to existing recordings.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @param {MediaStreams} mediaStreams - Array of MediaStreams\r\n * @example\r\n * recorder.addStreams([newAudioStream, newVideoStream]);\r\n */\r\n this.addStreams = function(streams) {\r\n if (!streams) {\r\n throw 'First parameter is required.';\r\n }\r\n\r\n if (!(streams instanceof Array)) {\r\n streams = [streams];\r\n }\r\n\r\n arrayOfMediaStreams.concat(streams);\r\n\r\n if (!mediaRecorder || !mixer) {\r\n return;\r\n }\r\n\r\n mixer.appendStreams(streams);\r\n\r\n if (options.previewStream && typeof options.previewStream === 'function') {\r\n options.previewStream(mixer.getMixedStream());\r\n }\r\n };\r\n\r\n /**\r\n * Reset videos during live recording. Replace old videos e.g. replace cameras with full-screen.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @param {MediaStreams} mediaStreams - Array of MediaStreams\r\n * @example\r\n * recorder.resetVideoStreams([newVideo1, newVideo2]);\r\n */\r\n this.resetVideoStreams = function(streams) {\r\n if (!mixer) {\r\n return;\r\n }\r\n\r\n if (streams && !(streams instanceof Array)) {\r\n streams = [streams];\r\n }\r\n\r\n mixer.resetVideoStreams(streams);\r\n };\r\n\r\n /**\r\n * Returns MultiStreamsMixer\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * let mixer = recorder.getMixer();\r\n * mixer.appendStreams([newStream]);\r\n */\r\n this.getMixer = function() {\r\n return mixer;\r\n };\r\n\r\n // for debugging\r\n this.name = 'MultiStreamRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.MultiStreamRecorder = MultiStreamRecorder;\r\n}\n\r\n// _____________________\r\n// RecordRTC.promises.js\r\n\r\n/**\r\n * RecordRTCPromisesHandler adds promises support in {@link RecordRTC}. Try a {@link https://github.com/muaz-khan/RecordRTC/blob/master/simple-demos/RecordRTCPromisesHandler.html|demo here}\r\n * @summary Promises for {@link RecordRTC}\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef RecordRTCPromisesHandler\r\n * @class\r\n * @example\r\n * var recorder = new RecordRTCPromisesHandler(mediaStream, options);\r\n * recorder.startRecording()\r\n * .then(successCB)\r\n * .catch(errorCB);\r\n * // Note: You can access all RecordRTC API using \"recorder.recordRTC\" e.g. \r\n * recorder.recordRTC.onStateChanged = function(state) {};\r\n * recorder.recordRTC.setRecordingDuration(5000);\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - Single media-stream object, array of media-streams, html-canvas-element, etc.\r\n * @param {object} config - {type:\"video\", recorderType: MediaStreamRecorder, disableLogs: true, numberOfAudioChannels: 1, bufferSize: 0, sampleRate: 0, video: HTMLVideoElement, etc.}\r\n * @throws Will throw an error if \"new\" keyword is not used to initiate \"RecordRTCPromisesHandler\". Also throws error if first argument \"MediaStream\" is missing.\r\n * @requires {@link RecordRTC}\r\n */\r\n\r\nfunction RecordRTCPromisesHandler(mediaStream, options) {\r\n if (!this) {\r\n throw 'Use \"new RecordRTCPromisesHandler()\"';\r\n }\r\n\r\n if (typeof mediaStream === 'undefined') {\r\n throw 'First argument \"MediaStream\" is required.';\r\n }\r\n\r\n var self = this;\r\n\r\n /**\r\n * @property {Blob} blob - Access/reach the native {@link RecordRTC} object.\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * let internal = recorder.recordRTC.getInternalRecorder();\r\n * alert(internal instanceof MediaStreamRecorder);\r\n * recorder.recordRTC.onStateChanged = function(state) {};\r\n */\r\n self.recordRTC = new RecordRTC(mediaStream, options);\r\n\r\n /**\r\n * This method records MediaStream.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.startRecording()\r\n * .then(successCB)\r\n * .catch(errorCB);\r\n */\r\n this.startRecording = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n self.recordRTC.startRecording();\r\n resolve();\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method stops the recording.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.stopRecording().then(function() {\r\n * var blob = recorder.getBlob();\r\n * }).catch(errorCB);\r\n */\r\n this.stopRecording = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n self.recordRTC.stopRecording(function(url) {\r\n self.blob = self.recordRTC.getBlob();\r\n\r\n if (!self.blob || !self.blob.size) {\r\n reject('Empty blob.', self.blob);\r\n return;\r\n }\r\n\r\n resolve(url);\r\n });\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method pauses the recording. You can resume recording using \"resumeRecording\" method.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.pauseRecording()\r\n * .then(successCB)\r\n * .catch(errorCB);\r\n */\r\n this.pauseRecording = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n self.recordRTC.pauseRecording();\r\n resolve();\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method resumes the recording.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.resumeRecording()\r\n * .then(successCB)\r\n * .catch(errorCB);\r\n */\r\n this.resumeRecording = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n self.recordRTC.resumeRecording();\r\n resolve();\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method returns data-url for the recorded blob.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.stopRecording().then(function() {\r\n * recorder.getDataURL().then(function(dataURL) {\r\n * window.open(dataURL);\r\n * }).catch(errorCB);;\r\n * }).catch(errorCB);\r\n */\r\n this.getDataURL = function(callback) {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n self.recordRTC.getDataURL(function(dataURL) {\r\n resolve(dataURL);\r\n });\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method returns the recorded blob.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.stopRecording().then(function() {\r\n * recorder.getBlob().then(function(blob) {})\r\n * }).catch(errorCB);\r\n */\r\n this.getBlob = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n resolve(self.recordRTC.getBlob());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method returns the internal recording object.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * let internalRecorder = await recorder.getInternalRecorder();\r\n * if(internalRecorder instanceof MultiStreamRecorder) {\r\n * internalRecorder.addStreams([newAudioStream]);\r\n * internalRecorder.resetVideoStreams([screenStream]);\r\n * }\r\n * @returns {Object} \r\n */\r\n this.getInternalRecorder = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n resolve(self.recordRTC.getInternalRecorder());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method resets the recorder. So that you can reuse single recorder instance many times.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * await recorder.reset();\r\n * recorder.startRecording(); // record again\r\n */\r\n this.reset = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n resolve(self.recordRTC.reset());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Destroy RecordRTC instance. Clear all recorders and objects.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.destroy().then(successCB).catch(errorCB);\r\n */\r\n this.destroy = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n resolve(self.recordRTC.destroy());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Get recorder's readonly state.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * let state = await recorder.getState();\r\n * // or\r\n * recorder.getState().then(state => { console.log(state); })\r\n * @returns {String} Returns recording state.\r\n */\r\n this.getState = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n resolve(self.recordRTC.getState());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * @property {Blob} blob - Recorded data as \"Blob\" object.\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * await recorder.stopRecording();\r\n * let blob = recorder.getBlob(); // or \"recorder.recordRTC.blob\"\r\n * invokeSaveAsDialog(blob);\r\n */\r\n this.blob = null;\r\n\r\n /**\r\n * RecordRTC version number\r\n * @property {String} version - Release version number.\r\n * @memberof RecordRTCPromisesHandler\r\n * @static\r\n * @readonly\r\n * @example\r\n * alert(recorder.version);\r\n */\r\n this.version = '5.6.2';\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.RecordRTCPromisesHandler = RecordRTCPromisesHandler;\r\n}\n\r\n// ______________________\r\n// WebAssemblyRecorder.js\r\n\r\n/**\r\n * WebAssemblyRecorder lets you create webm videos in JavaScript via WebAssembly. The library consumes raw RGBA32 buffers (4 bytes per pixel) and turns them into a webm video with the given framerate and quality. This makes it compatible out-of-the-box with ImageData from a CANVAS. With realtime mode you can also use webm-wasm for streaming webm videos.\r\n * @summary Video recording feature in Chrome, Firefox and maybe Edge.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef WebAssemblyRecorder\r\n * @class\r\n * @example\r\n * var recorder = new WebAssemblyRecorder(mediaStream);\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {webAssemblyPath:'webm-wasm.wasm',workerPath: 'webm-worker.js', frameRate: 30, width: 1920, height: 1080, bitrate: 1024, realtime: true}\r\n */\r\nfunction WebAssemblyRecorder(stream, config) {\r\n // based on: github.com/GoogleChromeLabs/webm-wasm\r\n\r\n if (typeof ReadableStream === 'undefined' || typeof WritableStream === 'undefined') {\r\n // because it fixes readable/writable streams issues\r\n console.error('Following polyfill is strongly recommended: https://unpkg.com/@mattiasbuelens/web-streams-polyfill/dist/polyfill.min.js');\r\n }\r\n\r\n config = config || {};\r\n\r\n config.width = config.width || 640;\r\n config.height = config.height || 480;\r\n config.frameRate = config.frameRate || 30;\r\n config.bitrate = config.bitrate || 1200;\r\n config.realtime = config.realtime || true;\r\n\r\n function createBufferURL(buffer, type) {\r\n return URL.createObjectURL(new Blob([buffer], {\r\n type: type || ''\r\n }));\r\n }\r\n\r\n var finished;\r\n\r\n function cameraStream() {\r\n return new ReadableStream({\r\n start: function(controller) {\r\n var cvs = document.createElement('canvas');\r\n var video = document.createElement('video');\r\n var first = true;\r\n video.srcObject = stream;\r\n video.muted = true;\r\n video.height = config.height;\r\n video.width = config.width;\r\n video.volume = 0;\r\n video.onplaying = function() {\r\n cvs.width = config.width;\r\n cvs.height = config.height;\r\n var ctx = cvs.getContext('2d');\r\n var frameTimeout = 1000 / config.frameRate;\r\n var cameraTimer = setInterval(function f() {\r\n if (finished) {\r\n clearInterval(cameraTimer);\r\n controller.close();\r\n }\r\n\r\n if (first) {\r\n first = false;\r\n if (config.onVideoProcessStarted) {\r\n config.onVideoProcessStarted();\r\n }\r\n }\r\n\r\n ctx.drawImage(video, 0, 0);\r\n if (controller._controlledReadableStream.state !== 'closed') {\r\n try {\r\n controller.enqueue(\r\n ctx.getImageData(0, 0, config.width, config.height)\r\n );\r\n } catch (e) {}\r\n }\r\n }, frameTimeout);\r\n };\r\n video.play();\r\n }\r\n });\r\n }\r\n\r\n var worker;\r\n\r\n function startRecording(stream, buffer) {\r\n if (!config.workerPath && !buffer) {\r\n finished = false;\r\n\r\n // is it safe to use @latest ?\r\n\r\n fetch(\r\n 'https://unpkg.com/webm-wasm@latest/dist/webm-worker.js'\r\n ).then(function(r) {\r\n r.arrayBuffer().then(function(buffer) {\r\n startRecording(stream, buffer);\r\n });\r\n });\r\n return;\r\n }\r\n\r\n if (!config.workerPath && buffer instanceof ArrayBuffer) {\r\n var blob = new Blob([buffer], {\r\n type: 'text/javascript'\r\n });\r\n config.workerPath = URL.createObjectURL(blob);\r\n }\r\n\r\n if (!config.workerPath) {\r\n console.error('workerPath parameter is missing.');\r\n }\r\n\r\n worker = new Worker(config.workerPath);\r\n\r\n worker.postMessage(config.webAssemblyPath || 'https://unpkg.com/webm-wasm@latest/dist/webm-wasm.wasm');\r\n worker.addEventListener('message', function(event) {\r\n if (event.data === 'READY') {\r\n worker.postMessage({\r\n width: config.width,\r\n height: config.height,\r\n bitrate: config.bitrate || 1200,\r\n timebaseDen: config.frameRate || 30,\r\n realtime: config.realtime\r\n });\r\n\r\n cameraStream().pipeTo(new WritableStream({\r\n write: function(image) {\r\n if (finished) {\r\n console.error('Got image, but recorder is finished!');\r\n return;\r\n }\r\n\r\n worker.postMessage(image.data.buffer, [image.data.buffer]);\r\n }\r\n }));\r\n } else if (!!event.data) {\r\n if (!isPaused) {\r\n arrayOfBuffers.push(event.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * This method records video.\r\n * @method\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n arrayOfBuffers = [];\r\n isPaused = false;\r\n this.blob = null;\r\n startRecording(stream);\r\n\r\n if (typeof config.initCallback === 'function') {\r\n config.initCallback();\r\n }\r\n };\r\n\r\n var isPaused;\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n isPaused = true;\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n isPaused = false;\r\n };\r\n\r\n function terminate(callback) {\r\n if (!worker) {\r\n if (callback) {\r\n callback();\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Wait for null event data to indicate that the encoding is complete\r\n worker.addEventListener('message', function(event) {\r\n if (event.data === null) {\r\n worker.terminate();\r\n worker = null;\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n });\r\n\r\n worker.postMessage(null);\r\n }\r\n\r\n var arrayOfBuffers = [];\r\n\r\n /**\r\n * This method stops recording video.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n finished = true;\r\n\r\n var recorder = this;\r\n\r\n terminate(function() {\r\n recorder.blob = new Blob(arrayOfBuffers, {\r\n type: 'video/webm'\r\n });\r\n\r\n callback(recorder.blob);\r\n });\r\n };\r\n\r\n // for debugging\r\n this.name = 'WebAssemblyRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n arrayOfBuffers = [];\r\n isPaused = false;\r\n this.blob = null;\r\n\r\n // todo: if recording-ON then STOP it first\r\n };\r\n\r\n /**\r\n * @property {Blob} blob - The recorded blob object.\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.stop(function(){\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n this.blob = null;\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.WebAssemblyRecorder = WebAssemblyRecorder;\r\n}\n","import {downloadRecord, now} from \"../utils\";\nimport saveAs from \"../utils/file-save\";\nimport RecordRTC from 'recordrtc';\nimport {EVENTS, FILE_SUFFIX} from \"../constant\";\nimport Emitter from \"../utils/emitter\";\n\nexport default class RecordRTCLoader extends Emitter {\n constructor(player) {\n super();\n this.player = player;\n this.fileName = '';\n this.fileType = player._opt.recordType || FILE_SUFFIX.webm;\n this.isRecording = false;\n this.recordingTimestamp = 0;\n this.recordingInterval = null;\n player.debug.log('Recorder', 'init');\n }\n\n destroy() {\n this._reset();\n this.player.debug.log('Recorder', 'destroy');\n }\n\n setFileName(fileName, fileType) {\n this.fileName = fileName;\n\n if (FILE_SUFFIX.mp4 === fileType || FILE_SUFFIX.webm === fileType) {\n this.fileType = fileType;\n }\n }\n\n get recording() {\n return this.isRecording;\n }\n\n get recordTime() {\n return this.recordingTimestamp;\n }\n\n startRecord() {\n const debug = this.player.debug;\n const options = {\n type: 'video',\n mimeType: 'video/webm;codecs=h264',\n onTimeStamp: (timestamp) => {\n debug.log('Recorder', 'record timestamp :' + timestamp);\n },\n disableLogs: !this.player._opt.debug\n }\n\n try {\n const stream = this.player.video.$videoElement.captureStream(25);\n if (this.player.audio && this.player.audio.mediaStreamAudioDestinationNode &&\n this.player.audio.mediaStreamAudioDestinationNode.stream &&\n !this.player.audio.isStateSuspended() &&\n this.player.audio.hasAudio && this.player._opt.hasAudio) {\n const audioStream = this.player.audio.mediaStreamAudioDestinationNode.stream;\n if (audioStream.getAudioTracks().length > 0) {\n const audioTrack = audioStream.getAudioTracks()[0];\n if (audioTrack && audioTrack.enabled) {\n stream.addTrack(audioTrack);\n }\n }\n }\n this.recorder = RecordRTC(stream, options);\n } catch (e) {\n debug.error('Recorder', 'startRecord error', e);\n this.emit(EVENTS.recordCreateError);\n }\n if (this.recorder) {\n this.isRecording = true;\n this.player.emit(EVENTS.recording, true);\n this.recorder.startRecording();\n debug.log('Recorder', 'start recording');\n this.player.emit(EVENTS.recordStart);\n this.recordingInterval = window.setInterval(() => {\n this.recordingTimestamp += 1;\n this.player.emit(EVENTS.recordingTimestamp, this.recordingTimestamp);\n }, 1000);\n }\n }\n\n stopRecordAndSave() {\n if (!this.recorder || !this.isRecording) {\n return;\n }\n this.recorder.stopRecording(() => {\n this.player.debug.log('Recorder', 'stop recording');\n this.player.emit(EVENTS.recordEnd)\n const fileName = (this.fileName || now()) + '.' + (this.fileType || FILE_SUFFIX.webm)\n saveAs(this.recorder.getBlob(), fileName)\n this._reset();\n this.player.emit(EVENTS.recording, false);\n })\n }\n\n _reset() {\n this.isRecording = false;\n this.recordingTimestamp = 0;\n\n if (this.recorder) {\n this.recorder.destroy();\n this.recorder = null;\n }\n this.fileName = null;\n if (this.recordingInterval) {\n clearInterval(this.recordingInterval);\n }\n this.recordingInterval = null;\n }\n\n\n}\n","import RecordRTCLoader from \"./recordRTCLoader\";\n\nexport default class Recorder {\n constructor(player) {\n const Loader = Recorder.getLoaderFactory();\n return new Loader(player);\n }\n\n static getLoaderFactory() {\n return RecordRTCLoader;\n }\n}\n","import {EVENTS, EVENTS_ERROR, MEDIA_TYPE, WASM_ERROR, WORKER_CMD_TYPE, WORKER_SEND_TYPE} from \"../constant\";\nimport {isWebglRenderSupport, now} from \"../utils\";\n\nexport default class DecoderWorker {\n constructor(player) {\n this.player = player;\n this.decoderWorker = new Worker(player._opt.decoder)\n this._initDecoderWorker();\n player.debug.log('decoderWorker', 'init')\n }\n\n async destroy() {\n this.decoderWorker.postMessage({cmd: WORKER_SEND_TYPE.close})\n this.decoderWorker.terminate();\n this.decoderWorker = null;\n this.player.debug.log(`decoderWorker`, 'destroy');\n }\n\n _initDecoderWorker() {\n const {\n debug,\n events: {proxy},\n } = this.player;\n\n this.decoderWorker.onmessage = (event) => {\n const msg = event.data;\n switch (msg.cmd) {\n case WORKER_CMD_TYPE.init:\n debug.log(`decoderWorker`, 'onmessage:', WORKER_CMD_TYPE.init);\n if (!this.player.loaded) {\n this.player.emit(EVENTS.load);\n }\n this.player.emit(EVENTS.decoderWorkerInit);\n this._initWork();\n break;\n case WORKER_CMD_TYPE.videoCode:\n debug.log(`decoderWorker`, 'onmessage:', WORKER_CMD_TYPE.videoCode, msg.code);\n if (!this.player._times.decodeStart) {\n this.player._times.decodeStart = now();\n }\n this.player.video.updateVideoInfo({\n encTypeCode: msg.code\n })\n break;\n case WORKER_CMD_TYPE.audioCode:\n debug.log(`decoderWorker`, 'onmessage:', WORKER_CMD_TYPE.audioCode, msg.code);\n this.player.audio && this.player.audio.updateAudioInfo({\n encTypeCode: msg.code\n })\n break;\n case WORKER_CMD_TYPE.initVideo:\n debug.log(`decoderWorker`, 'onmessage:', WORKER_CMD_TYPE.initVideo, `width:${msg.w},height:${msg.h}`);\n this.player.video.updateVideoInfo({\n width: msg.w,\n height: msg.h\n })\n if (!this.player._opt.openWebglAlignment && !isWebglRenderSupport(msg.w)) {\n this.player.emit(EVENTS_ERROR.webglAlignmentError);\n return;\n }\n\n this.player.video.initCanvasViewSize();\n break;\n case WORKER_CMD_TYPE.initAudio:\n debug.log(`decoderWorker`, 'onmessage:', WORKER_CMD_TYPE.initAudio, `channels:${msg.channels},sampleRate:${msg.sampleRate}`);\n if (this.player.audio) {\n this.player.audio.updateAudioInfo(msg);\n this.player.audio.initScriptNode(msg);\n }\n break;\n case WORKER_CMD_TYPE.render:\n // debug.log(`decoderWorker`, 'onmessage:', WORKER_CMD_TYPE.render, `msg ts:${msg.ts}`);\n this.player.handleRender();\n this.player.video.render(msg);\n this.player.emit(EVENTS.timeUpdate, msg.ts)\n this.player.updateStats({fps: true, ts: msg.ts, buf: msg.delay})\n if (!this.player._times.videoStart) {\n this.player._times.videoStart = now();\n this.player.handlePlayToRenderTimes();\n }\n break;\n case WORKER_CMD_TYPE.playAudio:\n // debug.log(`decoderWorker`, 'onmessage:', WORKER_CMD_TYPE.playAudio, `msg ts:${msg.ts}`);\n // 只有在 playing 的时候。\n if (this.player.playing && this.player.audio) {\n this.player.audio.play(msg.buffer, msg.ts);\n }\n break;\n case WORKER_CMD_TYPE.wasmError:\n if (msg.message) {\n if (msg.message.indexOf(WASM_ERROR.invalidNalUnitSize) !== -1) {\n this.player.emitError(EVENTS_ERROR.wasmDecodeError);\n }\n }\n break;\n default:\n this.player[msg.cmd] && this.player[msg.cmd](msg);\n }\n }\n }\n\n _initWork() {\n const opt = {\n debug: this.player._opt.debug,\n useOffscreen: this.player._opt.useOffscreen,\n useWCS: this.player._opt.useWCS,\n videoBuffer: this.player._opt.videoBuffer,\n videoBufferDelay: this.player._opt.videoBufferDelay,\n openWebglAlignment: this.player._opt.openWebglAlignment\n }\n this.decoderWorker.postMessage({\n cmd: WORKER_SEND_TYPE.init,\n opt: JSON.stringify(opt),\n sampleRate: (this.player.audio && this.player.audio.audioContext.sampleRate) || 0\n })\n }\n\n decodeVideo(arrayBuffer, ts, isIFrame) {\n\n const options = {\n type: MEDIA_TYPE.video,\n ts: Math.max(ts, 0),\n isIFrame\n }\n // this.player.debug.log('decoderWorker', 'decodeVideo', options);\n this.decoderWorker.postMessage({\n cmd: WORKER_SEND_TYPE.decode,\n buffer: arrayBuffer,\n options\n }, [arrayBuffer.buffer])\n }\n\n decodeAudio(arrayBuffer, ts) {\n if (this.player._opt.useWCS) {\n this._decodeAudioNoDelay(arrayBuffer, ts);\n } else if (this.player._opt.useMSE) {\n this._decodeAudioNoDelay(arrayBuffer, ts);\n } else {\n this._decodeAudio(arrayBuffer, ts);\n }\n }\n\n //\n _decodeAudio(arrayBuffer, ts) {\n const options = {\n type: MEDIA_TYPE.audio,\n ts: Math.max(ts, 0)\n }\n // this.player.debug.log('decoderWorker', 'decodeAudio',options);\n this.decoderWorker.postMessage({\n cmd: WORKER_SEND_TYPE.decode,\n buffer: arrayBuffer,\n options\n }, [arrayBuffer.buffer])\n }\n\n\n _decodeAudioNoDelay(arrayBuffer, ts) {\n // console.log('_decodeAudioNoDelay', arrayBuffer);\n this.decoderWorker.postMessage({\n cmd: WORKER_SEND_TYPE.audioDecode,\n buffer: arrayBuffer,\n ts: Math.max(ts, 0)\n }, [arrayBuffer.buffer])\n }\n\n\n updateWorkConfig(config) {\n this.decoderWorker.postMessage({\n cmd: WORKER_SEND_TYPE.updateConfig,\n key: config.key,\n value: config.value\n })\n }\n\n}\n","import Emitter from \"../utils/emitter\";\nimport {FRAME_HEADER_EX, FRAME_TYPE_EX, MEDIA_TYPE, PACKET_TYPE_EX} from \"../constant\";\nimport {hevcEncoderNalePacketNotLength} from \"../utils\";\n\nexport default class CommonLoader extends Emitter {\n constructor(player) {\n super();\n this.player = player;\n\n this.stopId = null;\n this.firstTimestamp = null;\n this.startTimestamp = null;\n this.delay = -1;\n this.bufferList = [];\n this.dropping = false;\n this.initInterval();\n }\n\n destroy() {\n if (this.stopId) {\n clearInterval(this.stopId);\n this.stopId = null;\n }\n this.firstTimestamp = null;\n this.startTimestamp = null;\n this.delay = -1;\n this.bufferList = [];\n this.dropping = false;\n this.off();\n this.player.debug.log('CommonDemux', 'destroy');\n }\n\n getDelay(timestamp) {\n if (!timestamp) {\n return -1\n }\n if (!this.firstTimestamp) {\n this.firstTimestamp = timestamp\n this.startTimestamp = Date.now()\n this.delay = -1;\n } else {\n if (timestamp) {\n const localTimestamp = (Date.now() - this.startTimestamp);\n const timeTimestamp = (timestamp - this.firstTimestamp);\n if (localTimestamp >= timeTimestamp) {\n this.delay = localTimestamp - timeTimestamp;\n } else {\n this.delay = timeTimestamp - localTimestamp;\n }\n }\n }\n return this.delay\n }\n\n resetDelay() {\n this.firstTimestamp = null;\n this.startTimestamp = null;\n this.delay = -1;\n this.dropping = false;\n }\n\n //\n initInterval() {\n this.player.debug.log('common dumex', `init Interval`);\n let _loop = () => {\n let data;\n const videoBuffer = this.player._opt.videoBuffer;\n const videoBufferDelay = this.player._opt.videoBufferDelay;\n\n if (this.player._opt.useMSE &&\n this.player.mseDecoder &&\n this.player.mseDecoder.getSourceBufferUpdating()) {\n this.player.debug.warn('CommonDemux', `_loop getSourceBufferUpdating is true and bufferList length is ${this.bufferList.length}`);\n return;\n }\n\n if (this.bufferList.length) {\n if (this.dropping) {\n // this.player.debug.log('common dumex', `is dropping`);\n data = this.bufferList.shift();\n if (data.type === MEDIA_TYPE.audio && data.payload[1] === 0) {\n this._doDecoderDecode(data);\n }\n while (!data.isIFrame && this.bufferList.length) {\n data = this.bufferList.shift();\n if (data.type === MEDIA_TYPE.audio && data.payload[1] === 0) {\n this._doDecoderDecode(data);\n }\n }\n // i frame\n if (data.isIFrame && this.getDelay(data.ts) <= Math.min(videoBuffer, 200)) {\n this.dropping = false;\n this._doDecoderDecode(data);\n }\n } else {\n data = this.bufferList[0];\n if (this.getDelay(data.ts) === -1) {\n // this.player.debug.log('common dumex', `delay is -1`);\n this.bufferList.shift()\n this._doDecoderDecode(data);\n } else if (this.delay > (videoBuffer + videoBufferDelay)) {\n // this.player.debug.log('common dumex', `delay is ${this.delay}, set dropping is true`);\n this.resetDelay();\n this.dropping = true\n } else {\n data = this.bufferList[0]\n if (this.getDelay(data.ts) > videoBuffer) {\n // drop frame\n this.bufferList.shift()\n this._doDecoderDecode(data);\n } else {\n // this.player.debug.log('common dumex', `delay is ${this.delay}`);\n }\n }\n }\n }\n }\n _loop();\n this.stopId = setInterval(_loop, 10)\n }\n\n _doDecode(payload, type, ts, isIFrame, cts) {\n const player = this.player;\n let options = {\n ts: ts,\n cts: cts,\n type: type,\n isIFrame: false\n }\n // use offscreen\n if (player._opt.useWCS && !player._opt.useOffscreen) {\n if (type === MEDIA_TYPE.video) {\n options.isIFrame = isIFrame;\n }\n this.pushBuffer(payload, options)\n } else if (player._opt.useMSE) {\n // use mse\n if (type === MEDIA_TYPE.video) {\n options.isIFrame = isIFrame;\n }\n this.pushBuffer(payload, options)\n } else {\n //\n if (type === MEDIA_TYPE.video) {\n player.decoderWorker && player.decoderWorker.decodeVideo(payload, ts, isIFrame);\n } else if (type === MEDIA_TYPE.audio) {\n if (player._opt.hasAudio) {\n player.decoderWorker && player.decoderWorker.decodeAudio(payload, ts);\n }\n }\n }\n }\n\n _doDecoderDecode(data) {\n const player = this.player;\n const {webcodecsDecoder, mseDecoder} = player;\n\n if (data.type === MEDIA_TYPE.audio) {\n if (player._opt.hasAudio) {\n player.decoderWorker && player.decoderWorker.decodeAudio(data.payload, data.ts)\n }\n } else if (data.type === MEDIA_TYPE.video) {\n if (player._opt.useWCS && !player._opt.useOffscreen) {\n webcodecsDecoder.decodeVideo(data.payload, data.ts, data.isIFrame);\n } else if (player._opt.useMSE) {\n mseDecoder.decodeVideo(data.payload, data.ts, data.isIFrame, data.cts);\n }\n }\n }\n\n pushBuffer(payload, options) {\n // 音频\n if (options.type === MEDIA_TYPE.audio) {\n this.bufferList.push({\n ts: options.ts,\n payload: payload,\n type: MEDIA_TYPE.audio,\n })\n } else if (options.type === MEDIA_TYPE.video) {\n this.bufferList.push({\n ts: options.ts,\n cts: options.cts,\n payload: payload,\n type: MEDIA_TYPE.video,\n isIFrame: options.isIFrame\n })\n }\n }\n\n close() {\n\n }\n\n _decodeEnhancedH265Video(payload, ts) {\n const flags = payload[0];\n const frameTypeEx = flags & 0x30;\n const packetEx = flags & 0x0F;\n const codecId = payload.slice(1, 5);\n const tmp = new ArrayBuffer(4);\n const tmp32 = new Uint32Array(tmp);\n const isAV1 = String.fromCharCode(codecId[0]) == 'a';\n if (packetEx === PACKET_TYPE_EX.PACKET_TYPE_SEQ_START) {\n if (frameTypeEx === FRAME_TYPE_EX.FT_KEY) {\n // header video info\n const extraData = payload.slice(5);\n if (!isAV1) {\n const payloadBuffer = new Uint8Array(5 + extraData.length);\n payloadBuffer.set([0x1c, 0x00, 0x00, 0x00, 0x00], 0);\n payloadBuffer.set(extraData, 5);\n this._doDecode(payloadBuffer, MEDIA_TYPE.video, 0, true, 0);\n }\n }\n } else if (packetEx === PACKET_TYPE_EX.PACKET_TYPE_FRAMES) {\n let payloadBuffer = payload;\n let cts = 0;\n const isIFrame = frameTypeEx === FRAME_TYPE_EX.FT_KEY;\n\n if (!isAV1) {\n // h265\n tmp32[0] = payload[4]\n tmp32[1] = payload[3]\n tmp32[2] = payload[2]\n tmp32[3] = 0\n cts = tmp32[0];\n const data = payload.slice(8);\n payloadBuffer = hevcEncoderNalePacketNotLength(data, isIFrame);\n this._doDecode(payloadBuffer, MEDIA_TYPE.video, ts, isIFrame, cts);\n }\n\n } else if (packetEx === PACKET_TYPE_EX.PACKET_TYPE_FRAMESX) {\n const isIFrame = frameTypeEx === FRAME_TYPE_EX.FT_KEY;\n const data = payload.slice(5);\n let payloadBuffer = hevcEncoderNalePacketNotLength(data, isIFrame);\n this._doDecode(payloadBuffer, MEDIA_TYPE.video, ts, isIFrame, 0);\n }\n }\n\n\n _isEnhancedH265Header(flags) {\n return (flags & FRAME_HEADER_EX) === FRAME_HEADER_EX;\n }\n}\n","import {FLV_MEDIA_TYPE, MEDIA_TYPE} from \"../constant\";\nimport CommonLoader from \"./commonLoader\";\nimport {now} from \"../utils\";\n\nexport default class FlvLoader extends CommonLoader {\n constructor(player) {\n super(player);\n this.input = this._inputFlv();\n this.flvDemux = this.dispatchFlvData(this.input);\n player.debug.log('FlvDemux', 'init')\n }\n\n destroy() {\n super.destroy();\n this.input = null;\n this.flvDemux = null;\n this.player.debug.log('FlvDemux', 'destroy')\n }\n\n dispatch(data) {\n this.flvDemux(data);\n }\n\n * _inputFlv() {\n yield 9;\n const tmp = new ArrayBuffer(4)\n const tmp8 = new Uint8Array(tmp)\n const tmp32 = new Uint32Array(tmp)\n const player = this.player;\n\n while (true) {\n tmp8[3] = 0\n const t = yield 15\n const type = t[4]\n tmp8[0] = t[7]\n tmp8[1] = t[6]\n tmp8[2] = t[5]\n const length = tmp32[0]\n tmp8[0] = t[10]\n tmp8[1] = t[9]\n tmp8[2] = t[8]\n let ts = tmp32[0]\n if (ts === 0xFFFFFF) {\n tmp8[3] = t[11]\n ts = tmp32[0]\n }\n const payload = yield length\n switch (type) {\n case FLV_MEDIA_TYPE.audio:\n if (player._opt.hasAudio) {\n player.updateStats({\n abps: payload.byteLength\n })\n if (payload.byteLength > 0) {\n this._doDecode(payload, MEDIA_TYPE.audio, ts)\n }\n }\n break\n case FLV_MEDIA_TYPE.video:\n if (!player._times.demuxStart) {\n player._times.demuxStart = now();\n }\n if (player._opt.hasVideo) {\n player.updateStats({\n vbps: payload.byteLength\n })\n const flags = payload[0];\n if (this._isEnhancedH265Header(flags)) {\n this._decodeEnhancedH265Video(payload, ts);\n } else {\n const isIFrame = payload[0] >> 4 === 1;\n if (payload.byteLength > 0) {\n tmp32[0] = payload[4]\n tmp32[1] = payload[3]\n tmp32[2] = payload[2]\n tmp32[3] = 0\n let cts = tmp32[0]\n this._doDecode(payload, MEDIA_TYPE.video, ts, isIFrame, cts);\n }\n }\n }\n break\n }\n }\n }\n\n dispatchFlvData(input) {\n let need = input.next()\n let buffer = null\n return (value) => {\n let data = new Uint8Array(value)\n if (buffer) {\n let combine = new Uint8Array(buffer.length + data.length)\n combine.set(buffer)\n combine.set(data, buffer.length)\n data = combine\n buffer = null\n }\n while (data.length >= need.value) {\n let remain = data.slice(need.value)\n need = input.next(data.slice(0, need.value))\n data = remain\n }\n if (data.length > 0) {\n buffer = data\n }\n }\n }\n\n close() {\n this.input && this.input.return(null)\n }\n\n\n}\n","import {FLV_MEDIA_TYPE, MEDIA_TYPE} from \"../constant\";\nimport CommonLoader from \"./commonLoader\";\nimport {now} from \"../utils\";\n\nexport default class M7sLoader extends CommonLoader {\n constructor(player) {\n super(player);\n player.debug.log('M7sDemux', 'init')\n }\n\n destroy() {\n super.destroy();\n this.player.debug.log('M7sDemux', 'destroy')\n this.player = null;\n }\n\n dispatch(data) {\n const player = this.player;\n const dv = new DataView(data)\n const type = dv.getUint8(0);\n const ts = dv.getUint32(1, false);\n const tmp = new ArrayBuffer(4);\n const tmp32 = new Uint32Array(tmp);\n switch (type) {\n case MEDIA_TYPE.audio:\n if (player._opt.hasAudio) {\n const payload = new Uint8Array(data, 5)\n player.updateStats({\n abps: payload.byteLength\n })\n if (payload.byteLength > 0) {\n this._doDecode(payload, type, ts)\n }\n }\n break;\n case MEDIA_TYPE.video:\n if (player._opt.hasVideo) {\n if (!player._times.demuxStart) {\n player._times.demuxStart = now();\n }\n if (dv.byteLength > 5) {\n const payload = new Uint8Array(data, 5);\n\n const flags = payload[0];\n if (this._isEnhancedH265Header(flags)) {\n this._decodeEnhancedH265Video(payload, ts);\n } else {\n const isIframe = dv.getUint8(5) >> 4 === 1;\n player.updateStats({\n vbps: payload.byteLength\n })\n\n tmp32[0] = payload[4]\n tmp32[1] = payload[3]\n tmp32[2] = payload[2]\n tmp32[3] = 0\n let cts = tmp32[0]\n this._doDecode(payload, type, ts, isIframe, cts);\n }\n } else {\n this.player.debug.warn('M7sDemux', 'dispatch', 'dv byteLength is', dv.byteLength)\n }\n }\n break;\n }\n }\n\n\n}\n","import FlvLoader from \"./flvLoader\";\nimport M7sLoader from \"./m7sLoader\";\nimport {DEMUX_TYPE} from \"../constant\";\n\nexport default class Demux {\n constructor(player) {\n const Loader = Demux.getLoaderFactory(player._opt.demuxType);\n return new Loader(player);\n }\n\n static getLoaderFactory(type) {\n if (type === DEMUX_TYPE.m7s) {\n return M7sLoader;\n } else if (type === DEMUX_TYPE.flv) {\n return FlvLoader;\n }\n }\n}\n","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n// Exponential-Golomb buffer decoder\nclass ExpGolomb {\n\n constructor(uint8array) {\n this.TAG = 'ExpGolomb';\n\n this._buffer = uint8array;\n this._buffer_index = 0;\n this._total_bytes = uint8array.byteLength;\n this._total_bits = uint8array.byteLength * 8;\n this._current_word = 0;\n this._current_word_bits_left = 0;\n }\n\n destroy() {\n this._buffer = null;\n }\n\n _fillCurrentWord() {\n let buffer_bytes_left = this._total_bytes - this._buffer_index;\n if (buffer_bytes_left <= 0) {\n // throw new IllegalStateException('ExpGolomb: _fillCurrentWord() but no bytes available');\n }\n\n let bytes_read = Math.min(4, buffer_bytes_left);\n let word = new Uint8Array(4);\n word.set(this._buffer.subarray(this._buffer_index, this._buffer_index + bytes_read));\n this._current_word = new DataView(word.buffer).getUint32(0, false);\n\n this._buffer_index += bytes_read;\n this._current_word_bits_left = bytes_read * 8;\n }\n\n readBits(bits) {\n if (bits > 32) {\n // throw new InvalidArgumentException('ExpGolomb: readBits() bits exceeded max 32bits!');\n }\n\n if (bits <= this._current_word_bits_left) {\n let result = this._current_word >>> (32 - bits);\n this._current_word <<= bits;\n this._current_word_bits_left -= bits;\n return result;\n }\n\n let result = this._current_word_bits_left ? this._current_word : 0;\n result = result >>> (32 - this._current_word_bits_left);\n let bits_need_left = bits - this._current_word_bits_left;\n\n this._fillCurrentWord();\n let bits_read_next = Math.min(bits_need_left, this._current_word_bits_left);\n\n let result2 = this._current_word >>> (32 - bits_read_next);\n this._current_word <<= bits_read_next;\n this._current_word_bits_left -= bits_read_next;\n\n result = (result << bits_read_next) | result2;\n return result;\n }\n\n readBool() {\n return this.readBits(1) === 1;\n }\n\n readByte() {\n return this.readBits(8);\n }\n\n _skipLeadingZero() {\n let zero_count;\n for (zero_count = 0; zero_count < this._current_word_bits_left; zero_count++) {\n if (0 !== (this._current_word & (0x80000000 >>> zero_count))) {\n this._current_word <<= zero_count;\n this._current_word_bits_left -= zero_count;\n return zero_count;\n }\n }\n this._fillCurrentWord();\n return zero_count + this._skipLeadingZero();\n }\n\n readUEG() { // unsigned exponential golomb\n let leading_zeros = this._skipLeadingZero();\n return this.readBits(leading_zeros + 1) - 1;\n }\n\n readSEG() { // signed exponential golomb\n let value = this.readUEG();\n if (value & 0x01) {\n return (value + 1) >>> 1;\n } else {\n return -1 * (value >>> 1);\n }\n }\n\n}\n\nexport default ExpGolomb;\n","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport ExpGolomb from './exp-golomb.js';\n\nclass SPSParser {\n\n static _ebsp2rbsp(uint8array) {\n let src = uint8array;\n let src_length = src.byteLength;\n let dst = new Uint8Array(src_length);\n let dst_idx = 0;\n\n for (let i = 0; i < src_length; i++) {\n if (i >= 2) {\n // Unescape: Skip 0x03 after 00 00\n if (src[i] === 0x03 && src[i - 1] === 0x00 && src[i - 2] === 0x00) {\n continue;\n }\n }\n dst[dst_idx] = src[i];\n dst_idx++;\n }\n\n return new Uint8Array(dst.buffer, 0, dst_idx);\n }\n\n // 解析 SPS\n // https://zhuanlan.zhihu.com/p/27896239\n static parseSPS(uint8array) {\n let rbsp = SPSParser._ebsp2rbsp(uint8array);\n let gb = new ExpGolomb(rbsp);\n\n gb.readByte();\n // 标识当前H.264码流的profile。\n // 我们知道,H.264中定义了三种常用的档次profile: 基准档次:baseline profile;主要档次:main profile; 扩展档次:extended profile;\n\n let profile_idc = gb.readByte(); // profile_idc\n gb.readByte(); // constraint_set_flags[5] + reserved_zero[3]\n // 标识当前码流的Level。编码的Level定义了某种条件下的最大视频分辨率、最大视频帧率等参数,码流所遵从的level由level_idc指定。\n let level_idc = gb.readByte(); // level_idc\n // 表示当前的序列参数集的id。通过该id值,图像参数集pps可以引用其代表的sps中的参数。\n gb.readUEG(); // seq_parameter_set_id\n\n let profile_string = SPSParser.getProfileString(profile_idc);\n\n let level_string = SPSParser.getLevelString(level_idc);\n\n let chroma_format_idc = 1;\n let chroma_format = 420;\n let chroma_format_table = [0, 420, 422, 444];\n let bit_depth = 8;\n\n //\n if (profile_idc === 100 || profile_idc === 110 || profile_idc === 122 ||\n profile_idc === 244 || profile_idc === 44 || profile_idc === 83 ||\n profile_idc === 86 || profile_idc === 118 || profile_idc === 128 ||\n profile_idc === 138 || profile_idc === 144) {\n //\n chroma_format_idc = gb.readUEG();\n\n if (chroma_format_idc === 3) {\n gb.readBits(1); // separate_colour_plane_flag\n }\n if (chroma_format_idc <= 3) {\n chroma_format = chroma_format_table[chroma_format_idc];\n }\n\n bit_depth = gb.readUEG() + 8; // bit_depth_luma_minus8\n gb.readUEG(); // bit_depth_chroma_minus8\n gb.readBits(1); // qpprime_y_zero_transform_bypass_flag\n if (gb.readBool()) { // seq_scaling_matrix_present_flag\n let scaling_list_count = (chroma_format_idc !== 3) ? 8 : 12;\n for (let i = 0; i < scaling_list_count; i++) {\n if (gb.readBool()) { // seq_scaling_list_present_flag\n if (i < 6) {\n SPSParser._skipScalingList(gb, 16);\n } else {\n SPSParser._skipScalingList(gb, 64);\n }\n }\n }\n }\n }\n // 用于计算MaxFrameNum的值。计算公式为MaxFrameNum = 2^(log2_max_frame_num_minus4 +\n gb.readUEG(); // log2_max_frame_num_minus4\n // 表示解码picture order count(POC)的方法。POC是另一种计量图像序号的方式,与frame_num有着不同的计算方法。该语法元素的取值为0、1或2。\n let pic_order_cnt_type = gb.readUEG();\n if (pic_order_cnt_type === 0) {\n gb.readUEG(); // log2_max_pic_order_cnt_lsb_minus_4\n } else if (pic_order_cnt_type === 1) {\n gb.readBits(1); // delta_pic_order_always_zero_flag\n gb.readSEG(); // offset_for_non_ref_pic\n gb.readSEG(); // offset_for_top_to_bottom_field\n let num_ref_frames_in_pic_order_cnt_cycle = gb.readUEG();\n for (let i = 0; i < num_ref_frames_in_pic_order_cnt_cycle; i++) {\n gb.readSEG(); // offset_for_ref_frame\n }\n }\n // 用于表示参考帧的最大数目。\n let ref_frames = gb.readUEG(); // max_num_ref_frames\n // 标识位,说明frame_num中是否允许不连续的值。\n gb.readBits(1); // gaps_in_frame_num_value_allowed_flag\n // 用于计算图像的宽度。单位为宏块个数,因此图像的实际宽度为:\n let pic_width_in_mbs_minus1 = gb.readUEG();\n // 使用PicHeightInMapUnits来度量视频中一帧图像的高度。\n // PicHeightInMapUnits并非图像明确的以像素或宏块为单位的高度,而需要考虑该宏块是帧编码或场编码。PicHeightInMapUnits的计算方式为:\n let pic_height_in_map_units_minus1 = gb.readUEG();\n // 标识位,说明宏块的编码方式。当该标识位为0时,宏块可能为帧编码或场编码;\n // 该标识位为1时,所有宏块都采用帧编码。根据该标识位取值不同,PicHeightInMapUnits的含义也不同,\n // 为0时表示一场数据按宏块计算的高度,为1时表示一帧数据按宏块计算的高度。\n let frame_mbs_only_flag = gb.readBits(1);\n if (frame_mbs_only_flag === 0) {\n // 标识位,说明是否采用了宏块级的帧场自适应编码。当该标识位为0时,不存在帧编码和场编码之间的切换;当标识位为1时,宏块可能在帧编码和场编码模式之间进行选择。\n gb.readBits(1); // mb_adaptive_frame_field_flag\n }\n // 标识位,用于B_Skip、B_Direct模式运动矢量的推导计算。\n gb.readBits(1); // direct_8x8_inference_flag\n\n let frame_crop_left_offset = 0;\n let frame_crop_right_offset = 0;\n let frame_crop_top_offset = 0;\n let frame_crop_bottom_offset = 0;\n\n let frame_cropping_flag = gb.readBool();\n if (frame_cropping_flag) {\n frame_crop_left_offset = gb.readUEG();\n frame_crop_right_offset = gb.readUEG();\n frame_crop_top_offset = gb.readUEG();\n frame_crop_bottom_offset = gb.readUEG();\n }\n\n let sar_width = 1, sar_height = 1;\n let fps = 0, fps_fixed = true, fps_num = 0, fps_den = 0;\n // 标识位,说明SPS中是否存在VUI信息。\n let vui_parameters_present_flag = gb.readBool();\n if (vui_parameters_present_flag) {\n if (gb.readBool()) { // aspect_ratio_info_present_flag\n let aspect_ratio_idc = gb.readByte();\n let sar_w_table = [1, 12, 10, 16, 40, 24, 20, 32, 80, 18, 15, 64, 160, 4, 3, 2];\n let sar_h_table = [1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11, 33, 99, 3, 2, 1];\n\n if (aspect_ratio_idc > 0 && aspect_ratio_idc < 16) {\n sar_width = sar_w_table[aspect_ratio_idc - 1];\n sar_height = sar_h_table[aspect_ratio_idc - 1];\n } else if (aspect_ratio_idc === 255) {\n sar_width = gb.readByte() << 8 | gb.readByte();\n sar_height = gb.readByte() << 8 | gb.readByte();\n }\n }\n\n if (gb.readBool()) { // overscan_info_present_flag\n gb.readBool(); // overscan_appropriate_flag\n }\n if (gb.readBool()) { // video_signal_type_present_flag\n gb.readBits(4); // video_format & video_full_range_flag\n if (gb.readBool()) { // colour_description_present_flag\n gb.readBits(24); // colour_primaries & transfer_characteristics & matrix_coefficients\n }\n }\n if (gb.readBool()) { // chroma_loc_info_present_flag\n gb.readUEG(); // chroma_sample_loc_type_top_field\n gb.readUEG(); // chroma_sample_loc_type_bottom_field\n }\n if (gb.readBool()) { // timing_info_present_flag\n let num_units_in_tick = gb.readBits(32);\n let time_scale = gb.readBits(32);\n fps_fixed = gb.readBool(); // fixed_frame_rate_flag\n\n fps_num = time_scale;\n fps_den = num_units_in_tick * 2;\n fps = fps_num / fps_den;\n }\n }\n\n let sarScale = 1;\n if (sar_width !== 1 || sar_height !== 1) {\n sarScale = sar_width / sar_height;\n }\n\n let crop_unit_x = 0, crop_unit_y = 0;\n if (chroma_format_idc === 0) {\n crop_unit_x = 1;\n crop_unit_y = 2 - frame_mbs_only_flag;\n } else {\n let sub_wc = (chroma_format_idc === 3) ? 1 : 2;\n let sub_hc = (chroma_format_idc === 1) ? 2 : 1;\n crop_unit_x = sub_wc;\n crop_unit_y = sub_hc * (2 - frame_mbs_only_flag);\n }\n\n let codec_width = (pic_width_in_mbs_minus1 + 1) * 16;\n let codec_height = (2 - frame_mbs_only_flag) * ((pic_height_in_map_units_minus1 + 1) * 16);\n\n codec_width -= (frame_crop_left_offset + frame_crop_right_offset) * crop_unit_x;\n codec_height -= (frame_crop_top_offset + frame_crop_bottom_offset) * crop_unit_y;\n\n let present_width = Math.ceil(codec_width * sarScale);\n\n gb.destroy();\n gb = null;\n\n\n // 解析出来的SPS 内容。\n return {\n profile_string: profile_string, // baseline, high, high10, ...\n level_string: level_string, // 3, 3.1, 4, 4.1, 5, 5.1, ...\n bit_depth: bit_depth, // 8bit, 10bit, ...\n ref_frames: ref_frames,\n chroma_format: chroma_format, // 4:2:0, 4:2:2, ...\n chroma_format_string: SPSParser.getChromaFormatString(chroma_format),\n\n frame_rate: {\n fixed: fps_fixed,\n fps: fps,\n fps_den: fps_den,\n fps_num: fps_num\n },\n\n sar_ratio: {\n width: sar_width,\n height: sar_height\n },\n\n codec_size: {\n width: codec_width,\n height: codec_height\n },\n\n present_size: {\n width: present_width,\n height: codec_height\n }\n };\n }\n\n static _skipScalingList(gb, count) {\n let last_scale = 8, next_scale = 8;\n let delta_scale = 0;\n for (let i = 0; i < count; i++) {\n if (next_scale !== 0) {\n delta_scale = gb.readSEG();\n next_scale = (last_scale + delta_scale + 256) % 256;\n }\n last_scale = (next_scale === 0) ? last_scale : next_scale;\n }\n }\n\n // profile_idc = 66 → baseline profile;\n // profile_idc = 77 → main profile;\n // profile_idc = 88 → extended profile;\n // 在新版的标准中,还包括了High、High 10、High 4:2:2、High 4:4:4、High 10 Intra、High\n // 4:2:2 Intra、High 4:4:4 Intra、CAVLC 4:4:4 Intra\n static getProfileString(profile_idc) {\n switch (profile_idc) {\n case 66:\n return 'Baseline';\n case 77:\n return 'Main';\n case 88:\n return 'Extended';\n case 100:\n return 'High';\n case 110:\n return 'High10';\n case 122:\n return 'High422';\n case 244:\n return 'High444';\n default:\n return 'Unknown';\n }\n }\n\n static getLevelString(level_idc) {\n return (level_idc / 10).toFixed(1);\n }\n\n static getChromaFormatString(chroma) {\n switch (chroma) {\n case 420:\n return '4:2:0';\n case 422:\n return '4:2:2';\n case 444:\n return '4:4:4';\n default:\n return 'Unknown';\n }\n }\n\n}\n\nexport default SPSParser;","import SPSParser from './h264-sps-parser.js';\n\n//\nexport function parseAVCDecoderConfigurationRecord(arrayBuffer) {\n const meta = {}\n const v = new DataView(arrayBuffer.buffer);\n let version = v.getUint8(0); // configurationVersion\n let avcProfile = v.getUint8(1); // avcProfileIndication\n let profileCompatibility = v.getUint8(2); // profile_compatibil\n let avcLevel = v.getUint8(3); // AVCLevelIndication\n\n if (version !== 1 || avcProfile === 0) {\n // this._onError(DemuxErrors.FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord');\n\n return meta;\n }\n\n const _naluLengthSize = (v.getUint8(4) & 3) + 1; // lengthSizeMinusOne\n\n if (_naluLengthSize !== 3 && _naluLengthSize !== 4) { // holy shit!!!\n // this._onError(DemuxErrors.FORMAT_ERROR, `Flv: Strange NaluLengthSizeMinusOne: ${_naluLengthSize - 1}`);\n return meta;\n }\n let spsCount = v.getUint8(5) & 31; // numOfSequenceParameterSets\n\n if (spsCount === 0) {\n // this._onError(DemuxErrors.FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord: No SPS');\n return;\n } else if (spsCount > 1) {\n // Log.w(this.TAG, `Flv: Strange AVCDecoderConfigurationRecord: SPS Count = ${spsCount}`);\n }\n\n let offset = 6;\n for (let i = 0; i < spsCount; i++) {\n let len = v.getUint16(offset, false); // sequenceParameterSetLength\n offset += 2;\n\n if (len === 0) {\n continue;\n }\n\n // Notice: Nalu without startcode header (00 00 00 01)\n let sps = new Uint8Array(arrayBuffer.buffer, offset, len);\n offset += len;\n // flv.js作者选择了自己来解析这个数据结构,也是迫不得已,因为JS环境下没有ffmpeg,解析这个结构主要是为了提取 sps和pps。虽然理论上sps允许有多个,但其实一般就一个。\n // packetTtype 为 1 表示 NALU,NALU= network abstract layer unit,这是H.264的概念,网络抽象层数据单元,其实简单理解就是一帧视频数据。\n // pps的信息没什么用,所以作者只实现了sps的分析器,说明作者下了很大功夫去学习264的标准,其中的Golomb解码还是挺复杂的,能解对不容易,我在PC和手机平台都是用ffmpeg去解析的。\n // SPS里面包括了视频分辨率,帧率,profile level等视频重要信息。\n let config = SPSParser.parseSPS(sps);\n if (i !== 0) {\n // ignore other sps's config\n continue;\n }\n\n meta.codecWidth = config.codec_size.width;\n meta.codecHeight = config.codec_size.height;\n meta.presentWidth = config.present_size.width;\n meta.presentHeight = config.present_size.height;\n\n meta.profile = config.profile_string;\n meta.level = config.level_string;\n meta.bitDepth = config.bit_depth;\n meta.chromaFormat = config.chroma_format;\n meta.sarRatio = config.sar_ratio;\n meta.frameRate = config.frame_rate;\n\n if (config.frame_rate.fixed === false ||\n config.frame_rate.fps_num === 0 ||\n config.frame_rate.fps_den === 0) {\n meta.frameRate = {};\n }\n\n let fps_den = meta.frameRate.fps_den;\n let fps_num = meta.frameRate.fps_num;\n\n meta.refSampleDuration = meta.timescale * (fps_den / fps_num);\n\n let codecArray = sps.subarray(1, 4);\n\n let codecString = 'avc1.';\n for (let j = 0; j < 3; j++) {\n let h = codecArray[j].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n codecString += h;\n }\n // codec\n meta.codec = codecString;\n }\n\n let ppsCount = v.getUint8(offset); // numOfPictureParameterSets\n if (ppsCount === 0) {\n // this._onError(DemuxErrors.FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord: No PPS');\n return meta;\n } else if (ppsCount > 1) {\n // Log.w(this.TAG, `Flv: Strange AVCDecoderConfigurationRecord: PPS Count = ${ppsCount}`);\n }\n\n offset++;\n for (let i = 0; i < ppsCount; i++) {\n let len = v.getUint16(offset, false); // pictureParameterSetLength\n offset += 2;\n\n if (len === 0) {\n continue;\n }\n let pps = new Uint8Array(arrayBuffer.buffer, offset, len);\n\n // pps is useless for extracting video information\n offset += len;\n }\n\n meta.videoType = 'avc';\n\n // meta.avcc = arrayBuffer;\n return meta;\n}\n","import {formatVideoDecoderConfigure, noop, now} from \"../utils\";\nimport Emitter from \"../utils/emitter\";\nimport {ENCODED_VIDEO_TYPE, EVENTS, EVENTS_ERROR, VIDEO_ENC_CODE, WCS_ERROR} from \"../constant\";\nimport {parseAVCDecoderConfigurationRecord} from \"../utils/h264\";\n\n\nexport default class WebcodecsDecoder extends Emitter {\n constructor(player) {\n super();\n this.player = player;\n this.hasInit = false;\n this.isDecodeFirstIIframe = false;\n this.isInitInfo = false;\n this.decoder = null;\n this.initDecoder();\n player.debug.log('Webcodecs', 'init')\n }\n\n destroy() {\n if (this.decoder) {\n if (this.decoder.state !== 'closed') {\n this.decoder.close();\n }\n this.decoder = null;\n }\n\n this.hasInit = false;\n this.isInitInfo = false;\n this.isDecodeFirstIIframe = false;\n this.off();\n this.player.debug.log('Webcodecs', 'destroy')\n }\n\n initDecoder() {\n const _this = this;\n this.decoder = new VideoDecoder({\n output(videoFrame) {\n _this.handleDecode(videoFrame)\n },\n error(error) {\n _this.handleError(error)\n }\n })\n }\n\n handleDecode(videoFrame) {\n if (!this.isInitInfo) {\n this.player.video.updateVideoInfo({\n width: videoFrame.codedWidth,\n height: videoFrame.codedHeight\n })\n this.player.video.initCanvasViewSize();\n this.isInitInfo = true;\n }\n\n if (!this.player._times.videoStart) {\n this.player._times.videoStart = now();\n this.player.handlePlayToRenderTimes();\n }\n\n this.player.handleRender();\n this.player.video.render({\n videoFrame\n })\n\n this.player.updateStats({fps: true, ts: 0, buf: this.player.demux.delay})\n }\n\n handleError(error) {\n this.player.debug.error('Webcodecs', 'VideoDecoder handleError', error)\n }\n\n decodeVideo(payload, ts, isIframe) {\n // this.player.debug.log('Webcodecs decoder', 'decodeVideo', ts, isIframe);\n if (!this.hasInit) {\n if (isIframe && payload[1] === 0) {\n const videoCodec = (payload[0] & 0x0F);\n this.player.video.updateVideoInfo({\n encTypeCode: videoCodec\n })\n\n // 如果解码出来的是\n if (videoCodec === VIDEO_ENC_CODE.h265) {\n this.emit(EVENTS_ERROR.webcodecsH265NotSupport)\n return;\n }\n if (!this.player._times.decodeStart) {\n this.player._times.decodeStart = now();\n }\n\n const config = formatVideoDecoderConfigure(payload.slice(5));\n this.player.debug.log('Webcodecs', 'VideoDecoder configure', config)\n try {\n this.decoder.configure(config);\n }\n catch (e){\n this.player.debug.error('Webcodecs', 'VideoDecoder configure', e);\n this.player.emit(EVENTS_ERROR.webcodecsConfigureError);\n return;\n }\n this.hasInit = true;\n }\n } else {\n\n // check width or height change\n if (isIframe && payload[1] === 0) {\n let data = payload.slice(5);\n const config = parseAVCDecoderConfigurationRecord(data)\n const videoInfo = this.player.video.videoInfo;\n if (config.codecWidth !== videoInfo.width || config.codecHeight !== videoInfo.height) {\n this.player.debug.log('Webcodecs', `width or height is update, width ${videoInfo.width}-> ${config.codecWidth}, height ${videoInfo.height}-> ${config.codecHeight}`)\n this.player.emit(EVENTS_ERROR.webcodecsWidthOrHeightChange)\n return;\n }\n }\n\n\n // fix : Uncaught DOMException: Failed to execute 'decode' on 'VideoDecoder': A key frame is required after configure() or flush().\n if (!this.isDecodeFirstIIframe && isIframe) {\n this.isDecodeFirstIIframe = true;\n }\n\n if (this.isDecodeFirstIIframe) {\n const chunk = new EncodedVideoChunk({\n data: payload.slice(5),\n timestamp: ts,\n type: isIframe ? ENCODED_VIDEO_TYPE.key : ENCODED_VIDEO_TYPE.delta\n })\n this.player.emit(EVENTS.timeUpdate, ts);\n try {\n if (this.isDecodeStateClosed()) {\n this.player.debug.warn('Webcodecs', 'VideoDecoder isDecodeStateClosed true');\n return;\n }\n this.decoder.decode(chunk);\n } catch (e) {\n this.player.debug.error('Webcodecs', 'VideoDecoder', e)\n if (e.toString().indexOf(WCS_ERROR.keyframeIsRequiredError) !== -1) {\n this.player.emitError(EVENTS_ERROR.webcodecsDecodeError);\n }\n else if (e.toString().indexOf(WCS_ERROR.canNotDecodeClosedCodec) !== -1) {\n this.player.emitError(EVENTS_ERROR.webcodecsDecodeError);\n }\n }\n } else {\n this.player.debug.warn('Webcodecs', 'VideoDecoder isDecodeFirstIIframe false')\n }\n }\n }\n\n isDecodeStateClosed() {\n return this.decoder.state === 'closed';\n }\n}\n","const iconsMap = {\n play: '播放',\n pause: '暂停',\n audio: '',\n mute: '',\n screenshot: '截图',\n loading: '加载',\n fullscreen: '全屏',\n fullscreenExit: '退出全屏',\n record: '录制',\n recordStop: '停止录制',\n}\n\nexport default Object.keys(iconsMap).reduce((icons, key) => {\n icons[key] = `\n \n ${iconsMap[key] ? `${iconsMap[key]}` : ''}\n`;\n return icons;\n}, {});\n","import icons from './icons';\n\nexport default (player, control) => {\n\n if (player._opt.hasControl && player._opt.controlAutoHide) {\n player.$container.classList.add('jessibuca-controls-show-auto-hide');\n }\n else {\n player.$container.classList.add('jessibuca-controls-show');\n }\n const options = player._opt;\n const operateBtns = options.operateBtns;\n\n\n player.$container.insertAdjacentHTML(\n 'beforeend',\n `\n ${options.background ? `
` : ''}\n
\n ${icons.loading}\n ${options.loadingText ? `
${options.loadingText}
` : ''}\n
\n ${options.hasControl && operateBtns.play ? `
` : ''}\n ${options.hasControl ? `\n
\n
\n
00:00:01
\n
${icons.recordStop}
\n
\n `:''}\n ${options.hasControl ? `\n
\n
\n
\n ${options.showBandwidth ? `
` : ''}\n
\n
\n ${operateBtns.audio ? `\n
\n ${icons.audio}\n ${icons.mute}\n
\n
\n
\n
\n
\n
\n
\n ` : ''}\n ${operateBtns.play ? `
${icons.play}
${icons.pause}
` : ''}\n ${operateBtns.screenshot ? `
${icons.screenshot}
` : ''}\n ${operateBtns.record ? `
${icons.record}
${icons.recordStop}
` : ''}\n ${operateBtns.fullscreen ? `
${icons.fullscreen}
${icons.fullscreenExit}
` : ''}\n
\n
\n
\n ` : ''}\n\n `\n )\n\n Object.defineProperty(control, '$poster', {\n value: player.$container.querySelector('.jessibuca-poster'),\n });\n\n Object.defineProperty(control, '$loading', {\n value: player.$container.querySelector('.jessibuca-loading'),\n });\n\n Object.defineProperty(control, '$play', {\n value: player.$container.querySelector('.jessibuca-play'),\n });\n\n Object.defineProperty(control, '$playBig', {\n value: player.$container.querySelector('.jessibuca-play-big'),\n });\n\n Object.defineProperty(control, '$recording', {\n value: player.$container.querySelector('.jessibuca-recording'),\n });\n Object.defineProperty(control, '$recordingTime', {\n value: player.$container.querySelector('.jessibuca-recording-time'),\n });\n\n Object.defineProperty(control, '$recordingStop', {\n value: player.$container.querySelector('.jessibuca-recording-stop'),\n });\n\n Object.defineProperty(control, '$pause', {\n value: player.$container.querySelector('.jessibuca-pause'),\n });\n\n Object.defineProperty(control, '$controls', {\n value: player.$container.querySelector('.jessibuca-controls'),\n });\n\n Object.defineProperty(control, '$fullscreen', {\n value: player.$container.querySelector('.jessibuca-fullscreen'),\n });\n\n Object.defineProperty(control, '$fullscreen', {\n value: player.$container.querySelector('.jessibuca-fullscreen'),\n });\n\n\n Object.defineProperty(control, '$volume', {\n value: player.$container.querySelector('.jessibuca-volume'),\n });\n\n Object.defineProperty(control, '$volumePanelWrap', {\n value: player.$container.querySelector('.jessibuca-volume-panel-wrap'),\n });\n\n Object.defineProperty(control, '$volumePanelText', {\n value: player.$container.querySelector('.jessibuca-volume-panel-text'),\n });\n\n Object.defineProperty(control, '$volumePanel', {\n value: player.$container.querySelector('.jessibuca-volume-panel'),\n });\n\n Object.defineProperty(control, '$volumeHandle', {\n value: player.$container.querySelector('.jessibuca-volume-panel-handle'),\n });\n\n Object.defineProperty(control, '$volumeOn', {\n value: player.$container.querySelector('.jessibuca-icon-audio'),\n });\n\n Object.defineProperty(control, '$volumeOff', {\n value: player.$container.querySelector('.jessibuca-icon-mute'),\n });\n\n\n Object.defineProperty(control, '$fullscreen', {\n value: player.$container.querySelector('.jessibuca-fullscreen'),\n });\n\n Object.defineProperty(control, '$fullscreenExit', {\n value: player.$container.querySelector('.jessibuca-fullscreen-exit'),\n });\n\n Object.defineProperty(control, '$record', {\n value: player.$container.querySelector('.jessibuca-record'),\n });\n Object.defineProperty(control, '$recordStop', {\n value: player.$container.querySelector('.jessibuca-record-stop'),\n });\n\n Object.defineProperty(control, '$screenshot', {\n value: player.$container.querySelector('.jessibuca-screenshot'),\n });\n\n Object.defineProperty(control, '$speed', {\n value: player.$container.querySelector('.jessibuca-speed'),\n });\n}\n","import {CONTROL_HEIGHT, EVENTS} from \"../constant\";\nimport {bpsSize, formatTimeTips, getStyle, isBoolean, isMobile, setStyle} from \"../utils\";\nimport screenfull from \"screenfull\";\n\nexport default (player, control) => {\n const {\n events: {proxy},\n } = player;\n\n const object = document.createElement('object');\n object.setAttribute('aria-hidden', 'true');\n object.setAttribute('tabindex', -1);\n object.type = 'text/html';\n object.data = 'about:blank';\n\n setStyle(object, {\n display: 'block',\n position: 'absolute',\n top: '0',\n left: '0',\n height: '100%',\n width: '100%',\n overflow: 'hidden',\n pointerEvents: 'none',\n zIndex: '-1',\n });\n\n let playerWidth = player.width;\n let playerHeight = player.height;\n\n proxy(object, 'load', () => {\n proxy(object.contentDocument.defaultView, 'resize', () => {\n if (player.width !== playerWidth || player.height !== playerHeight) {\n playerWidth = player.width;\n playerHeight = player.height;\n player.emit(EVENTS.resize);\n screenfullH5Control();\n }\n });\n });\n player.$container.appendChild(object);\n\n player.on(EVENTS.destroy, () => {\n player.$container.removeChild(object);\n })\n\n function setVolumeHandle(percentage) {\n if (percentage === 0) {\n setStyle(control.$volumeOn, 'display', 'none');\n setStyle(control.$volumeOff, 'display', 'flex');\n setStyle(control.$volumeHandle, 'top', `${48}px`);\n } else {\n if (control.$volumeHandle && control.$volumePanel) {\n const panelHeight = getStyle(control.$volumePanel, 'height') || 60;\n const handleHeight = getStyle(control.$volumeHandle, 'height');\n const top = panelHeight - (panelHeight - handleHeight) * percentage - handleHeight;\n setStyle(control.$volumeHandle, 'top', `${top}px`);\n setStyle(control.$volumeOn, 'display', 'flex');\n setStyle(control.$volumeOff, 'display', 'none');\n }\n }\n control.$volumePanelText && (control.$volumePanelText.innerHTML = parseInt(percentage * 100))\n }\n\n player.on(EVENTS.volumechange, () => {\n setVolumeHandle(player.volume);\n });\n\n player.on(EVENTS.loading, (flag) => {\n setStyle(control.$loading, 'display', flag ? 'flex' : 'none');\n setStyle(control.$poster, 'display', 'none')\n\n if (flag) {\n setStyle(control.$playBig, 'display', 'none');\n }\n })\n\n const screenfullChange = (fullscreen) => {\n let isFullScreen = isBoolean(fullscreen) ? fullscreen : player.fullscreen\n setStyle(control.$fullscreenExit, 'display', isFullScreen ? 'flex' : 'none');\n setStyle(control.$fullscreen, 'display', isFullScreen ? 'none' : 'flex');\n // control.autoSize();\n };\n const screenfullH5Control = () => {\n if (isMobile() && control.$controls && player._opt.useWebFullScreen) {\n setTimeout(() => {\n if (player.fullscreen) {\n // console.log(player.width, player.height);\n let translateX = player.height / 2 - player.width + CONTROL_HEIGHT / 2;\n let translateY = player.height / 2 - CONTROL_HEIGHT / 2;\n\n control.$controls.style.transform = `translateX(${-translateX}px) translateY(-${translateY}px) rotate(-90deg)`\n } else {\n control.$controls.style.transform = `translateX(0) translateY(0) rotate(0)`\n }\n\n }, 10)\n }\n }\n\n try {\n\n screenfull.on('change', screenfullChange);\n player.events.destroys.push(() => {\n screenfull.off('change', screenfullChange);\n });\n } catch (error) {\n //\n }\n\n //\n player.on(EVENTS.webFullscreen, (value) => {\n screenfullChange(value);\n screenfullH5Control();\n\n })\n\n\n player.on(EVENTS.recording, () => {\n setStyle(control.$record, 'display', player.recording ? 'none' : 'flex');\n setStyle(control.$recordStop, 'display', player.recording ? 'flex' : 'none');\n setStyle(control.$recording, 'display', player.recording ? 'flex' : 'none')\n if(!player.recording && control.$recordingTime){\n control.$recordingTime.innerHTML = formatTimeTips(0);\n }\n })\n\n //\n player.on(EVENTS.recordingTimestamp, (timestamp) => {\n // console.log(timestamp);\n control.$recordingTime && (control.$recordingTime.innerHTML = formatTimeTips(timestamp))\n })\n\n player.on(EVENTS.playing, (flag) => {\n setStyle(control.$play, 'display', flag ? 'none' : 'flex');\n setStyle(control.$playBig, 'display', flag ? 'none' : 'block');\n setStyle(control.$pause, 'display', flag ? 'flex' : 'none');\n setStyle(control.$screenshot, 'display', flag ? 'flex' : 'none');\n setStyle(control.$record, 'display', flag ? 'flex' : 'none');\n setStyle(control.$qualityMenu, 'display', flag ? 'flex' : 'none');\n setStyle(control.$volume, 'display', flag ? 'flex' : 'none');\n // setStyle(control.$fullscreen, 'display', flag ? 'flex' : 'none');\n screenfullChange();\n // 不在播放\n if (!flag) {\n control.$speed && (control.$speed.innerHTML = bpsSize(''));\n }\n })\n\n\n player.on(EVENTS.kBps, (rate) => {\n const bps = bpsSize(rate);\n control.$speed && (control.$speed.innerHTML = bps);\n })\n}\n","export default (player, control) => {\n\n Object.defineProperty(control, 'controlsRect', {\n get: () => {\n return control.$controls.getBoundingClientRect();\n },\n });\n\n}\n","import {clamp, isMobile, setStyle} from \"../utils\";\n\nexport default (player, control) => {\n const {\n events: {proxy},\n debug\n } = player;\n\n function volumeChangeFromEvent(event) {\n const {bottom: panelBottom, height: panelHeight} = control.$volumePanel.getBoundingClientRect();\n const {height: handleHeight} = control.$volumeHandle.getBoundingClientRect();\n\n let moveLen = event.y;\n\n // if (isMobile() && player.fullscreen) {\n // moveLen = event.x;\n // }\n\n const percentage =\n clamp(panelBottom - moveLen - handleHeight / 2, 0, panelHeight - handleHeight / 2) / (panelHeight - handleHeight);\n return percentage;\n }\n\n //\n proxy(window, ['click', 'contextmenu'], event => {\n if (event.composedPath().indexOf(player.$container) > -1) {\n control.isFocus = true;\n } else {\n control.isFocus = false;\n }\n });\n\n //\n proxy(window, 'orientationchange', () => {\n setTimeout(() => {\n player.resize();\n }, 300);\n });\n\n\n proxy(control.$controls, 'click', (e) => {\n e.stopPropagation();\n })\n\n proxy(control.$pause, 'click', (e) => {\n player.pause();\n })\n // 监听 play 方法\n proxy(control.$play, 'click', (e) => {\n player.play();\n player.resumeAudioAfterPause()\n })\n\n // 监听 play 方法\n proxy(control.$playBig, 'click', (e) => {\n player.play();\n player.resumeAudioAfterPause()\n })\n\n proxy(control.$volume, 'mouseover', () => {\n control.$volumePanelWrap.classList.add('jessibuca-volume-panel-wrap-show');\n })\n\n proxy(control.$volume, 'mouseout', () => {\n control.$volumePanelWrap.classList.remove('jessibuca-volume-panel-wrap-show');\n })\n\n proxy(control.$volumeOn, 'click', (e) => {\n e.stopPropagation();\n setStyle(control.$volumeOn, 'display', 'none');\n setStyle(control.$volumeOff, 'display', 'block');\n const lastVolume = player.volume;\n player.volume = 0;\n player._lastVolume = lastVolume;\n })\n\n proxy(control.$volumeOff, 'click', (e) => {\n e.stopPropagation();\n setStyle(control.$volumeOn, 'display', 'block');\n setStyle(control.$volumeOff, 'display', 'none');\n player.volume = player.lastVolume || 0.5;\n })\n\n proxy(control.$screenshot, 'click', (e) => {\n e.stopPropagation();\n player.video.screenshot();\n })\n\n proxy(control.$volumePanel, 'click', event => {\n event.stopPropagation();\n player.volume = volumeChangeFromEvent(event);\n });\n\n proxy(control.$volumeHandle, 'mousedown', () => {\n control.isVolumeDroging = true;\n });\n\n proxy(control.$volumeHandle, 'mousemove', event => {\n if (control.isVolumeDroging) {\n player.volume = volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (control.isVolumeDroging) {\n control.isVolumeDroging = false;\n }\n });\n\n proxy(control.$record, 'click', (e) => {\n e.stopPropagation();\n player.recording = true;\n })\n\n proxy(control.$recordStop, 'click', (e) => {\n e.stopPropagation();\n player.recording = false;\n })\n\n proxy(control.$recordingStop, 'click', (e) => {\n e.stopPropagation();\n player.recording = false;\n })\n\n proxy(control.$fullscreen, 'click', (e) => {\n e.stopPropagation();\n player.fullscreen = true;\n })\n\n proxy(control.$fullscreenExit, 'click', (e) => {\n e.stopPropagation();\n player.fullscreen = false;\n })\n\n if (player._opt.hasControl && player._opt.controlAutoHide) {\n //\n proxy(player.$container, 'mouseover', () => {\n if (!player.fullscreen) {\n setStyle(control.$controls, 'display', 'block');\n startDelayControlHidden();\n }\n })\n\n proxy(player.$container, 'mousemove', () => {\n if (player.$container && control.$controls) {\n if (!player.fullscreen) {\n if (control.$controls.style.display === 'none') {\n setStyle(control.$controls, 'display', 'block');\n startDelayControlHidden();\n }\n } else {\n if (control.$controls.style.display === 'none') {\n setStyle(control.$controls, 'display', 'block');\n startDelayControlHidden();\n }\n }\n }\n })\n\n proxy(player.$container, 'mouseout', () => {\n stopDelayControlHidden();\n setStyle(control.$controls, 'display', 'none');\n })\n let delayHiddenTimeout = null;\n const startDelayControlHidden = () => {\n stopDelayControlHidden();\n delayHiddenTimeout = setTimeout(() => {\n setStyle(control.$controls, 'display', 'none');\n }, 5 * 1000)\n }\n\n const stopDelayControlHidden = () => {\n if (delayHiddenTimeout) {\n clearTimeout(delayHiddenTimeout);\n delayHiddenTimeout = null;\n }\n }\n }\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","// todo: 待定\nimport {HOT_KEY} from \"../constant\";\n\nexport default (player, control) => {\n const {\n events: {proxy}\n } = player;\n\n const keys = {};\n\n function addHotkey(key, event) {\n if (keys[key]) {\n keys[key].push(event);\n } else {\n keys[key] = [event];\n }\n }\n\n //\n addHotkey(HOT_KEY.esc, () => {\n if (player.fullscreen) {\n player.fullscreen = false;\n }\n })\n\n //\n addHotkey(HOT_KEY.arrowUp, () => {\n player.volume += 0.05;\n })\n\n //\n addHotkey(HOT_KEY.arrowDown, () => {\n player.volume -= 0.05;\n })\n\n proxy(window, 'keydown', event => {\n if (control.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = keys[event.keyCode];\n if (events) {\n event.preventDefault();\n events.forEach(fn => fn());\n }\n }\n }\n });\n}\n","import template from \"./template\";\nimport observer from './observer';\nimport property from './property';\nimport events from './events';\nimport './style.scss'\nimport hotkey from \"./hotkey\";\nimport {getStyle, isBoolean, removeElement, setStyle} from \"../utils\";\n\nexport default class Control {\n constructor(player) {\n this.player = player;\n template(player, this);\n property(player, this);\n observer(player, this);\n events(player, this);\n if (player._opt.hotKey) {\n hotkey(player, this);\n }\n this.player.debug.log('Control', 'init');\n }\n\n destroy() {\n if (this.$poster) {\n const result = removeElement(this.$poster);\n if(!result){\n const $poster = this.player.$container.querySelector('.jessibuca-poster');\n if ($poster && this.player.$container) {\n this.player.$container.removeChild($poster);\n }\n }\n }\n if (this.$loading) {\n const result = removeElement(this.$loading)\n if (!result) {\n const $loading = this.player.$container.querySelector('.jessibuca-loading');\n if ($loading && this.player.$container) {\n this.player.$container.removeChild($loading);\n }\n }\n }\n if (this.$controls) {\n const result = removeElement(this.$controls)\n if (!result) {\n const $controls = this.player.$container.querySelector('.jessibuca-controls');\n if ($controls && this.player.$container) {\n this.player.$container.removeChild($controls);\n }\n }\n }\n\n if (this.$recording) {\n const result = removeElement(this.$recording)\n if (!result) {\n const $recording = this.player.$container.querySelector('.jessibuca-recording');\n if ($recording && this.player.$container) {\n this.player.$container.removeChild($recording);\n }\n }\n }\n\n if (this.$playBig) {\n const result = removeElement(this.$playBig)\n if (!result) {\n const $playBig = this.player.$container.querySelector('.jessibuca-play-big');\n if ($playBig && this.player.$container) {\n this.player.$container.removeChild($playBig);\n }\n }\n }\n\n if(this.player.$container){\n this.player.$container.classList.remove('jessibuca-controls-show-auto-hide');\n this.player.$container.classList.remove('jessibuca-controls-show');\n }\n\n this.player.debug.log('control', 'destroy');\n }\n\n autoSize() {\n const player = this.player;\n player.$container.style.padding = '0 0';\n const playerWidth = player.width;\n const playerHeight = player.height;\n const playerRatio = playerWidth / playerHeight;\n const canvasWidth = player.video.$videoElement.width;\n const canvasHeight = player.video.$videoElement.height;\n const canvasRatio = canvasWidth / canvasHeight;\n if (playerRatio > canvasRatio) {\n const padding = (playerWidth - playerHeight * canvasRatio) / 2;\n player.$container.style.padding = `0 ${padding}px`;\n } else {\n const padding = (playerHeight - playerWidth / canvasRatio) / 2;\n player.$container.style.padding = `${padding}px 0`;\n }\n }\n\n toggleBar(flag) {\n if (this.$controls) {\n if (!isBoolean(flag)) {\n // flag = this.$controls.style.display === 'none';\n flag = getStyle(this.$controls, 'display', false) === 'none';\n }\n\n if (flag) {\n setStyle(this.$controls, 'display', 'flex');\n } else {\n setStyle(this.$controls, 'display', 'none');\n }\n }\n }\n\n getBarIsShow() {\n let result = false;\n if (this.$controls) {\n result = getStyle(this.$controls, 'display', false) !== 'none';\n }\n return result;\n }\n}\n","import {getTarget} from \"../utils\";\n\nexport default (player) => {\n\n const {\n _opt,\n debug,\n events: {proxy},\n } = player;\n\n\n if (_opt.supportDblclickFullscreen) {\n proxy(player.$container, 'dblclick', (e) => {\n const target = getTarget(e);\n const nodeName = target.nodeName.toLowerCase();\n if (nodeName === 'canvas' || nodeName === 'video') {\n player.fullscreen = !player.fullscreen;\n }\n })\n }\n\n\n //\n proxy(document, 'visibilitychange', () => {\n if (_opt.hiddenAutoPause) {\n debug.log('visibilitychange', document.visibilityState, player._isPlayingBeforePageHidden)\n\n if (\"visible\" === document.visibilityState) {\n if (player._isPlayingBeforePageHidden) {\n player.play();\n }\n } else {\n player._isPlayingBeforePageHidden = player.playing;\n // hidden\n if (player.playing) {\n player.pause();\n }\n }\n }\n })\n\n proxy(window, 'fullscreenchange', () => {\n //\n if (player.keepScreenOn !== null && \"visible\" === document.visibilityState) {\n player.enableWakeLock();\n }\n })\n}\n","class MP4 {\n\n static init() {\n MP4.types = {\n avc1: [],\n avcC: [],\n hvc1: [],\n hvcC: [],\n btrt: [],\n dinf: [],\n dref: [],\n esds: [],\n ftyp: [],\n hdlr: [],\n mdat: [],\n mdhd: [],\n mdia: [],\n mfhd: [],\n minf: [],\n moof: [],\n moov: [],\n mp4a: [],\n mvex: [],\n mvhd: [],\n sdtp: [],\n stbl: [],\n stco: [],\n stsc: [],\n stsd: [],\n stsz: [],\n stts: [],\n tfdt: [],\n tfhd: [],\n traf: [],\n trak: [],\n trun: [],\n trex: [],\n tkhd: [],\n vmhd: [],\n smhd: []\n };\n\n for (let name in MP4.types) {\n if (MP4.types.hasOwnProperty(name)) {\n MP4.types[name] = [\n name.charCodeAt(0),\n name.charCodeAt(1),\n name.charCodeAt(2),\n name.charCodeAt(3)\n ];\n }\n }\n\n let constants = MP4.constants = {};\n\n constants.FTYP = new Uint8Array([\n 0x69, 0x73, 0x6F, 0x6D, // major_brand: isom\n 0x0, 0x0, 0x0, 0x1, // minor_version: 0x01\n 0x69, 0x73, 0x6F, 0x6D, // isom\n 0x61, 0x76, 0x63, 0x31 // avc1\n ]);\n\n constants.STSD_PREFIX = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x01 // entry_count\n ]);\n\n constants.STTS = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00 // entry_count\n ]);\n\n constants.STSC = constants.STCO = constants.STTS;\n\n constants.STSZ = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // sample_size\n 0x00, 0x00, 0x00, 0x00 // sample_count\n ]);\n\n constants.HDLR_VIDEO = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0x76, 0x69, 0x64, 0x65, // handler_type: 'vide'\n 0x00, 0x00, 0x00, 0x00, // reserved: 3 * 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x56, 0x69, 0x64, 0x65,\n 0x6F, 0x48, 0x61, 0x6E,\n 0x64, 0x6C, 0x65, 0x72, 0x00 // name: VideoHandler\n ]);\n\n constants.HDLR_AUDIO = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0x73, 0x6F, 0x75, 0x6E, // handler_type: 'soun'\n 0x00, 0x00, 0x00, 0x00, // reserved: 3 * 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x53, 0x6F, 0x75, 0x6E,\n 0x64, 0x48, 0x61, 0x6E,\n 0x64, 0x6C, 0x65, 0x72, 0x00 // name: SoundHandler\n ]);\n\n constants.DREF = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x01, // entry_count\n 0x00, 0x00, 0x00, 0x0C, // entry_size\n 0x75, 0x72, 0x6C, 0x20, // type 'url '\n 0x00, 0x00, 0x00, 0x01 // version(0) + flags\n ]);\n\n // Sound media header\n constants.SMHD = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00 // balance(2) + reserved(2)\n ]);\n\n // video media header\n constants.VMHD = new Uint8Array([\n 0x00, 0x00, 0x00, 0x01, // version(0) + flags\n 0x00, 0x00, // graphicsmode: 2 bytes\n 0x00, 0x00, 0x00, 0x00, // opcolor: 3 * 2 bytes\n 0x00, 0x00\n ]);\n }\n\n // Generate a box\n static box(type) {\n let size = 8;\n let result = null;\n let datas = Array.prototype.slice.call(arguments, 1);\n let arrayCount = datas.length;\n\n for (let i = 0; i < arrayCount; i++) {\n size += datas[i].byteLength;\n }\n\n result = new Uint8Array(size);\n result[0] = (size >>> 24) & 0xFF; // size\n result[1] = (size >>> 16) & 0xFF;\n result[2] = (size >>> 8) & 0xFF;\n result[3] = (size) & 0xFF;\n\n result.set(type, 4); // type\n\n let offset = 8;\n for (let i = 0; i < arrayCount; i++) { // data body\n result.set(datas[i], offset);\n offset += datas[i].byteLength;\n }\n\n return result;\n }\n\n // emit ftyp & moov\n static generateInitSegment(meta) {\n let ftyp = MP4.box(MP4.types.ftyp, MP4.constants.FTYP);\n let moov = MP4.moov(meta);\n\n let result = new Uint8Array(ftyp.byteLength + moov.byteLength);\n result.set(ftyp, 0);\n result.set(moov, ftyp.byteLength);\n return result;\n }\n\n // Movie metadata box\n static moov(meta) {\n let mvhd = MP4.mvhd(meta.timescale, meta.duration);\n let trak = MP4.trak(meta);\n let mvex = MP4.mvex(meta);\n return MP4.box(MP4.types.moov, mvhd, trak, mvex);\n }\n\n // Movie header box\n static mvhd(timescale, duration) {\n return MP4.box(MP4.types.mvhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // creation_time\n 0x00, 0x00, 0x00, 0x00, // modification_time\n (timescale >>> 24) & 0xFF, // timescale: 4 bytes\n (timescale >>> 16) & 0xFF,\n (timescale >>> 8) & 0xFF,\n (timescale) & 0xFF,\n (duration >>> 24) & 0xFF, // duration: 4 bytes\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n 0x00, 0x01, 0x00, 0x00, // Preferred rate: 1.0\n 0x01, 0x00, 0x00, 0x00, // PreferredVolume(1.0, 2bytes) + reserved(2bytes)\n 0x00, 0x00, 0x00, 0x00, // reserved: 4 + 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00, // ----begin composition matrix----\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x40, 0x00, 0x00, 0x00, // ----end composition matrix----\n 0x00, 0x00, 0x00, 0x00, // ----begin pre_defined 6 * 4 bytes----\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // ----end pre_defined 6 * 4 bytes----\n 0xFF, 0xFF, 0xFF, 0xFF // next_track_ID\n ]));\n }\n\n // Track box\n static trak(meta) {\n return MP4.box(MP4.types.trak, MP4.tkhd(meta), MP4.mdia(meta));\n }\n\n // Track header box\n static tkhd(meta) {\n let trackId = meta.id, duration = meta.duration;\n let width = meta.presentWidth, height = meta.presentHeight;\n\n return MP4.box(MP4.types.tkhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x07, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // creation_time\n 0x00, 0x00, 0x00, 0x00, // modification_time\n (trackId >>> 24) & 0xFF, // track_ID: 4 bytes\n (trackId >>> 16) & 0xFF,\n (trackId >>> 8) & 0xFF,\n (trackId) & 0xFF,\n 0x00, 0x00, 0x00, 0x00, // reserved: 4 bytes\n (duration >>> 24) & 0xFF, // duration: 4 bytes\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n 0x00, 0x00, 0x00, 0x00, // reserved: 2 * 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // layer(2bytes) + alternate_group(2bytes)\n 0x00, 0x00, 0x00, 0x00, // volume(2bytes) + reserved(2bytes)\n 0x00, 0x01, 0x00, 0x00, // ----begin composition matrix----\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x40, 0x00, 0x00, 0x00, // ----end composition matrix----\n (width >>> 8) & 0xFF, // width and height\n (width) & 0xFF,\n 0x00, 0x00,\n (height >>> 8) & 0xFF,\n (height) & 0xFF,\n 0x00, 0x00\n ]));\n }\n\n static mdia(meta) {\n return MP4.box(MP4.types.mdia, MP4.mdhd(meta), MP4.hdlr(meta), MP4.minf(meta))\n }\n\n // Media header box\n static mdhd(meta) {\n let timescale = meta.timescale;\n let duration = meta.duration;\n return MP4.box(MP4.types.mdhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // creation_time\n 0x00, 0x00, 0x00, 0x00, // modification_time\n (timescale >>> 24) & 0xFF, // timescale: 4 bytes\n (timescale >>> 16) & 0xFF,\n (timescale >>> 8) & 0xFF,\n (timescale) & 0xFF,\n (duration >>> 24) & 0xFF, // duration: 4 bytes\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n 0x55, 0xC4, // language: und (undetermined)\n 0x00, 0x00 // pre_defined = 0\n ]));\n }\n\n // Media handler reference box\n static hdlr(meta) {\n let data = null;\n if (meta.type === 'audio') {\n data = MP4.constants.HDLR_AUDIO;\n } else {\n data = MP4.constants.HDLR_VIDEO;\n }\n return MP4.box(MP4.types.hdlr, data);\n }\n\n // Media infomation box\n static minf(meta) {\n let xmhd = null;\n if (meta.type === 'audio') {\n xmhd = MP4.box(MP4.types.smhd, MP4.constants.SMHD);\n } else {\n xmhd = MP4.box(MP4.types.vmhd, MP4.constants.VMHD);\n }\n return MP4.box(MP4.types.minf, xmhd, MP4.dinf(), MP4.stbl(meta));\n }\n\n // Data infomation box\n static dinf() {\n let result = MP4.box(MP4.types.dinf,\n MP4.box(MP4.types.dref, MP4.constants.DREF)\n );\n return result;\n }\n\n // Sample table box\n static stbl(meta) {\n let result = MP4.box(MP4.types.stbl, // type: stbl\n MP4.stsd(meta), // Sample Description Table\n MP4.box(MP4.types.stts, MP4.constants.STTS), // Time-To-Sample\n MP4.box(MP4.types.stsc, MP4.constants.STSC), // Sample-To-Chunk\n MP4.box(MP4.types.stsz, MP4.constants.STSZ), // Sample size\n MP4.box(MP4.types.stco, MP4.constants.STCO) // Chunk offset\n );\n return result;\n }\n\n // Sample description box\n static stsd(meta) {\n if (meta.type === 'audio') {\n // else: aac -> mp4a\n return MP4.box(MP4.types.stsd, MP4.constants.STSD_PREFIX, MP4.mp4a(meta));\n } else {\n if (meta.videoType === 'avc') {\n //\n return MP4.box(MP4.types.stsd, MP4.constants.STSD_PREFIX, MP4.avc1(meta));\n } else {\n //\n return MP4.box(MP4.types.stsd, MP4.constants.STSD_PREFIX, MP4.hvc1(meta))\n }\n }\n }\n\n static mp4a(meta) {\n let channelCount = meta.channelCount;\n let sampleRate = meta.audioSampleRate;\n\n let data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // reserved(4)\n 0x00, 0x00, 0x00, 0x01, // reserved(2) + data_reference_index(2)\n 0x00, 0x00, 0x00, 0x00, // reserved: 2 * 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, channelCount, // channelCount(2)\n 0x00, 0x10, // sampleSize(2)\n 0x00, 0x00, 0x00, 0x00, // reserved(4)\n (sampleRate >>> 8) & 0xFF, // Audio sample rate\n (sampleRate) & 0xFF,\n 0x00, 0x00\n ]);\n\n return MP4.box(MP4.types.mp4a, data, MP4.esds(meta));\n }\n\n static esds(meta) {\n let config = meta.config || [];\n let configSize = config.length;\n let data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version 0 + flags\n\n 0x03, // descriptor_type\n 0x17 + configSize, // length3\n 0x00, 0x01, // es_id\n 0x00, // stream_priority\n\n 0x04, // descriptor_type\n 0x0F + configSize, // length\n 0x40, // codec: mpeg4_audio\n 0x15, // stream_type: Audio\n 0x00, 0x00, 0x00, // buffer_size\n 0x00, 0x00, 0x00, 0x00, // maxBitrate\n 0x00, 0x00, 0x00, 0x00, // avgBitrate\n\n 0x05 // descriptor_type\n ].concat([\n configSize\n ]).concat(\n config\n ).concat([\n 0x06, 0x01, 0x02 // GASpecificConfig\n ]));\n return MP4.box(MP4.types.esds, data);\n }\n\n // avc\n static avc1(meta) {\n let avcc = meta.avcc;\n const width = meta.codecWidth;\n const height = meta.codecHeight;\n let data = new Uint8Array([\n 0, 0, 0, 0,\n 0, 0, 0, 1,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n width >>> 8 & 255,\n width & 255,\n height >>> 8 & 255,\n height & 255,\n 0, 72, 0, 0,\n 0, 72, 0, 0,\n 0, 0, 0, 0,\n 0, 1,\n 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0,\n 0, 24,\n 255, 255]\n );\n return MP4.box(MP4.types.avc1, data, MP4.box(MP4.types.avcC, avcc))\n }\n\n // hvc\n static hvc1(meta) {\n let avcc = meta.avcc;\n const width = meta.codecWidth;\n const height = meta.codecHeight;\n let data = new Uint8Array([\n 0, 0, 0, 0,\n 0, 0, 0, 1,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n width >>> 8 & 255,\n width & 255,\n height >>> 8 & 255,\n height & 255,\n 0, 72, 0, 0,\n 0, 72, 0, 0,\n 0, 0, 0, 0,\n 0, 1,\n 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n 0, 0, 0,\n 0, 24,\n 255, 255\n ]);\n return MP4.box(MP4.types.hvc1, data, MP4.box(MP4.types.hvcC, avcc))\n }\n\n // Movie Extends box\n static mvex(meta) {\n return MP4.box(MP4.types.mvex, MP4.trex(meta))\n }\n\n // Track Extends box\n static trex(meta) {\n let trackId = meta.id;\n let data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n (trackId >>> 24) & 0xFF, // track_ID\n (trackId >>> 16) & 0xFF,\n (trackId >>> 8) & 0xFF,\n (trackId) & 0xFF,\n 0x00, 0x00, 0x00, 0x01, // default_sample_description_index\n 0x00, 0x00, 0x00, 0x00, // default_sample_duration\n 0x00, 0x00, 0x00, 0x00, // default_sample_size\n 0x00, 0x01, 0x00, 0x01 // default_sample_flags\n ]);\n return MP4.box(MP4.types.trex, data);\n }\n\n // Movie fragment box\n static moof(track, baseMediaDecodeTime) {\n return MP4.box(MP4.types.moof, MP4.mfhd(track.sequenceNumber), MP4.traf(track, baseMediaDecodeTime))\n }\n //\n static mfhd(sequenceNumber) {\n let data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n (sequenceNumber >>> 24) & 0xFF, // sequence_number: int32\n (sequenceNumber >>> 16) & 0xFF,\n (sequenceNumber >>> 8) & 0xFF,\n (sequenceNumber) & 0xFF\n ]);\n return MP4.box(MP4.types.mfhd, data);\n }\n\n // Track fragment box\n static traf(track, baseMediaDecodeTime) {\n let trackId = track.id;\n\n // Track fragment header box\n let tfhd = MP4.box(MP4.types.tfhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) & flags\n (trackId >>> 24) & 0xFF, // track_ID\n (trackId >>> 16) & 0xFF,\n (trackId >>> 8) & 0xFF,\n (trackId) & 0xFF\n ]));\n // Track Fragment Decode Time\n let tfdt = MP4.box(MP4.types.tfdt, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) & flags\n (baseMediaDecodeTime >>> 24) & 0xFF, // baseMediaDecodeTime: int32\n (baseMediaDecodeTime >>> 16) & 0xFF,\n (baseMediaDecodeTime >>> 8) & 0xFF,\n (baseMediaDecodeTime) & 0xFF\n ]));\n let sdtp = MP4.sdtp(track);\n let trun = MP4.trun(track, sdtp.byteLength + 16 + 16 + 8 + 16 + 8 + 8);\n\n return MP4.box(MP4.types.traf, tfhd, tfdt, trun, sdtp);\n }\n\n // Sample Dependency Type box\n static sdtp(track) {\n let data = new Uint8Array(4 + 1);\n let flags = track.flags;\n data[4] = flags.isLeading << 6\n | flags.dependsOn << 4\n | flags.isDependedOn << 2\n | flags.hasRedundancy;\n return MP4.box(MP4.types.sdtp, data);\n }\n // trun\n static trun(track, offset) {\n let dataSize = 12 + 16;\n let data = new Uint8Array(dataSize);\n offset += 8 + dataSize;\n\n data.set([\n 0x00, 0x00, 0x0F, 0x01, // version(0) & flags\n 0x00, 0x00, 0x00, 0x01, // sample_count\n (offset >>> 24) & 0xFF, // data_offset\n (offset >>> 16) & 0xFF,\n (offset >>> 8) & 0xFF,\n (offset) & 0xFF\n ], 0);\n\n let duration = track.duration;\n let size = track.size;\n let flags = track.flags;\n let cts = track.cts;\n\n data.set([\n (duration >>> 24) & 0xFF, // sample_duration\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n (size >>> 24) & 0xFF, // sample_size\n (size >>> 16) & 0xFF,\n (size >>> 8) & 0xFF,\n (size) & 0xFF,\n (flags.isLeading << 2) | flags.dependsOn, // sample_flags\n (flags.isDependedOn << 6) | (flags.hasRedundancy << 4) | flags.isNonSync,\n 0x00, 0x00, // sample_degradation_priority\n (cts >>> 24) & 0xFF, // sample_composition_time_offset\n (cts >>> 16) & 0xFF,\n (cts >>> 8) & 0xFF,\n (cts) & 0xFF\n ], 12);\n\n return MP4.box(MP4.types.trun, data);\n }\n // mdat\n static mdat(data) {\n return MP4.box(MP4.types.mdat, data)\n }\n}\n\nMP4.init();\n\nexport default MP4;\n","import Emitter from \"../utils/emitter\";\nimport {EVENTS, EVENTS_ERROR, FRAG_DURATION, MEDIA_SOURCE_STATE, MP4_CODECS, VIDEO_ENC_CODE} from \"../constant\";\nimport MP4 from \"../remux/fmp4-generator\";\nimport {parseAVCDecoderConfigurationRecord,} from \"../utils/h264\";\nimport {now} from \"../utils\";\n\nexport default class MseDecoder extends Emitter {\n constructor(player) {\n super();\n this.player = player;\n this.isAvc = true;\n this.mediaSource = new window.MediaSource();\n this.sourceBuffer = null;\n this.hasInit = false;\n this.isInitInfo = false;\n this.cacheTrack = {};\n this.timeInit = false;\n this.sequenceNumber = 0;\n this.mediaSourceOpen = false;\n this.dropping = false;\n this.firstRenderTime = null;\n this.mediaSourceAppendBufferError = false;\n this.mediaSourceAppendBufferFull = false;\n this.isDecodeFirstIIframe = false;\n this.player.video.$videoElement.src = window.URL.createObjectURL(this.mediaSource);\n const {\n debug,\n events: {proxy},\n } = player;\n\n\n proxy(this.mediaSource, 'sourceopen', () => {\n this.mediaSourceOpen = true;\n this.player.emit(EVENTS.mseSourceOpen)\n })\n\n proxy(this.mediaSource, 'sourceclose', () => {\n this.player.emit(EVENTS.mseSourceClose);\n })\n\n player.debug.log('MediaSource', 'init')\n }\n\n destroy() {\n this.stop();\n this.mediaSource = null;\n this.mediaSourceOpen = false;\n this.sourceBuffer = null;\n this.hasInit = false;\n this.isInitInfo = false;\n this.sequenceNumber = 0;\n this.cacheTrack = null;\n this.timeInit = false;\n this.mediaSourceAppendBufferError = false;\n this.mediaSourceAppendBufferFull = false;\n this.isDecodeFirstIIframe = false;\n this.off();\n this.player.debug.log('MediaSource', 'destroy')\n }\n\n get state() {\n return this.mediaSource && this.mediaSource.readyState\n }\n\n get isStateOpen() {\n return this.state === MEDIA_SOURCE_STATE.open;\n }\n\n get isStateClosed() {\n return this.state === MEDIA_SOURCE_STATE.closed;\n }\n\n get isStateEnded() {\n return this.state === MEDIA_SOURCE_STATE.ended;\n }\n\n get duration() {\n return this.mediaSource && this.mediaSource.duration\n }\n\n set duration(duration) {\n this.mediaSource.duration = duration\n }\n\n decodeVideo(payload, ts, isIframe, cts) {\n const player = this.player;\n\n if (!player) {\n return;\n }\n\n if (!this.hasInit) {\n if (isIframe && payload[1] === 0) {\n const videoCodec = (payload[0] & 0x0F);\n player.video.updateVideoInfo({\n encTypeCode: videoCodec\n })\n\n // 如果解码出来的是\n if (videoCodec === VIDEO_ENC_CODE.h265) {\n this.emit(EVENTS_ERROR.mediaSourceH265NotSupport)\n return;\n }\n if (!player._times.decodeStart) {\n player._times.decodeStart = now();\n }\n\n this._decodeConfigurationRecord(payload, ts, isIframe, videoCodec)\n this.hasInit = true;\n }\n } else {\n if (isIframe && payload[1] === 0) {\n let config = parseAVCDecoderConfigurationRecord(payload.slice(5))\n const videoInfo = this.player.video.videoInfo;\n if ((videoInfo && videoInfo.width && videoInfo.height) && (config && config.codecWidth && config.codecHeight) && (config.codecWidth !== videoInfo.width || config.codecHeight !== videoInfo.height)) {\n this.player.debug.warn('MediaSource', `width or height is update, width ${videoInfo.width}-> ${config.codecWidth}, height ${videoInfo.height}-> ${config.codecHeight}`)\n this.isInitInfo = false;\n this.player.video.init = false;\n }\n }\n\n if (!this.isDecodeFirstIIframe && isIframe) {\n this.isDecodeFirstIIframe = true;\n }\n if (this.isDecodeFirstIIframe) {\n if (this.firstRenderTime === null) {\n this.firstRenderTime = ts;\n }\n const dts = ts - this.firstRenderTime;\n\n this._decodeVideo(payload, dts, isIframe, cts);\n } else {\n this.player.debug.warn('MediaSource', 'decodeVideo isDecodeFirstIIframe false')\n }\n }\n }\n\n\n _decodeConfigurationRecord(payload, ts, isIframe, videoCodec) {\n let data = payload.slice(5);\n let config = {};\n\n config = parseAVCDecoderConfigurationRecord(data)\n\n const metaData = {\n id: 1, // video tag data\n type: 'video',\n timescale: 1000,\n duration: 0,\n avcc: data,\n codecWidth: config.codecWidth,\n codecHeight: config.codecHeight,\n videoType: config.videoType\n }\n // ftyp\n const metaBox = MP4.generateInitSegment(metaData);\n this.isAvc = true;\n this.appendBuffer(metaBox.buffer);\n this.sequenceNumber = 0;\n this.cacheTrack = null;\n this.timeInit = false;\n }\n\n //\n _decodeVideo(payload, dts, isIframe, cts) {\n const player = this.player;\n let arrayBuffer = payload.slice(5);\n let bytes = arrayBuffer.byteLength;\n // player.debug.log('MediaSource', '_decodeVideo', ts);\n const $video = player.video.$videoElement;\n const videoBufferDelay = player._opt.videoBufferDelay;\n if ($video.buffered.length > 1) {\n this.removeBuffer($video.buffered.start(0), $video.buffered.end(0));\n this.timeInit = false;\n }\n if (this.dropping && dts - this.cacheTrack.dts > videoBufferDelay) {\n this.dropping = false;\n this.cacheTrack = {};\n } else if (this.cacheTrack && dts >= this.cacheTrack.dts) {\n // 需要额外加8个size\n let mdatBytes = 8 + this.cacheTrack.size;\n let mdatbox = new Uint8Array(mdatBytes);\n mdatbox[0] = mdatBytes >>> 24 & 255;\n mdatbox[1] = mdatBytes >>> 16 & 255;\n mdatbox[2] = mdatBytes >>> 8 & 255;\n mdatbox[3] = mdatBytes & 255;\n mdatbox.set(MP4.types.mdat, 4);\n mdatbox.set(this.cacheTrack.data, 8);\n\n this.cacheTrack.duration = dts - this.cacheTrack.dts;\n // moof\n let moofbox = MP4.moof(this.cacheTrack, this.cacheTrack.dts);\n let result = new Uint8Array(moofbox.byteLength + mdatbox.byteLength);\n result.set(moofbox, 0);\n result.set(mdatbox, moofbox.byteLength);\n // appendBuffer\n this.appendBuffer(result.buffer)\n player.handleRender();\n player.updateStats({fps: true, ts: dts, buf: (player.demux && player.demux.delay) || 0})\n if (!player._times.videoStart) {\n player._times.videoStart = now();\n player.handlePlayToRenderTimes()\n }\n } else {\n player.debug.log('MediaSource', 'timeInit set false , cacheTrack = {}');\n this.timeInit = false;\n this.cacheTrack = {};\n }\n if (!this.cacheTrack) {\n this.cacheTrack = {};\n }\n this.cacheTrack.id = 1;\n this.cacheTrack.sequenceNumber = ++this.sequenceNumber;\n this.cacheTrack.size = bytes;\n this.cacheTrack.dts = dts;\n this.cacheTrack.cts = cts;\n this.cacheTrack.isKeyframe = isIframe;\n this.cacheTrack.data = arrayBuffer;\n //\n this.cacheTrack.flags = {\n isLeading: 0,\n dependsOn: isIframe ? 2 : 1,\n isDependedOn: isIframe ? 1 : 0,\n hasRedundancy: 0,\n isNonSync: isIframe ? 0 : 1\n }\n\n //\n if (!this.timeInit && $video.buffered.length === 1) {\n player.debug.log('MediaSource', 'timeInit set true');\n this.timeInit = true;\n $video.currentTime = $video.buffered.end(0);\n }\n\n if (!this.isInitInfo && $video.videoWidth > 0 && $video.videoHeight > 0) {\n player.debug.log('MediaSource', `updateVideoInfo: ${$video.videoWidth},${$video.videoHeight}`);\n player.video.updateVideoInfo({\n width: $video.videoWidth,\n height: $video.videoHeight\n })\n player.video.initCanvasViewSize();\n this.isInitInfo = true;\n }\n }\n\n appendBuffer(buffer) {\n const {\n debug,\n events: {proxy},\n } = this.player;\n\n if (this.sourceBuffer === null) {\n this.sourceBuffer = this.mediaSource.addSourceBuffer(MP4_CODECS.avc);\n proxy(this.sourceBuffer, 'error', (error) => {\n debug.error('MediaSource', 'sourceBuffer error', error);\n this.player.emit(EVENTS.mseSourceBufferError, error);\n // this.dropSourceBuffer(false)\n })\n }\n\n if (this.mediaSourceAppendBufferError) {\n debug.error('MediaSource', `this.mediaSourceAppendBufferError is true`);\n return;\n }\n\n if (this.mediaSourceAppendBufferFull) {\n debug.error('MediaSource', `this.mediaSourceAppendBufferFull is true`);\n return;\n }\n\n\n if (this.sourceBuffer.updating === false && this.isStateOpen) {\n try {\n this.sourceBuffer.appendBuffer(buffer);\n } catch (e) {\n debug.warn('MediaSource', 'this.sourceBuffer.appendBuffer()', e.code, e);\n if (e.code === 22) {\n // QuotaExceededError\n // The SourceBuffer is full, and cannot free space to append additional buffers\n this.stop();\n this.mediaSourceAppendBufferFull = true;\n this.emit(EVENTS_ERROR.mediaSourceFull)\n } else if (e.code === 11) {\n // Failed to execute 'appendBuffer' on 'SourceBuffer': The HTMLMediaElement.error attribute is not null.\n this.stop();\n this.mediaSourceAppendBufferError = true;\n this.emit(EVENTS_ERROR.mediaSourceAppendBufferError);\n } else {\n debug.error('MediaSource', 'appendBuffer error', e)\n this.player.emit(EVENTS.mseSourceBufferError, e);\n }\n }\n return;\n }\n\n if (this.isStateClosed) {\n this.player.emitError(EVENTS_ERROR.mseSourceBufferError, 'mediaSource is not attached to video or mediaSource is closed')\n } else if (this.isStateEnded) {\n this.player.emitError(EVENTS_ERROR.mseSourceBufferError, 'mediaSource is closed')\n } else {\n if (this.sourceBuffer.updating === true) {\n this.player.emit(EVENTS.mseSourceBufferBusy);\n // this.dropSourceBuffer(true);\n }\n }\n }\n\n stop() {\n this.abortSourceBuffer();\n this.removeSourceBuffer();\n this.endOfStream();\n }\n\n dropSourceBuffer(isDropping) {\n const $video = this.player.video.$videoElement;\n this.dropping = isDropping;\n if ($video.buffered.length > 0) {\n if ($video.buffered.end(0) - $video.currentTime > 1) {\n this.player.debug.warn('MediaSource', 'dropSourceBuffer', `$video.buffered.end(0) is ${$video.buffered.end(0)} - $video.currentTime ${$video.currentTime}`);\n $video.currentTime = $video.buffered.end(0);\n }\n }\n }\n\n\n removeBuffer(start, end) {\n\n if (this.isStateOpen && this.sourceBuffer.updating === false) {\n try {\n this.sourceBuffer.remove(start, end)\n } catch (e) {\n this.player.debug.warn('MediaSource', 'removeBuffer() error', e);\n }\n } else {\n this.player.debug.warn('MediaSource', 'removeBuffer() this.isStateOpen is', this.isStateOpen, 'this.sourceBuffer.updating', this.sourceBuffer.updating);\n }\n }\n\n endOfStream() {\n // fix: MediaSource endOfStream before demuxer initialization completes (before HAVE_METADATA) is treated as an error\n const $videoElement = this.player.video && this.player.video.$videoElement;\n if (this.isStateOpen && $videoElement && $videoElement.readyState >= 1) {\n try {\n this.mediaSource.endOfStream();\n } catch (e) {\n this.player.debug.warn('MediaSource', 'endOfStream() error', e);\n }\n }\n }\n\n abortSourceBuffer() {\n if (this.isStateOpen) {\n if (this.sourceBuffer) {\n this.sourceBuffer.abort();\n this.sourceBuffer = null;\n }\n }\n }\n\n removeSourceBuffer() {\n if (!this.isStateClosed) {\n if (this.mediaSource && this.sourceBuffer) {\n try {\n this.mediaSource.removeSourceBuffer(this.sourceBuffer);\n } catch (e) {\n this.player.debug.warn('MediaSource', 'removeSourceBuffer() error', e);\n }\n }\n }\n }\n\n getSourceBufferUpdating() {\n return this.sourceBuffer && this.sourceBuffer.updating;\n }\n\n}\n","// tks: https://github.com/richtr/NoSleep.js\n\nconst WEBM = \"data:video/webm;base64,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\";\nconst MP4 = \"data:video/mp4;base64,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\";\n\n\n// Detect iOS browsers < version 10\nconst\n oldIOS = () =>\n typeof navigator !== \"undefined\" &&\n parseFloat(\n (\n \"\" +\n (/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(\n navigator.userAgent\n ) || [0, \"\"])[1]\n )\n .replace(\"undefined\", \"3_2\")\n .replace(\"_\", \".\")\n .replace(\"_\", \"\")\n ) < 10 &&\n !window.MSStream;\n\n// Detect native Wake Lock API support\nconst nativeWakeLock = () => \"wakeLock\" in navigator;\n\nexport default class NoSleep {\n constructor(player) {\n this.player = player;\n this.enabled = false;\n if (nativeWakeLock()) {\n this._wakeLock = null;\n const handleVisibilityChange = () => {\n if (this._wakeLock !== null && document.visibilityState === \"visible\") {\n this.enable();\n }\n };\n document.addEventListener(\"visibilitychange\", handleVisibilityChange);\n document.addEventListener(\"fullscreenchange\", handleVisibilityChange);\n } else if (oldIOS()) {\n this.noSleepTimer = null;\n } else {\n // Set up no sleep video element\n this.noSleepVideo = document.createElement(\"video\");\n\n this.noSleepVideo.setAttribute(\"title\", \"No Sleep\");\n this.noSleepVideo.setAttribute(\"playsinline\", \"\");\n\n this._addSourceToVideo(this.noSleepVideo, \"webm\", WEBM);\n this._addSourceToVideo(this.noSleepVideo, \"mp4\", MP4);\n\n this.noSleepVideo.addEventListener(\"loadedmetadata\", () => {\n if (this.noSleepVideo.duration <= 1) {\n // webm source\n this.noSleepVideo.setAttribute(\"loop\", \"\");\n } else {\n // mp4 source\n this.noSleepVideo.addEventListener(\"timeupdate\", () => {\n if (this.noSleepVideo.currentTime > 0.5) {\n this.noSleepVideo.currentTime = Math.random();\n }\n });\n }\n });\n }\n }\n\n _addSourceToVideo(element, type, dataURI) {\n var source = document.createElement(\"source\");\n source.src = dataURI;\n source.type = `video/${type}`;\n element.appendChild(source);\n }\n\n get isEnabled() {\n return this.enabled;\n }\n\n enable() {\n const debug = this.player.debug;\n if (nativeWakeLock()) {\n return navigator.wakeLock\n .request(\"screen\")\n .then((wakeLock) => {\n this._wakeLock = wakeLock;\n this.enabled = true;\n debug.log('wakeLock', 'Wake Lock active.')\n this._wakeLock.addEventListener(\"release\", () => {\n // ToDo: Potentially emit an event for the page to observe since\n // Wake Lock releases happen when page visibility changes.\n // (https://web.dev/wakelock/#wake-lock-lifecycle)\n debug.log('wakeLock', 'Wake Lock released.')\n });\n })\n .catch((err) => {\n this.enabled = false;\n debug.error('wakeLock', `${err.name}, ${err.message}`)\n throw err;\n });\n } else if (oldIOS()) {\n this.disable();\n this.noSleepTimer = window.setInterval(() => {\n if (!document.hidden) {\n window.location.href = window.location.href.split(\"#\")[0];\n window.setTimeout(window.stop, 0);\n }\n }, 15000);\n this.enabled = true;\n return Promise.resolve();\n } else {\n let playPromise = this.noSleepVideo.play();\n return playPromise\n .then((res) => {\n this.enabled = true;\n return res;\n })\n .catch((err) => {\n this.enabled = false;\n throw err;\n });\n }\n }\n\n disable() {\n const debug = this.player.debug;\n if (nativeWakeLock()) {\n if (this._wakeLock) {\n this._wakeLock.release();\n }\n this._wakeLock = null;\n } else if (oldIOS()) {\n if (this.noSleepTimer) {\n debug.warn('wakeLock', 'NoSleep now disabled for older iOS devices.')\n\n window.clearInterval(this.noSleepTimer);\n this.noSleepTimer = null;\n }\n } else {\n this.noSleepVideo.pause();\n }\n this.enabled = false;\n }\n}\n","import {DEFAULT_PLAYER_OPTIONS, EVENTS, EVENTS_ERROR, JESSIBUCA_EVENTS,VERSION} from \"../constant\";\nimport Debug from \"../utils/debug\";\nimport Events from \"../utils/events\";\nimport property from './property';\nimport events from './events';\nimport {\n fpsStatus,\n initPlayTimes,\n isEmpty, isFalse,\n isFullScreen, isMobile,isPad,\n isNotEmpty,\n now, supportMediaStreamTrack,\n supportMSE,\n supportOffscreenV2,\n supportWCS\n} from \"../utils\";\nimport Video from \"../video\";\nimport Audio from \"../audio\";\nimport Stream from \"../stream\";\nimport Recorder from \"../recorder\";\nimport DecoderWorker from \"../worker/index\";\nimport Emitter from \"../utils/emitter\";\nimport Demux from \"../demux\";\nimport WebcodecsDecoder from \"../decoder/webcodecs\";\nimport Control from \"../control\";\nimport './style.scss'\nimport observer from \"./observer\";\nimport MseDecoder from \"../decoder/mediaSource\";\nimport NoSleep from \"../utils/noSleep\";\nimport screenfull from \"screenfull\";\n\nexport default class Player extends Emitter {\n constructor(container, options) {\n super()\n this.$container = container;\n this._opt = Object.assign({}, DEFAULT_PLAYER_OPTIONS, options)\n this.debug = new Debug(this);\n this.debug.log('Player', 'init');\n\n // disable offscreen\n this._opt.forceNoOffscreen = true;\n\n if (isMobile() || isPad()) {\n this.debug.log('Player', 'isMobile and set _opt.controlAutoHide false');\n this._opt.controlAutoHide = false;\n }\n\n if (screenfull.isEnabled &&\n this._opt.useWebFullScreen) {\n this.debug.log('Player', 'screenfull.isEnabled is true and _opt.useWebFullScreen is true , set _opt.useWebFullScreen false');\n this._opt.useWebFullScreen = false;\n }\n\n if (isFalse(screenfull.isEnabled) &&\n isFalse(this._opt.useWebFullScreen)) {\n this.debug.log('Player', 'screenfull.isEnabled is false and _opt.useWebFullScreen is false , set _opt.useWebFullScreen true');\n this._opt.useWebFullScreen = true;\n }\n\n\n //\n if (this._opt.useWCS) {\n this._opt.useWCS = supportWCS();\n }\n\n //\n if (this._opt.useMSE) {\n this._opt.useMSE = supportMSE();\n }\n\n //\n if (this._opt.wcsUseVideoRender) {\n this._opt.wcsUseVideoRender = supportMediaStreamTrack()\n }\n\n // 如果使用mse则强制不允许 webcodecs\n if (this._opt.useMSE) {\n if (this._opt.useWCS) {\n this.debug.log('Player', 'useWCS set true->false')\n }\n\n if (!this._opt.forceNoOffscreen) {\n this.debug.log('Player', 'forceNoOffscreen set false->true')\n }\n\n this._opt.useWCS = false;\n this._opt.forceNoOffscreen = true;\n }\n\n if (!this._opt.forceNoOffscreen) {\n if (!supportOffscreenV2()) {\n this._opt.forceNoOffscreen = true;\n this._opt.useOffscreen = false;\n } else {\n this._opt.useOffscreen = true;\n }\n }\n\n if (!this._opt.hasAudio) {\n this._opt.operateBtns.audio = false\n }\n\n this._opt.hasControl = this._hasControl();\n //\n this._loading = false;\n this._playing = false;\n this._hasLoaded = false;\n\n //\n this._checkHeartTimeout = null;\n this._checkLoadingTimeout = null;\n this._checkStatsInterval = null;\n\n //\n this._startBpsTime = null;\n this._isPlayingBeforePageHidden = false;\n this._stats = {\n buf: 0, // 当前缓冲区时长,单位毫秒,\n fps: 0, // 当前视频帧率\n abps: 0, // 当前音频码率,单位bit\n vbps: 0, // 当前视频码率,单位bit\n ts: 0 // 当前视频帧pts,单位毫秒\n }\n\n // 各个步骤的时间统计\n this._times = initPlayTimes();\n\n //\n this._videoTimestamp = 0;\n this._audioTimestamp = 0;\n\n property(this);\n\n this.events = new Events(this);\n this.video = new Video(this);\n\n if (this._opt.hasAudio) {\n this.audio = new Audio(this);\n }\n this.recorder = new Recorder(this);\n\n if (!this._onlyMseOrWcsVideo()) {\n this.decoderWorker = new DecoderWorker(this);\n } else {\n this.loaded = true;\n }\n\n this.stream = null;\n this.demux = null;\n this._lastVolume = null;\n\n if (this._opt.useWCS) {\n this.webcodecsDecoder = new WebcodecsDecoder(this)\n this.loaded = true\n }\n\n if (this._opt.useMSE) {\n this.mseDecoder = new MseDecoder(this);\n this.loaded = true\n }\n\n //\n this.control = new Control(this);\n\n if (isMobile()) {\n this.keepScreenOn = new NoSleep(this);\n }\n\n events(this);\n observer(this);\n this.debug.log('Player', 'init and version is',VERSION);\n\n if (this._opt.useWCS) {\n this.debug.log('Player', 'use WCS')\n }\n\n if (this._opt.useMSE) {\n this.debug.log('Player', 'use MSE')\n }\n\n if (this._opt.useOffscreen) {\n this.debug.log('Player', 'use offscreen')\n }\n\n try {\n this.debug.log('Player options', JSON.stringify(this._opt));\n } catch (e) {\n // ignore\n }\n }\n\n\n async destroy() {\n this._loading = false;\n this._playing = false;\n this._hasLoaded = false;\n this._lastVolume = null;\n this._times = initPlayTimes();\n\n if (this.decoderWorker) {\n await this.decoderWorker.destroy();\n this.decoderWorker = null;\n }\n if (this.video) {\n this.video.destroy();\n this.video = null;\n }\n\n if (this.audio) {\n this.audio.destroy();\n this.audio = null;\n }\n\n if (this.stream) {\n await this.stream.destroy();\n this.stream = null;\n }\n\n if (this.recorder) {\n this.recorder.destroy();\n this.recorder = null;\n }\n\n if (this.control) {\n this.control.destroy();\n this.control = null;\n }\n\n if (this.webcodecsDecoder) {\n this.webcodecsDecoder.destroy();\n this.webcodecsDecoder = null;\n }\n\n if (this.mseDecoder) {\n this.mseDecoder.destroy();\n this.mseDecoder = null;\n }\n\n if (this.demux) {\n this.demux.destroy();\n this.demux = null;\n }\n\n\n if (this.events) {\n this.events.destroy();\n this.events = null;\n }\n\n this.clearCheckHeartTimeout();\n this.clearCheckLoadingTimeout();\n this.clearStatsInterval();\n //\n this.releaseWakeLock();\n this.keepScreenOn = null;\n // reset stats\n this.resetStats();\n this._audioTimestamp = 0;\n this._videoTimestamp = 0;\n\n // 其他没法解耦的,通过 destroy 方式\n this.emit('destroy');\n // 接触所有绑定事件\n this.off();\n\n this.debug.log('play', 'destroy end');\n }\n\n set fullscreen(value) {\n if (isMobile() && this._opt.useWebFullScreen) {\n this.emit(EVENTS.webFullscreen, value);\n setTimeout(() => {\n this.updateOption({\n rotate: value ? 270 : 0,\n })\n this.resize();\n }, 10)\n } else {\n this.emit(EVENTS.fullscreen, value);\n }\n }\n\n get fullscreen() {\n return isFullScreen() || this.webFullscreen;\n }\n\n set webFullscreen(value) {\n this.emit(EVENTS.webFullscreen, value);\n }\n\n get webFullscreen() {\n return this.$container.classList.contains('jessibuca-fullscreen-web')\n }\n\n set loaded(value) {\n this._hasLoaded = value;\n }\n\n get loaded() {\n return this._hasLoaded;\n }\n\n //\n set playing(value) {\n\n if (value) {\n // 将loading 设置为 false\n this.loading = false;\n }\n\n if (this.playing !== value) {\n this._playing = value;\n this.emit(EVENTS.playing, value);\n this.emit(EVENTS.volumechange, this.volume);\n\n if (value) {\n this.emit(EVENTS.play);\n } else {\n this.emit(EVENTS.pause);\n }\n }\n }\n\n get playing() {\n return this._playing;\n }\n\n get volume() {\n return (this.audio && this.audio.volume) || 0;\n }\n\n set volume(value) {\n if (value !== this.volume) {\n this.audio && this.audio.setVolume(value);\n this._lastVolume = value;\n }\n }\n\n get lastVolume() {\n return this._lastVolume\n }\n\n set loading(value) {\n if (this.loading !== value) {\n this._loading = value;\n this.emit(EVENTS.loading, this._loading);\n }\n }\n\n get loading() {\n return this._loading;\n }\n\n set recording(value) {\n if (value) {\n if (this.playing) {\n this.recorder && this.recorder.startRecord();\n }\n } else {\n this.recorder && this.recorder.stopRecordAndSave();\n }\n }\n\n get recording() {\n return this.recorder ? this.recorder.recording : false;\n }\n\n set audioTimestamp(value) {\n if (value === null) {\n return;\n }\n this._audioTimestamp = value;\n }\n\n //\n get audioTimestamp() {\n return this._audioTimestamp;\n }\n\n //\n set videoTimestamp(value) {\n if (value === null) {\n return;\n }\n this._videoTimestamp = value;\n // just for wasm\n if (!this._opt.useWCS && !this._opt.useMSE) {\n if (this.audioTimestamp && this.videoTimestamp) {\n this.audio && this.audio.emit(EVENTS.videoSyncAudio, {\n audioTimestamp: this.audioTimestamp,\n videoTimestamp: this.videoTimestamp,\n diff: this.audioTimestamp - this.videoTimestamp\n })\n }\n }\n }\n\n //\n get videoTimestamp() {\n return this._videoTimestamp;\n }\n\n get isDebug() {\n return this._opt.debug === true;\n }\n\n\n /**\n *\n * @param options\n */\n updateOption(options) {\n this._opt = Object.assign({}, this._opt, options)\n }\n\n /**\n *\n * @returns {Promise}\n */\n init() {\n return new Promise((resolve, reject) => {\n if (!this.stream) {\n this.stream = new Stream(this);\n }\n\n if (!this.audio) {\n if (this._opt.hasAudio) {\n this.audio = new Audio(this);\n }\n }\n if (!this.demux) {\n this.demux = new Demux(this);\n }\n\n if (this._opt.useWCS) {\n if (!this.webcodecsDecoder) {\n this.webcodecsDecoder = new WebcodecsDecoder(this)\n }\n }\n\n if (this._opt.useMSE) {\n if (!this.mseDecoder) {\n this.mseDecoder = new MseDecoder(this);\n }\n }\n\n if (!this.decoderWorker && !this._onlyMseOrWcsVideo()) {\n this.decoderWorker = new DecoderWorker(this);\n this.debug.log('Player', 'waiting decoderWorker init');\n this.once(EVENTS.decoderWorkerInit, () => {\n this.debug.log('Player', 'decoderWorker init success');\n resolve()\n })\n } else {\n resolve()\n }\n\n })\n }\n\n\n /**\n *\n * @param url\n * @returns {Promise}\n */\n play(url, options) {\n return new Promise((resolve, reject) => {\n if (!url && !this._opt.url) {\n return reject();\n }\n\n this.loading = true;\n this.playing = false;\n this._times.playInitStart = now();\n if (!url) {\n url = this._opt.url;\n }\n this._opt.url = url;\n\n this.clearCheckHeartTimeout();\n\n this.init().then(() => {\n this._times.playStart = now();\n //\n if (this._opt.isNotMute) {\n this.mute(false);\n }\n\n\n if (this.webcodecsDecoder) {\n this.webcodecsDecoder.once(EVENTS_ERROR.webcodecsH265NotSupport, () => {\n this.emit(EVENTS_ERROR.webcodecsH265NotSupport)\n if (!this._opt.autoWasm) {\n this.emit(EVENTS.error, EVENTS_ERROR.webcodecsH265NotSupport);\n }\n })\n }\n\n if (this.mseDecoder) {\n this.mseDecoder.once(EVENTS_ERROR.mediaSourceH265NotSupport, () => {\n this.emit(EVENTS_ERROR.mediaSourceH265NotSupport)\n if (!this._opt.autoWasm) {\n this.emit(EVENTS.error, EVENTS_ERROR.mediaSourceH265NotSupport);\n }\n })\n\n this.mseDecoder.once(EVENTS_ERROR.mediaSourceFull, () => {\n this.emitError(EVENTS_ERROR.mediaSourceFull)\n })\n\n this.mseDecoder.once(EVENTS_ERROR.mediaSourceAppendBufferError, () => {\n this.emitError(EVENTS_ERROR.mediaSourceAppendBufferError)\n })\n\n this.mseDecoder.once(EVENTS_ERROR.mediaSourceBufferListLarge, () => {\n this.emitError(EVENTS_ERROR.mediaSourceBufferListLarge);\n })\n\n this.mseDecoder.once(EVENTS_ERROR.mediaSourceAppendBufferEndTimeout, () => {\n this.emitError(EVENTS_ERROR.mediaSourceAppendBufferEndTimeout);\n })\n }\n\n this.enableWakeLock();\n\n this.stream.fetchStream(url, options);\n\n //\n this.checkLoadingTimeout();\n // fetch error\n this.stream.once(EVENTS_ERROR.fetchError, (error) => {\n // reject(error)\n this.emitError(EVENTS_ERROR.fetchError, error);\n })\n\n // ws\n this.stream.once(EVENTS_ERROR.websocketError, (error) => {\n // reject(error)\n this.emitError(EVENTS_ERROR.websocketError, error);\n })\n\n // stream end\n this.stream.once(EVENTS.streamEnd, (msg) => {\n // reject();\n this.emitError(EVENTS.streamEnd, msg);\n })\n\n // success\n this.stream.once(EVENTS.streamSuccess, () => {\n resolve();\n this._times.streamResponse = now();\n //\n this.video.play();\n this.checkStatsInterval();\n })\n\n }).catch((e) => {\n reject(e)\n })\n })\n }\n\n /**\n *\n */\n close() {\n return new Promise((resolve, reject) => {\n this._close().then(() => {\n this.video && this.video.clearView();\n resolve()\n })\n })\n }\n\n resumeAudioAfterPause() {\n if (this.lastVolume) {\n this.volume = this.lastVolume;\n }\n }\n\n _close() {\n return new Promise((resolve, reject) => {\n //\n if (this.stream) {\n this.stream.destroy();\n this.stream = null;\n }\n\n if (this.demux) {\n this.demux.destroy();\n this.demux = null;\n }\n\n //\n if (this.decoderWorker) {\n this.decoderWorker.destroy();\n this.decoderWorker = null;\n }\n\n if (this.webcodecsDecoder) {\n this.webcodecsDecoder.destroy();\n this.webcodecsDecoder = null;\n }\n\n if (this.mseDecoder) {\n this.mseDecoder.destroy();\n this.mseDecoder = null;\n }\n\n if (this.audio) {\n this.audio.destroy();\n this.audio = null;\n }\n this.clearCheckHeartTimeout();\n this.clearCheckLoadingTimeout();\n this.clearStatsInterval();\n this.playing = false;\n this.loading = false;\n this.recording = false;\n\n if (this.video) {\n this.video.resetInit();\n this.video.pause(true);\n }\n // release lock\n this.releaseWakeLock();\n // reset stats\n this.resetStats();\n //\n this._audioTimestamp = 0;\n this._videoTimestamp = 0;\n //\n this._times = initPlayTimes();\n //\n setTimeout(() => {\n resolve()\n }, 0)\n })\n }\n\n /**\n *\n * @param flag {boolean} 是否清除画面\n * @returns {Promise}\n */\n pause(flag = false) {\n if (flag) {\n return this.close();\n } else {\n return this._close();\n }\n }\n\n /**\n *\n * @param flag\n */\n mute(flag) {\n this.audio && this.audio.mute(flag)\n }\n\n /**\n *\n */\n resize() {\n this.video.resize();\n }\n\n /**\n *\n * @param fileName\n * @param fileType\n */\n startRecord(fileName, fileType) {\n if (this.recording) {\n return;\n }\n\n this.recorder.setFileName(fileName, fileType);\n this.recording = true;\n }\n\n /**\n *\n */\n stopRecordAndSave() {\n if (this.recording) {\n this.recording = false;\n }\n }\n\n _hasControl() {\n let result = false;\n\n let hasBtnShow = false;\n Object.keys(this._opt.operateBtns).forEach((key) => {\n if (this._opt.operateBtns[key]) {\n hasBtnShow = true;\n }\n });\n\n if (this._opt.showBandwidth || this._opt.text || hasBtnShow) {\n result = true;\n }\n\n return result;\n }\n\n _onlyMseOrWcsVideo() {\n return this._opt.hasAudio === false && (this._opt.useMSE || (this._opt.useWCS && !this._opt.useOffscreen))\n }\n\n checkHeart() {\n this.clearCheckHeartTimeout();\n this.checkHeartTimeout();\n }\n\n // 心跳检查,如果渲染间隔暂停了多少时间之后,就会抛出异常\n checkHeartTimeout() {\n this._checkHeartTimeout = setTimeout(() => {\n if (this.playing) {\n // check again\n if (this._stats.fps !== 0) {\n return;\n }\n this.pause().then(() => {\n this.emit(EVENTS.timeout, EVENTS.delayTimeout);\n this.emit(EVENTS.delayTimeout);\n });\n }\n\n }, this._opt.heartTimeout * 1000)\n }\n\n checkStatsInterval() {\n this._checkStatsInterval = setInterval(() => {\n this.updateStats();\n }, 1000)\n }\n\n //\n clearCheckHeartTimeout() {\n if (this._checkHeartTimeout) {\n clearTimeout(this._checkHeartTimeout);\n this._checkHeartTimeout = null;\n }\n }\n\n // loading 等待时间\n checkLoadingTimeout() {\n this._checkLoadingTimeout = setTimeout(() => {\n // check again\n if (this.playing) {\n return;\n }\n this.pause().then(() => {\n this.emit(EVENTS.timeout, EVENTS.loadingTimeout);\n this.emit(EVENTS.loadingTimeout);\n });\n }, this._opt.loadingTimeout * 1000)\n }\n\n clearCheckLoadingTimeout() {\n if (this._checkLoadingTimeout) {\n clearTimeout(this._checkLoadingTimeout);\n this._checkLoadingTimeout = null;\n }\n }\n\n clearStatsInterval() {\n if (this._checkStatsInterval) {\n clearInterval(this._checkStatsInterval);\n this._checkStatsInterval = null;\n }\n }\n\n handleRender() {\n if (this.loading) {\n this.emit(EVENTS.start);\n this.loading = false;\n this.clearCheckLoadingTimeout();\n }\n if (!this.playing) {\n this.playing = true;\n }\n this.checkHeart();\n }\n\n\n //\n updateStats(options) {\n options = options || {};\n\n if (!this._startBpsTime) {\n this._startBpsTime = now();\n }\n\n if (isNotEmpty(options.ts)) {\n this._stats.ts = options.ts;\n }\n\n if (isNotEmpty(options.buf)) {\n this._stats.buf = options.buf;\n }\n\n if (options.fps) {\n this._stats.fps += 1;\n }\n if (options.abps) {\n this._stats.abps += options.abps;\n }\n if (options.vbps) {\n this._stats.vbps += options.vbps;\n }\n\n const _nowTime = now();\n const timestamp = _nowTime - this._startBpsTime;\n\n if (timestamp < 1 * 1000) {\n return;\n }\n\n this.emit(EVENTS.stats, this._stats);\n this.emit(EVENTS.performance, fpsStatus(this._stats.fps));\n this._stats.fps = 0;\n this._stats.abps = 0;\n this._stats.vbps = 0;\n this._startBpsTime = _nowTime;\n }\n\n resetStats() {\n this._startBpsTime = null;\n this._stats = {\n buf: 0, //ms\n fps: 0,\n abps: 0,\n vbps: 0,\n ts: 0\n }\n }\n\n enableWakeLock() {\n if (this._opt.keepScreenOn) {\n this.keepScreenOn && this.keepScreenOn.enable();\n }\n }\n\n releaseWakeLock() {\n if (this._opt.keepScreenOn) {\n this.keepScreenOn && this.keepScreenOn.disable();\n }\n }\n\n handlePlayToRenderTimes() {\n const _times = this._times;\n _times.playTimestamp = _times.playStart - _times.playInitStart;\n _times.streamTimestamp = _times.streamStart - _times.playStart;\n _times.streamResponseTimestamp = _times.streamResponse - _times.streamStart;\n _times.demuxTimestamp = _times.demuxStart - _times.streamResponse;\n _times.decodeTimestamp = _times.decodeStart - _times.demuxStart;\n _times.videoTimestamp = _times.videoStart - _times.decodeStart;\n _times.allTimestamp = _times.videoStart - _times.playInitStart;\n this.emit(EVENTS.playToRenderTimes, _times);\n }\n\n getOption() {\n return this._opt;\n }\n\n emitError(errorType, message = '') {\n this.emit(EVENTS.error, errorType, message);\n this.emit(errorType, message);\n }\n\n isControlBarShow() {\n const hasControl = this._opt.hasControl;\n const controlAutoHide = this._opt.controlAutoHide;\n\n let result = hasControl && !controlAutoHide;\n\n if (result) {\n if (this.control) {\n result = this.control.getBarIsShow();\n }\n }\n\n return result;\n }\n\n getControlBarShow(){\n let result = false;\n if (this.control) {\n result = this.control.getBarIsShow();\n }\n return result;\n }\n\n toggleControlBar(isShow) {\n if (this.control) {\n this.control.toggleBar(isShow);\n this.resize();\n }\n }\n}\n","import Player from './player';\nimport Events from \"./utils/events\";\nimport {\n CONTAINER_DATA_SET_KEY,\n DEMUX_TYPE,\n EVENTS,\n EVENTS_ERROR,\n JESSIBUCA_EVENTS,\n PLAYER_PLAY_PROTOCOL,\n SCALE_MODE_TYPE,\n VERSION\n} from \"./constant\";\nimport {\n getElementDataset,\n isEmpty,\n isMobile,\n isNotEmpty,\n removeElementDataset,\n setElementDataset,\n supportWCS,\n uuid16\n} from \"./utils\";\nimport Emitter from \"./utils/emitter\";\nimport Debug from \"./utils/debug\";\n\n\nclass Jessibuca extends Emitter {\n static ERROR = EVENTS_ERROR\n\n static TIMEOUT = {\n loadingTimeout: EVENTS.loadingTimeout,\n delayTimeout: EVENTS.delayTimeout,\n }\n\n constructor(options) {\n super()\n let _opt = options;\n let $container = options.container;\n if (typeof options.container === 'string') {\n $container = document.querySelector(options.container);\n }\n if (!$container) {\n throw new Error('Jessibuca need container option');\n return;\n }\n // check container node name\n if ($container.nodeName === 'CANVAS' || $container.nodeName === 'VIDEO') {\n throw new Error(`Jessibuca container type can not be ${$container.nodeName} type`);\n return;\n }\n\n if (_opt.videoBuffer >= _opt.heartTimeout) {\n throw new Error(`Jessibuca videoBuffer ${_opt.videoBuffer}s must be less than heartTimeout ${_opt.heartTimeout}s`);\n return;\n }\n\n\n if (this._checkHasCreated($container)) {\n throw new Error(`Jessibuca container has been created and can not be created again`, $container);\n return;\n }\n\n // videoBuffer set too long\n if (_opt.videoBuffer > 10) {\n console.warn('Jessibuca', `videoBuffer ${_opt.videoBuffer}s is too long, will black screen for ${_opt.videoBuffer}s , it is recommended to set it to less than 10s`);\n }\n\n if (!$container.classList) {\n throw new Error('Jessibuca container option must be DOM Element');\n return;\n }\n\n $container.classList.add('jessibuca-container');\n setElementDataset($container, CONTAINER_DATA_SET_KEY, uuid16());\n\n delete _opt.container;\n\n // 禁用离屏渲染\n _opt.forceNoOffscreen = true;\n\n // 移动端不支持自动关闭控制栏\n if (isMobile()) {\n _opt.controlAutoHide = false;\n }\n\n // s -> ms\n if (isNotEmpty(_opt.videoBuffer)) {\n _opt.videoBuffer = Number(_opt.videoBuffer) * 1000\n }\n\n // setting\n if (isNotEmpty(_opt.timeout)) {\n if (isEmpty(_opt.loadingTimeout)) {\n _opt.loadingTimeout = _opt.timeout;\n }\n\n if (isEmpty(_opt.heartTimeout)) {\n _opt.heartTimeout = _opt.timeout\n }\n }\n\n this._opt = _opt;\n this.$container = $container;\n this._loadingTimeoutReplayTimes = 0;\n this._heartTimeoutReplayTimes = 0;\n this.initDecoderWorkerTimeout = null;\n this._destroyed = false;\n this.events = new Events(this);\n this.debug = new Debug(this);\n this._initPlayer($container, _opt);\n console.log(`Jessibuca version: ${VERSION}`);\n }\n\n /**\n *\n */\n async destroy() {\n this._destroyed = true;\n this.off();\n this._clearInitDecoderWorkerTimeout();\n if (this.player) {\n await this.player.destroy();\n this.player = null;\n }\n\n if (this.events) {\n this.events.destroy();\n this.events = null;\n }\n\n if (this.$container) {\n this.$container.classList.remove('jessibuca-container');\n this.$container.classList.remove('jessibuca-fullscreen-web');\n removeElementDataset(this.$container, CONTAINER_DATA_SET_KEY);\n this.$container = null;\n }\n this._opt = {};\n this._loadingTimeoutReplayTimes = 0;\n this._heartTimeoutReplayTimes = 0;\n }\n\n _initPlayer($container, options) {\n this.player = new Player($container, options);\n try {\n this.debug.log('jessibuca', '_initPlayer', JSON.stringify(this.player.getOption()))\n } catch (e) {\n // ignore\n }\n this._bindEvents();\n }\n\n _resetPlayer(options = {}) {\n this.player.destroy();\n this.player = null;\n this._opt = Object.assign(this._opt, options);\n this._opt.url = '';// reset url\n this._initPlayer(this.$container, this._opt);\n }\n\n _bindEvents() {\n // 对外的事件\n Object.keys(JESSIBUCA_EVENTS).forEach((key) => {\n this.player.on(JESSIBUCA_EVENTS[key], (value) => {\n this.emit(key, value)\n })\n })\n }\n\n /**\n * 是否销毁\n * @returns {boolean}\n */\n isDestroyed() {\n return this._destroyed;\n }\n\n /**\n * 是否开启控制台调试打印\n * @param value {Boolean}\n */\n setDebug(value) {\n this.player.updateOption({\n debug: !!value\n })\n }\n\n /**\n *\n */\n mute() {\n this.player.mute(true);\n }\n\n /**\n *\n */\n cancelMute() {\n this.player.mute(false);\n }\n\n /**\n *\n * @param value {number}\n */\n setVolume(value) {\n this.player.volume = value;\n }\n\n /**\n *\n */\n audioResume() {\n this.player.audio && this.player.audio.audioEnabled(true);\n }\n\n /**\n * 设置超时时长, 单位秒 在连接成功之前和播放中途,如果超过设定时长无数据返回,则回调timeout事件\n * @param value {number}\n */\n setTimeout(time) {\n time = Number(time);\n this.player.updateOption({\n timeout: time,\n loadingTimeout: time,\n heartTimeout: time\n })\n }\n\n /**\n *\n * @param type {number}: 0,1,2\n */\n setScaleMode(type) {\n type = Number(type);\n let options = {\n isFullResize: false,\n isResize: false\n }\n switch (type) {\n case SCALE_MODE_TYPE.full:\n options.isFullResize = false;\n options.isResize = false;\n break;\n case SCALE_MODE_TYPE.auto:\n options.isFullResize = false;\n options.isResize = true;\n break;\n case SCALE_MODE_TYPE.fullAuto:\n options.isFullResize = true;\n options.isResize = true;\n break;\n }\n\n this.player.updateOption(options);\n this.resize();\n }\n\n /**\n *\n * @returns {Promise}\n */\n pause() {\n return new Promise((resolve, reject) => {\n if (this.player) {\n this.player.pause().then(() => {\n resolve();\n }).catch((e) => {\n reject(e)\n });\n } else {\n reject('player is null')\n }\n })\n }\n\n /**\n *\n */\n async close() {\n await this.destroy();\n return true;\n }\n\n\n /**\n *\n */\n clearView() {\n this.player.video.clearView()\n }\n\n /**\n *\n * @param url {string}\n * @param options {object}\n * @returns {Promise}\n */\n play(url, options = {}) {\n return new Promise((resolve, reject) => {\n if (this.isDestroyed()) {\n reject('Jessibuca is destroyed')\n return;\n }\n\n if (!url && !this._opt.url) {\n this.emit(EVENTS.error, EVENTS_ERROR.playError)\n reject('play url is empty')\n return;\n }\n\n if (url) {\n // url 相等的时候。\n if (this._opt.url) {\n // 存在相同的 url\n if (url === this._opt.url) {\n // 正在播放\n if (this.player.playing) {\n resolve();\n } else {\n // pause -> play\n this.clearView();\n this.player.play(this._opt.url, this._opt.playOptions).then(() => {\n resolve();\n // 恢复下之前的音量\n this.player.resumeAudioAfterPause();\n }).catch((e) => {\n this.debug.warn('jessibuca', 'pause -> play and play error', e)\n this.player.pause().then(() => {\n reject(e);\n })\n })\n }\n } else {\n // url 发生改变了\n this.player.pause().then(() => {\n // 清除 画面\n this.clearView();\n this._play(url, options).then(() => {\n resolve()\n }).catch((e) => {\n this.debug.warn('jessibuca', 'this._play error', e)\n reject(e)\n });\n }).catch((e) => {\n this.debug.warn('jessibuca', 'this._opt.url is null and pause error', e)\n reject(e);\n })\n }\n } else {\n this._play(url, options).then(() => {\n resolve()\n }).catch((e) => {\n this.debug.warn('jessibuca', 'this._play error', e)\n reject(e)\n });\n }\n } else {\n // url 不存在的时候\n // 就是从 play -> pause -> play\n this.player.play(this._opt.url, this._opt.playOptions).then(() => {\n resolve();\n // 恢复下之前的音量\n this.player.resumeAudioAfterPause();\n }).catch((e) => {\n this.debug.warn('jessibuca', 'url is null and play error', e)\n this.player.pause().then(() => {\n reject(e);\n })\n })\n }\n })\n }\n\n /**\n *\n * @param url {string}\n * @param options {object}\n * @returns {Promise}\n * @private\n */\n _play(url, options = {}) {\n return new Promise((resolve, reject) => {\n this._opt.url = url;\n this._opt.playOptions = options;\n // 新的url\n const isHttp = url.indexOf(\"http\") === 0;\n //\n const protocol = isHttp ? PLAYER_PLAY_PROTOCOL.fetch : PLAYER_PLAY_PROTOCOL.websocket\n //\n const demuxType = (isHttp || url.indexOf(\".flv\") !== -1 || this._opt.isFlv) ? DEMUX_TYPE.flv : DEMUX_TYPE.m7s;\n\n this.player.updateOption({\n protocol,\n demuxType\n })\n\n this.player.once(EVENTS_ERROR.webglAlignmentError, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'webglAlignmentError')\n this._resetPlayer({openWebglAlignment: true})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'webglAlignmentError and play success')\n }).catch(() => {\n // reject();\n this.debug.log('Jessibuca', 'webglAlignmentError and play error')\n });\n });\n })\n\n\n this.player.once(EVENTS_ERROR.mediaSourceH265NotSupport, () => {\n this.pause().then(() => {\n if (this.player._opt.autoWasm) {\n this.debug.log('Jessibuca', 'auto wasm [mse-> wasm] reset player and play')\n this._resetPlayer({useMSE: false})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'auto wasm [mse-> wasm] reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.log('Jessibuca', 'auto wasm [mse-> wasm] reset player and play error')\n });\n } else {\n this.debug.log('Jessibuca', 'media source h265 not support and paused');\n }\n });\n })\n\n // media source full error\n this.player.once(EVENTS_ERROR.mediaSourceFull, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'media source full');\n this._resetPlayer()\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'media source full and reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'media source full and reset player and play error')\n });\n })\n })\n // media source append buffer error\n this.player.once(EVENTS_ERROR.mediaSourceAppendBufferError, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'media source append buffer error');\n this._resetPlayer()\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'media source append buffer error and reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'media source append buffer error and reset player and play error')\n });\n })\n })\n\n this.player.once(EVENTS_ERROR.mediaSourceBufferListLarge, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'media source buffer list large');\n this._resetPlayer()\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'media source buffer list large and reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'media source buffer list large and reset player and play error')\n });\n })\n })\n\n this.player.once(EVENTS_ERROR.mediaSourceAppendBufferEndTimeout, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'media source append buffer end timeout');\n this._resetPlayer()\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'media source append buffer end timeout and reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'media source append buffer end timeout and reset player and play error')\n });\n })\n })\n\n this.player.once(EVENTS_ERROR.mseSourceBufferError, () => {\n this.pause().then(() => {\n if (this.player._opt.autoWasm) {\n this.debug.log('Jessibuca', 'auto wasm [mse-> wasm] reset player and play')\n this._resetPlayer({useMSE: false})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'auto wasm [mse-> wasm] reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'auto wasm [mse-> wasm] reset player and play error')\n });\n } else {\n this.debug.log('Jessibuca', 'mse source buffer error and paused');\n }\n })\n })\n //\n this.player.once(EVENTS_ERROR.webcodecsH265NotSupport, () => {\n this.pause().then(() => {\n if (this.player._opt.autoWasm) {\n this.debug.log('Jessibuca', 'auto wasm [wcs-> wasm] reset player and play')\n this._resetPlayer({useWCS: false})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'auto wasm [wcs-> wasm] reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'auto wasm [wcs-> wasm] reset player and play error')\n });\n } else {\n this.debug.log('Jessibuca', 'webcodecs h265 not support and paused');\n }\n });\n })\n // webcodecs\n this.player.once(EVENTS_ERROR.webcodecsWidthOrHeightChange, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'webcodecs Width Or Height Change reset player and play')\n this._resetPlayer({useWCS: true})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'webcodecs Width Or Height Change reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'webcodecs Width Or Height Change reset player and play error')\n });\n });\n })\n // webcodecs\n this.player.once(EVENTS_ERROR.webcodecsDecodeError, () => {\n this.pause().then(() => {\n if (this.player._opt.autoWasm) {\n this.debug.log('Jessibuca', 'webcodecs decode error reset player and play')\n this._resetPlayer({useWCS: false})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'webcodecs decode error reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'webcodecs decode error reset player and play error')\n });\n } else {\n this.debug.log('Jessibuca', 'webcodecs decode error and paused');\n }\n });\n })\n // webcodecs\n this.player.once(EVENTS_ERROR.webcodecsConfigureError, () => {\n this.pause().then(() => {\n if (this.player._opt.autoWasm) {\n this.debug.log('Jessibuca', 'webcodecs Configure error reset player and play')\n this._resetPlayer({useWCS: false})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'webcodecs Configure error reset player and play success')\n }).catch(() => {\n // reject();\n this.debug.warn('Jessibuca', 'webcodecs Configure error reset player and play error')\n });\n } else {\n this.debug.log('Jessibuca', 'webcodecs Configure error and paused');\n }\n });\n })\n // wasm。\n this.player.once(EVENTS_ERROR.wasmDecodeError, () => {\n if (this.player._opt.wasmDecodeErrorReplay) {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'wasm decode error and reset player and play')\n this._resetPlayer({useWCS: false})\n this.play(url, options).then(() => {\n // resolve();\n this.debug.log('Jessibuca', 'wasm decode error and reset player and play success')\n }).catch((e) => {\n // reject();\n this.debug.warn('Jessibuca', 'wasm decode error and reset player and play error')\n });\n })\n } else {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'wasm decode error and paused');\n }).catch((e) => {\n this.debug.warn('Jessibuca', 'wasm decode error and paused error', e)\n })\n }\n })\n // fetch error\n this.player.once(EVENTS_ERROR.fetchError, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'fetch error and pause play')\n }).catch((e) => {\n this.debug.warn('Jessibuca', 'fetch error and pause play error', e)\n })\n })\n\n //\n this.player.once(EVENTS_ERROR.websocketError, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'websocket Error and pause play')\n }).catch((e) => {\n this.debug.warn('Jessibuca', 'websocket Error and pause play error', e)\n })\n })\n\n //\n this.player.once(EVENTS.streamEnd, () => {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'stream End and pause play')\n }).catch((e) => {\n this.debug.warn('Jessibuca', 'stream End and pause play error', e)\n })\n })\n\n // 监听 delay timeout\n this.player.on(EVENTS.delayTimeout, () => {\n if (this.player._opt.heartTimeoutReplay &&\n (this._heartTimeoutReplayTimes < this.player._opt.heartTimeoutReplayTimes || this.player._opt.heartTimeoutReplayTimes === -1)) {\n this.debug.log('Jessibuca', `delay timeout replay time is ${this._heartTimeoutReplayTimes}`)\n this._heartTimeoutReplayTimes += 1;\n this.play(url, options).then(() => {\n // resolve();\n this._heartTimeoutReplayTimes = 0;\n }).catch(() => {\n // reject();\n });\n }\n })\n\n // 监听 loading timeout\n this.player.on(EVENTS.loadingTimeout, () => {\n if (this.player._opt.loadingTimeoutReplay &&\n (this._loadingTimeoutReplayTimes < this.player._opt.loadingTimeoutReplayTimes || this.player._opt.loadingTimeoutReplayTimes === -1)) {\n this.debug.log('Jessibuca', `loading timeout replay time is ${this._loadingTimeoutReplayTimes}`)\n this._loadingTimeoutReplayTimes += 1;\n this.play(url, options).then(() => {\n // resolve();\n this._loadingTimeoutReplayTimes = 0;\n }).catch(() => {\n // reject();\n });\n }\n })\n\n\n if (this.hasLoaded()) {\n this.player.play(url, options).then(() => {\n resolve();\n }).catch((e) => {\n this.debug.warn('Jessibuca', 'hasLoaded and play error', e)\n this.player && this.player.pause().then(() => {\n reject(e);\n })\n })\n } else {\n this.debug.log('Jessibuca', '_play ant waiting decoderWorkerInit');\n this._checkInitDecoderWorkerTimeout();\n this.player.once(EVENTS.decoderWorkerInit, () => {\n this._clearInitDecoderWorkerTimeout();\n if (this.isDestroyed()) {\n return;\n }\n this.debug.log('Jessibuca', '_play decoderWorkerInit success and play');\n this.player.play(url, options).then(() => {\n resolve();\n }).catch((e) => {\n this.debug.warn('Jessibuca', 'decoderWorkerInit and play error', e)\n this.player && this.player.pause().then(() => {\n reject(e);\n })\n })\n })\n }\n })\n }\n\n\n /**\n *\n */\n resize() {\n this.player.resize();\n }\n\n /**\n *\n * @param time {number} s\n */\n setBufferTime(time) {\n time = Number(time)\n // s -> ms\n this.player.updateOption({\n videoBuffer: time * 1000\n })\n // update worker config\n this.player.decoderWorker && this.player.decoderWorker.updateWorkConfig({\n key: 'videoBuffer',\n value: time * 1000\n })\n }\n\n /**\n *\n * @param deg {number}\n */\n setRotate(deg) {\n deg = parseInt(deg, 10)\n const list = [0, 90, 180, 270];\n if (this._opt.rotate === deg || list.indexOf(deg) === -1) {\n return;\n }\n this.player.updateOption({\n rotate: deg\n })\n this.resize();\n }\n\n /**\n *\n * @returns {boolean}\n */\n hasLoaded() {\n return this.player.loaded;\n }\n\n /**\n *\n */\n setKeepScreenOn() {\n this.player.updateOption({\n keepScreenOn: true\n })\n }\n\n /**\n *\n * @param flag {Boolean}\n */\n setFullscreen(flag) {\n const fullscreen = !!flag;\n if (this.player.fullscreen !== fullscreen) {\n this.player.fullscreen = fullscreen;\n }\n }\n\n /**\n *\n * @param filename {string}\n * @param format {string}\n * @param quality {number}\n * @param type {string} download,base64,blob\n */\n screenshot(filename, format, quality, type) {\n\n if (!this.player.video) {\n return ''\n }\n\n return this.player.video.screenshot(filename, format, quality, type)\n }\n\n /**\n *\n * @param fileName {string}\n * @param fileType {string}\n * @returns {Promise}\n */\n startRecord(fileName, fileType) {\n return new Promise((resolve, reject) => {\n if (this.player.playing) {\n this.player.startRecord(fileName, fileType)\n resolve();\n } else {\n reject();\n }\n })\n }\n\n stopRecordAndSave() {\n if (this.player.recording) {\n this.player.stopRecordAndSave();\n }\n }\n\n /**\n *\n * @returns {Boolean}\n */\n isPlaying() {\n return this.player ? this.player.playing : false;\n }\n\n /**\n * 是否静音状态\n * @returns {Boolean}\n */\n isMute() {\n return this.player.audio ? this.player.audio.isMute : true;\n }\n\n /**\n * 是否在录制视频\n * @returns {*}\n */\n isRecording() {\n return this.player.recorder.recording;\n }\n\n _checkHasCreated(element) {\n if (!element) return false;\n const gbProV = getElementDataset(element, CONTAINER_DATA_SET_KEY);\n if (gbProV) {\n return true;\n }\n return false;\n }\n\n\n toggleControlBar(isShow) {\n if (this.isDestroyed()) {\n return;\n }\n\n if (this.player) {\n this.player.toggleControlBar(isShow);\n }\n }\n\n getControlBarShow() {\n if (this.isDestroyed()) {\n return false;\n }\n let result = false;\n if (this.player) {\n result = this.player.getControlBarShow();\n }\n return result;\n }\n\n _clearInitDecoderWorkerTimeout() {\n if (this.initDecoderWorkerTimeout) {\n clearTimeout(this.initDecoderWorkerTimeout);\n this.initDecoderWorkerTimeout = null;\n }\n }\n\n _checkInitDecoderWorkerTimeout() {\n this._clearInitDecoderWorkerTimeout();\n this.initDecoderWorkerTimeout = setTimeout(() => {\n this._handleInitDecoderWorkerTimeout();\n }, this._opt.initDecoderWorkerTimeout * 1000);\n }\n\n\n _handleInitDecoderWorkerTimeout() {\n this.pause().then(() => {\n this.debug.log('Jessibuca', 'init decoder worker timeout and pause play')\n }).catch((e) => {\n this.debug.warn('Jessibuca', 'init decoder worker timeout and pause play error', e)\n })\n }\n}\n\n\nwindow.Jessibuca = Jessibuca;\n\nexport default Jessibuca;\n\n"],"names":["PLAYER_PLAY_PROTOCOL","websocket","fetch","webrtc","DEMUX_TYPE","flv","m7s","FILE_SUFFIX","mp4","webm","CONTAINER_DATA_SET_KEY","VERSION","DEFAULT_PLAYER_OPTIONS","videoBuffer","videoBufferDelay","isResize","isFullResize","isFlv","debug","hotKey","loadingTimeout","heartTimeout","timeout","loadingTimeoutReplay","heartTimeoutReplay","loadingTimeoutReplayTimes","heartTimeoutReplayTimes","supportDblclickFullscreen","showBandwidth","keepScreenOn","isNotMute","hasAudio","hasVideo","operateBtns","fullscreen","screenshot","play","audio","record","controlAutoHide","hasControl","loadingText","background","decoder","url","rotate","forceNoOffscreen","hiddenAutoPause","protocol","demuxType","useWCS","wcsUseVideoRender","useMSE","useOffscreen","autoWasm","wasmDecodeErrorReplay","openWebglAlignment","wasmDecodeAudioSyncVideo","recordType","useWebFullScreen","initDecoderWorkerTimeout","WORKER_CMD_TYPE","init","initVideo","render","playAudio","initAudio","kBps","decode","audioCode","videoCode","wasmError","WASM_ERROR","invalidNalUnitSize","MEDIA_TYPE","video","FLV_MEDIA_TYPE","WORKER_SEND_TYPE","audioDecode","videoDecode","close","updateConfig","EVENTS","webFullscreen","decoderWorkerInit","playing","pause","mute","load","loading","videoInfo","timeUpdate","audioInfo","log","error","delayTimeout","stats","performance","recording","recordingTimestamp","recordStart","recordEnd","recordCreateError","buffer","videoFrame","start","metadata","resize","streamEnd","streamSuccess","streamMessage","streamError","volumechange","volume","destroy","mseSourceOpen","mseSourceClose","mseSourceBufferError","mseSourceBufferBusy","mseSourceBufferFull","videoWaiting","videoTimeUpdate","videoSyncAudio","playToRenderTimes","JESSIBUCA_EVENTS","EVENTS_ERROR","playError","fetchError","websocketError","webcodecsH265NotSupport","webcodecsConfigureError","webcodecsDecodeError","webcodecsWidthOrHeightChange","mediaSourceH265NotSupport","mediaSourceFull","mediaSourceAppendBufferError","mediaSourceBufferListLarge","mediaSourceAppendBufferEndTimeout","wasmDecodeError","webglAlignmentError","WEBSOCKET_STATUS","notConnect","open","SCREENSHOT_TYPE","download","base64","blob","VIDEO_ENC_TYPE","VIDEO_ENC_CODE","h264","h265","AUDIO_ENC_TYPE","CONTROL_HEIGHT","SCALE_MODE_TYPE","full","auto","fullAuto","CANVAS_RENDER_TYPE","webcodecs","webgl","offscreen","ENCODED_VIDEO_TYPE","key","delta","MP4_CODECS","avc","hev","MEDIA_SOURCE_STATE","ended","closed","AUDIO_SYNC_VIDEO_DIFF","HOT_KEY","esc","arrowUp","arrowDown","WCS_ERROR","keyframeIsRequiredError","canNotDecodeClosedCodec","FETCH_ERROR","abortError1","abortError2","abort","FRAME_HEADER_EX","PACKET_TYPE_EX","PACKET_TYPE_SEQ_START","PACKET_TYPE_FRAMES","PACKET_TYPE_FRAMESX","FRAME_TYPE_EX","FT_KEY","FT_INTER","Debug","constructor","master","name","_opt","args","console","warn","Events","destroys","proxy","bind","target","callback","option","Array","isArray","map","item","addEventListener","removeEventListener","push","forEach","event","player","Object","defineProperty","get","clientRect","$container","getBoundingClientRect","width","Math","max","clientWidth","height","clientHeight","rect","noop","supportOffscreen","$canvas","transferControlToOffscreen","supportOffscreenV2","OffscreenCanvas","createContextGL","gl","validContextNames","nameIndex","length","contextName","contextOptions","preserveDrawingBuffer","getContext","e","getParameter","dataURLToFile","dataURL","arr","split","bstr","atob","type","replace","n","u8arr","Uint8Array","charCodeAt","File","now","Date","getTime","WebAssembly","instantiate","module","Module","of","Instance","clamp","num","a","b","min","setStyle","element","value","keys","style","getStyle","numberType","getComputedStyle","getPropertyValue","parseFloat","getNowTime","calculationRate","totalSize","lastTime","size","thisTime","diffTime","isMobile","test","window","navigator","userAgent","toLowerCase","isPad","isAndroid","UA","supportWCS","uuid16","c","r","random","v","toString","formatVideoDecoderConfigure","avcC","codecArray","subarray","codecString","j","h","codec","description","isFullScreen","screenfull","isFullscreen","bpsSize","parseInt","isNaN","toFixed","fpsStatus","fps","result","createEmptyImageBitmap","$canvasElement","document","createElement","createImageBitmap","supportMSE","MediaSource","isTypeSupported","supportMediaStreamTrack","MediaStreamTrackGenerator","isEmpty","undefined","isBoolean","isNotEmpty","initPlayTimes","playInitStart","playStart","streamStart","streamResponse","demuxStart","decodeStart","videoStart","playTimestamp","streamTimestamp","streamResponseTimestamp","demuxTimestamp","decodeTimestamp","videoTimestamp","allTimestamp","formatTimeTips","time","hour","floor","sec","round","getTarget","srcElement","isWebglRenderSupport","getBrowser","UserAgent","browserInfo","browserArray","IE","ActiveXObject","Chrome","indexOf","Firefox","Opera","Safari","Edge","QQBrowser","WeixinBrowser","i","versions","match","mt","mimeTypes","version","closeVideoFrame","removeElement","parentNode","removeChild","hevcEncoderNalePacketNotLength","oneNALBuffer","isIframe","idrBit","nIdrBit","tmp","arrayBuffer","byteLength","set","isFalse","getElementDataset","dataset","getAttribute","setElementDataset","setAttribute","removeElementDataset","removeAttribute","screenfullChange","emit","on","events","off","loaded","request","then","catch","exit","classList","add","remove","ignoreList","stringList","includes","JSON","stringify","Emitter","fn","ctx","once","self","listener","apply","_","evtArr","slice","data","evts","liveEvents","len","vertexShaderScript","join","fragmentShaderScript","pixelStorei","UNPACK_ALIGNMENT","vertexShader","createShader","VERTEX_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","fragmentShader","FRAGMENT_SHADER","program","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","useProgram","vertexPosBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","Float32Array","STATIC_DRAW","vertexPosRef","getAttribLocation","enableVertexAttribArray","vertexAttribPointer","FLOAT","texturePosBuffer","texturePosRef","_initTexture","index","textureRef","createTexture","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_MAG_FILTER","LINEAR","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","uniform1i","getUniformLocation","yTextureRef","uTextureRef","vTextureRef","w","y","u","viewport","activeTexture","TEXTURE0","texImage2D","LUMINANCE","UNSIGNED_BYTE","TEXTURE1","TEXTURE2","drawArrays","TRIANGLE_STRIP","deleteProgram","deleteBuffer","deleteTexture","CommonLoader","resetInit","encType","encTypeCode","$videoElement","updateVideoInfo","clearView","_global","global","this","bom","opts","autoBom","Blob","String","fromCharCode","xhr","XMLHttpRequest","responseType","onload","saveAs","response","onerror","send","corsEnabled","status","click","node","dispatchEvent","MouseEvent","evt","createEvent","initMouseEvent","isMacOSWebView","HTMLAnchorElement","prototype","URL","webkitURL","createElementNS","rel","href","origin","location","createObjectURL","setTimeout","revokeObjectURL","msSaveOrOpenBlob","popup","title","body","innerText","force","isSafari","HTMLElement","safari","isChromeIOS","FileReader","reader","onloadend","readAsDataURL","CanvasVideoLoader","position","top","left","appendChild","context2D","contextGl","contextGlRender","contextGlDestroy","bitmaprenderer","renderType","_initCanvasRender","_initContextGl","createWebGL","_initContext2D","_supportOffscreen","_bindOffscreen","initCanvasViewSize","msg","ts","transferFromImageBitmap","output","drawImage","filename","format","quality","formatType","png","jpeg","webp","encoderOptions","Number","toDataURL","file","imageBitMap","clear","COLOR_BUFFER_BIT","clearRect","isControlBarShow","resizeWidth","resizeHeight","wScale","hScale","scale","transform","VideoLoader","muted","disablePictureInPicture","poster","_delayPlay","trackGenerator","kind","srcObject","MediaStream","vwriter","writable","getWriter","canvasContext","fixChromeVideoFlashBug","_play","timeStamp","isPlaying","currentTime","src","stop","browser","backdropFilter","translateZ","readyState","_getVideoReadyState","isNow","$video","canvas","videoWidth","videoHeight","write","objectFill","objectFit","paused","Video","Loader","getLoaderFactory","opt","AudioContextLoader","bufferList","scriptNode","hasInitScriptNode","audioContextChannel","audioContext","AudioContext","webkitAudioContext","gainNode","createGain","source","createBufferSource","connect","destination","noteOn","audioBufferSourceNode","mediaStreamAudioDestinationNode","createMediaStreamDestination","audioEnabled","gain","_prevVolume","audioSyncVideoOption","diff","channels","sampleRate","options","closeAudio","onaudioprocess","updateAudioInfo","isMute","bufferSize","initScriptNode","createScriptProcessor","audioProcessingEvent","outputBuffer","bufferItem","shift","audioTimestamp","channel","nowBuffering","getChannelData","flag","setVolume","setValueAtTime","disconnect","state","resume","suspend","isStateRunning","isStateSuspended","Audio","FetchLoader","abortController","AbortController","streamRate","rate","fetchStream","demux","_times","fetchOptions","assign","signal","headers","res","getReader","fetchNext","read","done","dispatch","errorString","WebsocketLoader","socket","socketStatus","wsUrl","_createWebSocket","WebSocket","binaryType","_handleMessage","message","Stream","RecordRTCLoader","fileName","fileType","isRecording","recordingInterval","_reset","setFileName","recordTime","startRecord","mimeType","onTimeStamp","timestamp","disableLogs","stream","captureStream","audioStream","getAudioTracks","audioTrack","enabled","addTrack","recorder","RecordRTC","startRecording","setInterval","stopRecordAndSave","stopRecording","getBlob","clearInterval","Recorder","DecoderWorker","decoderWorker","Worker","_initDecoderWorker","postMessage","cmd","terminate","onmessage","_initWork","code","handleRender","updateStats","buf","delay","handlePlayToRenderTimes","emitError","decodeVideo","isIFrame","decodeAudio","_decodeAudioNoDelay","_decodeAudio","updateWorkConfig","config","stopId","firstTimestamp","startTimestamp","dropping","initInterval","getDelay","localTimestamp","timeTimestamp","resetDelay","_loop","mseDecoder","getSourceBufferUpdating","payload","_doDecoderDecode","_doDecode","cts","pushBuffer","webcodecsDecoder","_decodeEnhancedH265Video","flags","frameTypeEx","packetEx","codecId","ArrayBuffer","tmp32","Uint32Array","isAV1","extraData","payloadBuffer","_isEnhancedH265Header","FlvLoader","input","_inputFlv","flvDemux","dispatchFlvData","tmp8","t","abps","vbps","need","next","combine","remain","return","M7sLoader","dv","DataView","getUint8","getUint32","Demux","ExpGolomb","uint8array","TAG","_buffer","_buffer_index","_total_bytes","_total_bits","_current_word","_current_word_bits_left","_fillCurrentWord","buffer_bytes_left","bytes_read","word","readBits","bits","bits_need_left","bits_read_next","result2","readBool","readByte","_skipLeadingZero","zero_count","readUEG","leading_zeros","readSEG","SPSParser","_ebsp2rbsp","src_length","dst","dst_idx","parseSPS","rbsp","gb","profile_idc","level_idc","profile_string","getProfileString","level_string","getLevelString","chroma_format_idc","chroma_format","chroma_format_table","bit_depth","scaling_list_count","_skipScalingList","pic_order_cnt_type","num_ref_frames_in_pic_order_cnt_cycle","ref_frames","pic_width_in_mbs_minus1","pic_height_in_map_units_minus1","frame_mbs_only_flag","frame_crop_left_offset","frame_crop_right_offset","frame_crop_top_offset","frame_crop_bottom_offset","frame_cropping_flag","sar_width","sar_height","fps_fixed","fps_num","fps_den","vui_parameters_present_flag","aspect_ratio_idc","sar_w_table","sar_h_table","num_units_in_tick","time_scale","sarScale","crop_unit_x","crop_unit_y","sub_wc","sub_hc","codec_width","codec_height","present_width","ceil","chroma_format_string","getChromaFormatString","frame_rate","fixed","sar_ratio","codec_size","present_size","count","last_scale","next_scale","delta_scale","chroma","parseAVCDecoderConfigurationRecord","meta","avcProfile","_naluLengthSize","spsCount","offset","getUint16","sps","codecWidth","codecHeight","presentWidth","presentHeight","profile","level","bitDepth","chromaFormat","sarRatio","frameRate","refSampleDuration","timescale","ppsCount","videoType","WebcodecsDecoder","hasInit","isDecodeFirstIIframe","isInitInfo","initDecoder","_this","VideoDecoder","handleDecode","handleError","codedWidth","codedHeight","videoCodec","configure","chunk","EncodedVideoChunk","isDecodeStateClosed","iconsMap","fullscreenExit","recordStop","reduce","icons","control","insertAdjacentHTML","querySelector","object","display","overflow","pointerEvents","zIndex","playerWidth","playerHeight","contentDocument","defaultView","screenfullH5Control","setVolumeHandle","percentage","$volumeOn","$volumeOff","$volumeHandle","$volumePanel","panelHeight","handleHeight","$volumePanelText","innerHTML","$loading","$poster","$playBig","$fullscreenExit","$fullscreen","$controls","translateX","translateY","$record","$recordStop","$recording","$recordingTime","$play","$pause","$screenshot","$qualityMenu","$volume","$speed","bps","volumeChangeFromEvent","bottom","panelBottom","moveLen","composedPath","isFocus","stopPropagation","resumeAudioAfterPause","$volumePanelWrap","lastVolume","_lastVolume","isVolumeDroging","$recordingStop","startDelayControlHidden","stopDelayControlHidden","delayHiddenTimeout","clearTimeout","addHotkey","tag","activeElement","tagName","toUpperCase","editable","keyCode","preventDefault","Control","template","property","observer","hotkey","autoSize","padding","playerRatio","canvasWidth","canvasHeight","canvasRatio","toggleBar","getBarIsShow","nodeName","visibilityState","_isPlayingBeforePageHidden","enableWakeLock","MP4","types","avc1","hvc1","hvcC","btrt","dinf","dref","esds","ftyp","hdlr","mdat","mdhd","mdia","mfhd","minf","moof","moov","mp4a","mvex","mvhd","sdtp","stbl","stco","stsc","stsd","stsz","stts","tfdt","tfhd","traf","trak","trun","trex","tkhd","vmhd","smhd","hasOwnProperty","constants","FTYP","STSD_PREFIX","STTS","STSC","STCO","STSZ","HDLR_VIDEO","HDLR_AUDIO","DREF","SMHD","VMHD","box","datas","call","arguments","arrayCount","generateInitSegment","duration","trackId","id","xmhd","channelCount","audioSampleRate","configSize","concat","avcc","track","baseMediaDecodeTime","sequenceNumber","isLeading","dependsOn","isDependedOn","hasRedundancy","dataSize","isNonSync","MseDecoder","isAvc","mediaSource","sourceBuffer","cacheTrack","timeInit","mediaSourceOpen","firstRenderTime","mediaSourceAppendBufferFull","isStateOpen","isStateClosed","isStateEnded","_decodeConfigurationRecord","dts","_decodeVideo","metaData","metaBox","appendBuffer","bytes","buffered","removeBuffer","end","mdatBytes","mdatbox","moofbox","isKeyframe","addSourceBuffer","updating","abortSourceBuffer","removeSourceBuffer","endOfStream","dropSourceBuffer","isDropping","WEBM","oldIOS","exec","MSStream","nativeWakeLock","NoSleep","_wakeLock","handleVisibilityChange","enable","noSleepTimer","noSleepVideo","_addSourceToVideo","dataURI","isEnabled","wakeLock","err","disable","hidden","Promise","resolve","playPromise","release","Player","container","_hasControl","_loading","_playing","_hasLoaded","_checkHeartTimeout","_checkLoadingTimeout","_checkStatsInterval","_startBpsTime","_stats","_videoTimestamp","_audioTimestamp","_onlyMseOrWcsVideo","clearCheckHeartTimeout","clearCheckLoadingTimeout","clearStatsInterval","releaseWakeLock","resetStats","updateOption","contains","isDebug","reject","checkLoadingTimeout","checkStatsInterval","_close","hasBtnShow","text","checkHeart","checkHeartTimeout","_nowTime","getOption","errorType","getControlBarShow","toggleControlBar","isShow","Jessibuca","Error","_checkHasCreated","_loadingTimeoutReplayTimes","_heartTimeoutReplayTimes","_destroyed","_initPlayer","_clearInitDecoderWorkerTimeout","_bindEvents","_resetPlayer","isDestroyed","setDebug","cancelMute","audioResume","setScaleMode","playOptions","isHttp","hasLoaded","_checkInitDecoderWorkerTimeout","setBufferTime","setRotate","deg","list","setKeepScreenOn","setFullscreen","gbProV","_handleInitDecoderWorkerTimeout"],"mappings":"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"} \ No newline at end of file diff --git a/demo/public/pro.zip b/demo/public/pro.zip index ab29419a261620d6ddf123d92e301df5dc7a5b36..3ceaed68d944deaeac98e969871200973a743939 100644 GIT binary patch delta 1752442 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℘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

)4N|Pb^1l%@)$p5mthvwxqC_ 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%0AvkG~5 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%0AK#SU3Ec!76gQ@WPu;5Hy8m5>kWe)NE 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�Dm~teFn!Gt8p94UJ;^RLtMHIaW0TQ6zZDs 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