!function(e){"function"==typeof define&&define.amd?define(["crypto-js"],e):e()}((function(){"use strict";var e,t=(e="undefined"==typeof document&&"undefined"==typeof location?new(require("url").URL)("file:"+__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("EasyPlayer-decode.js",document.baseURI).href,async function(t={}){var r,i,s;(s=t).ready=new Promise(((e,t)=>{r=e,i=t})),(s=void 0!==s?s:{}).locateFile=function(e){return"EasyPlayer-pro.wasm"==e&&"undefined"!=typeof JESSIBUCA_PRO_WASM_URL&&""!=JESSIBUCA_PRO_WASM_URL?JESSIBUCA_PRO_WASM_URL:e};var a,n,o,d=Object.assign({},s),l="./this.program",u="object"==typeof window,c="function"==typeof importScripts,h="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,f="";if(h){const{createRequire:e}=await import("module");var p=e("undefined"==typeof document&&"undefined"==typeof location?new(require("url").URL)("file:"+__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("EasyPlayer-decode.js",document.baseURI).href),m=p("fs"),_=p("path");f=c?_.dirname(f)+"/":p("url").fileURLToPath(new URL("./","undefined"==typeof document&&"undefined"==typeof location?new(require("url").URL)("file:"+__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("EasyPlayer-decode.js",document.baseURI).href)),a=(e,t)=>(e=H(e)?new URL(e):_.normalize(e),m.readFileSync(e,t?void 0:"utf8")),o=e=>{var t=a(e,!0);return t.buffer||(t=new Uint8Array(t)),t},n=(e,t,r,i=!0)=>{e=H(e)?new URL(e):_.normalize(e),m.readFile(e,i?void 0:"utf8",((e,s)=>{e?r(e):t(i?s.buffer:s)}))},!s.thisProgram&&process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),s.inspect=()=>"[Emscripten Module object]"}else(u||c)&&(c?f=self.location.href:"undefined"!=typeof document&&document.currentScript&&(f=document.currentScript.src),e&&(f=e),f=0!==f.indexOf("blob:")?f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):"",a=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},c&&(o=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),n=(e,t,r)=>{var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=()=>{200==i.status||0==i.status&&i.response?t(i.response):r()},i.onerror=r,i.send(null)});var g,y,b=s.print||console.log.bind(console),v=s.printErr||console.error.bind(console);Object.assign(s,d),d=null,s.arguments&&s.arguments,s.thisProgram&&(l=s.thisProgram),s.quit&&s.quit,s.wasmBinary&&(g=s.wasmBinary),"object"!=typeof WebAssembly&&z("no native wasm support detected");var w,S,E,U,A,x,B,T,C=!1,k=[],D=[],I=[],P=0,F=null;function L(e){P++,s.monitorRunDependencies&&s.monitorRunDependencies(P)}function R(e){if(P--,s.monitorRunDependencies&&s.monitorRunDependencies(P),0==P&&F){var t=F;F=null,t()}}function z(e){s.onAbort&&s.onAbort(e),v(e="Aborted("+e+")"),C=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw i(t),t}var M,N,O,G,$=e=>e.startsWith("data:application/octet-stream;base64,"),H=e=>e.startsWith("file://");function V(e){if(e==M&&g)return new Uint8Array(g);if(o)return o(e);throw"both async and sync fetching of the wasm failed"}function W(e,t,r){return function(e){if(!g&&(u||c)){if("function"==typeof fetch&&!H(e))return fetch(e,{credentials:"same-origin"}).then((t=>{if(!t.ok)throw"failed to load wasm binary file at '"+e+"'";return t.arrayBuffer()})).catch((()=>V(e)));if(n)return new Promise(((t,r)=>{n(e,(e=>t(new Uint8Array(e))),r)}))}return Promise.resolve().then((()=>V(e)))}(e).then((e=>WebAssembly.instantiate(e,t))).then((e=>e)).then(r,(e=>{v(`failed to asynchronously prepare wasm: ${e}`),z(e)}))}s.locateFile?$(M="EasyPlayer-pro.wasm")||(N=M,M=s.locateFile?s.locateFile(N,f):f+N):M=new URL("EasyPlayer-pro.wasm","undefined"==typeof document&&"undefined"==typeof location?new(require("url").URL)("file:"+__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("EasyPlayer-decode.js",document.baseURI).href).href;var j=e=>{for(;e.length>0;)e.shift()(s)};function q(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){x[this.ptr+4>>2]=e},this.get_type=function(){return x[this.ptr+4>>2]},this.set_destructor=function(e){x[this.ptr+8>>2]=e},this.get_destructor=function(){return x[this.ptr+8>>2]},this.set_caught=function(e){e=e?1:0,w[this.ptr+12|0]=e},this.get_caught=function(){return 0!=w[this.ptr+12|0]},this.set_rethrown=function(e){e=e?1:0,w[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=w[this.ptr+13|0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t)},this.set_adjusted_ptr=function(e){x[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return x[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Wt(this.get_type()))return x[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}s.noExitRuntime;var Y={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var r=0,i=e.length-1;i>=0;i--){var s=e[i];"."===s?e.splice(i,1):".."===s?(e.splice(i,1),r++):r&&(e.splice(i,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:e=>{var t=Y.isAbs(e),r="/"===e.substr(-1);return(e=Y.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=Y.splitPath(e),r=t[0],i=t[1];return r||i?(i&&(i=i.substr(0,i.length-1)),r+i):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=Y.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments);return Y.normalize(e.join("/"))},join2:(e,t)=>Y.normalize(e+"/"+t)},K=e=>(K=(()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return e=>crypto.getRandomValues(e);if(h)try{var e=p("crypto");if(e.randomFillSync)return t=>e.randomFillSync(t);var t=e.randomBytes;return e=>(e.set(t(e.byteLength)),e)}catch(e){}z("initRandomDevice")})())(e),X={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var i=r>=0?arguments[r]:he.cwd();if("string"!=typeof i)throw new TypeError("Arguments to path.resolve must be strings");if(!i)return"";e=i+"/"+e,t=Y.isAbs(i)}return(t?"/":"")+(e=Y.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"))||"."},relative:(e,t)=>{function r(e){for(var t=0;t=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=X.resolve(e).substr(1),t=X.resolve(t).substr(1);for(var i=r(e.split("/")),s=r(t.split("/")),a=Math.min(i.length,s.length),n=a,o=0;o{for(var i=t+r,s=t;e[s]&&!(s>=i);)++s;if(s-t>16&&e.buffer&&Z)return Z.decode(e.subarray(t,s));for(var a="";t>10,56320|1023&l)}}else a+=String.fromCharCode((31&n)<<6|o)}else a+=String.fromCharCode(n)}return a},Q=[],ee=e=>{for(var t=0,r=0;r=55296&&i<=57343?(t+=4,++r):t+=3}return t},te=(e,t,r,i)=>{if(!(i>0))return 0;for(var s=r,a=r+i-1,n=0;n=55296&&o<=57343&&(o=65536+((1023&o)<<10)|1023&e.charCodeAt(++n)),o<=127){if(r>=a)break;t[r++]=o}else if(o<=2047){if(r+1>=a)break;t[r++]=192|o>>6,t[r++]=128|63&o}else if(o<=65535){if(r+2>=a)break;t[r++]=224|o>>12,t[r++]=128|o>>6&63,t[r++]=128|63&o}else{if(r+3>=a)break;t[r++]=240|o>>18,t[r++]=128|o>>12&63,t[r++]=128|o>>6&63,t[r++]=128|63&o}}return t[r]=0,r-s};function re(e,t,r){var i=r>0?r:ee(e)+1,s=new Array(i),a=te(e,s,0,s.length);return t&&(s.length=a),s}var ie,se,ae,ne={ttys:[],init(){},shutdown(){},register(e,t){ne.ttys[e]={input:[],output:[],ops:t},he.registerDevice(e,ne.stream_ops)},stream_ops:{open(e){var t=ne.ttys[e.node.rdev];if(!t)throw new he.ErrnoError(43);e.tty=t,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,t,r,i,s){if(!e.tty||!e.tty.ops.get_char)throw new he.ErrnoError(60);for(var a=0,n=0;n(()=>{if(!Q.length){var e=null;if(h){var t=Buffer.alloc(256),r=0,i=process.stdin.fd;try{r=m.readSync(i,t)}catch(e){if(!e.toString().includes("EOF"))throw e;r=0}e=r>0?t.slice(0,r).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(e=window.prompt("Input: "))&&(e+="\n"):"function"==typeof readline&&null!==(e=readline())&&(e+="\n");if(!e)return null;Q=re(e,!0)}return Q.shift()})(),put_char(e,t){null===t||10===t?(b(J(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync(e){e.output&&e.output.length>0&&(b(J(e.output,0)),e.output=[])},ioctl_tcgets:e=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(e,t,r)=>0,ioctl_tiocgwinsz:e=>[24,80]},default_tty1_ops:{put_char(e,t){null===t||10===t?(v(J(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync(e){e.output&&e.output.length>0&&(v(J(e.output,0)),e.output=[])}}},oe=e=>{z()},de={ops_table:null,mount:e=>de.createNode(null,"/",16895,0),createNode(e,t,r,i){if(he.isBlkdev(r)||he.isFIFO(r))throw new he.ErrnoError(63);de.ops_table||(de.ops_table={dir:{node:{getattr:de.node_ops.getattr,setattr:de.node_ops.setattr,lookup:de.node_ops.lookup,mknod:de.node_ops.mknod,rename:de.node_ops.rename,unlink:de.node_ops.unlink,rmdir:de.node_ops.rmdir,readdir:de.node_ops.readdir,symlink:de.node_ops.symlink},stream:{llseek:de.stream_ops.llseek}},file:{node:{getattr:de.node_ops.getattr,setattr:de.node_ops.setattr},stream:{llseek:de.stream_ops.llseek,read:de.stream_ops.read,write:de.stream_ops.write,allocate:de.stream_ops.allocate,mmap:de.stream_ops.mmap,msync:de.stream_ops.msync}},link:{node:{getattr:de.node_ops.getattr,setattr:de.node_ops.setattr,readlink:de.node_ops.readlink},stream:{}},chrdev:{node:{getattr:de.node_ops.getattr,setattr:de.node_ops.setattr},stream:he.chrdev_stream_ops}});var s=he.createNode(e,t,r,i);return he.isDir(s.mode)?(s.node_ops=de.ops_table.dir.node,s.stream_ops=de.ops_table.dir.stream,s.contents={}):he.isFile(s.mode)?(s.node_ops=de.ops_table.file.node,s.stream_ops=de.ops_table.file.stream,s.usedBytes=0,s.contents=null):he.isLink(s.mode)?(s.node_ops=de.ops_table.link.node,s.stream_ops=de.ops_table.link.stream):he.isChrdev(s.mode)&&(s.node_ops=de.ops_table.chrdev.node,s.stream_ops=de.ops_table.chrdev.stream),s.timestamp=Date.now(),e&&(e.contents[t]=s,e.timestamp=s.timestamp),s},getFileDataAsTypedArray:e=>e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0),expandFileStorage(e,t){var r=e.contents?e.contents.length:0;if(!(r>=t)){t=Math.max(t,r*(r<1048576?2:1.125)>>>0),0!=r&&(t=Math.max(t,256));var i=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(i.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,t){if(e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{var r=e.contents;e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){var t={};return t.dev=he.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,he.isDir(e.mode)?t.size=4096:he.isFile(e.mode)?t.size=e.usedBytes:he.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&de.resizeFileStorage(e,t.size)},lookup(e,t){throw he.genericErrors[44]},mknod:(e,t,r,i)=>de.createNode(e,t,r,i),rename(e,t,r){if(he.isDir(e.mode)){var i;try{i=he.lookupNode(t,r)}catch(e){}if(i)for(var s in i.contents)throw new he.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=r,t.contents[r]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir(e,t){var r=he.lookupNode(e,t);for(var i in r.contents)throw new he.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir(e){var t=[".",".."];for(var r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink(e,t,r){var i=de.createNode(e,t,41471,0);return i.link=r,i},readlink(e){if(!he.isLink(e.mode))throw new he.ErrnoError(28);return e.link}},stream_ops:{read(e,t,r,i,s){var a=e.node.contents;if(s>=e.node.usedBytes)return 0;var n=Math.min(e.node.usedBytes-s,i);if(n>8&&a.subarray)t.set(a.subarray(s,s+n),r);else for(var o=0;o0||r+t(de.stream_ops.write(e,t,0,i,r,!1),0)}},le=(e,t,r,i)=>{var s=i?"":`al ${e}`;n(e,(r=>{var i;i=`Loading data file "${e}" failed (no arrayBuffer).`,r||z(i),t(new Uint8Array(r)),s&&R()}),(t=>{if(!r)throw`Loading data file "${e}" failed.`;r()})),s&&L()},ue=s.preloadPlugins||[],ce=(e,t)=>{var r=0;return e&&(r|=365),t&&(r|=146),r},he={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(e,t={}){if(!(e=X.resolve(e)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new he.ErrnoError(32);for(var r=e.split("/").filter((e=>!!e)),i=he.root,s="/",a=0;a40)throw new he.ErrnoError(32)}}return{path:s,node:i}},getPath(e){for(var t;;){if(he.isRoot(e)){var r=e.mount.mountpoint;return t?"/"!==r[r.length-1]?`${r}/${t}`:r+t:r}t=t?`${e.name}/${t}`:e.name,e=e.parent}},hashName(e,t){for(var r=0,i=0;i>>0)%he.nameTable.length},hashAddNode(e){var t=he.hashName(e.parent.id,e.name);e.name_next=he.nameTable[t],he.nameTable[t]=e},hashRemoveNode(e){var t=he.hashName(e.parent.id,e.name);if(he.nameTable[t]===e)he.nameTable[t]=e.name_next;else for(var r=he.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode(e,t){var r=he.mayLookup(e);if(r)throw new he.ErrnoError(r,e);for(var i=he.hashName(e.id,t),s=he.nameTable[i];s;s=s.name_next){var a=s.name;if(s.parent.id===e.id&&a===t)return s}return he.lookup(e,t)},createNode(e,t,r,i){var s=new he.FSNode(e,t,r,i);return he.hashAddNode(s),s},destroyNode(e){he.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>!(49152&~e),flagsToPermissionString(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>he.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup(e){var t=he.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate(e,t){try{return he.lookupNode(e,t),20}catch(e){}return he.nodePermissions(e,"wx")},mayDelete(e,t,r){var i;try{i=he.lookupNode(e,t)}catch(e){return e.errno}var s=he.nodePermissions(e,"wx");if(s)return s;if(r){if(!he.isDir(i.mode))return 54;if(he.isRoot(i)||he.getPath(i)===he.cwd())return 10}else if(he.isDir(i.mode))return 31;return 0},mayOpen:(e,t)=>e?he.isLink(e.mode)?32:he.isDir(e.mode)&&("r"!==he.flagsToPermissionString(t)||512&t)?31:he.nodePermissions(e,he.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=he.MAX_OPEN_FDS;e++)if(!he.streams[e])return e;throw new he.ErrnoError(33)},getStreamChecked(e){var t=he.getStream(e);if(!t)throw new he.ErrnoError(8);return t},getStream:e=>he.streams[e],createStream:(e,t=-1)=>(he.FSStream||(he.FSStream=function(){this.shared={}},he.FSStream.prototype={},Object.defineProperties(he.FSStream.prototype,{object:{get(){return this.node},set(e){this.node=e}},isRead:{get(){return 1!=(2097155&this.flags)}},isWrite:{get(){return!!(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(e){this.shared.flags=e}},position:{get(){return this.shared.position},set(e){this.shared.position=e}}})),e=Object.assign(new he.FSStream,e),-1==t&&(t=he.nextfd()),e.fd=t,he.streams[t]=e,e),closeStream(e){he.streams[e]=null},chrdev_stream_ops:{open(e){var t=he.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek(){throw new he.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice(e,t){he.devices[e]={stream_ops:t}},getDevice:e=>he.devices[e],getMounts(e){for(var t=[],r=[e];r.length;){var i=r.pop();t.push(i),r.push.apply(r,i.mounts)}return t},syncfs(e,t){"function"==typeof e&&(t=e,e=!1),he.syncFSRequests++,he.syncFSRequests>1&&v(`warning: ${he.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var r=he.getMounts(he.root.mount),i=0;function s(e){return he.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,s(e));++i>=r.length&&s(null)}r.forEach((t=>{if(!t.type.syncfs)return a(null);t.type.syncfs(t,e,a)}))},mount(e,t,r){var i,s="/"===r,a=!r;if(s&&he.root)throw new he.ErrnoError(10);if(!s&&!a){var n=he.lookupPath(r,{follow_mount:!1});if(r=n.path,i=n.node,he.isMountpoint(i))throw new he.ErrnoError(10);if(!he.isDir(i.mode))throw new he.ErrnoError(54)}var o={type:e,opts:t,mountpoint:r,mounts:[]},d=e.mount(o);return d.mount=o,o.root=d,s?he.root=d:i&&(i.mounted=o,i.mount&&i.mount.mounts.push(o)),d},unmount(e){var t=he.lookupPath(e,{follow_mount:!1});if(!he.isMountpoint(t.node))throw new he.ErrnoError(28);var r=t.node,i=r.mounted,s=he.getMounts(i);Object.keys(he.nameTable).forEach((e=>{for(var t=he.nameTable[e];t;){var r=t.name_next;s.includes(t.mount)&&he.destroyNode(t),t=r}})),r.mounted=null;var a=r.mount.mounts.indexOf(i);r.mount.mounts.splice(a,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod(e,t,r){var i=he.lookupPath(e,{parent:!0}).node,s=Y.basename(e);if(!s||"."===s||".."===s)throw new he.ErrnoError(28);var a=he.mayCreate(i,s);if(a)throw new he.ErrnoError(a);if(!i.node_ops.mknod)throw new he.ErrnoError(63);return i.node_ops.mknod(i,s,t,r)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,he.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,he.mknod(e,t,0)),mkdirTree(e,t){for(var r=e.split("/"),i="",s=0;s(void 0===r&&(r=t,t=438),t|=8192,he.mknod(e,t,r)),symlink(e,t){if(!X.resolve(e))throw new he.ErrnoError(44);var r=he.lookupPath(t,{parent:!0}).node;if(!r)throw new he.ErrnoError(44);var i=Y.basename(t),s=he.mayCreate(r,i);if(s)throw new he.ErrnoError(s);if(!r.node_ops.symlink)throw new he.ErrnoError(63);return r.node_ops.symlink(r,i,e)},rename(e,t){var r,i,s=Y.dirname(e),a=Y.dirname(t),n=Y.basename(e),o=Y.basename(t);if(r=he.lookupPath(e,{parent:!0}).node,i=he.lookupPath(t,{parent:!0}).node,!r||!i)throw new he.ErrnoError(44);if(r.mount!==i.mount)throw new he.ErrnoError(75);var d,l=he.lookupNode(r,n),u=X.relative(e,a);if("."!==u.charAt(0))throw new he.ErrnoError(28);if("."!==(u=X.relative(t,s)).charAt(0))throw new he.ErrnoError(55);try{d=he.lookupNode(i,o)}catch(e){}if(l!==d){var c=he.isDir(l.mode),h=he.mayDelete(r,n,c);if(h)throw new he.ErrnoError(h);if(h=d?he.mayDelete(i,o,c):he.mayCreate(i,o))throw new he.ErrnoError(h);if(!r.node_ops.rename)throw new he.ErrnoError(63);if(he.isMountpoint(l)||d&&he.isMountpoint(d))throw new he.ErrnoError(10);if(i!==r&&(h=he.nodePermissions(r,"w")))throw new he.ErrnoError(h);he.hashRemoveNode(l);try{r.node_ops.rename(l,i,o)}catch(e){throw e}finally{he.hashAddNode(l)}}},rmdir(e){var t=he.lookupPath(e,{parent:!0}).node,r=Y.basename(e),i=he.lookupNode(t,r),s=he.mayDelete(t,r,!0);if(s)throw new he.ErrnoError(s);if(!t.node_ops.rmdir)throw new he.ErrnoError(63);if(he.isMountpoint(i))throw new he.ErrnoError(10);t.node_ops.rmdir(t,r),he.destroyNode(i)},readdir(e){var t=he.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new he.ErrnoError(54);return t.node_ops.readdir(t)},unlink(e){var t=he.lookupPath(e,{parent:!0}).node;if(!t)throw new he.ErrnoError(44);var r=Y.basename(e),i=he.lookupNode(t,r),s=he.mayDelete(t,r,!1);if(s)throw new he.ErrnoError(s);if(!t.node_ops.unlink)throw new he.ErrnoError(63);if(he.isMountpoint(i))throw new he.ErrnoError(10);t.node_ops.unlink(t,r),he.destroyNode(i)},readlink(e){var t=he.lookupPath(e).node;if(!t)throw new he.ErrnoError(44);if(!t.node_ops.readlink)throw new he.ErrnoError(28);return X.resolve(he.getPath(t.parent),t.node_ops.readlink(t))},stat(e,t){var r=he.lookupPath(e,{follow:!t}).node;if(!r)throw new he.ErrnoError(44);if(!r.node_ops.getattr)throw new he.ErrnoError(63);return r.node_ops.getattr(r)},lstat:e=>he.stat(e,!0),chmod(e,t,r){var i;if(!(i="string"==typeof e?he.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new he.ErrnoError(63);i.node_ops.setattr(i,{mode:4095&t|-4096&i.mode,timestamp:Date.now()})},lchmod(e,t){he.chmod(e,t,!0)},fchmod(e,t){var r=he.getStreamChecked(e);he.chmod(r.node,t)},chown(e,t,r,i){var s;if(!(s="string"==typeof e?he.lookupPath(e,{follow:!i}).node:e).node_ops.setattr)throw new he.ErrnoError(63);s.node_ops.setattr(s,{timestamp:Date.now()})},lchown(e,t,r){he.chown(e,t,r,!0)},fchown(e,t,r){var i=he.getStreamChecked(e);he.chown(i.node,t,r)},truncate(e,t){if(t<0)throw new he.ErrnoError(28);var r;if(!(r="string"==typeof e?he.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new he.ErrnoError(63);if(he.isDir(r.mode))throw new he.ErrnoError(31);if(!he.isFile(r.mode))throw new he.ErrnoError(28);var i=he.nodePermissions(r,"w");if(i)throw new he.ErrnoError(i);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate(e,t){var r=he.getStreamChecked(e);if(!(2097155&r.flags))throw new he.ErrnoError(28);he.truncate(r.node,t)},utime(e,t,r){var i=he.lookupPath(e,{follow:!0}).node;i.node_ops.setattr(i,{timestamp:Math.max(t,r)})},open(e,t,r){if(""===e)throw new he.ErrnoError(44);var i;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?(e=>{var t={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[e];if(void 0===t)throw new Error(`Unknown file open mode: ${e}`);return t})(t):t)?4095&r|32768:0,"object"==typeof e)i=e;else{e=Y.normalize(e);try{i=he.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var a=!1;if(64&t)if(i){if(128&t)throw new he.ErrnoError(20)}else i=he.mknod(e,r,0),a=!0;if(!i)throw new he.ErrnoError(44);if(he.isChrdev(i.mode)&&(t&=-513),65536&t&&!he.isDir(i.mode))throw new he.ErrnoError(54);if(!a){var n=he.mayOpen(i,t);if(n)throw new he.ErrnoError(n)}512&t&&!a&&he.truncate(i,0),t&=-131713;var o=he.createStream({node:i,path:he.getPath(i),flags:t,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1});return o.stream_ops.open&&o.stream_ops.open(o),!s.logReadFiles||1&t||(he.readFiles||(he.readFiles={}),e in he.readFiles||(he.readFiles[e]=1)),o},close(e){if(he.isClosed(e))throw new he.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{he.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek(e,t,r){if(he.isClosed(e))throw new he.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new he.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new he.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read(e,t,r,i,s){if(i<0||s<0)throw new he.ErrnoError(28);if(he.isClosed(e))throw new he.ErrnoError(8);if(1==(2097155&e.flags))throw new he.ErrnoError(8);if(he.isDir(e.node.mode))throw new he.ErrnoError(31);if(!e.stream_ops.read)throw new he.ErrnoError(28);var a=void 0!==s;if(a){if(!e.seekable)throw new he.ErrnoError(70)}else s=e.position;var n=e.stream_ops.read(e,t,r,i,s);return a||(e.position+=n),n},write(e,t,r,i,s,a){if(i<0||s<0)throw new he.ErrnoError(28);if(he.isClosed(e))throw new he.ErrnoError(8);if(!(2097155&e.flags))throw new he.ErrnoError(8);if(he.isDir(e.node.mode))throw new he.ErrnoError(31);if(!e.stream_ops.write)throw new he.ErrnoError(28);e.seekable&&1024&e.flags&&he.llseek(e,0,2);var n=void 0!==s;if(n){if(!e.seekable)throw new he.ErrnoError(70)}else s=e.position;var o=e.stream_ops.write(e,t,r,i,s,a);return n||(e.position+=o),o},allocate(e,t,r){if(he.isClosed(e))throw new he.ErrnoError(8);if(t<0||r<=0)throw new he.ErrnoError(28);if(!(2097155&e.flags))throw new he.ErrnoError(8);if(!he.isFile(e.node.mode)&&!he.isDir(e.node.mode))throw new he.ErrnoError(43);if(!e.stream_ops.allocate)throw new he.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap(e,t,r,i,s){if(2&i&&!(2&s)&&2!=(2097155&e.flags))throw new he.ErrnoError(2);if(1==(2097155&e.flags))throw new he.ErrnoError(2);if(!e.stream_ops.mmap)throw new he.ErrnoError(43);return e.stream_ops.mmap(e,t,r,i,s)},msync:(e,t,r,i,s)=>e.stream_ops.msync?e.stream_ops.msync(e,t,r,i,s):0,munmap:e=>0,ioctl(e,t,r){if(!e.stream_ops.ioctl)throw new he.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile(e,t={}){if(t.flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error(`Invalid encoding type "${t.encoding}"`);var r,i=he.open(e,t.flags),s=he.stat(e).size,a=new Uint8Array(s);return he.read(i,a,0,s,0),"utf8"===t.encoding?r=J(a,0):"binary"===t.encoding&&(r=a),he.close(i),r},writeFile(e,t,r={}){r.flags=r.flags||577;var i=he.open(e,r.flags,r.mode);if("string"==typeof t){var s=new Uint8Array(ee(t)+1),a=te(t,s,0,s.length);he.write(i,s,0,a,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");he.write(i,t,0,t.byteLength,void 0,r.canOwn)}he.close(i)},cwd:()=>he.currentPath,chdir(e){var t=he.lookupPath(e,{follow:!0});if(null===t.node)throw new he.ErrnoError(44);if(!he.isDir(t.node.mode))throw new he.ErrnoError(54);var r=he.nodePermissions(t.node,"x");if(r)throw new he.ErrnoError(r);he.currentPath=t.path},createDefaultDirectories(){he.mkdir("/tmp"),he.mkdir("/home"),he.mkdir("/home/web_user")},createDefaultDevices(){he.mkdir("/dev"),he.registerDevice(he.makedev(1,3),{read:()=>0,write:(e,t,r,i,s)=>i}),he.mkdev("/dev/null",he.makedev(1,3)),ne.register(he.makedev(5,0),ne.default_tty_ops),ne.register(he.makedev(6,0),ne.default_tty1_ops),he.mkdev("/dev/tty",he.makedev(5,0)),he.mkdev("/dev/tty1",he.makedev(6,0));var e=new Uint8Array(1024),t=0,r=()=>(0===t&&(t=K(e).byteLength),e[--t]);he.createDevice("/dev","random",r),he.createDevice("/dev","urandom",r),he.mkdir("/dev/shm"),he.mkdir("/dev/shm/tmp")},createSpecialDirectories(){he.mkdir("/proc");var e=he.mkdir("/proc/self");he.mkdir("/proc/self/fd"),he.mount({mount(){var t=he.createNode(e,"fd",16895,73);return t.node_ops={lookup(e,t){var r=+t,i=he.getStreamChecked(r),s={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>i.path}};return s.parent=s,s}},t}},{},"/proc/self/fd")},createStandardStreams(){s.stdin?he.createDevice("/dev","stdin",s.stdin):he.symlink("/dev/tty","/dev/stdin"),s.stdout?he.createDevice("/dev","stdout",null,s.stdout):he.symlink("/dev/tty","/dev/stdout"),s.stderr?he.createDevice("/dev","stderr",null,s.stderr):he.symlink("/dev/tty1","/dev/stderr"),he.open("/dev/stdin",0),he.open("/dev/stdout",1),he.open("/dev/stderr",1)},ensureErrnoError(){he.ErrnoError||(he.ErrnoError=function(e,t){this.name="ErrnoError",this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},he.ErrnoError.prototype=new Error,he.ErrnoError.prototype.constructor=he.ErrnoError,[44].forEach((e=>{he.genericErrors[e]=new he.ErrnoError(e),he.genericErrors[e].stack=""})))},staticInit(){he.ensureErrnoError(),he.nameTable=new Array(4096),he.mount(de,{},"/"),he.createDefaultDirectories(),he.createDefaultDevices(),he.createSpecialDirectories(),he.filesystems={MEMFS:de}},init(e,t,r){he.init.initialized=!0,he.ensureErrnoError(),s.stdin=e||s.stdin,s.stdout=t||s.stdout,s.stderr=r||s.stderr,he.createStandardStreams()},quit(){he.init.initialized=!1;for(var e=0;ethis.length-1||e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},a.prototype.setDataGetter=function(e){this.getter=e},a.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",r,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+r+". Status: "+e.status);var t,i=Number(e.getResponseHeader("Content-length")),s=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,a=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,n=1048576;s||(n=i);var o=this;o.setDataGetter((e=>{var t=e*n,s=(e+1)*n-1;if(s=Math.min(s,i-1),void 0===o.chunks[e]&&(o.chunks[e]=((e,t)=>{if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>i-1)throw new Error("only "+i+" bytes available! programmer error!");var s=new XMLHttpRequest;if(s.open("GET",r,!1),i!==n&&s.setRequestHeader("Range","bytes="+e+"-"+t),s.responseType="arraybuffer",s.overrideMimeType&&s.overrideMimeType("text/plain; charset=x-user-defined"),s.send(null),!(s.status>=200&&s.status<300||304===s.status))throw new Error("Couldn't load "+r+". Status: "+s.status);return void 0!==s.response?new Uint8Array(s.response||[]):re(s.responseText||"",!0)})(t,s)),void 0===o.chunks[e])throw new Error("doXHR failed!");return o.chunks[e]})),!a&&i||(n=i=1,i=this.getter(0).length,n=i,b("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=i,this._chunkSize=n,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!c)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var n=new a;Object.defineProperties(n,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var o={isDevice:!1,contents:n}}else o={isDevice:!1,url:r};var d=he.createFile(e,t,o,i,s);o.contents?d.contents=o.contents:o.url&&(d.contents=null,d.url=o.url),Object.defineProperties(d,{usedBytes:{get:function(){return this.contents.length}}});var l={};function u(e,t,r,i,s){var a=e.node.contents;if(s>=a.length)return 0;var n=Math.min(a.length-s,i);if(a.slice)for(var o=0;o{var t=d.stream_ops[e];l[e]=function(){return he.forceLoadFile(d),t.apply(null,arguments)}})),l.read=(e,t,r,i,s)=>(he.forceLoadFile(d),u(e,t,r,i,s)),l.mmap=(e,t,r,i,s)=>{he.forceLoadFile(d);var a=oe();if(!a)throw new he.ErrnoError(48);return u(e,w,a,t,r),{ptr:a,allocated:!0}},d.stream_ops=l,d}},fe=(e,t)=>e?J(S,e,t):"",pe={DEFAULT_POLLMASK:5,calculateAt(e,t,r){if(Y.isAbs(t))return t;var i;if(i=-100===e?he.cwd():pe.getStreamFromFD(e).path,0==t.length){if(!r)throw new he.ErrnoError(44);return i}return Y.join2(i,t)},doStat(e,t,r){try{var i=e(t)}catch(e){if(e&&e.node&&Y.normalize(t)!==Y.normalize(he.getPath(e.node)))return-54;throw e}A[r>>2]=i.dev,A[r+4>>2]=i.mode,x[r+8>>2]=i.nlink,A[r+12>>2]=i.uid,A[r+16>>2]=i.gid,A[r+20>>2]=i.rdev,G=[i.size>>>0,(O=i.size,+Math.abs(O)>=1?O>0?+Math.floor(O/4294967296)>>>0:~~+Math.ceil((O-+(~~O>>>0))/4294967296)>>>0:0)],A[r+24>>2]=G[0],A[r+28>>2]=G[1],A[r+32>>2]=4096,A[r+36>>2]=i.blocks;var s=i.atime.getTime(),a=i.mtime.getTime(),n=i.ctime.getTime();return G=[Math.floor(s/1e3)>>>0,(O=Math.floor(s/1e3),+Math.abs(O)>=1?O>0?+Math.floor(O/4294967296)>>>0:~~+Math.ceil((O-+(~~O>>>0))/4294967296)>>>0:0)],A[r+40>>2]=G[0],A[r+44>>2]=G[1],x[r+48>>2]=s%1e3*1e3,G=[Math.floor(a/1e3)>>>0,(O=Math.floor(a/1e3),+Math.abs(O)>=1?O>0?+Math.floor(O/4294967296)>>>0:~~+Math.ceil((O-+(~~O>>>0))/4294967296)>>>0:0)],A[r+56>>2]=G[0],A[r+60>>2]=G[1],x[r+64>>2]=a%1e3*1e3,G=[Math.floor(n/1e3)>>>0,(O=Math.floor(n/1e3),+Math.abs(O)>=1?O>0?+Math.floor(O/4294967296)>>>0:~~+Math.ceil((O-+(~~O>>>0))/4294967296)>>>0:0)],A[r+72>>2]=G[0],A[r+76>>2]=G[1],x[r+80>>2]=n%1e3*1e3,G=[i.ino>>>0,(O=i.ino,+Math.abs(O)>=1?O>0?+Math.floor(O/4294967296)>>>0:~~+Math.ceil((O-+(~~O>>>0))/4294967296)>>>0:0)],A[r+88>>2]=G[0],A[r+92>>2]=G[1],0},doMsync(e,t,r,i,s){if(!he.isFile(t.node.mode))throw new he.ErrnoError(43);if(2&i)return 0;var a=S.slice(e,e+r);he.msync(t,a,s,r,i)},varargs:void 0,get(){var e=A[+pe.varargs>>2];return pe.varargs+=4,e},getp:()=>pe.get(),getStr:e=>fe(e),getStreamFromFD:e=>he.getStreamChecked(e)},me=e=>{for(var t="",r=e;S[r];)t+=ie[S[r++]];return t},_e={},ge={},ye={},be=e=>{throw new se(e)},ve=e=>{throw new ae(e)},we=(e,t,r)=>{function i(t){var i=r(t);i.length!==e.length&&ve("Mismatched type converter count");for(var s=0;s{ge.hasOwnProperty(e)?s[t]=ge[e]:(a.push(e),_e.hasOwnProperty(e)||(_e[e]=[]),_e[e].push((()=>{s[t]=ge[e],++n===a.length&&i(s)})))})),0===a.length&&i(s)};function Se(e,t,r={}){if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(e,t,r={}){var i=t.name;if(e||be(`type "${i}" must have a positive integer typeid pointer`),ge.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;be(`Cannot register type '${i}' twice`)}if(ge[e]=t,delete ye[e],_e.hasOwnProperty(e)){var s=_e[e];delete _e[e],s.forEach((e=>e()))}}(e,t,r)}var Ee,Ue=e=>{be(e.$$.ptrType.registeredClass.name+" instance already deleted")},Ae=!1,xe=e=>{},Be=e=>{e.count.value-=1,0===e.count.value&&(e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)})(e)},Te=(e,t,r)=>{if(t===r)return e;if(void 0===r.baseClass)return null;var i=Te(e,t,r.baseClass);return null===i?null:r.downcast(i)},Ce={},ke=()=>Object.keys(Le).length,De=()=>{var e=[];for(var t in Le)Le.hasOwnProperty(t)&&e.push(Le[t]);return e},Ie=[],Pe=()=>{for(;Ie.length;){var e=Ie.pop();e.$$.deleteScheduled=!1,e.delete()}},Fe=e=>{Ee=e,Ie.length&&Ee&&Ee(Pe)},Le={},Re=(e,t)=>(t=((e,t)=>{for(void 0===t&&be("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t})(e,t),Le[t]),ze=(e,t)=>(t.ptrType&&t.ptr||ve("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&ve("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Ne(Object.create(e,{$$:{value:t}})));function Me(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=Re(this.registeredClass,t);if(void 0!==r){if(0===r.$$.count.value)return r.$$.ptr=t,r.$$.smartPtr=e,r.clone();var i=r.clone();return this.destructor(e),i}function s(){return this.isSmartPointer?ze(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):ze(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a,n=this.registeredClass.getActualType(t),o=Ce[n];if(!o)return s.call(this);a=this.isConst?o.constPointerType:o.pointerType;var d=Te(t,this.registeredClass,a.registeredClass);return null===d?s.call(this):this.isSmartPointer?ze(a.registeredClass.instancePrototype,{ptrType:a,ptr:d,smartPtrType:this,smartPtr:e}):ze(a.registeredClass.instancePrototype,{ptrType:a,ptr:d})}var Ne=e=>"undefined"==typeof FinalizationRegistry?(Ne=e=>e,e):(Ae=new FinalizationRegistry((e=>{Be(e.$$)})),Ne=e=>{var t=e.$$;if(t.smartPtr){var r={$$:t};Ae.register(e,r,e)}return e},xe=e=>Ae.unregister(e),Ne(e));function Oe(){}var Ge=(e,t)=>Object.defineProperty(t,"name",{value:e}),$e=(e,t,r)=>{if(void 0===e[t].overloadTable){var i=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||be(`Function '${r}' called with an invalid number of arguments (${arguments.length}) - expects one of (${e[t].overloadTable})!`),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[i.argCount]=i}};function He(e,t,r,i,s,a,n,o){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=i,this.baseClass=s,this.getActualType=a,this.upcast=n,this.downcast=o,this.pureVirtualFunctions=[]}var Ve=(e,t,r)=>{for(;t!==r;)t.upcast||be(`Expected null or instance of ${r.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e};function We(e,t){if(null===t)return this.isReference&&be(`null is not a valid ${this.name}`),0;t.$$||be(`Cannot pass "${mt(t)}" as a ${this.name}`),t.$$.ptr||be(`Cannot pass deleted object as a pointer of type ${this.name}`);var r=t.$$.ptrType.registeredClass;return Ve(t.$$.ptr,r,this.registeredClass)}function je(e,t){var r;if(null===t)return this.isReference&&be(`null is not a valid ${this.name}`),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||be(`Cannot pass "${mt(t)}" as a ${this.name}`),t.$$.ptr||be(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&be(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);var i=t.$$.ptrType.registeredClass;if(r=Ve(t.$$.ptr,i,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&be("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:be(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:r=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)r=t.$$.smartPtr;else{var s=t.clone();r=this.rawShare(r,ht.toHandle((()=>s.delete()))),null!==e&&e.push(this.rawDestructor,r)}break;default:be("Unsupporting sharing policy")}return r}function qe(e,t){if(null===t)return this.isReference&&be(`null is not a valid ${this.name}`),0;t.$$||be(`Cannot pass "${mt(t)}" as a ${this.name}`),t.$$.ptr||be(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&be(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);var r=t.$$.ptrType.registeredClass;return Ve(t.$$.ptr,r,this.registeredClass)}function Ye(e){return this.fromWireType(x[e>>2])}function Ke(e,t,r,i,s,a,n,o,d,l,u){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=i,this.isSmartPointer=s,this.pointeeType=a,this.sharingPolicy=n,this.rawGetPointee=o,this.rawConstructor=d,this.rawShare=l,this.rawDestructor=u,s||void 0!==t.baseClass?this.toWireType=je:i?(this.toWireType=We,this.destructorFunction=null):(this.toWireType=qe,this.destructorFunction=null)}var Xe,Ze,Je=[],Qe=e=>{var t=Je[e];return t||(e>=Je.length&&(Je.length=e+1),Je[e]=t=Xe.get(e)),t},et=(e,t,r)=>e.includes("j")?((e,t,r)=>{var i=s["dynCall_"+e];return r&&r.length?i.apply(null,[t].concat(r)):i.call(null,t)})(e,t,r):Qe(t).apply(null,r),tt=(e,t)=>{var r,i,s,a=(e=me(e)).includes("j")?(r=e,i=t,s=[],function(){return s.length=0,Object.assign(s,arguments),et(r,i,s)}):Qe(t);return"function"!=typeof a&&be(`unknown function pointer with signature ${e}: ${t}`),a},rt=e=>{var t=Vt(e),r=me(t);return Gt(t),r},it=(e,t)=>{var r=[],i={};throw t.forEach((function e(t){i[t]||ge[t]||(ye[t]?ye[t].forEach(e):(r.push(t),i[t]=!0))})),new Ze(`${e}: `+r.map(rt).join([", "]))},st=(e,t)=>{for(var r=[],i=0;i>2]);return r},at=e=>{for(;e.length;){var t=e.pop();e.pop()(t)}};function nt(e,t){if(!(e instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof e} which is not a function`);var r=Ge(e.name||"unknownFunctionName",(function(){}));r.prototype=e.prototype;var i=new r,s=e.apply(i,t);return s instanceof Object?s:i}function ot(e,t,r,i,s,a){var n=t.length;n<2&&be("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var o=null!==t[1]&&null!==r,d=!1,l=1;l0?", ":"")+h),f+=(u||a?"var rv = ":"")+"invoker(fn"+(h.length>0?", ":"")+h+");\n",d)f+="runDestructors(destructors);\n";else for(l=o?1:2;l{e>=lt.reserved&&0===--lt.get(e).refcount&<.free(e)},ct=()=>{for(var e=0,t=lt.reserved;t(e||be("Cannot use deleted val. handle = "+e),lt.get(e).value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return lt.allocate({refcount:1,value:e})}}};function ft(e){return this.fromWireType(A[e>>2])}var pt,mt=e=>{if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e},_t=(e,t)=>{switch(t){case 4:return function(e){return this.fromWireType(B[e>>2])};case 8:return function(e){return this.fromWireType(T[e>>3])};default:throw new TypeError(`invalid float width (${t}): ${e}`)}},gt=(e,t,r)=>{switch(t){case 1:return r?e=>w[0|e]:e=>S[0|e];case 2:return r?e=>E[e>>1]:e=>U[e>>1];case 4:return r?e=>A[e>>2]:e=>x[e>>2];default:throw new TypeError(`invalid integer width (${t}): ${e}`)}},yt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,bt=(e,t)=>{for(var r=e,i=r>>1,s=i+t/2;!(i>=s)&&U[i];)++i;if((r=i<<1)-e>32&&yt)return yt.decode(S.subarray(e,r));for(var a="",n=0;!(n>=t/2);++n){var o=E[e+2*n>>1];if(0==o)break;a+=String.fromCharCode(o)}return a},vt=(e,t,r)=>{if(void 0===r&&(r=2147483647),r<2)return 0;for(var i=t,s=(r-=2)<2*e.length?r/2:e.length,a=0;a>1]=n,t+=2}return E[t>>1]=0,t-i},wt=e=>2*e.length,St=(e,t)=>{for(var r=0,i="";!(r>=t/4);){var s=A[e+4*r>>2];if(0==s)break;if(++r,s>=65536){var a=s-65536;i+=String.fromCharCode(55296|a>>10,56320|1023&a)}else i+=String.fromCharCode(s)}return i},Et=(e,t,r)=>{if(void 0===r&&(r=2147483647),r<4)return 0;for(var i=t,s=i+r-4,a=0;a=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++a)),A[t>>2]=n,(t+=4)+4>s)break}return A[t>>2]=0,t-i},Ut=e=>{for(var t=0,r=0;r=55296&&i<=57343&&++r,t+=4}return t},At={},xt=e=>{var t=At[e];return void 0===t?me(e):t},Bt=[],Tt=(e,t)=>{var r=ge[e];return void 0===r&&be(t+" has unknown type "+rt(e)),r},Ct=(e,t,r)=>{var i=[],s=e.toWireType(i,r);return i.length&&(x[t>>2]=ht.toHandle(i)),s};pt=()=>performance.now();var kt,Dt,It,Pt={},Ft=()=>{if(!Ft.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:l||"./this.program"};for(var t in Pt)void 0===Pt[t]?delete e[t]:e[t]=Pt[t];var r=[];for(var t in e)r.push(`${t}=${e[t]}`);Ft.strings=r}return Ft.strings},Lt=function(e,t,r,i){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=he.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=i},Rt=365,zt=146;Object.defineProperties(Lt.prototype,{read:{get:function(){return(this.mode&Rt)===Rt},set:function(e){e?this.mode|=Rt:this.mode&=-366}},write:{get:function(){return(this.mode&zt)===zt},set:function(e){e?this.mode|=zt:this.mode&=-147}},isFolder:{get:function(){return he.isDir(this.mode)}},isDevice:{get:function(){return he.isChrdev(this.mode)}}}),he.FSNode=Lt,he.createPreloadedFile=(e,t,r,i,s,a,n,o,d,l)=>{var u=t?X.resolve(Y.join2(e,t)):e;function c(r){function c(r){l&&l(),o||((e,t,r,i,s,a)=>{he.createDataFile(e,t,r,i,s,a)})(e,t,r,i,s,d),a&&a(),R()}((e,t,r,i)=>{"undefined"!=typeof Browser&&Browser.init();var s=!1;return ue.forEach((a=>{s||a.canHandle(t)&&(a.handle(e,t,r,i),s=!0)})),s})(r,u,c,(()=>{n&&n(),R()}))||c(r)}L(),"string"==typeof r?le(r,(e=>c(e)),n):c(r)},he.staticInit(),(()=>{for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);ie=e})(),se=s.BindingError=class extends Error{constructor(e){super(e),this.name="BindingError"}},ae=s.InternalError=class extends Error{constructor(e){super(e),this.name="InternalError"}},Object.assign(Oe.prototype,{isAliasOf(e){if(!(this instanceof Oe))return!1;if(!(e instanceof Oe))return!1;var t=this.$$.ptrType.registeredClass,r=this.$$.ptr;e.$$=e.$$;for(var i=e.$$.ptrType.registeredClass,s=e.$$.ptr;t.baseClass;)r=t.upcast(r),t=t.baseClass;for(;i.baseClass;)s=i.upcast(s),i=i.baseClass;return t===i&&r===s},clone(){if(this.$$.ptr||Ue(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,t=Ne(Object.create(Object.getPrototypeOf(this),{$$:{value:(e=this.$$,{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType})}}));return t.$$.count.value+=1,t.$$.deleteScheduled=!1,t},delete(){this.$$.ptr||Ue(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&be("Object already scheduled for deletion"),xe(this),Be(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||Ue(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&be("Object already scheduled for deletion"),Ie.push(this),1===Ie.length&&Ee&&Ee(Pe),this.$$.deleteScheduled=!0,this}}),s.getInheritedInstanceCount=ke,s.getLiveInheritedInstances=De,s.flushPendingDeletes=Pe,s.setDelayFunction=Fe,Object.assign(Ke.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor&&this.rawDestructor(e)},argPackAdvance:8,readValueFromPointer:Ye,deleteObject(e){null!==e&&e.delete()},fromWireType:Me}),Ze=s.UnboundTypeError=(kt=Error,(It=Ge(Dt="UnboundTypeError",(function(e){this.name=Dt,this.message=e;var t=new Error(e).stack;void 0!==t&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}))).prototype=Object.create(kt.prototype),It.prototype.constructor=It,It.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},It),Object.assign(dt.prototype,{get(e){return this.allocated[e]},has(e){return void 0!==this.allocated[e]},allocate(e){var t=this.freelist.pop()||this.allocated.length;return this.allocated[t]=e,t},free(e){this.allocated[e]=void 0,this.freelist.push(e)}}),lt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),lt.reserved=lt.allocated.length,s.count_emval_handles=ct;var Mt,Nt={s:(e,t,r)=>{throw new q(e).init(t,r),e},D:function(e,t,r){pe.varargs=r;try{var i=pe.getStreamFromFD(e);switch(t){case 0:if((s=pe.get())<0)return-28;for(;he.streams[s];)s++;return he.createStream(i,s).fd;case 1:case 2:case 6:case 7:return 0;case 3:return i.flags;case 4:var s=pe.get();return i.flags|=s,0;case 5:return s=pe.getp(),E[s+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return a=28,A[Ht()>>2]=a,-1}}catch(e){if(void 0===he||"ErrnoError"!==e.name)throw e;return-e.errno}var a},w:function(e,t,r,i){pe.varargs=i;try{t=pe.getStr(t),t=pe.calculateAt(e,t);var s=i?pe.get():0;return he.open(t,r,s).fd}catch(e){if(void 0===he||"ErrnoError"!==e.name)throw e;return-e.errno}},u:(e,t,r,i,s)=>{},G:(e,t,r,i)=>{Se(e,{name:t=me(t),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?r:i},argPackAdvance:8,readValueFromPointer:function(e){return this.fromWireType(S[e])},destructorFunction:null})},k:(e,t,r,i,a,n,o,d,l,u,c,h,f)=>{c=me(c),n=tt(a,n),d&&(d=tt(o,d)),u&&(u=tt(l,u)),f=tt(h,f);var p=(e=>{if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?`_${e}`:e})(c);((e,t,r)=>{s.hasOwnProperty(e)?((void 0===r||void 0!==s[e].overloadTable&&void 0!==s[e].overloadTable[r])&&be(`Cannot register public name '${e}' twice`),$e(s,e,e),s.hasOwnProperty(r)&&be(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`),s[e].overloadTable[r]=t):(s[e]=t,void 0!==r&&(s[e].numArguments=r))})(p,(function(){it(`Cannot construct ${c} due to unbound types`,[i])})),we([e,t,r],i?[i]:[],(function(t){var r,a;t=t[0],a=i?(r=t.registeredClass).instancePrototype:Oe.prototype;var o=Ge(c,(function(){if(Object.getPrototypeOf(this)!==l)throw new se("Use 'new' to construct "+c);if(void 0===h.constructor_body)throw new se(c+" has no accessible constructor");var e=h.constructor_body[arguments.length];if(void 0===e)throw new se(`Tried to invoke ctor of ${c} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(h.constructor_body).toString()}) parameters instead!`);return e.apply(this,arguments)})),l=Object.create(a,{constructor:{value:o}});o.prototype=l;var h=new He(c,o,l,f,r,n,d,u);h.baseClass&&(void 0===h.baseClass.__derivedClasses&&(h.baseClass.__derivedClasses=[]),h.baseClass.__derivedClasses.push(h));var m=new Ke(c,h,!0,!1,!1),_=new Ke(c+"*",h,!1,!1,!1),g=new Ke(c+" const*",h,!1,!0,!1);return Ce[e]={pointerType:_,constPointerType:g},((e,t,r)=>{s.hasOwnProperty(e)||ve("Replacing nonexistant public symbol"),void 0!==s[e].overloadTable&&void 0!==r?s[e].overloadTable[r]=t:(s[e]=t,s[e].argCount=r)})(p,o),[m,_,g]}))},j:(e,t,r,i,s,a)=>{var n=st(t,r);s=tt(i,s),we([],[e],(function(e){var r=`constructor ${(e=e[0]).name}`;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new se(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${e.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return e.registeredClass.constructor_body[t-1]=()=>{it(`Cannot construct ${e.name} due to unbound types`,n)},we([],n,(i=>(i.splice(1,0,null),e.registeredClass.constructor_body[t-1]=ot(r,i,null,s,a),[]))),[]}))},d:(e,t,r,i,s,a,n,o,d)=>{var l=st(r,i);t=(e=>{const t=(e=e.trim()).indexOf("(");return-1!==t?e.substr(0,t):e})(t=me(t)),a=tt(s,a),we([],[e],(function(e){var i=`${(e=e[0]).name}.${t}`;function s(){it(`Cannot call ${i} due to unbound types`,l)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),o&&e.registeredClass.pureVirtualFunctions.push(t);var u=e.registeredClass.instancePrototype,c=u[t];return void 0===c||void 0===c.overloadTable&&c.className!==e.name&&c.argCount===r-2?(s.argCount=r-2,s.className=e.name,u[t]=s):($e(u,t,i),u[t].overloadTable[r-2]=s),we([],l,(function(s){var o=ot(i,s,e,a,n,d);return void 0===u[t].overloadTable?(o.argCount=r-2,u[t]=o):u[t].overloadTable[r-2]=o,[]})),[]}))},F:(e,t)=>{Se(e,{name:t=me(t),fromWireType:e=>{var t=ht.toValue(e);return ut(e),t},toWireType:(e,t)=>ht.toHandle(t),argPackAdvance:8,readValueFromPointer:ft,destructorFunction:null})},o:(e,t,r)=>{Se(e,{name:t=me(t),fromWireType:e=>e,toWireType:(e,t)=>t,argPackAdvance:8,readValueFromPointer:_t(t,r),destructorFunction:null})},e:(e,t,r,i,s)=>{t=me(t);var a=e=>e;if(0===i){var n=32-8*r;a=e=>e<>>n}var o=t.includes("unsigned");Se(e,{name:t,fromWireType:a,toWireType:o?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:gt(t,r,0!==i),destructorFunction:null})},b:(e,t,r)=>{var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function s(e){var t=x[e>>2],r=x[e+4>>2];return new i(w.buffer,r,t)}Se(e,{name:r=me(r),fromWireType:s,argPackAdvance:8,readValueFromPointer:s},{ignoreDuplicateRegistrations:!0})},p:(e,t)=>{var r="std::string"===(t=me(t));Se(e,{name:t,fromWireType(e){var t,i=x[e>>2],s=e+4;if(r)for(var a=s,n=0;n<=i;++n){var o=s+n;if(n==i||0==S[o]){var d=fe(a,o-a);void 0===t?t=d:(t+=String.fromCharCode(0),t+=d),a=o+1}}else{var l=new Array(i);for(n=0;n>2]=i,r&&s)te(t,S,n,i+1);else if(s)for(var o=0;o255&&(Gt(n),be("String has UTF-16 code units that do not fit in 8 bits")),S[n+o]=d}else for(o=0;o{var i,s,a,n,o;r=me(r),2===t?(i=bt,s=vt,n=wt,a=()=>U,o=1):4===t&&(i=St,s=Et,n=Ut,a=()=>x,o=2),Se(e,{name:r,fromWireType:e=>{for(var r,s=x[e>>2],n=a(),d=e+4,l=0;l<=s;++l){var u=e+4+l*t;if(l==s||0==n[u>>o]){var c=i(d,u-d);void 0===r?r=c:(r+=String.fromCharCode(0),r+=c),d=u+t}}return Gt(e),r},toWireType:(e,i)=>{"string"!=typeof i&&be(`Cannot pass non-string to C++ string type ${r}`);var a=n(i),d=$t(4+a+t);return x[d>>2]=a>>o,s(i,d+4,a+t),null!==e&&e.push(Gt,d),d},argPackAdvance:8,readValueFromPointer:ft,destructorFunction(e){Gt(e)}})},H:(e,t)=>{Se(e,{isVoid:!0,name:t=me(t),argPackAdvance:0,fromWireType:()=>{},toWireType:(e,t)=>{}})},h:(e,t,r,i,s)=>(e=Bt[e])(t=ht.toValue(t),t[r=xt(r)],i,s),c:ut,g:(e,t,r)=>{var i=((e,t)=>{for(var r=new Array(e),i=0;i>2],"parameter "+i);return r})(e,t),s=i.shift();e--;var a="return function (obj, func, destructorsRef, args) {\n",n=0,o=[];0===r&&o.push("obj");for(var d=["retType"],l=[s],u=0;ue.name)).join(", ")}) => ${s.name}>`;return c=Ge(p,f),h=Bt.length,Bt.push(c),h},I:e=>{e>4&&(lt.get(e).refcount+=1)},q:e=>ht.toHandle(xt(e)),K:()=>ht.toHandle({}),E:e=>ht.toHandle(fe(e)),f:e=>{var t=ht.toValue(e);at(t),ut(e)},r:(e,t,r)=>{e=ht.toValue(e),t=ht.toValue(t),r=ht.toValue(r),e[t]=r},J:(e,t)=>{var r=(e=Tt(e,"_emval_take_value")).readValueFromPointer(t);return ht.toHandle(r)},a:()=>{z("")},l:()=>Date.now(),i:pt,A:(e,t,r)=>S.copyWithin(e,t,t+r),v:e=>{S.length,z("OOM")},y:(e,t)=>{var r=0;return Ft().forEach(((i,s)=>{var a=t+r;x[e+4*s>>2]=a,((e,t)=>{for(var r=0;r{var r=Ft();x[e>>2]=r.length;var i=0;return r.forEach((e=>i+=e.length+1)),x[t>>2]=i,0},n:function(e){try{var t=pe.getStreamFromFD(e);return he.close(t),0}catch(e){if(void 0===he||"ErrnoError"!==e.name)throw e;return e.errno}},x:function(e,t){try{var r=pe.getStreamFromFD(e),i=r.tty?2:he.isDir(r.mode)?3:he.isLink(r.mode)?7:4;return w[0|t]=i,E[t+2>>1]=0,G=[0,(O=0,+Math.abs(O)>=1?O>0?+Math.floor(O/4294967296)>>>0:~~+Math.ceil((O-+(~~O>>>0))/4294967296)>>>0:0)],A[t+8>>2]=G[0],A[t+12>>2]=G[1],G=[0,(O=0,+Math.abs(O)>=1?O>0?+Math.floor(O/4294967296)>>>0:~~+Math.ceil((O-+(~~O>>>0))/4294967296)>>>0:0)],A[t+16>>2]=G[0],A[t+20>>2]=G[1],0}catch(e){if(void 0===he||"ErrnoError"!==e.name)throw e;return e.errno}},C:function(e,t,r,i){try{var s=((e,t,r,i)=>{for(var s=0,a=0;a>2],o=x[t+4>>2];t+=8;var d=he.read(e,w,n,o,i);if(d<0)return-1;if(s+=d,d>2]=s,0}catch(e){if(void 0===he||"ErrnoError"!==e.name)throw e;return e.errno}},t:function(e,t,r,i,s){var a,n,o=(n=r)+2097152>>>0<4194305-!!(a=t)?(a>>>0)+4294967296*n:NaN;try{if(isNaN(o))return 61;var d=pe.getStreamFromFD(e);return he.llseek(d,o,i),G=[d.position>>>0,(O=d.position,+Math.abs(O)>=1?O>0?+Math.floor(O/4294967296)>>>0:~~+Math.ceil((O-+(~~O>>>0))/4294967296)>>>0:0)],A[s>>2]=G[0],A[s+4>>2]=G[1],d.getdents&&0===o&&0===i&&(d.getdents=null),0}catch(e){if(void 0===he||"ErrnoError"!==e.name)throw e;return e.errno}},B:function(e,t,r,i){try{var s=((e,t,r,i)=>{for(var s=0,a=0;a>2],o=x[t+4>>2];t+=8;var d=he.write(e,w,n,o,i);if(d<0)return-1;s+=d,void 0!==i&&(i+=d)}return s})(pe.getStreamFromFD(e),t,r);return x[i>>2]=s,0}catch(e){if(void 0===he||"ErrnoError"!==e.name)throw e;return e.errno}}},Ot=function(){var e,t,r,a,n={a:Nt};function o(e,t){var r,i;return Ot=e.exports,y=Ot.L,r=y.buffer,s.HEAP8=w=new Int8Array(r),s.HEAP16=E=new Int16Array(r),s.HEAPU8=S=new Uint8Array(r),s.HEAPU16=U=new Uint16Array(r),s.HEAP32=A=new Int32Array(r),s.HEAPU32=x=new Uint32Array(r),s.HEAPF32=B=new Float32Array(r),s.HEAPF64=T=new Float64Array(r),Xe=Ot.P,i=Ot.M,D.unshift(i),R(),Ot}if(L(),s.instantiateWasm)try{return s.instantiateWasm(n,o)}catch(e){v(`Module.instantiateWasm callback failed with error: ${e}`),i(e)}return(e=g,t=M,r=n,a=function(e){o(e.instance)},e||"function"!=typeof WebAssembly.instantiateStreaming||$(t)||H(t)||h||"function"!=typeof fetch?W(t,r,a):fetch(t,{credentials:"same-origin"}).then((e=>WebAssembly.instantiateStreaming(e,r).then(a,(function(e){return v(`wasm streaming compile failed: ${e}`),v("falling back to ArrayBuffer instantiation"),W(t,r,a)}))))).catch(i),{}}(),Gt=e=>(Gt=Ot.N)(e),$t=e=>($t=Ot.O)(e),Ht=()=>(Ht=Ot.Q)(),Vt=e=>(Vt=Ot.R)(e),Wt=e=>(Wt=Ot.T)(e);function jt(){function e(){Mt||(Mt=!0,s.calledRun=!0,C||(s.noFSInit||he.init.initialized||he.init(),he.ignorePermissions=!1,j(D),r(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),function(){if(s.postRun)for("function"==typeof s.postRun&&(s.postRun=[s.postRun]);s.postRun.length;)e=s.postRun.shift(),I.unshift(e);var e;j(I)}()))}P>0||(function(){if(s.preRun)for("function"==typeof s.preRun&&(s.preRun=[s.preRun]);s.preRun.length;)e=s.preRun.shift(),k.unshift(e);var e;j(k)}(),P>0||(s.setStatus?(s.setStatus("Running..."),setTimeout((function(){setTimeout((function(){s.setStatus("")}),1),e()}),1)):e()))}if(s.dynCall_viiijj=(e,t,r,i,a,n,o,d)=>(s.dynCall_viiijj=Ot.U)(e,t,r,i,a,n,o,d),s.dynCall_jij=(e,t,r,i)=>(s.dynCall_jij=Ot.V)(e,t,r,i),s.dynCall_jii=(e,t,r)=>(s.dynCall_jii=Ot.W)(e,t,r),s.dynCall_jiji=(e,t,r,i,a)=>(s.dynCall_jiji=Ot.X)(e,t,r,i,a),s._ff_h264_cabac_tables=225692,s.___start_em_js=385108,s.___stop_em_js=385165,F=function e(){Mt||jt(),Mt||(F=e)},s.preInit)for("function"==typeof s.preInit&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();return jt(),t.ready}),r=1e-6,s="undefined"!=typeof Float32Array?Float32Array:Array;function a(){var e=new s(16);return s!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function n(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var o,d=function(e,t,r,i,s,a,n){var o=1/(t-r),d=1/(i-s),l=1/(a-n);return e[0]=-2*o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*d,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*l,e[11]=0,e[12]=(t+r)*o,e[13]=(s+i)*d,e[14]=(n+a)*l,e[15]=1,e};function l(e,t,r){var i=new s(3);return i[0]=e,i[1]=t,i[2]=r,i}o=new s(3),s!=Float32Array&&(o[0]=0,o[1]=0,o[2]=0);var u=(e,t)=>{t&&e.pixelStorei(e.UNPACK_ALIGNMENT,1);const i=function(){const t=m(e.VERTEX_SHADER,"\n attribute vec4 aVertexPosition;\n attribute vec2 aTexturePosition;\n uniform mat4 uModelMatrix;\n uniform mat4 uViewMatrix;\n uniform mat4 uProjectionMatrix;\n varying lowp vec2 vTexturePosition;\n void main(void) {\n gl_Position = uProjectionMatrix * uViewMatrix * uModelMatrix * aVertexPosition;\n vTexturePosition = aTexturePosition;\n }\n "),r=m(e.FRAGMENT_SHADER,"\n precision highp float;\n varying highp vec2 vTexturePosition;\n uniform int isyuv;\n uniform sampler2D rgbaTexture;\n uniform sampler2D yTexture;\n uniform sampler2D uTexture;\n uniform sampler2D vTexture;\n\n const mat4 YUV2RGB = mat4( 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\n if (isyuv>0) {\n\n highp float y = texture2D(yTexture, vTexturePosition).r;\n highp float u = texture2D(uTexture, vTexturePosition).r;\n highp float v = texture2D(vTexture, vTexturePosition).r;\n gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;\n\n } else {\n gl_FragColor = texture2D(rgbaTexture, vTexturePosition);\n }\n }\n "),i=e.createProgram();if(e.attachShader(i,t),e.attachShader(i,r),e.linkProgram(i),!e.getProgramParameter(i,e.LINK_STATUS))return console.log("Unable to initialize the shader program: "+e.getProgramInfoLog(i)),null;return i}();let s={program:i,attribLocations:{vertexPosition:e.getAttribLocation(i,"aVertexPosition"),texturePosition:e.getAttribLocation(i,"aTexturePosition")},uniformLocations:{projectionMatrix:e.getUniformLocation(i,"uProjectionMatrix"),modelMatrix:e.getUniformLocation(i,"uModelMatrix"),viewMatrix:e.getUniformLocation(i,"uViewMatrix"),rgbatexture:e.getUniformLocation(i,"rgbaTexture"),ytexture:e.getUniformLocation(i,"yTexture"),utexture:e.getUniformLocation(i,"uTexture"),vtexture:e.getUniformLocation(i,"vTexture"),isyuv:e.getUniformLocation(i,"isyuv")}},o=function(){const t=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,t);e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,-1,-1,1,1,-1,-1,1,-1]),e.STATIC_DRAW);var r=[];r=r.concat([0,1],[1,1],[1,0],[0,0]);const i=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,i),e.bufferData(e.ARRAY_BUFFER,new Float32Array(r),e.STATIC_DRAW);const s=e.createBuffer();e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,s);return e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),e.STATIC_DRAW),{position:t,texPosition:i,indices:s}}(),u=p(),c=p(),h=p(),f=p();function p(){let t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),t}function m(t,r){const i=e.createShader(t);return e.shaderSource(i,r),e.compileShader(i),e.getShaderParameter(i,e.COMPILE_STATUS)?i:(console.log("An error occurred compiling the shaders: "+e.getShaderInfoLog(i)),e.deleteShader(i),null)}function _(t,i){e.viewport(0,0,t,i),e.clearColor(0,0,0,0),e.clearDepth(1),e.enable(e.DEPTH_TEST),e.depthFunc(e.LEQUAL),e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT);const u=a();d(u,-1,1,-1,1,.1,100);const p=a();n(p);const m=a();!function(e,t,i,s){var a,o,d,l,u,c,h,f,p,m,_=t[0],g=t[1],y=t[2],b=s[0],v=s[1],w=s[2],S=i[0],E=i[1],U=i[2];Math.abs(_-S)32&&console.error("ExpGolomb: readBits() bits exceeded max 32bits!"),e<=this._current_word_bits_left){let t=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t}let t=this._current_word_bits_left?this._current_word:0;t>>>=32-this._current_word_bits_left;let r=e-this._current_word_bits_left;this._fillCurrentWord();let i=Math.min(r,this._current_word_bits_left),s=this._current_word>>>32-i;return this._current_word<<=i,this._current_word_bits_left-=i,t=t<>>e)return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}readUEG(){let e=this._skipLeadingZero();return this.readBits(e+1)-1}readSEG(){let e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}}function Pt({profile:e,sampleRate:t,channel:r}){return new Uint8Array([175,0,e<<3|(14&t)>>1,(1&t)<<7|r<<3])}function Ft(e){return Lt(e)&&e[1]===bt}function Lt(e){return e[0]>>4===De}const Rt=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],zt=Rt,Mt=Rt,Nt=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];class Ot{constructor(e){this.data_=e,this.eof_flag_=!1,this.current_syncword_offset_=this.findNextSyncwordOffset(0),this.eof_flag_&&console.error("Could not found ADTS syncword until payload end")}findNextSyncwordOffset(e){let t=e,r=this.data_;for(;;){if(t+7>=r.byteLength)return this.eof_flag_=!0,r.byteLength;if(4095===(r[t+0]<<8|r[t+1])>>>4)return t;t++}}readNextAACFrame(){let e=this.data_,t=null;for(;null==t&&!this.eof_flag_;){let r=this.current_syncword_offset_,i=(8&e[r+1])>>>3,s=(6&e[r+1])>>>1,a=1&e[r+1],n=(192&e[r+2])>>>6,o=(60&e[r+2])>>>2,d=(1&e[r+2])<<2|(192&e[r+3])>>>6,l=(3&e[r+3])<<11|e[r+4]<<3|(224&e[r+5])>>>5;if(e[r+6],r+l>this.data_.byteLength){this.eof_flag_=!0,this.has_last_incomplete_data=!0;break}let u=1===a?7:9,c=l-u;r+=u;let h=this.findNextSyncwordOffset(r+c);if(this.current_syncword_offset_=h,0!==i&&1!==i||0!==s)continue;let f=e.subarray(r,r+c);t={},t.audio_object_type=n+1,t.sampling_freq_index=o,t.sampling_frequency=zt[o],t.channel_config=d,t.data=f}return t}hasIncompleteData(){return this.has_last_incomplete_data}getIncompleteData(){return this.has_last_incomplete_data?this.data_.subarray(this.current_syncword_offset_):null}}class Gt{constructor(e){this.data_=e,this.eof_flag_=!1,this.current_syncword_offset_=this.findNextSyncwordOffset(0),this.eof_flag_&&console.error("Could not found ADTS syncword until payload end")}findNextSyncwordOffset(e){let t=e,r=this.data_;for(;;){if(t+1>=r.byteLength)return this.eof_flag_=!0,r.byteLength;if(695===(r[t+0]<<3|r[t+1]>>>5))return t;t++}}getLATMValue(e){let t=e.readBits(2),r=0;for(let i=0;i<=t;i++)r<<=8,r|=e.readByte();return r}readNextAACFrame(e){let t=this.data_,r=null;for(;null==r&&!this.eof_flag_;){let i=this.current_syncword_offset_,s=(31&t[i+1])<<8|t[i+2];if(i+3+s>=this.data_.byteLength){this.eof_flag_=!0,this.has_last_incomplete_data=!0;break}let a=new It(t.subarray(i+3,i+3+s)),n=null;if(a.readBool()){if(null==e){console.warn("StreamMuxConfig Missing"),this.current_syncword_offset_=this.findNextSyncwordOffset(i+3+s),a.destroy();continue}n=e}else{let e=a.readBool();if(e&&a.readBool()){console.error("audioMuxVersionA is Not Supported"),a.destroy();break}if(e&&this.getLATMValue(a),!a.readBool()){console.error("allStreamsSameTimeFraming zero is Not Supported"),a.destroy();break}if(0!==a.readBits(6)){console.error("more than 2 numSubFrames Not Supported"),a.destroy();break}if(0!==a.readBits(4)){console.error("more than 2 numProgram Not Supported"),a.destroy();break}if(0!==a.readBits(3)){console.error("more than 2 numLayer Not Supported"),a.destroy();break}let t=e?this.getLATMValue(a):0,r=a.readBits(5);t-=5;let i=a.readBits(4);t-=4;let s=a.readBits(4);t-=4,a.readBits(3),t-=3,t>0&&a.readBits(t);let o=a.readBits(3);if(0!==o){console.error(`frameLengthType = ${o}. Only frameLengthType = 0 Supported`),a.destroy();break}a.readByte();let d=a.readBool();if(d)if(e)this.getLATMValue(a);else{let e=0;for(;;){e<<=8;let t=a.readBool();if(e+=a.readByte(),!t)break}console.log(e)}a.readBool()&&a.readByte(),n={},n.audio_object_type=r,n.sampling_freq_index=i,n.sampling_frequency=zt[n.sampling_freq_index],n.channel_config=s,n.other_data_present=d}let o=0;for(;;){let e=a.readByte();if(o+=e,255!==e)break}let d=new Uint8Array(o);for(let e=0;e>>0)+(e[t+1]<<16)+(e[t+2]<<8)+(e[t+3]||0)}function Ht(e){const t=e.byteLength,r=new Uint8Array(4);r[0]=t>>>24&255,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=255&t;const i=new Uint8Array(t+4);return i.set(r,0),i.set(e,4),i}function Vt(e,t){let r=null;return t?e.length>=28&&(r=1+(3&e[26])):e.length>=12&&(r=1+(3&e[9])),r}function Wt(){return(new Date).getTime()}function jt(){return performance&&"function"==typeof performance.now?performance.now():Date.now()}function qt(e){let t=0,r=jt();return i=>{if(s=i,"[object Number]"!==Object.prototype.toString.call(s))return;var s;t+=i;const a=jt(),n=a-r;n>=1e3&&(e(t/n*1e3),r=a,t=0)}}function Yt(e){return null==e}function Kt(e){return"function"==typeof e}function Xt(e){e.close()}function Zt(e,t){t&&(e=e.filter((e=>e.type&&e.type===t)));let r=e[0],i=null,s=1;if(e.length>0){let t=e[1];t&&t.ts-r.ts>1e5&&(r=t,s=2)}if(r)for(let a=s;a=1e3){e[a-1].ts-r.ts<1e3&&(i=a+1)}}}return i}function Jt(){return function(e){let t="";if("object"==typeof e)try{t=JSON.stringify(e),t=JSON.parse(t)}catch(r){t=e}else t=e;return t}(v)}function Qt(e){return e[0]>>4===vt&&e[1]===bt}function er(e){return!0===e||"true"===e}function tr(e){return!0!==e&&"true"!==e}function rr(e,t,...r){/Safari/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)?console.log(...r):"log"==t||"warn"==t?console.log(`%c ${e} %c ${ir(new Date,"hh:mm:ss")} %c`,"background:#2d8cf0; padding: 1px; border-radius: 3px 0 0 3px; color: #fff;margin:5px 0","background:#67C23A; padding: 1px; border-radius: 0 3px 3px 0; color: #fff;margin-right: 10px","background:transparent",...r):"error"==t&&console.log(`%c ${e} %c ${ir(new Date,"hh:mm:ss")} %c`,"background:#2d8cf0; padding: 1px; border-radius: 3px 0 0 3px; color: #fff;margin:5px 0","background:#F56C6C; padding: 1px; border-radius: 0 3px 3px 0; color: #fff;margin-right: 10px","background:transparent",...r)}function ir(e,t){let r;const i={"Y+":e.getFullYear().toString(),"M+":(e.getMonth()+1).toString(),"D+":e.getDate().toString(),"h+":e.getHours().toString(),"m+":e.getMinutes().toString(),"s+":e.getSeconds().toString()};for(const e in i)r=new RegExp("("+e+")").exec(t),r&&(t=t.replace(r[1],1===r[1].length?i[e]:i[e].padStart(r[1].length,"0")));return t}(()=>{try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){const e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){}})();var sr=function(e,t,r,i){return new(r||(r=Promise))((function(s,a){function n(e){try{d(i.next(e))}catch(e){a(e)}}function o(e){try{d(i.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?s(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(n,o)}d((i=i.apply(e,t||[])).next())}))};const ar=Symbol(32),nr=Symbol(16),or=Symbol(8);class dr{constructor(e){this.g=e,this.consumed=0,e&&(this.need=e.next().value)}setG(e){this.g=e,this.demand(e.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(e,t){return t&&this.consume(),this.need=e,this.flush()}read(e){return sr(this,void 0,void 0,(function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise(((t,r)=>{var i;this.reject=r,this.resolve=e=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(e)};this.demand(e,!0)||null===(i=this.pull)||void 0===i||i.call(this,e)}))}))}readU32(){return this.read(ar)}readU16(){return this.read(nr)}readU8(){return this.read(or)}close(){var e;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),null===(e=this.reject)||void 0===e||e.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let e=null;const t=this.buffer.subarray(this.consumed);let r=0;const i=e=>t.length<(r=e);if("number"==typeof this.need){if(i(this.need))return;e=t.subarray(0,r)}else if(this.need===ar){if(i(4))return;e=t[0]<<24|t[1]<<16|t[2]<<8|t[3]}else if(this.need===nr){if(i(2))return;e=t[0]<<8|t[1]}else if(this.need===or){if(i(1))return;e=t[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(i(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(t.subarray(0,r)),e=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(i(this.need.byteLength))return;new Uint8Array(this.need).set(t.subarray(0,r)),e=this.need}return this.consumed+=r,this.g?this.demand(this.g.next(e).value,!0):this.resolve&&this.resolve(e),e}write(e){if(e instanceof Uint8Array?this.malloc(e.length).set(e):"buffer"in e?this.malloc(e.byteLength).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)):this.malloc(e.byteLength).set(new Uint8Array(e)),!this.g&&!this.resolve)return new Promise((e=>this.pull=e));this.flush()}writeU32(e){this.malloc(4).set([e>>24&255,e>>16&255,e>>8&255,255&e]),this.flush()}writeU16(e){this.malloc(2).set([e>>8&255,255&e]),this.flush()}writeU8(e){this.malloc(1)[0]=e,this.flush()}malloc(e){if(this.buffer){const t=this.buffer.length,r=t+e;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{const e=new Uint8Array(r);e.set(this.buffer),this.buffer=e}return this.buffer.subarray(t,r)}return this.buffer=new Uint8Array(e),this.buffer}}dr.U32=ar,dr.U16=nr,dr.U8=or;class lr{constructor(e){this.log=(t,...r)=>{e._opt.debug&&rr(`EasyPlayerPro[${t}]`,"log",...r)},this.warn=(t,...r)=>{e._opt.debug&&rr(`EasyPlayerPro[${t}]`,"warn",...r)},this.error=(e,...t)=>{rr(`EasyPlayerPro[${e}]`,"error",...t)}}}class ur{static _ebsp2rbsp(e){let t=e,r=t.byteLength,i=new Uint8Array(r),s=0;for(let e=0;e=2&&3===t[e]&&0===t[e-1]&&0===t[e-2]||(i[s]=t[e],s++);return new Uint8Array(i.buffer,0,s)}static parseSPS(e){let t=ur._ebsp2rbsp(e),r=new It(t);r.readByte();let i=r.readByte();r.readByte();let s=r.readByte();r.readUEG();let a=ur.getProfileString(i),n=ur.getLevelString(s),o=1,d=420,l=[0,420,422,444],u=8;if((100===i||110===i||122===i||244===i||44===i||83===i||86===i||118===i||128===i||138===i||144===i)&&(o=r.readUEG(),3===o&&r.readBits(1),o<=3&&(d=l[o]),u=r.readUEG()+8,r.readUEG(),r.readBits(1),r.readBool())){let e=3!==o?8:12;for(let t=0;t0&&e<16?(v=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][e-1],w=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][e-1]):255===e&&(v=r.readByte()<<8|r.readByte(),w=r.readByte()<<8|r.readByte())}if(r.readBool()&&r.readBool(),r.readBool()&&(r.readBits(4),r.readBool()&&r.readBits(24)),r.readBool()&&(r.readUEG(),r.readUEG()),r.readBool()){let e=r.readBits(32),t=r.readBits(32);E=r.readBool(),U=t,A=2*e,S=U/A}}let x=1;1===v&&1===w||(x=v/w);let B=0,T=0;if(0===o)B=1,T=2-m;else{B=3===o?1:2,T=(1===o?2:1)*(2-m)}let C=16*(f+1),k=16*(p+1)*(2-m);C-=(_+g)*B,k-=(y+b)*T;let D=Math.ceil(C*x);return r.destroy(),r=null,{profile_string:a,level_string:n,bit_depth:u,ref_frames:h,chroma_format:d,chroma_format_string:ur.getChromaFormatString(d),frame_rate:{fixed:E,fps:S,fps_den:A,fps_num:U},sar_ratio:{width:v,height:w},codec_size:{width:C,height:k},present_size:{width:D,height:k}}}static parseSPS$2(e){let t=e.subarray(1,4),r="avc1.";for(let e=0;e<3;e++){let i=t[e].toString(16);i.length<2&&(i="0"+i),r+=i}let i=ur._ebsp2rbsp(e),s=new It(i);s.readByte();let a=s.readByte();s.readByte();let n=s.readByte();s.readUEG();let o=ur.getProfileString(a),d=ur.getLevelString(n),l=1,u=420,c=[0,420,422,444],h=8,f=8;if((100===a||110===a||122===a||244===a||44===a||83===a||86===a||118===a||128===a||138===a||144===a)&&(l=s.readUEG(),3===l&&s.readBits(1),l<=3&&(u=c[l]),h=s.readUEG()+8,f=s.readUEG()+8,s.readBits(1),s.readBool())){let e=3!==l?8:12;for(let t=0;t0&&e<16?(E=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][e-1],U=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][e-1]):255===e&&(E=s.readByte()<<8|s.readByte(),U=s.readByte()<<8|s.readByte())}if(s.readBool()&&s.readBool(),s.readBool()&&(s.readBits(4),s.readBool()&&s.readBits(24)),s.readBool()&&(s.readUEG(),s.readUEG()),s.readBool()){let e=s.readBits(32),t=s.readBits(32);x=s.readBool(),B=t,T=2*e,A=B/T}}let C=1;1===E&&1===U||(C=E/U);let k=0,D=0;if(0===l)k=1,D=2-y;else{k=3===l?1:2,D=(1===l?2:1)*(2-y)}let I=16*(_+1),P=16*(g+1)*(2-y);I-=(b+v)*k,P-=(w+S)*D;let F=Math.ceil(I*C);return s.destroy(),s=null,{codec_mimetype:r,profile_idc:a,level_idc:n,profile_string:o,level_string:d,chroma_format_idc:l,bit_depth:h,bit_depth_luma:h,bit_depth_chroma:f,ref_frames:m,chroma_format:u,chroma_format_string:ur.getChromaFormatString(u),frame_rate:{fixed:x,fps:A,fps_den:T,fps_num:B},sar_ratio:{width:E,height:U},codec_size:{width:I,height:P},present_size:{width:F,height:P}}}static _skipScalingList(e,t){let r=8,i=8,s=0;for(let a=0;a=this.buflen)return this.iserro=!0,0;this.iserro=!1,r=this.bufoff+e>8?8-this.bufoff:e,t<<=r,t+=this.buffer[this.bufpos]>>8-this.bufoff-r&255>>8-r,this.bufoff+=r,e-=r,8==this.bufoff&&(this.bufpos++,this.bufoff=0)}return t}look(e){let t=this.bufpos,r=this.bufoff,i=this.read(e);return this.bufpos=t,this.bufoff=r,i}read_golomb(){let e;for(e=0;0===this.read(1)&&!this.iserro;e++);return(1<>>24&255,e>>>16&255,e>>>8&255,255&e]),i=new Uint8Array(e+4);i.set(r,0),i.set(t.sps,4),t.sps=i}if(t.pps){const e=t.pps.byteLength,r=new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,255&e]),i=new Uint8Array(e+4);i.set(r,0),i.set(t.pps,4),t.pps=i}return t}function fr({sps:e,pps:t}){const r=[23,0,0,0,0,1,66,0,30,255];r[0]=23,r[6]=e[1],r[7]=e[2],r[8]=e[3],r[10]=225,r[11]=e.byteLength>>8&255,r[12]=255&e.byteLength,r.push(...e,1,t.byteLength>>8&255,255&t.byteLength,...t);return new Uint8Array(r)}function pr(e,t){let r=[];r[0]=t?23:39,r[1]=1,r[2]=0,r[3]=0,r[4]=0;const i=new Uint8Array(r.length+e.byteLength);return i.set(r,0),i.set(e,r.length),i}function mr(e){return 31&e[0]}function _r(e){return e===Oe}function gr(e){return!function(e){return e===Le||e===Re}(e)&&!_r(e)}function yr(e){return e===ze}class br{constructor(e){this.data=e,this.eofFlag=!1,this.currentStartcodeOffset=this.findNextStartCodeOffset(0),this.eofFlag&&console.error("Could not find H264 startcode until payload end!")}findNextStartCodeOffset(e){let t=e,r=this.data;for(;;){if(t+3>=r.byteLength)return this.eofFlag=!0,r.byteLength;let e=r[t+0]<<24|r[t+1]<<16|r[t+2]<<8|r[t+3],i=r[t+0]<<16|r[t+1]<<8|r[t+2];if(1===e||1===i)return t;t++}}readNextNaluPayload(){let e=this.data,t=null;for(;null==t&&!this.eofFlag;){let r=this.currentStartcodeOffset;r+=1===(e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3])?4:3;let i=31&e[r],s=(128&e[r])>>>7,a=this.findNextStartCodeOffset(r);this.currentStartcodeOffset=a,i>=He||0===s&&(t={type:i,data:e.subarray(r,a)})}return t}}class vr{constructor(e){let t=e.data.byteLength;this.type=e.type,this.data=new Uint8Array(4+t),new DataView(this.data.buffer).setUint32(0,t),this.data.set(e.data,4)}}const wr=e=>{let t=e,r=t.byteLength,i=new Uint8Array(r),s=0;for(let e=0;e=2&&3===t[e]&&0===t[e-1]&&0===t[e-2]||(i[s]=t[e],s++);return new Uint8Array(i.buffer,0,s)},Sr=e=>{switch(e){case 0:return"4:0:0";case 1:return"4:2:0";case 2:return"4:2:2";case 3:return"4:4:4";default:return"Unknown"}};class Er{static _ebsp2rbsp(e){let t=e,r=t.byteLength,i=new Uint8Array(r),s=0;for(let e=0;e=2&&3===t[e]&&0===t[e-1]&&0===t[e-2]||(i[s]=t[e],s++);return new Uint8Array(i.buffer,0,s)}static parseVPS(e){let t=Er._ebsp2rbsp(e),r=new It(t);return r.readByte(),r.readByte(),r.readBits(4),r.readBits(2),r.readBits(6),{num_temporal_layers:r.readBits(3)+1,temporal_id_nested:r.readBool()}}static parseSPS(e){let t=Er._ebsp2rbsp(e),r=new It(t);r.readByte(),r.readByte();let i=0,s=0,a=0,n=0;r.readBits(4);let o=r.readBits(3);r.readBool();let d=r.readBits(2),l=r.readBool(),u=r.readBits(5),c=r.readByte(),h=r.readByte(),f=r.readByte(),p=r.readByte(),m=r.readByte(),_=r.readByte(),g=r.readByte(),y=r.readByte(),b=r.readByte(),v=r.readByte(),w=r.readByte(),S=[],E=[];for(let e=0;e0)for(let e=o;e<8;e++)r.readBits(2);for(let e=0;e1&&r.readSEG();for(let e=0;e0&&e<=16?(F=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][e-1],L=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][e-1]):255===e&&(F=r.readBits(16),L=r.readBits(16))}if(r.readBool()&&r.readBool(),r.readBool()){r.readBits(3),r.readBool(),r.readBool()&&(r.readByte(),r.readByte(),r.readByte())}if(r.readBool()&&(r.readUEG(),r.readUEG()),r.readBool(),r.readBool(),r.readBool(),I=r.readBool(),I&&(r.readUEG(),r.readUEG(),r.readUEG(),r.readUEG()),r.readBool()){if(z=r.readBits(32),M=r.readBits(32),r.readBool()&&r.readUEG(),r.readBool()){let e=!1,t=!1,i=!1;e=r.readBool(),t=r.readBool(),(e||t)&&(i=r.readBool(),i&&(r.readByte(),r.readBits(5),r.readBool(),r.readBits(5)),r.readBits(4),r.readBits(4),i&&r.readBits(4),r.readBits(5),r.readBits(5),r.readBits(5));for(let s=0;s<=o;s++){let s=r.readBool();R=s;let a=!0,n=1;s||(a=r.readBool());let o=!1;if(a?r.readUEG():o=r.readBool(),o||(n=r.readUEG()+1),e){for(let e=0;e>6&3,r.general_tier_flag=e[1]>>5&1,r.general_profile_idc=31&e[1],r.general_profile_compatibility_flags=e[2]<<24|e[3]<<16|e[4]<<8|e[5],r.general_constraint_indicator_flags=e[6]<<24|e[7]<<16|e[8]<<8|e[9],r.general_constraint_indicator_flags=r.general_constraint_indicator_flags<<16|e[10]<<8|e[11],r.general_level_idc=e[12],r.min_spatial_segmentation_idc=(15&e[13])<<8|e[14],r.parallelismType=3&e[15],r.chromaFormat=3&e[16],r.bitDepthLumaMinus8=7&e[17],r.bitDepthChromaMinus8=7&e[18],r.avgFrameRate=e[19]<<8|e[20],r.constantFrameRate=e[21]>>6&3,r.numTemporalLayers=e[21]>>3&7,r.temporalIdNested=e[21]>>2&1,r.lengthSizeMinusOne=3&e[21];let i=e[22],s=e.slice(23);for(let e=0;e0)for(let t=r;t<8;t++)e.read(2);i.sub_layer_profile_space=[],i.sub_layer_tier_flag=[],i.sub_layer_profile_idc=[],i.sub_layer_profile_compatibility_flag=[],i.sub_layer_progressive_source_flag=[],i.sub_layer_interlaced_source_flag=[],i.sub_layer_non_packed_constraint_flag=[],i.sub_layer_frame_only_constraint_flag=[],i.sub_layer_level_idc=[];for(let t=0;t{let t=wr(e),r=new It(t);return r.readByte(),r.readByte(),r.readBits(4),r.readBits(2),r.readBits(6),{num_temporal_layers:r.readBits(3)+1,temporal_id_nested:r.readBool()}})(e),a=(e=>{let t=wr(e),r=new It(t);r.readByte(),r.readByte();let i=0,s=0,a=0,n=0;r.readBits(4);let o=r.readBits(3);r.readBool();let d=r.readBits(2),l=r.readBool(),u=r.readBits(5),c=r.readByte(),h=r.readByte(),f=r.readByte(),p=r.readByte(),m=r.readByte(),_=r.readByte(),g=r.readByte(),y=r.readByte(),b=r.readByte(),v=r.readByte(),w=r.readByte(),S=[],E=[];for(let e=0;e0)for(let e=o;e<8;e++)r.readBits(2);for(let e=0;e1&&r.readSEG();for(let e=0;e0&&e<16?(F=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][e-1],L=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][e-1]):255===e&&(F=r.readBits(16),L=r.readBits(16))}if(r.readBool()&&r.readBool(),r.readBool()&&(r.readBits(3),r.readBool(),r.readBool()&&(r.readByte(),r.readByte(),r.readByte())),r.readBool()&&(r.readUEG(),r.readUEG()),r.readBool(),r.readBool(),r.readBool(),I=r.readBool(),I&&(i+=r.readUEG(),s+=r.readUEG(),a+=r.readUEG(),n+=r.readUEG()),r.readBool()&&(z=r.readBits(32),M=r.readBits(32),r.readBool()&&(r.readUEG(),r.readBool()))){let e=!1,t=!1,i=!1;e=r.readBool(),t=r.readBool(),(e||t)&&(i=r.readBool(),i&&(r.readByte(),r.readBits(5),r.readBool(),r.readBits(5)),r.readBits(4),r.readBits(4),i&&r.readBits(4),r.readBits(5),r.readBits(5),r.readBits(5));for(let s=0;s<=o;s++){let s=r.readBool();R=s;let a=!1,n=1;s||(a=r.readBool());let o=!1;if(a?r.readSEG():o=r.readBool(),o||(cpbcnt=r.readUEG()+1),e)for(let e=0;e{let t=wr(e),r=new It(t);r.readByte(),r.readByte(),r.readUEG(),r.readUEG(),r.readBool(),r.readBool(),r.readBits(3),r.readBool(),r.readBool(),r.readUEG(),r.readUEG(),r.readSEG(),r.readBool(),r.readBool(),r.readBool()&&r.readUEG(),r.readSEG(),r.readSEG(),r.readBool(),r.readBool(),r.readBool(),r.readBool();let i=r.readBool(),s=r.readBool(),a=1;return s&&i?a=0:s?a=3:i&&(a=2),{parallelismType:a}})(t);i=Object.assign(i,s,a,n);let o=23+(5+e.byteLength)+(5+r.byteLength)+(5+t.byteLength),d=new Uint8Array(o);d[0]=1,d[1]=(3&i.general_profile_space)<<6|(i.general_tier_flag?1:0)<<5|31&i.general_profile_idc,d[2]=i.general_profile_compatibility_flags_1||0,d[3]=i.general_profile_compatibility_flags_2||0,d[4]=i.general_profile_compatibility_flags_3||0,d[5]=i.general_profile_compatibility_flags_4||0,d[6]=i.general_constraint_indicator_flags_1||0,d[7]=i.general_constraint_indicator_flags_2||0,d[8]=i.general_constraint_indicator_flags_3||0,d[9]=i.general_constraint_indicator_flags_4||0,d[10]=i.general_constraint_indicator_flags_5||0,d[11]=i.general_constraint_indicator_flags_6||0,d[12]=60,d[13]=240|(3840&i.min_spatial_segmentation_idc)>>8,d[14]=255&i.min_spatial_segmentation_idc,d[15]=252|3&i.parallelismType,d[16]=252|3&i.chroma_format_idc,d[17]=248|7&i.bit_depth_luma_minus8,d[18]=248|7&i.bit_depth_chroma_minus8,d[19]=0,d[20]=0,d[21]=(3&i.constant_frame_rate)<<6|(7&i.num_temporal_layers)<<3|(i.temporal_id_nested?1:0)<<2|3,d[22]=3,d[23]=128|qe,d[24]=0,d[25]=1,d[26]=(65280&e.byteLength)>>8,d[27]=255&e.byteLength,d.set(e,28),d[23+(5+e.byteLength)+0]=128|Ke,d[23+(5+e.byteLength)+1]=0,d[23+(5+e.byteLength)+2]=1,d[23+(5+e.byteLength)+3]=(65280&r.byteLength)>>8,d[23+(5+e.byteLength)+4]=255&r.byteLength,d.set(r,23+(5+e.byteLength)+5),d[23+(5+e.byteLength+5+r.byteLength)+0]=128|Ze,d[23+(5+e.byteLength+5+r.byteLength)+1]=0,d[23+(5+e.byteLength+5+r.byteLength)+2]=1,d[23+(5+e.byteLength+5+r.byteLength)+3]=(65280&t.byteLength)>>8,d[23+(5+e.byteLength+5+r.byteLength)+4]=255&t.byteLength,d.set(t,23+(5+e.byteLength+5+r.byteLength)+5);const l=[28,0,0,0,0],u=new Uint8Array(l.length+d.byteLength);return u.set(l,0),u.set(d,l.length),u}function Tr(e,t){let r=[];r[0]=t?28:44,r[1]=1,r[2]=0,r[3]=0,r[4]=0;const i=new Uint8Array(r.length+e.byteLength);return i.set(r,0),i.set(e,r.length),i}function Cr(e){return(126&e[0])>>1}function kr(e){return!function(e){return e>=32&&e<=40}(e)}function Dr(e){return e>=16&&e<=21}class Ir{constructor(e){this.data=e,this.eofFlag=!1,this.currentStartcodeOffset=this.findNextStartCodeOffset(0),this.eofFlag&&console.error("Could not find H265 startcode until payload end!")}findNextStartCodeOffset(e){let t=e,r=this.data;for(;;){if(t+3>=r.byteLength)return this.eofFlag=!0,r.byteLength;let e=r[t+0]<<24|r[t+1]<<16|r[t+2]<<8|r[t+3],i=r[t+0]<<16|r[t+1]<<8|r[t+2];if(1===e||1===i)return t;t++}}readNextNaluPayload(){let e=this.data,t=null;for(;null==t&&!this.eofFlag;){let r=this.currentStartcodeOffset;r+=1===(e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3])?4:3;let i=e[r]>>1&63,s=(128&e[r])>>>7,a=this.findNextStartCodeOffset(r);this.currentStartcodeOffset=a,0===s&&(t={type:i,data:e.subarray(r,a)})}return t}}class Pr{constructor(e){let t=e.data.byteLength;this.type=e.type,this.data=new Uint8Array(4+t),new DataView(this.data.buffer).setUint32(0,t),this.data.set(e.data,4)}}function Fr(e){return parseInt(e)===e}function Lr(e){if(!Fr(e.length))return!1;for(var t=0;t255)return!1;return!0}function Rr(e,t){if(e.buffer&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!Lr(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(Fr(e.length)&&Lr(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function zr(e){return new Uint8Array(e)}function Mr(e,t,r,i,s){null==i&&null==s||(e=e.slice?e.slice(i,s):Array.prototype.slice.call(e,i,s)),t.set(e,r)}var Nr,Or={toBytes:function(e){var t=[],r=0;for(e=encodeURI(e);r191&&i<224?(t.push(String.fromCharCode((31&i)<<6|63&e[r+1])),r+=2):(t.push(String.fromCharCode((15&i)<<12|(63&e[r+1])<<6|63&e[r+2])),r+=3)}return t.join("")}},Gr=(Nr="0123456789abcdef",{toBytes:function(e){for(var t=[],r=0;r>4]+Nr[15&i])}return t.join("")}}),$r={16:10,24:12,32:14},Hr=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],Vr=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],Wr=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],jr=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],qr=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],Yr=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],Kr=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],Xr=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],Zr=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],Jr=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],Qr=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],ei=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],ti=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],ri=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],ii=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function si(e){for(var t=[],r=0;r>2,this._Ke[r][t%4]=a[t],this._Kd[e-r][t%4]=a[t];for(var n,o=0,d=s;d>16&255]<<24^Vr[n>>8&255]<<16^Vr[255&n]<<8^Vr[n>>24&255]^Hr[o]<<24,o+=1,8!=s)for(t=1;t>8&255]<<8^Vr[n>>16&255]<<16^Vr[n>>24&255]<<24;for(t=s/2+1;t>2,u=d%4,this._Ke[l][u]=a[t],this._Kd[e-l][u]=a[t++],d++}for(var l=1;l>24&255]^ti[n>>16&255]^ri[n>>8&255]^ii[255&n]},ai.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,r=[0,0,0,0],i=si(e),s=0;s<4;s++)i[s]^=this._Ke[0][s];for(var a=1;a>24&255]^qr[i[(s+1)%4]>>16&255]^Yr[i[(s+2)%4]>>8&255]^Kr[255&i[(s+3)%4]]^this._Ke[a][s];i=r.slice()}var n,o=zr(16);for(s=0;s<4;s++)n=this._Ke[t][s],o[4*s]=255&(Vr[i[s]>>24&255]^n>>24),o[4*s+1]=255&(Vr[i[(s+1)%4]>>16&255]^n>>16),o[4*s+2]=255&(Vr[i[(s+2)%4]>>8&255]^n>>8),o[4*s+3]=255&(Vr[255&i[(s+3)%4]]^n);return o},ai.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,r=[0,0,0,0],i=si(e),s=0;s<4;s++)i[s]^=this._Kd[0][s];for(var a=1;a>24&255]^Zr[i[(s+3)%4]>>16&255]^Jr[i[(s+2)%4]>>8&255]^Qr[255&i[(s+1)%4]]^this._Kd[a][s];i=r.slice()}var n,o=zr(16);for(s=0;s<4;s++)n=this._Kd[t][s],o[4*s]=255&(Wr[i[s]>>24&255]^n>>24),o[4*s+1]=255&(Wr[i[(s+3)%4]>>16&255]^n>>16),o[4*s+2]=255&(Wr[i[(s+2)%4]>>8&255]^n>>8),o[4*s+3]=255&(Wr[255&i[(s+1)%4]]^n);return o};var ni=function(e){if(!(this instanceof ni))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new ai(e)};ni.prototype.encrypt=function(e){if((e=Rr(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=zr(e.length),r=zr(16),i=0;iNumber.MAX_SAFE_INTEGER)throw new Error("integer value out of safe range");for(var t=15;t>=0;--t)this._counter[t]=e%256,e=parseInt(e/256)},ui.prototype.setBytes=function(e){if(16!=(e=Rr(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},ui.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var ci=function(e,t){if(!(this instanceof ci))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof ui||(t=new ui(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new ai(e)};ci.prototype.encrypt=function(e){for(var t=Rr(e,!0),r=0;r16)throw new Error("PKCS#7 padding byte out of range");for(var r=e.length-t,i=0;i=s&&console.debug("["+n.getDurationString(new Date-r,1e3)+"]","["+e+"]",t)},log:function(e,t){this.debug(e.msg)},info:function(e,t){2>=s&&console.info("["+n.getDurationString(new Date-r,1e3)+"]","["+e+"]",t)},warn:function(e,t){3>=s&&console.warn("["+n.getDurationString(new Date-r,1e3)+"]","["+e+"]",t)},error:function(e,t){4>=s&&console.error("["+n.getDurationString(new Date-r,1e3)+"]","["+e+"]",t)}},a);n.getDurationString=function(e,t){var r;function i(e,t){for(var r=(""+e).split(".");r[0].length0){for(var r="",i=0;i0&&(r+=","),r+="["+n.getDurationString(e.start(i))+","+n.getDurationString(e.end(i))+"]";return r}return"(empty)"},t.Log=n;var o=function(e){if(!(e instanceof ArrayBuffer))throw"Needs an array buffer";this.buffer=e,this.dataview=new DataView(e),this.position=0};o.prototype.getPosition=function(){return this.position},o.prototype.getEndPosition=function(){return this.buffer.byteLength},o.prototype.getLength=function(){return this.buffer.byteLength},o.prototype.seek=function(e){var t=Math.max(0,Math.min(this.buffer.byteLength,e));return this.position=isNaN(t)||!isFinite(t)?0:t,!0},o.prototype.isEos=function(){return this.getPosition()>=this.getEndPosition()},o.prototype.readAnyInt=function(e,t){var r=0;if(this.position+e<=this.buffer.byteLength){switch(e){case 1:r=t?this.dataview.getInt8(this.position):this.dataview.getUint8(this.position);break;case 2:r=t?this.dataview.getInt16(this.position):this.dataview.getUint16(this.position);break;case 3:if(t)throw"No method for reading signed 24 bits values";r=this.dataview.getUint8(this.position)<<16,r|=this.dataview.getUint8(this.position+1)<<8,r|=this.dataview.getUint8(this.position+2);break;case 4:r=t?this.dataview.getInt32(this.position):this.dataview.getUint32(this.position);break;case 8:if(t)throw"No method for reading signed 64 bits values";r=this.dataview.getUint32(this.position)<<32,r|=this.dataview.getUint32(this.position+4);break;default:throw"readInt method not implemented for size: "+e}return this.position+=e,r}throw"Not enough bytes in buffer"},o.prototype.readUint8=function(){return this.readAnyInt(1,!1)},o.prototype.readUint16=function(){return this.readAnyInt(2,!1)},o.prototype.readUint24=function(){return this.readAnyInt(3,!1)},o.prototype.readUint32=function(){return this.readAnyInt(4,!1)},o.prototype.readUint64=function(){return this.readAnyInt(8,!1)},o.prototype.readString=function(e){if(this.position+e<=this.buffer.byteLength){for(var t="",r=0;rthis._byteLength&&(this._byteLength=t);else{for(r<1&&(r=1);t>r;)r*=2;var i=new ArrayBuffer(r),s=new Uint8Array(this._buffer);new Uint8Array(i,0,s.length).set(s),this.buffer=i,this._byteLength=t}}},d.prototype._trimAlloc=function(){if(this._byteLength!=this._buffer.byteLength){var e=new ArrayBuffer(this._byteLength),t=new Uint8Array(e),r=new Uint8Array(this._buffer,0,t.length);t.set(r),this.buffer=e}},d.BIG_ENDIAN=!1,d.LITTLE_ENDIAN=!0,d.prototype._byteLength=0,Object.defineProperty(d.prototype,"byteLength",{get:function(){return this._byteLength-this._byteOffset}}),Object.defineProperty(d.prototype,"buffer",{get:function(){return this._trimAlloc(),this._buffer},set:function(e){this._buffer=e,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(d.prototype,"byteOffset",{get:function(){return this._byteOffset},set:function(e){this._byteOffset=e,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(d.prototype,"dataView",{get:function(){return this._dataView},set:function(e){this._byteOffset=e.byteOffset,this._buffer=e.buffer,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._byteOffset+e.byteLength}}),d.prototype.seek=function(e){var t=Math.max(0,Math.min(this.byteLength,e));this.position=isNaN(t)||!isFinite(t)?0:t},d.prototype.isEof=function(){return this.position>=this._byteLength},d.prototype.mapUint8Array=function(e){this._realloc(1*e);var t=new Uint8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=1*e,t},d.prototype.readInt32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var r=new Int32Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},d.prototype.readInt16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var r=new Int16Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},d.prototype.readInt8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Int8Array(e);return d.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},d.prototype.readUint32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var r=new Uint32Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},d.prototype.readUint16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var r=new Uint16Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},d.prototype.readUint8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Uint8Array(e);return d.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},d.prototype.readFloat64Array=function(e,t){e=null==e?this.byteLength-this.position/8:e;var r=new Float64Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},d.prototype.readFloat32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var r=new Float32Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},d.prototype.readInt32=function(e){var t=this._dataView.getInt32(this.position,null==e?this.endianness:e);return this.position+=4,t},d.prototype.readInt16=function(e){var t=this._dataView.getInt16(this.position,null==e?this.endianness:e);return this.position+=2,t},d.prototype.readInt8=function(){var e=this._dataView.getInt8(this.position);return this.position+=1,e},d.prototype.readUint32=function(e){var t=this._dataView.getUint32(this.position,null==e?this.endianness:e);return this.position+=4,t},d.prototype.readUint16=function(e){var t=this._dataView.getUint16(this.position,null==e?this.endianness:e);return this.position+=2,t},d.prototype.readUint8=function(){var e=this._dataView.getUint8(this.position);return this.position+=1,e},d.prototype.readFloat32=function(e){var t=this._dataView.getFloat32(this.position,null==e?this.endianness:e);return this.position+=4,t},d.prototype.readFloat64=function(e){var t=this._dataView.getFloat64(this.position,null==e?this.endianness:e);return this.position+=8,t},d.endianness=new Int8Array(new Int16Array([1]).buffer)[0]>0,d.memcpy=function(e,t,r,i,s){var a=new Uint8Array(e,t,s),n=new Uint8Array(r,i,s);a.set(n)},d.arrayToNative=function(e,t){return t==this.endianness?e:this.flipArrayEndianness(e)},d.nativeToEndian=function(e,t){return this.endianness==t?e:this.flipArrayEndianness(e)},d.flipArrayEndianness=function(e){for(var t=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=0;rs;i--,s++){var a=t[s];t[s]=t[i],t[i]=a}return e},d.prototype.failurePosition=0,String.fromCharCodeUint8=function(e){for(var t=[],r=0;r>16),this.writeUint8((65280&e)>>8),this.writeUint8(255&e)},d.prototype.adjustUint32=function(e,t){var r=this.position;this.seek(e),this.writeUint32(t),this.seek(r)},d.prototype.mapInt32Array=function(e,t){this._realloc(4*e);var r=new Int32Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,null==t?this.endianness:t),this.position+=4*e,r},d.prototype.mapInt16Array=function(e,t){this._realloc(2*e);var r=new Int16Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,null==t?this.endianness:t),this.position+=2*e,r},d.prototype.mapInt8Array=function(e){this._realloc(1*e);var t=new Int8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=1*e,t},d.prototype.mapUint32Array=function(e,t){this._realloc(4*e);var r=new Uint32Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,null==t?this.endianness:t),this.position+=4*e,r},d.prototype.mapUint16Array=function(e,t){this._realloc(2*e);var r=new Uint16Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,null==t?this.endianness:t),this.position+=2*e,r},d.prototype.mapFloat64Array=function(e,t){this._realloc(8*e);var r=new Float64Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,null==t?this.endianness:t),this.position+=8*e,r},d.prototype.mapFloat32Array=function(e,t){this._realloc(4*e);var r=new Float32Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,null==t?this.endianness:t),this.position+=4*e,r};var u=function(e){this.buffers=[],this.bufferIndex=-1,e&&(this.insertBuffer(e),this.bufferIndex=0)};(u.prototype=new d(new ArrayBuffer,0,d.BIG_ENDIAN)).initialized=function(){var e;return this.bufferIndex>-1||(this.buffers.length>0?0===(e=this.buffers[0]).fileStart?(this.buffer=e,this.bufferIndex=0,n.debug("MultiBufferStream","Stream ready for parsing"),!0):(n.warn("MultiBufferStream","The first buffer should have a fileStart of 0"),this.logBufferLevel(),!1):(n.warn("MultiBufferStream","No buffer to start parsing from"),this.logBufferLevel(),!1))},ArrayBuffer.concat=function(e,t){n.debug("ArrayBuffer","Trying to create a new buffer of size: "+(e.byteLength+t.byteLength));var r=new Uint8Array(e.byteLength+t.byteLength);return r.set(new Uint8Array(e),0),r.set(new Uint8Array(t),e.byteLength),r.buffer},u.prototype.reduceBuffer=function(e,t,r){var i;return(i=new Uint8Array(r)).set(new Uint8Array(e,t,r)),i.buffer.fileStart=e.fileStart+t,i.buffer.usedBytes=0,i.buffer},u.prototype.insertBuffer=function(e){for(var t=!0,r=0;ri.byteLength){this.buffers.splice(r,1),r--;continue}n.warn("MultiBufferStream","Buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+") already appended, ignoring")}else e.fileStart+e.byteLength<=i.fileStart||(e=this.reduceBuffer(e,0,i.fileStart-e.fileStart)),n.debug("MultiBufferStream","Appending new buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+")"),this.buffers.splice(r,0,e),0===r&&(this.buffer=e);t=!1;break}if(e.fileStart0)){t=!1;break}e=this.reduceBuffer(e,s,a)}}t&&(n.debug("MultiBufferStream","Appending new buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+")"),this.buffers.push(e),0===r&&(this.buffer=e))},u.prototype.logBufferLevel=function(e){var t,r,i,s,a,o=[],d="";for(i=0,s=0,t=0;t0&&(d+=a.end-1+"]");var l=e?n.info:n.debug;0===this.buffers.length?l("MultiBufferStream","No more buffer in memory"):l("MultiBufferStream",this.buffers.length+" stored buffer(s) ("+i+"/"+s+" bytes), continuous ranges: "+d)},u.prototype.cleanBuffers=function(){var e,t;for(e=0;e"+this.buffer.byteLength+")"),!0}return!1}return!1},u.prototype.findPosition=function(e,t,r){var i,s=null,a=-1;for(i=!0===e?0:this.bufferIndex;i=t?(n.debug("MultiBufferStream","Found position in existing buffer #"+a),a):-1},u.prototype.findEndContiguousBuf=function(e){var t,r,i,s=void 0!==e?e:this.bufferIndex;if(r=this.buffers[s],this.buffers.length>s+1)for(t=s+1;t>3;return 31===i&&r.data.length>=2&&(i=32+((7&r.data[0])<<3)+((224&r.data[1])>>5)),i}return null},r.DecoderConfigDescriptor=function(e){r.Descriptor.call(this,4,e)},r.DecoderConfigDescriptor.prototype=new r.Descriptor,r.DecoderConfigDescriptor.prototype.parse=function(e){this.oti=e.readUint8(),this.streamType=e.readUint8(),this.upStream=!!(this.streamType>>1&1),this.streamType=this.streamType>>>2,this.bufferSize=e.readUint24(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32(),this.size-=13,this.parseRemainingDescriptors(e)},r.DecoderSpecificInfo=function(e){r.Descriptor.call(this,5,e)},r.DecoderSpecificInfo.prototype=new r.Descriptor,r.SLConfigDescriptor=function(e){r.Descriptor.call(this,6,e)},r.SLConfigDescriptor.prototype=new r.Descriptor,this};t.MPEG4DescriptorParser=c;var h={ERR_INVALID_DATA:-1,ERR_NOT_ENOUGH_DATA:0,OK:1,BASIC_BOXES:["mdat","idat","free","skip","meco","strk"],FULL_BOXES:["hmhd","nmhd","iods","xml ","bxml","ipro","mere"],CONTAINER_BOXES:[["moov",["trak","pssh"]],["trak"],["edts"],["mdia"],["minf"],["dinf"],["stbl",["sgpd","sbgp"]],["mvex",["trex"]],["moof",["traf"]],["traf",["trun","sgpd","sbgp"]],["vttc"],["tref"],["iref"],["mfra",["tfra"]],["meco"],["hnti"],["hinf"],["strk"],["strd"],["sinf"],["rinf"],["schi"],["trgr"],["udta",["kind"]],["iprp",["ipma"]],["ipco"],["grpl"],["j2kH"],["etyp",["tyco"]]],boxCodes:[],fullBoxCodes:[],containerBoxCodes:[],sampleEntryCodes:{},sampleGroupEntryCodes:[],trackGroupTypes:[],UUIDBoxes:{},UUIDs:[],initialize:function(){h.FullBox.prototype=new h.Box,h.ContainerBox.prototype=new h.Box,h.SampleEntry.prototype=new h.Box,h.TrackGroupTypeBox.prototype=new h.FullBox,h.BASIC_BOXES.forEach((function(e){h.createBoxCtor(e)})),h.FULL_BOXES.forEach((function(e){h.createFullBoxCtor(e)})),h.CONTAINER_BOXES.forEach((function(e){h.createContainerBoxCtor(e[0],null,e[1])}))},Box:function(e,t,r){this.type=e,this.size=t,this.uuid=r},FullBox:function(e,t,r){h.Box.call(this,e,t,r),this.flags=0,this.version=0},ContainerBox:function(e,t,r){h.Box.call(this,e,t,r),this.boxes=[]},SampleEntry:function(e,t,r,i){h.ContainerBox.call(this,e,t),this.hdr_size=r,this.start=i},SampleGroupEntry:function(e){this.grouping_type=e},TrackGroupTypeBox:function(e,t){h.FullBox.call(this,e,t)},createBoxCtor:function(e,t){h.boxCodes.push(e),h[e+"Box"]=function(t){h.Box.call(this,e,t)},h[e+"Box"].prototype=new h.Box,t&&(h[e+"Box"].prototype.parse=t)},createFullBoxCtor:function(e,t){h[e+"Box"]=function(t){h.FullBox.call(this,e,t)},h[e+"Box"].prototype=new h.FullBox,h[e+"Box"].prototype.parse=function(e){this.parseFullHeader(e),t&&t.call(this,e)}},addSubBoxArrays:function(e){if(e){this.subBoxNames=e;for(var t=e.length,r=0;rr?(n.error("BoxParser","Box of type '"+u+"' has a size "+l+" greater than its container size "+r),{code:h.ERR_NOT_ENOUGH_DATA,type:u,size:l,hdr_size:d,start:o}):0!==l&&o+l>e.getEndPosition()?(e.seek(o),n.info("BoxParser","Not enough data in stream to parse the entire '"+u+"' box"),{code:h.ERR_NOT_ENOUGH_DATA,type:u,size:l,hdr_size:d,start:o}):t?{code:h.OK,type:u,size:l,hdr_size:d,start:o}:(h[u+"Box"]?i=new h[u+"Box"](l):"uuid"!==u?(n.warn("BoxParser","Unknown box type: '"+u+"'"),(i=new h.Box(u,l)).has_unparsed_data=!0):h.UUIDBoxes[a]?i=new h.UUIDBoxes[a](l):(n.warn("BoxParser","Unknown uuid type: '"+a+"'"),(i=new h.Box(u,l)).uuid=a,i.has_unparsed_data=!0),i.hdr_size=d,i.start=o,i.write===h.Box.prototype.write&&"mdat"!==i.type&&(n.info("BoxParser","'"+c+"' box writing not yet implemented, keeping unparsed data in memory for later write"),i.parseDataAndRewind(e)),i.parse(e),(s=e.getPosition()-(i.start+i.size))<0?(n.warn("BoxParser","Parsing of box '"+c+"' did not read the entire indicated box data size (missing "+-s+" bytes), seeking forward"),e.seek(i.start+i.size)):s>0&&(n.error("BoxParser","Parsing of box '"+c+"' read "+s+" more bytes than the indicated box data size, seeking backwards"),0!==i.size&&e.seek(i.start+i.size)),{code:h.OK,box:i,size:i.size})},h.Box.prototype.parse=function(e){"mdat"!=this.type?this.data=e.readUint8Array(this.size-this.hdr_size):0===this.size?e.seek(e.getEndPosition()):e.seek(this.start+this.size)},h.Box.prototype.parseDataAndRewind=function(e){this.data=e.readUint8Array(this.size-this.hdr_size),e.position-=this.size-this.hdr_size},h.FullBox.prototype.parseDataAndRewind=function(e){this.parseFullHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=4,e.position-=this.size-this.hdr_size},h.FullBox.prototype.parseFullHeader=function(e){this.version=e.readUint8(),this.flags=e.readUint24(),this.hdr_size+=4},h.FullBox.prototype.parse=function(e){this.parseFullHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},h.ContainerBox.prototype.parse=function(e){for(var t,r;e.getPosition()>10&31,t[1]=this.language>>5&31,t[2]=31&this.language,this.languageString=String.fromCharCode(t[0]+96,t[1]+96,t[2]+96)},h.SAMPLE_ENTRY_TYPE_VISUAL="Visual",h.SAMPLE_ENTRY_TYPE_AUDIO="Audio",h.SAMPLE_ENTRY_TYPE_HINT="Hint",h.SAMPLE_ENTRY_TYPE_METADATA="Metadata",h.SAMPLE_ENTRY_TYPE_SUBTITLE="Subtitle",h.SAMPLE_ENTRY_TYPE_SYSTEM="System",h.SAMPLE_ENTRY_TYPE_TEXT="Text",h.SampleEntry.prototype.parseHeader=function(e){e.readUint8Array(6),this.data_reference_index=e.readUint16(),this.hdr_size+=8},h.SampleEntry.prototype.parse=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},h.SampleEntry.prototype.parseDataAndRewind=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,e.position-=this.size-this.hdr_size},h.SampleEntry.prototype.parseFooter=function(e){h.ContainerBox.prototype.parse.call(this,e)},h.createMediaSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_HINT),h.createMediaSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_METADATA),h.createMediaSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_SUBTITLE),h.createMediaSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_SYSTEM),h.createMediaSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_TEXT),h.createMediaSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,(function(e){var t;this.parseHeader(e),e.readUint16(),e.readUint16(),e.readUint32Array(3),this.width=e.readUint16(),this.height=e.readUint16(),this.horizresolution=e.readUint32(),this.vertresolution=e.readUint32(),e.readUint32(),this.frame_count=e.readUint16(),t=Math.min(31,e.readUint8()),this.compressorname=e.readString(t),t<31&&e.readString(31-t),this.depth=e.readUint16(),e.readUint16(),this.parseFooter(e)})),h.createMediaSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_AUDIO,(function(e){this.parseHeader(e),e.readUint32Array(2),this.channel_count=e.readUint16(),this.samplesize=e.readUint16(),e.readUint16(),e.readUint16(),this.samplerate=e.readUint32()/65536,this.parseFooter(e)})),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"avc1"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"avc2"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"avc3"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"avc4"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"av01"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"dav1"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"hvc1"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"hev1"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"hvt1"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"lhe1"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"dvh1"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"dvhe"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"vvc1"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"vvi1"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"vvs1"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"vvcN"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"vp08"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"vp09"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"avs3"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"j2ki"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"mjp2"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"mjpg"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"uncv"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_AUDIO,"mp4a"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_AUDIO,"ac-3"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_AUDIO,"ac-4"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_AUDIO,"ec-3"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_AUDIO,"Opus"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_AUDIO,"mha1"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_AUDIO,"mha2"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_AUDIO,"mhm1"),h.createSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_AUDIO,"mhm2"),h.createEncryptedSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_VISUAL,"encv"),h.createEncryptedSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_AUDIO,"enca"),h.createEncryptedSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_SUBTITLE,"encu"),h.createEncryptedSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_SYSTEM,"encs"),h.createEncryptedSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_TEXT,"enct"),h.createEncryptedSampleEntryCtor(h.SAMPLE_ENTRY_TYPE_METADATA,"encm"),h.createBoxCtor("a1lx",(function(e){var t=16*(1+(1&(1&e.readUint8())));this.layer_size=[];for(var r=0;r<3;r++)this.layer_size[r]=16==t?e.readUint16():e.readUint32()})),h.createBoxCtor("a1op",(function(e){this.op_index=e.readUint8()})),h.createFullBoxCtor("auxC",(function(e){this.aux_type=e.readCString();var t=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=e.readUint8Array(t)})),h.createBoxCtor("av1C",(function(e){var t=e.readUint8();if(t>>7&!1)n.error("av1C marker problem");else if(this.version=127&t,1===this.version)if(t=e.readUint8(),this.seq_profile=t>>5&7,this.seq_level_idx_0=31&t,t=e.readUint8(),this.seq_tier_0=t>>7&1,this.high_bitdepth=t>>6&1,this.twelve_bit=t>>5&1,this.monochrome=t>>4&1,this.chroma_subsampling_x=t>>3&1,this.chroma_subsampling_y=t>>2&1,this.chroma_sample_position=3&t,t=e.readUint8(),this.reserved_1=t>>5&7,0===this.reserved_1){if(this.initial_presentation_delay_present=t>>4&1,1===this.initial_presentation_delay_present)this.initial_presentation_delay_minus_one=15&t;else if(this.reserved_2=15&t,0!==this.reserved_2)return void n.error("av1C reserved_2 parsing problem");var r=this.size-this.hdr_size-4;this.configOBUs=e.readUint8Array(r)}else n.error("av1C reserved_1 parsing problem");else n.error("av1C version "+this.version+" not supported")})),h.createBoxCtor("avcC",(function(e){var t,r;for(this.configurationVersion=e.readUint8(),this.AVCProfileIndication=e.readUint8(),this.profile_compatibility=e.readUint8(),this.AVCLevelIndication=e.readUint8(),this.lengthSizeMinusOne=3&e.readUint8(),this.nb_SPS_nalus=31&e.readUint8(),r=this.size-this.hdr_size-6,this.SPS=[],t=0;t0&&(this.ext=e.readUint8Array(r))})),h.createBoxCtor("btrt",(function(e){this.bufferSizeDB=e.readUint32(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32()})),h.createFullBoxCtor("ccst",(function(e){var t=e.readUint8();this.all_ref_pics_intra=!(128&~t),this.intra_pred_used=!(64&~t),this.max_ref_per_pic=(63&t)>>2,e.readUint24()})),h.createBoxCtor("cdef",(function(e){var t;for(this.channel_count=e.readUint16(),this.channel_indexes=[],this.channel_types=[],this.channel_associations=[],t=0;t=32768&&this.component_type_urls.push(e.readCString())}})),h.createFullBoxCtor("co64",(function(e){var t,r;if(t=e.readUint32(),this.chunk_offsets=[],0===this.version)for(r=0;r>7}else("rICC"===this.colour_type||"prof"===this.colour_type)&&(this.ICC_profile=e.readUint8Array(this.size-4))})),h.createFullBoxCtor("cprt",(function(e){this.parseLanguage(e),this.notice=e.readCString()})),h.createFullBoxCtor("cslg",(function(e){0===this.version&&(this.compositionToDTSShift=e.readInt32(),this.leastDecodeToDisplayDelta=e.readInt32(),this.greatestDecodeToDisplayDelta=e.readInt32(),this.compositionStartTime=e.readInt32(),this.compositionEndTime=e.readInt32())})),h.createFullBoxCtor("ctts",(function(e){var t,r;if(t=e.readUint32(),this.sample_counts=[],this.sample_offsets=[],0===this.version)for(r=0;r>6,this.bsid=t>>1&31,this.bsmod=(1&t)<<2|r>>6&3,this.acmod=r>>3&7,this.lfeon=r>>2&1,this.bit_rate_code=3&r|i>>5&7})),h.createBoxCtor("dec3",(function(e){var t=e.readUint16();this.data_rate=t>>3,this.num_ind_sub=7&t,this.ind_subs=[];for(var r=0;r>6,i.bsid=s>>1&31,i.bsmod=(1&s)<<4|a>>4&15,i.acmod=a>>1&7,i.lfeon=1&a,i.num_dep_sub=n>>1&15,i.num_dep_sub>0&&(i.chan_loc=(1&n)<<8|e.readUint8())}})),h.createFullBoxCtor("dfLa",(function(e){var t=[],r=["STREAMINFO","PADDING","APPLICATION","SEEKTABLE","VORBIS_COMMENT","CUESHEET","PICTURE","RESERVED"];for(this.parseFullHeader(e);;){var i=e.readUint8(),s=Math.min(127&i,r.length-1);if(s?e.readUint8Array(e.readUint24()):(e.readUint8Array(13),this.samplerate=e.readUint32()>>12,e.readUint8Array(20)),t.push(r[s]),128&i)break}this.numMetadataBlocks=t.length+" ("+t.join(", ")+")"})),h.createBoxCtor("dimm",(function(e){this.bytessent=e.readUint64()})),h.createBoxCtor("dmax",(function(e){this.time=e.readUint32()})),h.createBoxCtor("dmed",(function(e){this.bytessent=e.readUint64()})),h.createBoxCtor("dOps",(function(e){if(this.Version=e.readUint8(),this.OutputChannelCount=e.readUint8(),this.PreSkip=e.readUint16(),this.InputSampleRate=e.readUint32(),this.OutputGain=e.readInt16(),this.ChannelMappingFamily=e.readUint8(),0!==this.ChannelMappingFamily){this.StreamCount=e.readUint8(),this.CoupledCount=e.readUint8(),this.ChannelMapping=[];for(var t=0;t=4;)this.compatible_brands[r]=e.readString(4),t-=4,r++})),h.createFullBoxCtor("hdlr",(function(e){0===this.version&&(e.readUint32(),this.handler=e.readString(4),e.readUint32Array(3),this.name=e.readString(this.size-this.hdr_size-20),"\0"===this.name[this.name.length-1]&&(this.name=this.name.slice(0,-1)))})),h.createBoxCtor("hvcC",(function(e){var t,r,i,s;this.configurationVersion=e.readUint8(),s=e.readUint8(),this.general_profile_space=s>>6,this.general_tier_flag=(32&s)>>5,this.general_profile_idc=31&s,this.general_profile_compatibility=e.readUint32(),this.general_constraint_indicator=e.readUint8Array(6),this.general_level_idc=e.readUint8(),this.min_spatial_segmentation_idc=4095&e.readUint16(),this.parallelismType=3&e.readUint8(),this.chroma_format_idc=3&e.readUint8(),this.bit_depth_luma_minus8=7&e.readUint8(),this.bit_depth_chroma_minus8=7&e.readUint8(),this.avgFrameRate=e.readUint16(),s=e.readUint8(),this.constantFrameRate=s>>6,this.numTemporalLayers=(13&s)>>3,this.temporalIdNested=(4&s)>>2,this.lengthSizeMinusOne=3&s,this.nalu_arrays=[];var a=e.readUint8();for(t=0;t>7,n.nalu_type=63&s;var o=e.readUint16();for(r=0;r>4&15,this.length_size=15&t,t=e.readUint8(),this.base_offset_size=t>>4&15,1===this.version||2===this.version?this.index_size=15&t:this.index_size=0,this.items=[];var r=0;if(this.version<2)r=e.readUint16();else{if(2!==this.version)throw"version of iloc box not supported";r=e.readUint32()}for(var i=0;i>7,this.axis=1&t})),h.createFullBoxCtor("infe",(function(e){if(0!==this.version&&1!==this.version||(this.item_ID=e.readUint16(),this.item_protection_index=e.readUint16(),this.item_name=e.readCString(),this.content_type=e.readCString(),this.content_encoding=e.readCString()),1===this.version)return this.extension_type=e.readString(4),n.warn("BoxParser","Cannot parse extension type"),void e.seek(this.start+this.size);this.version>=2&&(2===this.version?this.item_ID=e.readUint16():3===this.version&&(this.item_ID=e.readUint32()),this.item_protection_index=e.readUint16(),this.item_type=e.readString(4),this.item_name=e.readCString(),"mime"===this.item_type?(this.content_type=e.readCString(),this.content_encoding=e.readCString()):"uri "===this.item_type&&(this.item_uri_type=e.readCString()))})),h.createFullBoxCtor("ipma",(function(e){var t,r;for(entry_count=e.readUint32(),this.associations=[],t=0;t>7==1,1&this.flags?n.property_index=(127&a)<<8|e.readUint8():n.property_index=127&a}}})),h.createFullBoxCtor("iref",(function(e){var t,r;for(this.references=[];e.getPosition()>7,i.assignment_type=127&s,i.assignment_type){case 0:i.grouping_type=e.readString(4);break;case 1:i.grouping_type=e.readString(4),i.grouping_type_parameter=e.readUint32();break;case 2:case 3:break;case 4:i.sub_track_id=e.readUint32();break;default:n.warn("BoxParser","Unknown leva assignement type")}}})),h.createBoxCtor("lsel",(function(e){this.layer_id=e.readUint16()})),h.createBoxCtor("maxr",(function(e){this.period=e.readUint32(),this.bytes=e.readUint32()})),f.prototype.toString=function(){return"("+this.x+","+this.y+")"},h.createBoxCtor("mdcv",(function(e){this.display_primaries=[],this.display_primaries[0]=new f(e.readUint16(),e.readUint16()),this.display_primaries[1]=new f(e.readUint16(),e.readUint16()),this.display_primaries[2]=new f(e.readUint16(),e.readUint16()),this.white_point=new f(e.readUint16(),e.readUint16()),this.max_display_mastering_luminance=e.readUint32(),this.min_display_mastering_luminance=e.readUint32()})),h.createFullBoxCtor("mdhd",(function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.parseLanguage(e),e.readUint16()})),h.createFullBoxCtor("mehd",(function(e){1&this.flags&&(n.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),1==this.version?this.fragment_duration=e.readUint64():this.fragment_duration=e.readUint32()})),h.createFullBoxCtor("meta",(function(e){this.boxes=[],h.ContainerBox.prototype.parse.call(this,e)})),h.createFullBoxCtor("mfhd",(function(e){this.sequence_number=e.readUint32()})),h.createFullBoxCtor("mfro",(function(e){this._size=e.readUint32()})),h.createFullBoxCtor("mskC",(function(e){this.bits_per_pixel=e.readUint8()})),h.createFullBoxCtor("mvhd",(function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.rate=e.readUint32(),this.volume=e.readUint16()>>8,e.readUint16(),e.readUint32Array(2),this.matrix=e.readUint32Array(9),e.readUint32Array(6),this.next_track_id=e.readUint32()})),h.createBoxCtor("npck",(function(e){this.packetssent=e.readUint32()})),h.createBoxCtor("nump",(function(e){this.packetssent=e.readUint64()})),h.createFullBoxCtor("padb",(function(e){var t=e.readUint32();this.padbits=[];for(var r=0;r0){var t=e.readUint32();this.kid=[];for(var r=0;r0&&(this.data=e.readUint8Array(i))})),h.createFullBoxCtor("clef",(function(e){this.width=e.readUint32(),this.height=e.readUint32()})),h.createFullBoxCtor("enof",(function(e){this.width=e.readUint32(),this.height=e.readUint32()})),h.createFullBoxCtor("prof",(function(e){this.width=e.readUint32(),this.height=e.readUint32()})),h.createContainerBoxCtor("tapt",null,["clef","prof","enof"]),h.createBoxCtor("rtp ",(function(e){this.descriptionformat=e.readString(4),this.sdptext=e.readString(this.size-this.hdr_size-4)})),h.createFullBoxCtor("saio",(function(e){1&this.flags&&(this.aux_info_type=e.readUint32(),this.aux_info_type_parameter=e.readUint32());var t=e.readUint32();this.offset=[];for(var r=0;r>7,this.avgRateFlag=t>>6&1,this.durationFlag&&(this.duration=e.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()),this.dependency=[];for(var r=e.readUint8(),i=0;i>7,this.num_leading_samples=127&t})),h.createSampleGroupCtor("rash",(function(e){if(this.operation_point_count=e.readUint16(),this.description_length!==2+(1===this.operation_point_count?2:6*this.operation_point_count)+9)n.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=e.readUint8Array(this.description_length-2);else{if(1===this.operation_point_count)this.target_rate_share=e.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var t=0;t>4,this.skip_byte_block=15&t,this.isProtected=e.readUint8(),this.Per_Sample_IV_Size=e.readUint8(),this.KID=h.parseHex16(e),this.constant_IV_size=0,this.constant_IV=0,1===this.isProtected&&0===this.Per_Sample_IV_Size&&(this.constant_IV_size=e.readUint8(),this.constant_IV=e.readUint8Array(this.constant_IV_size))})),h.createSampleGroupCtor("stsa",(function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),h.createSampleGroupCtor("sync",(function(e){var t=e.readUint8();this.NAL_unit_type=63&t})),h.createSampleGroupCtor("tele",(function(e){var t=e.readUint8();this.level_independently_decodable=t>>7})),h.createSampleGroupCtor("tsas",(function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),h.createSampleGroupCtor("tscl",(function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),h.createSampleGroupCtor("vipr",(function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),h.createFullBoxCtor("sbgp",(function(e){this.grouping_type=e.readString(4),1===this.version?this.grouping_type_parameter=e.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var t=e.readUint32(),r=0;r>6,this.sample_depends_on[i]=t>>4&3,this.sample_is_depended_on[i]=t>>2&3,this.sample_has_redundancy[i]=3&t})),h.createFullBoxCtor("senc"),h.createFullBoxCtor("sgpd",(function(e){this.grouping_type=e.readString(4),n.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),1===this.version?this.default_length=e.readUint32():this.default_length=0,this.version>=2&&(this.default_group_description_index=e.readUint32()),this.entries=[];for(var t=e.readUint32(),r=0;r>31&1,i.referenced_size=2147483647&s,i.subsegment_duration=e.readUint32(),s=e.readUint32(),i.starts_with_SAP=s>>31&1,i.SAP_type=s>>28&7,i.SAP_delta_time=268435455&s}})),h.SingleItemTypeReferenceBox=function(e,t,r,i){h.Box.call(this,e,t),this.hdr_size=r,this.start=i},h.SingleItemTypeReferenceBox.prototype=new h.Box,h.SingleItemTypeReferenceBox.prototype.parse=function(e){this.from_item_ID=e.readUint16();var t=e.readUint16();this.references=[];for(var r=0;r>4&15,this.sample_sizes[t+1]=15&i}else if(8===this.field_size)for(t=0;t0)for(r=0;r>4&15,this.default_skip_byte_block=15&t}this.default_isProtected=e.readUint8(),this.default_Per_Sample_IV_Size=e.readUint8(),this.default_KID=h.parseHex16(e),1===this.default_isProtected&&0===this.default_Per_Sample_IV_Size&&(this.default_constant_IV_size=e.readUint8(),this.default_constant_IV=e.readUint8Array(this.default_constant_IV_size))})),h.createFullBoxCtor("tfdt",(function(e){1==this.version?this.baseMediaDecodeTime=e.readUint64():this.baseMediaDecodeTime=e.readUint32()})),h.createFullBoxCtor("tfhd",(function(e){var t=0;this.track_id=e.readUint32(),this.size-this.hdr_size>t&&this.flags&h.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=e.readUint64(),t+=8):this.base_data_offset=0,this.size-this.hdr_size>t&&this.flags&h.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=e.readUint32(),t+=4):this.default_sample_description_index=0,this.size-this.hdr_size>t&&this.flags&h.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=e.readUint32(),t+=4):this.default_sample_duration=0,this.size-this.hdr_size>t&&this.flags&h.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=e.readUint32(),t+=4):this.default_sample_size=0,this.size-this.hdr_size>t&&this.flags&h.TFHD_FLAG_SAMPLE_FLAGS?(this.default_sample_flags=e.readUint32(),t+=4):this.default_sample_flags=0})),h.createFullBoxCtor("tfra",(function(e){this.track_ID=e.readUint32(),e.readUint24();var t=e.readUint8();this.length_size_of_traf_num=t>>4&3,this.length_size_of_trun_num=t>>2&3,this.length_size_of_sample_num=3&t,this.entries=[];for(var r=e.readUint32(),i=0;i>8,e.readUint16(),this.matrix=e.readInt32Array(9),this.width=e.readUint32(),this.height=e.readUint32()})),h.createBoxCtor("tmax",(function(e){this.time=e.readUint32()})),h.createBoxCtor("tmin",(function(e){this.time=e.readUint32()})),h.createBoxCtor("totl",(function(e){this.bytessent=e.readUint32()})),h.createBoxCtor("tpay",(function(e){this.bytessent=e.readUint32()})),h.createBoxCtor("tpyl",(function(e){this.bytessent=e.readUint64()})),h.TrackGroupTypeBox.prototype.parse=function(e){this.parseFullHeader(e),this.track_group_id=e.readUint32()},h.createTrackGroupCtor("msrc"),h.TrackReferenceTypeBox=function(e,t,r,i){h.Box.call(this,e,t),this.hdr_size=r,this.start=i},h.TrackReferenceTypeBox.prototype=new h.Box,h.TrackReferenceTypeBox.prototype.parse=function(e){this.track_ids=e.readUint32Array((this.size-this.hdr_size)/4)},h.trefBox.prototype.parse=function(e){for(var t,r;e.getPosition()t&&this.flags&h.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=e.readInt32(),t+=4):this.data_offset=0,this.size-this.hdr_size>t&&this.flags&h.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=e.readUint32(),t+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>t)for(var r=0;r>7&1,this.block_pad_lsb=r>>6&1,this.block_little_endian=r>>5&1,this.block_reversed=r>>4&1,this.pad_unknown=r>>3&1,this.pixel_size=e.readUint32(),this.row_align_size=e.readUint32(),this.tile_align_size=e.readUint32(),this.num_tile_cols_minus_one=e.readUint32(),this.num_tile_rows_minus_one=e.readUint32()}})),h.createFullBoxCtor("url ",(function(e){1!==this.flags&&(this.location=e.readCString())})),h.createFullBoxCtor("urn ",(function(e){this.name=e.readCString(),this.size-this.hdr_size-this.name.length-1>0&&(this.location=e.readCString())})),h.createUUIDBox("a5d40b30e81411ddba2f0800200c9a66",!0,!1,(function(e){this.LiveServerManifest=e.readString(this.size-this.hdr_size).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")})),h.createUUIDBox("d08a4f1810f34a82b6c832d8aba183d3",!0,!1,(function(e){this.system_id=h.parseHex16(e);var t=e.readUint32();t>0&&(this.data=e.readUint8Array(t))})),h.createUUIDBox("a2394f525a9b4f14a2446c427c648df4",!0,!1),h.createUUIDBox("8974dbce7be74c5184f97148f9882554",!0,!1,(function(e){this.default_AlgorithmID=e.readUint24(),this.default_IV_size=e.readUint8(),this.default_KID=h.parseHex16(e)})),h.createUUIDBox("d4807ef2ca3946958e5426cb9e46a79f",!0,!1,(function(e){this.fragment_count=e.readUint8(),this.entries=[];for(var t=0;t>4,this.chromaSubsampling=t>>1&7,this.videoFullRangeFlag=1&t,this.colourPrimaries=e.readUint8(),this.transferCharacteristics=e.readUint8(),this.matrixCoefficients=e.readUint8(),this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize)):(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4&15,this.colorSpace=15&t,t=e.readUint8(),this.chromaSubsampling=t>>4&15,this.transferFunction=t>>1&7,this.videoFullRangeFlag=1&t,this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize))})),h.createBoxCtor("vttC",(function(e){this.text=e.readString(this.size-this.hdr_size)})),h.createFullBoxCtor("vvcC",(function(e){var t,r,i={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(e){this.held_bits=e.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(e){this.held_bits=e.readUint16(),this.num_held_bits=16},extract_bits:function(e){var t=this.held_bits>>this.num_held_bits-e&(1<1){for(i.stream_read_1_bytes(e),this.ptl_sublayer_present_mask=0,r=this.num_sublayers-2;r>=0;--r){var n=i.extract_bits(1);this.ptl_sublayer_present_mask|=n<1;++r)i.extract_bits(1);for(this.sublayer_level_idc=[],r=this.num_sublayers-2;r>=0;--r)this.ptl_sublayer_present_mask&1<>=1;t+=h.decimalToHex(i,0),t+=".",0===this.hvcC.general_tier_flag?t+="L":t+="H",t+=this.hvcC.general_level_idc;var s=!1,a="";for(e=5;e>=0;e--)(this.hvcC.general_constraint_indicator[e]||s)&&(a="."+h.decimalToHex(this.hvcC.general_constraint_indicator[e],0)+a,s=!0);t+=a}return t},h.vvc1SampleEntry.prototype.getCodec=h.vvi1SampleEntry.prototype.getCodec=function(){var e,t=h.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){t+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?t+=".H":t+=".L",t+=this.vvcC.general_level_idc;var r="";if(this.vvcC.general_constraint_info){var i,s=[],a=0;for(a|=this.vvcC.ptl_frame_only_constraint<<7,a|=this.vvcC.ptl_multilayer_enabled<<6,e=0;e>2&63,s.push(a),a&&(i=e),a=this.vvcC.general_constraint_info[e]>>2&3;if(void 0===i)r=".CA";else{r=".C";var n="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",o=0,d=0;for(e=0;e<=i;++e)for(o=o<<8|s[e],d+=8;d>=5;){r+=n[o>>d-5&31],o&=(1<<(d-=5))-1}d&&(r+=n[31&(o<<=5-d)])}}t+=r}return t},h.mp4aSampleEntry.prototype.getCodec=function(){var e=h.SampleEntry.prototype.getCodec.call(this);if(this.esds&&this.esds.esd){var t=this.esds.esd.getOTI(),r=this.esds.esd.getAudioConfig();return e+"."+h.decimalToHex(t)+(r?"."+r:"")}return e},h.stxtSampleEntry.prototype.getCodec=function(){var e=h.SampleEntry.prototype.getCodec.call(this);return this.mime_format?e+"."+this.mime_format:e},h.vp08SampleEntry.prototype.getCodec=h.vp09SampleEntry.prototype.getCodec=function(){var e=h.SampleEntry.prototype.getCodec.call(this),t=this.vpcC.level;0==t&&(t="00");var r=this.vpcC.bitDepth;return 8==r&&(r="08"),e+".0"+this.vpcC.profile+"."+t+"."+r},h.av01SampleEntry.prototype.getCodec=function(){var e,t=h.SampleEntry.prototype.getCodec.call(this),r=this.av1C.seq_level_idx_0;return r<10&&(r="0"+r),2===this.av1C.seq_profile&&1===this.av1C.high_bitdepth?e=1===this.av1C.twelve_bit?"12":"10":this.av1C.seq_profile<=2&&(e=1===this.av1C.high_bitdepth?"10":"08"),t+"."+this.av1C.seq_profile+"."+r+(this.av1C.seq_tier_0?"H":"M")+"."+e},h.Box.prototype.writeHeader=function(e,t){this.size+=8,this.size>l&&(this.size+=8),"uuid"===this.type&&(this.size+=16),n.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+e.getPosition()+(t||"")),this.size>l?e.writeUint32(1):(this.sizePosition=e.getPosition(),e.writeUint32(this.size)),e.writeString(this.type,null,4),"uuid"===this.type&&e.writeUint8Array(this.uuid),this.size>l&&e.writeUint64(this.size)},h.FullBox.prototype.writeHeader=function(e){this.size+=4,h.Box.prototype.writeHeader.call(this,e," v="+this.version+" f="+this.flags),e.writeUint8(this.version),e.writeUint24(this.flags)},h.Box.prototype.write=function(e){"mdat"===this.type?this.data&&(this.size=this.data.length,this.writeHeader(e),e.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(e),this.data&&e.writeUint8Array(this.data))},h.ContainerBox.prototype.write=function(e){this.size=0,this.writeHeader(e);for(var t=0;t=2&&e.writeUint32(this.default_sample_description_index),e.writeUint32(this.entries.length),t=0;t0)for(t=0;t+1t?1:0,this.flags=0,this.size=4,1===this.version&&(this.size+=4),this.writeHeader(e),1===this.version?e.writeUint64(this.baseMediaDecodeTime):e.writeUint32(this.baseMediaDecodeTime)},h.tfhdBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&h.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&h.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&h.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&h.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&h.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(e),e.writeUint32(this.track_id),this.flags&h.TFHD_FLAG_BASE_DATA_OFFSET&&e.writeUint64(this.base_data_offset),this.flags&h.TFHD_FLAG_SAMPLE_DESC&&e.writeUint32(this.default_sample_description_index),this.flags&h.TFHD_FLAG_SAMPLE_DUR&&e.writeUint32(this.default_sample_duration),this.flags&h.TFHD_FLAG_SAMPLE_SIZE&&e.writeUint32(this.default_sample_size),this.flags&h.TFHD_FLAG_SAMPLE_FLAGS&&e.writeUint32(this.default_sample_flags)},h.tkhdBox.prototype.write=function(e){this.version=0,this.size=80,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.track_id),e.writeUint32(0),e.writeUint32(this.duration),e.writeUint32(0),e.writeUint32(0),e.writeInt16(this.layer),e.writeInt16(this.alternate_group),e.writeInt16(this.volume<<8),e.writeUint16(0),e.writeInt32Array(this.matrix),e.writeUint32(this.width),e.writeUint32(this.height)},h.trexBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20,this.writeHeader(e),e.writeUint32(this.track_id),e.writeUint32(this.default_sample_description_index),e.writeUint32(this.default_sample_duration),e.writeUint32(this.default_sample_size),e.writeUint32(this.default_sample_flags)},h.trunBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&h.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&h.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&h.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&h.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&h.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&h.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(e),e.writeUint32(this.sample_count),this.flags&h.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=e.getPosition(),e.writeInt32(this.data_offset)),this.flags&h.TRUN_FLAGS_FIRST_FLAG&&e.writeUint32(this.first_sample_flags);for(var t=0;t-1||e[r]instanceof h.Box||t[r]instanceof h.Box||void 0===e[r]||void 0===t[r]||"function"==typeof e[r]||"function"==typeof t[r]||e.subBoxNames&&e.subBoxNames.indexOf(r.slice(0,4))>-1||t.subBoxNames&&t.subBoxNames.indexOf(r.slice(0,4))>-1||"data"===r||"start"===r||"size"===r||"creation_time"===r||"modification_time"===r||h.DIFF_PRIMITIVE_ARRAY_PROP_NAMES.indexOf(r)>-1||e[r]===t[r]))return!1;return!0},h.boxEqual=function(e,t){if(!h.boxEqualFields(e,t))return!1;for(var r=0;r1)for(t=1;t-1&&this.fragmentedTracks.splice(t,1)},g.prototype.setExtractionOptions=function(e,t,r){var i=this.getTrackById(e);if(i){var s={};this.extractedTracks.push(s),s.id=e,s.user=t,s.trak=i,i.nextSample=0,s.nb_samples=1e3,s.samples=[],r&&r.nbSamples&&(s.nb_samples=r.nbSamples)}},g.prototype.unsetExtractionOptions=function(e){for(var t=-1,r=0;r-1&&this.extractedTracks.splice(t,1)},g.prototype.parse=function(){var e,t;if(!this.restoreParsePosition||this.restoreParsePosition())for(;;){if(this.hasIncompleteMdat&&this.hasIncompleteMdat()){if(this.processIncompleteMdat())continue;return}if(this.saveParsePosition&&this.saveParsePosition(),(e=h.parseOneBox(this.stream,false)).code===h.ERR_NOT_ENOUGH_DATA){if(this.processIncompleteBox){if(this.processIncompleteBox(e))continue;return}return}var r;switch(r="uuid"!==(t=e.box).type?t.type:t.uuid,this.boxes.push(t),r){case"mdat":this.mdats.push(t);break;case"moof":this.moofs.push(t);break;case"moov":this.moovStartFound=!0,0===this.mdats.length&&(this.isProgressive=!0);default:void 0!==this[r]&&n.warn("ISOFile","Duplicate Box of type: "+r+", overriding previous occurrence"),this[r]=t}this.updateUsedBytes&&this.updateUsedBytes(t,e)}},g.prototype.checkBuffer=function(e){if(null==e)throw"Buffer must be defined and non empty";if(void 0===e.fileStart)throw"Buffer must have a fileStart property";return 0===e.byteLength?(n.warn("ISOFile","Ignoring empty buffer (fileStart: "+e.fileStart+")"),this.stream.logBufferLevel(),!1):(n.info("ISOFile","Processing buffer (fileStart: "+e.fileStart+")"),e.usedBytes=0,this.stream.insertBuffer(e),this.stream.logBufferLevel(),!!this.stream.initialized()||(n.warn("ISOFile","Not ready to start parsing"),!1))},g.prototype.appendBuffer=function(e,t){var r;if(this.checkBuffer(e))return this.parse(),this.moovStartFound&&!this.moovStartSent&&(this.moovStartSent=!0,this.onMoovStart&&this.onMoovStart()),this.moov?(this.sampleListBuilt||(this.buildSampleLists(),this.sampleListBuilt=!0),this.updateSampleLists(),this.onReady&&!this.readySent&&(this.readySent=!0,this.onReady(this.getInfo())),this.processSamples(t),this.nextSeekPosition?(r=this.nextSeekPosition,this.nextSeekPosition=void 0):r=this.nextParsePosition,this.stream.getEndFilePositionAfter&&(r=this.stream.getEndFilePositionAfter(r))):r=this.nextParsePosition?this.nextParsePosition:0,this.sidx&&this.onSidx&&!this.sidxSent&&(this.onSidx(this.sidx),this.sidxSent=!0),this.meta&&(this.flattenItemInfo&&!this.itemListBuilt&&(this.flattenItemInfo(),this.itemListBuilt=!0),this.processItems&&this.processItems(this.onItem)),this.stream.cleanBuffers&&(n.info("ISOFile","Done processing buffer (fileStart: "+e.fileStart+") - next buffer to fetch should have a fileStart position of "+r),this.stream.logBufferLevel(),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0),n.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize())),r},g.prototype.getInfo=function(){var e,t,r,i,s,a,n={},o=new Date("1904-01-01T00:00:00Z").getTime();if(this.moov)for(n.hasMoov=!0,n.duration=this.moov.mvhd.duration,n.timescale=this.moov.mvhd.timescale,n.isFragmented=null!=this.moov.mvex,n.isFragmented&&this.moov.mvex.mehd&&(n.fragment_duration=this.moov.mvex.mehd.fragment_duration),n.isProgressive=this.isProgressive,n.hasIOD=null!=this.moov.iods,n.brands=[],n.brands.push(this.ftyp.major_brand),n.brands=n.brands.concat(this.ftyp.compatible_brands),n.created=new Date(o+1e3*this.moov.mvhd.creation_time),n.modified=new Date(o+1e3*this.moov.mvhd.modification_time),n.tracks=[],n.audioTracks=[],n.videoTracks=[],n.subtitleTracks=[],n.metadataTracks=[],n.hintTracks=[],n.otherTracks=[],e=0;e0?n.mime+='video/mp4; codecs="':n.audioTracks&&n.audioTracks.length>0?n.mime+='audio/mp4; codecs="':n.mime+='application/mp4; codecs="',e=0;e=r.samples.length)&&(n.info("ISOFile","Sending fragmented data on track #"+i.id+" for samples ["+Math.max(0,r.nextSample-i.nb_samples)+","+(r.nextSample-1)+"]"),n.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(i.id,i.user,i.segmentStream.buffer,r.nextSample,e||r.nextSample>=r.samples.length),i.segmentStream=null,i!==this.fragmentedTracks[t]))break}}if(null!==this.onSamples)for(t=0;t=r.samples.length)&&(n.debug("ISOFile","Sending samples on track #"+a.id+" for sample "+r.nextSample),this.onSamples&&this.onSamples(a.id,a.user,a.samples),a.samples=[],a!==this.extractedTracks[t]))break}}}},g.prototype.getBox=function(e){var t=this.getBoxes(e,!0);return t.length?t[0]:null},g.prototype.getBoxes=function(e,t){var r=[];return g._sweep.call(this,e,r,t),r},g._sweep=function(e,t,r){for(var i in this.type&&this.type==e&&t.push(this),this.boxes){if(t.length&&r)return;g._sweep.call(this.boxes[i],e,t,r)}},g.prototype.getTrackSamplesInfo=function(e){var t=this.getTrackById(e);return t?t.samples:void 0},g.prototype.getTrackSample=function(e,t){var r=this.getTrackById(e);return this.getSample(r,t)},g.prototype.releaseUsedSamples=function(e,t){var r=0,i=this.getTrackById(e);i.lastValidSample||(i.lastValidSample=0);for(var s=i.lastValidSample;se*s.timescale){l=i-1;break}t&&s.is_sync&&(d=i)}for(t&&(l=d),e=r.samples[l].cts,r.nextSample=l;r.samples[l].alreadyRead===r.samples[l].size&&r.samples[l+1];)l++;return a=r.samples[l].offset+r.samples[l].alreadyRead,n.info("ISOFile","Seeking to "+(t?"RAP":"")+" sample #"+r.nextSample+" on track "+r.tkhd.track_id+", time "+n.getDurationString(e,o)+" and offset: "+a),{offset:a,time:e/o}},g.prototype.getTrackDuration=function(e){var t;return e.samples?((t=e.samples[e.samples.length-1]).cts+t.duration)/t.timescale:1/0},g.prototype.seek=function(e,t){var r,i,s,a=this.moov,o={offset:1/0,time:1/0};if(this.moov){for(s=0;sthis.getTrackDuration(r)||((i=this.seekTrack(e,t,r)).offset-1){n=d;break}switch(n){case"Visual":if(s.add("vmhd").set("graphicsmode",0).set("opcolor",[0,0,0]),a.set("width",t.width).set("height",t.height).set("horizresolution",72<<16).set("vertresolution",72<<16).set("frame_count",1).set("compressorname",t.type+" Compressor").set("depth",24),t.avcDecoderConfigRecord){var c=new h.avcCBox;c.parse(new o(t.avcDecoderConfigRecord)),a.addBox(c)}else if(t.hevcDecoderConfigRecord){var f=new h.hvcCBox;f.parse(new o(t.hevcDecoderConfigRecord)),a.addBox(f)}break;case"Audio":s.add("smhd").set("balance",t.balance||0),a.set("channel_count",t.channel_count||2).set("samplesize",t.samplesize||16).set("samplerate",t.samplerate||65536);break;case"Hint":s.add("hmhd");break;case"Subtitle":if(s.add("sthd"),"stpp"===t.type)a.set("namespace",t.namespace||"nonamespace").set("schema_location",t.schema_location||"").set("auxiliary_mime_types",t.auxiliary_mime_types||"");break;default:s.add("nmhd")}t.description&&a.addBox(t.description),t.description_boxes&&t.description_boxes.forEach((function(e){a.addBox(e)})),s.add("dinf").add("dref").addEntry((new h["url Box"]).set("flags",1));var p=s.add("stbl");return p.add("stsd").addEntry(a),p.add("stts").set("sample_counts",[]).set("sample_deltas",[]),p.add("stsc").set("first_chunk",[]).set("samples_per_chunk",[]).set("sample_description_index",[]),p.add("stco").set("chunk_offsets",[]),p.add("stsz").set("sample_sizes",[]),this.moov.mvex.add("trex").set("track_id",t.id).set("default_sample_description_index",t.default_sample_description_index||1).set("default_sample_duration",t.default_sample_duration||0).set("default_sample_size",t.default_sample_size||0).set("default_sample_flags",t.default_sample_flags||0),this.buildTrakSampleLists(r),t.id}},h.Box.prototype.computeSize=function(e){var t=e||new d;t.endianness=d.BIG_ENDIAN,this.write(t)},g.prototype.addSample=function(e,t,r){var i=r||{},s={},a=this.getTrackById(e);if(null!==a){s.number=a.samples.length,s.track_id=a.tkhd.track_id,s.timescale=a.mdia.mdhd.timescale,s.description_index=i.sample_description_index?i.sample_description_index-1:0,s.description=a.mdia.minf.stbl.stsd.entries[s.description_index],s.data=t,s.size=t.byteLength,s.alreadyRead=s.size,s.duration=i.duration||1,s.cts=i.cts||0,s.dts=i.dts||0,s.is_sync=i.is_sync||!1,s.is_leading=i.is_leading||0,s.depends_on=i.depends_on||0,s.is_depended_on=i.is_depended_on||0,s.has_redundancy=i.has_redundancy||0,s.degradation_priority=i.degradation_priority||0,s.offset=0,s.subsamples=i.subsamples,a.samples.push(s),a.samples_size+=s.size,a.samples_duration+=s.duration,void 0===a.first_dts&&(a.first_dts=i.dts),this.processSamples();var n=this.createSingleSampleMoof(s);return this.addBox(n),n.computeSize(),n.trafs[0].truns[0].data_offset=n.size+8,this.add("mdat").data=new Uint8Array(t),s}},g.prototype.createSingleSampleMoof=function(e){var t=0;t=e.is_sync?1<<25:65536;var r=new h.moofBox;r.add("mfhd").set("sequence_number",this.nextMoofNumber),this.nextMoofNumber++;var i=r.add("traf"),s=this.getTrackById(e.track_id);return i.add("tfhd").set("track_id",e.track_id).set("flags",h.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),i.add("tfdt").set("baseMediaDecodeTime",e.dts-(s.first_dts||0)),i.add("trun").set("flags",h.TRUN_FLAGS_DATA_OFFSET|h.TRUN_FLAGS_DURATION|h.TRUN_FLAGS_SIZE|h.TRUN_FLAGS_FLAGS|h.TRUN_FLAGS_CTS_OFFSET).set("data_offset",0).set("first_sample_flags",0).set("sample_count",1).set("sample_duration",[e.duration]).set("sample_size",[e.size]).set("sample_flags",[t]).set("sample_composition_time_offset",[e.cts-e.dts]),r},g.prototype.lastMoofIndex=0,g.prototype.samplesDataSize=0,g.prototype.resetTables=function(){var e,t,r,i,s,a;for(this.initial_duration=this.moov.mvhd.duration,this.moov.mvhd.duration=0,e=0;e=2&&(d=s[n].grouping_type+"/0",(o=new l(s[n].grouping_type,0)).is_fragment=!0,t.sample_groups_info[d]||(t.sample_groups_info[d]=o))}else for(n=0;n=2&&(d=i[n].grouping_type+"/0",o=new l(i[n].grouping_type,0),e.sample_groups_info[d]||(e.sample_groups_info[d]=o))},g.setSampleGroupProperties=function(e,t,r,i){var s,a;for(s in t.sample_groups=[],i){var n;if(t.sample_groups[s]={},t.sample_groups[s].grouping_type=i[s].grouping_type,t.sample_groups[s].grouping_type_parameter=i[s].grouping_type_parameter,r>=i[s].last_sample_in_run&&(i[s].last_sample_in_run<0&&(i[s].last_sample_in_run=0),i[s].entry_index++,i[s].entry_index<=i[s].sbgp.entries.length-1&&(i[s].last_sample_in_run+=i[s].sbgp.entries[i[s].entry_index].sample_count)),i[s].entry_index<=i[s].sbgp.entries.length-1?t.sample_groups[s].group_description_index=i[s].sbgp.entries[i[s].entry_index].group_description_index:t.sample_groups[s].group_description_index=-1,0!==t.sample_groups[s].group_description_index)n=i[s].fragment_description?i[s].fragment_description:i[s].description,t.sample_groups[s].group_description_index>0?(a=t.sample_groups[s].group_description_index>65535?(t.sample_groups[s].group_description_index>>16)-1:t.sample_groups[s].group_description_index-1,n&&a>=0&&(t.sample_groups[s].description=n.entries[a])):n&&n.version>=2&&n.default_group_description_index>0&&(t.sample_groups[s].description=n.entries[n.default_group_description_index-1])}},g.process_sdtp=function(e,t,r){t&&(e?(t.is_leading=e.is_leading[r],t.depends_on=e.sample_depends_on[r],t.is_depended_on=e.sample_is_depended_on[r],t.has_redundancy=e.sample_has_redundancy[r]):(t.is_leading=0,t.depends_on=0,t.is_depended_on=0,t.has_redundancy=0))},g.prototype.buildSampleLists=function(){var e,t;for(e=0;eb&&(v++,b<0&&(b=0),b+=a.sample_counts[v]),t>0?(e.samples[t-1].duration=a.sample_deltas[v],e.samples_duration+=e.samples[t-1].duration,x.dts=e.samples[t-1].dts+e.samples[t-1].duration):x.dts=0,n?(t>=w&&(S++,w<0&&(w=0),w+=n.sample_counts[S]),x.cts=e.samples[t].dts+n.sample_offsets[S]):x.cts=x.dts,o?(t==o.sample_numbers[E]-1?(x.is_sync=!0,E++):(x.is_sync=!1,x.degradation_priority=0),l&&l.entries[U].sample_delta+A==t+1&&(x.subsamples=l.entries[U].subsamples,A+=l.entries[U].sample_delta,U++)):x.is_sync=!0,g.process_sdtp(e.mdia.minf.stbl.sdtp,x,x.number),x.degradation_priority=h?h.priority[t]:0,l&&l.entries[U].sample_delta+A==t&&(x.subsamples=l.entries[U].subsamples,A+=l.entries[U].sample_delta),(u.length>0||c.length>0)&&g.setSampleGroupProperties(e,x,t,e.sample_groups_info)}t>0&&(e.samples[t-1].duration=Math.max(e.mdia.mdhd.duration-e.samples[t-1].dts,0),e.samples_duration+=e.samples[t-1].duration)}},g.prototype.updateSampleLists=function(){var e,t,r,i,s,a,n,o,d,l,u,c,f,p,m;if(void 0!==this.moov)for(;this.lastMoofIndex0&&g.initSampleGroups(c,u,u.sbgps,c.mdia.minf.stbl.sgpds,u.sgpds),t=0;t0?p.dts=c.samples[c.samples.length-2].dts+c.samples[c.samples.length-2].duration:(u.tfdt?p.dts=u.tfdt.baseMediaDecodeTime:p.dts=0,c.first_traf_merged=!0),p.cts=p.dts,_.flags&h.TRUN_FLAGS_CTS_OFFSET&&(p.cts=p.dts+_.sample_composition_time_offset[r]),m=n,_.flags&h.TRUN_FLAGS_FLAGS?m=_.sample_flags[r]:0===r&&_.flags&h.TRUN_FLAGS_FIRST_FLAG&&(m=_.first_sample_flags),p.is_sync=!(m>>16&1),p.is_leading=m>>26&3,p.depends_on=m>>24&3,p.is_depended_on=m>>22&3,p.has_redundancy=m>>20&3,p.degradation_priority=65535&m;var y=!!(u.tfhd.flags&h.TFHD_FLAG_BASE_DATA_OFFSET),b=!!(u.tfhd.flags&h.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),v=!!(_.flags&h.TRUN_FLAGS_DATA_OFFSET),w=0;w=y?u.tfhd.base_data_offset:b||0===t?l.start:o,p.offset=0===t&&0===r?v?w+_.data_offset:w:o,o=p.offset+p.size,(u.sbgps.length>0||u.sgpds.length>0||c.mdia.minf.stbl.sbgps.length>0||c.mdia.minf.stbl.sgpds.length>0)&&g.setSampleGroupProperties(c,p,p.number_in_traf,u.sample_groups_info)}}if(u.subs){c.has_fragment_subsamples=!0;var S=u.first_sample_index;for(t=0;t-1))return null;var a=(r=this.stream.buffers[s]).byteLength-(i.offset+i.alreadyRead-r.fileStart);if(i.size-i.alreadyRead<=a)return n.debug("ISOFile","Getting sample #"+t+" data (alreadyRead: "+i.alreadyRead+" offset: "+(i.offset+i.alreadyRead-r.fileStart)+" read size: "+(i.size-i.alreadyRead)+" full size: "+i.size+")"),d.memcpy(i.data.buffer,i.alreadyRead,r,i.offset+i.alreadyRead-r.fileStart,i.size-i.alreadyRead),r.usedBytes+=i.size-i.alreadyRead,this.stream.logBufferLevel(),i.alreadyRead=i.size,i;if(0===a)return null;n.debug("ISOFile","Getting sample #"+t+" partial data (alreadyRead: "+i.alreadyRead+" offset: "+(i.offset+i.alreadyRead-r.fileStart)+" read size: "+a+" full size: "+i.size+")"),d.memcpy(i.data.buffer,i.alreadyRead,r,i.offset+i.alreadyRead-r.fileStart,a),i.alreadyRead+=a,r.usedBytes+=a,this.stream.logBufferLevel()}},g.prototype.releaseSample=function(e,t){var r=e.samples[t];return r.data?(this.samplesDataSize-=r.size,r.data=null,r.alreadyRead=0,r.size):0},g.prototype.getAllocatedSampleDataSize=function(){return this.samplesDataSize},g.prototype.getCodecs=function(){var e,t="";for(e=0;e0&&(t+=","),t+=this.moov.traks[e].mdia.minf.stbl.stsd.entries[0].getCodec()}return t},g.prototype.getTrexById=function(e){var t;if(!this.moov||!this.moov.mvex)return null;for(t=0;t0&&(r.protection=a.ipro.protections[a.iinf.item_infos[e].protection_index-1]),a.iinf.item_infos[e].item_type?r.type=a.iinf.item_infos[e].item_type:r.type="mime",r.content_type=a.iinf.item_infos[e].content_type,r.content_encoding=a.iinf.item_infos[e].content_encoding;if(a.grpl)for(e=0;e0&&h.property_index-1-1))return null;var o=(t=this.stream.buffers[a]).byteLength-(s.offset+s.alreadyRead-t.fileStart);if(!(s.length-s.alreadyRead<=o))return n.debug("ISOFile","Getting item #"+e+" extent #"+i+" partial data (alreadyRead: "+s.alreadyRead+" offset: "+(s.offset+s.alreadyRead-t.fileStart)+" read size: "+o+" full extent size: "+s.length+" full item size: "+r.size+")"),d.memcpy(r.data.buffer,r.alreadyRead,t,s.offset+s.alreadyRead-t.fileStart,o),s.alreadyRead+=o,r.alreadyRead+=o,t.usedBytes+=o,this.stream.logBufferLevel(),null;n.debug("ISOFile","Getting item #"+e+" extent #"+i+" data (alreadyRead: "+s.alreadyRead+" offset: "+(s.offset+s.alreadyRead-t.fileStart)+" read size: "+(s.length-s.alreadyRead)+" full extent size: "+s.length+" full item size: "+r.size+")"),d.memcpy(r.data.buffer,r.alreadyRead,t,s.offset+s.alreadyRead-t.fileStart,s.length-s.alreadyRead),t.usedBytes+=s.length-s.alreadyRead,this.stream.logBufferLevel(),r.alreadyRead+=s.length-s.alreadyRead,s.alreadyRead=s.length}}return r.alreadyRead===r.size?r:null},g.prototype.releaseItem=function(e){var t=this.items[e];if(t.data){this.itemsDataSize-=t.size,t.data=null,t.alreadyRead=0;for(var r=0;r0?this.moov.traks[e].samples[0].duration:0),t.push(i)}return t},h.Box.prototype.printHeader=function(e){this.size+=8,this.size>l&&(this.size+=8),"uuid"===this.type&&(this.size+=16),e.log(e.indent+"size:"+this.size),e.log(e.indent+"type:"+this.type)},h.FullBox.prototype.printHeader=function(e){this.size+=4,h.Box.prototype.printHeader.call(this,e),e.log(e.indent+"version:"+this.version),e.log(e.indent+"flags:"+this.flags)},h.Box.prototype.print=function(e){this.printHeader(e)},h.ContainerBox.prototype.print=function(e){this.printHeader(e);for(var t=0;t>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"next_track_id: "+this.next_track_id)},h.tkhdBox.prototype.print=function(e){h.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+"creation_time: "+this.creation_time),e.log(e.indent+"modification_time: "+this.modification_time),e.log(e.indent+"track_id: "+this.track_id),e.log(e.indent+"duration: "+this.duration),e.log(e.indent+"volume: "+(this.volume>>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"layer: "+this.layer),e.log(e.indent+"alternate_group: "+this.alternate_group),e.log(e.indent+"width: "+this.width),e.log(e.indent+"height: "+this.height)};var y={createFile:function(e,t){var r=void 0===e||e,i=new g(t);return i.discardMdatData=!r,i}};t.createFile=y.createFile}));function pi(e){return e.reduce(((e,t)=>256*e+t))}function mi(e){const t=[101,103,119,99],r=e.length-28,i=e.slice(r,r+t.length);return t.every(((e,t)=>e===i[t]))}fi.Log,fi.MP4BoxStream,fi.DataStream,fi.MultiBufferStream,fi.MPEG4DescriptorParser,fi.BoxParser,fi.XMLSubtitlein4Parser,fi.Textin4Parser,fi.ISOFile,fi.createFile;class _i{constructor(){this.s=null,this.a=null,this.l=0,this.c=0,this.u=1/0,this.A=!1,this.d=!1,this.r=4194304,this.n=new Uint8Array([30,158,90,33,244,57,83,165,2,70,35,87,215,231,226,108]),this.t=this.n.slice().reverse()}destroy(){this.s=null,this.a=null,this.l=0,this.c=0,this.u=1/0,this.A=!1,this.d=!1,this.r=4194304,this.n=null,this.t=null}transport(e){if(!this.s&&this.l>50)return e;if(this.l++,this.d)return e;const t=new Uint8Array(e);if(this.A){if(!(this.c~e))}(e.slice(r+32,r+32+t))]}return null}(t,this.t);if(!r)return e;const i=function(e){try{if("object"!=typeof WebAssembly||"function"!=typeof WebAssembly.instantiate)throw null;{const e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(!(e instanceof WebAssembly.Module&&new WebAssembly.Instance(e)instanceof WebAssembly.Instance))throw null}}catch(e){return new Error("video_error_4")}let t;try{t={env:{__handle_stack_overflow:()=>e(new Error("video_error_1")),memory:new WebAssembly.Memory({initial:256,maximum:256})}}}catch(e){return new Error("video_error_5")}return t}(e);if(i instanceof Error)return console.error(i.message),this.d=!0,e;this.A=!0,this.u=r[1],mi(t)&&this.c++,WebAssembly.instantiate(r[2],i).then((e=>{if("function"!=typeof(t=e.instance.exports).parse||"object"!=typeof t.memory)return this.d=!0,void console.error("video_error_3");var t;this.s=e.instance.exports,this.a=new Uint8Array(this.s.memory.buffer)})).catch((e=>{this.d=!0,console.error("video_error_6")}))}return e}}const gi=16,yi=[214,144,233,254,204,225,61,183,22,182,20,194,40,251,44,5,43,103,154,118,42,190,4,195,170,68,19,38,73,134,6,153,156,66,80,244,145,239,152,122,51,84,11,67,237,207,172,98,228,179,28,169,201,8,232,149,128,223,148,250,117,143,63,166,71,7,167,252,243,115,23,186,131,89,60,25,230,133,79,168,104,107,129,178,113,100,218,139,248,235,15,75,112,86,157,53,30,36,14,94,99,88,209,162,37,34,124,59,1,33,120,135,212,0,70,87,159,211,39,82,76,54,2,231,160,196,200,158,234,191,138,210,64,199,56,181,163,247,242,206,249,97,21,161,224,174,93,164,155,52,26,85,173,147,50,48,245,140,177,227,29,246,226,46,130,102,202,96,192,41,35,171,13,83,78,111,213,219,55,69,222,253,142,47,3,255,106,114,109,108,91,81,141,27,175,146,187,221,188,127,17,217,92,65,31,16,90,216,10,193,49,136,165,205,123,189,45,116,208,18,184,229,180,176,137,105,151,74,12,150,119,126,101,185,241,9,197,110,198,132,24,240,125,236,58,220,77,32,121,238,95,62,215,203,57,72],bi=[462357,472066609,943670861,1415275113,1886879365,2358483617,2830087869,3301692121,3773296373,4228057617,404694573,876298825,1347903077,1819507329,2291111581,2762715833,3234320085,3705924337,4177462797,337322537,808926789,1280531041,1752135293,2223739545,2695343797,3166948049,3638552301,4110090761,269950501,741554753,1213159005,1684763257];function vi(e){const t=[];for(let r=0,i=e.length;r>>32-r}function Si(e){return(255&yi[e>>>24&255])<<24|(255&yi[e>>>16&255])<<16|(255&yi[e>>>8&255])<<8|255&yi[255&e]}function Ei(e){return e^wi(e,2)^wi(e,10)^wi(e,18)^wi(e,24)}function Ui(e){return e^wi(e,13)^wi(e,23)}function Ai(e,t,r){const i=new Array(4),s=new Array(4);for(let t=0;t<4;t++)s[0]=255&e[4*t],s[1]=255&e[4*t+1],s[2]=255&e[4*t+2],s[3]=255&e[4*t+3],i[t]=s[0]<<24|s[1]<<16|s[2]<<8|s[3];for(let e,t=0;t<32;t+=4)e=i[1]^i[2]^i[3]^r[t+0],i[0]^=Ei(Si(e)),e=i[2]^i[3]^i[0]^r[t+1],i[1]^=Ei(Si(e)),e=i[3]^i[0]^i[1]^r[t+2],i[2]^=Ei(Si(e)),e=i[0]^i[1]^i[2]^r[t+3],i[3]^=Ei(Si(e));for(let e=0;e<16;e+=4)t[e]=i[3-e/4]>>>24&255,t[e+1]=i[3-e/4]>>>16&255,t[e+2]=i[3-e/4]>>>8&255,t[e+3]=255&i[3-e/4]}function xi(e,t,r,{padding:i="pkcs#7",mode:s,iv:a=[],output:n="string"}={}){if("cbc"===s&&("string"==typeof a&&(a=vi(a)),16!==a.length))throw new Error("iv is invalid");if("string"==typeof t&&(t=vi(t)),16!==t.length)throw new Error("key is invalid");if(e="string"==typeof e?0!==r?function(e){const t=[];for(let r=0,i=e.length;r>>6),t.push(128|63&i);else if(i<=55295||i>=57344&&i<=65535)t.push(224|i>>>12),t.push(128|i>>>6&63),t.push(128|63&i);else{if(!(i>=65536&&i<=1114111))throw t.push(i),new Error("input is not supported");r++,t.push(240|i>>>18&28),t.push(128|i>>>12&63),t.push(128|i>>>6&63),t.push(128|63&i)}}return t}(e):vi(e):[...e],("pkcs#5"===i||"pkcs#7"===i)&&0!==r){const t=gi-e.length%gi;for(let r=0;r=gi;){const t=e.slice(c,c+16),i=new Array(16);if("cbc"===s)for(let e=0;e1===(e=e.toString(16)).length?"0"+e:e)).join(""):function(e){const t=[];for(let r=0,i=e.length;r=240&&e[r]<=247?(t.push(String.fromCodePoint(((7&e[r])<<18)+((63&e[r+1])<<12)+((63&e[r+2])<<6)+(63&e[r+3]))),r+=3):e[r]>=224&&e[r]<=239?(t.push(String.fromCodePoint(((15&e[r])<<12)+((63&e[r+1])<<6)+(63&e[r+2]))),r+=2):e[r]>=192&&e[r]<=223?(t.push(String.fromCodePoint(((31&e[r])<<6)+(63&e[r+1]))),r++):t.push(String.fromCodePoint(e[r]));return t.join("")}(d):d}class Bi{on(e,t,r){const i=this.e||(this.e={});return(i[e]||(i[e]=[])).push({fn:t,ctx:r}),this}once(e,t,r){const i=this;function s(...a){i.off(e,s),t.apply(r,a)}return s._=t,this.on(e,s,r)}emit(e,...t){const r=((this.e||(this.e={}))[e]||[]).slice();for(let e=0;e{delete r[e]})),void delete this.e;const i=r[e],s=[];if(i&&t)for(let e=0,r=i.length;e=2&&!this.isDestroyed;)if(255==this.tempBuffer[this.parsedOffset]){if(!(!1&this.tempBuffer[this.parsedOffset+1])){this.versionLayer=this.tempBuffer[this.parsedOffset+1],this.state=Ti.findFirstStartCode,this.fisrtStartCodeOffset=this.parsedOffset,this.parsedOffset+=2,e=!0;break}this.parsedOffset++}else this.parsedOffset++;if(e)continue;break}if(this.state==Ti.findFirstStartCode){let e=!1;for(;this.tempBuffer.length-this.parsedOffset>=2&&!this.isDestroyed;)if(255==this.tempBuffer[this.parsedOffset]){if(this.tempBuffer[this.parsedOffset+1]==this.versionLayer){this.state=Ti.findSecondStartCode,this.secondStartCodeOffset=this.parsedOffset,this.parsedOffset+=2,e=!0;break}this.parsedOffset++}else this.parsedOffset++;if(e)continue;break}if(this.state==Ti.findSecondStartCode){let e=this.tempBuffer.slice(this.fisrtStartCodeOffset,this.secondStartCodeOffset);this.emit("data",e,t),this.tempBuffer=this.tempBuffer.slice(this.secondStartCodeOffset),this.fisrtStartCodeOffset=0,this.parsedOffset=2,this.state=Ti.findFirstStartCode}}}}function ki(e,t,r){for(let i=2;ithis.proxy(e,t,r,i)));e.addEventListener(t,r,i);const s=()=>{Kt(e.removeEventListener)&&e.removeEventListener(t,r,i)};return this.destroys.push(s),s}destroy(){this.master.debug&&this.master.debug.log("Events","destroy"),this.destroys.forEach((e=>e())),this.destroys=[]}}class Ii{static init(){Ii.types={avc1:[],avcC:[],hvc1:[],hvcC:[],av01:[],av1C:[],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:[],".mp3":[],Opus:[],dOps:[],"ac-3":[],dac3:[],"ec-3":[],dec3:[]};for(let e in Ii.types)Ii.types.hasOwnProperty(e)&&(Ii.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);let e=Ii.constants={};e.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),e.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),e.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),e.STSC=e.STCO=e.STTS,e.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),e.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),e.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),e.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),e.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),e.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}static box(e){let t=8,r=null,i=Array.prototype.slice.call(arguments,1),s=i.length;for(let e=0;e>>24&255,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=255&t,r.set(e,4);let a=8;for(let e=0;e>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))}static trak(e){return Ii.box(Ii.types.trak,Ii.tkhd(e),Ii.mdia(e))}static tkhd(e){let t=e.id,r=e.duration,i=e.presentWidth,s=e.presentHeight;return Ii.box(Ii.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,i>>>8&255,255&i,0,0,s>>>8&255,255&s,0,0]))}static mdia(e){return Ii.box(Ii.types.mdia,Ii.mdhd(e),Ii.hdlr(e),Ii.minf(e))}static mdhd(e){let t=e.timescale,r=e.duration;return Ii.box(Ii.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,r>>>24&255,r>>>16&255,r>>>8&255,255&r,85,196,0,0]))}static hdlr(e){let t=null;return t="audio"===e.type?Ii.constants.HDLR_AUDIO:Ii.constants.HDLR_VIDEO,Ii.box(Ii.types.hdlr,t)}static minf(e){let t=null;return t="audio"===e.type?Ii.box(Ii.types.smhd,Ii.constants.SMHD):Ii.box(Ii.types.vmhd,Ii.constants.VMHD),Ii.box(Ii.types.minf,t,Ii.dinf(),Ii.stbl(e))}static dinf(){return Ii.box(Ii.types.dinf,Ii.box(Ii.types.dref,Ii.constants.DREF))}static stbl(e){return Ii.box(Ii.types.stbl,Ii.stsd(e),Ii.box(Ii.types.stts,Ii.constants.STTS),Ii.box(Ii.types.stsc,Ii.constants.STSC),Ii.box(Ii.types.stsz,Ii.constants.STSZ),Ii.box(Ii.types.stco,Ii.constants.STCO))}static stsd(e){return"audio"===e.type?"mp3"===e.audioType?Ii.box(Ii.types.stsd,Ii.constants.STSD_PREFIX,Ii.mp3(e)):Ii.box(Ii.types.stsd,Ii.constants.STSD_PREFIX,Ii.mp4a(e)):"avc"===e.videoType?Ii.box(Ii.types.stsd,Ii.constants.STSD_PREFIX,Ii.avc1(e)):Ii.box(Ii.types.stsd,Ii.constants.STSD_PREFIX,Ii.hvc1(e))}static mp3(e){let t=e.channelCount,r=e.audioSampleRate,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,r>>>8&255,255&r,0,0]);return Ii.box(Ii.types[".mp3"],i)}static mp4a(e){let t=e.channelCount,r=e.audioSampleRate,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,r>>>8&255,255&r,0,0]);return Ii.box(Ii.types.mp4a,i,Ii.esds(e))}static esds(e){let t=e.config||[],r=t.length,i=new Uint8Array([0,0,0,0,3,23+r,0,1,0,4,15+r,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([r]).concat(t).concat([6,1,2]));return Ii.box(Ii.types.esds,i)}static avc1(e){let t=e.avcc;const r=e.codecWidth,i=e.codecHeight;let s=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,r>>>8&255,255&r,i>>>8&255,255&i,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return Ii.box(Ii.types.avc1,s,Ii.box(Ii.types.avcC,t))}static hvc1(e){let t=e.avcc;const r=e.codecWidth,i=e.codecHeight;let s=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,r>>>8&255,255&r,i>>>8&255,255&i,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return Ii.box(Ii.types.hvc1,s,Ii.box(Ii.types.hvcC,t))}static mvex(e){return Ii.box(Ii.types.mvex,Ii.trex(e))}static trex(e){let t=e.id,r=new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return Ii.box(Ii.types.trex,r)}static moof(e,t){return Ii.box(Ii.types.moof,Ii.mfhd(e.sequenceNumber),Ii.traf(e,t))}static mfhd(e){let t=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e]);return Ii.box(Ii.types.mfhd,t)}static traf(e,t){let r=e.id,i=Ii.box(Ii.types.tfhd,new Uint8Array([0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r])),s=Ii.box(Ii.types.tfdt,new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t])),a=Ii.sdtp(e),n=Ii.trun(e,a.byteLength+16+16+8+16+8+8);return Ii.box(Ii.types.traf,i,s,n,a)}static sdtp(e){let t=new Uint8Array(5),r=e.flags;return t[4]=r.isLeading<<6|r.dependsOn<<4|r.isDependedOn<<2|r.hasRedundancy,Ii.box(Ii.types.sdtp,t)}static trun(e,t){let r=new Uint8Array(28);t+=36,r.set([0,0,15,1,0,0,0,1,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0);let i=e.duration,s=e.size,a=e.flags,n=e.cts;return r.set([i>>>24&255,i>>>16&255,i>>>8&255,255&i,s>>>24&255,s>>>16&255,s>>>8&255,255&s,a.isLeading<<2|a.dependsOn,a.isDependedOn<<6|a.hasRedundancy<<4|a.isNonSync,0,0,n>>>24&255,n>>>16&255,n>>>8&255,255&n],12),Ii.box(Ii.types.trun,r)}static mdat(e){return Ii.box(Ii.types.mdat,e)}}Ii.init();const Pi=[44100,48e3,32e3,0],Fi=[22050,24e3,16e3,0],Li=[11025,12e3,8e3,0],Ri=[0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1],zi=[0,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],Mi=[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1];const Ni=3,Oi=4,Gi=6,$i=15,Hi=17,Vi=129,Wi=135,ji=21,qi=134,Yi=27,Ki=36;class Xi{constructor(){this.slices=[],this.total_length=0,this.expected_length=0,this.random_access_indicator=0}}class Zi{constructor(){this.pid=null,this.data=null,this.stream_type=null,this.random_access_indicator=null}}class Ji{constructor(){this.pid=null,this.stream_id=null,this.len=null,this.data=null,this.pts=null,this.nearest_pts=null,this.dts=null}}const Qi=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];class es{constructor(){this.mimeType=null,this.duration=null,this.hasAudio=null,this.hasVideo=null,this.audioCodec=null,this.videoCodec=null,this.audioDataRate=null,this.videoDataRate=null,this.audioSampleRate=null,this.audioChannelCount=null,this.width=null,this.height=null,this.fps=null,this.profile=null,this.level=null,this.refFrames=null,this.chromaFormat=null,this.sarNum=null,this.sarDen=null,this.metadata=null,this.segments=null,this.segmentCount=null,this.hasKeyframesIndex=null,this.keyframesIndex=null}isComplete(){let e=!1===this.hasAudio||!0===this.hasAudio&&null!=this.audioCodec&&null!=this.audioSampleRate&&null!=this.audioChannelCount,t=!1===this.hasVideo||!0===this.hasVideo&&null!=this.videoCodec&&null!=this.width&&null!=this.height&&null!=this.fps&&null!=this.profile&&null!=this.level&&null!=this.refFrames&&null!=this.chromaFormat&&null!=this.sarNum&&null!=this.sarDen;return null!=this.mimeType&&e&&t}isSeekable(){return!0===this.hasKeyframesIndex}getNearestKeyframe(e){if(null==this.keyframesIndex)return null;let t=this.keyframesIndex,r=this._search(t.times,e);return{index:r,milliseconds:t.times[r],fileposition:t.filepositions[r]}}_search(e,t){let r=0,i=e.length-1,s=0,a=0,n=i;for(t=e[s]&&t=6?(i=5,t=new Array(4),n=s-3):(i=2,t=new Array(2),n=s):-1!==o.indexOf("android")?(i=2,t=new Array(2),n=s):(i=5,n=s,t=new Array(4),s>=6?n=s-3:1===a&&(i=2,t=new Array(2),n=s)),t[0]=i<<3,t[0]|=(15&s)>>>1,t[1]=(15&s)<<7,t[1]|=(15&a)<<3,5===i&&(t[1]|=(15&n)>>>1,t[2]=(1&n)<<7,t[2]|=8,t[3]=0),this.config=t,this.sampling_rate=Qi[s],this.sampling_index=s,this.channel_count=a,this.object_type=i,this.original_object_type=r,this.codec_mimetype="mp4a.40."+i,this.original_codec_mimetype="mp4a.40."+r}}function rs(e={},t=!1){let r=[],i=[],s={},a=new AbortController,n=null,o=null,d=null,l=null,y=null,v=null,fe=!1,pe=!1,ze=!!er(t),He=!1,_t=null,gt=null,vt=null,Dt=[],It=null,Rt=null,zt=0,jt=0,rr=null,ir=null,sr=0,ar=0,nr=!1,or=!1,cr=!1,wr=null,Sr=null,xr=null,Fr=!1,Lr=()=>{const e=Jt();return{debug:e.debug,debugLevel:e.debugLevel,debugUuid:e.debugUuid,useOffscreen:e.useOffscreen,useWCS:e.useWCS,useMSE:e.useMSE,videoBuffer:e.videoBuffer,videoBufferDelay:e.videoBufferDelay,openWebglAlignment:e.openWebglAlignment,playType:e.playType,hasAudio:e.hasAudio,hasVideo:e.hasVideo,playbackRate:1,playbackForwardMaxRateDecodeIFrame:e.playbackForwardMaxRateDecodeIFrame,playbackIsCacheBeforeDecodeForFpsRender:e.playbackConfig.isCacheBeforeDecodeForFpsRender,sampleRate:0,networkDelay:e.networkDelay,visibility:!0,useSIMD:!1,isRecording:!1,recordType:e.recordType,isNakedFlow:e.isNakedFlow,checkFirstIFrame:e.checkFirstIFrame,audioBufferSize:1024,isM7sCrypto:e.isM7sCrypto,m7sCryptoAudio:e.m7sCryptoAudio,cryptoKey:e.cryptoKey,cryptoIV:e.cryptoIV,isSm4Crypto:e.isSm4Crypto,sm4CryptoKey:e.sm4CryptoKey,isXorCrypto:e.isXorCrypto,isHls265:!1,isFlv:e.isFlv,isFmp4:e.isFmp4,isMpeg4:e.isMpeg4,isTs:e.isTs,isFmp4Private:e.isFmp4Private,isEmitSEI:e.isEmitSEI,isRecordTypeFlv:!1,isWasmMp4:!0,isChrome:!1,isDropSameTimestampGop:e.isDropSameTimestampGop,mseDecodeAudio:e.mseDecodeAudio,nakedFlowH265DemuxUseNew:e.nakedFlowH265DemuxUseNew,mseDecoderUseWorker:e.mseDecoderUseWorker,mseAutoCleanupSourceBuffer:e.mseAutoCleanupSourceBuffer,mseAutoCleanupMaxBackwardDuration:e.mseAutoCleanupMaxBackwardDuration,mseAutoCleanupMinBackwardDuration:e.mseAutoCleanupMinBackwardDuration,mseCorrectTimeDuration:e.mseCorrectTimeDuration,mseCorrectAudioTimeDuration:e.mseCorrectAudioTimeDuration}};"VideoEncoder"in self&&(s={hasInit:!1,isEmitInfo:!1,offscreenCanvas:null,offscreenCanvasCtx:null,decoder:new VideoDecoder({output:function(e){if(s.isEmitInfo||($r.debug.log("worker","Webcodecs Video Decoder initSize"),postMessage({cmd:S,w:e.codedWidth,h:e.codedHeight}),s.isEmitInfo=!0,s.offscreenCanvas=new OffscreenCanvas(e.codedWidth,e.codedHeight),s.offscreenCanvasCtx=s.offscreenCanvas.getContext("2d")),Kt(e.createImageBitmap))e.createImageBitmap().then((t=>{s.offscreenCanvasCtx.drawImage(t,0,0,e.codedWidth,e.codedHeight);let r=s.offscreenCanvas.transferToImageBitmap();postMessage({cmd:E,buffer:r,delay:$r.delay,ts:0},[r]),Xt(e)}));else{s.offscreenCanvasCtx.drawImage(e,0,0,e.codedWidth,e.codedHeight);let t=s.offscreenCanvas.transferToImageBitmap();postMessage({cmd:E,buffer:t,delay:$r.delay,ts:0},[t]),Xt(e)}},error:function(e){$r.debug.error("worker","VideoDecoder error",e)}}),decode:function(e,t,r){const i=e[0]>>4==1;if(s.hasInit){const r=new EncodedVideoChunk({data:e.slice(5),timestamp:t,type:i?rt:it});s.decoder.decode(r)}else if(i&&0===e[1]){const t=15&e[0];postMessage({cmd:C,code:t});const r=new Uint8Array(e);postMessage({cmd:k,buffer:r,codecId:t},[r.buffer]);let i=null,a=null;const n=e.slice(5);t===xe?(a=hr(n),i={codec:a.codec,description:n}):t===Be&&(a=Ar(n),i={codec:a.codec,description:n}),a&&a.codecWidth&&a.codecHeight&&(i.codedHeight=a.codecHeight,i.codedWidth=a.codecWidth);try{s.decoder.configure(i),s.hasInit=!0}catch(e){$r.debug.log("worker","VideoDecoder configure error",e.code,e)}}},reset(){s.hasInit=!1,s.isEmitInfo=!1,s.offscreenCanvas=null,s.offscreenCanvasCtx=null}});let Rr=function(){if(Fr=!0,$r.fetchStatus!==Et||tr($r._opt.isChrome)){if(a)try{a.abort(),a=null}catch(e){$r.debug.log("worker","abort catch",e)}}else a=null,$r.debug.log("worker",`abort() and not abortController.abort() _status is ${$r.fetchStatus} and _isChrome is ${$r._opt.isChrome}`)},zr={init(){zr.lastBuf=null,zr.vps=null,zr.sps=null,zr.pps=null,zr.streamType=null,zr.localDts=0,zr.isSendSeqHeader=!1},destroy(){zr.lastBuf=null,zr.vps=null,zr.sps=null,zr.pps=null,zr.streamType=null,zr.localDts=0,zr.isSendSeqHeader=!1},dispatch(e){const t=new Uint8Array(e);zr.extractNALu$2(t)},getNaluDts(){let e=zr.localDts;return zr.localDts=zr.localDts+40,e},getNaluAudioDts(){const e=$r._opt.sampleRate,t=$r._opt.audioBufferSize;return zr.localDts+parseInt(t/e*1e3)},extractNALu(e){let t,r,i=0,s=e.byteLength,a=0,n=[];for(;i1)for(let e=0;e>1,r!==qe&&r!==Ke&&r!==Ze||(t=ke)),t}(e),wr=zr.streamType===ke),zr.streamType===Ce){const t=zr.handleAddNaluStartCode(e),r=zr.extractNALu(t);if(0===r.length)return void $r.debug.warn("worker","handleVideoNalu","h264 naluList.length === 0");const i=[];if(r.forEach((e=>{const t=mr(e);t===Re||t===Le?zr.handleVideoH264Nalu(e):gr(t)&&i.push(e)})),1===i.length)zr.handleVideoH264Nalu(i[0]);else{const e=function(e){if(0===e.length)return!1;const t=mr(e[0]);for(let r=1;r{zr.handleVideoH264Nalu(e)}))}}else if(zr.streamType===ke)if($r._opt.nakedFlowH265DemuxUseNew){const t=zr.handleAddNaluStartCode(e),r=zr.extractNALu(t);if(0===r.length)return void $r.debug.warn("worker","handleVideoNalu","h265 naluList.length === 0");const i=[];if(r.forEach((e=>{const t=Cr(e);t===Ze||t===Ke||t===qe?zr.handleVideoH265Nalu(e):kr(t)&&i.push(e)})),1===i.length)zr.handleVideoH265Nalu(i[0]);else{const e=function(e){if(0===e.length)return!1;const t=Cr(e[0]);for(let r=1;r{zr.handleVideoH265Nalu(e)}))}}else{Cr(e)===Ze?zr.extractH265PPS(e):zr.handleVideoH265Nalu(e)}},extractH264PPS(e){const t=zr.handleAddNaluStartCode(e);zr.extractNALu(t).forEach((e=>{_r(mr(e))?zr.extractH264SEI(e):zr.handleVideoH264Nalu(e)}))},extractH265PPS(e){const t=zr.handleAddNaluStartCode(e);zr.extractNALu(t).forEach((e=>{const t=Cr(e);t===Qe?zr.extractH265SEI(e):zr.handleVideoH265Nalu(e)}))},extractH264SEI(e){const t=zr.handleAddNaluStartCode(e);zr.extractNALu(t).forEach((e=>{zr.handleVideoH264Nalu(e)}))},extractH265SEI(e){const t=zr.handleAddNaluStartCode(e);zr.extractNALu(t).forEach((e=>{zr.handleVideoH265Nalu(e)}))},handleAddNaluStartCode(e){const t=[0,0,0,1],r=new Uint8Array(e.length+t.length);return r.set(t),r.set(e,t.length),r},handleVideoH264Nalu(e){const t=mr(e);switch(t){case Le:zr.sps=e;break;case Re:zr.pps=e}if(zr.isSendSeqHeader){if(zr.sps&&zr.pps){const e=fr({sps:zr.sps,pps:zr.pps}),t=zr.getNaluDts();$r.decode(e,{type:Q,ts:t,isIFrame:!0,cts:0}),zr.sps=null,zr.pps=null}if(gr(t)){const r=yr(t),i=zr.getNaluDts(),s=function(e,t){let r=[];r[0]=t?23:39,r[1]=1,r[2]=0,r[3]=0,r[4]=0,r[5]=e.byteLength>>24&255,r[6]=e.byteLength>>16&255,r[7]=e.byteLength>>8&255,r[8]=255&e.byteLength;const i=new Uint8Array(r.length+e.byteLength);return i.set(r,0),i.set(e,r.length),i}(e,r);zr.doDecode(s,{type:Q,ts:i,isIFrame:r,cts:0})}else $r.debug.warn("work",`handleVideoH264Nalu Avc Seq Head is ${t}`)}else if(zr.sps&&zr.pps){zr.isSendSeqHeader=!0;const e=fr({sps:zr.sps,pps:zr.pps});$r.decode(e,{type:Q,ts:0,isIFrame:!0,cts:0}),zr.sps=null,zr.pps=null}},handleVideoH264NaluList(e,t,r){if(zr.isSendSeqHeader){const i=zr.getNaluDts(),s=pr(e.reduce(((e,t)=>{const r=Ht(e),i=Ht(t),s=new Uint8Array(r.byteLength+i.byteLength);return s.set(r,0),s.set(i,r.byteLength),s})),t);zr.doDecode(s,{type:Q,ts:i,isIFrame:t,cts:0}),$r.debug.log("worker",`handleVideoH264NaluList list size is ${e.length} package length is ${s.byteLength} isIFrame is ${t},nalu type is ${r}, dts is ${i}`)}else $r.debug.warn("worker","handleVideoH264NaluList isSendSeqHeader is false")},handleVideoH265Nalu(e){const t=Cr(e);switch(t){case qe:zr.vps=e;break;case Ke:zr.sps=e;break;case Ze:zr.pps=e}if(zr.isSendSeqHeader){if(zr.vps&&zr.sps&&zr.pps){const e=Br({vps:zr.vps,sps:zr.sps,pps:zr.pps}),t=zr.getNaluDts();$r.decode(e,{type:Q,ts:t,isIFrame:!0,cts:0}),zr.vps=null,zr.sps=null,zr.pps=null}if(kr(t)){const r=Dr(t),i=zr.getNaluDts(),s=function(e,t){let r=[];r[0]=t?28:44,r[1]=1,r[2]=0,r[3]=0,r[4]=0,r[5]=e.byteLength>>24&255,r[6]=e.byteLength>>16&255,r[7]=e.byteLength>>8&255,r[8]=255&e.byteLength;const i=new Uint8Array(r.length+e.byteLength);return i.set(r,0),i.set(e,r.length),i}(e,r);zr.doDecode(s,{type:Q,ts:i,isIFrame:r,cts:0})}else $r.debug.warn("work",`handleVideoH265Nalu HevcSeqHead is ${t}`)}else if(zr.vps&&zr.sps&&zr.pps){zr.isSendSeqHeader=!0;const e=Br({vps:zr.vps,sps:zr.sps,pps:zr.pps});$r.decode(e,{type:Q,ts:0,isIFrame:!0,cts:0}),zr.vps=null,zr.sps=null,zr.pps=null}},handleVideoH265NaluList(e,t,r){if(zr.isSendSeqHeader){const i=zr.getNaluDts(),s=Tr(e.reduce(((e,t)=>{const r=Ht(e),i=Ht(t),s=new Uint8Array(r.byteLength+i.byteLength);return s.set(r,0),s.set(i,r.byteLength),s})),t);zr.doDecode(s,{type:Q,ts:i,isIFrame:t,cts:0}),$r.debug.log("worker",`handleVideoH265NaluList list size is ${e.length} package length is ${s.byteLength} isIFrame is ${t},nalu type is ${r}, dts is ${i}`)}else $r.debug.warn("worker","handleVideoH265NaluList isSendSeqHeader is false")},doDecode(e,t){$r.calcNetworkDelay(t.ts),t.isIFrame&&$r.calcIframeIntervalTimestamp(t.ts),$r.decode(e,t)}},Mr={LOG_NAME:"worker fmp4Demuxer",mp4Box:fi.createFile(),offset:0,videoTrackId:null,audioTrackId:null,isHevc:!1,listenMp4Box(){Mr.mp4Box.onReady=Mr.onReady,Mr.mp4Box.onError=Mr.onError,Mr.mp4Box.onSamples=Mr.onSamples},initTransportDescarmber(){Mr.transportDescarmber=new _i},_getSeqHeader(e){const t=Mr.mp4Box.getTrackById(e.id);for(const e of t.mdia.minf.stbl.stsd.entries)if(e.avcC||e.hvcC){const t=new fi.DataStream(void 0,0,fi.DataStream.BIG_ENDIAN);let r=[];e.avcC?(e.avcC.write(t),r=[23,0,0,0,0]):(Mr.isHevc=!0,wr=!0,e.hvcC.write(t),r=[28,0,0,0,0]);const i=new Uint8Array(t.buffer,8),s=new Uint8Array(r.length+i.length);return s.set(r,0),s.set(i,r.length),s}return null},onReady(e){$r.debug.log(Mr.LOG_NAME,"onReady()");const t=e.videoTracks[0],r=e.audioTracks[0];if(t){Mr.videoTrackId=t.id;const e=Mr._getSeqHeader(t);e&&($r.debug.log(Mr.LOG_NAME,"seqHeader"),$r.decodeVideo(e,0,!0,0)),Mr.mp4Box.setExtractionOptions(t.id)}if(r&&$r._opt.hasAudio){Mr.audioTrackId=r.id;const e=r.audio||{},t=Mt.indexOf(e.sample_rate),i=r.codec.replace("mp4a.40.","");Mr.mp4Box.setExtractionOptions(r.id);const s=Pt({profile:parseInt(i,10),sampleRate:t,channel:e.channel_count});$r.debug.log(Mr.LOG_NAME,"aacADTSHeader"),$r.decodeAudio(s,0)}Mr.mp4Box.start()},onError(e){$r.debug.error(Mr.LOG_NAME,"mp4Box onError",e)},onSamples(e,t,r){if(e===Mr.videoTrackId)for(const t of r){const r=t.data,i=t.is_sync,s=1e3*t.cts/t.timescale;t.duration,t.timescale,i&&$r.calcIframeIntervalTimestamp(s);let a=null;a=Mr.isHevc?Tr(r,i):pr(r,i),$r.decode(a,{type:Q,ts:s,isIFrame:i,cts:0}),Mr.mp4Box.releaseUsedSamples(e,t.number)}else if(e===Mr.audioTrackId){if($r._opt.hasAudio)for(const t of r){const r=t.data,i=1e3*t.cts/t.timescale;t.duration,t.timescale;const s=new Uint8Array(r.byteLength+2);s.set([175,1],0),s.set(r,2),$r.decode(s,{type:J,ts:i,isIFrame:!1,cts:0}),Mr.mp4Box.releaseUsedSamples(e,t.number)}}else $r.debug.warn(Mr.LOG_NAME,"onSamples() trackId error",e)},dispatch(e){let t=e;"string"!=typeof e?"object"==typeof e?(Mr.transportDescarmber&&(t=Mr.transportDescarmber.transport(t)),t.buffer.fileStart=Mr.offset,Mr.offset+=t.byteLength,Mr.mp4Box.appendBuffer(t.buffer)):$r.debug.warn(Mr.LOG_NAME,"dispatch()","data is not object",e):$r.debug.warn(Mr.LOG_NAME,"dispatch()","data is string",e)},destroy(){Mr.mp4Box&&(Mr.mp4Box.flush(),Mr.mp4Box=null),Mr.transportDescarmber&&(Mr.transportDescarmber.destroy(),Mr.transportDescarmber=null),Mr.offset=0,Mr.videoTrackId=null,Mr.audioTrackId=null,Mr.isHevc=!1}},Nr={LOG_NAME:"worker mpeg4Demuxer",lastBuffer:new Uint8Array(0),parsedOffset:0,firstStartCodeOffset:0,secondStartCodeOffset:0,state:"init",hasInitVideoCodec:!1,localDts:0,dispatch(e){const t=new Uint8Array(e);Nr.extractNALu(t)},destroy(){Nr.lastBuffer=new Uint8Array(0),Nr.parsedOffset=0,Nr.firstStartCodeOffset=0,Nr.secondStartCodeOffset=0,Nr.state="init",Nr.hasInitVideoCodec=!1,Nr.localDts=0},extractNALu(e){if(!e||e.byteLength<1)return void $r.debug.warn(Nr.LOG_NAME,"extractNALu() buffer error",e);const t=new Uint8Array(Nr.lastBuffer.length+e.length);for(t.set(Nr.lastBuffer,0),t.set(new Uint8Array(e),Nr.lastBuffer.length),Nr.lastBuffer=t;;){if("init"===Nr.state){let e=!1;for(;Nr.lastBuffer.length-Nr.parsedOffset>=4;)if(0===Nr.lastBuffer[Nr.parsedOffset])if(0===Nr.lastBuffer[Nr.parsedOffset+1])if(1===Nr.lastBuffer[Nr.parsedOffset+2]){if(182===Nr.lastBuffer[Nr.parsedOffset+3]){Nr.state="findFirstStartCode",Nr.firstStartCodeOffset=Nr.parsedOffset,Nr.parsedOffset+=4,e=!0;break}Nr.parsedOffset++}else Nr.parsedOffset++;else Nr.parsedOffset++;else Nr.parsedOffset++;if(e)continue;break}if("findFirstStartCode"===Nr.state){let e=!1;for(;Nr.lastBuffer.length-Nr.parsedOffset>=4;)if(0===Nr.lastBuffer[Nr.parsedOffset])if(0===Nr.lastBuffer[Nr.parsedOffset+1])if(1===Nr.lastBuffer[Nr.parsedOffset+2]){if(182===Nr.lastBuffer[Nr.parsedOffset+3]){Nr.state="findSecondStartCode",Nr.secondStartCodeOffset=Nr.parsedOffset,Nr.parsedOffset+=4,e=!0;break}Nr.parsedOffset++}else Nr.parsedOffset++;else Nr.parsedOffset++;else Nr.parsedOffset++;if(e)continue;break}if("findSecondStartCode"===Nr.state){if(!(Nr.lastBuffer.length-Nr.parsedOffset>0))break;{let e,t,r=192&Nr.lastBuffer[Nr.parsedOffset];e=0==r?Nr.secondStartCodeOffset-14:Nr.secondStartCodeOffset;let i=0==(192&Nr.lastBuffer[Nr.firstStartCodeOffset+4]);if(i){if(Nr.firstStartCodeOffset-14<0)return void $r.debug.warn(Nr.LOG_NAME,"firstStartCodeOffset -14 is",Nr.firstStartCodeOffset-14);Nr.hasInitVideoCodec||(Nr.hasInitVideoCodec=!0,$r.debug.log(Nr.LOG_NAME,"setCodec"),Vr.setCodec(Te,"")),t=Nr.lastBuffer.subarray(Nr.firstStartCodeOffset-14,e)}else t=Nr.lastBuffer.subarray(Nr.firstStartCodeOffset,e);let s=Nr.getNaluDts();Nr.hasInitVideoCodec?(postMessage({cmd:F,type:ye,value:t.byteLength}),postMessage({cmd:F,type:be,value:s}),Vr.decode(t,i?1:0,s)):$r.debug.warn(Nr.LOG_NAME,"has not init video codec"),Nr.lastBuffer=Nr.lastBuffer.subarray(e),Nr.firstStartCodeOffset=0==r?14:0,Nr.parsedOffset=Nr.firstStartCodeOffset+4,Nr.state="findFirstStartCode"}}}},getNaluDts(){let e=Nr.localDts;return Nr.localDts=Nr.localDts+40,e}},Or={TAG:"worker TsLoader",first_parse_:!0,tsPacketSize:0,syncOffset:0,pmt_:null,config_:null,media_info_:new es,timescale_:90,duration_:0,pat_:{version_number:0,network_pid:0,program_map_pid:{}},current_program_:null,current_pmt_pid_:-1,program_pmt_map_:{},pes_slice_queues_:{},section_slice_queues_:{},video_metadata_:{vps:null,sps:null,pps:null,details:null},audio_metadata_:{codec:null,audio_object_type:null,sampling_freq_index:null,sampling_frequency:null,channel_config:null},last_pcr_:null,audio_last_sample_pts_:void 0,aac_last_incomplete_data_:null,has_video_:!1,has_audio_:!1,video_init_segment_dispatched_:!1,audio_init_segment_dispatched_:!1,video_metadata_changed_:!1,audio_metadata_changed_:!1,loas_previous_frame:null,video_track_:{type:"video",id:1,sequenceNumber:0,samples:[],length:0},audio_track_:{type:"audio",id:2,sequenceNumber:0,samples:[],length:0},_remainingPacketData:null,init(){},destroy(){Or.media_info_=null,Or.pes_slice_queues_=null,Or.section_slice_queues_=null,Or.video_metadata_=null,Or.audio_metadata_=null,Or.aac_last_incomplete_data_=null,Or.video_track_=null,Or.audio_track_=null,Or._remainingPacketData=null},probe(e){let t=new Uint8Array(e),r=-1,i=188;if(t.byteLength<=3*i)return{needMoreData:!0};for(;-1===r;){let e=Math.min(1e3,t.byteLength-3*i);for(let s=0;s=4&&(r-=4),{match:!0,consumed:0,ts_packet_size:i,sync_offset:r})},_initPmt:()=>({program_number:0,version_number:0,pcr_pid:0,pid_stream_type:{},common_pids:{h264:void 0,h265:void 0,adts_aac:void 0,loas_aac:void 0,opus:void 0,ac3:void 0,eac3:void 0,mp3:void 0},pes_private_data_pids:{},timed_id3_pids:{},synchronous_klv_pids:{},asynchronous_klv_pids:{},scte_35_pids:{},smpte2038_pids:{}}),dispatch(e){Or._remainingPacketData&&(e=function(...e){if((e=e.filter(Boolean)).length<2)return e[0];const t=new Uint8Array(e.reduce(((e,t)=>e+t.byteLength),0));let r=0;return e.forEach((e=>{t.set(e,r),r+=e.byteLength})),t}(Or._remainingPacketData,e),Or._remainingPacketData=null);let t=e.buffer;const r=Or.parseChunks(t);r?Or._remainingPacketData=e.subarray(r):e.length>>6;r[1];let a=(31&r[1])<<8|r[2],n=(48&r[3])>>>4,o=15&r[3],d=!(!Or.pmt_||Or.pmt_.pcr_pid!==a),l={},u=4;if(2==n||3==n){let e=r[4];if(e>0&&(d||3==n)){if(l.discontinuity_indicator=(128&r[5])>>>7,l.random_access_indicator=(64&r[5])>>>6,l.elementary_stream_priority_indicator=(32&r[5])>>>5,(16&r[5])>>>4){let e=300*(r[6]<<25|r[7]<<17|r[8]<<9|r[9]<<1|r[10]>>>7)+((1&r[10])<<8|r[11]);Or.last_pcr_=e}}if(2==n||5+e===188){t+=188,204===Or.tsPacketSize&&(t+=16);continue}u=5+e}if(1==n||3==n)if(0===a||a===Or.current_pmt_pid_||null!=Or.pmt_&&Or.pmt_.pid_stream_type[a]===qi){let r=188-u;Or.handleSectionSlice(e,t+u,r,{pid:a,payload_unit_start_indicator:s,continuity_conunter:o,random_access_indicator:l.random_access_indicator})}else if(null!=Or.pmt_&&null!=Or.pmt_.pid_stream_type[a]){let r=188-u,i=Or.pmt_.pid_stream_type[a];a!==Or.pmt_.common_pids.h264&&a!==Or.pmt_.common_pids.h265&&a!==Or.pmt_.common_pids.adts_aac&&a!==Or.pmt_.common_pids.loas_aac&&a!==Or.pmt_.common_pids.ac3&&a!==Or.pmt_.common_pids.eac3&&a!==Or.pmt_.common_pids.opus&&a!==Or.pmt_.common_pids.mp3&&!0!==Or.pmt_.pes_private_data_pids[a]&&!0!==Or.pmt_.timed_id3_pids[a]&&!0!==Or.pmt_.synchronous_klv_pids[a]&&!0!==Or.pmt_.asynchronous_klv_pids[a]||Or.handlePESSlice(e,t+u,r,{pid:a,stream_type:i,payload_unit_start_indicator:s,continuity_conunter:o,random_access_indicator:l.random_access_indicator})}t+=188,204===Or.tsPacketSize&&(t+=16)}return Or.dispatchAudioVideoMediaSegment(),t},handleSectionSlice(e,t,r,i){let s=new Uint8Array(e,t,r),a=Or.section_slice_queues_[i.pid];if(i.payload_unit_start_indicator){let n=s[0];if(null!=a&&0!==a.total_length){let s=new Uint8Array(e,t+1,Math.min(r,n));a.slices.push(s),a.total_length+=s.byteLength,a.total_length===a.expected_length?Or.emitSectionSlices(a,i):Or.clearSlices(a,i)}for(let o=1+n;o=a.expected_length&&Or.clearSlices(a,i),o+=d.byteLength}}else if(null!=a&&0!==a.total_length){let s=new Uint8Array(e,t,Math.min(r,a.expected_length-a.total_length));a.slices.push(s),a.total_length+=s.byteLength,a.total_length===a.expected_length?Or.emitSectionSlices(a,i):a.total_length>=a.expected_length&&Or.clearSlices(a,i)}},handlePESSlice(e,t,r,i){let s=new Uint8Array(e,t,r),a=s[0]<<16|s[1]<<8|s[2];s[3];let n=s[4]<<8|s[5];if(i.payload_unit_start_indicator){if(1!==a)return void $r.debug.warn(Or.TAG,`handlePESSlice: packet_start_code_prefix should be 1 but with value ${a}`);let e=Or.pes_slice_queues_[i.pid];e&&(0===e.expected_length||e.expected_length===e.total_length?Or.emitPESSlices(e,i):Or.clearSlices(e,i)),Or.pes_slice_queues_[i.pid]=new Xi,Or.pes_slice_queues_[i.pid].random_access_indicator=i.random_access_indicator}if(null==Or.pes_slice_queues_[i.pid])return;let o=Or.pes_slice_queues_[i.pid];o.slices.push(s),i.payload_unit_start_indicator&&(o.expected_length=0===n?0:n+6),o.total_length+=s.byteLength,o.expected_length>0&&o.expected_length===o.total_length?Or.emitPESSlices(o,i):o.expected_length>0&&o.expected_length>>6,o=t[8];2!==n&&3!==n||(r=536870912*(14&t[9])+4194304*(255&t[10])+16384*(254&t[11])+128*(255&t[12])+(254&t[13])/2,a=3===n?536870912*(14&t[14])+4194304*(255&t[15])+16384*(254&t[16])+128*(255&t[17])+(254&t[18])/2:r);let d,l=9+o;if(0!==s){if(s<3+o)return void $r.debug.warn(Or.TAG,"Malformed PES: PES_packet_length < 3 + PES_header_data_length");d=s-3-o}else d=t.byteLength-l;let u=t.subarray(l,l+d);switch(e.stream_type){case Ni:case Oi:Or.parseMP3Payload(u,r);break;case Gi:Or.pmt_.common_pids.opus===e.pid||Or.pmt_.common_pids.ac3===e.pid||Or.pmt_.common_pids.eac3===e.pid||(Or.pmt_.asynchronous_klv_pids[e.pid]?Or.parseAsynchronousKLVMetadataPayload(u,e.pid,i):Or.pmt_.smpte2038_pids[e.pid]?Or.parseSMPTE2038MetadataPayload(u,r,a,e.pid,i):Or.parsePESPrivateDataPayload(u,r,a,e.pid,i));break;case $i:Or.parseADTSAACPayload(u,r);break;case Hi:Or.parseLOASAACPayload(u,r);break;case Vi:case Wi:break;case ji:Or.pmt_.timed_id3_pids[e.pid]?Or.parseTimedID3MetadataPayload(u,r,a,e.pid,i):Or.pmt_.synchronous_klv_pids[e.pid]&&Or.parseSynchronousKLVMetadataPayload(u,r,a,e.pid,i);break;case Yi:Or.parseH264Payload(u,r,a,e.random_access_indicator);break;case Ki:Or.parseH265Payload(u,r,a,e.random_access_indicator)}}else if((188===i||191===i||240===i||241===i||255===i||242===i||248===i)&&e.stream_type===Gi){let r,a=6;r=0!==s?s:t.byteLength-a;let n=t.subarray(a,a+r);Or.parsePESPrivateDataPayload(n,void 0,void 0,e.pid,i)}}else $r.debug.error(Or.TAG,`parsePES: packet_start_code_prefix should be 1 but with value ${r}`)},parsePAT(e){let t=e[0];if(0!==t)return void Log.e(Or.TAG,`parsePAT: table_id ${t} is not corresponded to PAT!`);let r=(15&e[1])<<8|e[2];e[3],e[4];let i=(62&e[5])>>>1,s=1&e[5],a=e[6];e[7];let n=null;if(1===s&&0===a)n={version_number:0,network_pid:0,program_pmt_pid:{}},n.version_number=i;else if(n=Or.pat_,null==n)return;let o=r-5-4,d=-1,l=-1;for(let t=8;t<8+o;t+=4){let r=e[t]<<8|e[t+1],i=(31&e[t+2])<<8|e[t+3];0===r?n.network_pid=i:(n.program_pmt_pid[r]=i,-1===d&&(d=r),-1===l&&(l=i))}1===s&&0===a&&(null==Or.pat_&&$r.debug.log(Or.TAG,`Parsed first PAT: ${JSON.stringify(n)}`),Or.pat_=n,Or.current_program_=d,Or.current_pmt_pid_=l)},parsePMT(e){let t=e[0];if(2!==t)return void $r.debug.error(Or.TAG,`parsePMT: table_id ${t} is not corresponded to PMT!`);let r,i=(15&e[1])<<8|e[2],s=e[3]<<8|e[4],a=(62&e[5])>>>1,n=1&e[5],o=e[6];if(e[7],1===n&&0===o)r=Or._initPmt(),r.program_number=s,r.version_number=a,Or.program_pmt_map_[s]=r;else if(r=Or.program_pmt_map_[s],null==r)return;r.pcr_pid=(31&e[8])<<8|e[9];let d=(15&e[10])<<8|e[11],l=12+d,u=i-9-d-4;for(let t=l;t0){for(let i=t+5;i0)for(let i=t+5;iOr.has_video_&&Or.has_audio_?Or.video_init_segment_dispatched_&&Or.audio_init_segment_dispatched_:Or.has_video_&&!Or.has_audio_?Or.video_init_segment_dispatched_:!(Or.has_video_||!Or.has_audio_)&&Or.audio_init_segment_dispatched_,dispatchVideoInitSegment(){let e=Or.video_metadata_.details,t={type:"video"};t.id=Or.video_track_.id,t.timescale=1e3,t.duration=Or.duration_,t.codecWidth=e.codec_size.width,t.codecHeight=e.codec_size.height,t.presentWidth=e.present_size.width,t.presentHeight=e.present_size.height,t.profile=e.profile_string,t.level=e.level_string,t.bitDepth=e.bit_depth,t.chromaFormat=e.chroma_format,t.sarRatio=e.sar_ratio,t.frameRate=e.frame_rate;let r=t.frameRate.fps_den,i=t.frameRate.fps_num;if(t.refSampleDuration=r/i*1e3,t.codec=e.codec_mimetype,Or.video_metadata_.vps){let e=Or.video_metadata_.vps.data.subarray(4),r=Or.video_metadata_.sps.data.subarray(4),i=Or.video_metadata_.pps.data.subarray(4);t.hvcc=Br({vps:e,sps:r,pps:i}),0==Or.video_init_segment_dispatched_&&$r.debug.log(Or.TAG,`Generated first HEVCDecoderConfigurationRecord for mimeType: ${t.codec}`),t.hvcc&&$r.decodeVideo(t.hvcc,0,!0,0)}else{let e=Or.video_metadata_.sps.data.subarray(4),r=Or.video_metadata_.pps.data.subarray(4);t.avcc=function({sps:e,pps:t}){let r=8+e.byteLength+1+2+t.byteLength,i=!1;const s=ur.parseSPS$2(e);66!==e[3]&&77!==e[3]&&88!==e[3]&&(i=!0,r+=4);let a=new Uint8Array(r);a[0]=1,a[1]=e[1],a[2]=e[2],a[3]=e[3],a[4]=255,a[5]=225;let n=e.byteLength;a[6]=n>>>8,a[7]=255&n;let o=8;a.set(e,8),o+=n,a[o]=1;let d=t.byteLength;a[o+1]=d>>>8,a[o+2]=255&d,a.set(t,o+3),o+=3+d,i&&(a[o]=252|s.chroma_format_idc,a[o+1]=248|s.bit_depth_luma-8,a[o+2]=248|s.bit_depth_chroma-8,a[o+3]=0,o+=4);const l=[23,0,0,0,0],u=new Uint8Array(l.length+a.byteLength);return u.set(l,0),u.set(a,l.length),u}({sps:e,pps:r}),0==Or.video_init_segment_dispatched_&&$r.debug.log(Or.TAG,`Generated first AVCDecoderConfigurationRecord for mimeType: ${t.codec}`),t.avcc&&$r.decodeVideo(t.avcc,0,!0,0)}Or.video_init_segment_dispatched_=!0,Or.video_metadata_changed_=!1;let s=Or.media_info_;s.hasVideo=!0,s.width=t.codecWidth,s.height=t.codecHeight,s.fps=t.frameRate.fps,s.profile=t.profile,s.level=t.level,s.refFrames=e.ref_frames,s.chromaFormat=e.chroma_format_string,s.sarNum=t.sarRatio.width,s.sarDen=t.sarRatio.height,s.videoCodec=t.codec,s.hasAudio&&s.audioCodec?s.mimeType=`video/mp2t; codecs="${s.videoCodec},${s.audioCodec}"`:s.mimeType=`video/mp2t; codecs="${s.videoCodec}"`},dispatchVideoMediaSegment(){Or.isInitSegmentDispatched()&&Or.video_track_.length&&Or._preDoDecode()},dispatchAudioMediaSegment(){Or.isInitSegmentDispatched()&&Or.audio_track_.length&&Or._preDoDecode()},dispatchAudioVideoMediaSegment(){Or.isInitSegmentDispatched()&&(Or.audio_track_.length||Or.video_track_.length)&&Or._preDoDecode()},parseADTSAACPayload(e,t){if(Or.has_video_&&!Or.video_init_segment_dispatched_)return;if(Or.aac_last_incomplete_data_){let t=new Uint8Array(e.byteLength+Or.aac_last_incomplete_data_.byteLength);t.set(Or.aac_last_incomplete_data_,0),t.set(e,Or.aac_last_incomplete_data_.byteLength),e=t}let r,i;if(null!=t&&(i=t/Or.timescale_),"aac"===Or.audio_metadata_.codec){if(null==t&&null!=Or.audio_last_sample_pts_)r=1024/Or.audio_metadata_.sampling_frequency*1e3,i=Or.audio_last_sample_pts_+r;else if(null==t)return void $r.debug.warn(Or.TAG,"AAC: Unknown pts");if(Or.aac_last_incomplete_data_&&Or.audio_last_sample_pts_){r=1024/Or.audio_metadata_.sampling_frequency*1e3;let e=Or.audio_last_sample_pts_+r;Math.abs(e-i)>1&&($r.debug.warn(Or.TAG,`AAC: Detected pts overlapped, expected: ${e}ms, PES pts: ${i}ms`),i=e)}}let s,a=new Ot(e),n=null,o=i;for(;null!=(n=a.readNextAACFrame());){r=1024/n.sampling_frequency*1e3;const e={codec:"aac",data:n};0==Or.audio_init_segment_dispatched_?(Or.audio_metadata_={codec:"aac",audio_object_type:n.audio_object_type,sampling_freq_index:n.sampling_freq_index,sampling_frequency:n.sampling_frequency,channel_config:n.channel_config},Or.dispatchAudioInitSegment(e)):Or.detectAudioMetadataChange(e)&&(Or.dispatchAudioMediaSegment(),Or.dispatchAudioInitSegment(e)),s=o;let t=Math.floor(o);const i=new Uint8Array(n.data.length+2);i.set([175,1],0),i.set(n.data,2);let a={payload:i,length:i.byteLength,pts:t,dts:t,type:J};Or.audio_track_.samples.push(a),Or.audio_track_.length+=i.byteLength,o+=r}a.hasIncompleteData()&&(Or.aac_last_incomplete_data_=a.getIncompleteData()),s&&(Or.audio_last_sample_pts_=s)},parseLOASAACPayload(e,t){if(Or.has_video_&&!Or.video_init_segment_dispatched_)return;if(Or.aac_last_incomplete_data_){let t=new Uint8Array(e.byteLength+Or.aac_last_incomplete_data_.byteLength);t.set(Or.aac_last_incomplete_data_,0),t.set(e,Or.aac_last_incomplete_data_.byteLength),e=t}let r,i;if(null!=t&&(i=t/Or.timescale_),"aac"===Or.audio_metadata_.codec){if(null==t&&null!=Or.audio_last_sample_pts_)r=1024/Or.audio_metadata_.sampling_frequency*1e3,i=Or.audio_last_sample_pts_+r;else if(null==t)return void $r.debug.warn(Or.TAG,"AAC: Unknown pts");if(Or.aac_last_incomplete_data_&&Or.audio_last_sample_pts_){r=1024/Or.audio_metadata_.sampling_frequency*1e3;let e=Or.audio_last_sample_pts_+r;Math.abs(e-i)>1&&($r.debug.warn(Or.TAG,`AAC: Detected pts overlapped, expected: ${e}ms, PES pts: ${i}ms`),i=e)}}let s,a=new Gt(e),n=null,o=i;for(;null!=(n=a.readNextAACFrame(Or.loas_previous_frame??void 0));){Or.loas_previous_frame=n,r=1024/n.sampling_frequency*1e3;const e={codec:"aac",data:n};0==Or.audio_init_segment_dispatched_?(Or.audio_metadata_={codec:"aac",audio_object_type:n.audio_object_type,sampling_freq_index:n.sampling_freq_index,sampling_frequency:n.sampling_frequency,channel_config:n.channel_config},Or.dispatchAudioInitSegment(e)):Or.detectAudioMetadataChange(e)&&(Or.dispatchAudioMediaSegment(),Or.dispatchAudioInitSegment(e)),s=o;let t=Math.floor(o);const i=new Uint8Array(n.data.length+2);i.set([175,1],0),i.set(n.data,2);let a={payload:i,length:i.byteLength,pts:t,dts:t,type:J};Or.audio_track_.samples.push(a),Or.audio_track_.length+=i.byteLength,o+=r}a.hasIncompleteData()&&(Or.aac_last_incomplete_data_=a.getIncompleteData()),s&&(Or.audio_last_sample_pts_=s)},parseAC3Payload(e,t){},parseEAC3Payload(e,t){},parseOpusPayload(e,t){},parseMP3Payload(e,t){if(Or.has_video_&&!Or.video_init_segment_dispatched_)return;let r=[44100,48e3,32e3,0],i=[22050,24e3,16e3,0],s=[11025,12e3,8e3,0],a=e[1]>>>3&3,n=(6&e[1])>>1;e[2];let o=(12&e[2])>>>2,d=3!==(e[3]>>>6&3)?2:1,l=0,u=34;switch(a){case 0:l=s[o];break;case 2:l=i[o];break;case 3:l=r[o]}switch(n){case 1:u=34;break;case 2:u=33;break;case 3:u=32}const c={};c.object_type=u,c.sample_rate=l,c.channel_count=d,c.data=e;const h={codec:"mp3",data:c};0==Or.audio_init_segment_dispatched_?(Or.audio_metadata_={codec:"mp3",object_type:u,sample_rate:l,channel_count:d},Or.dispatchAudioInitSegment(h)):Or.detectAudioMetadataChange(h)&&(Or.dispatchAudioMediaSegment(),Or.dispatchAudioInitSegment(h));let f={payload:e,length:e.byteLength,pts:t/Or.timescale_,dts:t/Or.timescale_,type:J};Or.audio_track_.samples.push(f),Or.audio_track_.length+=e.byteLength},detectAudioMetadataChange(e){if(e.codec!==Or.audio_metadata_.codec)return $r.debug.log(Or.TAG,`Audio: Audio Codecs changed from ${Or.audio_metadata_.codec} to ${e.codec}`),!0;if("aac"===e.codec&&"aac"===Or.audio_metadata_.codec){const t=e.data;if(t.audio_object_type!==Or.audio_metadata_.audio_object_type)return $r.debug.log(Or.TAG,`AAC: AudioObjectType changed from ${Or.audio_metadata_.audio_object_type} to ${t.audio_object_type}`),!0;if(t.sampling_freq_index!==Or.audio_metadata_.sampling_freq_index)return $r.debug.log(Or.TAG,`AAC: SamplingFrequencyIndex changed from ${Or.audio_metadata_.sampling_freq_index} to ${t.sampling_freq_index}`),!0;if(t.channel_config!==Or.audio_metadata_.channel_config)return $r.debug.log(Or.TAG,`AAC: Channel configuration changed from ${Or.audio_metadata_.channel_config} to ${t.channel_config}`),!0}else if("ac-3"===e.codec&&"ac-3"===Or.audio_metadata_.codec){const t=e.data;if(t.sampling_frequency!==Or.audio_metadata_.sampling_frequency)return $r.debug.log(Or.TAG,`AC3: Sampling Frequency changed from ${Or.audio_metadata_.sampling_frequency} to ${t.sampling_frequency}`),!0;if(t.bit_stream_identification!==Or.audio_metadata_.bit_stream_identification)return $r.debug.log(Or.TAG,`AC3: Bit Stream Identification changed from ${Or.audio_metadata_.bit_stream_identification} to ${t.bit_stream_identification}`),!0;if(t.bit_stream_mode!==Or.audio_metadata_.bit_stream_mode)return $r.debug.log(Or.TAG,`AC3: BitStream Mode changed from ${Or.audio_metadata_.bit_stream_mode} to ${t.bit_stream_mode}`),!0;if(t.channel_mode!==Or.audio_metadata_.channel_mode)return $r.debug.log(Or.TAG,`AC3: Channel Mode changed from ${Or.audio_metadata_.channel_mode} to ${t.channel_mode}`),!0;if(t.low_frequency_effects_channel_on!==Or.audio_metadata_.low_frequency_effects_channel_on)return $r.debug.log(Or.TAG,`AC3: Low Frequency Effects Channel On changed from ${Or.audio_metadata_.low_frequency_effects_channel_on} to ${t.low_frequency_effects_channel_on}`),!0}else if("opus"===e.codec&&"opus"===Or.audio_metadata_.codec){const t=e.meta;if(t.sample_rate!==Or.audio_metadata_.sample_rate)return $r.debug.log(Or.TAG,`Opus: SamplingFrequencyIndex changed from ${Or.audio_metadata_.sample_rate} to ${t.sample_rate}`),!0;if(t.channel_count!==Or.audio_metadata_.channel_count)return $r.debug.log(Or.TAG,`Opus: Channel count changed from ${Or.audio_metadata_.channel_count} to ${t.channel_count}`),!0}else if("mp3"===e.codec&&"mp3"===Or.audio_metadata_.codec){const t=e.data;if(t.object_type!==Or.audio_metadata_.object_type)return $r.debug.log(Or.TAG,`MP3: AudioObjectType changed from ${Or.audio_metadata_.object_type} to ${t.object_type}`),!0;if(t.sample_rate!==Or.audio_metadata_.sample_rate)return $r.debug.log(Or.TAG,`MP3: SamplingFrequencyIndex changed from ${Or.audio_metadata_.sample_rate} to ${t.sample_rate}`),!0;if(t.channel_count!==Or.audio_metadata_.channel_count)return $r.debug.log(Or.TAG,`MP3: Channel count changed from ${Or.audio_metadata_.channel_count} to ${t.channel_count}`),!0}return!1},dispatchAudioInitSegment(e){let t={type:"audio"};if(t.id=Or.audio_track_.id,t.timescale=1e3,t.duration=Or.duration_,"aac"===Or.audio_metadata_.codec){let r="aac"===e.codec?e.data:null,i=new ts(r);t.audioSampleRate=i.sampling_rate,t.audioSampleRateIndex=i.sampling_index,t.channelCount=i.channel_count,t.codec=i.codec_mimetype,t.originalCodec=i.original_codec_mimetype,t.config=i.config,t.refSampleDuration=1024/t.audioSampleRate*t.timescale;const s=Pt({profile:$r._opt.mseDecodeAudio?i.object_type:i.original_object_type,sampleRate:t.audioSampleRateIndex,channel:t.channelCount});$r.decodeAudio(s,0)}else"ac-3"===Or.audio_metadata_.codec||"ec-3"===Or.audio_metadata_.codec||"opus"===Or.audio_metadata_.codec||"mp3"===Or.audio_metadata_.codec&&(t.audioSampleRate=Or.audio_metadata_.sample_rate,t.channelCount=Or.audio_metadata_.channel_count,t.codec="mp3",t.originalCodec="mp3",t.config=void 0);0==Or.audio_init_segment_dispatched_&&$r.debug.log(Or.TAG,`Generated first AudioSpecificConfig for mimeType: ${t.codec}`),Or.audio_init_segment_dispatched_=!0,Or.video_metadata_changed_=!1;let r=Or.media_info_;r.hasAudio=!0,r.audioCodec=t.originalCodec,r.audioSampleRate=t.audioSampleRate,r.audioChannelCount=t.channelCount,r.hasVideo&&r.videoCodec?r.mimeType=`video/mp2t; codecs="${r.videoCodec},${r.audioCodec}"`:r.mimeType=`video/mp2t; codecs="${r.audioCodec}"`},dispatchPESPrivateDataDescriptor(e,t,r){},parsePESPrivateDataPayload(e,t,r,i,s){let a=new Ji;if(a.pid=i,a.stream_id=s,a.len=e.byteLength,a.data=e,null!=t){let e=Math.floor(t/Or.timescale_);a.pts=e}else a.nearest_pts=Or.getNearestTimestampMilliseconds();if(null!=r){let e=Math.floor(r/Or.timescale_);a.dts=e}},parseTimedID3MetadataPayload(e,t,r,i,s){$r.debug.log(Or.TAG,`Timed ID3 Metadata: pid=${i}, pts=${t}, dts=${r}, stream_id=${s}`)},parseSynchronousKLVMetadataPayload(e,t,r,i,s){$r.debug.log(Or.TAG,`Synchronous KLV Metadata: pid=${i}, pts=${t}, dts=${r}, stream_id=${s}`)},parseAsynchronousKLVMetadataPayload(e,t,r){$r.debug.log(Or.TAG,`Asynchronous KLV Metadata: pid=${t}, stream_id=${r}`)},parseSMPTE2038MetadataPayload(e,t,r,i,s){$r.debug.log(Or.TAG,`SMPTE 2038 Metadata: pid=${i}, pts=${t}, dts=${r}, stream_id=${s}`)},getNearestTimestampMilliseconds(){if(null!=Or.audio_last_sample_pts_)return Math.floor(Or.audio_last_sample_pts_);if(null!=Or.last_pcr_){return Math.floor(Or.last_pcr_/300/Or.timescale_)}},_preDoDecode(){const e=Or.video_track_,t=Or.audio_track_;let r=e.samples;t.samples.length>0&&(r=e.samples.concat(t.samples),r=r.sort(((e,t)=>e.dts-t.dts))),r.forEach((e=>{const t=new Uint8Array(e.payload);delete e.payload,e.type===Q?Or._doDecodeVideo({...e,payload:t}):e.type===J&&Or._doDecodeAudio({...e,payload:t})})),e.samples=[],e.length=0,t.samples=[],t.length=0},_doDecodeVideo(e){const t=new Uint8Array(e.payload);let r=null;r=e.isHevc?Tr(t,e.isIFrame):pr(t,e.isIFrame),e.isIFrame&&$r.calcIframeIntervalTimestamp(e.dts);let i=$r.cryptoPayload(r,e.isIFrame);$r.decode(i,{type:Q,ts:e.dts,isIFrame:e.isIFrame,cts:e.cts})},_doDecodeAudio(e){const t=new Uint8Array(e.payload);let r=t;er($r._opt.m7sCryptoAudio)&&(r=$r.cryptoPayloadAudio(t)),$r.decode(r,{type:J,ts:e.dts,isIFrame:!1,cts:0})}},Gr=null;self.Worker&&self.MediaSource&&"canConstructInDedicatedWorker"in self.MediaSource&&!0===self.MediaSource.canConstructInDedicatedWorker&&(Gr={TAG:"worker MediaSource",_resetInIt(){Gr.isAvc=null,Gr.isAAC=null,Gr.videoInfo={},Gr.videoMeta={},Gr.audioMeta={},Gr.sourceBuffer=null,Gr.audioSourceBuffer=null,Gr.hasInit=!1,Gr.hasAudioInit=!1,Gr.isAudioInitInfo=!1,Gr.videoMimeType="",Gr.audioMimeType="",Gr.cacheTrack={},Gr.cacheAudioTrack={},Gr.timeInit=!1,Gr.sequenceNumber=0,Gr.audioSequenceNumber=0,Gr.firstRenderTime=null,Gr.firstAudioTime=null,Gr.mediaSourceAppendBufferFull=!1,Gr.mediaSourceAppendBufferError=!1,Gr.mediaSourceAddSourceBufferError=!1,Gr.mediaSourceBufferError=!1,Gr.mediaSourceError=!1,Gr.prevTimestamp=null,Gr.decodeDiffTimestamp=null,Gr.prevDts=null,Gr.prevAudioDts=null,Gr.prevPayloadBufferSize=0,Gr.isWidthOrHeightChanged=!1,Gr.prevTs=null,Gr.prevAudioTs=null,Gr.eventListenList=[],Gr.pendingRemoveRanges=[],Gr.pendingSegments=[],Gr.pendingAudioRemoveRanges=[],Gr.pendingAudioSegments=[],Gr.supportVideoFrameCallbackHandle=null,Gr.audioSourceBufferCheckTimeout=null,Gr.audioSourceNoDataCheckTimeout=null,Gr.hasPendingEos=!1,Gr.$video={currentTime:0,readyState:0}},init(){Gr.events=new Di,Gr._resetInIt(),Gr.mediaSource=new self.MediaSource,Gr.isDecodeFirstIIframe=!!tr($r._opt.checkFirstIFrame),Gr._bindMediaSourceEvents()},destroy(){Gr.stop(),Gr._clearAudioSourceBufferCheckTimeout(),Gr.eventListenList&&Gr.eventListenList.length&&(Gr.eventListenList.forEach((e=>e())),Gr.eventListenList=[]),Gr._resetInIt()},getState:()=>Gr.mediaSource&&Gr.mediaSource.readyState,isStateOpen:()=>Gr.getState()===ct,isStateClosed:()=>Gr.getState()===ht,isStateEnded:()=>Gr.getState()===ut,_bindMediaSourceEvents(){const{proxy:e}=Gr.events,t=e(Gr.mediaSource,pt,(()=>{$r.debug.log(Gr.TAG,"sourceOpen"),Gr._onMediaSourceSourceOpen()})),r=e(Gr.mediaSource,ft,(()=>{$r.debug.log(Gr.TAG,"sourceClose")})),i=e(Gr.mediaSource,mt,(()=>{$r.debug.log(Gr.TAG,"sourceended")}));Gr.eventListenList.push(t,r,i)},_onMediaSourceSourceOpen(){Gr.sourceBuffer||($r.debug.log(Gr.TAG,"onMediaSourceSourceOpen() sourceBuffer is null and next init"),Gr._initSourceBuffer()),Gr.audioSourceBuffer||($r.debug.log(Gr.TAG,"onMediaSourceSourceOpen() audioSourceBuffer is null and next init"),Gr._initAudioSourceBuffer()),Gr._hasPendingSegments()&&Gr._doAppendSegments()},decodeVideo(e,t,r,i){if($r.isDestroyed)$r.debug.warn(Gr.TAG,"decodeVideo() and decoder is destroyed");else if(tr(Gr.hasInit))if(r&&e[1]===bt){const i=15&e[0];if(i===Be&&tr(function(){let e=!1;return"MediaSource"in self&&(self.MediaSource.isTypeSupported(at)||self.MediaSource.isTypeSupported(nt)||self.MediaSource.isTypeSupported(ot)||self.MediaSource.isTypeSupported(dt)||self.MediaSource.isTypeSupported(lt))&&(e=!0),e}()))return void Gr.emitError(Ue.mediaSourceH265NotSupport);Gr.videoInfo.codec=i,postMessage({cmd:C,code:i});const s=new Uint8Array(e);postMessage({cmd:k,buffer:s,codecId:i},[s.buffer]),Gr.hasInit=Gr._decodeConfigurationRecord(e,t,r,i)}else $r.debug.warn(Gr.TAG,`decodeVideo has not init , isIframe is ${r} , payload is ${e[1]}`);else if(!Gr.isDecodeFirstIIframe&&r&&(Gr.isDecodeFirstIIframe=!0),Gr.isDecodeFirstIIframe){if(r&&0===e[1]){const t=15&e[0];let r={};if(t===xe){r=hr(e.slice(5))}else t===Be&&(r=Ur(e));const i=Gr.videoInfo;i&&i.codecWidth&&i.codecWidth&&r&&r.codecWidth&&r.codecHeight&&(r.codecWidth!==i.codecWidth||r.codecHeight!==i.codecWidth)&&($r.debug.warn(Gr.TAG,`\n decodeVideo: video width or height is changed,\n old width is ${i.codecWidth}, old height is ${i.codecWidth},\n new width is ${r.codecWidth}, new height is ${r.codecHeight},\n and emit change event`),Gr.isWidthOrHeightChanged=!0,Gr.emitError(Ue.mseWidthOrHeightChange))}if(Gr.isWidthOrHeightChanged)return void $r.debug.warn(Gr.TAG,"decodeVideo: video width or height is changed, and return");if(Qt(e))return void $r.debug.warn(Gr.TAG,"decodeVideo and payload is video sequence header so drop this frame");if(e.byteLength<12)return void $r.debug.warn(Gr.TAG,`decodeVideo and payload is too small , payload length is ${e.byteLength}`);let s=t;if($r.isPlayer){if(null===Gr.firstRenderTime&&(Gr.firstRenderTime=t,postMessage({cmd:X,value:Gr.firstRenderTime})),s=t-Gr.firstRenderTime,s<0&&($r.debug.warn(Gr.TAG,`decodeVideo\n local dts is < 0 , ts is ${t} and prevTs is ${Gr.prevTs},\n firstRenderTime is ${Gr.firstRenderTime} and mseCorrectTimeDuration is ${$r._opt.mseCorrectTimeDuration}`),s=null===Gr.prevDts?0:Gr.prevDts+$r._opt.mseCorrectTimeDuration,Gr._checkTsIsMaxDiff(t)))return $r.debug.warn(Gr.TAG,`decodeVideo is max diff , ts is ${t} and prevTs is ${Gr.prevTs}, diff is ${Gr.prevTs-t}`),void Gr.emitError(Ue.mediaSourceTsIsMaxDiff);if(null!==Gr.prevDts&&s<=Gr.prevDts){if($r.debug.warn(Gr.TAG,`\n decodeVideo dts is less than(or equal) prev dts ,\n dts is ${s} and prev dts is ${Gr.prevDts} ,\n and now ts is ${t} and prev ts is ${Gr.prevTs} ,\n and diff is ${t-Gr.prevTs} and firstRenderTime is ${Gr.firstRenderTime} and isIframe is ${r},\n and mseCorrectTimeDuration is ${$r._opt.mseCorrectTimeDuration},\n and prevPayloadBufferSize is ${Gr.prevPayloadBufferSize} and payload size is ${e.byteLength}`),s===Gr.prevDts&&Gr.prevPayloadBufferSize===e.byteLength)return void $r.debug.warn(Gr.TAG,"decodeVideo dts is equal to prev dts and payload size is equal to prev payload size so drop this frame");if(s=Gr.prevDts+$r._opt.mseCorrectTimeDuration,Gr._checkTsIsMaxDiff(t))return $r.debug.warn(Gr.TAG,`decodeVideo is max diff , ts is ${t} and prevTs is ${Gr.prevTs}, diff is ${Gr.prevTs-t} and emit replay`),void Gr.emitError(Ue.mediaSourceTsIsMaxDiff)}}$r.isPlayer?Gr._decodeVideo(e,s,r,i,t):$r.isPlayback,Gr.prevDts=s,Gr.prevPayloadBufferSize=e.byteLength,Gr.prevTs=t}else $r.debug.log(Gr.TAG,"decodeVideo first frame is not iFrame")},decodeAudio(e,t){if($r.isDestroyed)$r.debug.warn(Gr.TAG,"decodeAudio() and decoder is destroyed");else if(tr(Gr.hasAudioInit))Gr.hasAudioInit=Gr._decodeAudioConfigurationRecord(e,t);else{let r=t;if(Ft(e))return void $r.debug.log(Gr.TAG,"decodeAudio and has already initialized and payload is aac codec packet so drop this frame");if(Gr._clearAudioNoDataCheckTimeout(),$r.isPlayer){if(null===Gr.firstAudioTime&&(Gr.firstAudioTime=t,null!==Gr.firstRenderTime&&null!==Gr.prevTs)){const e=Math.abs(Gr.firstRenderTime-Gr.prevTs);e>300&&(Gr.firstAudioTime-=e,$r.debug.warn(Gr.TAG,`video\n firstAudioTime is ${Gr.firstRenderTime} and current time is ${Gr.prevTs}\n play time is ${e} and firstAudioTime ${t} - ${e} = ${Gr.firstAudioTime}`))}r=t-Gr.firstAudioTime,r<0&&($r.debug.warn(Gr.TAG,`decodeAudio\n local dts is < 0 , ts is ${t} and prevTs is ${Gr.prevAudioTs},\n firstAudioTime is ${Gr.firstAudioTime}`),r=null===Gr.prevAudioDts?0:Gr.prevAudioDts+$r._opt.mseCorrectAudioTimeDuration),null!==Gr.prevAudioTs&&r<=Gr.prevAudioDts&&($r.debug.warn(Gr.TAG,`\n decodeAudio dts is less than(or equal) prev dts ,\n dts is ${r} and prev dts is ${Gr.prevAudioDts} ,\n and now ts is ${t} and prev ts is ${Gr.prevAudioTs} ,\n and diff is ${t-Gr.prevAudioTs}`),r=Gr.prevAudioDts+$r._opt.mseCorrectAudioTimeDuration)}$r.isPlayer?Gr._decodeAudio(e,r,t):$r.isPlayback,Gr.prevAudioTs=t,Gr.prevAudioDts=r}},_checkTsIsMaxDiff:e=>Gr.prevTs>0&&eb,_decodeConfigurationRecord(e,t,r,i){let s=e.slice(5),a={};if(i===xe?a=hr(s):i===Be&&(a=Ar(s)),Gr.videoInfo.width=a.codecWidth,Gr.videoInfo.height=a.codecHeight,0===a.codecWidth&&0===a.codecHeight)return $r.debug.warn(Gr.TAG,"_decodeConfigurationRecord error",JSON.stringify(a)),Gr.emitError(Ue.mediaSourceDecoderConfigurationError),!1;const n={id:At,type:"video",timescale:1e3,duration:0,avcc:s,codecWidth:a.codecWidth,codecHeight:a.codecHeight,videoType:a.videoType},o=Ii.generateInitSegment(n);Gr.isAvc=i===xe;let d=a.codec;return Gr.videoMimeType=d?`video/mp4; codecs="${a.codec}"`:Gr.isAvc?st:at,postMessage({cmd:S,w:a.codecWidth,h:a.codecHeight}),Gr._initSourceBuffer(),Gr.appendBuffer(o.buffer),Gr.sequenceNumber=0,Gr.cacheTrack={},Gr.timeInit=!1,!0},_decodeAudioConfigurationRecord(e,t){const r=e[0]>>4,i=e[0]>>1&1,s=r===Fe,a=r===De;if(tr(a||s))return $r.debug.warn(Gr.TAG,`_decodeAudioConfigurationRecord audio codec is not support , codecId is ${r} ant auto wasm decode`),Gr.emitError(Ue.mediaSourceAudioG711NotSupport),!1;const n={id:xt,type:"audio",timescale:1e3};let o={};if(Ft(e)){if(o=function(e){let t=new Uint8Array(e),r=null,i=0,s=0,a=0,n=null;if(i=s=t[0]>>>3,a=(7&t[0])<<1|t[1]>>>7,a<0||a>=Nt.length)return void console.error("Flv: AAC invalid sampling frequency index!");let o=Nt[a],d=(120&t[1])>>>3;if(d<0||d>=8)return void console.log("Flv: AAC invalid channel configuration");5===i&&(n=(7&t[1])<<1|t[2]>>>7,t[2]);let l=self.navigator.userAgent.toLowerCase();return-1!==l.indexOf("firefox")?a>=6?(i=5,r=new Array(4),n=a-3):(i=2,r=new Array(2),n=a):-1!==l.indexOf("android")?(i=2,r=new Array(2),n=a):(i=5,n=a,r=new Array(4),a>=6?n=a-3:1===d&&(i=2,r=new Array(2),n=a)),r[0]=i<<3,r[0]|=(15&a)>>>1,r[1]=(15&a)<<7,r[1]|=(15&d)<<3,5===i&&(r[1]|=(15&n)>>>1,r[2]=(1&n)<<7,r[2]|=8,r[3]=0),{audioType:"aac",config:r,sampleRate:o,channelCount:d,objectType:i,codec:"mp4a.40."+i,originalCodec:"mp4a.40."+s}}(e.slice(2)),!o)return!1;n.audioSampleRate=o.sampleRate,n.channelCount=o.channelCount,n.config=o.config,n.refSampleDuration=1024/n.audioSampleRate*n.timescale}else{if(!s)return!1;if(o=function(e){if(e.length<4)return void console.error("Invalid MP3 packet, header missing!");let t=new Uint8Array(e.buffer),r=null;if(255!==t[0])return void console.error("Invalid MP3 packet, first byte != 0xFF ");let i=t[1]>>>3&3,s=(6&t[1])>>1,a=(240&t[2])>>>4,n=(12&t[2])>>>2,o=3&~(t[3]>>>6)?2:1,d=0,l=0;switch(i){case 0:d=Li[n];break;case 2:d=Fi[n];break;case 3:d=Pi[n]}switch(s){case 1:a0&&(c+=`;codecs=${l}`),tr(Gr.isAudioInitInfo)&&(xr=r===De?i?16:8:0===i?8:16,postMessage({cmd:x,code:r}),postMessage({cmd:A,sampleRate:n.audioSampleRate,channels:n.channelCount,depth:xr}),Gr.isAudioInitInfo=!0),Gr.audioMimeType=c,Gr.isAAC=a,Gr._initAudioSourceBuffer(),Gr.appendAudioBuffer(u.buffer),!0},_initSourceBuffer(){const{proxy:e}=Gr.events;if(null===Gr.sourceBuffer&&null!==Gr.mediaSource&&Gr.isStateOpen()&&Gr.videoMimeType){try{Gr.sourceBuffer=Gr.mediaSource.addSourceBuffer(Gr.videoMimeType),$r.debug.log(Gr.TAG,"_initSourceBuffer() mseDecoder.mediaSource.addSourceBuffer()",Gr.videoMimeType)}catch(e){return $r.debug.error(Gr.TAG,"appendBuffer() mseDecoder.mediaSource.addSourceBuffer()",e.code,e),Gr.emitError(Ue.mseAddSourceBufferError,e.code),void(Gr.mediaSourceAddSourceBufferError=!0)}if(Gr.sourceBuffer){const t=e(Gr.sourceBuffer,"error",(e=>{Gr.mediaSourceBufferError=!0,$r.debug.error(Gr.TAG,"mseSourceBufferError mseDecoder.sourceBuffer",e),Gr.emitError(Ue.mseSourceBufferError,e.code)})),r=e(Gr.sourceBuffer,"updateend",(()=>{Gr._hasPendingRemoveRanges()?Gr._doRemoveRanges():Gr._hasPendingSegments()?Gr._doAppendSegments():Gr.hasPendingEos&&($r.debug.log(Gr.TAG,"videoSourceBuffer updateend and hasPendingEos is true, next endOfStream()"),Gr.endOfStream())}));Gr.eventListenList.push(t,r)}}else $r.debug.log(Gr.TAG,`_initSourceBuffer and mseDecoder.isStateOpen is ${Gr.isStateOpen()} and mseDecoder.isAvc === null is ${null===Gr.isAvc}`)},_initAudioSourceBuffer(){const{proxy:e}=Gr.events;if(null===Gr.audioSourceBuffer&&null!==Gr.mediaSource&&Gr.isStateOpen()&&Gr.audioMimeType){try{Gr.audioSourceBuffer=Gr.mediaSource.addSourceBuffer(Gr.audioMimeType),Gr._clearAudioSourceBufferCheckTimeout(),$r.debug.log(Gr.TAG,"_initAudioSourceBuffer() mseDecoder.mediaSource.addSourceBuffer()",Gr.audioMimeType)}catch(e){return $r.debug.error(Gr.TAG,"appendAudioBuffer() mseDecoder.mediaSource.addSourceBuffer()",e.code,e),Gr.emitError(Ue.mseAddSourceBufferError,e.code),void(Gr.mediaSourceAddSourceBufferError=!0)}if(Gr.audioSourceBuffer){const t=e(Gr.audioSourceBuffer,"error",(e=>{Gr.mediaSourceBufferError=!0,$r.debug.error(Gr.TAG,"mseSourceBufferError mseDecoder.audioSourceBuffer",e),Gr.emitError(Ue.mseSourceBufferError,e.code)})),r=e(Gr.audioSourceBuffer,"updateend",(()=>{Gr._hasPendingRemoveRanges()?Gr._doRemoveRanges():Gr._hasPendingSegments()?Gr._doAppendSegments():Gr.hasPendingEos&&($r.debug.log(Gr.TAG,"audioSourceBuffer updateend and hasPendingEos is true, next endOfStream()"),Gr.endOfStream())}));Gr.eventListenList.push(t,r),null===Gr.audioSourceNoDataCheckTimeout&&(Gr.audioSourceNoDataCheckTimeout=setTimeout((()=>{Gr._clearAudioNoDataCheckTimeout(),Gr.emitError(Ue.mediaSourceAudioNoDataTimeout)}),1e3))}}else $r.debug.log(Gr.TAG,`_initAudioSourceBuffer and mseDecoder.isStateOpen is ${Gr.isStateOpen()} and mseDecoder.audioMimeType is ${Gr.audioMimeType}`)},_decodeVideo(e,t,r,i,s){let a=e.slice(5),n=a.byteLength;if(0===n)return void $r.debug.warn(Gr.TAG,"_decodeVideo payload bytes is 0 and return");let o=(new Date).getTime(),d=!1;Gr.prevTimestamp||(Gr.prevTimestamp=o,d=!0);const l=o-Gr.prevTimestamp;if(Gr.decodeDiffTimestamp=l,l>500&&!d&&$r.isPlayer&&$r.debug.warn(Gr.TAG,`_decodeVideo now time is ${o} and prev time is ${Gr.prevTimestamp}, diff time is ${l} ms`),Gr.cacheTrack.id&&t>=Gr.cacheTrack.dts){let e=8+Gr.cacheTrack.size,r=new Uint8Array(e);r[0]=e>>>24&255,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=255&e,r.set(Ii.types.mdat,4),r.set(Gr.cacheTrack.data,8),Gr.cacheTrack.duration=t-Gr.cacheTrack.dts;let i=Ii.moof(Gr.cacheTrack,Gr.cacheTrack.dts);Gr.cacheTrack={};let s=new Uint8Array(i.byteLength+r.byteLength);s.set(i,0),s.set(r,i.byteLength),Gr.appendBuffer(s.buffer)}else $r.debug.log(Gr.TAG,`timeInit set false , cacheTrack = {} now dts is ${t}, and ts is ${s} cacheTrack dts is ${Gr.cacheTrack&&Gr.cacheTrack.dts}`),Gr.timeInit=!1,Gr.cacheTrack={};Gr.cacheTrack||(Gr.cacheTrack={}),Gr.cacheTrack.id=At,Gr.cacheTrack.sequenceNumber=++Gr.sequenceNumber,Gr.cacheTrack.size=n,Gr.cacheTrack.dts=t,Gr.cacheTrack.cts=i,Gr.cacheTrack.isKeyframe=r,Gr.cacheTrack.data=a,Gr.cacheTrack.flags={isLeading:0,dependsOn:r?2:1,isDependedOn:r?1:0,hasRedundancy:0,isNonSync:r?0:1},Gr.prevTimestamp=(new Date).getTime()},_decodeAudio(e,t,r){let i=Gr.isAAC?e.slice(2):e.slice(1),s=i.byteLength;if(Gr.cacheAudioTrack.id&&t>=Gr.cacheAudioTrack.dts){let e=8+Gr.cacheAudioTrack.size,r=new Uint8Array(e);r[0]=e>>>24&255,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=255&e,r.set(Ii.types.mdat,4),r.set(Gr.cacheAudioTrack.data,8),Gr.cacheAudioTrack.duration=t-Gr.cacheAudioTrack.dts;let i=Ii.moof(Gr.cacheAudioTrack,Gr.cacheAudioTrack.dts);Gr.cacheAudioTrack={};let s=new Uint8Array(i.byteLength+r.byteLength);s.set(i,0),s.set(r,i.byteLength),Gr.appendAudioBuffer(s.buffer)}else Gr.cacheAudioTrack={};Gr.cacheAudioTrack||(Gr.cacheAudioTrack={}),Gr.cacheAudioTrack.id=xt,Gr.cacheAudioTrack.sequenceNumber=++Gr.audioSequenceNumber,Gr.cacheAudioTrack.size=s,Gr.cacheAudioTrack.dts=t,Gr.cacheAudioTrack.cts=0,Gr.cacheAudioTrack.data=i,Gr.cacheAudioTrack.flags={isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}},appendBuffer(e){$r.isDestroyed?$r.debug.warn(Gr.TAG,"appendBuffer() player is destroyed"):Gr.mediaSourceAddSourceBufferError?$r.debug.warn(Gr.TAG,"mseDecoder.mediaSourceAddSourceBufferError is true"):Gr.mediaSourceAppendBufferFull?$r.debug.warn(Gr.TAG,"mseDecoder.mediaSourceAppendBufferFull is true"):Gr.mediaSourceAppendBufferError?$r.debug.warn(Gr.TAG,"mseDecoder.mediaSourceAppendBufferError is true"):Gr.mediaSourceBufferError?$r.debug.warn(Gr.TAG,"mseDecoder.mediaSourceBufferError is true"):(Gr.pendingSegments.push(e),Gr.sourceBuffer&&($r._opt.mseAutoCleanupSourceBuffer&&Gr._needCleanupSourceBuffer()&&Gr._doCleanUpSourceBuffer(),tr(Gr.getSourceBufferUpdating())&&Gr.isStateOpen()&&tr(Gr._hasPendingRemoveRanges()))?Gr._doAppendSegments():Gr.isStateClosed()?(Gr.mediaSourceBufferError=!0,Gr.emitError(Ue.mseSourceBufferError,"mediaSource is not attached to video or mediaSource is closed")):Gr.isStateEnded()?(Gr.mediaSourceBufferError=!0,Gr.emitError(Ue.mseSourceBufferError,"mediaSource is end")):Gr._hasPendingRemoveRanges()&&$r.debug.log(Gr.TAG,`video has pending remove ranges and video length is ${Gr.pendingRemoveRanges.length}, audio length is ${Gr.pendingAudioRemoveRanges.length}`))},appendAudioBuffer(e){$r.isDestroyed?$r.debug.warn(Gr.TAG,"appendAudioBuffer() player is destroyed"):Gr.mediaSourceAddSourceBufferError?$r.debug.warn(Gr.TAG,"mseDecoder.mediaSourceAddSourceBufferError is true"):Gr.mediaSourceAppendBufferFull?$r.debug.warn(Gr.TAG,"mseDecoder.mediaSourceAppendBufferFull is true"):Gr.mediaSourceAppendBufferError?$r.debug.warn(Gr.TAG,"mseDecoder.mediaSourceAppendBufferError is true"):Gr.mediaSourceBufferError?$r.debug.warn(Gr.TAG,"mseDecoder.mediaSourceBufferError is true"):(Gr.pendingAudioSegments.push(e),Gr.audioSourceBuffer&&($r._opt.mseAutoCleanupSourceBuffer&&Gr._needCleanupSourceBuffer()&&Gr._doCleanUpSourceBuffer(),tr(Gr.getAudioSourceBufferUpdating())&&Gr.isStateOpen()&&tr(Gr._hasPendingRemoveRanges()))?Gr._doAppendSegments():Gr.isStateClosed()?(Gr.mediaSourceBufferError=!0,Gr.emitError(Ue.mseSourceBufferError,"mediaSource is not attached to video or mediaSource is closed")):Gr.isStateEnded()?(Gr.mediaSourceBufferError=!0,Gr.emitError(Ue.mseSourceBufferError,"mediaSource is end")):Gr._hasPendingRemoveRanges()&&$r.debug.log(Gr.TAG,`audio has pending remove ranges and video length is ${Gr.pendingRemoveRanges.length}, audio length is ${Gr.pendingAudioRemoveRanges.length}`))},getSourceBufferUpdating:()=>Gr.sourceBuffer&&Gr.sourceBuffer.updating,getAudioSourceBufferUpdating:()=>Gr.audioSourceBuffer&&Gr.audioSourceBuffer.updating,stop(){Gr.abortSourceBuffer(),Gr.removeSourceBuffer()},clearUpAllSourceBuffer(){if(Gr.sourceBuffer){const e=Gr.sourceBuffer.buffered;for(let t=0;tGr.pendingSegments.length>0||Gr.pendingAudioSegments.length>0,getPendingSegmentsLength:()=>Gr.pendingSegments.length,_handleUpdatePlaybackRate(){},_doAppendSegments(){if(Gr.isStateClosed()||Gr.isStateEnded())$r.debug.log(Gr.TAG,"_doAppendSegments() mediaSource is closed or ended and return");else if(null!==Gr.sourceBuffer){if(Gr.needInitAudio()&&null===Gr.audioSourceBuffer)return $r.debug.log(Gr.TAG,"_doAppendSegments() audioSourceBuffer is null and need init audio source buffer"),void(null===Gr.audioSourceBufferCheckTimeout&&(Gr.audioSourceBufferCheckTimeout=setTimeout((()=>{Gr._clearAudioSourceBufferCheckTimeout(),Gr.emitError(Ue.mediaSourceAudioInitTimeout)}),1e3)));if(tr(Gr.getSourceBufferUpdating())&&Gr.pendingSegments.length>0){const e=Gr.pendingSegments.shift();try{Gr.sourceBuffer.appendBuffer(e)}catch(e){$r.debug.error(Gr.TAG,"mseDecoder.sourceBuffer.appendBuffer()",e.code,e),22===e.code?(Gr.stop(),Gr.mediaSourceAppendBufferFull=!0,Gr.emitError(Ue.mediaSourceFull)):11===e.code?(Gr.stop(),Gr.mediaSourceAppendBufferError=!0,Gr.emitError(Ue.mediaSourceAppendBufferError)):(Gr.stop(),Gr.mediaSourceBufferError=!0,Gr.emitError(Ue.mseSourceBufferError,e.code))}}if(tr(Gr.getAudioSourceBufferUpdating())&&Gr.pendingAudioSegments.length>0){const e=Gr.pendingAudioSegments.shift();try{Gr.audioSourceBuffer.appendBuffer(e)}catch(e){$r.debug.error(Gr.TAG,"mseDecoder.audioSourceBuffer.appendBuffer()",e.code,e),22===e.code?(Gr.stop(),Gr.mediaSourceAppendBufferFull=!0,Gr.emitError(Ue.mediaSourceFull)):11===e.code?(Gr.stop(),Gr.mediaSourceAppendBufferError=!0,Gr.emitError(Ue.mediaSourceAppendBufferError)):(Gr.stop(),Gr.mediaSourceBufferError=!0,Gr.emitError(Ue.mseSourceBufferError,e.code))}}}else $r.debug.log(Gr.TAG,"_doAppendSegments() sourceBuffer is null and wait init and return")},_doCleanUpSourceBuffer(){const e=Gr.$video.currentTime;if(Gr.sourceBuffer){const t=Gr.sourceBuffer.buffered;let r=!1;for(let i=0;i=$r._opt.mseAutoCleanupMaxBackwardDuration){r=!0;let t=e-$r._opt.mseAutoCleanupMinBackwardDuration;Gr.pendingRemoveRanges.push({start:s,end:t})}}else a=$r._opt.mseAutoCleanupMaxBackwardDuration){r=!0;let t=e-$r._opt.mseAutoCleanupMinBackwardDuration;Gr.pendingAudioRemoveRanges.push({start:s,end:t})}}else aGr.pendingRemoveRanges.length>0||Gr.pendingAudioRemoveRanges.length>0,needInitAudio:()=>$r._opt.hasAudio&&$r._opt.mseDecodeAudio,_doRemoveRanges(){if(Gr.sourceBuffer&&tr(Gr.getSourceBufferUpdating())){let e=Gr.pendingRemoveRanges;for(;e.length&&tr(Gr.getSourceBufferUpdating());){let t=e.shift();try{Gr.sourceBuffer.remove(t.start,t.end)}catch(e){$r.debug.warn(Gr.TAG,"_doRemoveRanges() sourceBuffer error",e)}}}if(Gr.audioSourceBuffer&&tr(Gr.getAudioSourceBufferUpdating())){let e=Gr.pendingAudioRemoveRanges;for(;e.length&&tr(Gr.getAudioSourceBufferUpdating());){let t=e.shift();try{Gr.audioSourceBuffer.remove(t.start,t.end)}catch(e){$r.debug.warn(Gr.TAG,"_doRemoveRanges() audioSourceBuffer error",e)}}}},_getPlaybackRate(){},_needCleanupSourceBuffer(){if(tr($r._opt.mseAutoCleanupSourceBuffer))return!1;const e=Gr.$video.currentTime;if(Gr.sourceBuffer){let t=Gr.sourceBuffer.buffered;if(t.length>=1&&e-t.start(0)>=$r._opt.mseAutoCleanupMaxBackwardDuration)return!0}if(Gr.audioSourceBuffer){let t=Gr.audioSourceBuffer.buffered;if(t.length>=1&&e-t.start(0)>=$r._opt.mseAutoCleanupMaxBackwardDuration)return!0}return!1},_clearAudioSourceBufferCheckTimeout(){Gr.audioSourceBufferCheckTimeout&&(clearTimeout(Gr.audioSourceBufferCheckTimeout),Gr.audioSourceBufferCheckTimeout=null)},_clearAudioNoDataCheckTimeout(){Gr.audioSourceNoDataCheckTimeout&&(clearTimeout(Gr.audioSourceNoDataCheckTimeout),Gr.audioSourceNoDataCheckTimeout=null)},getHandle:()=>Gr.mediaSource.handle,emitError(e,t=""){postMessage({cmd:Z,value:e,msg:t})}});let $r={isPlayer:!0,isPlayback:!1,dropping:!1,isPushDropping:!1,isWorkerFetch:!1,isDestroyed:!1,isTimeWait:!1,fetchStatus:St,_opt:Lr(),mp3Demuxer:null,delay:-1,audioNum:0,pushLatestDelay:-1,firstTimestamp:null,startTimestamp:null,preDelayTimestamp:null,stopId:null,streamFps:null,streamAudioFps:null,streamVideoFps:null,writableStream:null,networkDelay:0,webglObj:null,startStreamRateAndStatsInterval:function(){$r.stopStreamRateAndStatsInterval(),d=setInterval((()=>{o&&o(0);const e=JSON.stringify({demuxBufferDelay:$r.getVideoBufferLength(),audioDemuxBufferDelay:$r.getAudioBufferLength(),streamBufferByteLength:$r.getStreamBufferLength(),netBuf:$r.networkDelay||0,pushLatestDelay:$r.pushLatestDelay||0,latestDelay:$r.delay,isStreamTsMoreThanLocal:He});postMessage({cmd:F,type:we,value:e})}),1e3)},stopStreamRateAndStatsInterval:function(){d&&(clearInterval(d),d=null)},useOffscreen:function(){return $r._opt.useOffscreen&&"undefined"!=typeof OffscreenCanvas},getDelay:function(e,t){if(!e||$r._opt.hasVideo&&!ze)return-1;if(t===J)return $r.delay;if($r.preDelayTimestamp&&$r.preDelayTimestamp>e)return $r.preDelayTimestamp-e>1e3&&$r.debug.warn("worker",`getDelay() and preDelayTimestamp is ${$r.preDelayTimestamp} > timestamp is ${e} more than ${$r.preDelayTimestamp-e}ms and return ${$r.delay}`),$r.preDelayTimestamp=e,$r.delay;if($r.firstTimestamp){if(e){const t=Date.now()-$r.startTimestamp,r=e-$r.firstTimestamp;t>=r?(He=!1,$r.delay=t-r):(He=!0,$r.delay=r-t)}}else $r.firstTimestamp=e,$r.startTimestamp=Date.now(),$r.delay=-1;return $r.preDelayTimestamp=e,$r.delay},getDelayNotUpdateDelay:function(e,t){if(!e||$r._opt.hasVideo&&!ze)return-1;if(t===J)return $r.pushLatestDelay;if($r.preDelayTimestamp&&$r.preDelayTimestamp-e>1e3)return $r.debug.warn("worker",`getDelayNotUpdateDelay() and preDelayTimestamp is ${$r.preDelayTimestamp} > timestamp is ${e} more than ${$r.preDelayTimestamp-e}ms and return -1`),-1;if($r.firstTimestamp){let t=-1;if(e){const r=Date.now()-$r.startTimestamp,i=e-$r.firstTimestamp;r>=i?(He=!1,t=r-i):(He=!0,t=i-r)}return t}return-1},resetDelay:function(){$r.firstTimestamp=null,$r.startTimestamp=null,$r.delay=-1,$r.dropping=!1},resetAllDelay:function(){$r.resetDelay(),$r.preDelayTimestamp=null},doDecode:function(e){$r._opt.isEmitSEI&&e.type===Q&&$r.isWorkerFetch&&$r.findSei(e.payload,e.ts),$r.isPlayUseMSEAndDecoderInWorker()?e.type===J?$r._opt.mseDecodeAudio?Gr.decodeAudio(e.payload,e.ts):e.decoder.decode(e.payload,e.ts):e.type===Q&&Gr.decodeVideo(e.payload,e.ts,e.isIFrame,e.cts):$r._opt.useWCS&&$r.useOffscreen()&&e.type===Q&&s.decode?s.decode(e.payload,e.ts,e.cts):e.decoder.decode(e.payload,e.ts,e.isIFrame,e.cts)},decodeNext(e){if(0===r.length)return;const i=e.ts,s=r[0],a=e.type===Q&&Qt(e.payload);if(tr(t))a&&($r.debug.log("worker",`decode data type is ${e.type} and\n ts is ${i} next data type is ${s.type} ts is ${s.ts}\n isVideoSqeHeader is ${a}`),r.shift(),$r.doDecode(s));else{const t=s.ts-i,n=s.type===J&&e.type===Q;(t<=20||n||a)&&($r.debug.log("worker",`decode data type is ${e.type} and\n ts is ${i} next data type is ${s.type} ts is ${s.ts}\n diff is ${t} and isVideoAndNextAudio is ${n} and isVideoSqeHeader is ${a}`),r.shift(),$r.doDecode(s))}},init:function(){$r.debug.log("worker","init and opt is",JSON.stringify($r._opt));const e=$r._opt.playType===m,t=$r._opt.playType===_;if(zr.init(),$r.isPlayer=e,$r.isPlayback=t,$r.isPlayUseMSEAndDecoderInWorker()&&Gr&&Gr.init(),$r.isPlaybackCacheBeforeDecodeForFpsRender())$r.debug.log("worker","playback and playbackIsCacheBeforeDecodeForFpsRender is true");else{$r.debug.log("worker","setInterval()");const t=$r._opt.videoBuffer+$r._opt.videoBufferDelay,i=()=>{let i=null;if(r.length){if($r.isPushDropping)return void $r.debug.warn("worker",`loop() isPushDropping is true and bufferList length is ${r.length}`);if($r.dropping){for(i=r.shift(),$r.debug.warn("worker",`loop() dropBuffer is dropping and isIFrame ${i.isIFrame} and delay is ${$r.delay} and bufferlist is ${r.length}`);!i.isIFrame&&r.length;)i=r.shift();const e=$r.getDelayNotUpdateDelay(i.ts,i.type);i.isIFrame&&e<=$r.getNotDroppingDelayTs()&&($r.debug.log("worker","loop() is dropping = false, is iFrame"),$r.dropping=!1,$r.doDecode(i),$r.decodeNext(i))}else if($r.isPlayback||$r.isPlayUseMSE()||0===$r._opt.videoBuffer)for(;r.length;)i=r.shift(),$r.doDecode(i);else if(i=r[0],-1===$r.getDelay(i.ts,i.type))$r.debug.log("worker","loop() common dumex delay is -1 ,data.ts is",i.ts),r.shift(),$r.doDecode(i),$r.decodeNext(i);else if($r.delay>t&&e)$r.hasIframeInBufferList()?($r.debug.log("worker",`delay is ${$r.delay} > maxDelay ${t}, set dropping is true`),$r.resetAllDelay(),$r.dropping=!0,postMessage({cmd:R})):(r.shift(),$r.doDecode(i),$r.decodeNext(i));else for(;r.length;){if(i=r[0],!($r.getDelay(i.ts,i.type)>$r._opt.videoBuffer)){$r.delay<0&&$r.debug.warn("worker",`loop() do not decode and delay is ${$r.delay}, bufferList is ${r.length}`);break}r.shift(),$r.doDecode(i)}}else-1!==$r.delay&&$r.debug.log("worker","loop() bufferList is empty and reset delay"),$r.resetAllDelay()};$r.stopId=setInterval((()=>{let e=(new Date).getTime();_t||(_t=e);const t=e-_t;t>100&&$r.debug.warn("worker",`loop demux diff time is ${t}`),i(),_t=(new Date).getTime()}),20)}if(tr($r._opt.checkFirstIFrame)&&(ze=!0),$r.isPlayUseMSEAndDecoderInWorker()&&Gr){const e=Gr.getHandle();e&&postMessage({cmd:K,mseHandle:e},[e])}},playbackCacheLoop:function(){$r.stopId&&(clearInterval($r.stopId),$r.stopId=null);const e=()=>{let e=null;r.length&&(e=r.shift(),$r.doDecode(e))};e();const t=Math.ceil(1e3/($r.streamFps*$r._opt.playbackRate));$r.debug.log("worker",`playbackCacheLoop fragDuration is ${t}, streamFps is ${$r.streamFps}, streamAudioFps is ${$r.streamAudioFps} ,streamVideoFps is ${$r.streamVideoFps} playbackRate is ${$r._opt.playbackRate}`),$r.stopId=setInterval(e,t)},close:function(){if($r.debug.log("worker","close"),$r.isDestroyed=!0,Rr(),!n||1!==n.readyState&&2!==n.readyState?n&&$r.debug.log("worker",`close() and socket.readyState is ${n.readyState}`):(Fr=!0,n.close(1e3,"Client disconnecting")),n=null,$r.stopStreamRateAndStatsInterval(),$r.stopId&&(clearInterval($r.stopId),$r.stopId=null),$r.mp3Demuxer&&($r.mp3Demuxer.destroy(),$r.mp3Demuxer=null),$r.writableStream&&tr($r.writableStream.locked)&&$r.writableStream.close().catch((e=>{$r.debug.log("worker","close() and writableStream.close() error",e)})),$r.writableStream=null,Hr)try{Hr.clearAudio&&Hr.clearAudio(),Hr=null}catch(e){$r.debug.warn("worker","close() and audioDecoder.clear error",e)}if(Vr)try{Vr.clear&&Vr.clear(),Vr=null}catch(e){$r.debug.warn("worker","close() and videoDecoder.clear error",e)}o=null,_t=null,He=!1,s&&(s.reset&&s.reset(),s=null),Gr&&(Gr.destroy(),Gr=null),$r.firstTimestamp=null,$r.startTimestamp=null,$r.networkDelay=0,$r.streamFps=null,$r.streamAudioFps=null,$r.streamVideoFps=null,$r.delay=-1,$r.pushLatestDelay=-1,$r.preDelayTimestamp=null,$r.dropping=!1,$r.isPushDropping=!1,$r.isPlayer=!0,$r.isPlayback=!1,$r.isWorkerFetch=!1,$r._opt=Lr(),$r.webglObj&&($r.webglObj.destroy(),$r.offscreenCanvas.removeEventListener("webglcontextlost",$r.onOffscreenCanvasWebglContextLost),$r.offscreenCanvas.removeEventListener("webglcontextrestored",$r.onOffscreenCanvasWebglContextRestored),$r.offscreenCanvas=null,$r.offscreenCanvasGL=null,$r.offscreenCanvasCtx=null),r=[],i=[],l=null,y=null,v=null,fe=!1,pe=!1,ze=!1,nr=!1,or=!1,cr=!1,wr=null,Sr=null,Dt=[],zt=0,jt=0,gt=null,vt=null,rr=null,ir=null,xr=null,sr=0,ar=0,It=null,Rt=null,$r.fetchStatus=St,zr.destroy(),Mr.destroy(),Nr.destroy(),Or.destroy(),postMessage({cmd:G})},pushBuffer:function(e,i){if(i.type===J&&Ft(e)){if($r.debug.log("worker",`pushBuffer audio ts is ${i.ts}, isAacCodecPacket is true`),$r._opt.isRecordTypeFlv){const t=new Uint8Array(e);postMessage({cmd:W,buffer:t},[t.buffer])}$r.decodeAudio(e,i.ts)}else if(i.type===Q&&i.isIFrame&&Qt(e)){if($r.debug.log("worker",`pushBuffer video ts is ${i.ts}, isVideoSequenceHeader is true`),$r._opt.isRecordTypeFlv){const t=new Uint8Array(e);postMessage({cmd:j,buffer:t},[t.buffer])}$r.decodeVideo(e,i.ts,i.isIFrame,i.cts)}else{if($r._opt.isRecording)if($r._opt.isRecordTypeFlv){const t=new Uint8Array(e);postMessage({cmd:q,type:i.type,buffer:t,ts:i.ts},[t.buffer])}else if($r._opt.recordType===g)if(i.type===Q){const t=new Uint8Array(e).slice(5);postMessage({cmd:D,buffer:t,isIFrame:i.isIFrame,ts:i.ts,cts:i.cts},[t.buffer])}else if(i.type===J){const t=new Uint8Array(e),r=Lt(t)?t.slice(2):t.slice(1);postMessage({cmd:B,buffer:r,ts:i.ts},[r.buffer])}if($r.isPlayer&&sr>0&&ir>0&&i.type===Q){const e=i.ts-ir,t=sr+sr/2;e>t&&$r.debug.log("worker",`pushBuffer video\n ts is ${i.ts}, preTimestamp is ${ir},\n diff is ${e} and preTimestampDuration is ${sr} and maxDiff is ${t}\n maybe trigger black screen or flower screen\n `)}if($r.isPlayer&&ir>0&&i.type===Q&&i.tsb&&($r.debug.warn("worker",`pushBuffer,\n preTimestamp is ${ir}, options.ts is ${i.ts},\n diff is ${ir-i.ts} more than 3600000,\n and resetAllDelay`),$r.resetAllDelay(),ir=null,sr=0),$r.isPlayer&&ir>0&&i.ts<=ir&&i.type===Q&&($r.debug.warn("worker",`pushBuffer() and isIFrame is ${i.isIFrame} and,\n options.ts is ${i.ts} less than (or equal) preTimestamp is ${ir} and\n payloadBufferSize is ${e.byteLength} and prevPayloadBufferSize is ${ar}`),$r._opt.isDropSameTimestampGop&&tr(i.isIFrame)&&ze)){const e=$r.hasIframeInBufferList(),r=tr($r.isPushDropping);return $r.debug.log("worker",`pushBuffer, isDropSameTimestampGop is true and\n hasIframe is ${e} and isNotPushDropping is ${r} and next dropBuffer`),void(e&&r?$r.dropBuffer$2():($r.clearBuffer(!0),er($r._opt.checkFirstIFrame)&&er(t)&&($r.isPlayUseMSEAndDecoderInWorker()?Gr.isDecodeFirstIIframe=!1:postMessage({cmd:Y}))))}if($r.isPlayer&&ze){const e=$r._opt.videoBuffer+$r._opt.videoBufferDelay,t=$r.getDelayNotUpdateDelay(i.ts,i.type);$r.pushLatestDelay=t,t>e&&$r.delay0&&$r.hasIframeInBufferList()&&!1===$r.isPushDropping&&($r.debug.log("worker",`pushBuffer(), pushLatestDelay is ${t} more than ${e} and decoder.delay is ${$r.delay} and has iIframe and next decoder.dropBuffer$2()`),$r.dropBuffer$2())}if($r.isPlayer&&i.type===Q&&(ir>0&&(sr=i.ts-ir),ar=e.byteLength,ir=i.ts),i.type===J?r.push({ts:i.ts,payload:e,decoder:{decode:$r.decodeAudio},type:J,isIFrame:!1}):i.type===Q&&r.push({ts:i.ts,cts:i.cts,payload:e,decoder:{decode:$r.decodeVideo},type:Q,isIFrame:i.isIFrame}),$r.isPlaybackCacheBeforeDecodeForFpsRender()&&(Yt($r.streamVideoFps)||Yt($r.streamAudioFps))){let e=$r.streamVideoFps,t=$r.streamAudioFps;if(Yt($r.streamVideoFps)&&(e=Zt(r,Q),e&&($r.streamVideoFps=e,postMessage({cmd:z,value:$r.streamVideoFps}),$r.streamFps=t?e+t:e,tr($r._opt.hasAudio)&&($r.debug.log("worker","playbackCacheBeforeDecodeForFpsRender, _opt.hasAudio is false and set streamAudioFps is 0"),$r.streamAudioFps=0),$r.playbackCacheLoop())),Yt($r.streamAudioFps)&&(t=Zt(r,J),t&&($r.streamAudioFps=t,$r.streamFps=e?e+t:t,$r.playbackCacheLoop())),Yt($r.streamVideoFps)&&Yt($r.streamAudioFps)){const i=r.map((e=>({type:e.type,ts:e.ts})));$r.debug.log("worker",`playbackCacheBeforeDecodeForFpsRender, calc streamAudioFps is ${t}, streamVideoFps is ${e}, bufferListLength is ${r.length}, and ts list is ${JSON.stringify(i)}`)}const i=$r.getAudioBufferLength()>0,s=i?60:40;r.length>=s&&($r.debug.warn("worker",`playbackCacheBeforeDecodeForFpsRender, bufferListLength is ${r.length} more than ${s}, and hasAudio is ${i} an set streamFps is 25`),$r.streamVideoFps=25,postMessage({cmd:z,value:$r.streamVideoFps}),i?($r.streamAudioFps=25,$r.streamFps=$r.streamVideoFps+$r.streamAudioFps):$r.streamFps=$r.streamVideoFps,$r.playbackCacheLoop())}}},getVideoBufferLength(){let e=0;return r.forEach((t=>{t.type===Q&&(e+=1)})),e},hasIframeInBufferList:()=>r.some((e=>e.type===Q&&e.isIFrame)),isAllIframeInBufferList(){const e=$r.getVideoBufferLength();let t=0;return r.forEach((e=>{e.type===Q&&e.isIFrame&&(t+=1)})),e===t},getNotDroppingDelayTs:()=>$r._opt.videoBuffer+$r._opt.videoBufferDelay/2,getAudioBufferLength(){let e=0;return r.forEach((t=>{t.type===J&&(e+=1)})),e},getStreamBufferLength(){let e=0;return l&&l.buffer&&(e=l.buffer.byteLength),$r._opt.isNakedFlow?zr.lastBuf&&(e=zr.lastBuf.byteLength):$r._opt.isTs?Or._remainingPacketData&&(e=Or._remainingPacketData.byteLength):$r._opt.isFmp4&&Mr.mp4Box&&(e=Mr.mp4Box.getAllocatedSampleDataSize()),e},fetchStream:function(e,t){t.useMSE=!0,$r.debug.log("worker","fetchStream, url is "+e,"options:",JSON.stringify(t)),$r.isWorkerFetch=!0,t.isFlv?$r._opt.isFlv=!0:t.isFmp4?$r._opt.isFmp4=!0:t.isMpeg4?$r._opt.isMpeg4=!0:t.isNakedFlow?$r._opt.isNakedFlow=!0:t.isTs&&($r._opt.isTs=!0),o=qt((e=>{postMessage({cmd:F,type:_e,value:e})})),$r.startStreamRateAndStatsInterval(),t.isFmp4&&(Mr.listenMp4Box(),$r._opt.isFmp4Private&&Mr.initTransportDescarmber()),t.protocol===h?(l=new dr($r.demuxFlv()),fetch(e).then((e=>{if(er(Fr))return $r.debug.log("worker","request abort and run res.body.cancel()"),$r.fetchStatus=St,void e.body.cancel();if(!function(e){return e.ok&&e.status>=200&&e.status<=299}(e))return $r.debug.warn("worker",`fetch response status is ${e.status} and ok is ${e.ok} and emit error and next abort()`),Rr(),void postMessage({cmd:F,type:Ue.fetchError,value:`fetch response status is ${e.status} and ok is ${e.ok}`});if(postMessage({cmd:F,type:ve}),"undefined"!=typeof WritableStream)$r.writableStream=new WritableStream({write:e=>a&&a.signal&&a.signal.aborted?($r.debug.log("worker","writableStream write() and abortController.signal.aborted is true so return"),void($r.fetchStatus=Ut)):er(Fr)?($r.debug.log("worker","writableStream write() and requestAbort is true so return"),void($r.fetchStatus=Ut)):($r.fetchStatus=Et,o(e.byteLength),void(t.isFlv?l.write(e):t.isFmp4?$r.demuxFmp4(e):t.isMpeg4?$r.demuxMpeg4(e):t.isTs&&$r.demuxTs(e))),close:()=>{$r.debug.log("worker","writableStream close()"),$r.fetchStatus=Ut,l=null,Rr(),postMessage({cmd:F,type:me,value:f,msg:"fetch done"})},abort:e=>{if(a&&a.signal&&a.signal.aborted)return $r.debug.log("worker","writableStream abort() and abortController.signal.aborted is true so return"),void($r.fetchStatus=Ut);l=null,e.name!==yt?($r.debug.log("worker",`writableStream abort() and e is ${e.toString()}`),Rr(),postMessage({cmd:F,type:Ue.fetchError,value:e.toString()})):$r.debug.log("worker","writableStream abort() and e.name is AbortError so return")}}),e.body.pipeTo($r.writableStream);else{const r=e.body.getReader(),i=()=>{r.read().then((({done:e,value:r})=>e?($r.debug.log("worker","fetchNext().then() and done is true"),$r.fetchStatus=Ut,l=null,Rr(),void postMessage({cmd:F,type:me,value:f,msg:"fetch done"})):a&&a.signal&&a.signal.aborted?($r.debug.log("worker","fetchNext().then() and abortController.signal.aborted is true so return"),void($r.fetchStatus=Ut)):er(Fr)?($r.debug.log("worker","fetchNext().then() and requestAbort is true so return"),void($r.fetchStatus=Ut)):($r.fetchStatus=Et,o(r.byteLength),t.isFlv?l.write(r):t.isFmp4?$r.demuxFmp4(r):t.isMpeg4&&$r.demuxMpeg4(r),void i()))).catch((e=>{if(a&&a.signal&&a.signal.aborted)return $r.debug.log("worker","fetchNext().catch() and abortController.signal.aborted is true so return"),void($r.fetchStatus=Ut);l=null,e.name!==yt?($r.debug.log("worker",`fetchNext().catch() and e is ${e.toString()}`),Rr(),postMessage({cmd:F,type:Ue.fetchError,value:e.toString()})):$r.debug.log("worker","fetchNext().catch() and e.name is AbortError so return")}))};i()}})).catch((e=>{a&&a.signal&&a.signal.aborted?$r.debug.log("worker","fetch().catch() and abortController.signal.aborted is true so return"):e.name!==yt?($r.debug.log("worker",`fetch().catch() and e is ${e.toString()}`),Rr(),postMessage({cmd:F,type:Ue.fetchError,value:e.toString()}),l=null):$r.debug.log("worker","fetch().catch() and e.name is AbortError so return")}))):t.protocol===c&&(t.isFlv&&(l=new dr($r.demuxFlv())),n=new WebSocket(e),n.binaryType="arraybuffer",n.onopen=()=>{$r.debug.log("worker","fetchStream, WebsocketStream socket open"),postMessage({cmd:F,type:ve}),postMessage({cmd:F,type:Ee})},n.onclose=e=>{$r.debug.log("worker",`fetchStream, WebsocketStream socket close and code is ${e.code}`),1006===e.code&&$r.debug.error("worker",`fetchStream, WebsocketStream socket close abnormally and code is ${e.code}`),er(Fr)?$r.debug.log("worker","fetchStream, WebsocketStream socket close and requestAbort is true so return"):(l=null,postMessage({cmd:F,type:me,value:p,msg:e.code}))},n.onerror=e=>{$r.debug.error("worker","fetchStream, WebsocketStream socket error",e),l=null,postMessage({cmd:F,type:Ue.websocketError,value:e.isTrusted?"websocket user aborted":"websocket error"})},n.onmessage=e=>{o(e.data.byteLength),t.isFlv?l.write(e.data):t.isFmp4?$r.demuxFmp4(e.data):t.isMpeg4?$r.demuxMpeg4(e.data):$r._opt.isNakedFlow?$r.demuxNakedFlow(e.data):$r.demuxM7s(e.data)})},demuxFlv:function*(){yield 9;const e=new ArrayBuffer(4),t=new Uint8Array(e),r=new Uint32Array(e);for(;;){t[3]=0;const e=yield 15,i=e[4];t[0]=e[7],t[1]=e[6],t[2]=e[5];const s=r[0];t[0]=e[10],t[1]=e[9],t[2]=e[8],t[3]=e[11];let a=r[0];const n=(yield s).slice();switch(i){case ee:if(n.byteLength>0){let e=n;er($r._opt.m7sCryptoAudio)&&(e=$r.cryptoPayloadAudio(n)),$r.decode(e,{type:J,ts:a})}else $r.debug.warn("worker",`demuxFlv() type is audio and payload.byteLength is ${n.byteLength} and return`);break;case te:if(n.byteLength>=6){const e=n[0];if($r._isEnhancedH265Header(e))$r._decodeEnhancedH265Video(n,a);else{n[0];let e=n[0]>>4===wt;if(e&&Qt(n)&&null===wr){const e=15&n[0];wr=e===Be,Sr=Vt(n,wr),$r.debug.log("worker",`demuxFlv() isVideoSequenceHeader is true and isHevc is ${wr} and nalUnitSize is ${Sr}`)}e&&$r.calcIframeIntervalTimestamp(a),$r.isPlayer&&$r.calcNetworkDelay(a),r[0]=n[4],r[1]=n[3],r[2]=n[2],r[3]=0;let t=r[0],i=$r.cryptoPayload(n,e);$r.decode(i,{type:Q,ts:a,isIFrame:e,cts:t})}}else $r.debug.warn("worker",`demuxFlv() type is video and payload.byteLength is ${n.byteLength} and return`);break;case re:postMessage({cmd:V,buffer:n},[n.buffer]);break;default:$r.debug.log("worker",`demuxFlv() type is ${i}`)}}},decode:function(e,t){t.type===J?$r._opt.hasAudio&&(postMessage({cmd:F,type:ge,value:e.byteLength}),$r.isPlayer?$r.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts}):$r.isPlayback&&($r.isPlaybackOnlyDecodeIFrame()||($r.isPlaybackCacheBeforeDecodeForFpsRender(),$r.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts})))):t.type===Q&&$r._opt.hasVideo&&(postMessage({cmd:F,type:ye,value:e.byteLength}),postMessage({cmd:F,type:be,value:t.ts}),$r.isPlayer?$r.pushBuffer(e,{type:t.type,ts:t.ts,isIFrame:t.isIFrame,cts:t.cts}):$r.isPlayback&&($r.isPlaybackOnlyDecodeIFrame()?t.isIFrame&&$r.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts,isIFrame:t.isIFrame}):($r.isPlaybackCacheBeforeDecodeForFpsRender(),$r.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts,isIFrame:t.isIFrame}))))},cryptoPayload:function(e,t){let r=e;return $r._opt.isM7sCrypto?$r._opt.cryptoIV&&$r._opt.cryptoIV.byteLength>0&&$r._opt.cryptoKey&&$r._opt.cryptoKey.byteLength>0?r=function(e,t,r,i=!1){t=new Uint8Array(t),r=new Uint8Array(r);const s=e.byteLength;let a=5;for(;as)break;let d=e[a+4],l=!1;if(i?(d=d>>>1&63,l=[0,1,2,3,4,5,6,7,8,9,16,17,18,19,20,21].includes(d)):(d&=31,l=1===d||5===d),l){const i=e.slice(a+4+2,a+4+o);let s=new hi.ModeOfOperation.ctr(t,new hi.Counter(r));const n=s.decrypt(i);s=null,e.set(n,a+4+2)}a=a+4+o}var n;return e}(e,$r._opt.cryptoKey,$r._opt.cryptoIV,wr):$r.debug.error("worker",`isM7sCrypto cryptoKey.length is ${$r._opt.cryptoKey&&$r._opt.cryptoKey.byteLength} or cryptoIV.length is ${$r._opt.cryptoIV&&$r._opt.cryptoIV.byteLength} null`):$r._opt.isSm4Crypto?$r._opt.sm4CryptoKey&&t?r=function(e,t,r=!1){const i=e.byteLength;let s=5;for(;si)break;let o=e[s+4],d=!1;if(r?(o=o>>>1&63,d=[0,1,2,3,4,5,6,7,8,9,16,17,18,19,20,21].includes(o)):(o&=31,d=1===o||5===o),d){const r=xi(e.slice(s+4+2,s+4+n),t,0,{padding:"none",output:"array"});e.set(r,s+4+2)}s=s+4+n}var a;return e}(e,$r._opt.sm4CryptoKey):$r._opt.sm4CryptoKey||$r.debug.error("worker","isSm4Crypto opt.sm4CryptoKey is null"):$r._opt.isXorCrypto&&($r._opt.cryptoIV&&$r._opt.cryptoIV.byteLength>0&&$r._opt.cryptoKey&&$r._opt.cryptoKey.byteLength>0?r=function(e,t,r,i=!1){const s=e.byteLength;let a=5;for(;as)break;let d=e[a+4],l=!1;if(i?(d=d>>>1&63,l=[0,1,2,3,4,5,6,7,8,9,16,17,18,19,20,21].includes(d)):(d&=31,l=1===d||5===d),l){const i=ki(e.slice(a+4,a+4+o),t,r);e.set(i,a+4)}a=a+4+o}var n;return e}(e,$r._opt.cryptoKey,$r._opt.cryptoIV,wr):$r.debug.error("worker",`isXorCrypto cryptoKey.length is ${$r._opt.cryptoKey&&$r._opt.cryptoKey.byteLength} or cryptoIV.length is ${$r._opt.cryptoIV&&$r._opt.cryptoIV.byteLength} null`)),r},cryptoPayloadAudio:function(e){let t=e;if($r._opt.isM7sCrypto)if($r._opt.cryptoIV&&$r._opt.cryptoIV.byteLength>0&&$r._opt.cryptoKey&&$r._opt.cryptoKey.byteLength>0){e[0]>>4===De&&(t=function(e,t,r){if(e.byteLength<=30)return e;const i=e.slice(32);let s=new hi.ModeOfOperation.ctr(t,new hi.Counter(r));const a=s.decrypt(i);return s=null,e.set(a,32),e}(e,$r._opt.cryptoKey,$r._opt.cryptoIV))}else $r.debug.error("worker",`isM7sCrypto cryptoKey.length is ${$r._opt.cryptoKey&&$r._opt.cryptoKey.byteLength} or cryptoIV.length is ${$r._opt.cryptoIV&&$r._opt.cryptoIV.byteLength} null`);return t},setCodecAudio:function(e,t){const r=e[0]>>4,i=e[0]>>1&1;if(xr=r===De?i?16:8:0===i?8:16,Hr&&Hr.setCodecAudio)if(Ft(e)||r===Ie||r===Pe||r===Fe){$r.debug.log("worker",`setCodecAudio: init audio codec, codeId is ${r}`);const i=r===De?e.slice(2):new Uint8Array(0);Hr.setCodecAudio(r,$r._opt.sampleRate,i),r===De&&postMessage({cmd:T,buffer:i},[i.buffer]),pe=!0,r!==De&&(r===Fe?($r.mp3Demuxer||($r.mp3Demuxer=new Ci($r),$r.mp3Demuxer.on("data",((e,t)=>{Hr.decodeAudio(e,t)}))),$r.mp3Demuxer.dispatch(e.slice(1),t)):Hr.decodeAudio(e.slice(1),t))}else $r.debug.warn("worker","setCodecAudio: hasInitAudioCodec is false, codecId is ",r);else $r.debug.error("worker","setCodecAudio: audioDecoder or audioDecoder.setCodec is null")},decodeAudio:function(e,r){if($r.isDestroyed)$r.debug.log("worker","decodeAudio, decoder is destroyed and return");else if($r.isPlayUseMSEAndDecoderInWorkerAndMseDecodeAudio())Gr.decodeAudio(e,r);else if(er(t)&&er($r._opt.mseDecodeAudio))postMessage({cmd:P,payload:e,ts:r,cts:r},[e.buffer]);else{const t=e[0]>>4;if(pe){if(Ft(e))return void $r.debug.log("worker","decodeAudio and has already initialized and payload is aac codec packet so drop this frame");t===Fe?$r.mp3Demuxer.dispatch(e.slice(1),r):Hr.decodeAudio(t===De?e.slice(2):e.slice(1),r)}else $r.setCodecAudio(e,r)}},setCodecVideo:function(e){const t=15&e[0];if(Vr&&Vr.setCodec)if(Qt(e))if(t===xe||t===Be){$r.debug.log("worker",`setCodecVideo: init video codec , codecId is ${t}`);const r=e.slice(5);if(t===xe&&$r._opt.useSIMD){const e=hr(r);if(e.codecWidth>4080||e.codecHeight>4080)return postMessage({cmd:O}),void $r.debug.warn("worker",`setCodecVideo: SIMD H264 decode video width is too large, width is ${e.codecWidth}, height is ${e.codecHeight}`)}const i=new Uint8Array(e);fe=!0,Vr.setCodec(t,r),postMessage({cmd:C,code:t}),postMessage({cmd:k,buffer:i,codecId:t},[i.buffer])}else $r.debug.warn("worker",`setCodecVideo: hasInitVideoCodec is false, codecId is ${t} is not H264 or H265`);else $r.debug.warn("worker",`decodeVideo: hasInitVideoCodec is false, codecId is ${t} and frameType is ${e[0]>>4} and packetType is ${e[1]}`);else $r.debug.error("worker","setCodecVideo: videoDecoder or videoDecoder.setCodec is null")},decodeVideo:function(e,r,i,s=0){if($r.isDestroyed)$r.debug.log("worker","decodeVideo, decoder is destroyed and return");else if($r.isPlayUseMSEAndDecoderInWorker())Gr.decodeVideo(e,r,i,s);else if(er(t))postMessage({cmd:I,payload:e,isIFrame:i,ts:r,cts:s,delay:$r.delay},[e.buffer]);else if(fe)if(!ze&&i&&(ze=!0),ze){if(i&&Qt(e)){const t=15&e[0];let r={};if(t===xe){r=hr(e.slice(5))}else t===Be&&(r=Ur(e));r.codecWidth&&r.codecHeight&&y&&v&&(r.codecWidth!==y||r.codecHeight!==v)&&($r.debug.warn("worker",`\n decodeVideo: video width or height is changed,\n old width is ${y}, old height is ${v},\n new width is ${r.codecWidth}, new height is ${r.codecHeight},\n and emit change event`),or=!0,postMessage({cmd:M}))}if(or)return void $r.debug.warn("worker","decodeVideo: video width or height is changed, and return");if(cr)return void $r.debug.warn("worker","decodeVideo: simd decode error, and return");if(Qt(e))return void $r.debug.warn("worker","decodeVideo and payload is video sequence header so drop this frame");if(e.byteLength<12)return void $r.debug.warn("worker",`decodeVideo and payload is too small , payload length is ${e.byteLength}`);const t=e.slice(5);Vr.decode(t,i?1:0,r)}else $r.debug.log("worker","decodeVideo first frame is not iFrame");else $r.setCodecVideo(e)},clearBuffer:function(e=!1){$r.debug.log("worker",`clearBuffer,bufferList length is ${r.length}, need clear is ${e}`),e&&(r=[]),$r.isPlayer&&($r.resetAllDelay(),er($r._opt.checkFirstIFrame)&&($r.dropping=!0,postMessage({cmd:R}))),er($r._opt.checkFirstIFrame)&&tr(t)&&(ze=!1)},dropBuffer$2:function(){if(r.length>0){let e=r.findIndex((e=>er(e.isIFrame)&&e.type===Q));if($r.isAllIframeInBufferList())for(let t=0;t=$r.getNotDroppingDelayTs()){$r.debug.log("worker",`dropBuffer$2() isAllIframeInBufferList() is true, and index is ${t} and tempDelay is ${s} and notDroppingDelayTs is ${$r.getNotDroppingDelayTs()}`),e=t;break}}if(e>=0){$r.isPushDropping=!0,postMessage({cmd:R});const t=r.length;r=r.slice(e);const i=r.shift();$r.resetAllDelay(),$r.getDelay(i.ts,i.type),$r.doDecode(i),$r.isPushDropping=!1,$r.debug.log("worker",`dropBuffer$2() iFrameIndex is ${e},and old bufferList length is ${t} ,new bufferList is ${r.length} and new delay is ${$r.delay} `)}else $r.isPushDropping=!1}0===r.length&&($r.isPushDropping=!1)},demuxM7s:function(e){const t=new DataView(e),r=t.getUint32(1,!1),i=t.getUint8(0),s=new ArrayBuffer(4),a=new Uint32Array(s);switch(i){case J:$r.decode(new Uint8Array(e,5),{type:J,ts:r});break;case Q:if(t.byteLength>=11){const i=new Uint8Array(e,5),s=i[0];if($r._isEnhancedH265Header(s))$r._decodeEnhancedH265Video(i,r);else{const e=t.getUint8(5)>>4==1;if(e&&($r.calcIframeIntervalTimestamp(r),Qt(i)&&null===wr)){const e=15&i[0];wr=e===Be}$r.isPlayer&&$r.calcNetworkDelay(r),a[0]=i[4],a[1]=i[3],a[2]=i[2],a[3]=0;let s=a[0],n=$r.cryptoPayload(i,e);$r.decode(n,{type:Q,ts:r,isIFrame:e,cts:s})}}else $r.debug.warn("worker",`demuxM7s() type is video and arrayBuffer length is ${e.byteLength} and return`)}},demuxNakedFlow:function(e){zr.dispatch(e)},demuxFmp4:function(e){const t=new Uint8Array(e);Mr.dispatch(t)},demuxMpeg4:function(e){Nr.dispatch(e)},demuxTs:function(e){Or.dispatch(e)},_decodeEnhancedH265Video:function(e,t){const r=e[0],i=48&r,s=15&r,a=e.slice(1,5),n=new ArrayBuffer(4),o=new Uint32Array(n),d="a"==String.fromCharCode(a[0]);if(wr=tr(d),s===Bt){if(i===kt){const r=e.slice(5);if(d);else{const i=new Uint8Array(5+r.length);i.set([28,0,0,0,0],0),i.set(r,5),Sr=Vt(e,wr),$r.debug.log("worker",`demuxFlv() isVideoSequenceHeader(enhancedH265) is true and isHevc is ${wr} and nalUnitSize is ${Sr}`),$r.decode(i,{type:Q,ts:t,isIFrame:!0,cts:0})}}}else if(s===Tt){let r=e,s=0;const a=i===kt;if(a&&$r.calcIframeIntervalTimestamp(t),d);else{o[0]=e[4],o[1]=e[3],o[2]=e[2],o[3]=0,s=o[0];r=Tr(e.slice(8),a),r=$r.cryptoPayload(r,a),$r.decode(r,{type:Q,ts:t,isIFrame:a,cts:s})}}else if(s===Ct){const r=i===kt;r&&$r.calcIframeIntervalTimestamp(t);let s=Tr(e.slice(5),r);s=$r.cryptoPayload(s,r),$r.decode(s,{type:Q,ts:t,isIFrame:r,cts:0})}},_isEnhancedH265Header:function(e){return!(128&~e)},findSei:function(e,t){let r=4;Yt(Sr)||(r=Sr);const i=function(e,t=4){if(e.length<4)return;const r=e.length,i=[];let s,a=0;for(;a+t>>=8),a+=t,s){if(a+s>r)break;i.push(e.subarray(a,a+s)),a+=s}return i}(e.slice(5),r);i.forEach((e=>{const r=wr?e[0]>>>1&63:31&e[0];(wr&&(r===tt||r===et)||tr(wr)&&r===Oe)&&postMessage({cmd:H,buffer:e,ts:t},[e.buffer])}))},calcNetworkDelay:function(e){if(!(ze&&e>0))return;null===gt?(gt=e,vt=Wt()):et?r-t:0;$r.networkDelay=i,i>$r._opt.networkDelay&&$r._opt.playType===m&&($r.debug.warn("worker",`calcNetworkDelay now dts:${e}, start dts is ${gt} vs start is ${t},local diff is ${r} ,delay is ${i}`),postMessage({cmd:F,type:Se,value:i}))},calcIframeIntervalTimestamp:function(e){null===rr?rr=e:rr=$r._opt.playbackForwardMaxRateDecodeIFrame},isPlayUseMSE:function(){return $r.isPlayer&&$r._opt.useMSE&&er(t)},isPlayUseMSEAndDecoderInWorker:function(){return $r.isPlayUseMSE()&&$r._opt.mseDecoderUseWorker},isPlayUseMSEAndDecoderInWorkerAndMseDecodeAudio:function(){return $r.isPlayUseMSEAndDecoderInWorker()&&$r._opt.mseDecodeAudio},playbackUpdatePlaybackRate:function(){$r.clearBuffer(!0)},onOffscreenCanvasWebglContextLost:function(e){$r.debug.error("worker","handleOffscreenCanvasWebglContextLost and next try to create webgl"),e.preventDefault(),nr=!0,$r.webglObj.destroy(),$r.webglObj=null,$r.offscreenCanvasGL=null,setTimeout((()=>{$r.offscreenCanvasGL=$r.offscreenCanvas.getContext("webgl"),$r.offscreenCanvasGL&&$r.offscreenCanvasGL.getContextAttributes().stencil?($r.webglObj=u($r.offscreenCanvasGL,$r._opt.openWebglAlignment),nr=!1):$r.debug.error("worker","handleOffscreenCanvasWebglContextLost, stencil is false")}),500)},onOffscreenCanvasWebglContextRestored:function(e){$r.debug.log("worker","handleOffscreenCanvasWebglContextRestored"),e.preventDefault()},videoInfo:function(e,t,r){postMessage({cmd:C,code:e}),postMessage({cmd:S,w:t,h:r}),y=t,v=r,$r.useOffscreen()&&($r.offscreenCanvas=new OffscreenCanvas(t,r),$r.offscreenCanvasGL=$r.offscreenCanvas.getContext("webgl"),$r.webglObj=u($r.offscreenCanvasGL,$r._opt.openWebglAlignment),$r.offscreenCanvas.addEventListener("webglcontextlost",$r.onOffscreenCanvasWebglContextLost,!1),$r.offscreenCanvas.addEventListener("webglcontextrestored",$r.onOffscreenCanvasWebglContextRestored,!1))},audioInfo:function(e,t,r){postMessage({cmd:x,code:e}),postMessage({cmd:A,sampleRate:t,channels:r,depth:xr}),jt=r},yuvData:function(t,r){if($r.isDestroyed)return void $r.debug.log("worker","yuvData, decoder is destroyed and return");const i=y*v*3/2;let s=e.HEAPU8.subarray(t,t+i),a=new Uint8Array(s);if(It=null,$r.useOffscreen())try{if(nr)return;$r.webglObj.renderYUV(y,v,a);let e=$r.offscreenCanvas.transferToImageBitmap();postMessage({cmd:E,buffer:e,delay:$r.delay,ts:r},[e])}catch(e){$r.debug.error("worker","yuvData, transferToImageBitmap error is",e)}else postMessage({cmd:E,output:a,delay:$r.delay,ts:r},[a.buffer])},pcmData:function(t,r,s){if($r.isDestroyed)return void $r.debug.log("worker","pcmData, decoder is destroyed and return");let a=r,n=[],o=0,d=$r._opt.audioBufferSize;for(let r=0;r<2;r++){let i=e.HEAPU32[(t>>2)+r]>>2;n[r]=e.HEAPF32.subarray(i,i+a)}if(zt){if(!(a>=(r=d-zt)))return zt+=a,i[0]=Float32Array.of(...i[0],...n[0]),void(2==jt&&(i[1]=Float32Array.of(...i[1],...n[1])));Dt[0]=Float32Array.of(...i[0],...n[0].subarray(0,r)),2==jt&&(Dt[1]=Float32Array.of(...i[1],...n[1].subarray(0,r))),postMessage({cmd:U,buffer:Dt,ts:s},Dt.map((e=>e.buffer))),o=r,a-=r}for(zt=a;zt>=d;zt-=d)Dt[0]=n[0].slice(o,o+=d),2==jt&&(Dt[1]=n[1].slice(o-d,o)),postMessage({cmd:U,buffer:Dt,ts:s},Dt.map((e=>e.buffer)));zt&&(i[0]=n[0].slice(o),2==jt&&(i[1]=n[1].slice(o)))},errorInfo:function(e){null===It&&(It=Wt());const t=Wt(),r=(i=Rt>0?2*Rt:5e3,s=1e3,a=5e3,Math.max(Math.min(i,Math.max(s,a)),Math.min(s,a)));var i,s,a;const n=t-It;n>r&&($r.debug.warn("worker",`errorInfo() emit simdDecodeError and\n iframeIntervalTimestamp is ${Rt} and diff is ${n} and maxDiff is ${r}\n and replay`),cr=!0,postMessage({cmd:N}))},sendWebsocketMessage:function(e){n?n.readyState===Ae?n.send(e):$r.debug.error("worker","socket is not open"):$r.debug.error("worker","socket is null")},timeEnd:function(){},postStreamToMain(e,t){postMessage({cmd:$,type:t,buffer:e},[e.buffer])}};$r.debug=new lr($r);let Hr=null;e.AudioDecoder&&(Hr=new e.AudioDecoder($r));let Vr=null;e.VideoDecoder&&(Vr=$r._opt.useSIMD?new e.VideoDecoderSimd($r):new e.VideoDecoder($r)),postMessage({cmd:w}),self.onmessage=function(e){let t=e.data;if(!$r.isTimeWait)switch(t.cmd){case ie:try{$r._opt=Object.assign($r._opt,JSON.parse(t.opt))}catch(e){}$r.init();break;case se:$r.pushBuffer(t.buffer,t.options);break;case ae:$r.decodeAudio(t.buffer,t.ts);break;case ne:$r.decodeVideo(t.buffer,t.ts,t.isIFrame);break;case le:$r.clearBuffer(t.needClear),$r.isTimeWait=!0,setTimeout((()=>{$r.isTimeWait=!1}),1e3);break;case ue:$r.fetchStream(t.url,JSON.parse(t.opt));break;case oe:$r.close();break;case de:$r.debug.log("worker","updateConfig",t.key,t.value),$r._opt[t.key]=t.value,"playbackRate"===t.key&&($r.playbackUpdatePlaybackRate(),$r.isPlaybackCacheBeforeDecodeForFpsRender()&&$r.playbackCacheLoop());break;case ce:$r.sendWebsocketMessage(t.message);break;case he:Gr.$video.currentTime=Number(t.message)}}}Date.now||(Date.now=function(){return(new Date).getTime()});const is=[];is.push(t({printErr:function(e){console.log("EasyPlayerPro[worker][true]",e)}})),Promise.all(is).then((e=>{rs(e[0],!0)}))}));