trtc-sdk-v5
Version:
Tencent Cloud RTC SDK for Web
1 lines • 424 kB
JavaScript
var __create=Object.create,__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropSymbols=Object.getOwnPropertySymbols,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,n)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,__spreadValues=(e,t)=>{for(var n in t||(t={}))__hasOwnProp.call(t,n)&&__defNormalProp(e,n,t[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(t))__propIsEnum.call(t,n)&&__defNormalProp(e,n,t[n]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__objRest=(e,t)=>{var n={};for(var r in e)__hasOwnProp.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&__getOwnPropSymbols)for(var r of __getOwnPropSymbols(e))t.indexOf(r)<0&&__propIsEnum.call(e,r)&&(n[r]=e[r]);return n},__commonJS=(e,t)=>function(){return t||(0,e[__getOwnPropNames(e)[0]])((t={exports:{}}).exports,t),t.exports},__copyProps=(e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of __getOwnPropNames(t))__hasOwnProp.call(e,o)||o===n||__defProp(e,o,{get:()=>t[o],enumerable:!(r=__getOwnPropDesc(t,o))||r.enumerable});return e},__toESM=(e,t,n)=>(n=null!=e?__create(__getProtoOf(e)):{},__copyProps(!t&&e&&e.__esModule?n:__defProp(n,"default",{value:e,enumerable:!0}),e)),__decorateClass=(e,t,n,r)=>{for(var o,a=r>1?void 0:r?__getOwnPropDesc(t,n):t,s=e.length-1;s>=0;s--)(o=e[s])&&(a=(r?o(t,n,a):o(a))||a);return r&&a&&__defProp(t,n,a),a},__publicField=(e,t,n)=>__defNormalProp(e,"symbol"!=typeof t?t+"":t,n),require_eventemitter3=__commonJS({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(e,t){"use strict";var n=Object.prototype.hasOwnProperty,r="~";function o(){}function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,n,o,s){if("function"!=typeof n)throw new TypeError("The listener must be a function");var i=new a(n,o||e,s),d=r?r+t:t;return e._events[d]?e._events[d].fn?e._events[d]=[e._events[d],i]:e._events[d].push(i):(e._events[d]=i,e._eventsCount++),e}function i(e,t){0===--e._eventsCount?e._events=new o:delete e._events[t]}function d(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),(new o).__proto__||(r=!1)),d.prototype.eventNames=function(){var e,t,o=[];if(0===this._eventsCount)return o;for(t in e=this._events)n.call(e,t)&&o.push(r?t.slice(1):t);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},d.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,a=n.length,s=new Array(a);o<a;o++)s[o]=n[o].fn;return s},d.prototype.listenerCount=function(e){var t=r?r+e:e,n=this._events[t];return n?n.fn?1:n.length:0},d.prototype.emit=function(e,t,n,o,a,s){var i=r?r+e:e;if(!this._events[i])return!1;var d,l,c=this._events[i],u=arguments.length;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,o),!0;case 5:return c.fn.call(c.context,t,n,o,a),!0;case 6:return c.fn.call(c.context,t,n,o,a,s),!0}for(l=1,d=new Array(u-1);l<u;l++)d[l-1]=arguments[l];c.fn.apply(c.context,d)}else{var p,f=c.length;for(l=0;l<f;l++)switch(c[l].once&&this.removeListener(e,c[l].fn,void 0,!0),u){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,t);break;case 3:c[l].fn.call(c[l].context,t,n);break;case 4:c[l].fn.call(c[l].context,t,n,o);break;default:if(!d)for(p=1,d=new Array(u-1);p<u;p++)d[p-1]=arguments[p];c[l].fn.apply(c[l].context,d)}}return!0},d.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},d.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},d.prototype.removeListener=function(e,t,n,o){var a=r?r+e:e;if(!this._events[a])return this;if(!t)return i(this,a),this;var s=this._events[a];if(s.fn)s.fn!==t||o&&!s.once||n&&s.context!==n||i(this,a);else{for(var d=0,l=[],c=s.length;d<c;d++)(s[d].fn!==t||o&&!s[d].once||n&&s[d].context!==n)&&l.push(s[d]);l.length?this._events[a]=1===l.length?l[0]:l:i(this,a)}return this},d.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&i(this,t)):(this._events=new o,this._eventsCount=0),this},d.prototype.off=d.prototype.removeListener,d.prototype.addListener=d.prototype.on,d.prefixed=r,d.EventEmitter=d,void 0!==t&&(t.exports=d)}}),require_grammar=__commonJS({"../node_modules/.pnpm/sdp-transform@2.15.0/node_modules/sdp-transform/lib/grammar.js"(e,t){"use strict";var n=t.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return null!=e.address?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return null!=e.subtype?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return null!=e.sessionConfig?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var t="candidate:%s %d %s %d %s %d typ %s";return t+=null!=e.raddr?" raddr %s rport %d":"%v%v",t+=null!=e.tcptype?" tcptype %s":"%v",null!=e.generation&&(t+=" generation %d"),t+=null!=e["network-id"]?" network-id %d":"%v",t+=null!=e["network-cost"]?" network-cost %d":"%v"}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var t="ssrc:%d";return null!=e.attribute&&(t+=" %s",null!=e.value&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return null!=e.maxMessageSize?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(null!=e.clksrcExt?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+=null!=e.id?"id=%s %s":"%v%s",t+=null!=e.mediaClockValue?"=%s":"",t+=null!=e.rateNumerator?" rate=%s":"",t+=null!=e.rateDenominator?"/%s":""}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(n).forEach(function(e){n[e].forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})}}),require_parser=__commonJS({"../node_modules/.pnpm/sdp-transform@2.15.0/node_modules/sdp-transform/lib/parser.js"(e){"use strict";var t=function(e){return String(Number(e))===e?Number(e):e},n=function(e,n,r){var o=e.name&&e.names;e.push&&!n[e.push]?n[e.push]=[]:o&&!n[e.name]&&(n[e.name]={});var a=e.push?{}:o?n[e.name]:n;!function(e,n,r,o){if(o&&!r)n[o]=t(e[1]);else for(var a=0;a<r.length;a+=1)null!=e[a+1]&&(n[r[a]]=t(e[a+1]))}(r.match(e.reg),a,e.names,e.name),e.push&&n[e.push].push(a)},r=require_grammar(),o=RegExp.prototype.test.bind(/^([a-z])=(.*)/);e.parse=function(e){var t={},a=[],s=t;return e.split(/(\r\n|\r|\n)/).filter(o).forEach(function(e){var t=e[0],o=e.slice(2);"m"===t&&(a.push({rtp:[],fmtp:[]}),s=a[a.length-1]);for(var i=0;i<(r[t]||[]).length;i+=1){var d=r[t][i];if(d.reg.test(o))return n(d,s,o)}}),t.media=a,t};var a=function(e,n){var r=n.split(/=(.+)/,2);return 2===r.length?e[r[0]]=t(r[1]):1===r.length&&n.length>1&&(e[r[0]]=void 0),e};e.parseParams=function(e){return e.split(/;\s?/).reduce(a,{})},e.parseFmtpConfig=e.parseParams,e.parsePayloads=function(e){return e.toString().split(" ").map(Number)},e.parseRemoteCandidates=function(e){for(var n=[],r=e.split(" ").map(t),o=0;o<r.length;o+=3)n.push({component:r[o],ip:r[o+1],port:r[o+2]});return n},e.parseImageAttributes=function(e){return e.split(" ").map(function(e){return e.substring(1,e.length-1).split(",").reduce(a,{})})},e.parseSimulcastStreamList=function(e){return e.split(";").map(function(e){return e.split(",").map(function(e){var n,r=!1;return"~"!==e[0]?n=t(e):(n=t(e.substring(1,e.length)),r=!0),{scid:n,paused:r}})})}}}),require_writer=__commonJS({"../node_modules/.pnpm/sdp-transform@2.15.0/node_modules/sdp-transform/lib/writer.js"(e,t){"use strict";var n=require_grammar(),r=/%[sdv%]/g,o=function(e){var t=1,n=arguments,o=n.length;return e.replace(r,function(e){if(t>=o)return e;var r=n[t];switch(t+=1,e){case"%%":return"%";case"%s":return String(r);case"%d":return Number(r);case"%v":return""}})},a=function(e,t,n){var r=[e+"="+(t.format instanceof Function?t.format(t.push?n:n[t.name]):t.format)];if(t.names)for(var a=0;a<t.names.length;a+=1){var s=t.names[a];t.name?r.push(n[t.name][s]):r.push(n[t.names[a]])}else r.push(n[t.name]);return o.apply(null,r)},s=["v","o","s","i","u","e","p","c","b","t","r","z","a"],i=["i","c","b","a"];t.exports=function(e,t){t=t||{},null==e.version&&(e.version=0),null==e.name&&(e.name=" "),e.media.forEach(function(e){null==e.payloads&&(e.payloads="")});var r=t.outerOrder||s,o=t.innerOrder||i,d=[];return r.forEach(function(t){n[t].forEach(function(n){n.name in e&&null!=e[n.name]?d.push(a(t,n,e)):n.push in e&&null!=e[n.push]&&e[n.push].forEach(function(e){d.push(a(t,n,e))})})}),e.media.forEach(function(e){d.push(a("m",n.m[0],e)),o.forEach(function(t){n[t].forEach(function(n){n.name in e&&null!=e[n.name]?d.push(a(t,n,e)):n.push in e&&null!=e[n.push]&&e[n.push].forEach(function(e){d.push(a(t,n,e))})})})}),d.join("\r\n")+"\r\n"}}}),require_lib=__commonJS({"../node_modules/.pnpm/sdp-transform@2.15.0/node_modules/sdp-transform/lib/index.js"(e){"use strict";var t=require_parser(),n=require_writer(),r=require_grammar();e.grammar=r,e.write=n,e.parse=t.parse,e.parseParams=t.parseParams,e.parseFmtpConfig=t.parseFmtpConfig,e.parsePayloads=t.parsePayloads,e.parseRemoteCandidates=t.parseRemoteCandidates,e.parseImageAttributes=t.parseImageAttributes,e.parseSimulcastStreamList=t.parseSimulcastStreamList}}),import_eventemitter3=__toESM(require_eventemitter3(),1),instance=Symbol("instance"),abortCtrl=Symbol("abortCtrl"),cacheResult=Symbol("cacheResult"),MiddleState=class{constructor(e,t,n){this.oldState=e,this.newState=t,this.action=n,this.aborted=!1}abort(e){this.aborted=!0,setState.call(e,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},FSMError=class extends Error{constructor(e,t,n){super(t),this.state=e,this.message=t,this.cause=n}};function thenAble(e){return"object"==typeof e&&e&&"then"in e}var stateDiagram=new Map;function ChangeState(e,t,n={}){return(r,o,a)=>{const s=n.action||o;if(!n.context){const n=stateDiagram.get(r)||[];stateDiagram.has(r)||stateDiagram.set(r,n),n.push({from:e,to:t,action:s})}const i=a.value;a.value=function(...r){let o=this;if(n.context&&(o=FSM.get("function"==typeof n.context?n.context.call(this,...r):n.context)),o.state===t)return n.sync?o[cacheResult]:Promise.resolve(o[cacheResult]);o.state instanceof MiddleState&&o.state.action==n.abortAction&&o.state.abort(o);let a=null;Array.isArray(e)?0==e.length?o.state instanceof MiddleState&&o.state.abort(o):"string"==typeof o.state&&e.includes(o.state)||(a=new FSMError(o._state,`${o.name} ${s} to ${t} failed: current state ${o._state} not from ${e.join("|")}`)):e!==o.state&&(a=new FSMError(o._state,`${o.name} ${s} to ${t} failed: current state ${o._state} not from ${e}`));const d=e=>{if(n.fail&&n.fail.call(this,e),n.sync){if(n.ignoreError)return e;throw e}return n.ignoreError?Promise.resolve(e):Promise.reject(e)};if(a)return d(a);const l=o.state,c=new MiddleState(l,t,s);setState.call(o,c);const u=e=>{var r;return o[cacheResult]=e,c.aborted||(setState.call(o,t),null===(r=n.success)||void 0===r||r.call(this,o[cacheResult])),e},p=e=>(setState.call(o,l,e),d(e));try{const e=i.apply(this,r);return thenAble(e)?e.then(u).catch(p):n.sync?u(e):Promise.resolve(u(e))}catch(n){return p(new FSMError(o._state,`${o.name} ${s} from ${e} to ${t} failed: ${n}`,n instanceof Error?n:new Error(String(n))))}}}}function Includes(...e){return(t,n,r)=>{const o=r.value,a=n;r.value=function(...t){if(!e.includes(this.state.toString()))throw new FSMError(this.state,`${this.name} ${a} failed: current state ${this.state} not in ${e}`);return o.apply(this,t)}}}var sendDevTools=(()=>{const e="undefined"!=typeof window&&window.__AFSM__,t="undefined"!=typeof importScripts;return e?(e,t)=>{window.dispatchEvent(new CustomEvent(e,{detail:t}))}:t?(e,t)=>{postMessage({type:e,payload:t})}:()=>{}})();function setState(e,t){const n=this._state;this._state=e;const r=e.toString();e&&this.emit(r,n),this.emit(FSM.STATECHANGED,e,n,t),this.updateDevTools({value:e,old:n,err:t instanceof Error?t.message:String(t)})}var FSM=class e extends import_eventemitter3.default{constructor(t,n,r){super(),this.name=t,this.groupName=n,this._state=e.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),n||(this.groupName=this.constructor.name);const o=r[instance];o?this.name=o.name+"-"+o.count++:r[instance]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){const e=Object.getPrototypeOf(this),t=stateDiagram.get(e)||[];let n=new Set,r=[],o=[];const a=new Set,s=Object.getPrototypeOf(e);stateDiagram.has(s)&&(s.stateDiagram.forEach(e=>n.add(e)),s.allStates.forEach(e=>a.add(e))),t.forEach(({from:e,to:t,action:n})=>{"string"==typeof e?r.push({from:e,to:t,action:n}):e.length?e.forEach(e=>{r.push({from:e,to:t,action:n})}):o.push({to:t,action:n})}),r.forEach(({from:e,to:t,action:r})=>{a.add(e),a.add(t),a.add(r+"ing"),n.add(`${e} --\x3e ${r}ing : ${r}`),n.add(`${r}ing --\x3e ${t} : ${r} 🟢`),n.add(`${r}ing --\x3e ${e} : ${r} 🔴`)}),o.forEach(({to:e,action:t})=>{n.add(`${t}ing --\x3e ${e} : ${t} 🟢`),a.forEach(r=>{r!==e&&n.add(`${r} --\x3e ${t}ing : ${t}`)})});const i=[...n];return Object.defineProperties(e,{stateDiagram:{value:i},allStates:{value:a}}),i}static get(t){let n;return"string"==typeof t?(n=e.instances.get(t),n||e.instances.set(t,n=new e(t,void 0,Object.create(e.prototype)))):(n=e.instances2.get(t),n||e.instances2.set(t,n=new e(t.constructor.name,void 0,Object.create(e.prototype)))),n}static getState(t){var n;return null===(n=e.get(t))||void 0===n?void 0:n.state}updateDevTools(t={}){sendDevTools(e.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(e){setState.call(this,e)}};FSM.STATECHANGED="stateChanged",FSM.UPDATEAFSM="updateAFSM",FSM.INIT="[*]",FSM.ON="on",FSM.OFF="off",FSM.instances=new Map,FSM.instances2=new WeakMap;var VideoDecoderHard=class extends FSM{constructor(){super(...arguments),__publicField(this,"decoder"),__publicField(this,"config")}async initialize(){this.decoder=new VideoDecoder({output:e=>{this.emit("videoFrame",e)},error:e=>{this.close(),this.emit("error",e)}})}configure(e){this.config=e,e.description||"av1"===e.codec||(this.config[e.codec]={format:"annexb"}),this.decoder.configure(__spreadProps(__spreadValues({},e),{codec:this.getCodec(e)}))}getCodec(e){switch(e.codec){case"hevc":return"hvc1.1.6.L0.12.34.56.78.9A.BC";case"av1":return"av01.0.05M.08";case"avc":return"avc1.420028";default:return e.codec}}decode(e){"configured"===this.decoder.state&&this.decoder.decode(new EncodedVideoChunk(e))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){"closed"!==this.decoder.state&&this.decoder.close()}};function WorkerScripts(){var e;self.onmessage=t=>{if("init"===t.data.type){const{canvas:n,wasmScript:r,wasmBinary:o}=t.data,a=null==n?void 0:n.getContext("2d");let s=0,i=0;const d={wasmBinary:o,postRun:()=>{e=new d.VideoDecoder({videoInfo(e,t){s=e,i=t,console.log("video info",e,t)},yuvData(e,t){const r=s*i,o=r>>2;let l=d.HEAPU32[e>>2],c=d.HEAPU32[1+(e>>2)],u=d.HEAPU32[2+(e>>2)],p=d.HEAPU8.subarray(l,l+r),f=d.HEAPU8.subarray(c,c+o),m=d.HEAPU8.subarray(u,u+o);const h=new Uint8Array(r+o+o);h.set(p),h.set(f,r),h.set(m,r+o);const _=new VideoFrame(h,{codedWidth:s,codedHeight:i,format:"I420",timestamp:t});n?(null==a||a.drawImage(_,0,0,n.width,n.height),null==a||a.commit()):self.postMessage({type:"yuvData",videoFrame:_},[_])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(d)}else if("decode"===t.data.type){const{packet:n}=t.data;null==e||e.decode(n.data,"key"==n.type,n.timestamp)}else if("setCodec"===t.data.type){const{codec:n,format:r,description:o}=t.data;null==e||e.setCodec(n,r,null!=o?o:"")}}}__decorateClass([ChangeState([FSM.INIT,"closed"],"initialized")],VideoDecoderHard.prototype,"initialize",1),__decorateClass([ChangeState("initialized","configured",{sync:!0})],VideoDecoderHard.prototype,"configure",1),__decorateClass([Includes("configured")],VideoDecoderHard.prototype,"decode",1),__decorateClass([ChangeState([],FSM.INIT,{sync:!0})],VideoDecoderHard.prototype,"reset",1),__decorateClass([ChangeState([],"closed",{ignoreError:!0,sync:!0})],VideoDecoderHard.prototype,"close",1);var VideoDecoderSoftBase=class extends FSM{constructor(e,t,n=!1,r,o=!1){super(),this.createModule=e,this.wasmBinary=t,this.workerMode=n,this.canvas=r,this.yuvMode=o,__publicField(this,"worker"),__publicField(this,"decoder"),__publicField(this,"config"),__publicField(this,"module",{}),__publicField(this,"width",0),__publicField(this,"height",0)}async initialize(e){var t;if(this.workerMode){const e=new RegExp("\\{(.+)\\}","s").exec(WorkerScripts.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([e],{type:"text/javascript"})));const n=null==(t=this.canvas)?void 0:t.transferControlToOffscreen(),r=await this.wasmBinary;return console.warn("worker mode",r),this.worker.postMessage({type:"init",canvas:n,wasmScript:this.createModule.toString(),wasmBinary:r},n?[n,r]:[r]),new Promise(e=>{this.worker.onmessage=t=>{if("ready"===t.data.type)delete this.wasmBinary,e(),console.warn("worker mode initialize success");else if("yuvData"===t.data.type){const{videoFrame:e}=t.data;this.emit("videoFrame",e)}}})}const n=this.module;return this.wasmBinary&&(n.wasmBinary=await this.wasmBinary),n.print=e=>console.log(e),n.printErr=e=>console.log(`[JS] ERROR: ${e}`),n.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise(t=>{n.postRun=e=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),t()},e&&Object.assign(n,e),this.createModule(n)})}configure(e){var t,n,r;this.config=e;const o=this.config.codec.startsWith("avc")?"avc":"hevc",a=this.config.description?"avc"==o?"avcc":"hvcc":"annexb";null==(n=this.decoder)||n.setCodec(o,a,null!=(t=this.config.description)?t:""),null==(r=this.worker)||r.postMessage({type:"setCodec",codec:o,format:a,description:this.config.description})}decode(e){var t,n;null==(t=this.decoder)||t.decode(e.data,"key"==e.type,e.timestamp),"configured"===this.state&&(null==(n=this.worker)||n.postMessage({type:"decode",packet:e}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(e,t){this.width=e,this.height=t;let n={width:e,height:t};this.emit("videoCodecInfo",n)}yuvData(e,t){if(!this.module)return;const n=this.width*this.height,r=n>>2;let o=this.module.HEAPU32[e>>2],a=this.module.HEAPU32[1+(e>>2)],s=this.module.HEAPU32[2+(e>>2)],i=this.module.HEAPU8.subarray(o,o+n),d=this.module.HEAPU8.subarray(a,a+r),l=this.module.HEAPU8.subarray(s,s+r);if(this.yuvMode)return void this.emit("videoFrame",{y:i,u:d,v:l,timestamp:t});const c=new Uint8Array(n+r+r);c.set(i),c.set(d,n),c.set(l,n+r),this.emit("videoFrame",new VideoFrame(c,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:t}))}errorInfo(e){let t={errMsg:e};this.emit("error",t)}};__decorateClass([ChangeState([FSM.INIT,"closed"],"initialized")],VideoDecoderSoftBase.prototype,"initialize",1),__decorateClass([ChangeState("initialized","configured",{sync:!0})],VideoDecoderSoftBase.prototype,"configure",1),__decorateClass([ChangeState([],FSM.INIT,{sync:!0})],VideoDecoderSoftBase.prototype,"reset",1),__decorateClass([ChangeState([],"closed",{sync:!0})],VideoDecoderSoftBase.prototype,"close",1);var Module=(()=>{var e="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var n,r,o=t;o.ready=new Promise((e,t)=>{n=e,r=t});var a,s,i,d=Object.assign({},o),l="./this.program",c="object"==typeof window,u="function"==typeof importScripts,p=("object"==typeof process&&"object"==typeof process.versions&&process.versions.node,"");(c||u)&&(u?p=self.location.href:"undefined"!=typeof document&&document.currentScript&&(p=document.currentScript.src),e&&(p=e),p=0!==p.indexOf("blob:")?p.substr(0,p.replace(/[?#].*/,"").lastIndexOf("/")+1):"",a=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},u&&(i=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),s=(e,t,n)=>{var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=()=>{200==r.status||0==r.status&&r.response?t(r.response):n()},r.onerror=n,r.send(null)});var f,m=o.print||console.log.bind(console),h=o.printErr||console.error.bind(console);Object.assign(o,d),d=null,o.arguments&&o.arguments,o.thisProgram&&(l=o.thisProgram),o.quit&&o.quit,o.wasmBinary&&(f=o.wasmBinary);var _,g;o.noExitRuntime;"object"!=typeof WebAssembly&&U("no native wasm support detected");var v,E,y,S,w,T,I,A,b,R=!1;var D=[],C=[],F=[];function P(e){D.unshift(e)}function O(e){F.unshift(e)}var k=0,M=null,N=null;function L(e){k++,o.monitorRunDependencies&&o.monitorRunDependencies(k)}function $(e){if(k--,o.monitorRunDependencies&&o.monitorRunDependencies(k),0==k&&(null!==M&&(clearInterval(M),M=null),N)){var t=N;N=null,t()}}function U(e){o.onAbort&&o.onAbort(e),h(e="Aborted("+e+")"),R=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw r(t),t}var H,B,x,V;function W(e){return e.startsWith("data:application/octet-stream;base64,")}function j(e){if(e==H&&f)return new Uint8Array(f);if(i)return i(e);throw"both async and sync fetching of the wasm failed"}function z(e,t,n){return function(e){return f||!c&&!u||"function"!=typeof fetch?Promise.resolve().then(()=>j(e)):fetch(e,{credentials:"same-origin"}).then(t=>{if(!t.ok)throw"failed to load wasm binary file at '"+e+"'";return t.arrayBuffer()}).catch(()=>j(e))}(e).then(e=>WebAssembly.instantiate(e,t)).then(e=>e).then(n,e=>{h("failed to asynchronously prepare wasm: "+e),U(e)})}W(H="videodec.wasm")||(B=H,H=o.locateFile?o.locateFile(B,p):p+B);var G=e=>{for(;e.length>0;)e.shift()(o)};function K(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){T[this.ptr+4>>2]=e},this.get_type=function(){return T[this.ptr+4>>2]},this.set_destructor=function(e){T[this.ptr+8>>2]=e},this.get_destructor=function(){return T[this.ptr+8>>2]},this.set_caught=function(e){e=e?1:0,v[this.ptr+12|0]=e},this.get_caught=function(){return 0!=v[this.ptr+12|0]},this.set_rethrown=function(e){e=e?1:0,v[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=v[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){T[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Qt(this.get_type()))return T[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}var q={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var n=0,r=e.length-1;r>=0;r--){var o=e[r];"."===o?e.splice(r,1):".."===o?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n;n--)e.unshift("..");return e},normalize:e=>{var t=q.isAbs(e),n="/"===e.substr(-1);return(e=q.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/"))||t||(e="."),e&&n&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=q.splitPath(e),n=t[0],r=t[1];return n||r?(r&&(r=r.substr(0,r.length-1)),n+r):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=q.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments);return q.normalize(e.join("/"))},join2:(e,t)=>q.normalize(e+"/"+t)},X=e=>(X=(()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return e=>crypto.getRandomValues(e);U("initRandomDevice")})())(e),Q={resolve:function(){for(var e="",t=!1,n=arguments.length-1;n>=-1&&!t;n--){var r=n>=0?arguments[n]:le.cwd();if("string"!=typeof r)throw new TypeError("Arguments to path.resolve must be strings");if(!r)return"";e=r+"/"+e,t=q.isAbs(r)}return(t?"/":"")+(e=q.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/"))||"."},relative:(e,t)=>{function n(e){for(var t=0;t<e.length&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=Q.resolve(e).substr(1),t=Q.resolve(t).substr(1);for(var r=n(e.split("/")),o=n(t.split("/")),a=Math.min(r.length,o.length),s=a,i=0;i<a;i++)if(r[i]!==o[i]){s=i;break}var d=[];for(i=s;i<r.length;i++)d.push("..");return(d=d.concat(o.slice(s))).join("/")}},Y="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,J=(e,t,n)=>{for(var r=t+n,o=t;e[o]&&!(o>=r);)++o;if(o-t>16&&e.buffer&&Y)return Y.decode(e.subarray(t,o));for(var a="";t<o;){var s=e[t++];if(128&s){var i=63&e[t++];if(192!=(224&s)){var d=63&e[t++];if((s=224==(240&s)?(15&s)<<12|i<<6|d:(7&s)<<18|i<<12|d<<6|63&e[t++])<65536)a+=String.fromCharCode(s);else{var l=s-65536;a+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else a+=String.fromCharCode((31&s)<<6|i)}else a+=String.fromCharCode(s)}return a},Z=[],ee=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r<=127?t++:r<=2047?t+=2:r>=55296&&r<=57343?(t+=4,++n):t+=3}return t},te=(e,t,n,r)=>{if(!(r>0))return 0;for(var o=n,a=n+r-1,s=0;s<e.length;++s){var i=e.charCodeAt(s);if(i>=55296&&i<=57343)i=65536+((1023&i)<<10)|1023&e.charCodeAt(++s);if(i<=127){if(n>=a)break;t[n++]=i}else if(i<=2047){if(n+1>=a)break;t[n++]=192|i>>6,t[n++]=128|63&i}else if(i<=65535){if(n+2>=a)break;t[n++]=224|i>>12,t[n++]=128|i>>6&63,t[n++]=128|63&i}else{if(n+3>=a)break;t[n++]=240|i>>18,t[n++]=128|i>>12&63,t[n++]=128|i>>6&63,t[n++]=128|63&i}}return t[n]=0,n-o};function ne(e,t,n){var r=n>0?n:ee(e)+1,o=new Array(r),a=te(e,o,0,o.length);return t&&(o.length=a),o}var re={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){re.ttys[e]={input:[],output:[],ops:t},le.registerDevice(e,re.stream_ops)},stream_ops:{open:function(e){var t=re.ttys[e.node.rdev];if(!t)throw new le.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.fsync(e.tty)},fsync:function(e){e.tty.ops.fsync(e.tty)},read:function(e,t,n,r,o){if(!e.tty||!e.tty.ops.get_char)throw new le.ErrnoError(60);for(var a=0,s=0;s<r;s++){var i;try{i=e.tty.ops.get_char(e.tty)}catch(e){throw new le.ErrnoError(29)}if(void 0===i&&0===a)throw new le.ErrnoError(6);if(null==i)break;a++,t[n+s]=i}return a&&(e.node.timestamp=Date.now()),a},write:function(e,t,n,r,o){if(!e.tty||!e.tty.ops.put_char)throw new le.ErrnoError(60);try{for(var a=0;a<r;a++)e.tty.ops.put_char(e.tty,t[n+a])}catch(e){throw new le.ErrnoError(29)}return r&&(e.node.timestamp=Date.now()),a}},default_tty_ops:{get_char:function(e){return(()=>{if(!Z.length){var e=null;if("undefined"!=typeof window&&"function"==typeof window.prompt?null!==(e=window.prompt("Input: "))&&(e+="\n"):"function"==typeof readline&&null!==(e=readline())&&(e+="\n"),!e)return null;Z=ne(e,!0)}return Z.shift()})()},put_char:function(e,t){null===t||10===t?(m(J(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(m(J(e.output,0)),e.output=[])},ioctl_tcgets:function(e){return{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:function(e,t,n){return 0},ioctl_tiocgwinsz:function(e){return[24,80]}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(h(J(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(h(J(e.output,0)),e.output=[])}}},oe=e=>{U()},ae={ops_table:null,mount:e=>ae.createNode(null,"/",16895,0),createNode(e,t,n,r){if(le.isBlkdev(n)||le.isFIFO(n))throw new le.ErrnoError(63);ae.ops_table||(ae.ops_table={dir:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr,lookup:ae.node_ops.lookup,mknod:ae.node_ops.mknod,rename:ae.node_ops.rename,unlink:ae.node_ops.unlink,rmdir:ae.node_ops.rmdir,readdir:ae.node_ops.readdir,symlink:ae.node_ops.symlink},stream:{llseek:ae.stream_ops.llseek}},file:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr},stream:{llseek:ae.stream_ops.llseek,read:ae.stream_ops.read,write:ae.stream_ops.write,allocate:ae.stream_ops.allocate,mmap:ae.stream_ops.mmap,msync:ae.stream_ops.msync}},link:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr,readlink:ae.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr},stream:le.chrdev_stream_ops}});var o=le.createNode(e,t,n,r);return le.isDir(o.mode)?(o.node_ops=ae.ops_table.dir.node,o.stream_ops=ae.ops_table.dir.stream,o.contents={}):le.isFile(o.mode)?(o.node_ops=ae.ops_table.file.node,o.stream_ops=ae.ops_table.file.stream,o.usedBytes=0,o.contents=null):le.isLink(o.mode)?(o.node_ops=ae.ops_table.link.node,o.stream_ops=ae.ops_table.link.stream):le.isChrdev(o.mode)&&(o.node_ops=ae.ops_table.chrdev.node,o.stream_ops=ae.ops_table.chrdev.stream),o.timestamp=Date.now(),e&&(e.contents[t]=o,e.timestamp=o.timestamp),o},getFileDataAsTypedArray:e=>e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0),expandFileStorage(e,t){var n=e.contents?e.contents.length:0;if(!(n>=t)){t=Math.max(t,n*(n<1048576?2:1.125)>>>0),0!=n&&(t=Math.max(t,256));var r=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(r.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,t){if(e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{var n=e.contents;e.contents=new Uint8Array(t),n&&e.contents.set(n.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){var t={};return t.dev=le.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,le.isDir(e.mode)?t.size=4096:le.isFile(e.mode)?t.size=e.usedBytes:le.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&&ae.resizeFileStorage(e,t.size)},lookup(e,t){throw le.genericErrors[44]},mknod:(e,t,n,r)=>ae.createNode(e,t,n,r),rename(e,t,n){if(le.isDir(e.mode)){var r;try{r=le.lookupNode(t,n)}catch(e){}if(r)for(var o in r.contents)throw new le.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=n,t.contents[n]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir(e,t){var n=le.lookupNode(e,t);for(var r in n.contents)throw new le.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir(e){var t=[".",".."];for(var n in e.contents)e.contents.hasOwnProperty(n)&&t.push(n);return t},symlink(e,t,n){var r=ae.createNode(e,t,41471,0);return r.link=n,r},readlink(e){if(!le.isLink(e.mode))throw new le.ErrnoError(28);return e.link}},stream_ops:{read(e,t,n,r,o){var a=e.node.contents;if(o>=e.node.usedBytes)return 0;var s=Math.min(e.node.usedBytes-o,r);if(s>8&&a.subarray)t.set(a.subarray(o,o+s),n);else for(var i=0;i<s;i++)t[n+i]=a[o+i];return s},write(e,t,n,r,o,a){if(!r)return 0;var s=e.node;if(s.timestamp=Date.now(),t.subarray&&(!s.contents||s.contents.subarray)){if(a)return s.contents=t.subarray(n,n+r),s.usedBytes=r,r;if(0===s.usedBytes&&0===o)return s.contents=t.slice(n,n+r),s.usedBytes=r,r;if(o+r<=s.usedBytes)return s.contents.set(t.subarray(n,n+r),o),r}if(ae.expandFileStorage(s,o+r),s.contents.subarray&&t.subarray)s.contents.set(t.subarray(n,n+r),o);else for(var i=0;i<r;i++)s.contents[o+i]=t[n+i];return s.usedBytes=Math.max(s.usedBytes,o+r),r},llseek(e,t,n){var r=t;if(1===n?r+=e.position:2===n&&le.isFile(e.node.mode)&&(r+=e.node.usedBytes),r<0)throw new le.ErrnoError(28);return r},allocate(e,t,n){ae.expandFileStorage(e.node,t+n),e.node.usedBytes=Math.max(e.node.usedBytes,t+n)},mmap(e,t,n,r,o){if(!le.isFile(e.node.mode))throw new le.ErrnoError(43);var a,s,i=e.node.contents;if(2&o||i.buffer!==v.buffer){if((n>0||n+t<i.length)&&(i=i.subarray?i.subarray(n,n+t):Array.prototype.slice.call(i,n,n+t)),s=!0,!(a=oe()))throw new le.ErrnoError(48);v.set(i,a)}else s=!1,a=i.byteOffset;return{ptr:a,allocated:s}},msync:(e,t,n,r,o)=>(ae.stream_ops.write(e,t,0,r,n,!1),0)}},se=(e,t,n,r)=>{var o=r?"":`al ${e}`;s(e,n=>{var r;r=`Loading data file "${e}" failed (no arrayBuffer).`,n||U(r),t(new Uint8Array(n)),o&&$()},t=>{if(!n)throw`Loading data file "${e}" failed.`;n()}),o&&L()},ie=o.preloadPlugins||[];function de(e,t){var n=0;return e&&(n|=365),t&&(n|=146),n}var le={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=Q.resolve(e)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new le.ErrnoError(32);for(var n=e.split("/").filter(e=>!!e),r=le.root,o="/",a=0;a<n.length;a++){var s=a===n.length-1;if(s&&t.parent)break;if(r=le.lookupNode(r,n[a]),o=q.join2(o,n[a]),le.isMountpoint(r)&&(!s||s&&t.follow_mount)&&(r=r.mounted.root),!s||t.follow)for(var i=0;le.isLink(r.mode);){var d=le.readlink(o);if(o=Q.resolve(q.dirname(o),d),r=le.lookupPath(o,{recurse_count:t.recurse_count+1}).node,i++>40)throw new le.ErrnoError(32)}}return{path:o,node:r}},getPath:e=>{for(var t;;){if(le.isRoot(e)){var n=e.mount.mountpoint;return t?"/"!==n[n.length-1]?`${n}/${t}`:n+t:n}t=t?`${e.name}/${t}`:e.name,e=e.parent}},hashName:(e,t)=>{for(var n=0,r=0;r<t.length;r++)n=(n<<5)-n+t.charCodeAt(r)|0;return(e+n>>>0)%le.nameTable.length},hashAddNode:e=>{var t=le.hashName(e.parent.id,e.name);e.name_next=le.nameTable[t],le.nameTable[t]=e},hashRemoveNode:e=>{var t=le.hashName(e.parent.id,e.name);if(le.nameTable[t]===e)le.nameTable[t]=e.name_next;else for(var n=le.nameTable[t];n;){if(n.name_next===e){n.name_next=e.name_next;break}n=n.name_next}},lookupNode:(e,t)=>{var n=le.mayLookup(e);if(n)throw new le.ErrnoError(n,e);for(var r=le.hashName(e.id,t),o=le.nameTable[r];o;o=o.name_next){var a=o.name;if(o.parent.id===e.id&&a===t)return o}return le.lookup(e,t)},createNode:(e,t,n,r)=>{var o=new le.FSNode(e,t,n,r);return le.hashAddNode(o),o},destroyNode:e=>{le.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)=>le.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=le.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{le.lookupNode(e,t);return 20}catch(e){}return le.nodePermissions(e,"wx")},mayDelete:(e,t,n)=>{var r;try{r=le.lookupNode(e,t)}catch(e){return e.errno}var o=le.nodePermissions(e,"wx");if(o)return o;if(n){if(!le.isDir(r.mode))return 54;if(le.isRoot(r)||le.getPath(r)===le.cwd())return 10}else if(le.isDir(r.mode))return 31;return 0},mayOpen:(e,t)=>e?le.isLink(e.mode)?32:le.isDir(e.mode)&&("r"!==le.flagsToPermissionString(t)||512&t)?31:le.nodePermissions(e,le.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var e=0;e<=le.MAX_OPEN_FDS;e++)if(!le.streams[e])return e;throw new le.ErrnoError(33)},getStreamChecked:e=>{var t=le.getStream(e);if(!t)throw new le.ErrnoError(8);return t},getStream:e=>le.streams[e],createStream:(e,t=-1)=>(le.FSStream||(le.FSStream=function(){this.shared={}},le.FSStream.prototype={},Object.defineProperties(le.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 le.FSStream,e),-1==t&&(t=le.nextfd()),e.fd=t,le.streams[t]=e,e),closeStream:e=>{le.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=le.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new le.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{le.devices[e]={stream_ops:t}},getDevice:e=>le.devices[e],getMounts:e=>{for(var t=[],n=[e];n.length;){var r=n.pop();t.push(r),n.push.apply(n,r.mounts)}return t},syncfs:(e,t)=>{"function"==typeof e&&(t=e,e=!1),le.syncFSRequests++,le.syncFSRequests>1&&h(`warning: ${le.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var n=le.getMounts(le.root.mount),r=0;function o(e){return le.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,o(e));++r>=n.length&&o(null)}n.forEach(t=>{if(!t.type.syncfs)return a(null);t.type.syncfs(t,e,a)})},mount:(e,t,n)=>{var r,o="/"===n,a=!n;if(o&&le.root)throw new le.ErrnoError(10);if(!o&&!a){var s=le.lookupPath(n,{follow_mount:!1});if(n=s.path,r=s.node,le.isMountpoint(r))throw new le.ErrnoError(10);if(!le.isDir(r.mode))throw new le.ErrnoError(54)}var i={type:e,opts:t,mountpoint:n,mounts:[]},d=e.mount(i);return d.mount=i,i.root=d,o?le.root=d:r&&(r.mounted=i,r.mount&&r.mount.mounts.push(i)),d},unmount:e=>{var t=le.lookupPath(e,{follow_mount:!1});if(!le.isMountpoint(t.node))throw new le.ErrnoError(28);var n=t.node,r=n.mounted,o=le.getMounts(r);Object.keys(le.nameTable).forEach(e=>{for(var t=le.nameTable[e];t;){var n=t.name_next;o.includes(t.mount)&&le.destroyNode(t),t=n}}),n.mounted=null;var a=n.mount.mounts.indexOf(r);n.mount.mounts.splice(a,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,n)=>{var r=le.lookupPath(e,{parent:!0}).node,o=q.basename(e);if(!o||"."===o||".."===o)throw new le.ErrnoError(28);var a=le.mayCreate(r,o);if(a)throw new le.ErrnoError(a);if(!r.node_ops.mknod)throw new le.ErrnoError(63);return r.node_ops.mknod(r,o,t,n)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,le.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,le.mknod(e,t,0)),mkdirTree:(e,t)=>{for(var n=e.split("/"),r="",o=0;o<n.length;++o)if(n[o]){r+="/"+n[o];try{le.mkdir(r,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:(e,t,n)=>(void 0===n&&(n=t,t=438),t|=8192,le.mknod(e,t,n)),symlink:(e,t)=>{if(!Q.resolve(e))throw new le.ErrnoError(44);var n=le.lookupPath(t,{parent:!0}).node;if(!n)throw new le.ErrnoError(44);var r=q.basename(t),o=le.mayCreate(n,r);if(o)throw new le.ErrnoError(o);if(!n.node_ops.symlink)throw new le.ErrnoError(63);return n.node_ops.symlink(n,r,e)},rename:(e,t)=>{var n,r,o=q.dirname(e),a=q.dirname(t),s=q.basename(e),i=q.basename(t);if(n=le.lookupPath(e,{parent:!0}).node,r=le.lookupPath(t,{parent:!0}).node,!n||!r)throw new le.ErrnoError(44);if(n.mount!==r.mount)throw new le.ErrnoError(75);var d,l=le.lookupNode(n,s),c=Q.relative(e,a);if("."!==c.charAt(0))throw new le.ErrnoError(28);if("."!==(c=Q.relative(t,o)).charAt(0))throw new le.ErrnoError(55);try{d=le.lookupNode(r,i)}catch(e){}if(l!==d){var u=le.isDir(l.mode),p=le.mayDelete(n,s,u);if(p)throw new le.ErrnoError(p);if(p=d?le.mayDelete(r,i,u):le.mayCreate(r,i))throw new le.ErrnoError(p);if(!n.node_ops.rename)throw new le.ErrnoError(63);if(le.isMountpoint(l)||d&&le.isMountpoint(d))throw new le.ErrnoError(10);if(r!==n&&(p=le.nodePermissions(n,"w")))throw new le.ErrnoError(p);le.hashRemoveNode(l);try{n.node_ops.rename(l,r,i)}catch(e){throw e}finally{le.hashAddNode(l)}}},rmdir:e=>{var t=le.lookupPath(e,{parent:!0}).node,n=q.basename(e),r=le.lookupNode(t,n),o=le.mayDelete(t,n,!0);if(o)throw new le.ErrnoError(o);if(!t.node_ops.rmdir)throw new le.ErrnoError(63);if(le.isMountpoint(r))throw new le.ErrnoError(10);t.node_ops.rmdir(t,n),le.destroyNode(r)},readdir:e=>{var t=le.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new le.ErrnoError(54);return t.node_ops.readdir(t)},unlink:e=>{var t=le.lookupPath(e,{parent:!0}).node;if(!t)throw new le.ErrnoError(44);var n=q.basename(e),r=le.lookupNode(t,n),o=le.mayDelete(t,n,!1);if(o)throw new le.ErrnoError(o);if(!t.node_ops.unlink)throw new le.ErrnoError(63);if(le.isMountpoint(r))throw new le.ErrnoError(10);t.node_ops.unlink(t,n),le.destroyNode(r)},readlink:e=>{var t=le.lookupPath(e).node;if(!t)throw new le.ErrnoError(44);if(!t.node_ops.readlink)throw new le.ErrnoError(28);return Q.resolve(le.getPath(t.parent),t.node_ops.readlink(t))},stat:(e,t)=>{var n=le.lookupPath(e,{follow:!t}).node;if(!n)throw new le.ErrnoError(44);if(!n.node_ops.getattr)throw new le.ErrnoError(63);return n.node_ops.getattr(n)},lstat:e=>le.stat(e,!0),chmod:(e,t,n)=>{var r;"string"==typeof e?r=le.lookupPath(e,{follow:!n}).node:r=e;if(!r.node_ops.setattr)throw new le.ErrnoError(63);r.node_ops.setattr(r,{mode:4095&t|-4096&r.mode,timestamp:Date.now()})},lchmod:(e,t)=>{le.chmod(e,t,!0)},fchmod:(e,t)=>{var n=le.getStreamChecked(e);le.chmod(n.node,t)},chown:(e,t,n,r)=>{var o;"string"==typeof e?o=le.lookupPath(e,{follow:!r}).node:o=e;if(!o.node_ops.setattr)throw new le.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:(e,t,n)=>{le.chown(e,t,n,!0)},fchown:(e,t,n)=>{var r=le.getStreamChecked(e);le.chown(r.node,t,n)},truncate:(e,t)=>{if(t<0)throw new le.ErrnoError(28);var n;"string"==typeof e?n=le.lookupPath(e,{follow:!0}).node:n=e;if(!n.node_ops.setattr)throw new le.ErrnoError(63);if(le.isDir(n.mode))throw new le.ErrnoError(31);if(!le.isFile(n.mode))throw new le.ErrnoError(28);var r=le.nodePermissions(n,"w");if(r)throw new le.ErrnoError(r);n.node_ops.setattr(n,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{var n=le.getStreamChecked(e);if(!(2097155&n.flags))throw new le.ErrnoError(28);le.truncate(n.node,t)},utime:(e,t,n)=>{var r=le.lookupPath(e,{follow:!0}).node;r.node_ops.setattr(r,{timestamp:Math.max(t,n)})},open:(e,t,n)=>{if(""===e)throw new le.ErrnoError(44);var r;if(n=void 0===n?438:n,n=64&(t="string"==typeof t?function(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&n|32768:0,"object"==typeof e)r=e;else{e=q.normalize(e);try{r=le.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var a=!1;if(64&t)if(r){if(128&t)throw new le.ErrnoError(20)}else r=le.mknod(e,n,0),a=!0;if(!r)throw new le.ErrnoError(44);if(le.isChrdev(r.mode)&&(t&=-513),65536&t&&!le.isDir(r.mode))throw new le.ErrnoError(54);if(!a){var s=le.mayOpen(r,t);if(s)throw new le.ErrnoError(s)}512&t&&!a&&le.truncate(r,0),t&=-131713;var i=le.createStream({node:r,path:le.getPath(r),flags:t,seekable:!0,position:0,stream_ops:r.stream_ops,ungotten:[],error:!1});return i.stream_ops.open&&i.stream_ops.open(i),!o.logReadFiles||1&t||(le.readFiles||(le.readFiles={}),e in le.readFiles||(le.readFiles[e]=1)),i},close:e=>{if(le.isClosed(e))throw new le.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{le.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,n)=>{if(le.isClosed(e))throw new le.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new le.ErrnoError(70);if(0!=n&&1!=n&&2!=n)throw new le.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,n),e.ungotten=[],e.position},read:(e,t,n,r,o)=>{if(r<0||o<0)throw new le.ErrnoError(28);if(le.isClosed(e))throw new le.ErrnoError(8);if(1==(2097155&e.flags))throw new le.ErrnoError(8);if(le.isDir(e.node.mode))throw new le.ErrnoError(31);if(!e.stream_ops.read)throw new le.ErrnoError(28);var a=void 0!==o;if(a){if(!e.seekable)throw new le.ErrnoError(70)}else o=e.position;var s=e.stream_ops.read(e,t,n,r,o);return a||(e.position+=s),s},write:(e,t,n,r,o,a)=>{if(r<0||o<0)throw new le.ErrnoError(28);if(le.isClosed(e))throw new le.ErrnoError(8);if(!(2097155&e.flags))throw new le.ErrnoError(8);if(le.isDir(e.node.mode))throw new le.ErrnoError(31);if(!e.stream_ops.write)throw new le.ErrnoError(28);e.seekable&&1024&e.flags&&le.llseek(e,0,2);var s=void 0!==o;if(s){if(!e.seekable)throw new le.ErrnoError(70)}else o=e.position;var i=e.stream_ops.write(e,t,n,r,o,a);return s||(e.position+=i),i},allocate:(e,t,n)=>{if(le.isClosed(e))throw new le.ErrnoError(8);if(t<0||n