trtc-sdk-v5 5.14.0-wasm.5 → 5.14.0-wasm.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/trtc.esm.js CHANGED
@@ -1,14 +1,14 @@
1
- var QT=Object.create;var ua=Object.defineProperty,YT=Object.defineProperties,kf=Object.getOwnPropertyDescriptor,ZT=Object.getOwnPropertyDescriptors,KT=Object.getOwnPropertyNames,ud=Object.getOwnPropertySymbols,Uf=Object.getPrototypeOf,im=Object.prototype.hasOwnProperty,Vf=Object.prototype.propertyIsEnumerable,eI=Reflect.get;var ti=Math.pow,rm=(i,t,e)=>t in i?ua(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Y=(i,t)=>{for(var e in t||(t={}))im.call(t,e)&&rm(i,e,t[e]);if(ud)for(var e of ud(t))Vf.call(t,e)&&rm(i,e,t[e]);return i},Ee=(i,t)=>YT(i,ZT(t));var Ff=(i,t)=>{var e={};for(var r in i)im.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&ud)for(var r of ud(i))t.indexOf(r)<0&&Vf.call(i,r)&&(e[r]=i[r]);return e};var la=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),yi=(i,t)=>{for(var e in t)ua(i,e,{get:t[e],enumerable:!0})},tI=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of KT(t))!im.call(i,o)&&o!==e&&ua(i,o,{get:()=>t[o],enumerable:!(r=kf(t,o))||r.enumerable});return i};var Ai=(i,t,e)=>(e=i!=null?QT(Uf(i)):{},tI(t||!i||!i.__esModule?ua(e,"default",{value:i,enumerable:!0}):e,i));var Z=(i,t,e,r)=>{for(var o=r>1?void 0:r?kf(t,e):t,s=i.length-1,n;s>=0;s--)(n=i[s])&&(o=(r?n(t,e,o):n(o))||o);return r&&o&&ua(t,e,o),o};var m=(i,t,e)=>rm(i,typeof t!="symbol"?t+"":t,e);var Ut=(i,t,e)=>eI(Uf(i),e,t);var A=(i,t,e)=>new Promise((r,o)=>{var s=d=>{try{a(e.next(d))}catch(l){o(l)}},n=d=>{try{a(e.throw(d))}catch(l){o(l)}},a=d=>d.done?r(d.value):Promise.resolve(d.value).then(s,n);a((e=e.apply(i,t)).next())});var ki=la((pC,qm)=>{"use strict";var gS=Object.prototype.hasOwnProperty,Zt="~";function Ua(){}Object.create&&(Ua.prototype=Object.create(null),new Ua().__proto__||(Zt=!1));function ES(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function Cg(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new ES(e,r||i,o),n=Zt?Zt+t:t;return i._events[n]?i._events[n].fn?i._events[n]=[i._events[n],s]:i._events[n].push(s):(i._events[n]=s,i._eventsCount++),i}function eu(i,t){--i._eventsCount===0?i._events=new Ua:delete i._events[t]}function Qt(){this._events=new Ua,this._eventsCount=0}Qt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)gS.call(e,r)&&t.push(Zt?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Qt.prototype.listeners=function(t){var e=Zt?Zt+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,n=new Array(s);o<s;o++)n[o]=r[o].fn;return n};Qt.prototype.listenerCount=function(t){var e=Zt?Zt+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Qt.prototype.emit=function(t,e,r,o,s,n){var a=Zt?Zt+t:t;if(!this._events[a])return!1;var d=this._events[a],l=arguments.length,p,f;if(d.fn){switch(d.once&&this.removeListener(t,d.fn,void 0,!0),l){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,e),!0;case 3:return d.fn.call(d.context,e,r),!0;case 4:return d.fn.call(d.context,e,r,o),!0;case 5:return d.fn.call(d.context,e,r,o,s),!0;case 6:return d.fn.call(d.context,e,r,o,s,n),!0}for(f=1,p=new Array(l-1);f<l;f++)p[f-1]=arguments[f];d.fn.apply(d.context,p)}else{var g=d.length,y;for(f=0;f<g;f++)switch(d[f].once&&this.removeListener(t,d[f].fn,void 0,!0),l){case 1:d[f].fn.call(d[f].context);break;case 2:d[f].fn.call(d[f].context,e);break;case 3:d[f].fn.call(d[f].context,e,r);break;case 4:d[f].fn.call(d[f].context,e,r,o);break;default:if(!p)for(y=1,p=new Array(l-1);y<l;y++)p[y-1]=arguments[y];d[f].fn.apply(d[f].context,p)}}return!0};Qt.prototype.on=function(t,e,r){return Cg(this,t,e,r,!1)};Qt.prototype.once=function(t,e,r){return Cg(this,t,e,r,!0)};Qt.prototype.removeListener=function(t,e,r,o){var s=Zt?Zt+t:t;if(!this._events[s])return this;if(!e)return eu(this,s),this;var n=this._events[s];if(n.fn)n.fn===e&&(!o||n.once)&&(!r||n.context===r)&&eu(this,s);else{for(var a=0,d=[],l=n.length;a<l;a++)(n[a].fn!==e||o&&!n[a].once||r&&n[a].context!==r)&&d.push(n[a]);d.length?this._events[s]=d.length===1?d[0]:d:eu(this,s)}return this};Qt.prototype.removeAllListeners=function(t){var e;return t?(e=Zt?Zt+t:t,this._events[e]&&eu(this,e)):(this._events=new Ua,this._eventsCount=0),this};Qt.prototype.off=Qt.prototype.removeListener;Qt.prototype.addListener=Qt.prototype.on;Qt.prefixed=Zt;Qt.EventEmitter=Qt;typeof qm!="undefined"&&(qm.exports=Qt)});var cu=la((YC,Bg)=>{"use strict";var Fg=Bg.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(i){return i.encoding?"rtpmap:%d %s/%s/%s":i.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(i){return i.address!=null?"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(i){return i.subtype!=null?"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(i){return"extmap:%d"+(i.direction?"/%s":"%v")+(i["encrypt-uri"]?" %s":"%v")+" %s"+(i.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(i){return i.sessionConfig!=null?"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(i){var t="candidate:%s %d %s %d %s %d typ %s";return t+=i.raddr!=null?" raddr %s rport %d":"%v%v",t+=i.tcptype!=null?" tcptype %s":"%v",i.generation!=null&&(t+=" generation %d"),t+=i["network-id"]!=null?" network-id %d":"%v",t+=i["network-cost"]!=null?" network-cost %d":"%v",t}},{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(i){var t="ssrc:%d";return i.attribute!=null&&(t+=" %s",i.value!=null&&(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(i){return i.maxMessageSize!=null?"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(i){return i.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(i){return"imageattr:%s %s %s"+(i.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(i){return"simulcast:%s %s"+(i.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(i){return"ts-refclk:%s"+(i.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(i){var t="mediaclk:";return t+=i.id!=null?"id=%s %s":"%v%s",t+=i.mediaClockValue!=null?"=%s":"",t+=i.rateNumerator!=null?" rate=%s":"",t+=i.rateDenominator!=null?"/%s":"",t}},{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(Fg).forEach(function(i){var t=Fg[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var Wg=la($i=>{"use strict";var vn=function(i){return String(Number(i))===i?Number(i):i},RS=function(i,t,e,r){if(r&&!e)t[r]=vn(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=vn(i[o+1]))},vS=function(i,t,e){var r=i.name&&i.names;i.push&&!t[i.push]?t[i.push]=[]:r&&!t[i.name]&&(t[i.name]={});var o=i.push?{}:r?t[i.name]:t;RS(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},$g=cu(),CS=RegExp.prototype.test.bind(/^([a-z])=(.*)/);$i.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(CS).forEach(function(o){var s=o[0],n=o.slice(2);s==="m"&&(e.push({rtp:[],fmtp:[]}),r=e[e.length-1]);for(var a=0;a<($g[s]||[]).length;a+=1){var d=$g[s][a];if(d.reg.test(n))return vS(d,r,n)}}),t.media=e,t};var Hg=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=vn(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};$i.parseParams=function(i){return i.split(/;\s?/).reduce(Hg,{})};$i.parseFmtpConfig=$i.parseParams;$i.parsePayloads=function(i){return i.toString().split(" ").map(Number)};$i.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(vn),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};$i.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(Hg,{})})};$i.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=vn(e):(r=vn(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var jg=la((KC,Gg)=>{"use strict";var dh=cu(),NS=/%[sdv%]/g,DS=function(i){var t=1,e=arguments,r=e.length;return i.replace(NS,function(o){if(t>=r)return o;var s=e[t];switch(t+=1,o){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},qa=function(i,t,e){var r=t.format instanceof Function?t.format(t.push?e:e[t.name]):t.format,o=[i+"="+r];if(t.names)for(var s=0;s<t.names.length;s+=1){var n=t.names[s];t.name?o.push(e[t.name][n]):o.push(e[t.names[s]])}else o.push(e[t.name]);return DS.apply(null,o)},wS=["v","o","s","i","u","e","p","c","b","t","r","z","a"],OS=["i","c","b","a"];Gg.exports=function(i,t){t=t||{},i.version==null&&(i.version=0),i.name==null&&(i.name=" "),i.media.forEach(function(s){s.payloads==null&&(s.payloads="")});var e=t.outerOrder||wS,r=t.innerOrder||OS,o=[];return e.forEach(function(s){dh[s].forEach(function(n){n.name in i&&i[n.name]!=null?o.push(qa(s,n,i)):n.push in i&&i[n.push]!=null&&i[n.push].forEach(function(a){o.push(qa(s,n,a))})})}),i.media.forEach(function(s){o.push(qa("m",dh.m[0],s)),r.forEach(function(n){dh[n].forEach(function(a){a.name in s&&s[a.name]!=null?o.push(qa(n,a,s)):a.push in s&&s[a.push]!=null&&s[a.push].forEach(function(d){o.push(qa(n,a,d))})})})}),o.join(`\r
1
+ var XT=Object.create;var ua=Object.defineProperty,QT=Object.defineProperties,kf=Object.getOwnPropertyDescriptor,YT=Object.getOwnPropertyDescriptors,ZT=Object.getOwnPropertyNames,ld=Object.getOwnPropertySymbols,Uf=Object.getPrototypeOf,im=Object.prototype.hasOwnProperty,Vf=Object.prototype.propertyIsEnumerable,KT=Reflect.get;var ri=Math.pow,rm=(i,t,e)=>t in i?ua(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Y=(i,t)=>{for(var e in t||(t={}))im.call(t,e)&&rm(i,e,t[e]);if(ld)for(var e of ld(t))Vf.call(t,e)&&rm(i,e,t[e]);return i},Ee=(i,t)=>QT(i,YT(t));var Ff=(i,t)=>{var e={};for(var r in i)im.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&ld)for(var r of ld(i))t.indexOf(r)<0&&Vf.call(i,r)&&(e[r]=i[r]);return e};var la=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),Ai=(i,t)=>{for(var e in t)ua(i,e,{get:t[e],enumerable:!0})},eI=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ZT(t))!im.call(i,o)&&o!==e&&ua(i,o,{get:()=>t[o],enumerable:!(r=kf(t,o))||r.enumerable});return i};var bi=(i,t,e)=>(e=i!=null?XT(Uf(i)):{},eI(t||!i||!i.__esModule?ua(e,"default",{value:i,enumerable:!0}):e,i));var Z=(i,t,e,r)=>{for(var o=r>1?void 0:r?kf(t,e):t,s=i.length-1,n;s>=0;s--)(n=i[s])&&(o=(r?n(t,e,o):n(o))||o);return r&&o&&ua(t,e,o),o};var m=(i,t,e)=>rm(i,typeof t!="symbol"?t+"":t,e);var Ut=(i,t,e)=>KT(Uf(i),e,t);var A=(i,t,e)=>new Promise((r,o)=>{var s=d=>{try{a(e.next(d))}catch(l){o(l)}},n=d=>{try{a(e.throw(d))}catch(l){o(l)}},a=d=>d.done?r(d.value):Promise.resolve(d.value).then(s,n);a((e=e.apply(i,t)).next())});var ki=la((pC,qm)=>{"use strict";var fS=Object.prototype.hasOwnProperty,Zt="~";function Ua(){}Object.create&&(Ua.prototype=Object.create(null),new Ua().__proto__||(Zt=!1));function gS(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function Cg(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new gS(e,r||i,o),n=Zt?Zt+t:t;return i._events[n]?i._events[n].fn?i._events[n]=[i._events[n],s]:i._events[n].push(s):(i._events[n]=s,i._eventsCount++),i}function tu(i,t){--i._eventsCount===0?i._events=new Ua:delete i._events[t]}function Qt(){this._events=new Ua,this._eventsCount=0}Qt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)fS.call(e,r)&&t.push(Zt?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Qt.prototype.listeners=function(t){var e=Zt?Zt+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,n=new Array(s);o<s;o++)n[o]=r[o].fn;return n};Qt.prototype.listenerCount=function(t){var e=Zt?Zt+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Qt.prototype.emit=function(t,e,r,o,s,n){var a=Zt?Zt+t:t;if(!this._events[a])return!1;var d=this._events[a],l=arguments.length,p,f;if(d.fn){switch(d.once&&this.removeListener(t,d.fn,void 0,!0),l){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,e),!0;case 3:return d.fn.call(d.context,e,r),!0;case 4:return d.fn.call(d.context,e,r,o),!0;case 5:return d.fn.call(d.context,e,r,o,s),!0;case 6:return d.fn.call(d.context,e,r,o,s,n),!0}for(f=1,p=new Array(l-1);f<l;f++)p[f-1]=arguments[f];d.fn.apply(d.context,p)}else{var g=d.length,y;for(f=0;f<g;f++)switch(d[f].once&&this.removeListener(t,d[f].fn,void 0,!0),l){case 1:d[f].fn.call(d[f].context);break;case 2:d[f].fn.call(d[f].context,e);break;case 3:d[f].fn.call(d[f].context,e,r);break;case 4:d[f].fn.call(d[f].context,e,r,o);break;default:if(!p)for(y=1,p=new Array(l-1);y<l;y++)p[y-1]=arguments[y];d[f].fn.apply(d[f].context,p)}}return!0};Qt.prototype.on=function(t,e,r){return Cg(this,t,e,r,!1)};Qt.prototype.once=function(t,e,r){return Cg(this,t,e,r,!0)};Qt.prototype.removeListener=function(t,e,r,o){var s=Zt?Zt+t:t;if(!this._events[s])return this;if(!e)return tu(this,s),this;var n=this._events[s];if(n.fn)n.fn===e&&(!o||n.once)&&(!r||n.context===r)&&tu(this,s);else{for(var a=0,d=[],l=n.length;a<l;a++)(n[a].fn!==e||o&&!n[a].once||r&&n[a].context!==r)&&d.push(n[a]);d.length?this._events[s]=d.length===1?d[0]:d:tu(this,s)}return this};Qt.prototype.removeAllListeners=function(t){var e;return t?(e=Zt?Zt+t:t,this._events[e]&&tu(this,e)):(this._events=new Ua,this._eventsCount=0),this};Qt.prototype.off=Qt.prototype.removeListener;Qt.prototype.addListener=Qt.prototype.on;Qt.prefixed=Zt;Qt.EventEmitter=Qt;typeof qm!="undefined"&&(qm.exports=Qt)});var du=la((YC,Bg)=>{"use strict";var Fg=Bg.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(i){return i.encoding?"rtpmap:%d %s/%s/%s":i.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(i){return i.address!=null?"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(i){return i.subtype!=null?"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(i){return"extmap:%d"+(i.direction?"/%s":"%v")+(i["encrypt-uri"]?" %s":"%v")+" %s"+(i.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(i){return i.sessionConfig!=null?"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(i){var t="candidate:%s %d %s %d %s %d typ %s";return t+=i.raddr!=null?" raddr %s rport %d":"%v%v",t+=i.tcptype!=null?" tcptype %s":"%v",i.generation!=null&&(t+=" generation %d"),t+=i["network-id"]!=null?" network-id %d":"%v",t+=i["network-cost"]!=null?" network-cost %d":"%v",t}},{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(i){var t="ssrc:%d";return i.attribute!=null&&(t+=" %s",i.value!=null&&(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(i){return i.maxMessageSize!=null?"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(i){return i.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(i){return"imageattr:%s %s %s"+(i.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(i){return"simulcast:%s %s"+(i.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(i){return"ts-refclk:%s"+(i.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(i){var t="mediaclk:";return t+=i.id!=null?"id=%s %s":"%v%s",t+=i.mediaClockValue!=null?"=%s":"",t+=i.rateNumerator!=null?" rate=%s":"",t+=i.rateDenominator!=null?"/%s":"",t}},{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(Fg).forEach(function(i){var t=Fg[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var Wg=la($i=>{"use strict";var vn=function(i){return String(Number(i))===i?Number(i):i},bS=function(i,t,e,r){if(r&&!e)t[r]=vn(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=vn(i[o+1]))},RS=function(i,t,e){var r=i.name&&i.names;i.push&&!t[i.push]?t[i.push]=[]:r&&!t[i.name]&&(t[i.name]={});var o=i.push?{}:r?t[i.name]:t;bS(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},$g=du(),vS=RegExp.prototype.test.bind(/^([a-z])=(.*)/);$i.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(vS).forEach(function(o){var s=o[0],n=o.slice(2);s==="m"&&(e.push({rtp:[],fmtp:[]}),r=e[e.length-1]);for(var a=0;a<($g[s]||[]).length;a+=1){var d=$g[s][a];if(d.reg.test(n))return RS(d,r,n)}}),t.media=e,t};var Hg=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=vn(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};$i.parseParams=function(i){return i.split(/;\s?/).reduce(Hg,{})};$i.parseFmtpConfig=$i.parseParams;$i.parsePayloads=function(i){return i.toString().split(" ").map(Number)};$i.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(vn),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};$i.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(Hg,{})})};$i.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=vn(e):(r=vn(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var jg=la((KC,Gg)=>{"use strict";var dh=du(),CS=/%[sdv%]/g,NS=function(i){var t=1,e=arguments,r=e.length;return i.replace(CS,function(o){if(t>=r)return o;var s=e[t];switch(t+=1,o){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},qa=function(i,t,e){var r=t.format instanceof Function?t.format(t.push?e:e[t.name]):t.format,o=[i+"="+r];if(t.names)for(var s=0;s<t.names.length;s+=1){var n=t.names[s];t.name?o.push(e[t.name][n]):o.push(e[t.names[s]])}else o.push(e[t.name]);return NS.apply(null,o)},DS=["v","o","s","i","u","e","p","c","b","t","r","z","a"],wS=["i","c","b","a"];Gg.exports=function(i,t){t=t||{},i.version==null&&(i.version=0),i.name==null&&(i.name=" "),i.media.forEach(function(s){s.payloads==null&&(s.payloads="")});var e=t.outerOrder||DS,r=t.innerOrder||wS,o=[];return e.forEach(function(s){dh[s].forEach(function(n){n.name in i&&i[n.name]!=null?o.push(qa(s,n,i)):n.push in i&&i[n.push]!=null&&i[n.push].forEach(function(a){o.push(qa(s,n,a))})})}),i.media.forEach(function(s){o.push(qa("m",dh.m[0],s)),r.forEach(function(n){dh[n].forEach(function(a){a.name in s&&s[a.name]!=null?o.push(qa(n,a,s)):a.push in s&&s[a.push]!=null&&s[a.push].forEach(function(d){o.push(qa(n,a,d))})})})}),o.join(`\r
2
2
  `)+`\r
3
- `}});var qg=la(ai=>{"use strict";var gs=Wg(),MS=jg(),xS=cu();ai.grammar=xS;ai.write=MS;ai.parse=gs.parse;ai.parseParams=gs.parseParams;ai.parseFmtpConfig=gs.parseFmtpConfig;ai.parsePayloads=gs.parsePayloads;ai.parseRemoteCandidates=gs.parseRemoteCandidates;ai.parseImageAttributes=gs.parseImageAttributes;ai.parseSimulcastStreamList=gs.parseSimulcastStreamList});var Bf=(ie=>(ie[ie.INVALID_PARAMETER=4096]="INVALID_PARAMETER",ie[ie.INVALID_OPERATION=4097]="INVALID_OPERATION",ie[ie.NOT_SUPPORTED=4098]="NOT_SUPPORTED",ie[ie.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",ie[ie.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",ie[ie.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",ie[ie.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",ie[ie.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",ie[ie.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",ie[ie.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",ie[ie.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",ie[ie.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",ie[ie.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",ie[ie.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",ie[ie.CLIENT_BANNED=16448]="CLIENT_BANNED",ie[ie.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",ie[ie.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",ie[ie.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",ie[ie.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",ie[ie.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",ie[ie.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",ie[ie.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",ie[ie.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",ie[ie.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",ie[ie.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",ie[ie.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",ie[ie.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",ie[ie.API_CALL_ABORTED=16461]="API_CALL_ABORTED",ie[ie.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",ie[ie.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",ie[ie.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",ie[ie.VIDEO_ENCODE_FAILED=16465]="VIDEO_ENCODE_FAILED",ie[ie.AUDIO_ENCODE_FAILED=16466]="AUDIO_ENCODE_FAILED",ie[ie.UNKNOWN=65535]="UNKNOWN",ie))(Bf||{}),q=Bf;var rI=function(i){for(let t in q)if(q[t]===i)return t;return"UNKNOWN"},ma=class extends Error{constructor({name:e="RtcError",message:r,code:o=q.UNKNOWN,extraCode:s=0,constraint:n}){let a=`<${rI(o)} 0x${o.toString(16)}>`,d=`${r}${n?` constraint: ${n}`:""}${r!=null&&r.includes(a)?"":` ${a}`}`;super(d);m(this,"code");m(this,"extraCode");m(this,"message");m(this,"originMessage");m(this,"name");m(this,"constraint");this.code=o,this.extraCode=s,this.name=e,this.message=d,this.constraint=n,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},ae=ma;var $f=0;var Hf=function(){return $f},bi=function(){return Date.now()+$f},ld=function(){let i=new Date;return i.setTime(bi()),i.toLocaleString()},Zs=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};var oi={};yi(oi,{REPORT_TYPE:()=>hn,buildSSOPackage:()=>Di,bytes2ms:()=>tg,calculateScaleResolutionDownNumber:()=>Od,concatArrayBuffers:()=>hg,convertObjectNumberToInt:()=>Aa,copyProperties:()=>eg,deepClone:()=>is,deepCloneBasic:()=>Rd,deepMerge:()=>Br,delay:()=>Ni,fibonacci:()=>os,formatedTime:()=>Cd,getConstructorName:()=>cn,getContainerFromElement:()=>ug,getEnv:()=>Qf,getFirst16Bits:()=>fg,getInternalVersion:()=>cg,getLast16Bits:()=>pg,getLoggerUrl:()=>Ci,getMediaStreamTrackInfo:()=>wd,getMuteStateFromFlag:()=>ns,getNetworkType:()=>an,getNumNetworkType:()=>vd,getReconnectionTimeout:()=>ig,getStringByteLength:()=>lg,getTurnServer:()=>dg,getUint32Version:()=>Nd,getValueType:()=>pt,getViewListFromView:()=>ln,glog:()=>Ia,ipv4ToUint32:()=>un,isArray:()=>ut,isAudioWorkletSupported:()=>ng,isBoolean:()=>Ke,isConstructor:()=>ss,isEmpty:()=>dn,isFunction:()=>Xe,isLangChinese:()=>Fr,isMediaStreamTrack:()=>og,isNumber:()=>Ve,isObject:()=>hr,isOverseaSdkAppId:()=>Rr,isPlainObject:()=>Xt,isPortrait:()=>Rm,isPromise:()=>po,isRemoteTrack:()=>sg,isRotate90Or270:()=>pr,isSetSinkIdSupported:()=>ag,isString:()=>we,isUndefined:()=>O,loadImage:()=>mn,loadVideo:()=>mg,ms2bytes:()=>rg,ms2samples:()=>bm,normalizeUrl:()=>as,performanceNow:()=>_e,promiseAny:()=>Sa,samples2ms:()=>Am,setNetworkTypeFromWebRTC:()=>Kf,stringify:()=>br,stringifyIncludeValue:()=>ya,throttlePromise:()=>Dd});var hm={};yi(hm,{AUDIO_MUTE_BIT:()=>_d,AUDIO_STAT_BIT:()=>tn,AUX_STAT_BIT:()=>ga,AUX_STREAM_MSID:()=>pI,BACKEND_ENV:()=>Ed,BASE_DOC_URL:()=>ir,BASE_HOST:()=>Wf,CAPABILITIES_KEYS:()=>Sd,CLASS_NAME:()=>VI,CLOUD_CONSOLE_URL:()=>nI,CROSS_ROOM_BIT:()=>mI,DATA_FREEZE_TIMING:()=>Id,DOC_BILLING_CN:()=>md,DOC_BILLING_OVERSEA:()=>hd,DOC_URL:()=>aI,DTLS_STATE_UNKNOWN:()=>bI,ENV_NAME:()=>Ri,EXCHANGE_SDP_TIMEOUT:()=>wI,IS_WORKER:()=>Ks,IS_WORKLET:()=>ha,KIBANA_EVENT:()=>Ar,LOCAL_STREAM_PUBLISH_STATE:()=>jf,LOGGER_CMD_TYPE:()=>ho,LOGGER_DOMAIN:()=>nm,LOGGER_DOMAIN_OVERSEA:()=>am,LOG_LEVEL:()=>Ur,LOG_LEVEL_NAME:()=>BI,MAIN_STREAM_MSID:()=>hI,MAX_RTT:()=>_a,MICROPHONE_COMMUNICATIONS:()=>FI,MICROPHONE_DEFAULT:()=>rs,MUTE_ALL_BIT:()=>lI,NAME:()=>M,NETWORK_TYPE:()=>es,NOT_SUPPORTED_H264:()=>MI,PAUSED_RETRY_COUNT:()=>ts,PEERCONNECTION_CONNECTING_TIMEOUT:()=>kI,PEER_CONNECTION_STATE:()=>RI,PEER_LEAVE_REASON:()=>qf,RECOVER_CAPTURE_INTERVAL:()=>rn,REMOTE_STREAM_TYPE_AUX:()=>gI,REMOTE_STREAM_TYPE_MAIN:()=>fI,RENDER_FREEZE_TIMING:()=>xI,SCHEDULE_DOMAIN:()=>vi,SCHEDULE_TIMEOUT:()=>UI,SDP_SEMANTICS_PLAN_B:()=>OI,SDP_SEMANTICS_UNIFIED_PLAN:()=>mm,SECOND_HOST:()=>oI,SIGNAL_PING_PONG_INTERVAL:()=>dI,SIGNAL_PING_TIMEOUT:()=>cI,SIGNAL_RECONNECTION_COUNT:()=>CI,SMALL_STAT_BIT:()=>um,SPEAKER_DEFAULT:()=>Ea,STORAGE_EXPIRES_TIME:()=>pd,STREAM_TYPE_BIG:()=>PI,STREAM_TYPE_SMALL:()=>LI,SUBSCRIBE_SMALL_RETRY_COUNT:()=>$I,SYNC_USER_LIST_INTERVAL:()=>NI,Scene:()=>ri,THIRD_HOST:()=>sI,TRANSPORT_DIRECTION:()=>uI,TRTC_ERROR_ASSISTANCE:()=>cm,TRTC_QUALITY_BAD:()=>SI,TRTC_QUALITY_DISCONNECTED:()=>AI,TRTC_QUALITY_EXCELLENT:()=>_I,TRTC_QUALITY_GOOD:()=>TI,TRTC_QUALITY_POOR:()=>II,TRTC_QUALITY_UNKNOWN:()=>EI,TRTC_QUALITY_VERY_BAD:()=>yI,UPDATE_OFFER_TIMEOUT:()=>DI,VIDEO_MUTE_BIT:()=>Td,VIDEO_STAT_BIT:()=>en,audioProfileMap:()=>fd,defaultBigVideoProfile:()=>fa,defaultSmallVideoProfile:()=>dm,getRetryCount:()=>vI,getScriptDir:()=>iI,innerVersion:()=>om,loggerProxy:()=>pa,screenProfileMap:()=>gd,setLoggerProxy:()=>Ko,setRetryCount:()=>lm,setVersion:()=>sm,version:()=>ht,videoProfileMap:()=>Vr});var om="4.15.00.1600",ht="5.0.0";function sm(i){ht=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));om=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var Ks=typeof importScripts!="undefined",ha=typeof registerProcessor!="undefined",iI=()=>{let i=Ks?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},pa="",Ko=i=>pa=i,Wf="web.sdk.qcloud.com",oI="web.sdk.tencent.cn",sI="web.sdk.cloud.tencent.cn",nI="https://console.cloud.tencent.com/trtc",ir=`https://${Wf}/trtc/webrtc/doc`,aI=`${ir}/zh-cn/`,md="https://cloud.tencent.com/document/product/647/85386",hd="https://trtc.io/document/56025",nm="https://yun.tim.qq.com",am="https://apisgp.my-imcloud.com",cm="trtc_error_assistance",ho={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},Ri={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},Ur=(n=>(n[n.TRACE=0]="TRACE",n[n.DEBUG=1]="DEBUG",n[n.INFO=2]="INFO",n[n.WARN=3]="WARN",n[n.ERROR=4]="ERROR",n[n.NONE=5]="NONE",n))(Ur||{}),cI=18e3,dI=2e3,es={unknown:0,wifi:1,"4g":2,"3g":3,"2g":4,wired:5,"5g":6},pd=7*24*3600*1e3,fd={standard:{sampleRate:48e3,channelCount:1,bitrate:40},"standard-stereo":{sampleRate:48e3,channelCount:2,bitrate:64},high:{sampleRate:48e3,channelCount:1,bitrate:128},"high-stereo":{sampleRate:48e3,channelCount:2,bitrate:192}},Vr={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},fa=Vr["480p_2"],dm=Vr["120p_2"],gd={"480p":{width:640,height:480,frameRate:5,bitrate:900},"480p_2":{width:640,height:480,frameRate:30,bitrate:1e3},"720p":{width:1280,height:720,frameRate:5,bitrate:1200},"720p_2":{width:1280,height:720,frameRate:30,bitrate:3e3},"1080p":{width:1920,height:1080,frameRate:5,bitrate:1600},"1080p_2":{width:1920,height:1080,frameRate:30,bitrate:4e3}},M={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture",RESIZE:"resize",TIME_UPDATE:"timeupdate"},uI={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},Ed={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},ri=(e=>(e.LIVE="live",e.RTC="rtc",e))(ri||{}),en=1,um=2,ga=4,tn=8,_d=64,Td=16,lI=112,mI=128,hI="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",pI="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",fI=M.MAIN,gI=M.AUXILIARY,EI=0,_I=1,TI=2,II=3,SI=4,yI=5,AI=6,bI="unknown",RI={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},Gf=1/0;function lm(i){Gf=i}function vI(){return Gf}var CI=30,Ar={JOIN:"join",DELTA_JOIN:"delta-join",REJOIN:"rejoin",LEAVE:"leave",DELTA_LEAVE:"delta-leave",PUBLISH:"publish",DELTA_PUBLISH:"delta-publish",UNPUBLISH:"unpublish",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",UPLINK_CONNECTION:"uplink-connection",UPLINK_RECONNECTION:"uplink-reconnection",DOWNLINK_CONNECTION:"downlink-connection",DOWNLINK_RECONNECTION:"downlink-reconnection",ON_TRACK:"ontrack",ICE_CONNECTION_STATE:"iceConnectionState",LOCAL_STREAM_INITIALIZE:"stream-initialize",SIGNAL_CONNECTION:"websocketConnectionState",SIGNAL_RECONNECTION:"websocketReconnectionState",UPDATE_STREAM:"update-stream",RECOVER_LOCAL_AUDIO_TRACK:"recover-local-audio-track",RECOVER_LOCAL_VIDEO_TRACK:"recover-local-video-track",RECOVER_SUBSCRIPTION:"recover-subscription",START_MIX_TRANSCODE:"start-mix-transcode",STOP_MIX_TRANSCODE:"stop-mix-transcode",PLAYER_ERROR:"player-error",SCHEDULE:"schedule",LOAD_WORKLET:"load-worklet",VIDEO_FROZEN_COUNT:"videoFrozenCount",GET_USER_MEDIA_RETRY:"getUserMedia-retry",VIDEO_ENCODE_FAILED_DURING_CALL:"video-encode-failed-during-call",AUDIO_ENCODE_FAILED_DURING_CALL:"audio-encode-failed-during-call"},NI=1e4,DI=1e4,wI=1e4,mm="unified-plan",OI="plan-b",MI=1028,jf=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(jf||{}),Id=500,xI=1e3,PI=M.BIG,LI=M.SMALL,kI=10*1e3,vi={MAIN:"schedule.cloud-rtc.com",BACKUP:"schedule.cloud-rtc.net",MAIN_OVERSEA:"schedule.rtc-web.com",BACKUP_OVERSEA:"schedule.rtc-web.io",MAIN_OVERSEA_BACKUP:"intl-schedule.cloud-rtc.com"},UI=2e3,VI={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},ts=5,rs="default",Ea=rs,FI="communications",BI=Object.keys(Ur),qf=["normal leave","timeout leave","kick","role change"],$I=10,rn=2e3,Sd=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],_a=10*1e3;var HI=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(p){try{l(r.next(p))}catch(f){n(f)}}function d(p){try{l(r.throw(p))}catch(f){n(f)}}function l(p){p.done?s(p.value):o(p.value).then(a,d)}l((r=r.apply(i,t||[])).next())})},pm=Symbol(32),fm=Symbol(16),gm=Symbol(8),ii=class{constructor(t){this.g=t,this.consumed=0,t&&(this.need=t.next().value)}setG(t){this.g=t,this.demand(t.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(t,e){return e&&this.consume(),this.need=t,this.flush()}read(t){return HI(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((e,r)=>{var o;this.reject=r,this.resolve=n=>{delete this.lastReadPromise,delete this.resolve,delete this.need,e(n)},this.demand(t,!0)||(o=this.pull)===null||o===void 0||o.call(this,t)})})}readU32(){return this.read(pm)}readU16(){return this.read(fm)}readU8(){return this.read(gm)}close(){var t;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(t=this.reject)===null||t===void 0||t.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let t=null,e=this.buffer.subarray(this.consumed),r=0,o=s=>e.length<(r=s);if(typeof this.need=="number"){if(o(this.need))return;t=e.subarray(0,r)}else if(this.need===pm){if(o(4))return;t=e[0]<<24|e[1]<<16|e[2]<<8|e[3]}else if(this.need===fm){if(o(2))return;t=e[0]<<8|e[1]}else if(this.need===gm){if(o(1))return;t=e[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(o(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(e.subarray(0,r)),t=this.need}else if(this.g){this.g.throw(new Error("Unsupported type"));return}}else{if(o(this.need.byteLength))return;new Uint8Array(this.need).set(e.subarray(0,r)),t=this.need}return this.consumed+=r,this.g?this.demand(this.g.next(t).value,!0):this.resolve&&this.resolve(t),t}write(t){if(t instanceof Uint8Array?this.malloc(t.length).set(t):"buffer"in t?this.malloc(t.byteLength).set(new Uint8Array(t.buffer,t.byteOffset,t.byteLength)):this.malloc(t.byteLength).set(new Uint8Array(t)),this.g||this.resolve)this.flush();else return new Promise(e=>this.pull=e)}writeU32(t){this.malloc(4).set([t>>24&255,t>>16&255,t>>8&255,t&255]),this.flush()}writeU16(t){this.malloc(2).set([t>>8&255,t&255]),this.flush()}writeU8(t){this.malloc(1)[0]=t,this.flush()}malloc(t){if(this.buffer){let e=this.buffer.length,r=e+t;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{let o=new Uint8Array(r);o.set(this.buffer),this.buffer=o}return this.buffer.subarray(e,r)}else return this.buffer=new Uint8Array(t),this.buffer}};ii.U32=pm;ii.U16=fm;ii.U8=gm;var WI=128,GI=127,xv=~GI,Pv=Math.pow(2,31);function Em(i){let t=new ii;for(;i>=128;)t.malloc(1)[0]=i&255|WI,i>>>=7;return t.malloc(1)[0]=i&255,t.buffer||new Uint8Array(0)}function yd(i,t=0){let e=new ii,r=t<<3;switch(typeof i){case"boolean":let o=e.malloc(2);o[0]=r,o[1]=i?1:0;break;case"number":e.malloc(1)[0]=r,e.write(Em(i));break;case"string":e.malloc(1)[0]=r|2;let s=new TextEncoder().encode(i);e.write(Em(s.length));let n=e.malloc(s.length);for(let d=0;d<s.length;d++)n[d]=s[d];break;case"object":let a=new ii;if(Array.isArray(i))for(let d=0;d<i.length;d++){let l=yd(i[d],d+1);l&&a.write(l)}else{let d=1;for(let l in i){let p=yd(i[l],d++);p&&a.write(p)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=r|2,a.buffer&&(e.write(Em(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var Ta=class{constructor(){m(this,"buffer");this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(t){this.buffer.push(t>>>24&255),this.buffer.push(t>>>16&255),this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeInt16(t){this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeByte(t){this.buffer.push(t&255)}writeBytes(t){for(let e=0;e<t.length;e++)this.buffer.push(t[e])}};function _m(i,t,e){i[e]=t>>>24&255,i[e+1]=t>>>16&255,i[e+2]=t>>>8&255,i[e+3]=t&255}function Jt(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function Tm(i,t){return i[t]}function on(i,t,e){return new TextDecoder().decode(jI(i,t,e))}function jI(i,t,e){return i.slice(t,t+e)}var Im=0,Ad=2654435769,bd=16,ym=4,sn=2,nn=7;function qI(i,t,e,r="AVQualityReportSvc.C2S",o=2e3,s=2,n=30){return{version:o,encryption:s,d2:"",d2Len:0,uinType:n,uin:"",uinLen:0,reqHead:{seqNumber:e,appId:i,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:r,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:t}}function zf(i,t){let e=new Ta,r=qI(t,i,Im);Im=Im+1&2147483647,e.writeInt32(0),e.writeInt32(r.version),e.writeByte(r.encryption);let o=new TextEncoder().encode(r.d2);e.writeInt32(o.length+4),o&&e.writeBytes(o),e.writeByte(r.uinType);let s=new TextEncoder().encode(r.uin);e.writeInt32(s.length+4),s.length&&e.writeBytes(s);let n=new Ta;n.writeInt32(0),n.writeInt32(r.reqHead.seqNumber),n.writeInt32(r.reqHead.appId),n.writeByte(r.reqHead.appId>>>24&255),n.writeByte(r.reqHead.appId>>>16&255),n.writeByte(r.reqHead.appId>>>8&255),n.writeByte(r.reqHead.appId&255);for(let Q=4;Q<16;Q++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let d=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(d.length+4),d.length&&n.writeBytes(d);let l=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(l.length+4),l.length&&n.writeBytes(l);let p=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(p.length+4),p.length&&n.writeBytes(p);let f=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(f.length+4),f.length&&n.writeBytes(f);let g=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(g.length+2),g.length&&n.writeBytes(g);let y=n.length;n.data[0]=y>>>24&255,n.data[1]=y>>>16&255,n.data[2]=y>>>8&255,n.data[3]=y&255,we(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let R=new Uint8Array(n.data),C=null;r.encryption===1?C=new TextEncoder().encode(r.uin):r.encryption===2&&(C=new Uint8Array(16)),C&&(R=zI(R,C)),e.writeBytes(R);let N=new Uint8Array(e.data),k=N.length;return N[0]=k>>>24&255,N[1]=k>>>16&255,N[2]=k>>>8&255,N[3]=k&255,N}function zI(i,t){let e=i.length,o=(e+1+sn+nn)%8;o&&(o=8-o);let s=e+1+sn+nn+o,n=new Uint8Array(s),a=0,d=new Uint8Array(8),l=new Uint8Array(8),p=new Uint8Array(8),f=0;d[0]=Math.floor(Math.random()*256)&248|o,f=1;for(let y=0;y<o;y++)d[f]=Math.floor(Math.random()*256)&255,f+=1;for(let y=0;y<sn;)if(f<8&&(d[f]=Math.floor(Math.random()*256)&255,f+=1,y+=1),f===8){Sm(d,t,l,p,n,a),a+=8,f=0;for(let R=0;R<8;R++)p[R]=n[a-8+R]}let g=0;for(;g<e;)if(f<8&&(d[f]=i[g],f+=1,g+=1),f===8){Sm(d,t,l,p,n,a),a+=8,f=0;for(let y=0;y<8;y++)p[y]=n[a-8+y]}for(let y=0;y<nn;)if(f<8&&(d[f]=0,f+=1,y+=1),f===8){Sm(d,t,l,p,n,a),a+=8,f=0;for(let R=0;R<8;R++)p[R]=n[a-8+R]}return n}function Sm(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];JI(i,t,o,s);for(let n=0;n<8;n++)o[s+n]^=e[n];for(let n=0;n<8;n++)e[n]=i[n]}function JI(i,t,e,r){let o=Jt(i,0),s=Jt(i,4),n=[];for(let d=0;d<4;d++)n[d]=Jt(t,d*4);let a=0;for(let d=0;d<bd;d++)a+=Ad,a=a>>>0,o+=(s<<4)+n[0]^s+a^(s>>>5)+n[1],o=o>>>0,s+=(o<<4)+n[2]^o+a^(o>>>5)+n[3],s=s>>>0;_m(e,o,r),_m(e,s,r+4)}var Qf=function(){return new URLSearchParams(location.search).get("trtc_env")||""},Rr=i=>Number(i)<14e8,Ci=function(i,t){let e;pa?e=pa:e=Rr(i)?am:nm;let r=Math.floor(Math.random()*ti(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},Yf="unknown";function an(){QI();let{userAgent:i,connection:t}=navigator,e=(i.match(/NetType\/\S+/)||[])[0]||"";e=e.toLowerCase().replace("nettype/",""),e==="3gnet"&&(e="3g");let r=t&&t.type&&t.type.toLowerCase(),o=t&&t.effectiveType&&t.effectiveType.toLowerCase();return o==="slow-2"&&(o="2g"),r?Zf(r,o):Yf}function XI(){F.warn("netType changed",an())}var Jf=!1;function QI(){var i;Jf||(Jf=!0,(i=navigator.connection)==null||i.addEventListener("typechange",XI))}function Zf(i,t){if(es[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function Kf(i){Yf=Zf(i)}function vd(){return es[an()]}function eg(i,t){for(let e of Reflect.ownKeys(t))if(e!=="constructor"&&e!=="prototype"&&e!=="name"){let r=Object.getOwnPropertyDescriptor(t,e)||"";Object.defineProperty(i,e,r)}return i}function tg(i,t=48e3){return Am(i/4,t)}function Am(i,t=48e3){return i*1e3/t}function rg(i,t=48e3){return bm(i,t)*4}function bm(i,t=48e3){return i*t/1e3}var Ia=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},Fr=()=>{let i=navigator.language;return i=i.substring(0,2),i==="zh"},Xt=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function os(i,t=1,e=1){return i<=1?e:os(i-1,e,t+e)}function ig(i){return i>8?30*1e3:os(i)*1e3}function pt(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Xe=i=>typeof i=="function",O=i=>typeof i=="undefined",we=i=>typeof i=="string",Ve=i=>typeof i=="number",Ke=i=>typeof i=="boolean",hr=i=>pt(i)==="object",ut=i=>pt(i)==="array",og=i=>pt(i)==="MediaStreamTrack".toLowerCase(),sg=i=>i.isRemote,po=i=>pt(i)==="promise",ss=i=>Xe(i)&&i.prototype.constructor===i,cn=i=>ss(i)?i.prototype.constructor.name:"",ng=typeof AudioWorkletNode!="undefined",ag=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function Sa(i){return new Promise((t,e)=>{let r=[];i.forEach(o=>{o.then(t).catch(s=>{r.push(s),r.length===i.length&&e(r)})})})}function _e(){return!performance||!performance.now?Date.now():Math.floor(performance.now())}var Xf=i=>+i<10?`0${i}`:i,cg=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=Xf(e[1])+Xf(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},YI=Object.prototype.hasOwnProperty,{toString:zv}=Object.prototype;function dn(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Xt(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(YI.call(i,t))return!1;return!0}}return!1}function ns(i,t){return{userId:t,hasAudio:!!(i&tn),hasVideo:!!(i&en),hasAuxiliary:!!(i&ga),hasSmall:!!(i&um),audioMuted:!!(i&_d),videoMuted:!!(i&Td),audioAvailable:!!(i&tn)&&!(i&_d),videoAvailable:!!(i&en)&&!(i&Td)}}function dg(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!O(i.username)&&!O(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",O(i.credentialType)||(t.credentialType=i.credentialType)),t}function un(i,t=!0){if(!we(i))return 0;let e=i.split(".");return t?(Number(e[0])<<24|Number(e[1])<<16|Number(e[2])<<8|Number(e[3]))>>>0:(Number(e[3])<<24|Number(e[2])<<16|Number(e[1])<<8|Number(e[0]))>>>0}var Br=function(i,t,e,r){if(!(hr(i)&&hr(t)))return 0;let o=0,s=Object.keys(t),n;for(let a=0,d=s.length;a<d;a++)if(n=s[a],!(O(t[n])||e&&e.includes(n)))if(hr(i[n])&&hr(t[n]))o+=Br(i[n],t[n],e,r);else{if(r&&r.includes(t[n]))continue;i[n]!==t[n]&&(i[n]=is(t[n]),o+=1)}return o};function is(i){if(ut(i)){let t=[];return i.forEach((e,r)=>{t[r]=is(e)}),t}if(hr(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=is(i[e])}),t}return i}var ln=i=>{let t=[];if(ut(i))t=[...i];else if(we(i)){let e=document.getElementById(i);e&&t.push(e)}else i&&t.push(i);return t},ug=i=>we(i)?document.getElementById(i):i,ZI=i=>{let t=d=>d<10?`0${d}`:`${d}`,e=i.getFullYear(),r=i.getMonth()+1,o=i.getDate(),s=t(i.getHours()),n=t(i.getMinutes()),a=t(i.getSeconds());return`${e}/${r}/${o} ${s}:${n}:${a}`},Cd=()=>ZI(new Date);function br(i,{keysToInclude:t,keysToExclude:e}){try{if(ut(i))return`[${i.map(n=>br(n,{keysToInclude:t,keysToExclude:e})).join(",")}]`;if(!Xt(i)||!ut(t)&&!ut(e))return JSON.stringify(i);let r={},o=new Set(t),s=new Set(e);return Object.keys(i).forEach(n=>{(s.size===0&&o.has(n)||o.size===0&&!s.has(n))&&(r[n]=Xt(i[n])||ut(i[n])?JSON.parse(br(i[n],{keysToExclude:e,keysToInclude:t})):i[n])}),JSON.stringify(r)}catch(r){return"{}"}}function ya(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),br(i,{keysToInclude:e})}function lg(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var Rm=()=>{var i,t,e,r;return(i=window.screen)!=null&&i.orientation?!!((r=(e=(t=window.screen)==null?void 0:t.orientation)==null?void 0:e.type)!=null&&r.includes("portrait")):window.orientation===0||window.orientation===180},mn=i=>A(void 0,null,function*(){return new Promise((t,e)=>{let r;if(we(i))r=new Image,r.crossOrigin="anonymous",r.src=i;else if(r=i,r.complete){t(r);return}r.onload=()=>t(r),r.onerror=()=>{e(new ae({code:q.INVALID_PARAMETER,message:`load image failed, url: ${i}`}))}})}),Nd=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},Aa=i=>(Object.keys(i).forEach(t=>{Ve(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Xt(i[t])||ut(i[t]))&&Aa(i[t])}),i);function Ni(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function Dd(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function as(i){return i.replace(/(^|[^:])\/{2,}/g,"$1/")}function wd(i){var t;try{let{width:e,height:r,frameRate:o,sampleRate:s,sampleSize:n,channelCount:a}=(t=i.getSettings)==null?void 0:t.call(i),d=i.kind===M.AUDIO?`${s}x${n}@${a}`:`${e}x${r}@${o}`,l=i.stats?` stats: ${JSON.stringify(i.stats).replaceAll('"',"")}`:"";return`${i.id} ${i.readyState} muted:${i.muted} ${i.kind} ${i.label} ${d}${l}`}catch(e){return""}}function Od(i,t){return i.width*i.height===t.width*t.height?1:Rm()&&t.width>t.height&&i.height>t.width?Math.max(i.width/t.height,i.height/t.width,1):Math.max(i.width/t.width,i.height/t.height,1)}function pr(i){return i===90||i===270}function mg(i){return A(this,null,function*(){return new Promise((t,e)=>{let r=document.createElement("video");r.crossOrigin="anonymous",r.src=i,r.muted=!0,r.loop=!0,r.playsInline=!0,r.play().then(()=>t(r)),r.onerror=()=>{e(r.error)}})})}function Rd(i,t=new WeakMap){if(typeof i!="object"||i===null)return i;if(t.has(i))return t.get(i);if(Array.isArray(i)){let e=[];return t.set(i,e),i.forEach((r,o)=>{e[o]=Rd(r,t)}),e}if(Object.prototype.toString.call(i)==="[object Object]"){let e={};return t.set(i,e),Reflect.ownKeys(i).forEach(r=>{e[r]=Rd(i[r],t)}),e}return i}var hn=(r=>(r[r.END_REPORT=2001]="END_REPORT",r[r.LOG=2002]="LOG",r[r.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",r))(hn||{});function KI(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return O(r)||(o=Ee(Y({},o),{gzip:+r})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:t,bytes_report_data:JSON.stringify(o)}}}function Di(i,t,e,r){try{let o=KI(i,t,e,r),s=yd(o);return zf(s,e)}catch(o){return JSON.stringify(i)}}function hg(i,t){let e=new Uint8Array(i.byteLength+t.byteLength);return e.set(new Uint8Array(i),0),e.set(new Uint8Array(t),i.byteLength),e.buffer}function pg(i){return(i&65535)>>>0}function fg(i){return(i&4294901760)>>>0}function gg(i){let t=eS(i);return t==null?void 0:t.busiBuff}function eS(i){try{let t={},e=0;t.totalLength=Jt(i,e),e+=4,t.version=Jt(i,e),e+=4,t.encryption=Tm(i,e),e+=1,t.uinType=Tm(i,e),e+=1,t.uinLength=Jt(i,e),e+=4,t.uin=t.uinLength>4?on(i,e,t.uinLength-4):"",e+=t.uinLength-4;let r=i.slice(e);if(t.encryption===2){let o=new Uint8Array(16).fill(0);i=tS(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=Jt(i,e),e+=4,t.seqNo=Jt(i,e),e+=4,t.retCode=Jt(i,e),e+=4,t.retStrLength=Jt(i,e),e+=4,t.retStr=t.retStrLength?on(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=Jt(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?on(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=Jt(i,e),e+=4,t.cookie=t.cookieLength?on(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=Jt(i,e),e+=4,t.busiBuffLength=Jt(i,e),e+=4,t.busiBuff=t.busiBuffLength?on(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function Eg(i,t){let e=i[0]<<24|i[1]<<16|i[2]<<8|i[3],r=i[4]<<24|i[5]<<16|i[6]<<8|i[7];e=e>>>0,r=r>>>0;let o=Ad*bd>>>0;for(let s=0;s<bd;s++)r-=(e<<ym)+t[2]^e+o^(e>>>5)+t[3],r=r>>>0,e-=(r<<ym)+t[0]^r+o^(r>>>5)+t[1],e=e>>>0,o-=Ad,o=o>>>0;return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,e&255,r>>>24&255,r>>>16&255,r>>>8&255,r&255])}function tS(i,t){let e=0,r=new Uint8Array(8).fill(0),o=new Uint8Array(i.slice(0,8)),s=Eg(o,t),n=s[0]&7,a=i.length-1-n-sn-nn,d=new Uint8Array(a),l=0,p=r,f=i.slice(0,8);e=8;let g=1;g+=n;for(let R=1;R<=sn;)if(g<8)g++,R++;else if(g===8){let C=vm(i,e,p,f,s,t);p=C.ivPreCrypt,f=C.ivCurCrypt,s=C.debiBuf,e=C.bufPos,g=0}let y=a;for(;y>0;)if(g<8)d[l++]=s[g]^p[g],g++,y--;else if(g===8){let R=vm(i,e,p,f,s,t);p=R.ivPreCrypt,f=R.ivCurCrypt,s=R.debiBuf,e=R.bufPos,g=0}for(let R=1;R<=nn;)if(g<8)s[g]^p[g],g++,R++;else if(g===8){if(e>=i.length)break;let C=vm(i,e,p,f,s,t);if(!C.success)break;p=C.ivPreCrypt,f=C.ivCurCrypt,s=C.debiBuf,e=C.bufPos,g=0}return d}function vm(i,t,e,r,o,s){if(t+8>i.length)return{success:!1};let n=new Uint8Array(r),a=i.slice(t,t+8),d=new Uint8Array(8);for(let p=0;p<8;p++)d[p]=o[p]^a[p];let l=Eg(d,s);return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:l,bufPos:t+8}}var _g=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function wi({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(d=>d.clone().json().then(l=>({data:l}),()=>d.arrayBuffer().then(l=>({data:gg(new Uint8Array(l))||(_g?_g.decode(l):l)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let d=JSON.parse(a.response);s({data:d})}catch(d){s({data:a.response})}else n({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=r||5e3,a.open(e,i,!0),a.send(t)})}function Cm(i){return A(this,null,function*(){let t=_e(),e=JSON.stringify(i);try{if(!CompressionStream||e.length<=2800)return e;let o=new Blob([e],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),a=yield(yield(yield new Response(o)).blob()).arrayBuffer();return F.debug(`compressJSON ${e.length} -> ${a.byteLength} ${_e()-t}ms`),a}catch(r){return e}})}var rS=Object.prototype.hasOwnProperty;var fo=i=>typeof i=="function",cs=i=>typeof i=="undefined";var Tg=i=>typeof i=="boolean";var Nm=i=>i.isRemote;var Dm=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function Ig(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Dm(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(rS.call(i,t))return!1;return!0}}return!1}var iS=0,oS=1,Sg=2;function sS({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:d=5,timeout:l=1e3}=t,p=0,f=-1,g=iS,y=(R,C)=>A(this,null,function*(){let N=n||this;try{let k=yield i.apply(N,a);p>0&&s&&s.call(this,p),p=0,R(k)}catch(k){let Q=()=>{clearTimeout(f),p=0,g=Sg,C(k)},H=()=>{g!==Sg&&p<(fo(d)?d():d)?(p++,g=oS,fo(r)&&r.call(this,p,Q),f=window.setTimeout(()=>{f=-1,y(R,C)},fo(l)?l(p):l)):(Q(),fo(o)&&o.call(this,k))};fo(e)?e.call(this,{error:k,retry:H,reject:C,retryFuncArgs:a,retriedCount:p}):H()}});return new Promise(y)}}var go=sS;var Eo=class i{constructor(t){m(this,"_parentPath");m(this,"userId");m(this,"remoteUserId");m(this,"id");m(this,"sdkAppId");m(this,"type");m(this,"isLocal");this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=Tg(t.isLocal)?t.isLocal:!0,this.type=this.isLocal?"":t.type}getFullId(){return this._parentPath&&this.id?`${this._parentPath}-${this.id}`:this._parentPath?this._parentPath:this.id}createChild(t){let e=new i({id:t.id,userId:cs(t.userId)?this.userId:t.userId,sdkAppId:cs(t.sdkAppId)?this.sdkAppId:t.sdkAppId,type:cs(t.type)?this.type:t.type,isLocal:cs(t.isLocal)?this.isLocal:t.isLocal,remoteUserId:cs(t.remoteUserId)?this.remoteUserId:t.remoteUserId});return e.bindParent(this),e}bindParent(t){let e=t.getFullId();this._parentPath!==e&&(this.debug(`bind logger parent: ${t.id}`),this._parentPath=e,this.userId=t.userId||this.userId,this.sdkAppId=t.sdkAppId||this.sdkAppId)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId,o=this.getFullId();e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${o}${r?`|${r}`:""}]`),F.log(t,e,cs(this.userId)||Ig(this.userId),this.userId,this.sdkAppId)}info(...t){this.log(2,t)}debug(...t){this.log(1,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}};var An={};yi(An,{ANDROID_VERSION:()=>xd,CHROME_MAJOR_VERSION:()=>sr,CHROME_VERSION:()=>Zd,EDGE_VERSION:()=>kd,EDG_MAJOR_VERSION:()=>Om,EDG_VERSION:()=>Ud,ELECTRON_MAJOR_VERSION:()=>km,FIREFOX_MAJOR_VERSION:()=>Ld,FIREFOX_VERSION:()=>Pd,HUAWEI_VERSION:()=>zd,IE_VERSION:()=>uS,IOS_MAIN_VERSION:()=>Vt,IOS_VERSION:()=>Cr,IPADQQB_VERSION:()=>jd,IS_ANDROID:()=>nt,IS_ANDROID_WEBVIEW:()=>pS,IS_ANY_SAFARI:()=>vr,IS_CHROME:()=>Sn,IS_CHROME_OS:()=>Mm,IS_CHROMIUM_BASE:()=>fr,IS_DESKTOP_IOS_CHROME:()=>$m,IS_EDG:()=>gn,IS_EDGE:()=>ds,IS_ELECTRON:()=>mS,IS_FIREFOX:()=>lt,IS_HEADLESS_CHROME:()=>Lm,IS_HONOR:()=>Pm,IS_HUAWEI:()=>xa,IS_HUAWEIBROWSER:()=>Ma,IS_IE:()=>Rg,IS_IE8:()=>dS,IS_IOS:()=>ot,IS_IOS_13_OR_14:()=>Bm,IS_IOS_15_1:()=>Fm,IS_IOS_CHROME:()=>ba,IS_IPAD:()=>fn,IS_IPADQQB:()=>Da,IS_IPAD_PRO:()=>wm,IS_IPHONE:()=>_o,IS_IPOD:()=>bg,IS_LINUX:()=>wa,IS_LOCAL:()=>Gr,IS_MAC:()=>Wr,IS_MACQQB:()=>Na,IS_MIBROWSER:()=>Oa,IS_MQQB:()=>_n,IS_NATIVE_ANDROID:()=>cS,IS_OLD_ANDROID:()=>aS,IS_OPENHARMONY:()=>In,IS_OPPOBROWSER:()=>Tn,IS_SAFARI:()=>_t,IS_SAFARI_15_1:()=>fS,IS_SAMSUNGBROWSER:()=>Pa,IS_SOGOU:()=>va,IS_SOGOUM:()=>Ra,IS_TBS:()=>Hr,IS_UCBROWSER:()=>xm,IS_VIVOBROWSER:()=>La,IS_WECHAT:()=>Mi,IS_WIN:()=>us,IS_WQQB:()=>Ca,IS_WX:()=>lS,IS_X5MQQB:()=>En,IS_XWEB:()=>Oi,MACQQB_VERSION:()=>Gd,MI_VERSION:()=>qd,MQQB_VERSION:()=>pn,OPENHARMONY_VERSION:()=>hS,OPPO_VERSION:()=>Xd,SAFARI_VERSION:()=>xi,SAMSUNG_VERSION:()=>Jd,SOGOUM_VERSION:()=>Vd,SOGOU_VERSION:()=>Fd,TBS_VERSION:()=>Bd,UA_DATA_STRING:()=>$r,USER_AGENT:()=>or,VIVO_VERSION:()=>Qd,WECHAT_VERSION:()=>Hd,WQQB_VERSION:()=>Wd,XWEB_VERSION:()=>$d,browserInfo:()=>si,getBrowserCoreNumber:()=>Wm,getBrowserInfo:()=>vg,getChromeMajorVersion:()=>Yd,getDeviceModel:()=>ms,getDeviceModelFromUA:()=>Kd,getGPUInfo:()=>Hm,getOSName:()=>yn,getOSNumber:()=>hs,getOSString:()=>Li,getOSType:()=>jm,getTerminalType:()=>Gm,getUserAgentData:()=>ls,isLocalStorageEnabled:()=>Pi,isMobile:()=>ka,isVersionLargerThan:()=>Vm,isVersionSmallerThan:()=>Um});var or=typeof navigator=="undefined"?"":navigator.userAgent,be=i=>new RegExp(i,"i").test(or),It=i=>{if(be(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=or.match(t);if(e&&e[1])return e[1]}return""},Md=i=>{if(be(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=or.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},yg=/AppleWebKit\/([\d.]+)/i.exec(or),nS=yg?parseFloat(yg[1]):NaN,fn=be("iPad"),wm=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&be("Macintosh"),_o=be("iPhone")&&!fn,bg=be("iPod"),ot=_o||fn||bg||wm,nt=be("Android"),xd=function(){if(nt){let i=or.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(i){let t=i[1]&&parseFloat(i[1]),e=i[2]&&parseFloat(i[2]);if(t&&e)return parseFloat(`${i[1]}.${i[2]}`);if(t)return t}}return NaN}(),aS=nt&&be("webkit")&&xd<2.3,cS=nt&&xd<5&&nS<537,lt=be("Firefox"),Pd=It("Firefox"),Ld=Md("Firefox"),ds=be("Edge"),kd=It("Edge"),gn=be("Edg"),Ud=It("Edg"),Om=Md("Edg"),Ra=be("SogouMobileBrowser"),Vd=It("SogouMobileBrowser"),va=be("MetaSr\\s"),Fd=It("MetaSr\\s"),Hr=be("TBS"),Bd=It("TBS"),Oi=be("XWEB"),$d=It("XWEB"),dS=be("MSIE\\s8\\.0"),Rg=be("MSIE\\/\\d+"),uS=function(){if(Rg){let i=/MSIE\s(\d+)\.\d/.exec(or),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(or)&&/rv:11.0/.test(or)&&(t=11),t}return NaN}(),Mi=be("(micromessenger|webbrowser)"),Hd=It("MicroMessenger"),En=!Hr&&be("MQQBrowser")&&be("COVC"),_n=!Hr&&be("MQQBrowser")&&!be("COVC"),pn=_n||En?It("MQQBrowser"):"",Ca=!Hr&&be(" QQBrowser"),Wd=It(" QQBrowser"),Na=!Hr&&be("QQBrowserLite"),Gd=It("QQBrowserLite"),Da=!Hr&&be("MQBHD"),jd=It("MQBHD"),us=be("Windows"),Wr=!ot&&be("MAC OS X"),wa=!nt&&be("Linux"),Mm=be("CrOS"),lS=be("MicroMessenger"),xm=be("UCBrowser"),mS=be("Electron"),Oa=be("MiuiBrowser"),qd=It("MiuiBrowser"),Ma=be("HuaweiBrowser"),xa=be("Huawei")||be("HUAWEI"),Pm=be("Honor")||be("HONOR"),zd=It("HuaweiBrowser"),Pa=be("SamsungBrowser"),Jd=It("SamsungBrowser"),Tn=be("HeyTapBrowser"),Xd=It("HeyTapBrowser"),La=be("VivoBrowser"),Qd=It("VivoBrowser"),In=be("OpenHarmony"),hS=It("OpenHarmony"),Yd=()=>Md("Chrome"),ba=be("CriOS"),fr=be("Chrome"),Sn=!ds&&!va&&!Ra&&!Hr&&!Oi&&!gn&&!Ca&&!Oa&&!Ma&&!Pa&&!Tn&&!La&&fr,Lm=be("HeadlessChrome"),sr=Yd(),Zd=It("Chrome"),km=Md("Electron"),_t=!fr&&!_n&&!En&&!Na&&!Da&&be("Safari"),vr=_t||ot,xi=It("Version"),pS=/Android.*(wv|.0.0.0)/.test(or),Cr=(()=>{if(wm)return xi;if(ot){let i=or.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})();function Um(i,t){let e=i.split(".").map(o=>Number(o)),r=t.split(".").map(o=>Number(o));for(let o=0;o<Math.max(e.length,r.length);o++){let s=e[o]||0,n=r[o]||0;if(s<n)return!0;if(s>n)return!1}return!1}function Vm(i,t,e=!1){let r=i.split(".").map(s=>Number(s)),o=t.split(".").map(s=>Number(s));for(let s=0;s<Math.max(r.length,o.length);s++){let n=r[s]||0,a=o[s]||0;if(n>a)return!0;if(n<a)return!1}return e}var Vt=Number(Cr.split(".")[0]),fS=xi==="15.1",Fm=Cr==="15.1",Bm=(()=>{let i=Number(Cr.split(".")[0]);return i===14||i===13})(),$m=ba&&xi==="11.1.1",Gr=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",Pi=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),si=vg();function vg(){let i=new Map([[lt,["Firefox",Pd]],[gn,["Edg",Ud]],[Sn,["Chrome",Zd]],[ba,["ChiOS",It("CriOS")]],[_t&&!ba,["Safari",xi]],[Hr,["TBS",Bd]],[Oi,["XWEB",$d]],[Mi&&_o,["WeChat",Hd]],[Ca,["QQ(Win)",Wd]],[_n,["QQ(Mobile)",pn]],[En,["QQ(Mobile X5)",pn]],[Na,["QQ(Mac)",Gd]],[Da,["QQ(iPad)",jd]],[Oa,["MI",qd]],[Ma,["HW",zd]],[Pa,["Samsung",Jd]],[Tn,["OPPO",Xd]],[La,["VIVO",Qd]],[ds,["EDGE",kd]],[Ra,["SogouMobile",Vd]],[va,["Sogou",Fd]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var Qe=null;function ka(){return Qe&&typeof Qe.mobile=="boolean"?Qe.mobile:nt||ot||_o||fn||In}var $r="";function ls(){return A(this,null,function*(){if(Qe)return Qe;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return Qe=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),Qe&&!$r&&($r=`UAData: ${Qe.platform}/${Qe.platformVersion}`,Qe.architecture&&Qe.bitness&&($r+=` ${Qe.architecture}/${Qe.bitness}`),Qe.mobile&&($r+=" mobile"),Qe.model&&($r+=` model: ${Qe.model.replace(/\s+/g,"/")}`),Qe.fullVersionList&&($r+=` ${Qe.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),Qe}catch(i){return null}})}function Hm(){try{let i=document.createElement("canvas"),t=i.getContext("webgl")||i.getContext("experimental-webgl");if(!t)return"";let e=t.getExtension("WEBGL_debug_renderer_info");if(e){let r=t.getParameter(e.UNMASKED_VENDOR_WEBGL),o=t.getParameter(e.UNMASKED_RENDERER_WEBGL);return`${r} ${o}`}return""}catch(i){return""}}function ms(){return(Qe==null?void 0:Qe.model)||Kd()||""}function Kd(){let i=/;\s*([^;)]+)\s+Build\//,t=or.match(i);return t!=null&&t[1]?t[1].trim():null}var Ag=new Map([[nt,"Android"],[ot,"iOS"],[us,"Windows"],[Wr,"MacOS"],[wa,"Linux"],[Mm,"ChromeOS"]]),yn=function(){return Ag.get(!0)?Ag.get(!0):Qe?Qe.platform:"unknown"};function hs(){return us?1:nt?2:Wr?3:ot?4:wa?5:Mm?6:In?7:0}function Wm(){return Mi||Oi?4:fr?1:_t?2:lt?3:0}var Li=()=>{let i=yn();return Qe!=null&&Qe.platformVersion?i+=`/${Qe.platformVersion}`:ot?i+=`/${Cr}`:nt&&(i+=`/${xd}`),i+=`/${si.name}/${_t&&!ba?si.version:si.version.split(".")[0]}`,Qe!=null&&Qe.architecture&&(i+=`/${Qe.architecture}`),i};function Gm(){return nt?4:_o?2:fn?3:Wr?12:us?5:wa?13:In?22:1}function jm(){return nt?"Android":_o?"iPhone":fn?"iPad":Wr?"Mac":us?"Windows":wa?"Linux":"unknown"}var Ng=Ai(ki(),1),_S=new Ng.default,U=_S;var gr=(le=>(le.ROOM_DESTROY="1",le.JOIN_START="21",le.JOIN_SCHEDULE_SUCCESS="22",le.JOIN_SIGNAL_CONNECTION_START="23",le.JOIN_SIGNAL_CONNECTION_END="24",le.JOIN_SEND_CMD="25",le.JOIN_RECEIVED_CMD_RES="26",le.JOIN_SUCCESS="27",le.JOIN_FAILED="28",le.LEAVE_START="51",le.LEAVE_SEND_CMD="52",le.LEAVE_SUCCESS="53",le.PUBLISH_START="61",le.SEND_FIRST_VIDEO_FRAME="62",le.PUBLISH_FAILED="63",le.SUBSCRIBE_START="81",le.SUBSCRIBE_SUCCESS="82",le.SUBSCRIBE_FAILED="84",le.UNSUBSCRIBE_SUCCESS="83",le.LOCAL_TRACK_CAPTURE_START="101",le.LOCAL_TRACK_CAPTURE_SUCCESS="102",le.LOCAL_TRACK_CAPTURE_FAILED="103",le.LOCAL_TRACK_PUBLISHED="104",le.LOCAL_TRACK_UNPUBLISHED="105",le.LOCAL_TRACK_REPLACED="106",le.SWITCH_DEVICE_SUCCESS="107",le.TRACK_MUTED="108",le.TRACK_UNMUTED="109",le.REMOTE_TRACK_SUBSCRIBED="110",le.REMOTE_TRACK_UNSUBSCRIBED="111",le.LOCAL_TRACK_RECAPTURE="112",le.LOCAL_AUDIO_STARTED="113",le.LOCAL_AUDIO_STOPPED="114",le.REMOTE_AUDIO_STARTED="115",le.REMOTE_AUDIO_STOPPED="116",le.PLAY_TRACK_START="151",le.PLAYER_STATE_CHANGED="152",le.VIDEO_LOADED_DATA="153",le.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",le.AUDIO_CONTEXT_LONG_SUSPENDED="155",le.REMOTE_VIDEO_PLAY_START="156",le.REMOTE_VIDEO_PLAY_FINISH="157",le.SIGNAL_CONNECTION_STATE_CHANGED="201",le.PEER_CONNECTION_STATE_CHANGED="202",le.SINGLE_CONNECTION_STAT="203",le.SPC_RECONNECTED="204",le.HEARTBEAT_REPORT="251",le.RECEIVED_PUBLISHED_USER_LIST="252",le.REMOTE_PUBLISH_STATE_CHANGED="253",le.AUDIO_LEVEL_INTERVAL="260",le.NETWORK_QUALITY="261",le.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",le.QUALITY_LIMITATION_CHANGED="263",le.LOG="264",le.AUDIO_PROCESSOR_DEBUG="265",le.SSO_SWITCH="266",le.SWITCH_ROOM_START="401",le.SWITCH_ROOM_SUCCESS="407",le.SWITCH_ROOM_FAILED="408",le))(gr||{});var B=gr;var zm=class{constructor(){m(this,"enable",!1);m(this,"ssoFailCount",0);U.on("22",({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.sso&&U.emit("266",{enable:!0})}),U.on("266",({enable:t})=>{this.enable=t})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&U.emit("266",{enable:!1})}},To=new zm;var TS="%cTRTC%c%s",IS="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",SS="display: inline",tu=class tu{constructor(){m(this,"_isEnableUploadLog",!0);m(this,"_localJoinedUser",new Map);m(this,"_queue",[]);m(this,"_timeoutId",-1);m(this,"_logLevel",1);m(this,"_logLevelToUpload",2);!Ks&&!ha&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){U.on(B.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&Ur[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),U.on(B.JOIN_SUCCESS,({room:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),U.once(B.JOIN_FAILED,()=>{this.startUpload()}),U.on(B.LEAVE_SUCCESS,({room:t})=>{this.deleteJoinedUser(t.userId)})}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(t){this._localJoinedUser.set(t.userId,t),this.startUpload()}deleteJoinedUser(t){this._localJoinedUser.delete(t)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){let t={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return t;let e=0;for(;e<this._queue.length&&e!==50;e++){let r=this._queue[e];if(r.forAllJoinedClients)this._localJoinedUser.forEach(({userId:o,sdkAppId:s})=>{t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})});else if(we(r.userId)&&Ve(r.sdkAppId)){let{userId:o,sdkAppId:s}=r;t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})}}return t.map.size>0&&(t.splicedQueue=this._queue.splice(0,e)),t}upload(){return A(this,null,function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:t,splicedQueue:e}=this.getLogsToUpload();if(t.size===0)return;try{let o=[...t.values()];for(let s=0;s<o.length;s++){let{userId:n,sdkAppId:a,logs:d}=o[s],l={timestamp:ld(),sdkAppId:String(a),userId:n,version:ht,log:d.map(g=>g.log).join(`
4
- `)},p=JSON.stringify(l),f=To.enable?Di(l,2002,a):p;yield this.uploadLogWithRetry(f,a,f instanceof Uint8Array,p),d.forEach(g=>g.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e,r,o){return go({retryFunction:()=>wi({url:Ci(e,ho.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(To.handleUploadFailed(),this.uploadLogWithRetry(o,e,!1,o))}),settings:{retries:3,timeout:2e3},onError:({retry:s})=>{s()}})()}getPrefix(t){let e=new Date;return e.setTime(bi()),`[${Zs(e)}] <${Ur[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){O(Ur[t])||(this._logLevel!==t&&this.info("setLogLevel",t),this._logLevel=t)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(t){if(we(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}addLogToQueue(t,e,r=!0,o,s){let n={log:e.reduce((a,d)=>`${a} ${this.logChunkToString(d)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};U.emit(B.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n)}log(t,e,r=!0,o,s){var a;if(e.unshift(this.getPrefix(t)),this.addLogToQueue(t,e,r,o,s),t<this._logLevel)return;let n=((a=Ur[t])==null?void 0:a.toLowerCase())||"info";tu.PRINT_LOG_TAG?console[n](TS,IS,SS,...e):console[n](...e)}debug(...t){this.log(1,t)}info(...t){this.log(2,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}createLogger(t){if(t.parent instanceof Eo){let e=t,{parent:r}=e,o=Ff(e,["parent"]),s=new Eo(o);return s.bindParent(r),s}return new Eo(t)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),r=e?Number(e):-1;Ur[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};m(tu,"PRINT_LOG_TAG",!(ot||nt||Lm));var Jm=tu,F=new Jm;var yS=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,i=>{let t=Math.random()*16|0;return(i=="x"?t:t&3|8).toString(16)})},Va=yS;var Xm=class{constructor(){m(this,"_prefix","TRTC");m(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!Pi())return;setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter(r=>{if(r.startsWith(this._prefix))try{let o=localStorage.getItem(r);if(!o)return!1;let s=JSON.parse(o);if(s&&s.expiresIn<Date.now())return!0}catch(o){return!1}return!1}).forEach(r=>localStorage.removeItem(r))}doFlush(){if(Pi())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){F.warn(t)}}getItem(t){if(!Pi())return null;try{let e=localStorage.getItem(this.getRealKey(t));if(!e)return null;let r=JSON.parse(e);return r&&r.expiresIn>=Date.now()?r.value:null}catch(e){F.warn(e)}}setItem(t,e){if(Pi())try{let r={expiresIn:Date.now()+pd,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){F.warn(r)}}deleteItem(t){if(!Pi())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return F.warn(e),!1}}clear(){if(Pi())try{localStorage.clear()}catch(t){F.warn(t)}}},bn=new Xm;var Ao={};yi(Ao,{HTTPS_API:()=>GS,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>Th,IS_GET_CAPABILITIES_SUPPORTED:()=>_h,IS_GET_SETTINGS_SUPPORTED:()=>Nn,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>KS,IS_INSERTABLE_STREAM_SUPPORTED:()=>_s,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>ry,IS_RTC_RTP_SENDER_SUPPORTED:()=>Ja,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>nE,IS_SEI_SUPPORTED:()=>Xa,IS_SPC_SUPPORTED:()=>XS,basis:()=>ey,capabilityCheck:()=>yh,checkSystemRequirementsInternal:()=>fu,decodeSupportStatus:()=>Zg,detectVideoCodecCapabilities:()=>Ah,detectVideoDecoderCapabilities:()=>lE,detectVideoEncoderCapabilities:()=>uE,encodeSupportStatus:()=>Eh,getBrowserInfo:()=>hu,getDisplayResolution:()=>Kg,getH264ProfileLevelIds:()=>mE,isAddTransceiverSupported:()=>Eu,isBrowserSupported:()=>ph,isCanvasCaptureStreamAPISupported:()=>rE,isCanvasSmallStreamSupported:()=>iE,isGetReceiversSupported:()=>zS,isGetSendersSupported:()=>sE,isGetTransceiversSupported:()=>JS,isGetUserMediaSupported:()=>eE,isMediaDevicesSupported:()=>pu,isMediaSessionSupported:()=>aE,isMediaStreamTrackGeneratorSupported:()=>VS,isMediaStreamTrackProcessorSupported:()=>gh,isReplaceTrackSupported:()=>YS,isRequestVideoFrameCallbackSupported:()=>qr,isSIMDSupported:()=>Sh,isScaleResolutionDownBySupported:()=>oE,isScreenCaptureApiAvailable:()=>za,isSelectedCandidatePair:()=>jS,isSetParametersSupported:()=>ZS,isSetSinkIdSupported:()=>$S,isSmallStreamSupported:()=>gu,isStopTransceiverSupported:()=>QS,isTRTCSupported:()=>BS,isUnifiedPlanDefault:()=>qS,isUsedInHttpProtocol:()=>Hi,isWebAudioSupported:()=>tE,isWebCodecSupported:()=>_u,isWebCodecsSupported:()=>fh,isWebRTCSupported:()=>Ih,isWebTransportSupported:()=>cE});var ch={};yi(ch,{AUDIO_LEVEL_SCALE:()=>Fi,AlphaStitchingType:()=>ja,AudioCodecPipelineType:()=>Rn,AudioDecoderDowngradeState:()=>Zm,AudioPlayerMode:()=>rh,AudioType:()=>eh,BASIC_TYPE:()=>Bi,BannedReason:()=>ih,CONNECTION_CLOSED_REASON:()=>wg,CheckPermissionType:()=>ah,ClientEvent:()=>Qm,CodecType:()=>Ug,ConnectionEvent:()=>Dg,ConnectionState:()=>iu,DECODE_FAILED_ERROR_CODE:()=>nh,DenoiserMode:()=>sh,DeviceType:()=>au,FacingMode:()=>ou,FrameWorkType:()=>ru,LeaveReason:()=>oh,LocalTrackEvent:()=>Io,MULTI_VIDEO_DATA_TYPE:()=>Vi,MediaType:()=>wt,MediaTypeLabel:()=>AS,MonitorEventId:()=>$a,MutedFlag:()=>Mg,NetworkQualityValue:()=>Lg,PlayerState:()=>So,ReceiveMode:()=>kg,RemoteStreamType:()=>ni,RemoteTrackEvent:()=>ps,RoomEvent:()=>Ui,SMALL_MODE:()=>nu,SceneNumber:()=>Ym,StreamEvent:()=>Og,StreamType:()=>Pg,SubscribeMediaType:()=>Fa,TIMER_TYPE:()=>yo,TRACK_ACTION:()=>xg,TRACK_KIND:()=>Km,TrackEvent:()=>jr,UserRole:()=>Kt,UserRoleNumber:()=>fs,VideoCodec:()=>su,VideoCodecPipelineType:()=>Wa,VideoContentHint:()=>Ga,VideoDecoderDowngradeState:()=>Ba,VideoPlayerMode:()=>Ha,VideoType:()=>th});var ru=(e=>(e[e.WEBRTC=30]="WEBRTC",e[e.WASM=37]="WASM",e))(ru||{}),Dg=(C=>(C.TRACK_ADDED="track-added",C.TRACK_UPDATED="track-updated",C.TRACK_SUBSCRIBED="track-subscribed",C.STREAM_ADDED="stream-added",C.STREAM_REMOVED="stream-removed",C.STREAM_UPDATED="stream-updated",C.STREAM_PUBLISHED="stream-published",C.STREAM_SUBSCRIBED="stream-subscribed",C.STREAM_UNSUBSCRIBED="stream-unsubscribed",C.STATE_CHANGED="state-changed",C.ERROR="error",C.CONNECTION_STATE_CHANGED="connection-state-changed",C.FIREWALL_RESTRICTION="firewall-restriction",C.SEI_MESSAGE="sei-message",C.CLOSED="closed",C))(Dg||{}),wg=(n=>(n.REMOTE_LEAVE="remote user exitRoom",n.REMOTE_UNPUBLISH="remote user unpublished",n.LOCAL_LEAVE="you exitRoom",n.LOCAL_UNPUBLISH="you unpublished",n.LOCAL_UNSUBSCRIBE="you unsubscribed",n.SWITCH_ROLE="you switch role to audience",n))(wg||{}),Qm=(N=>(N.STREAM_ADDED="stream-added",N.STREAM_REMOVED="stream-removed",N.STREAM_UPDATED="stream-updated",N.STREAM_SUBSCRIBED="stream-subscribed",N.CONNECTION_STATE_CHANGED="connection-state-changed",N.PEER_JOIN="peer-join",N.PEER_LEAVE="peer-leave",N.MUTE_AUDIO="mute-audio",N.MUTE_VIDEO="mute-video",N.UNMUTE_AUDIO="unmute-audio",N.UNMUTE_VIDEO="unmute-video",N.CLIENT_BANNED="client-banned",N.NETWORK_QUALITY="network-quality",N.AUDIO_VOLUME="audio-volume",N.SEI_MESSAGE="sei-message",N.ERROR="error",N))(Qm||{}),Og=(s=>(s.PLAYER_STATE_CHANGED="player-state-changed",s.SCREEN_SHARING_STOPPED="screen-sharing-stopped",s.CONNECTION_STATE_CHANGED="connection-state-changed",s.DEVICE_AUTO_RECOVERED="device-auto-recovered",s.ERROR="error",s))(Og||{}),Io=(d=>(d.DEVICE_AUTO_RECOVERED="1",d.DEVICE_RECOVER_FAILED="5",d.DEVICE_CHANGED="2",d.ERROR="3",d.PUBLISH_STATE_CHANGED="4",d.ENCODE_FAILED="6",d.TRACK_ENDED="7",d.RENDER="render",d))(Io||{}),So=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(So||{}),Ui=(W=>(W.PEER_JOIN="peer-join",W.PEER_LEAVE="peer-leave",W.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",W.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",W.BANNED="banned",W.NETWORK_QUALITY="network-quality",W.AUDIO_VOLUME="audio-volume",W.SEI_MESSAGE="sei-message",W.ERROR="error",W.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",W.REMOTE_PUBLISHED="remote-published",W.REMOTE_UNPUBLISHED="remote-unpublished",W.FIREWALL_RESTRICTION="firewall-restriction",W.HEARTBEAT_REPORT="heartbeat-report",W.CUSTOM_MESSAGE="custom-message",W.LAYER_DATA="layerData",W.FIRST_VIDEO_FRAME="first-video-frame",W.DUMP="dump",W.AUDIO_FRAME="audio-frame",W.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",W.LOCAL_PUBLISH_FLAG_CHANGED="local-publish-flag-changed",W.NTP_TIME_UPDATED="ntp-time-updated",W))(Ui||{}),jr=(d=>(d.PLAYER_STATE_CHANGED="player-state-changed",d.MUTE="mute",d.UNMUTE="unmute",d.ERROR="error",d.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",d.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",d.FIRST_VIDEO_FRAME="first-video-frame",d.VIDEO_SIZE_CHANGED="video-size-changed",d))(jr||{}),ps=(o=>(o.DECODE_FAILED="decode-failed",o.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",o.REMOTE_PUBLISH_CHANGED="remote-publish-changed",o.AUDIO_FRAME_WITH_NTP="audio-frame-with-ntp",o))(ps||{}),Mg=(a=>(a[a.VIDEO=1]="VIDEO",a[a.SMALL=2]="SMALL",a[a.AUX=4]="AUX",a[a.AUDIO=8]="AUDIO",a[a.VIDEO_MUTE=16]="VIDEO_MUTE",a[a.AUX_MUTE=32]="AUX_MUTE",a[a.AUDIO_MUTE=64]="AUDIO_MUTE",a))(Mg||{}),Ym=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(Ym||{}),fs=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(fs||{}),Kt=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(Kt||{}),iu=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(iu||{}),Zm=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Zm||{}),Ba=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Ba||{}),Km=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(Km||{}),xg=(e=>(e.ADD="add",e.REMOVE="remove",e))(xg||{}),wt=(s=>(s[s.NULL=0]="NULL",s[s.AUDIO=1]="AUDIO",s[s.AUX_VIDEO=2]="AUX_VIDEO",s[s.BIG_VIDEO=4]="BIG_VIDEO",s[s.SMALL_VIDEO=8]="SMALL_VIDEO",s))(wt||{}),AS={1:"audio",2:"auxVideo",4:"video"},eh=(t=>(t[t.opus=111]="opus",t))(eh||{}),th=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(th||{}),Pg=(e=>(e.Big="big",e.Small="small",e))(Pg||{}),ni=(e=>(e.Main="main",e.Aux="auxiliary",e))(ni||{}),Vi=(s=>(s[s.MULTI_DATA_AUDIO=1]="MULTI_DATA_AUDIO",s[s.MULTI_DATA_BIG_IMG=2]="MULTI_DATA_BIG_IMG",s[s.MULTI_DATA_SMALL_IMG=3]="MULTI_DATA_SMALL_IMG",s[s.MULTI_DATA_AUX_IMG=7]="MULTI_DATA_AUX_IMG",s[s.MULTI_DATA_TYPE_BUTT=12]="MULTI_DATA_TYPE_BUTT",s))(Vi||{}),$a=(X=>(X[X.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",X[X.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",X[X.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",X[X.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",X[X.MUTE_AUDIO=32772]="MUTE_AUDIO",X[X.MUTE_VIDEO=32773]="MUTE_VIDEO",X[X.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",X[X.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",X[X.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",X[X.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",X[X.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",X[X.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",X[X.SWITCH_CAMERA=32780]="SWITCH_CAMERA",X[X.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",X[X.REPLACE_VIDEO=32782]="REPLACE_VIDEO",X[X.REPLACE_AUDIO=32783]="REPLACE_AUDIO",X[X.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",X[X.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",X[X.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",X[X.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",X[X.JOIN=32788]="JOIN",X[X.LEAVE=32789]="LEAVE",X[X.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",X[X.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",X[X.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",X[X.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",X[X.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",X[X.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",X[X.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",X[X.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",X[X.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",X[X.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",X[X.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",X[X.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",X[X.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",X[X.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",X[X.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",X[X.PUBLISH_AUX=32805]="PUBLISH_AUX",X[X.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",X[X.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",X[X.VIDEO_ENCODER=4004]="VIDEO_ENCODER",X[X.VIDEO_DECODER=4005]="VIDEO_DECODER",X))($a||{}),Lg=(a=>(a[a.UNKNOWN=0]="UNKNOWN",a[a.EXCELLENT=1]="EXCELLENT",a[a.GOOD=2]="GOOD",a[a.POOR=3]="POOR",a[a.BAD=4]="BAD",a[a.VERY_BAD=5]="VERY_BAD",a[a.DISCONNECTED=6]="DISCONNECTED",a))(Lg||{}),kg=(o=>(o[o.MANUAL=0]="MANUAL",o[o.AUTO_AUDIO=1]="AUTO_AUDIO",o[o.AUTO_VIDEO=2]="AUTO_VIDEO",o[o.AUTO_ALL=3]="AUTO_ALL",o))(kg||{}),ou=(e=>(e.user="user",e.environment="environment",e))(ou||{}),Ha=(r=>(r[r.ELEMENT=0]="ELEMENT",r[r.CANVAS_FROM_ELEMENT=1]="CANVAS_FROM_ELEMENT",r[r.CANVAS_WITHOUT_ELEMENT=2]="CANVAS_WITHOUT_ELEMENT",r))(Ha||{}),rh=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(rh||{}),ih=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(ih||{}),oh=(l=>(l[l.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",l[l.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",l[l.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",l[l.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",l[l.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",l[l.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",l[l.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",l[l.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",l[l.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",l))(oh||{}),Fi=1e8,sh=(e=>(e[e.NORMAL=0]="NORMAL",e[e.FAR_FIELD_REDUCTION=1]="FAR_FIELD_REDUCTION",e))(sh||{}),Fa=class{constructor(){m(this,"mediaType",0)}set audio(t){t?this.mediaType|=1:this.mediaType&=-2}get audio(){return!!(this.mediaType&1)}set video(t){t?this.mediaType|=4:this.mediaType&=-5}get video(){return!!(this.mediaType&4)}set auxiliary(t){t?this.mediaType|=2:this.mediaType&=-3}get auxiliary(){return!!(this.mediaType&2)}set smallVideo(t){t?this.mediaType|=8:this.mediaType&=-9}get smallVideo(){return!!(this.mediaType&8)}},Bi=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(Bi||{}),su=(s=>(s.H264="h264",s.H265="h265",s.VP8="vp8",s.VP9="vp9",s.AV1="av1",s))(su||{}),Wa=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.DUMP=1]="DUMP",o[o.SEI=2]="SEI",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(Wa||{}),Rn=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.NTP_TO_AUDIO_FRAME=1]="NTP_TO_AUDIO_FRAME",o[o.DUMP=2]="DUMP",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(Rn||{}),Ug=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(Ug||{}),nh=(g=>(g[g.SUCCESS=0]="SUCCESS",g[g.FAILED=1]="FAILED",g[g.WEBCODEC_INIT=2]="WEBCODEC_INIT",g[g.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",g[g.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",g[g.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",g[g.WASM_INIT=6]="WASM_INIT",g[g.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",g[g.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",g[g.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",g[g.TEST=10]="TEST",g[g.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",g))(nh||{}),Ga=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(Ga||{}),yo=(s=>(s.INTERVAL="interval",s.TIMEOUT="timeout",s.RAF="raf",s.RIC="ric",s.INTERVAL_IN_WORKER="intervalInWorker",s))(yo||{}),nu=(e=>(e.CANVAS="canvas",e.API="api",e))(nu||{}),ah=(o=>(o[o.NONE=0]="NONE",o[o.MICROPHONE=1]="MICROPHONE",o[o.CAMERA=2]="CAMERA",o[o.BOTH=3]="BOTH",o))(ah||{}),au=(e=>(e.CAMERA="camera",e.MICROPHONE="microphone",e))(au||{}),ja=(r=>(r[r.none=0]="none",r[r.horizontal=1]="horizontal",r[r.vertical=2]="vertical",r))(ja||{});var $e={AVOID_REPEATED_CALL:"AVOID_REPEATED_CALL",INVALID_PARAMETER_REQUIRED:"INVALID_PARAMETER_REQUIRED",INVALID_PARAMETER_TYPE:"INVALID_PARAMETER_TYPE",INVALID_PARAMETER_EMPTY:"INVALID_PARAMETER_EMPTY",INVALID_PARAMETER_INSTANCE:"INVALID_PARAMETER_INSTANCE",INVALID_PARAMETER_RANGE:"INVALID_PARAMETER_RANGE",INVALID_PARAMETER_MIN:"INVALID_PARAMETER_MIN",INVALID_PARAMETER_MAX:"INVALID_PARAMETER_MAX",INVALID_PARAMETER_STREAMTYPE:"INVALID_PARAMETER_STREAMTYPE",API_CALL_TIMEOUT:"API_CALL_TIMEOUT",SIGNAL_CHANNEL_RECONNECTION_FAILED:"SIGNAL_CHANNEL_RECONNECTION_FAILED",SIGNAL_CHANNEL_SETUP_FAILED:"SIGNAL_CHANNEL_SETUP_FAILED",ERROR_MESSAGE:"ERROR_MESSAGE",EXCHANGE_SDP_TIMEOUT:"EXCHANGE_SDP_TIMEOUT",DOWNLINK_RECONNECTION_FAILED:"DOWNLINK_RECONNECTION_FAILED",EXCHANGE_SDP_FAILED:"EXCHANGE_SDP_FAILED",UPDATE_OFFER_TIMEOUT:"UPDATE_OFFER_TIMEOUT",UPLINK_RECONNECTION_FAILED:"UPLINK_RECONNECTION_FAILED",INVALID_RECORDID:"INVALID_RECORDID",INVALID_PURE_AUDIO:"INVALID_PURE_AUDIO",INVALID_STREAMID:"INVALID_STREAMID",INVALID_USER_DEFINE_RECORDID:"INVALID_USER_DEFINE_RECORDID",INVALID_USER_DEFINE_PUSH_ARGS:"INVALID_USER_DEFINE_PUSH_ARGS",INVALID_PROXY:"INVALID_PROXY",INVALID_JOIN:"INVALID_JOIN",INVALID_ROOMID_STRING:"INVALID_ROOMID_STRING",INVALID_ROOMID_INTEGER:"INVALID_ROOMID_INTEGER",INVALID_SIGNAL_CHANNEL:"INVALID_SIGNAL_CHANNEL",JOIN_ROOM_TIMEOUT:"JOIN_ROOM_TIMEOUT",JOIN_ROOM_FAILED:"JOIN_ROOM_FAILED",REJOIN_ROOM_FAILED:"REJOIN_ROOM_FAILED",INVALID_DESTROY:"INVALID_DESTROY",INVALID_PUBLISH:"INVALID_PUBLISH",INVALID_UNPUBLISH:"INVALID_UNPUBLISH",INVALID_AUDIENCE:"INVALID_AUDIENCE",INVALID_INITIALIZE:"INVALID_INITIALIZE",INVALID_DUPLICATE_PUBLISHING:"INVALID_DUPLICATE_PUBLISHING",INVALID_SUBSCRIBE_UNDEFINED:"INVALID_SUBSCRIBE_UNDEFINED",INVALID_SUBSCRIBE_LOCAL:"INVALID_SUBSCRIBE_LOCAL",INVALID_REMOTE_STREAM:"INVALID_REMOTE_STREAM",SUBSCRIBE_FAILED:"SUBSCRIBE_FAILED",INVALID_ROLE:"INVALID_ROLE",INVALID_PARAMETER_SWITCH_ROLE:"INVALID_PARAMETER_SWITCH_ROLE",INVALID_OPERATION_SWITCH_ROLE:"INVALID_OPERATION_SWITCH_ROLE",SWITCH_ROLE_TIMEOUT:"SWITCH_ROLE_TIMEOUT",SWITCH_ROLE_FAILED:"SWITCH_ROLE_FAILED",CLIENT_BANNED:"CLIENT_BANNED",INVALID_OPERATION_START_PUBLISH_CDN:"INVALID_OPERATION_START_PUBLISH_CDN",INVALID_OPERATION_STOP_PUBLISH_CDN:"INVALID_OPERATION_STOP_PUBLISH_CDN",INVALID_STREAM_ID:"INVALID_STREAM_ID",START_PUBLISH_CDN_FAILED:"START_PUBLISH_CDN_FAILED",STOP_PUBLISH_CDN_FAILED:"STOP_PUBLISH_CDN_FAILED",START_MIX_TRANSCODE:"START_MIX_TRANSCODE",STOP_MIX_TRANSCODE:"STOP_MIX_TRANSCODE",INVALID_AUDIO_VOLUME:"INVALID_AUDIO_VOLUME",ENABLE_SMALL_STREAM_PUBLISHED:"ENABLE_SMALL_STREAM_PUBLISHED",DISABLE_SMALL_STREAM_PUBLISHED:"DISABLE_SMALL_STREAM_PUBLISHED",NOT_SUPPORTED_SMALL_STREAM:"NOT_SUPPORTED_SMALL_STREAM",INVALID_SMALL_STREAM_PROFILE:"INVALID_SMALL_STREAM_PROFILE",INVALID_PARAMETER_REMOTE_STREAM:"INVALID_PARAMETER_REMOTE_STREAM",INVALID_OPERATION_CHANGE_SMALL:"INVALID_OPERATION_CHANGE_SMALL",REMOTE_NOT_PUBLISH_SMALL_STREAM:"REMOTE_NOT_PUBLISH_SMALL_STREAM",INVALID_SWITCH_DEVICE:"INVALID_SWITCH_DEVICE",INVALID_SWITCH_DEVICE_PUBLISHING:"INVALID_SWITCH_DEVICE_PUBLISHING",INVALID_REPLACE_TRACK:"INVALID_REPLACE_TRACK",INVALID_INITIALIZE_LOCAL_STREAM:"INVALID_INITIALIZE_LOCAL_STREAM",INVALID_ADD_TRACK_REPETITIVE:"INVALID_ADD_TRACK_REPETITIVE",INVALID_ADD_TRACK_REMOVING:"INVALID_ADD_TRACK_REMOVING",INVALID_ADD_TRACK_PUBLISHING:"INVALID_ADD_TRACK_PUBLISHING",INVALID_STREAM_INITIALIZED:"INVALID_STREAM_INITIALIZED",INVALID_ADD_TRACK_NUMBER:"INVALID_ADD_TRACK_NUMBER",INVALID_REMOVE_AUDIO_TRACK:"INVALID_REMOVE_AUDIO_TRACK",INVALID_REMOVE_AUDIO_ADDING:"INVALID_REMOVE_AUDIO_ADDING",INVALID_REMOVE_AUDIO_ON:"INVALID_REMOVE_AUDIO_ON",INVALID_REMOVE_TRACK_PUBLISHING:"INVALID_REMOVE_TRACK_PUBLISHING",INVALID_REMOVE_TRACK_NOT_TRACK:"INVALID_REMOVE_TRACK_NOT_TRACK",INVALID_REMOVE_TRACK_NUMBER:"INVALID_REMOVE_TRACK_NUMBER",INVALID_REPLACE_TRACK_NO_TRACK:"INVALID_REPLACE_TRACK_NO_TRACK",REPEAT_JOIN:"REPEAT_JOIN",CLIENT_DESTROYED:"CLIENT_DESTROYED",NOT_BUG_PACKAGE:"NOT_BUG_PACKAGE",START_MIX_TRANSCODE_FAILED:"START_MIX_TRANSCODE_FAILED",STOP_MIX_TRANSCODE_FAILED:"STOP_MIX_TRANSCODE_FAILED",MIX_TRANSCODE_NOT_STARTED:"MIX_TRANSCODE_NOT_STARTED",CANNOT_LESS_THAN_ZERO:"CANNOT_LESS_THAN_ZERO",MIX_PARAMS_VIDEO_FRAMERATE:"MIX_PARAMS_VIDEO_FRAMERATE",MIX_PARAMS_VIDEO_GOP:"MIX_PARAMS_VIDEO_GOP",MIX_PARAMS_AUDIO_BITRATE:"MIX_PARAMS_AUDIO_BITRATE",MIX_PARAMS_USER_Z_ORDER:"MIX_PARAMS_USER_Z_ORDER",MIX_PARAMS_NOT_SELF:"MIX_PARAMS_NOT_SELF",MIX_PARAMS_USER_STREAM:"MIX_PARAMS_USER_STREAM",INVALID_PLAY:"INVALID_PLAY",INVALID_ELEMENT_ID:"INVALID_ELEMENT_ID",INVALID_ELEMENT_ID_TYPE:"INVALID_ELEMENT_ID_TYPE",PLAY_FAILED:"PLAY_FAILED",INVALID_USERID:"INVALID_USERID",INVALID_CREATE_STREAM_SOURCE:"INVALID_CREATE_STREAM_SOURCE",INVALID_CREATE_STREAM_SCREEN:"INVALID_CREATE_STREAM_SCREEN",INVALID_CREATE_STREAM_AUDIO:"INVALID_CREATE_STREAM_AUDIO",INVALID_CREATE_STREAM_SCREEN_AUDIO:"INVALID_CREATE_STREAM_SCREEN_AUDIO",NOT_SUPPORTED_HTTP:"NOT_SUPPORTED_HTTP",NOT_SUPPORTED_WEBRTC:"NOT_SUPPORTED_WEBRTC",NOT_SUPPORTED_PROFILE:"NOT_SUPPORTED_PROFILE",NOT_SUPPORTED_MEDIA:"NOT_SUPPORTED_MEDIA",NOT_SUPPORTED_H264ENCODE:"NOT_SUPPORTED_H264ENCODE",NOT_SUPPORTED_H264DECODE:"NOT_SUPPORTED_H264DECODE",NOT_SUPPORTED_TRACK:"NOT_SUPPORTED_TRACK",NOT_SUPPORTED_SWITCH_DEVICE:"NOT_SUPPORTED_SWITCH_DEVICE",NOT_SUPPORTED_CAPTURE:"NOT_SUPPORTED_CAPTURE",NOT_SUPPORTED_AUX:"NOT_SUPPORTED_AUX",MICROPHONE_NOT_FOUND:"MICROPHONE_NOT_FOUND",CAMERA_NOT_FOUND:"CAMERA_NOT_FOUND",SIGNAL_RESPONSE_FAILED:"SIGNAL_RESPONSE_FAILED",CATCH_HANDLER_ERROR:"CATCH_HANDLER_ERROR",API_NOT_EXIST:"API_NOT_EXIST",CONNECTION_CLOSED:"CONNECTION_CLOSED",SUBSCRIBE_ALL_FALSE:"SUBSCRIBE_ALL_FALSE",SEI_NOT_SUPPORT:"SEI_NOT_SUPPORT",SEI_DISABLED:"SEI_DISABLED",SEI_BEFORE_PUBLISH:"SEI_BEFORE_PUBLISH",SEI_NOT_VIDEO:"SEI_NOT_VIDEO",CALL_FREQUENCY_LIMIT:"CALL_FREQUENCY_LIMIT",CONNECTION_ABORTED:"CONNECTION_ABORTED",API_CALL_ABORTED:"API_CALL_ABORTED",DUPLICATE_AUX:"DUPLICATE_AUX"},nr={AVOID_REPEATED_CALL(i){return`previous ${i.name}() is ongoing, please avoid repeated calls.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${pt(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${pt(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_MIN({key:i,rule:t,fnName:e,value:r}){return`the min value of ${i||t.name} is ${t.min}, received: ${r}.`},INVALID_PARAMETER_MAX({key:i,rule:t,fnName:e,value:r}){return`the max value of ${i||t.name} is ${t.max}, received: ${r}.`},API_CALL_TIMEOUT(i){return`${i.commandDesc||i.command} timeout observed.`},SIGNAL_CHANNEL_RECONNECTION_FAILED:"signal channel reconnection failed, please check your network.",SIGNAL_CHANNEL_SETUP_FAILED(i){return`SignalChannel setup failure: (errorCode: ${i.errorCode}, errorMsg: ${i.errorMsg} }).`},ERROR_MESSAGE(i){let t=`${i.type} failed`;return i.message&&(t=`${t}: ${i.message}.`),t},EXCHANGE_SDP_TIMEOUT:"exchange sdp timeout.",DOWNLINK_RECONNECTION_FAILED:"downlink reconnection failed, please check your network and re-join room.",EXCHANGE_SDP_FAILED(i){return`exchange sdp failed ${i.errMsg}.`},UPDATE_OFFER_TIMEOUT:"update offer timeout observed.",UPLINK_RECONNECTION_FAILED:"uplink reconnection failed, please check your network and publish again.",INVALID_RECORDID:"recordId must be an integer number.",INVALID_PURE_AUDIO:"pureAudioPushMode must be 1 or 2.",INVALID_STREAMID:"streamId must be a sting literal within 64 bytes, and not be empty.",INVALID_USER_DEFINE_RECORDID:"userDefineRecordId must be a sting literal contains (a-zA-Z),(0-9), underline and hyphen, within 64 bytes, and not be empty.",INVALID_USER_DEFINE_PUSH_ARGS:"userDefinePushArgs must be a sting literal within 256 bytes, and not be empty.",INVALID_PROXY:'proxy server url must start with "wss://".',INVALID_JOIN:"duplicate join() called.",INVALID_ROOMID_STRING(i){return`'${i}' must be validate string when useStringRoomId is true.`},INVALID_ROOMID_INTEGER(i){return`'${i}' must be an integer between [1, 4294967294] when useStringRoomId is false.`},INVALID_SIGNAL_CHANNEL:"SignalChannel is not ready yet.",JOIN_ROOM_TIMEOUT:"join room timeout.",JOIN_ROOM_FAILED({error:i,code:t}){return`Failed to join room - ${i} code: ${t}`},REJOIN_ROOM_FAILED(i){return`reJoin room: ${i.roomId} failed, please check your network.`},INVALID_DESTROY:"please call leave() before destroy().",INVALID_PUBLISH:"please call join() before publish().",INVALID_UNPUBLISH:"stream has not been published yet.",INVALID_AUDIENCE:'no permission to publish() under live/audience, please call switchRole("anchor") firstly before publish().',INVALID_INITIALIZE:"cannot publish stream because stream is not initialized, is switching device, or has been closed.",INVALID_DUPLICATE_PUBLISHING(i){return`duplicate ${i} stream publishing, please unpublish your prev ${i} stream and then re-publish.`},INVALID_SUBSCRIBE_UNDEFINED:"stream is undefined or null.",INVALID_SUBSCRIBE_LOCAL:"stream cannot be LocalStream.",INVALID_REMOTE_STREAM:"remoteStream does not exist because it has been unpublished by remote peer.",SUBSCRIBE_FAILED({message:i,userId:t,streamType:e}){return`failed to subscribe ${t} ${e} stream, reason: ${i}.`},INVALID_ROLE:"switchRole can only be called in live mode.",INVALID_PARAMETER_SWITCH_ROLE:"role could only be set to a value as anchor or audience.",INVALID_OPERATION_SWITCH_ROLE:"please call join() before switchRole().",SWITCH_ROLE_TIMEOUT:"switchRole timeout.",SWITCH_ROLE_FAILED(i){return`switchRole failed, errCode: ${i.code} errMsg: ${i.message}.`},CLIENT_BANNED(i){return`client was banned because of ${i.message}.`},INVALID_OPERATION_START_PUBLISH_CDN:"please call startPublishCDNStream() after join room and publish the local stream.",INVALID_OPERATION_STOP_PUBLISH_CDN:"please call startPublishCDNStream() before stopPublishCDNStream().",START_PUBLISH_CDN_FAILED(i){return`startPublishCDNStream failed, errMsg: ${i.message}.`},STOP_PUBLISH_CDN_FAILED(i){return`stopPublishCDNStream failed, errMsg: ${i.message}.`},INVALID_STREAM_ID(i){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},START_MIX_TRANSCODE:"please call startMixTranscode() after join().",STOP_MIX_TRANSCODE:"please call stopMixTranscode() after startMixTranscode().",INVALID_AUDIO_VOLUME:"interval must be a number.",ENABLE_SMALL_STREAM_PUBLISHED:"Cannot enable small stream after localStream published.",DISABLE_SMALL_STREAM_PUBLISHED:"Cannot disable small stream after localStream published.",NOT_SUPPORTED_SMALL_STREAM:"your browser does not support opening small stream.",INVALID_SMALL_STREAM_PROFILE:"small stream profile is invalid.",INVALID_PARAMETER_REMOTE_STREAM:"remoteStream is invalid.",INVALID_OPERATION_CHANGE_SMALL:"cannot switch to the small stream without subscribing to the video of remoteStream.",REMOTE_NOT_PUBLISH_SMALL_STREAM:"remote peer does not publish small stream.",INVALID_SWITCH_DEVICE:"cannot switch device on current stream.",INVALID_SWITCH_DEVICE_PUBLISHING:"cannot switch device when publishing localStream.",INVALID_REPLACE_TRACK:"cannot replace track when publishing localStream.",INVALID_INITIALIZE_LOCAL_STREAM:"local stream has not initialized yet.",INVALID_ADD_TRACK_REPETITIVE:"previous addTrack is ongoing, please avoid repetitive execution.",INVALID_ADD_TRACK_REMOVING:"cannot add track when a track is removing.",INVALID_ADD_TRACK_PUBLISHING:"cannot add track when publishing localStream.",INVALID_STREAM_INITIALIZED:"your local stream haven't been initialized yet.",INVALID_ADD_TRACK_NUMBER:"a Stream has at most one audio track and one video track.",INVALID_REMOVE_AUDIO_TRACK:"remove audio track is not supported on your browser.",INVALID_REMOVE_AUDIO_ADDING:"cannot remove track when a track is adding.",INVALID_REMOVE_AUDIO_ON:"previous removeTrack is ongoing, please avoid repetitive execution.",INVALID_REMOVE_TRACK_PUBLISHING:"cannot remove track when publishing localStream.",INVALID_REMOVE_TRACK_NOT_TRACK:"localStream has not this track.",INVALID_REMOVE_TRACK_NUMBER:"remove the only video track is not supported, please use replaceTrack or muteVideo.",INVALID_REPLACE_TRACK_NO_TRACK(i){return`cannot replace ${i.kind} track because stream has not ${i.kind} track`},NOT_BUG_PACKAGE:"You need to buy packages, refer to tencent console.",START_MIX_TRANSCODE_FAILED(i){return`startMixTranscode failed, errMsg: ${i.message}.`},STOP_MIX_TRANSCODE_FAILED(i){return`stopMixTranscode failed, errMsg: ${i.message}.`},MIX_TRANSCODE_NOT_STARTED:"mixTranscode has not been started.",CANNOT_LESS_THAN_ZERO({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},MIX_PARAMS_VIDEO_FRAMERATE:"'config.videoFramerate' should be an integer between 0 and 30, excluding 0.",MIX_PARAMS_VIDEO_GOP:"'config.videoGOP' should be an integer between 1 and 8.",MIX_PARAMS_AUDIO_BITRATE:"'config.audioBitrate' should be an integer between 32 and 192.",MIX_PARAMS_USER_Z_ORDER(i){return`'${i}' is required and must be between 1 and 15.`},MIX_PARAMS_NOT_SELF:"'config.mixUsers' must contain self.",MIX_PARAMS_USER_STREAM:"'config.videoWidth' and 'config.videoHeight' of output stream should be contain all mix stream.",INVALID_PLAY:"duplicate play() call observed, please stop() firstly.",INVALID_ELEMENT_ID:({key:i,fnName:t})=>`'${i}' is not found in the document object when calling ${t}().`,INVALID_ELEMENT_ID_TYPE:({key:i,fnName:t,type:e})=>`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`,PLAY_FAILED:i=>`${i.media} play failed, browser exception: ${i.error.toString()}`,INVALID_USERID:"userId cannot be all spaces.",INVALID_CREATE_STREAM_SOURCE:"LocalStream must be created by createStream() with either audio/video or audioSource/videoSource, but can not be mixed with audio/video and audioSource/videoSource.",INVALID_CREATE_STREAM_SCREEN:"screen/video cannot be both true.",INVALID_CREATE_STREAM_AUDIO:"audio/screenAudio cannot be both true.",INVALID_CREATE_STREAM_SCREEN_AUDIO:"when screen is true, screenAudio can be configured.",NOT_SUPPORTED_HTTP:"http protocol does not support the ability to capture microphone, camera and screen. please use https to deploy your page.",NOT_SUPPORTED_WEBRTC:"your browser or environment does not support full WebRTC capabilities.",NOT_SUPPORTED_PROFILE:"your browser does not support setVideoProfile.",NOT_SUPPORTED_MEDIA:"your browser or environment does not support navigator.mediaDevices.",NOT_SUPPORTED_H264ENCODE:"your device does not support H.264 encoding.",NOT_SUPPORTED_H264DECODE:"your device does not support H.264 decoding.",NOT_SUPPORTED_TRACK(i){return`${i}Track is not supported on your browser.`},NOT_SUPPORTED_SWITCH_DEVICE:"switchDevice is not supported on your browser.",NOT_SUPPORTED_CAPTURE:"Your browser or environment does not support screen sharing, please check whether the browser version.",MICROPHONE_NOT_FOUND:"no microphone detected, please check your microphone.",CAMERA_NOT_FOUND:"no camera detected, please check your camera.",SIGNAL_RESPONSE_FAILED(i){return`${i.signalResponse} failed, response code is ${i.code} , errMsg: ${i.message}.`},CATCH_HANDLER_ERROR({name:i,event:t}){return`an error was caught in ${i}.on('${t}', handler), please check your code in 'handler'.`},API_NOT_EXIST({name:i}){return`experimental api ${i} does not exist.`},REPEAT_JOIN:i=>"please avoid repeated join.",CONNECTION_CLOSED:"remoteStream has been unsubscribed or unpublished by remote user.",SUBSCRIBE_ALL_FALSE:"cannot subscribe when both audio & video are false, use client.unsubscribe() instead",CLIENT_DESTROYED({funName:i}){return`failed to call ${i}() because client was destroyed.`},SEI_NOT_SUPPORT:i=>`not support to sendSEIMessage${i===!1?" without using h264 codec":""}`,SEI_DISABLED:"SEI is disabled",SEI_BEFORE_PUBLISH:"please call sendSEIMessage() after publish() success",SEI_NOT_VIDEO:"cannot send sei when localStream has not video.",CALL_FREQUENCY_LIMIT:({isSize:i,name:t,timesInSecond:e,maxSizeInSecond:r})=>`api ${t} call ${i?"size":"times"} is over ${i?`${r} bytes`:e} in a second.`,CONNECTION_ABORTED(i){return`connection aborted due to: ${i}`},API_CALL_ABORTED(i){let t;return i.message.includes("REMOTE_STREAM_NOT_EXIST")?t=`Subscribe ${i.userId} ${i.streamType} stream aborted, reason: remote user ${i.userId} unpublished stream.`:t=`API aborted, reason: ${i.message}`,t},DUPLICATE_AUX:"only one auxiliary stream can be published in a room.",NOT_SUPPORTED_AUX:"publish auxiliary stream is not supported on your browser.",INVALID_PARAMETER_STREAMTYPE:i=>`'streamType' is required when 'userId' is not '*', calling ${i}()`};var Vg=(i,t)=>t?`${ir}/${i}/${t}`:`${ir}/${i}/index.html`;var bS=()=>{if(window.TRTC_ERROR_INFO&&window.TRTC_ERROR_LINK)return{TRTC_ERROR_INFO:window.TRTC_ERROR_INFO,TRTC_ERROR_LINK:window.TRTC_ERROR_LINK};let i=localStorage==null?void 0:localStorage.getItem(cm);if(i){i=JSON.parse(i);let t=document.createElement("script");t.type="text/javascript",t.text=i.message,document.body.appendChild(t);let e=window.TRTC_ERROR_INFO,r=window.TRTC_ERROR_LINK;return document.body.removeChild(t),{TRTC_ERROR_INFO:e,TRTC_ERROR_LINK:r}}return{}};function He(i){let{key:t,data:e,link:r,addDocLink:o=!0}=i,s="",n="",a="";Xe(nr[t])?s=nr[t](e):we(nr[t])&&(s=nr[t]);let{TRTC_ERROR_INFO:d,TRTC_ERROR_LINK:l}=bS();r?a=`${r.className}.html#${r.fnName}`:l&&l[t]&&(Xe(l[t])?a=l[t](e):we(l[t])&&(a=l[t]));let p=s;return Fr()&&(d&&d[t]&&(Xe(d[t])?n=d[t](e):we(d[t])&&(n=d[t])),n&&(o?p=`${n}
3
+ `}});var qg=la(ci=>{"use strict";var gs=Wg(),OS=jg(),MS=du();ci.grammar=MS;ci.write=OS;ci.parse=gs.parse;ci.parseParams=gs.parseParams;ci.parseFmtpConfig=gs.parseFmtpConfig;ci.parsePayloads=gs.parsePayloads;ci.parseRemoteCandidates=gs.parseRemoteCandidates;ci.parseImageAttributes=gs.parseImageAttributes;ci.parseSimulcastStreamList=gs.parseSimulcastStreamList});var Bf=(ie=>(ie[ie.INVALID_PARAMETER=4096]="INVALID_PARAMETER",ie[ie.INVALID_OPERATION=4097]="INVALID_OPERATION",ie[ie.NOT_SUPPORTED=4098]="NOT_SUPPORTED",ie[ie.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",ie[ie.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",ie[ie.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",ie[ie.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",ie[ie.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",ie[ie.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",ie[ie.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",ie[ie.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",ie[ie.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",ie[ie.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",ie[ie.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",ie[ie.CLIENT_BANNED=16448]="CLIENT_BANNED",ie[ie.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",ie[ie.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",ie[ie.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",ie[ie.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",ie[ie.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",ie[ie.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",ie[ie.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",ie[ie.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",ie[ie.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",ie[ie.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",ie[ie.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",ie[ie.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",ie[ie.API_CALL_ABORTED=16461]="API_CALL_ABORTED",ie[ie.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",ie[ie.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",ie[ie.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",ie[ie.VIDEO_ENCODE_FAILED=16465]="VIDEO_ENCODE_FAILED",ie[ie.AUDIO_ENCODE_FAILED=16466]="AUDIO_ENCODE_FAILED",ie[ie.UNKNOWN=65535]="UNKNOWN",ie))(Bf||{}),q=Bf;var tI=function(i){for(let t in q)if(q[t]===i)return t;return"UNKNOWN"},ma=class extends Error{constructor({name:e="RtcError",message:r,code:o=q.UNKNOWN,extraCode:s=0,constraint:n}){let a=`<${tI(o)} 0x${o.toString(16)}>`,d=`${r}${n?` constraint: ${n}`:""}${r!=null&&r.includes(a)?"":` ${a}`}`;super(d);m(this,"code");m(this,"extraCode");m(this,"message");m(this,"originMessage");m(this,"name");m(this,"constraint");this.code=o,this.extraCode=s,this.name=e,this.message=d,this.constraint=n,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},ae=ma;var $f=0;var Hf=function(){return $f},Ri=function(){return Date.now()+$f},md=function(){let i=new Date;return i.setTime(Ri()),i.toLocaleString()},Zs=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};var si={};Ai(si,{REPORT_TYPE:()=>hn,buildSSOPackage:()=>Di,bytes2ms:()=>tg,calculateScaleResolutionDownNumber:()=>Md,concatArrayBuffers:()=>hg,convertObjectNumberToInt:()=>Aa,copyProperties:()=>eg,deepClone:()=>is,deepCloneBasic:()=>vd,deepMerge:()=>Br,delay:()=>$r,fibonacci:()=>os,formatedTime:()=>Nd,getConstructorName:()=>cn,getContainerFromElement:()=>ug,getEnv:()=>Qf,getFirst16Bits:()=>fg,getInternalVersion:()=>cg,getLast16Bits:()=>pg,getLoggerUrl:()=>Ni,getMediaStreamTrackInfo:()=>Od,getMuteStateFromFlag:()=>ns,getNetworkType:()=>an,getNumNetworkType:()=>Cd,getReconnectionTimeout:()=>ig,getStringByteLength:()=>lg,getTurnServer:()=>dg,getUint32Version:()=>Dd,getValueType:()=>pt,getViewListFromView:()=>ln,glog:()=>Ia,ipv4ToUint32:()=>un,isArray:()=>ut,isAudioWorkletSupported:()=>ng,isBoolean:()=>Ye,isConstructor:()=>ss,isEmpty:()=>dn,isFunction:()=>Xe,isLangChinese:()=>Fr,isMediaStreamTrack:()=>og,isNumber:()=>Ve,isObject:()=>hr,isOverseaSdkAppId:()=>Rr,isPlainObject:()=>Xt,isPortrait:()=>Rm,isPromise:()=>po,isRemoteTrack:()=>sg,isRotate90Or270:()=>pr,isSetSinkIdSupported:()=>ag,isString:()=>we,isUndefined:()=>O,loadImage:()=>mn,loadVideo:()=>mg,ms2bytes:()=>rg,ms2samples:()=>bm,normalizeUrl:()=>as,performanceNow:()=>_e,promiseAny:()=>Sa,samples2ms:()=>Am,setNetworkTypeFromWebRTC:()=>Kf,stringify:()=>br,stringifyIncludeValue:()=>ya,throttlePromise:()=>wd});var hm={};Ai(hm,{AUDIO_MUTE_BIT:()=>Td,AUDIO_STAT_BIT:()=>tn,AUX_STAT_BIT:()=>ga,AUX_STREAM_MSID:()=>hI,BACKEND_ENV:()=>_d,BASE_DOC_URL:()=>ir,BASE_HOST:()=>Wf,CAPABILITIES_KEYS:()=>yd,CLASS_NAME:()=>UI,CLOUD_CONSOLE_URL:()=>sI,CROSS_ROOM_BIT:()=>lI,DATA_FREEZE_TIMING:()=>Sd,DOC_BILLING_CN:()=>hd,DOC_BILLING_OVERSEA:()=>pd,DOC_URL:()=>nI,DTLS_STATE_UNKNOWN:()=>AI,ENV_NAME:()=>vi,EXCHANGE_SDP_TIMEOUT:()=>DI,IS_WORKER:()=>Ks,IS_WORKLET:()=>ha,KIBANA_EVENT:()=>Ar,LOCAL_STREAM_PUBLISH_STATE:()=>jf,LOGGER_CMD_TYPE:()=>ho,LOGGER_DOMAIN:()=>nm,LOGGER_DOMAIN_OVERSEA:()=>am,LOG_LEVEL:()=>Ur,LOG_LEVEL_NAME:()=>FI,MAIN_STREAM_MSID:()=>mI,MAX_RTT:()=>_a,MICROPHONE_COMMUNICATIONS:()=>VI,MICROPHONE_DEFAULT:()=>rs,MUTE_ALL_BIT:()=>uI,NAME:()=>M,NETWORK_TYPE:()=>es,NOT_SUPPORTED_H264:()=>OI,PAUSED_RETRY_COUNT:()=>ts,PEERCONNECTION_CONNECTING_TIMEOUT:()=>LI,PEER_CONNECTION_STATE:()=>bI,PEER_LEAVE_REASON:()=>qf,RECOVER_CAPTURE_INTERVAL:()=>rn,REMOTE_STREAM_TYPE_AUX:()=>fI,REMOTE_STREAM_TYPE_MAIN:()=>pI,RENDER_FREEZE_TIMING:()=>MI,SCHEDULE_DOMAIN:()=>Ci,SCHEDULE_TIMEOUT:()=>kI,SDP_SEMANTICS_PLAN_B:()=>wI,SDP_SEMANTICS_UNIFIED_PLAN:()=>mm,SECOND_HOST:()=>iI,SIGNAL_PING_PONG_INTERVAL:()=>cI,SIGNAL_PING_TIMEOUT:()=>aI,SIGNAL_RECONNECTION_COUNT:()=>vI,SMALL_STAT_BIT:()=>um,SPEAKER_DEFAULT:()=>Ea,STORAGE_EXPIRES_TIME:()=>fd,STREAM_TYPE_BIG:()=>xI,STREAM_TYPE_SMALL:()=>PI,SUBSCRIBE_SMALL_RETRY_COUNT:()=>BI,SYNC_USER_LIST_INTERVAL:()=>CI,Scene:()=>ii,THIRD_HOST:()=>oI,TRANSPORT_DIRECTION:()=>dI,TRTC_ERROR_ASSISTANCE:()=>cm,TRTC_QUALITY_BAD:()=>II,TRTC_QUALITY_DISCONNECTED:()=>yI,TRTC_QUALITY_EXCELLENT:()=>EI,TRTC_QUALITY_GOOD:()=>_I,TRTC_QUALITY_POOR:()=>TI,TRTC_QUALITY_UNKNOWN:()=>gI,TRTC_QUALITY_VERY_BAD:()=>SI,UPDATE_OFFER_TIMEOUT:()=>NI,VIDEO_MUTE_BIT:()=>Id,VIDEO_STAT_BIT:()=>en,audioProfileMap:()=>gd,defaultBigVideoProfile:()=>fa,defaultSmallVideoProfile:()=>dm,getRetryCount:()=>RI,getScriptDir:()=>rI,innerVersion:()=>om,loggerProxy:()=>pa,screenProfileMap:()=>Ed,setLoggerProxy:()=>Ko,setRetryCount:()=>lm,setVersion:()=>sm,version:()=>ht,videoProfileMap:()=>Vr});var om="4.15.00.1600",ht="5.0.0";function sm(i){ht=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));om=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var Ks=typeof importScripts!="undefined",ha=typeof registerProcessor!="undefined",rI=()=>{let i=Ks?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},pa="",Ko=i=>pa=i,Wf="web.sdk.qcloud.com",iI="web.sdk.tencent.cn",oI="web.sdk.cloud.tencent.cn",sI="https://console.cloud.tencent.com/trtc",ir=`https://${Wf}/trtc/webrtc/doc`,nI=`${ir}/zh-cn/`,hd="https://cloud.tencent.com/document/product/647/85386",pd="https://trtc.io/document/56025",nm="https://yun.tim.qq.com",am="https://apisgp.my-imcloud.com",cm="trtc_error_assistance",ho={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},vi={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},Ur=(n=>(n[n.TRACE=0]="TRACE",n[n.DEBUG=1]="DEBUG",n[n.INFO=2]="INFO",n[n.WARN=3]="WARN",n[n.ERROR=4]="ERROR",n[n.NONE=5]="NONE",n))(Ur||{}),aI=18e3,cI=2e3,es={unknown:0,wifi:1,"4g":2,"3g":3,"2g":4,wired:5,"5g":6},fd=7*24*3600*1e3,gd={standard:{sampleRate:48e3,channelCount:1,bitrate:40},"standard-stereo":{sampleRate:48e3,channelCount:2,bitrate:64},high:{sampleRate:48e3,channelCount:1,bitrate:128},"high-stereo":{sampleRate:48e3,channelCount:2,bitrate:192}},Vr={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},fa=Vr["480p_2"],dm=Vr["120p_2"],Ed={"480p":{width:640,height:480,frameRate:5,bitrate:900},"480p_2":{width:640,height:480,frameRate:30,bitrate:1e3},"720p":{width:1280,height:720,frameRate:5,bitrate:1200},"720p_2":{width:1280,height:720,frameRate:30,bitrate:3e3},"1080p":{width:1920,height:1080,frameRate:5,bitrate:1600},"1080p_2":{width:1920,height:1080,frameRate:30,bitrate:4e3}},M={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture",RESIZE:"resize",TIME_UPDATE:"timeupdate"},dI={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},_d={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},ii=(e=>(e.LIVE="live",e.RTC="rtc",e))(ii||{}),en=1,um=2,ga=4,tn=8,Td=64,Id=16,uI=112,lI=128,mI="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",hI="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",pI=M.MAIN,fI=M.AUXILIARY,gI=0,EI=1,_I=2,TI=3,II=4,SI=5,yI=6,AI="unknown",bI={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},Gf=1/0;function lm(i){Gf=i}function RI(){return Gf}var vI=30,Ar={JOIN:"join",DELTA_JOIN:"delta-join",REJOIN:"rejoin",LEAVE:"leave",DELTA_LEAVE:"delta-leave",PUBLISH:"publish",DELTA_PUBLISH:"delta-publish",UNPUBLISH:"unpublish",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",UPLINK_CONNECTION:"uplink-connection",UPLINK_RECONNECTION:"uplink-reconnection",DOWNLINK_CONNECTION:"downlink-connection",DOWNLINK_RECONNECTION:"downlink-reconnection",ON_TRACK:"ontrack",ICE_CONNECTION_STATE:"iceConnectionState",LOCAL_STREAM_INITIALIZE:"stream-initialize",SIGNAL_CONNECTION:"websocketConnectionState",SIGNAL_RECONNECTION:"websocketReconnectionState",UPDATE_STREAM:"update-stream",RECOVER_LOCAL_AUDIO_TRACK:"recover-local-audio-track",RECOVER_LOCAL_VIDEO_TRACK:"recover-local-video-track",RECOVER_SUBSCRIPTION:"recover-subscription",START_MIX_TRANSCODE:"start-mix-transcode",STOP_MIX_TRANSCODE:"stop-mix-transcode",PLAYER_ERROR:"player-error",SCHEDULE:"schedule",LOAD_WORKLET:"load-worklet",VIDEO_FROZEN_COUNT:"videoFrozenCount",GET_USER_MEDIA_RETRY:"getUserMedia-retry",VIDEO_ENCODE_FAILED_DURING_CALL:"video-encode-failed-during-call",AUDIO_ENCODE_FAILED_DURING_CALL:"audio-encode-failed-during-call"},CI=1e4,NI=1e4,DI=1e4,mm="unified-plan",wI="plan-b",OI=1028,jf=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(jf||{}),Sd=500,MI=1e3,xI=M.BIG,PI=M.SMALL,LI=10*1e3,Ci={MAIN:"schedule.cloud-rtc.com",BACKUP:"schedule.cloud-rtc.net",MAIN_OVERSEA:"schedule.rtc-web.com",BACKUP_OVERSEA:"schedule.rtc-web.io",MAIN_OVERSEA_BACKUP:"intl-schedule.cloud-rtc.com"},kI=2e3,UI={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},ts=5,rs="default",Ea=rs,VI="communications",FI=Object.keys(Ur),qf=["normal leave","timeout leave","kick","role change"],BI=10,rn=2e3,yd=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],_a=10*1e3;var $I=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(p){try{l(r.next(p))}catch(f){n(f)}}function d(p){try{l(r.throw(p))}catch(f){n(f)}}function l(p){p.done?s(p.value):o(p.value).then(a,d)}l((r=r.apply(i,t||[])).next())})},pm=Symbol(32),fm=Symbol(16),gm=Symbol(8),oi=class{constructor(t){this.g=t,this.consumed=0,t&&(this.need=t.next().value)}setG(t){this.g=t,this.demand(t.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(t,e){return e&&this.consume(),this.need=t,this.flush()}read(t){return $I(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((e,r)=>{var o;this.reject=r,this.resolve=n=>{delete this.lastReadPromise,delete this.resolve,delete this.need,e(n)},this.demand(t,!0)||(o=this.pull)===null||o===void 0||o.call(this,t)})})}readU32(){return this.read(pm)}readU16(){return this.read(fm)}readU8(){return this.read(gm)}close(){var t;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(t=this.reject)===null||t===void 0||t.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let t=null,e=this.buffer.subarray(this.consumed),r=0,o=s=>e.length<(r=s);if(typeof this.need=="number"){if(o(this.need))return;t=e.subarray(0,r)}else if(this.need===pm){if(o(4))return;t=e[0]<<24|e[1]<<16|e[2]<<8|e[3]}else if(this.need===fm){if(o(2))return;t=e[0]<<8|e[1]}else if(this.need===gm){if(o(1))return;t=e[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(o(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(e.subarray(0,r)),t=this.need}else if(this.g){this.g.throw(new Error("Unsupported type"));return}}else{if(o(this.need.byteLength))return;new Uint8Array(this.need).set(e.subarray(0,r)),t=this.need}return this.consumed+=r,this.g?this.demand(this.g.next(t).value,!0):this.resolve&&this.resolve(t),t}write(t){if(t instanceof Uint8Array?this.malloc(t.length).set(t):"buffer"in t?this.malloc(t.byteLength).set(new Uint8Array(t.buffer,t.byteOffset,t.byteLength)):this.malloc(t.byteLength).set(new Uint8Array(t)),this.g||this.resolve)this.flush();else return new Promise(e=>this.pull=e)}writeU32(t){this.malloc(4).set([t>>24&255,t>>16&255,t>>8&255,t&255]),this.flush()}writeU16(t){this.malloc(2).set([t>>8&255,t&255]),this.flush()}writeU8(t){this.malloc(1)[0]=t,this.flush()}malloc(t){if(this.buffer){let e=this.buffer.length,r=e+t;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{let o=new Uint8Array(r);o.set(this.buffer),this.buffer=o}return this.buffer.subarray(e,r)}else return this.buffer=new Uint8Array(t),this.buffer}};oi.U32=pm;oi.U16=fm;oi.U8=gm;var HI=128,WI=127,xv=~WI,Pv=Math.pow(2,31);function Em(i){let t=new oi;for(;i>=128;)t.malloc(1)[0]=i&255|HI,i>>>=7;return t.malloc(1)[0]=i&255,t.buffer||new Uint8Array(0)}function Ad(i,t=0){let e=new oi,r=t<<3;switch(typeof i){case"boolean":let o=e.malloc(2);o[0]=r,o[1]=i?1:0;break;case"number":e.malloc(1)[0]=r,e.write(Em(i));break;case"string":e.malloc(1)[0]=r|2;let s=new TextEncoder().encode(i);e.write(Em(s.length));let n=e.malloc(s.length);for(let d=0;d<s.length;d++)n[d]=s[d];break;case"object":let a=new oi;if(Array.isArray(i))for(let d=0;d<i.length;d++){let l=Ad(i[d],d+1);l&&a.write(l)}else{let d=1;for(let l in i){let p=Ad(i[l],d++);p&&a.write(p)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=r|2,a.buffer&&(e.write(Em(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var Ta=class{constructor(){m(this,"buffer");this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(t){this.buffer.push(t>>>24&255),this.buffer.push(t>>>16&255),this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeInt16(t){this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeByte(t){this.buffer.push(t&255)}writeBytes(t){for(let e=0;e<t.length;e++)this.buffer.push(t[e])}};function _m(i,t,e){i[e]=t>>>24&255,i[e+1]=t>>>16&255,i[e+2]=t>>>8&255,i[e+3]=t&255}function Jt(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function Tm(i,t){return i[t]}function on(i,t,e){return new TextDecoder().decode(GI(i,t,e))}function GI(i,t,e){return i.slice(t,t+e)}var Im=0,bd=2654435769,Rd=16,ym=4,sn=2,nn=7;function jI(i,t,e,r="AVQualityReportSvc.C2S",o=2e3,s=2,n=30){return{version:o,encryption:s,d2:"",d2Len:0,uinType:n,uin:"",uinLen:0,reqHead:{seqNumber:e,appId:i,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:r,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:t}}function zf(i,t){let e=new Ta,r=jI(t,i,Im);Im=Im+1&2147483647,e.writeInt32(0),e.writeInt32(r.version),e.writeByte(r.encryption);let o=new TextEncoder().encode(r.d2);e.writeInt32(o.length+4),o&&e.writeBytes(o),e.writeByte(r.uinType);let s=new TextEncoder().encode(r.uin);e.writeInt32(s.length+4),s.length&&e.writeBytes(s);let n=new Ta;n.writeInt32(0),n.writeInt32(r.reqHead.seqNumber),n.writeInt32(r.reqHead.appId),n.writeByte(r.reqHead.appId>>>24&255),n.writeByte(r.reqHead.appId>>>16&255),n.writeByte(r.reqHead.appId>>>8&255),n.writeByte(r.reqHead.appId&255);for(let Q=4;Q<16;Q++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let d=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(d.length+4),d.length&&n.writeBytes(d);let l=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(l.length+4),l.length&&n.writeBytes(l);let p=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(p.length+4),p.length&&n.writeBytes(p);let f=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(f.length+4),f.length&&n.writeBytes(f);let g=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(g.length+2),g.length&&n.writeBytes(g);let y=n.length;n.data[0]=y>>>24&255,n.data[1]=y>>>16&255,n.data[2]=y>>>8&255,n.data[3]=y&255,we(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let R=new Uint8Array(n.data),C=null;r.encryption===1?C=new TextEncoder().encode(r.uin):r.encryption===2&&(C=new Uint8Array(16)),C&&(R=qI(R,C)),e.writeBytes(R);let N=new Uint8Array(e.data),k=N.length;return N[0]=k>>>24&255,N[1]=k>>>16&255,N[2]=k>>>8&255,N[3]=k&255,N}function qI(i,t){let e=i.length,o=(e+1+sn+nn)%8;o&&(o=8-o);let s=e+1+sn+nn+o,n=new Uint8Array(s),a=0,d=new Uint8Array(8),l=new Uint8Array(8),p=new Uint8Array(8),f=0;d[0]=Math.floor(Math.random()*256)&248|o,f=1;for(let y=0;y<o;y++)d[f]=Math.floor(Math.random()*256)&255,f+=1;for(let y=0;y<sn;)if(f<8&&(d[f]=Math.floor(Math.random()*256)&255,f+=1,y+=1),f===8){Sm(d,t,l,p,n,a),a+=8,f=0;for(let R=0;R<8;R++)p[R]=n[a-8+R]}let g=0;for(;g<e;)if(f<8&&(d[f]=i[g],f+=1,g+=1),f===8){Sm(d,t,l,p,n,a),a+=8,f=0;for(let y=0;y<8;y++)p[y]=n[a-8+y]}for(let y=0;y<nn;)if(f<8&&(d[f]=0,f+=1,y+=1),f===8){Sm(d,t,l,p,n,a),a+=8,f=0;for(let R=0;R<8;R++)p[R]=n[a-8+R]}return n}function Sm(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];zI(i,t,o,s);for(let n=0;n<8;n++)o[s+n]^=e[n];for(let n=0;n<8;n++)e[n]=i[n]}function zI(i,t,e,r){let o=Jt(i,0),s=Jt(i,4),n=[];for(let d=0;d<4;d++)n[d]=Jt(t,d*4);let a=0;for(let d=0;d<Rd;d++)a+=bd,a=a>>>0,o+=(s<<4)+n[0]^s+a^(s>>>5)+n[1],o=o>>>0,s+=(o<<4)+n[2]^o+a^(o>>>5)+n[3],s=s>>>0;_m(e,o,r),_m(e,s,r+4)}var Qf=function(){return new URLSearchParams(location.search).get("trtc_env")||""},Rr=i=>Number(i)<14e8,Ni=function(i,t){let e;pa?e=pa:e=Rr(i)?am:nm;let r=Math.floor(Math.random()*ri(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},Yf="unknown";function an(){XI();let{userAgent:i,connection:t}=navigator,e=(i.match(/NetType\/\S+/)||[])[0]||"";e=e.toLowerCase().replace("nettype/",""),e==="3gnet"&&(e="3g");let r=t&&t.type&&t.type.toLowerCase(),o=t&&t.effectiveType&&t.effectiveType.toLowerCase();return o==="slow-2"&&(o="2g"),r?Zf(r,o):Yf}function JI(){F.warn("netType changed",an())}var Jf=!1;function XI(){var i;Jf||(Jf=!0,(i=navigator.connection)==null||i.addEventListener("typechange",JI))}function Zf(i,t){if(es[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function Kf(i){Yf=Zf(i)}function Cd(){return es[an()]}function eg(i,t){for(let e of Reflect.ownKeys(t))if(e!=="constructor"&&e!=="prototype"&&e!=="name"){let r=Object.getOwnPropertyDescriptor(t,e)||"";Object.defineProperty(i,e,r)}return i}function tg(i,t=48e3){return Am(i/4,t)}function Am(i,t=48e3){return i*1e3/t}function rg(i,t=48e3){return bm(i,t)*4}function bm(i,t=48e3){return i*t/1e3}var Ia=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},Fr=()=>{let i=navigator.language;return i=i.substring(0,2),i==="zh"},Xt=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function os(i,t=1,e=1){return i<=1?e:os(i-1,e,t+e)}function ig(i){return i>8?30*1e3:os(i)*1e3}function pt(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Xe=i=>typeof i=="function",O=i=>typeof i=="undefined",we=i=>typeof i=="string",Ve=i=>typeof i=="number",Ye=i=>typeof i=="boolean",hr=i=>pt(i)==="object",ut=i=>pt(i)==="array",og=i=>pt(i)==="MediaStreamTrack".toLowerCase(),sg=i=>i.isRemote,po=i=>pt(i)==="promise",ss=i=>Xe(i)&&i.prototype.constructor===i,cn=i=>ss(i)?i.prototype.constructor.name:"",ng=typeof AudioWorkletNode!="undefined",ag=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function Sa(i){return new Promise((t,e)=>{let r=[];i.forEach(o=>{o.then(t).catch(s=>{r.push(s),r.length===i.length&&e(r)})})})}function _e(){return!performance||!performance.now?Date.now():Math.floor(performance.now())}var Xf=i=>+i<10?`0${i}`:i,cg=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=Xf(e[1])+Xf(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},QI=Object.prototype.hasOwnProperty,{toString:zv}=Object.prototype;function dn(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Xt(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(QI.call(i,t))return!1;return!0}}return!1}function ns(i,t){return{userId:t,hasAudio:!!(i&tn),hasVideo:!!(i&en),hasAuxiliary:!!(i&ga),hasSmall:!!(i&um),audioMuted:!!(i&Td),videoMuted:!!(i&Id),audioAvailable:!!(i&tn)&&!(i&Td),videoAvailable:!!(i&en)&&!(i&Id)}}function dg(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!O(i.username)&&!O(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",O(i.credentialType)||(t.credentialType=i.credentialType)),t}function un(i,t=!0){if(!we(i))return 0;let e=i.split(".");return t?(Number(e[0])<<24|Number(e[1])<<16|Number(e[2])<<8|Number(e[3]))>>>0:(Number(e[3])<<24|Number(e[2])<<16|Number(e[1])<<8|Number(e[0]))>>>0}var Br=function(i,t,e,r){if(!(hr(i)&&hr(t)))return 0;let o=0,s=Object.keys(t),n;for(let a=0,d=s.length;a<d;a++)if(n=s[a],!(O(t[n])||e&&e.includes(n)))if(hr(i[n])&&hr(t[n]))o+=Br(i[n],t[n],e,r);else{if(r&&r.includes(t[n]))continue;i[n]!==t[n]&&(i[n]=is(t[n]),o+=1)}return o};function is(i){if(ut(i)){let t=[];return i.forEach((e,r)=>{t[r]=is(e)}),t}if(hr(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=is(i[e])}),t}return i}var ln=i=>{let t=[];if(ut(i))t=[...i];else if(we(i)){let e=document.getElementById(i);e&&t.push(e)}else i&&t.push(i);return t},ug=i=>we(i)?document.getElementById(i):i,YI=i=>{let t=d=>d<10?`0${d}`:`${d}`,e=i.getFullYear(),r=i.getMonth()+1,o=i.getDate(),s=t(i.getHours()),n=t(i.getMinutes()),a=t(i.getSeconds());return`${e}/${r}/${o} ${s}:${n}:${a}`},Nd=()=>YI(new Date);function br(i,{keysToInclude:t,keysToExclude:e}){try{if(ut(i))return`[${i.map(n=>br(n,{keysToInclude:t,keysToExclude:e})).join(",")}]`;if(!Xt(i)||!ut(t)&&!ut(e))return JSON.stringify(i);let r={},o=new Set(t),s=new Set(e);return Object.keys(i).forEach(n=>{(s.size===0&&o.has(n)||o.size===0&&!s.has(n))&&(r[n]=Xt(i[n])||ut(i[n])?JSON.parse(br(i[n],{keysToExclude:e,keysToInclude:t})):i[n])}),JSON.stringify(r)}catch(r){return"{}"}}function ya(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),br(i,{keysToInclude:e})}function lg(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var Rm=()=>{var i,t,e,r;return(i=window.screen)!=null&&i.orientation?!!((r=(e=(t=window.screen)==null?void 0:t.orientation)==null?void 0:e.type)!=null&&r.includes("portrait")):window.orientation===0||window.orientation===180},mn=i=>A(void 0,null,function*(){return new Promise((t,e)=>{let r;if(we(i))r=new Image,r.crossOrigin="anonymous",r.src=i;else if(r=i,r.complete){t(r);return}r.onload=()=>t(r),r.onerror=()=>{e(new ae({code:q.INVALID_PARAMETER,message:`load image failed, url: ${i}`}))}})}),Dd=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},Aa=i=>(Object.keys(i).forEach(t=>{Ve(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Xt(i[t])||ut(i[t]))&&Aa(i[t])}),i);function $r(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function wd(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function as(i){return i.replace(/(^|[^:])\/{2,}/g,"$1/")}function Od(i){var t;try{let{width:e,height:r,frameRate:o,sampleRate:s,sampleSize:n,channelCount:a}=(t=i.getSettings)==null?void 0:t.call(i),d=i.kind===M.AUDIO?`${s}x${n}@${a}`:`${e}x${r}@${o}`,l=i.stats?` stats: ${JSON.stringify(i.stats).replaceAll('"',"")}`:"";return`${i.id} ${i.readyState} muted:${i.muted} ${i.kind} ${i.label} ${d}${l}`}catch(e){return""}}function Md(i,t){return i.width*i.height===t.width*t.height?1:Rm()&&t.width>t.height&&i.height>t.width?Math.max(i.width/t.height,i.height/t.width,1):Math.max(i.width/t.width,i.height/t.height,1)}function pr(i){return i===90||i===270}function mg(i){return A(this,null,function*(){return new Promise((t,e)=>{let r=document.createElement("video");r.crossOrigin="anonymous",r.src=i,r.muted=!0,r.loop=!0,r.playsInline=!0,r.play().then(()=>t(r)),r.onerror=()=>{e(r.error)}})})}function vd(i,t=new WeakMap){if(typeof i!="object"||i===null)return i;if(t.has(i))return t.get(i);if(Array.isArray(i)){let e=[];return t.set(i,e),i.forEach((r,o)=>{e[o]=vd(r,t)}),e}if(Object.prototype.toString.call(i)==="[object Object]"){let e={};return t.set(i,e),Reflect.ownKeys(i).forEach(r=>{e[r]=vd(i[r],t)}),e}return i}var hn=(r=>(r[r.END_REPORT=2001]="END_REPORT",r[r.LOG=2002]="LOG",r[r.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",r))(hn||{});function ZI(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return O(r)||(o=Ee(Y({},o),{gzip:+r})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:t,bytes_report_data:JSON.stringify(o)}}}function Di(i,t,e,r){try{let o=ZI(i,t,e,r),s=Ad(o);return zf(s,e)}catch(o){return JSON.stringify(i)}}function hg(i,t){let e=new Uint8Array(i.byteLength+t.byteLength);return e.set(new Uint8Array(i),0),e.set(new Uint8Array(t),i.byteLength),e.buffer}function pg(i){return(i&65535)>>>0}function fg(i){return(i&4294901760)>>>0}function gg(i){let t=KI(i);return t==null?void 0:t.busiBuff}function KI(i){try{let t={},e=0;t.totalLength=Jt(i,e),e+=4,t.version=Jt(i,e),e+=4,t.encryption=Tm(i,e),e+=1,t.uinType=Tm(i,e),e+=1,t.uinLength=Jt(i,e),e+=4,t.uin=t.uinLength>4?on(i,e,t.uinLength-4):"",e+=t.uinLength-4;let r=i.slice(e);if(t.encryption===2){let o=new Uint8Array(16).fill(0);i=eS(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=Jt(i,e),e+=4,t.seqNo=Jt(i,e),e+=4,t.retCode=Jt(i,e),e+=4,t.retStrLength=Jt(i,e),e+=4,t.retStr=t.retStrLength?on(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=Jt(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?on(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=Jt(i,e),e+=4,t.cookie=t.cookieLength?on(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=Jt(i,e),e+=4,t.busiBuffLength=Jt(i,e),e+=4,t.busiBuff=t.busiBuffLength?on(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function Eg(i,t){let e=i[0]<<24|i[1]<<16|i[2]<<8|i[3],r=i[4]<<24|i[5]<<16|i[6]<<8|i[7];e=e>>>0,r=r>>>0;let o=bd*Rd>>>0;for(let s=0;s<Rd;s++)r-=(e<<ym)+t[2]^e+o^(e>>>5)+t[3],r=r>>>0,e-=(r<<ym)+t[0]^r+o^(r>>>5)+t[1],e=e>>>0,o-=bd,o=o>>>0;return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,e&255,r>>>24&255,r>>>16&255,r>>>8&255,r&255])}function eS(i,t){let e=0,r=new Uint8Array(8).fill(0),o=new Uint8Array(i.slice(0,8)),s=Eg(o,t),n=s[0]&7,a=i.length-1-n-sn-nn,d=new Uint8Array(a),l=0,p=r,f=i.slice(0,8);e=8;let g=1;g+=n;for(let R=1;R<=sn;)if(g<8)g++,R++;else if(g===8){let C=vm(i,e,p,f,s,t);p=C.ivPreCrypt,f=C.ivCurCrypt,s=C.debiBuf,e=C.bufPos,g=0}let y=a;for(;y>0;)if(g<8)d[l++]=s[g]^p[g],g++,y--;else if(g===8){let R=vm(i,e,p,f,s,t);p=R.ivPreCrypt,f=R.ivCurCrypt,s=R.debiBuf,e=R.bufPos,g=0}for(let R=1;R<=nn;)if(g<8)s[g]^p[g],g++,R++;else if(g===8){if(e>=i.length)break;let C=vm(i,e,p,f,s,t);if(!C.success)break;p=C.ivPreCrypt,f=C.ivCurCrypt,s=C.debiBuf,e=C.bufPos,g=0}return d}function vm(i,t,e,r,o,s){if(t+8>i.length)return{success:!1};let n=new Uint8Array(r),a=i.slice(t,t+8),d=new Uint8Array(8);for(let p=0;p<8;p++)d[p]=o[p]^a[p];let l=Eg(d,s);return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:l,bufPos:t+8}}var _g=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function wi({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(d=>d.clone().json().then(l=>({data:l}),()=>d.arrayBuffer().then(l=>({data:gg(new Uint8Array(l))||(_g?_g.decode(l):l)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let d=JSON.parse(a.response);s({data:d})}catch(d){s({data:a.response})}else n({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=r||5e3,a.open(e,i,!0),a.send(t)})}function Cm(i){return A(this,null,function*(){let t=_e(),e=JSON.stringify(i);try{if(!CompressionStream||e.length<=2800)return e;let o=new Blob([e],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),a=yield(yield(yield new Response(o)).blob()).arrayBuffer();return F.debug(`compressJSON ${e.length} -> ${a.byteLength} ${_e()-t}ms`),a}catch(r){return e}})}var tS=Object.prototype.hasOwnProperty;var fo=i=>typeof i=="function",cs=i=>typeof i=="undefined";var Tg=i=>typeof i=="boolean";var Nm=i=>i.isRemote;var Dm=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function Ig(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Dm(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(tS.call(i,t))return!1;return!0}}return!1}var rS=0,iS=1,Sg=2;function oS({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:d=5,timeout:l=1e3}=t,p=0,f=-1,g=rS,y=(R,C)=>A(this,null,function*(){let N=n||this;try{let k=yield i.apply(N,a);p>0&&s&&s.call(this,p),p=0,R(k)}catch(k){let Q=()=>{clearTimeout(f),p=0,g=Sg,C(k)},H=()=>{g!==Sg&&p<(fo(d)?d():d)?(p++,g=iS,fo(r)&&r.call(this,p,Q),f=window.setTimeout(()=>{f=-1,y(R,C)},fo(l)?l(p):l)):(Q(),fo(o)&&o.call(this,k))};fo(e)?e.call(this,{error:k,retry:H,reject:C,retryFuncArgs:a,retriedCount:p}):H()}});return new Promise(y)}}var go=oS;var Eo=class i{constructor(t){m(this,"_parentPath");m(this,"userId");m(this,"remoteUserId");m(this,"id");m(this,"sdkAppId");m(this,"type");m(this,"isLocal");this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=Tg(t.isLocal)?t.isLocal:!0,this.type=this.isLocal?"":t.type}getFullId(){return this._parentPath&&this.id?`${this._parentPath}-${this.id}`:this._parentPath?this._parentPath:this.id}createChild(t){let e=new i({id:t.id,userId:cs(t.userId)?this.userId:t.userId,sdkAppId:cs(t.sdkAppId)?this.sdkAppId:t.sdkAppId,type:cs(t.type)?this.type:t.type,isLocal:cs(t.isLocal)?this.isLocal:t.isLocal,remoteUserId:cs(t.remoteUserId)?this.remoteUserId:t.remoteUserId});return e.bindParent(this),e}bindParent(t){let e=t.getFullId();this._parentPath!==e&&(this.debug(`bind logger parent: ${t.id}`),this._parentPath=e,this.userId=t.userId||this.userId,this.sdkAppId=t.sdkAppId||this.sdkAppId)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId,o=this.getFullId();e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${o}${r?`|${r}`:""}]`),F.log(t,e,cs(this.userId)||Ig(this.userId),this.userId,this.sdkAppId)}info(...t){this.log(2,t)}debug(...t){this.log(1,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}};var An={};Ai(An,{ANDROID_VERSION:()=>Pd,CHROME_MAJOR_VERSION:()=>sr,CHROME_VERSION:()=>Kd,EDGE_VERSION:()=>Ud,EDG_MAJOR_VERSION:()=>Om,EDG_VERSION:()=>Vd,ELECTRON_MAJOR_VERSION:()=>km,FIREFOX_MAJOR_VERSION:()=>kd,FIREFOX_VERSION:()=>Ld,HUAWEI_VERSION:()=>Jd,IE_VERSION:()=>dS,IOS_MAIN_VERSION:()=>Vt,IOS_VERSION:()=>Cr,IPADQQB_VERSION:()=>qd,IS_ANDROID:()=>nt,IS_ANDROID_WEBVIEW:()=>hS,IS_ANY_SAFARI:()=>vr,IS_CHROME:()=>Sn,IS_CHROME_OS:()=>Mm,IS_CHROMIUM_BASE:()=>fr,IS_DESKTOP_IOS_CHROME:()=>$m,IS_EDG:()=>gn,IS_EDGE:()=>ds,IS_ELECTRON:()=>lS,IS_FIREFOX:()=>lt,IS_HEADLESS_CHROME:()=>Lm,IS_HONOR:()=>Pm,IS_HUAWEI:()=>xa,IS_HUAWEIBROWSER:()=>Ma,IS_IE:()=>Rg,IS_IE8:()=>cS,IS_IOS:()=>ot,IS_IOS_13_OR_14:()=>Bm,IS_IOS_15_1:()=>Fm,IS_IOS_CHROME:()=>ba,IS_IPAD:()=>fn,IS_IPADQQB:()=>Da,IS_IPAD_PRO:()=>wm,IS_IPHONE:()=>_o,IS_IPOD:()=>bg,IS_LINUX:()=>wa,IS_LOCAL:()=>jr,IS_MAC:()=>Gr,IS_MACQQB:()=>Na,IS_MIBROWSER:()=>Oa,IS_MQQB:()=>_n,IS_NATIVE_ANDROID:()=>aS,IS_OLD_ANDROID:()=>nS,IS_OPENHARMONY:()=>In,IS_OPPOBROWSER:()=>Tn,IS_SAFARI:()=>_t,IS_SAFARI_15_1:()=>pS,IS_SAMSUNGBROWSER:()=>Pa,IS_SOGOU:()=>va,IS_SOGOUM:()=>Ra,IS_TBS:()=>Wr,IS_UCBROWSER:()=>xm,IS_VIVOBROWSER:()=>La,IS_WECHAT:()=>Mi,IS_WIN:()=>us,IS_WQQB:()=>Ca,IS_WX:()=>uS,IS_X5MQQB:()=>En,IS_XWEB:()=>Oi,MACQQB_VERSION:()=>jd,MI_VERSION:()=>zd,MQQB_VERSION:()=>pn,OPENHARMONY_VERSION:()=>mS,OPPO_VERSION:()=>Qd,SAFARI_VERSION:()=>xi,SAMSUNG_VERSION:()=>Xd,SOGOUM_VERSION:()=>Fd,SOGOU_VERSION:()=>Bd,TBS_VERSION:()=>$d,UA_DATA_STRING:()=>Hr,USER_AGENT:()=>or,VIVO_VERSION:()=>Yd,WECHAT_VERSION:()=>Wd,WQQB_VERSION:()=>Gd,XWEB_VERSION:()=>Hd,browserInfo:()=>ni,getBrowserCoreNumber:()=>Wm,getBrowserInfo:()=>vg,getChromeMajorVersion:()=>Zd,getDeviceModel:()=>ms,getDeviceModelFromUA:()=>eu,getGPUInfo:()=>Hm,getOSName:()=>yn,getOSNumber:()=>hs,getOSString:()=>Li,getOSType:()=>jm,getTerminalType:()=>Gm,getUserAgentData:()=>ls,isLocalStorageEnabled:()=>Pi,isMobile:()=>ka,isVersionLargerThan:()=>Vm,isVersionSmallerThan:()=>Um});var or=typeof navigator=="undefined"?"":navigator.userAgent,be=i=>new RegExp(i,"i").test(or),It=i=>{if(be(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=or.match(t);if(e&&e[1])return e[1]}return""},xd=i=>{if(be(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=or.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},yg=/AppleWebKit\/([\d.]+)/i.exec(or),sS=yg?parseFloat(yg[1]):NaN,fn=be("iPad"),wm=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&be("Macintosh"),_o=be("iPhone")&&!fn,bg=be("iPod"),ot=_o||fn||bg||wm,nt=be("Android"),Pd=function(){if(nt){let i=or.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(i){let t=i[1]&&parseFloat(i[1]),e=i[2]&&parseFloat(i[2]);if(t&&e)return parseFloat(`${i[1]}.${i[2]}`);if(t)return t}}return NaN}(),nS=nt&&be("webkit")&&Pd<2.3,aS=nt&&Pd<5&&sS<537,lt=be("Firefox"),Ld=It("Firefox"),kd=xd("Firefox"),ds=be("Edge"),Ud=It("Edge"),gn=be("Edg"),Vd=It("Edg"),Om=xd("Edg"),Ra=be("SogouMobileBrowser"),Fd=It("SogouMobileBrowser"),va=be("MetaSr\\s"),Bd=It("MetaSr\\s"),Wr=be("TBS"),$d=It("TBS"),Oi=be("XWEB"),Hd=It("XWEB"),cS=be("MSIE\\s8\\.0"),Rg=be("MSIE\\/\\d+"),dS=function(){if(Rg){let i=/MSIE\s(\d+)\.\d/.exec(or),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(or)&&/rv:11.0/.test(or)&&(t=11),t}return NaN}(),Mi=be("(micromessenger|webbrowser)"),Wd=It("MicroMessenger"),En=!Wr&&be("MQQBrowser")&&be("COVC"),_n=!Wr&&be("MQQBrowser")&&!be("COVC"),pn=_n||En?It("MQQBrowser"):"",Ca=!Wr&&be(" QQBrowser"),Gd=It(" QQBrowser"),Na=!Wr&&be("QQBrowserLite"),jd=It("QQBrowserLite"),Da=!Wr&&be("MQBHD"),qd=It("MQBHD"),us=be("Windows"),Gr=!ot&&be("MAC OS X"),wa=!nt&&be("Linux"),Mm=be("CrOS"),uS=be("MicroMessenger"),xm=be("UCBrowser"),lS=be("Electron"),Oa=be("MiuiBrowser"),zd=It("MiuiBrowser"),Ma=be("HuaweiBrowser"),xa=be("Huawei")||be("HUAWEI"),Pm=be("Honor")||be("HONOR"),Jd=It("HuaweiBrowser"),Pa=be("SamsungBrowser"),Xd=It("SamsungBrowser"),Tn=be("HeyTapBrowser"),Qd=It("HeyTapBrowser"),La=be("VivoBrowser"),Yd=It("VivoBrowser"),In=be("OpenHarmony"),mS=It("OpenHarmony"),Zd=()=>xd("Chrome"),ba=be("CriOS"),fr=be("Chrome"),Sn=!ds&&!va&&!Ra&&!Wr&&!Oi&&!gn&&!Ca&&!Oa&&!Ma&&!Pa&&!Tn&&!La&&fr,Lm=be("HeadlessChrome"),sr=Zd(),Kd=It("Chrome"),km=xd("Electron"),_t=!fr&&!_n&&!En&&!Na&&!Da&&be("Safari"),vr=_t||ot,xi=It("Version"),hS=/Android.*(wv|.0.0.0)/.test(or),Cr=(()=>{if(wm)return xi;if(ot){let i=or.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})();function Um(i,t){let e=i.split(".").map(o=>Number(o)),r=t.split(".").map(o=>Number(o));for(let o=0;o<Math.max(e.length,r.length);o++){let s=e[o]||0,n=r[o]||0;if(s<n)return!0;if(s>n)return!1}return!1}function Vm(i,t,e=!1){let r=i.split(".").map(s=>Number(s)),o=t.split(".").map(s=>Number(s));for(let s=0;s<Math.max(r.length,o.length);s++){let n=r[s]||0,a=o[s]||0;if(n>a)return!0;if(n<a)return!1}return e}var Vt=Number(Cr.split(".")[0]),pS=xi==="15.1",Fm=Cr==="15.1",Bm=(()=>{let i=Number(Cr.split(".")[0]);return i===14||i===13})(),$m=ba&&xi==="11.1.1",jr=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",Pi=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),ni=vg();function vg(){let i=new Map([[lt,["Firefox",Ld]],[gn,["Edg",Vd]],[Sn,["Chrome",Kd]],[ba,["ChiOS",It("CriOS")]],[_t&&!ba,["Safari",xi]],[Wr,["TBS",$d]],[Oi,["XWEB",Hd]],[Mi&&_o,["WeChat",Wd]],[Ca,["QQ(Win)",Gd]],[_n,["QQ(Mobile)",pn]],[En,["QQ(Mobile X5)",pn]],[Na,["QQ(Mac)",jd]],[Da,["QQ(iPad)",qd]],[Oa,["MI",zd]],[Ma,["HW",Jd]],[Pa,["Samsung",Xd]],[Tn,["OPPO",Qd]],[La,["VIVO",Yd]],[ds,["EDGE",Ud]],[Ra,["SogouMobile",Fd]],[va,["Sogou",Bd]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var Qe=null;function ka(){return Qe&&typeof Qe.mobile=="boolean"?Qe.mobile:nt||ot||_o||fn||In}var Hr="";function ls(){return A(this,null,function*(){if(Qe)return Qe;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return Qe=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),Qe&&!Hr&&(Hr=`UAData: ${Qe.platform}/${Qe.platformVersion}`,Qe.architecture&&Qe.bitness&&(Hr+=` ${Qe.architecture}/${Qe.bitness}`),Qe.mobile&&(Hr+=" mobile"),Qe.model&&(Hr+=` model: ${Qe.model.replace(/\s+/g,"/")}`),Qe.fullVersionList&&(Hr+=` ${Qe.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),Qe}catch(i){return null}})}function Hm(){try{let i=document.createElement("canvas"),t=i.getContext("webgl")||i.getContext("experimental-webgl");if(!t)return"";let e=t.getExtension("WEBGL_debug_renderer_info");if(e){let r=t.getParameter(e.UNMASKED_VENDOR_WEBGL),o=t.getParameter(e.UNMASKED_RENDERER_WEBGL);return`${r} ${o}`}return""}catch(i){return""}}function ms(){return(Qe==null?void 0:Qe.model)||eu()||""}function eu(){let i=/;\s*([^;)]+)\s+Build\//,t=or.match(i);return t!=null&&t[1]?t[1].trim():null}var Ag=new Map([[nt,"Android"],[ot,"iOS"],[us,"Windows"],[Gr,"MacOS"],[wa,"Linux"],[Mm,"ChromeOS"]]),yn=function(){return Ag.get(!0)?Ag.get(!0):Qe?Qe.platform:"unknown"};function hs(){return us?1:nt?2:Gr?3:ot?4:wa?5:Mm?6:In?7:0}function Wm(){return Mi||Oi?4:fr?1:_t?2:lt?3:0}var Li=()=>{let i=yn();return Qe!=null&&Qe.platformVersion?i+=`/${Qe.platformVersion}`:ot?i+=`/${Cr}`:nt&&(i+=`/${Pd}`),i+=`/${ni.name}/${_t&&!ba?ni.version:ni.version.split(".")[0]}`,Qe!=null&&Qe.architecture&&(i+=`/${Qe.architecture}`),i};function Gm(){return nt?4:_o?2:fn?3:Gr?12:us?5:wa?13:In?22:1}function jm(){return nt?"Android":_o?"iPhone":fn?"iPad":Gr?"Mac":us?"Windows":wa?"Linux":"unknown"}var Ng=bi(ki(),1),ES=new Ng.default,U=ES;var gr=(le=>(le.ROOM_DESTROY="1",le.JOIN_START="21",le.JOIN_SCHEDULE_SUCCESS="22",le.JOIN_SIGNAL_CONNECTION_START="23",le.JOIN_SIGNAL_CONNECTION_END="24",le.JOIN_SEND_CMD="25",le.JOIN_RECEIVED_CMD_RES="26",le.JOIN_SUCCESS="27",le.JOIN_FAILED="28",le.LEAVE_START="51",le.LEAVE_SEND_CMD="52",le.LEAVE_SUCCESS="53",le.PUBLISH_START="61",le.SEND_FIRST_VIDEO_FRAME="62",le.PUBLISH_FAILED="63",le.SUBSCRIBE_START="81",le.SUBSCRIBE_SUCCESS="82",le.SUBSCRIBE_FAILED="84",le.UNSUBSCRIBE_SUCCESS="83",le.LOCAL_TRACK_CAPTURE_START="101",le.LOCAL_TRACK_CAPTURE_SUCCESS="102",le.LOCAL_TRACK_CAPTURE_FAILED="103",le.LOCAL_TRACK_PUBLISHED="104",le.LOCAL_TRACK_UNPUBLISHED="105",le.LOCAL_TRACK_REPLACED="106",le.SWITCH_DEVICE_SUCCESS="107",le.TRACK_MUTED="108",le.TRACK_UNMUTED="109",le.REMOTE_TRACK_SUBSCRIBED="110",le.REMOTE_TRACK_UNSUBSCRIBED="111",le.LOCAL_TRACK_RECAPTURE="112",le.LOCAL_AUDIO_STARTED="113",le.LOCAL_AUDIO_STOPPED="114",le.REMOTE_AUDIO_STARTED="115",le.REMOTE_AUDIO_STOPPED="116",le.PLAY_TRACK_START="151",le.PLAYER_STATE_CHANGED="152",le.VIDEO_LOADED_DATA="153",le.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",le.AUDIO_CONTEXT_LONG_SUSPENDED="155",le.REMOTE_VIDEO_PLAY_START="156",le.REMOTE_VIDEO_PLAY_FINISH="157",le.SIGNAL_CONNECTION_STATE_CHANGED="201",le.PEER_CONNECTION_STATE_CHANGED="202",le.SINGLE_CONNECTION_STAT="203",le.SPC_RECONNECTED="204",le.HEARTBEAT_REPORT="251",le.RECEIVED_PUBLISHED_USER_LIST="252",le.REMOTE_PUBLISH_STATE_CHANGED="253",le.AUDIO_LEVEL_INTERVAL="260",le.NETWORK_QUALITY="261",le.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",le.QUALITY_LIMITATION_CHANGED="263",le.LOG="264",le.AUDIO_PROCESSOR_DEBUG="265",le.SSO_SWITCH="266",le.SWITCH_ROOM_START="401",le.SWITCH_ROOM_SUCCESS="407",le.SWITCH_ROOM_FAILED="408",le))(gr||{});var B=gr;var zm=class{constructor(){m(this,"enable",!1);m(this,"ssoFailCount",0);U.on("22",({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.sso&&U.emit("266",{enable:!0})}),U.on("266",({enable:t})=>{this.enable=t})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&U.emit("266",{enable:!1})}},To=new zm;var _S="%cTRTC%c%s",TS="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",IS="display: inline",ru=class ru{constructor(){m(this,"_isEnableUploadLog",!0);m(this,"_localJoinedUser",new Map);m(this,"_queue",[]);m(this,"_timeoutId",-1);m(this,"_logLevel",1);m(this,"_logLevelToUpload",2);!Ks&&!ha&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){U.on(B.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&Ur[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),U.on(B.JOIN_SUCCESS,({room:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),U.once(B.JOIN_FAILED,()=>{this.startUpload()}),U.on(B.LEAVE_SUCCESS,({room:t})=>{this.deleteJoinedUser(t.userId)})}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(t){this._localJoinedUser.set(t.userId,t),this.startUpload()}deleteJoinedUser(t){this._localJoinedUser.delete(t)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){let t={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return t;let e=0;for(;e<this._queue.length&&e!==50;e++){let r=this._queue[e];if(r.forAllJoinedClients)this._localJoinedUser.forEach(({userId:o,sdkAppId:s})=>{t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})});else if(we(r.userId)&&Ve(r.sdkAppId)){let{userId:o,sdkAppId:s}=r;t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})}}return t.map.size>0&&(t.splicedQueue=this._queue.splice(0,e)),t}upload(){return A(this,null,function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:t,splicedQueue:e}=this.getLogsToUpload();if(t.size===0)return;try{let o=[...t.values()];for(let s=0;s<o.length;s++){let{userId:n,sdkAppId:a,logs:d}=o[s],l={timestamp:md(),sdkAppId:String(a),userId:n,version:ht,log:d.map(g=>g.log).join(`
4
+ `)},p=JSON.stringify(l),f=To.enable?Di(l,2002,a):p;yield this.uploadLogWithRetry(f,a,f instanceof Uint8Array,p),d.forEach(g=>g.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e,r,o){return go({retryFunction:()=>wi({url:Ni(e,ho.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(To.handleUploadFailed(),this.uploadLogWithRetry(o,e,!1,o))}),settings:{retries:3,timeout:2e3},onError:({retry:s})=>{s()}})()}getPrefix(t){let e=new Date;return e.setTime(Ri()),`[${Zs(e)}] <${Ur[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){O(Ur[t])||(this._logLevel!==t&&this.info("setLogLevel",t),this._logLevel=t)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(t){if(we(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}addLogToQueue(t,e,r=!0,o,s){let n={log:e.reduce((a,d)=>`${a} ${this.logChunkToString(d)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};U.emit(B.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n)}log(t,e,r=!0,o,s){var a;if(e.unshift(this.getPrefix(t)),this.addLogToQueue(t,e,r,o,s),t<this._logLevel)return;let n=((a=Ur[t])==null?void 0:a.toLowerCase())||"info";ru.PRINT_LOG_TAG?console[n](_S,TS,IS,...e):console[n](...e)}debug(...t){this.log(1,t)}info(...t){this.log(2,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}createLogger(t){if(t.parent instanceof Eo){let e=t,{parent:r}=e,o=Ff(e,["parent"]),s=new Eo(o);return s.bindParent(r),s}return new Eo(t)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),r=e?Number(e):-1;Ur[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};m(ru,"PRINT_LOG_TAG",!(ot||nt||Lm));var Jm=ru,F=new Jm;var SS=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,i=>{let t=Math.random()*16|0;return(i=="x"?t:t&3|8).toString(16)})},Va=SS;var Xm=class{constructor(){m(this,"_prefix","TRTC");m(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!Pi())return;setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter(r=>{if(r.startsWith(this._prefix))try{let o=localStorage.getItem(r);if(!o)return!1;let s=JSON.parse(o);if(s&&s.expiresIn<Date.now())return!0}catch(o){return!1}return!1}).forEach(r=>localStorage.removeItem(r))}doFlush(){if(Pi())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){F.warn(t)}}getItem(t){if(!Pi())return null;try{let e=localStorage.getItem(this.getRealKey(t));if(!e)return null;let r=JSON.parse(e);return r&&r.expiresIn>=Date.now()?r.value:null}catch(e){F.warn(e)}}setItem(t,e){if(Pi())try{let r={expiresIn:Date.now()+fd,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){F.warn(r)}}deleteItem(t){if(!Pi())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return F.warn(e),!1}}clear(){if(Pi())try{localStorage.clear()}catch(t){F.warn(t)}}},bn=new Xm;var Ao={};Ai(Ao,{HTTPS_API:()=>WS,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>Th,IS_GET_CAPABILITIES_SUPPORTED:()=>_h,IS_GET_SETTINGS_SUPPORTED:()=>Nn,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>ZS,IS_INSERTABLE_STREAM_SUPPORTED:()=>_s,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>ty,IS_RTC_RTP_SENDER_SUPPORTED:()=>Ja,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>nE,IS_SEI_SUPPORTED:()=>Xa,IS_SPC_SUPPORTED:()=>JS,basis:()=>KS,capabilityCheck:()=>yh,checkSystemRequirementsInternal:()=>gu,decodeSupportStatus:()=>Zg,detectVideoCodecCapabilities:()=>Ah,detectVideoDecoderCapabilities:()=>lE,detectVideoEncoderCapabilities:()=>uE,encodeSupportStatus:()=>Eh,getBrowserInfo:()=>pu,getDisplayResolution:()=>Kg,getH264ProfileLevelIds:()=>mE,isAddTransceiverSupported:()=>_u,isBrowserSupported:()=>ph,isCanvasCaptureStreamAPISupported:()=>rE,isCanvasSmallStreamSupported:()=>iE,isGetReceiversSupported:()=>qS,isGetSendersSupported:()=>sE,isGetTransceiversSupported:()=>zS,isGetUserMediaSupported:()=>eE,isMediaDevicesSupported:()=>fu,isMediaSessionSupported:()=>aE,isMediaStreamTrackGeneratorSupported:()=>US,isMediaStreamTrackProcessorSupported:()=>gh,isReplaceTrackSupported:()=>QS,isRequestVideoFrameCallbackSupported:()=>zr,isSIMDSupported:()=>Sh,isScaleResolutionDownBySupported:()=>oE,isScreenCaptureApiAvailable:()=>za,isSelectedCandidatePair:()=>GS,isSetParametersSupported:()=>YS,isSetSinkIdSupported:()=>BS,isSmallStreamSupported:()=>Eu,isStopTransceiverSupported:()=>XS,isTRTCSupported:()=>FS,isUnifiedPlanDefault:()=>jS,isUsedInHttpProtocol:()=>Hi,isWebAudioSupported:()=>tE,isWebCodecSupported:()=>Tu,isWebCodecsSupported:()=>fh,isWebRTCSupported:()=>Ih,isWebTransportSupported:()=>cE});var ch={};Ai(ch,{AUDIO_LEVEL_SCALE:()=>Fi,AlphaStitchingType:()=>ja,AudioCodecPipelineType:()=>Rn,AudioDecoderDowngradeState:()=>Zm,AudioPlayerMode:()=>rh,AudioType:()=>eh,BASIC_TYPE:()=>Bi,BannedReason:()=>ih,CONNECTION_CLOSED_REASON:()=>wg,CheckPermissionType:()=>ah,ClientEvent:()=>Qm,CodecType:()=>Ug,ConnectionEvent:()=>Dg,ConnectionState:()=>ou,DECODE_FAILED_ERROR_CODE:()=>nh,DenoiserMode:()=>sh,DeviceType:()=>cu,FacingMode:()=>su,FrameWorkType:()=>iu,LeaveReason:()=>oh,LocalTrackEvent:()=>Io,MULTI_VIDEO_DATA_TYPE:()=>Vi,MediaType:()=>wt,MediaTypeLabel:()=>yS,MonitorEventId:()=>$a,MutedFlag:()=>Mg,NetworkQualityValue:()=>Lg,PlayerState:()=>So,ReceiveMode:()=>kg,RemoteStreamType:()=>ai,RemoteTrackEvent:()=>ps,RoomEvent:()=>Ui,SMALL_MODE:()=>au,SceneNumber:()=>Ym,StreamEvent:()=>Og,StreamType:()=>Pg,SubscribeMediaType:()=>Fa,TIMER_TYPE:()=>yo,TRACK_ACTION:()=>xg,TRACK_KIND:()=>Km,TrackEvent:()=>qr,UserRole:()=>Kt,UserRoleNumber:()=>fs,VideoCodec:()=>nu,VideoCodecPipelineType:()=>Wa,VideoContentHint:()=>Ga,VideoDecoderDowngradeState:()=>Ba,VideoPlayerMode:()=>Ha,VideoType:()=>th});var iu=(e=>(e[e.WEBRTC=30]="WEBRTC",e[e.WASM=37]="WASM",e))(iu||{}),Dg=(C=>(C.TRACK_ADDED="track-added",C.TRACK_UPDATED="track-updated",C.TRACK_SUBSCRIBED="track-subscribed",C.STREAM_ADDED="stream-added",C.STREAM_REMOVED="stream-removed",C.STREAM_UPDATED="stream-updated",C.STREAM_PUBLISHED="stream-published",C.STREAM_SUBSCRIBED="stream-subscribed",C.STREAM_UNSUBSCRIBED="stream-unsubscribed",C.STATE_CHANGED="state-changed",C.ERROR="error",C.CONNECTION_STATE_CHANGED="connection-state-changed",C.FIREWALL_RESTRICTION="firewall-restriction",C.SEI_MESSAGE="sei-message",C.CLOSED="closed",C))(Dg||{}),wg=(n=>(n.REMOTE_LEAVE="remote user exitRoom",n.REMOTE_UNPUBLISH="remote user unpublished",n.LOCAL_LEAVE="you exitRoom",n.LOCAL_UNPUBLISH="you unpublished",n.LOCAL_UNSUBSCRIBE="you unsubscribed",n.SWITCH_ROLE="you switch role to audience",n))(wg||{}),Qm=(N=>(N.STREAM_ADDED="stream-added",N.STREAM_REMOVED="stream-removed",N.STREAM_UPDATED="stream-updated",N.STREAM_SUBSCRIBED="stream-subscribed",N.CONNECTION_STATE_CHANGED="connection-state-changed",N.PEER_JOIN="peer-join",N.PEER_LEAVE="peer-leave",N.MUTE_AUDIO="mute-audio",N.MUTE_VIDEO="mute-video",N.UNMUTE_AUDIO="unmute-audio",N.UNMUTE_VIDEO="unmute-video",N.CLIENT_BANNED="client-banned",N.NETWORK_QUALITY="network-quality",N.AUDIO_VOLUME="audio-volume",N.SEI_MESSAGE="sei-message",N.ERROR="error",N))(Qm||{}),Og=(s=>(s.PLAYER_STATE_CHANGED="player-state-changed",s.SCREEN_SHARING_STOPPED="screen-sharing-stopped",s.CONNECTION_STATE_CHANGED="connection-state-changed",s.DEVICE_AUTO_RECOVERED="device-auto-recovered",s.ERROR="error",s))(Og||{}),Io=(d=>(d.DEVICE_AUTO_RECOVERED="1",d.DEVICE_RECOVER_FAILED="5",d.DEVICE_CHANGED="2",d.ERROR="3",d.PUBLISH_STATE_CHANGED="4",d.ENCODE_FAILED="6",d.TRACK_ENDED="7",d.RENDER="render",d))(Io||{}),So=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(So||{}),Ui=(W=>(W.PEER_JOIN="peer-join",W.PEER_LEAVE="peer-leave",W.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",W.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",W.BANNED="banned",W.NETWORK_QUALITY="network-quality",W.AUDIO_VOLUME="audio-volume",W.SEI_MESSAGE="sei-message",W.ERROR="error",W.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",W.REMOTE_PUBLISHED="remote-published",W.REMOTE_UNPUBLISHED="remote-unpublished",W.FIREWALL_RESTRICTION="firewall-restriction",W.HEARTBEAT_REPORT="heartbeat-report",W.CUSTOM_MESSAGE="custom-message",W.LAYER_DATA="layerData",W.FIRST_VIDEO_FRAME="first-video-frame",W.DUMP="dump",W.AUDIO_FRAME="audio-frame",W.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",W.LOCAL_PUBLISH_FLAG_CHANGED="local-publish-flag-changed",W.NTP_TIME_UPDATED="ntp-time-updated",W))(Ui||{}),qr=(d=>(d.PLAYER_STATE_CHANGED="player-state-changed",d.MUTE="mute",d.UNMUTE="unmute",d.ERROR="error",d.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",d.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",d.FIRST_VIDEO_FRAME="first-video-frame",d.VIDEO_SIZE_CHANGED="video-size-changed",d))(qr||{}),ps=(o=>(o.DECODE_FAILED="decode-failed",o.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",o.REMOTE_PUBLISH_CHANGED="remote-publish-changed",o.AUDIO_FRAME_WITH_NTP="audio-frame-with-ntp",o))(ps||{}),Mg=(a=>(a[a.VIDEO=1]="VIDEO",a[a.SMALL=2]="SMALL",a[a.AUX=4]="AUX",a[a.AUDIO=8]="AUDIO",a[a.VIDEO_MUTE=16]="VIDEO_MUTE",a[a.AUX_MUTE=32]="AUX_MUTE",a[a.AUDIO_MUTE=64]="AUDIO_MUTE",a))(Mg||{}),Ym=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(Ym||{}),fs=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(fs||{}),Kt=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(Kt||{}),ou=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(ou||{}),Zm=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Zm||{}),Ba=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Ba||{}),Km=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(Km||{}),xg=(e=>(e.ADD="add",e.REMOVE="remove",e))(xg||{}),wt=(s=>(s[s.NULL=0]="NULL",s[s.AUDIO=1]="AUDIO",s[s.AUX_VIDEO=2]="AUX_VIDEO",s[s.BIG_VIDEO=4]="BIG_VIDEO",s[s.SMALL_VIDEO=8]="SMALL_VIDEO",s))(wt||{}),yS={1:"audio",2:"auxVideo",4:"video"},eh=(t=>(t[t.opus=111]="opus",t))(eh||{}),th=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(th||{}),Pg=(e=>(e.Big="big",e.Small="small",e))(Pg||{}),ai=(e=>(e.Main="main",e.Aux="auxiliary",e))(ai||{}),Vi=(s=>(s[s.MULTI_DATA_AUDIO=1]="MULTI_DATA_AUDIO",s[s.MULTI_DATA_BIG_IMG=2]="MULTI_DATA_BIG_IMG",s[s.MULTI_DATA_SMALL_IMG=3]="MULTI_DATA_SMALL_IMG",s[s.MULTI_DATA_AUX_IMG=7]="MULTI_DATA_AUX_IMG",s[s.MULTI_DATA_TYPE_BUTT=12]="MULTI_DATA_TYPE_BUTT",s))(Vi||{}),$a=(X=>(X[X.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",X[X.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",X[X.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",X[X.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",X[X.MUTE_AUDIO=32772]="MUTE_AUDIO",X[X.MUTE_VIDEO=32773]="MUTE_VIDEO",X[X.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",X[X.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",X[X.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",X[X.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",X[X.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",X[X.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",X[X.SWITCH_CAMERA=32780]="SWITCH_CAMERA",X[X.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",X[X.REPLACE_VIDEO=32782]="REPLACE_VIDEO",X[X.REPLACE_AUDIO=32783]="REPLACE_AUDIO",X[X.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",X[X.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",X[X.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",X[X.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",X[X.JOIN=32788]="JOIN",X[X.LEAVE=32789]="LEAVE",X[X.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",X[X.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",X[X.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",X[X.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",X[X.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",X[X.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",X[X.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",X[X.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",X[X.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",X[X.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",X[X.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",X[X.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",X[X.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",X[X.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",X[X.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",X[X.PUBLISH_AUX=32805]="PUBLISH_AUX",X[X.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",X[X.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",X[X.VIDEO_ENCODER=4004]="VIDEO_ENCODER",X[X.VIDEO_DECODER=4005]="VIDEO_DECODER",X))($a||{}),Lg=(a=>(a[a.UNKNOWN=0]="UNKNOWN",a[a.EXCELLENT=1]="EXCELLENT",a[a.GOOD=2]="GOOD",a[a.POOR=3]="POOR",a[a.BAD=4]="BAD",a[a.VERY_BAD=5]="VERY_BAD",a[a.DISCONNECTED=6]="DISCONNECTED",a))(Lg||{}),kg=(o=>(o[o.MANUAL=0]="MANUAL",o[o.AUTO_AUDIO=1]="AUTO_AUDIO",o[o.AUTO_VIDEO=2]="AUTO_VIDEO",o[o.AUTO_ALL=3]="AUTO_ALL",o))(kg||{}),su=(e=>(e.user="user",e.environment="environment",e))(su||{}),Ha=(r=>(r[r.ELEMENT=0]="ELEMENT",r[r.CANVAS_FROM_ELEMENT=1]="CANVAS_FROM_ELEMENT",r[r.CANVAS_WITHOUT_ELEMENT=2]="CANVAS_WITHOUT_ELEMENT",r))(Ha||{}),rh=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(rh||{}),ih=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(ih||{}),oh=(l=>(l[l.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",l[l.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",l[l.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",l[l.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",l[l.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",l[l.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",l[l.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",l[l.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",l[l.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",l))(oh||{}),Fi=1e8,sh=(e=>(e[e.NORMAL=0]="NORMAL",e[e.FAR_FIELD_REDUCTION=1]="FAR_FIELD_REDUCTION",e))(sh||{}),Fa=class{constructor(){m(this,"mediaType",0)}set audio(t){t?this.mediaType|=1:this.mediaType&=-2}get audio(){return!!(this.mediaType&1)}set video(t){t?this.mediaType|=4:this.mediaType&=-5}get video(){return!!(this.mediaType&4)}set auxiliary(t){t?this.mediaType|=2:this.mediaType&=-3}get auxiliary(){return!!(this.mediaType&2)}set smallVideo(t){t?this.mediaType|=8:this.mediaType&=-9}get smallVideo(){return!!(this.mediaType&8)}},Bi=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(Bi||{}),nu=(s=>(s.H264="h264",s.H265="h265",s.VP8="vp8",s.VP9="vp9",s.AV1="av1",s))(nu||{}),Wa=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.DUMP=1]="DUMP",o[o.SEI=2]="SEI",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(Wa||{}),Rn=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.NTP_TO_AUDIO_FRAME=1]="NTP_TO_AUDIO_FRAME",o[o.DUMP=2]="DUMP",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(Rn||{}),Ug=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(Ug||{}),nh=(g=>(g[g.SUCCESS=0]="SUCCESS",g[g.FAILED=1]="FAILED",g[g.WEBCODEC_INIT=2]="WEBCODEC_INIT",g[g.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",g[g.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",g[g.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",g[g.WASM_INIT=6]="WASM_INIT",g[g.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",g[g.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",g[g.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",g[g.TEST=10]="TEST",g[g.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",g))(nh||{}),Ga=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(Ga||{}),yo=(s=>(s.INTERVAL="interval",s.TIMEOUT="timeout",s.RAF="raf",s.RIC="ric",s.INTERVAL_IN_WORKER="intervalInWorker",s))(yo||{}),au=(e=>(e.CANVAS="canvas",e.API="api",e))(au||{}),ah=(o=>(o[o.NONE=0]="NONE",o[o.MICROPHONE=1]="MICROPHONE",o[o.CAMERA=2]="CAMERA",o[o.BOTH=3]="BOTH",o))(ah||{}),cu=(e=>(e.CAMERA="camera",e.MICROPHONE="microphone",e))(cu||{}),ja=(r=>(r[r.none=0]="none",r[r.horizontal=1]="horizontal",r[r.vertical=2]="vertical",r))(ja||{});var $e={AVOID_REPEATED_CALL:"AVOID_REPEATED_CALL",INVALID_PARAMETER_REQUIRED:"INVALID_PARAMETER_REQUIRED",INVALID_PARAMETER_TYPE:"INVALID_PARAMETER_TYPE",INVALID_PARAMETER_EMPTY:"INVALID_PARAMETER_EMPTY",INVALID_PARAMETER_INSTANCE:"INVALID_PARAMETER_INSTANCE",INVALID_PARAMETER_RANGE:"INVALID_PARAMETER_RANGE",INVALID_PARAMETER_MIN:"INVALID_PARAMETER_MIN",INVALID_PARAMETER_MAX:"INVALID_PARAMETER_MAX",INVALID_PARAMETER_STREAMTYPE:"INVALID_PARAMETER_STREAMTYPE",API_CALL_TIMEOUT:"API_CALL_TIMEOUT",SIGNAL_CHANNEL_RECONNECTION_FAILED:"SIGNAL_CHANNEL_RECONNECTION_FAILED",SIGNAL_CHANNEL_SETUP_FAILED:"SIGNAL_CHANNEL_SETUP_FAILED",ERROR_MESSAGE:"ERROR_MESSAGE",EXCHANGE_SDP_TIMEOUT:"EXCHANGE_SDP_TIMEOUT",DOWNLINK_RECONNECTION_FAILED:"DOWNLINK_RECONNECTION_FAILED",EXCHANGE_SDP_FAILED:"EXCHANGE_SDP_FAILED",UPDATE_OFFER_TIMEOUT:"UPDATE_OFFER_TIMEOUT",UPLINK_RECONNECTION_FAILED:"UPLINK_RECONNECTION_FAILED",INVALID_RECORDID:"INVALID_RECORDID",INVALID_PURE_AUDIO:"INVALID_PURE_AUDIO",INVALID_STREAMID:"INVALID_STREAMID",INVALID_USER_DEFINE_RECORDID:"INVALID_USER_DEFINE_RECORDID",INVALID_USER_DEFINE_PUSH_ARGS:"INVALID_USER_DEFINE_PUSH_ARGS",INVALID_PROXY:"INVALID_PROXY",INVALID_JOIN:"INVALID_JOIN",INVALID_ROOMID_STRING:"INVALID_ROOMID_STRING",INVALID_ROOMID_INTEGER:"INVALID_ROOMID_INTEGER",INVALID_SIGNAL_CHANNEL:"INVALID_SIGNAL_CHANNEL",JOIN_ROOM_TIMEOUT:"JOIN_ROOM_TIMEOUT",JOIN_ROOM_FAILED:"JOIN_ROOM_FAILED",REJOIN_ROOM_FAILED:"REJOIN_ROOM_FAILED",INVALID_DESTROY:"INVALID_DESTROY",INVALID_PUBLISH:"INVALID_PUBLISH",INVALID_UNPUBLISH:"INVALID_UNPUBLISH",INVALID_AUDIENCE:"INVALID_AUDIENCE",INVALID_INITIALIZE:"INVALID_INITIALIZE",INVALID_DUPLICATE_PUBLISHING:"INVALID_DUPLICATE_PUBLISHING",INVALID_SUBSCRIBE_UNDEFINED:"INVALID_SUBSCRIBE_UNDEFINED",INVALID_SUBSCRIBE_LOCAL:"INVALID_SUBSCRIBE_LOCAL",INVALID_REMOTE_STREAM:"INVALID_REMOTE_STREAM",SUBSCRIBE_FAILED:"SUBSCRIBE_FAILED",INVALID_ROLE:"INVALID_ROLE",INVALID_PARAMETER_SWITCH_ROLE:"INVALID_PARAMETER_SWITCH_ROLE",INVALID_OPERATION_SWITCH_ROLE:"INVALID_OPERATION_SWITCH_ROLE",SWITCH_ROLE_TIMEOUT:"SWITCH_ROLE_TIMEOUT",SWITCH_ROLE_FAILED:"SWITCH_ROLE_FAILED",CLIENT_BANNED:"CLIENT_BANNED",INVALID_OPERATION_START_PUBLISH_CDN:"INVALID_OPERATION_START_PUBLISH_CDN",INVALID_OPERATION_STOP_PUBLISH_CDN:"INVALID_OPERATION_STOP_PUBLISH_CDN",INVALID_STREAM_ID:"INVALID_STREAM_ID",START_PUBLISH_CDN_FAILED:"START_PUBLISH_CDN_FAILED",STOP_PUBLISH_CDN_FAILED:"STOP_PUBLISH_CDN_FAILED",START_MIX_TRANSCODE:"START_MIX_TRANSCODE",STOP_MIX_TRANSCODE:"STOP_MIX_TRANSCODE",INVALID_AUDIO_VOLUME:"INVALID_AUDIO_VOLUME",ENABLE_SMALL_STREAM_PUBLISHED:"ENABLE_SMALL_STREAM_PUBLISHED",DISABLE_SMALL_STREAM_PUBLISHED:"DISABLE_SMALL_STREAM_PUBLISHED",NOT_SUPPORTED_SMALL_STREAM:"NOT_SUPPORTED_SMALL_STREAM",INVALID_SMALL_STREAM_PROFILE:"INVALID_SMALL_STREAM_PROFILE",INVALID_PARAMETER_REMOTE_STREAM:"INVALID_PARAMETER_REMOTE_STREAM",INVALID_OPERATION_CHANGE_SMALL:"INVALID_OPERATION_CHANGE_SMALL",REMOTE_NOT_PUBLISH_SMALL_STREAM:"REMOTE_NOT_PUBLISH_SMALL_STREAM",INVALID_SWITCH_DEVICE:"INVALID_SWITCH_DEVICE",INVALID_SWITCH_DEVICE_PUBLISHING:"INVALID_SWITCH_DEVICE_PUBLISHING",INVALID_REPLACE_TRACK:"INVALID_REPLACE_TRACK",INVALID_INITIALIZE_LOCAL_STREAM:"INVALID_INITIALIZE_LOCAL_STREAM",INVALID_ADD_TRACK_REPETITIVE:"INVALID_ADD_TRACK_REPETITIVE",INVALID_ADD_TRACK_REMOVING:"INVALID_ADD_TRACK_REMOVING",INVALID_ADD_TRACK_PUBLISHING:"INVALID_ADD_TRACK_PUBLISHING",INVALID_STREAM_INITIALIZED:"INVALID_STREAM_INITIALIZED",INVALID_ADD_TRACK_NUMBER:"INVALID_ADD_TRACK_NUMBER",INVALID_REMOVE_AUDIO_TRACK:"INVALID_REMOVE_AUDIO_TRACK",INVALID_REMOVE_AUDIO_ADDING:"INVALID_REMOVE_AUDIO_ADDING",INVALID_REMOVE_AUDIO_ON:"INVALID_REMOVE_AUDIO_ON",INVALID_REMOVE_TRACK_PUBLISHING:"INVALID_REMOVE_TRACK_PUBLISHING",INVALID_REMOVE_TRACK_NOT_TRACK:"INVALID_REMOVE_TRACK_NOT_TRACK",INVALID_REMOVE_TRACK_NUMBER:"INVALID_REMOVE_TRACK_NUMBER",INVALID_REPLACE_TRACK_NO_TRACK:"INVALID_REPLACE_TRACK_NO_TRACK",REPEAT_JOIN:"REPEAT_JOIN",CLIENT_DESTROYED:"CLIENT_DESTROYED",NOT_BUG_PACKAGE:"NOT_BUG_PACKAGE",START_MIX_TRANSCODE_FAILED:"START_MIX_TRANSCODE_FAILED",STOP_MIX_TRANSCODE_FAILED:"STOP_MIX_TRANSCODE_FAILED",MIX_TRANSCODE_NOT_STARTED:"MIX_TRANSCODE_NOT_STARTED",CANNOT_LESS_THAN_ZERO:"CANNOT_LESS_THAN_ZERO",MIX_PARAMS_VIDEO_FRAMERATE:"MIX_PARAMS_VIDEO_FRAMERATE",MIX_PARAMS_VIDEO_GOP:"MIX_PARAMS_VIDEO_GOP",MIX_PARAMS_AUDIO_BITRATE:"MIX_PARAMS_AUDIO_BITRATE",MIX_PARAMS_USER_Z_ORDER:"MIX_PARAMS_USER_Z_ORDER",MIX_PARAMS_NOT_SELF:"MIX_PARAMS_NOT_SELF",MIX_PARAMS_USER_STREAM:"MIX_PARAMS_USER_STREAM",INVALID_PLAY:"INVALID_PLAY",INVALID_ELEMENT_ID:"INVALID_ELEMENT_ID",INVALID_ELEMENT_ID_TYPE:"INVALID_ELEMENT_ID_TYPE",PLAY_FAILED:"PLAY_FAILED",INVALID_USERID:"INVALID_USERID",INVALID_CREATE_STREAM_SOURCE:"INVALID_CREATE_STREAM_SOURCE",INVALID_CREATE_STREAM_SCREEN:"INVALID_CREATE_STREAM_SCREEN",INVALID_CREATE_STREAM_AUDIO:"INVALID_CREATE_STREAM_AUDIO",INVALID_CREATE_STREAM_SCREEN_AUDIO:"INVALID_CREATE_STREAM_SCREEN_AUDIO",NOT_SUPPORTED_HTTP:"NOT_SUPPORTED_HTTP",NOT_SUPPORTED_WEBRTC:"NOT_SUPPORTED_WEBRTC",NOT_SUPPORTED_PROFILE:"NOT_SUPPORTED_PROFILE",NOT_SUPPORTED_MEDIA:"NOT_SUPPORTED_MEDIA",NOT_SUPPORTED_H264ENCODE:"NOT_SUPPORTED_H264ENCODE",NOT_SUPPORTED_H264DECODE:"NOT_SUPPORTED_H264DECODE",NOT_SUPPORTED_TRACK:"NOT_SUPPORTED_TRACK",NOT_SUPPORTED_SWITCH_DEVICE:"NOT_SUPPORTED_SWITCH_DEVICE",NOT_SUPPORTED_CAPTURE:"NOT_SUPPORTED_CAPTURE",NOT_SUPPORTED_AUX:"NOT_SUPPORTED_AUX",MICROPHONE_NOT_FOUND:"MICROPHONE_NOT_FOUND",CAMERA_NOT_FOUND:"CAMERA_NOT_FOUND",SIGNAL_RESPONSE_FAILED:"SIGNAL_RESPONSE_FAILED",CATCH_HANDLER_ERROR:"CATCH_HANDLER_ERROR",API_NOT_EXIST:"API_NOT_EXIST",CONNECTION_CLOSED:"CONNECTION_CLOSED",SUBSCRIBE_ALL_FALSE:"SUBSCRIBE_ALL_FALSE",SEI_NOT_SUPPORT:"SEI_NOT_SUPPORT",SEI_DISABLED:"SEI_DISABLED",SEI_BEFORE_PUBLISH:"SEI_BEFORE_PUBLISH",SEI_NOT_VIDEO:"SEI_NOT_VIDEO",CALL_FREQUENCY_LIMIT:"CALL_FREQUENCY_LIMIT",CONNECTION_ABORTED:"CONNECTION_ABORTED",API_CALL_ABORTED:"API_CALL_ABORTED",DUPLICATE_AUX:"DUPLICATE_AUX"},nr={AVOID_REPEATED_CALL(i){return`previous ${i.name}() is ongoing, please avoid repeated calls.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${pt(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${pt(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_MIN({key:i,rule:t,fnName:e,value:r}){return`the min value of ${i||t.name} is ${t.min}, received: ${r}.`},INVALID_PARAMETER_MAX({key:i,rule:t,fnName:e,value:r}){return`the max value of ${i||t.name} is ${t.max}, received: ${r}.`},API_CALL_TIMEOUT(i){return`${i.commandDesc||i.command} timeout observed.`},SIGNAL_CHANNEL_RECONNECTION_FAILED:"signal channel reconnection failed, please check your network.",SIGNAL_CHANNEL_SETUP_FAILED(i){return`SignalChannel setup failure: (errorCode: ${i.errorCode}, errorMsg: ${i.errorMsg} }).`},ERROR_MESSAGE(i){let t=`${i.type} failed`;return i.message&&(t=`${t}: ${i.message}.`),t},EXCHANGE_SDP_TIMEOUT:"exchange sdp timeout.",DOWNLINK_RECONNECTION_FAILED:"downlink reconnection failed, please check your network and re-join room.",EXCHANGE_SDP_FAILED(i){return`exchange sdp failed ${i.errMsg}.`},UPDATE_OFFER_TIMEOUT:"update offer timeout observed.",UPLINK_RECONNECTION_FAILED:"uplink reconnection failed, please check your network and publish again.",INVALID_RECORDID:"recordId must be an integer number.",INVALID_PURE_AUDIO:"pureAudioPushMode must be 1 or 2.",INVALID_STREAMID:"streamId must be a sting literal within 64 bytes, and not be empty.",INVALID_USER_DEFINE_RECORDID:"userDefineRecordId must be a sting literal contains (a-zA-Z),(0-9), underline and hyphen, within 64 bytes, and not be empty.",INVALID_USER_DEFINE_PUSH_ARGS:"userDefinePushArgs must be a sting literal within 256 bytes, and not be empty.",INVALID_PROXY:'proxy server url must start with "wss://".',INVALID_JOIN:"duplicate join() called.",INVALID_ROOMID_STRING(i){return`'${i}' must be validate string when useStringRoomId is true.`},INVALID_ROOMID_INTEGER(i){return`'${i}' must be an integer between [1, 4294967294] when useStringRoomId is false.`},INVALID_SIGNAL_CHANNEL:"SignalChannel is not ready yet.",JOIN_ROOM_TIMEOUT:"join room timeout.",JOIN_ROOM_FAILED({error:i,code:t}){return`Failed to join room - ${i} code: ${t}`},REJOIN_ROOM_FAILED(i){return`reJoin room: ${i.roomId} failed, please check your network.`},INVALID_DESTROY:"please call leave() before destroy().",INVALID_PUBLISH:"please call join() before publish().",INVALID_UNPUBLISH:"stream has not been published yet.",INVALID_AUDIENCE:'no permission to publish() under live/audience, please call switchRole("anchor") firstly before publish().',INVALID_INITIALIZE:"cannot publish stream because stream is not initialized, is switching device, or has been closed.",INVALID_DUPLICATE_PUBLISHING(i){return`duplicate ${i} stream publishing, please unpublish your prev ${i} stream and then re-publish.`},INVALID_SUBSCRIBE_UNDEFINED:"stream is undefined or null.",INVALID_SUBSCRIBE_LOCAL:"stream cannot be LocalStream.",INVALID_REMOTE_STREAM:"remoteStream does not exist because it has been unpublished by remote peer.",SUBSCRIBE_FAILED({message:i,userId:t,streamType:e}){return`failed to subscribe ${t} ${e} stream, reason: ${i}.`},INVALID_ROLE:"switchRole can only be called in live mode.",INVALID_PARAMETER_SWITCH_ROLE:"role could only be set to a value as anchor or audience.",INVALID_OPERATION_SWITCH_ROLE:"please call join() before switchRole().",SWITCH_ROLE_TIMEOUT:"switchRole timeout.",SWITCH_ROLE_FAILED(i){return`switchRole failed, errCode: ${i.code} errMsg: ${i.message}.`},CLIENT_BANNED(i){return`client was banned because of ${i.message}.`},INVALID_OPERATION_START_PUBLISH_CDN:"please call startPublishCDNStream() after join room and publish the local stream.",INVALID_OPERATION_STOP_PUBLISH_CDN:"please call startPublishCDNStream() before stopPublishCDNStream().",START_PUBLISH_CDN_FAILED(i){return`startPublishCDNStream failed, errMsg: ${i.message}.`},STOP_PUBLISH_CDN_FAILED(i){return`stopPublishCDNStream failed, errMsg: ${i.message}.`},INVALID_STREAM_ID(i){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},START_MIX_TRANSCODE:"please call startMixTranscode() after join().",STOP_MIX_TRANSCODE:"please call stopMixTranscode() after startMixTranscode().",INVALID_AUDIO_VOLUME:"interval must be a number.",ENABLE_SMALL_STREAM_PUBLISHED:"Cannot enable small stream after localStream published.",DISABLE_SMALL_STREAM_PUBLISHED:"Cannot disable small stream after localStream published.",NOT_SUPPORTED_SMALL_STREAM:"your browser does not support opening small stream.",INVALID_SMALL_STREAM_PROFILE:"small stream profile is invalid.",INVALID_PARAMETER_REMOTE_STREAM:"remoteStream is invalid.",INVALID_OPERATION_CHANGE_SMALL:"cannot switch to the small stream without subscribing to the video of remoteStream.",REMOTE_NOT_PUBLISH_SMALL_STREAM:"remote peer does not publish small stream.",INVALID_SWITCH_DEVICE:"cannot switch device on current stream.",INVALID_SWITCH_DEVICE_PUBLISHING:"cannot switch device when publishing localStream.",INVALID_REPLACE_TRACK:"cannot replace track when publishing localStream.",INVALID_INITIALIZE_LOCAL_STREAM:"local stream has not initialized yet.",INVALID_ADD_TRACK_REPETITIVE:"previous addTrack is ongoing, please avoid repetitive execution.",INVALID_ADD_TRACK_REMOVING:"cannot add track when a track is removing.",INVALID_ADD_TRACK_PUBLISHING:"cannot add track when publishing localStream.",INVALID_STREAM_INITIALIZED:"your local stream haven't been initialized yet.",INVALID_ADD_TRACK_NUMBER:"a Stream has at most one audio track and one video track.",INVALID_REMOVE_AUDIO_TRACK:"remove audio track is not supported on your browser.",INVALID_REMOVE_AUDIO_ADDING:"cannot remove track when a track is adding.",INVALID_REMOVE_AUDIO_ON:"previous removeTrack is ongoing, please avoid repetitive execution.",INVALID_REMOVE_TRACK_PUBLISHING:"cannot remove track when publishing localStream.",INVALID_REMOVE_TRACK_NOT_TRACK:"localStream has not this track.",INVALID_REMOVE_TRACK_NUMBER:"remove the only video track is not supported, please use replaceTrack or muteVideo.",INVALID_REPLACE_TRACK_NO_TRACK(i){return`cannot replace ${i.kind} track because stream has not ${i.kind} track`},NOT_BUG_PACKAGE:"You need to buy packages, refer to tencent console.",START_MIX_TRANSCODE_FAILED(i){return`startMixTranscode failed, errMsg: ${i.message}.`},STOP_MIX_TRANSCODE_FAILED(i){return`stopMixTranscode failed, errMsg: ${i.message}.`},MIX_TRANSCODE_NOT_STARTED:"mixTranscode has not been started.",CANNOT_LESS_THAN_ZERO({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},MIX_PARAMS_VIDEO_FRAMERATE:"'config.videoFramerate' should be an integer between 0 and 30, excluding 0.",MIX_PARAMS_VIDEO_GOP:"'config.videoGOP' should be an integer between 1 and 8.",MIX_PARAMS_AUDIO_BITRATE:"'config.audioBitrate' should be an integer between 32 and 192.",MIX_PARAMS_USER_Z_ORDER(i){return`'${i}' is required and must be between 1 and 15.`},MIX_PARAMS_NOT_SELF:"'config.mixUsers' must contain self.",MIX_PARAMS_USER_STREAM:"'config.videoWidth' and 'config.videoHeight' of output stream should be contain all mix stream.",INVALID_PLAY:"duplicate play() call observed, please stop() firstly.",INVALID_ELEMENT_ID:({key:i,fnName:t})=>`'${i}' is not found in the document object when calling ${t}().`,INVALID_ELEMENT_ID_TYPE:({key:i,fnName:t,type:e})=>`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`,PLAY_FAILED:i=>`${i.media} play failed, browser exception: ${i.error.toString()}`,INVALID_USERID:"userId cannot be all spaces.",INVALID_CREATE_STREAM_SOURCE:"LocalStream must be created by createStream() with either audio/video or audioSource/videoSource, but can not be mixed with audio/video and audioSource/videoSource.",INVALID_CREATE_STREAM_SCREEN:"screen/video cannot be both true.",INVALID_CREATE_STREAM_AUDIO:"audio/screenAudio cannot be both true.",INVALID_CREATE_STREAM_SCREEN_AUDIO:"when screen is true, screenAudio can be configured.",NOT_SUPPORTED_HTTP:"http protocol does not support the ability to capture microphone, camera and screen. please use https to deploy your page.",NOT_SUPPORTED_WEBRTC:"your browser or environment does not support full WebRTC capabilities.",NOT_SUPPORTED_PROFILE:"your browser does not support setVideoProfile.",NOT_SUPPORTED_MEDIA:"your browser or environment does not support navigator.mediaDevices.",NOT_SUPPORTED_H264ENCODE:"your device does not support H.264 encoding.",NOT_SUPPORTED_H264DECODE:"your device does not support H.264 decoding.",NOT_SUPPORTED_TRACK(i){return`${i}Track is not supported on your browser.`},NOT_SUPPORTED_SWITCH_DEVICE:"switchDevice is not supported on your browser.",NOT_SUPPORTED_CAPTURE:"Your browser or environment does not support screen sharing, please check whether the browser version.",MICROPHONE_NOT_FOUND:"no microphone detected, please check your microphone.",CAMERA_NOT_FOUND:"no camera detected, please check your camera.",SIGNAL_RESPONSE_FAILED(i){return`${i.signalResponse} failed, response code is ${i.code} , errMsg: ${i.message}.`},CATCH_HANDLER_ERROR({name:i,event:t}){return`an error was caught in ${i}.on('${t}', handler), please check your code in 'handler'.`},API_NOT_EXIST({name:i}){return`experimental api ${i} does not exist.`},REPEAT_JOIN:i=>"please avoid repeated join.",CONNECTION_CLOSED:"remoteStream has been unsubscribed or unpublished by remote user.",SUBSCRIBE_ALL_FALSE:"cannot subscribe when both audio & video are false, use client.unsubscribe() instead",CLIENT_DESTROYED({funName:i}){return`failed to call ${i}() because client was destroyed.`},SEI_NOT_SUPPORT:i=>`not support to sendSEIMessage${i===!1?" without using h264 codec":""}`,SEI_DISABLED:"SEI is disabled",SEI_BEFORE_PUBLISH:"please call sendSEIMessage() after publish() success",SEI_NOT_VIDEO:"cannot send sei when localStream has not video.",CALL_FREQUENCY_LIMIT:({isSize:i,name:t,timesInSecond:e,maxSizeInSecond:r})=>`api ${t} call ${i?"size":"times"} is over ${i?`${r} bytes`:e} in a second.`,CONNECTION_ABORTED(i){return`connection aborted due to: ${i}`},API_CALL_ABORTED(i){let t;return i.message.includes("REMOTE_STREAM_NOT_EXIST")?t=`Subscribe ${i.userId} ${i.streamType} stream aborted, reason: remote user ${i.userId} unpublished stream.`:t=`API aborted, reason: ${i.message}`,t},DUPLICATE_AUX:"only one auxiliary stream can be published in a room.",NOT_SUPPORTED_AUX:"publish auxiliary stream is not supported on your browser.",INVALID_PARAMETER_STREAMTYPE:i=>`'streamType' is required when 'userId' is not '*', calling ${i}()`};var Vg=(i,t)=>t?`${ir}/${i}/${t}`:`${ir}/${i}/index.html`;var AS=()=>{if(window.TRTC_ERROR_INFO&&window.TRTC_ERROR_LINK)return{TRTC_ERROR_INFO:window.TRTC_ERROR_INFO,TRTC_ERROR_LINK:window.TRTC_ERROR_LINK};let i=localStorage==null?void 0:localStorage.getItem(cm);if(i){i=JSON.parse(i);let t=document.createElement("script");t.type="text/javascript",t.text=i.message,document.body.appendChild(t);let e=window.TRTC_ERROR_INFO,r=window.TRTC_ERROR_LINK;return document.body.removeChild(t),{TRTC_ERROR_INFO:e,TRTC_ERROR_LINK:r}}return{}};function He(i){let{key:t,data:e,link:r,addDocLink:o=!0}=i,s="",n="",a="";Xe(nr[t])?s=nr[t](e):we(nr[t])&&(s=nr[t]);let{TRTC_ERROR_INFO:d,TRTC_ERROR_LINK:l}=AS();r?a=`${r.className}.html#${r.fnName}`:l&&l[t]&&(Xe(l[t])?a=l[t](e):we(l[t])&&(a=l[t]));let p=s;return Fr()&&(d&&d[t]&&(Xe(d[t])?n=d[t](e):we(d[t])&&(n=d[t])),n&&(o?p=`${n}
5
5
  \u8BF7\u67E5\u770B\u6587\u6863: ${Vg("zh-cn",a)}
6
6
 
7
7
  `:p=`${n}
8
8
 
9
9
  `,p+=s)),o&&(p+=`
10
10
  Refer to: ${Vg("en",a)}
11
- `),p}var hh=Ai(qg(),1);var PS=1,LS=0,du=class{constructor(t=!0){m(this,"countMap",new Map);m(this,"distributionMap",new Map);m(this,"version");m(this,"log",F.createLogger({id:"kv"}));t&&(U.on("102",({track:e,cost:r})=>{this.addSuccessEvent({key:e.kind===M.AUDIO?501700:511700,cost:r})}),U.on("103",({track:e,error:r})=>{this.addFailedEvent({key:e.kind===M.AUDIO?501700:511700,error:r})}),U.on("266",({enable:e})=>{this.log.info(`${e?"enable":"disable"} sso`),e?this.addSuccessEvent({key:525701}):this.addFailedEvent({key:525701})}))}getReportData(t,e){let r={msg_sdk_basic_info:{uint32_sdk_version:Nd(this.version||ht),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([o,s])=>({uint32_key:o,uint32_count:s})),stats_distribution:[...this.distributionMap.entries()].map(([o,s])=>({uint32_key:o,distribution_items:[...s.entries()].map(([n,a])=>({uint32_item_key:n,uint32_item_value:a}))})),str_user_sig:t,bytes_report_token:e};return this.countMap.clear(),this.distributionMap.clear(),r}clear(){this.countMap.clear(),this.distributionMap.clear()}isEnumKey(t){let e=+String(t).slice(-3);return e>=700&&e<799}isErrorCodeKey(t){let e=+String(t).slice(-3);return e>=600&&e<699}isCountKey(t){let e=+String(t).slice(-3);return e>=0&&e<599}isNumberKey(t){let e=+String(t).slice(-3);return e>=800&&e<899}addCount({key:t,useUV:e=!1}){if(!this.isCountKey(t)){this.log.debug(`${t} is not count key, last 3 number should be 0~599`);return}e&&this.countMap.has(t)||this.countMap.set(t,(this.countMap.get(t)||0)+1)}addEnum({key:t,value:e,useUV:r=!0}){var s;if(!this.isEnumKey(t))return this.log.debug(`${t} is not enum key, last 3 number should be 700~799`);if(r&&this.countMap.has(t))return;this.countMap.set(t,(this.countMap.get(t)||0)+1);let o=((s=this.distributionMap)==null?void 0:s.get(t))||new Map;o.set(e,(o.get(e)||0)+1),this.distributionMap.set(t,o)}addNumber({key:t,value:e,split:r=100,useUV:o=!1,max:s=5e3}){var d;if(!this.isNumberKey(t))return this.log.debug(`${t} is not number key, last 3 number should be 800~899`);if(o&&this.countMap.has(t))return;e>s&&(e=s),this.countMap.set(t,(this.countMap.get(t)||0)+1);let n=((d=this.distributionMap)==null?void 0:d.get(t))||new Map,a=0;if(Ve(r))a=Math.floor(e/r);else for(let l=r.length-1;l>0;l--)if(e>r[l]){a=l;break}n.set(a,(n.get(a)||0)+1),this.distributionMap.set(t,n)}addSuccessEvent({key:t,cost:e,timeKey:r,split:o}){if(t&&(this.addEnum({key:t,value:PS,useUV:!1}),e)){let s=+String(t).slice(-3);s<800&&s>=700?this.addNumber({key:r||t+100,value:e,split:o}):r||this.log.debug(`time stat ignored, ${t}`)}}addFailedEvent({key:t,error:e}){if(!t)return;let r=q.UNKNOWN;e&&(Ve(e)?r=e:(!O(e.extraCode)||!O(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:LS,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},uu=(W=>(W[W.enterRoom=500700]="enterRoom",W[W.exitRoom=500701]="exitRoom",W[W.switchRole=500702]="switchRole",W[W.destroy=500703]="destroy",W[W.startLocalAudio=500704]="startLocalAudio",W[W.updateLocalAudio=500705]="updateLocalAudio",W[W.stopLocalAudio=500706]="stopLocalAudio",W[W.startLocalVideo=500707]="startLocalVideo",W[W.updateLocalVideo=500708]="updateLocalVideo",W[W.stopLocalVideo=500709]="stopLocalVideo",W[W.startScreenShare=500710]="startScreenShare",W[W.updateScreenShare=500711]="updateScreenShare",W[W.stopScreenShare=500712]="stopScreenShare",W[W.startRemoteVideo=500713]="startRemoteVideo",W[W.updateRemoteVideo=500714]="updateRemoteVideo",W[W.stopRemoteVideo=500715]="stopRemoteVideo",W[W.muteRemoteAudio=500716]="muteRemoteAudio",W[W.setRemoteAudioVolume=500717]="setRemoteAudioVolume",W[W.use=500718]="use",W[W.switchRoom=500719]="switchRoom",W[W.sendSEIMessage=5e5]="sendSEIMessage",W[W.sendCustomMessage=500001]="sendCustomMessage",W))(uu||{}),uh=(g=>(g[g.AudioMixer=550700]="AudioMixer",g[g.AIDenoiser=551700]="AIDenoiser",g[g.VirtualBackground=570700]="VirtualBackground",g[g.Beauty=571700]="Beauty",g[g.Watermark=572700]="Watermark",g[g.BasicBeauty=574700]="BasicBeauty",g[g.CDNStreaming=590700]="CDNStreaming",g[g.DeviceDetector=591700]="DeviceDetector",g[g.Debug=592700]="Debug",g[g.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",g[g.VideoMixer=594700]="VideoMixer",g[g.AudioProcessor=595700]="AudioProcessor",g))(uh||{}),lh=(g=>(g[g.AudioMixer=550701]="AudioMixer",g[g.AIDenoiser=551701]="AIDenoiser",g[g.VirtualBackground=570701]="VirtualBackground",g[g.Beauty=571701]="Beauty",g[g.Watermark=572701]="Watermark",g[g.BasicBeauty=574701]="BasicBeauty",g[g.CDNStreaming=590701]="CDNStreaming",g[g.DeviceDetector=591701]="DeviceDetector",g[g.Debug=592701]="Debug",g[g.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",g[g.VideoMixer=594701]="VideoMixer",g[g.AudioProcessor=595701]="AudioProcessor",g))(lh||{}),mh=(g=>(g[g.AudioMixer=550702]="AudioMixer",g[g.AIDenoiser=551702]="AIDenoiser",g[g.VirtualBackground=570702]="VirtualBackground",g[g.Beauty=571702]="Beauty",g[g.Watermark=572702]="Watermark",g[g.BasicBeauty=574702]="BasicBeauty",g[g.CDNStreaming=590702]="CDNStreaming",g[g.DeviceDetector=591702]="DeviceDetector",g[g.Debug=592702]="Debug",g[g.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",g[g.VideoMixer=594702]="VideoMixer",g[g.AudioProcessor=595702]="AudioProcessor",g))(mh||{});var Cn=(H=>(H[H.DECODER_TYPE=514700]="DECODER_TYPE",H[H.DECODER_HW_SW=514701]="DECODER_HW_SW",H[H.DECODE_RESULT=514702]="DECODE_RESULT",H[H.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",H[H.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",H[H.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",H[H.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",H[H.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",H[H.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",H[H.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",H[H.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",H[H.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",H[H.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",H[H.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",H[H.H264_PROFILE_LEVEL_ID_HIGH=514714]="H264_PROFILE_LEVEL_ID_HIGH",H[H.H264_PROFILE_LEVEL_ID_MAIN=514715]="H264_PROFILE_LEVEL_ID_MAIN",H[H.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",H[H.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",H[H.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",H))(Cn||{});var kS=new du(!0),Es=new du(!1);var J=kS;var Ce={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}},US=new Map([[lt,["Firefox",Pd]],[gn,["Edg",Ud]],[Sn,["Chrome",Zd]],[_t,["Safari",xi]],[Hr,["TBS",Bd]],[Oi,["XWEB",$d]],[Mi&&_o,["WeChat",Hd]],[Ca,["QQ(Win)",Wd]],[_n,["QQ(Mobile)",pn]],[En,["QQ(Mobile X5)",pn]],[Na,["QQ(Mac)",Gd]],[Da,["QQ(iPad)",jd]],[Oa,["MI",qd]],[Ma,["HW",zd]],[Pa,["Samsung",Jd]],[Tn,["OPPO",Xd]],[La,["VIVO",Qd]],[ds,["EDGE",kd]],[Ra,["SogouMobile",Vd]],[va,["Sogou",Fd]]]);function hu(){let i=US.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var ph=function(){return!(xm||ds||gn&&Om<80||lt&&Ld<56)},fh=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(t=>t in window)},pu=function(){if(!navigator.mediaDevices)return Hi()||F.error(nr.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},zg=!1;function Hi(){return location.protocol==="http:"&&!Gr?(zg||F.error(He({key:$e.NOT_SUPPORTED_HTTP})),zg=!0,!0):!1}var gh=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},VS=function(){return!!(window!=null&&window.MediaStreamTrackGenerator)},Eh=function(){return A(this,null,function*(){var o,s,n;if(Ce.detail.isH264EncodeSupported&&Ce.detail.isVp8EncodeSupported)return{isH264EncodeSupported:Ce.detail.isH264EncodeSupported,isVp8EncodeSupported:Ce.detail.isVp8EncodeSupported,isH265EncodeSupported:Ce.detail.isH265EncodeSupported};let i,t=!1,e=!1,r=!1;try{let a=new RTCPeerConnection,d=document.createElement(M.CANVAS);d.getContext("2d");let l=d.captureStream(0);return a.addTrack(l.getVideoTracks()[0],l),i=yield a.createOffer(),t=((o=i.sdp)==null?void 0:o.toLowerCase().indexOf("h264"))!==-1,e=((s=i.sdp)==null?void 0:s.toLowerCase().indexOf("vp8"))!==-1,r=((n=i.sdp)==null?void 0:n.toLowerCase().indexOf("h265"))!==-1,a.close(),{isH264EncodeSupported:t,isVp8EncodeSupported:e,isH265EncodeSupported:r}}catch(a){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1}}})},Zg=function(){return A(this,null,function*(){var r;if(Ce.detail.isH264DecodeSupported&&Ce.detail.isVp8DecodeSupported)return{isH264DecodeSupported:Ce.detail.isH264DecodeSupported,isVp8DecodeSupported:Ce.detail.isVp8DecodeSupported,isH265DecodeSupported:Ce.detail.isH265DecodeSupported};let i,t=!1,e=!1;try{let o=new RTCPeerConnection;Eu()?(o.addTransceiver(M.VIDEO,{direction:"recvonly"}),i=yield o.createOffer()):i=yield o.createOffer({offerToReceiveVideo:!0}),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0);let s=((r=i.sdp)==null?void 0:r.toLowerCase().indexOf("h265"))!==-1;return o.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:e,isH265DecodeSupported:s}}catch(o){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}}})};function FS(){return A(this,null,function*(){let[i,t]=yield Promise.all([Eh(),Zg()]);return{encode:{h264:i.isH264EncodeSupported,vp8:i.isVp8EncodeSupported,h265:i.isH265EncodeSupported},decode:{h264:t.isH264DecodeSupported,vp8:t.isVp8DecodeSupported,h265:t.isH265DecodeSupported}}})}var fu=Dd(i=>A(void 0,null,function*(){let t=Date.now(),e=Ih(),r=pu(),o=fh();if(Ce.detail.isWebRTCSupported=e,Ce.detail.isMediaDevicesSupported=r,Ce.detail.isWebCodecsSupported=o,Ce.detail.isScreenShareSupported=za(),Ce.detail.isSmallStreamSupported=gu(),i===37)return Object.assign(Ce.detail,yield WS()),Ce.detail.isBrowserSupported=o,Ce.result=r&&o,Ce.result||F.error(`${navigator.userAgent} ${ya(Ce.detail,!1)}`),Jg(i),J.addNumber({key:523800,value:Date.now()-t}),Ce;if(Ce.result&&Ce.detail.isH264EncodeSupported&&Ce.detail.isVp8EncodeSupported&&Ce.detail.isH265EncodeSupported&&Ce.detail.isH264DecodeSupported&&Ce.detail.isVp8DecodeSupported&&Ce.detail.isH265DecodeSupported)return Ce;let s=ph(),{encode:n,decode:a}=yield FS(),{h264:d,vp8:l}=n,{h264:p}=a,{h265:f}=n,{vp8:g,h265:y}=a;if(!d||!l){let R=yield Eh();F.warn(`detect encode again h264:${d} vp8:${l} result: ${JSON.stringify(R)}`),d=R.isH264EncodeSupported,l=R.isVp8EncodeSupported}if(d&&p&&nt&&fr&&!Oi&&!Hr&&!(Tn&&sr===115)){let{encode:R,decode:C}=yield HS();d=R,p=C}return Ce.result=s&&e&&r&&(d||l)&&(p||g),Ce.detail.isBrowserSupported=s,Ce.detail.isWebRTCSupported=e,Ce.detail.isH264EncodeSupported=d,Ce.detail.isVp8EncodeSupported=l,Ce.detail.isH265EncodeSupported=f,Ce.detail.isH264DecodeSupported=p,Ce.detail.isVp8DecodeSupported=g,Ce.detail.isH265DecodeSupported=y,Ce.result||F.error(`${navigator.userAgent} ${ya(Ce.detail,!1)}`),Jg(),J.addNumber({key:523800,value:Date.now()-t}),Ce})),BS=function(){return Ce.result},za=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},$S=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype,lu=null;function HS(){return A(this,null,function*(){return lu||(lu=new Promise(i=>A(this,null,function*(){let t={encode:!1,decode:!1},e=()=>{};try{let r=document.createElement("canvas"),o=r.getContext("2d");r.width=640,r.height=480;let s=setInterval(()=>{o.fillText("test",Math.floor(Math.random()*640),Math.floor(Math.random()*480))},66),n=-1,a=-1;e=()=>{clearInterval(n),clearInterval(s),clearTimeout(a),l.close(),p.close(),d.getTracks().forEach(C=>C.stop())},a=setTimeout(()=>{e(),i(t)},2*1e3);let d=r.captureStream(),l=new RTCPeerConnection({}),p=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});l.addEventListener("icecandidate",C=>p.addIceCandidate(C.candidate)),p.addEventListener("icecandidate",C=>l.addIceCandidate(C.candidate)),l.addTrack(d.getVideoTracks()[0],d);let f=yield l.createOffer();yield l.setLocalDescription(f),yield p.setRemoteDescription(f);let g=yield p.createAnswer(),y=hh.default.parse(g.sdp),R=y.media[0].rtp.findIndex(C=>C.codec==="H264");y.media[0].rtp=[y.media[0].rtp[R]],y.media[0].fmtp=y.media[0].fmtp.filter(C=>C.payload===y.media[0].rtp[0].payload),y.media[0].rtcpFb&&(y.media[0].rtcpFb=y.media[0].rtcpFb.filter(C=>C.payload===y.media[0].rtp[0].payload)),g.sdp=hh.default.write(y),yield p.setLocalDescription(g),yield l.setRemoteDescription(g),n=setInterval(()=>A(this,null,function*(){t.encode&&t.decode&&(e(),i(t));let[C,N]=yield Promise.all([l.getSenders()[0].getStats(),p.getReceivers()[0].getStats()]);t.encode||C.forEach(k=>{k.type==="outbound-rtp"&&k.mediaType===M.VIDEO&&k.bytesSent>0&&(t.encode=!0)}),t.decode||N.forEach(k=>{k.type==="inbound-rtp"&&k.mediaType===M.VIDEO&&k.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){e(),F.warn("detectH264Supported failed",r),i({encode:!0,decode:!0})}})).then(i=>(i.encode||(i.decode=!0),(!i.encode||!i.decode)&&F.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${$r}`),i)),lu)})}var mu=null;function WS(){return A(this,null,function*(){return mu||(mu=new Promise(i=>A(this,null,function*(){let t={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!fh()){i(t);return}let e=null,r=null,o=null,s=()=>{o&&clearTimeout(o),e=null,r=null};try{e=document.createElement("canvas"),r=e.getContext("2d"),e.width=320,e.height=240;let n=0,a=()=>{!r||!e||(r.fillStyle=`hsl(${n%360}, 50%, 50%)`,r.fillRect(0,0,e.width,e.height),r.fillStyle="white",r.font="20px Arial",r.fillText(`Frame ${n}`,10,30),n++)};o=setTimeout(()=>{s(),i(t)},5e3);let d=[{type:"h264",encodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"},width:320,height:240,bitrate:1e6},decodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"}}},{type:"vp8",encodeConfig:{codec:"vp8",width:320,height:240,bitrate:1e6},decodeConfig:{codec:"vp8"}}];(yield Promise.all(d.map(p=>A(this,null,function*(){let f={type:p.type,encodeSupported:!1,decodeSupported:!1},g;try{g=yield new Promise((y,R)=>A(this,null,function*(){try{let C=new VideoEncoder({output:k=>{y(k),f.encodeSupported=!0},error:R});C.configure(p.encodeConfig),a();let N=new VideoFrame(e,{timestamp:0});C.encode(N,{keyFrame:!0}),N.close(),yield C.flush(),C.close()}catch(C){R(C)}}))}catch(y){return F.warn(`${p.type} encoder error:`,y),f}try{yield new Promise((y,R)=>A(this,null,function*(){try{let C=new VideoDecoder({output:N=>{f.decodeSupported=!0,y(0),N.close()},error:R});C.configure(p.decodeConfig),C.decode(g),yield C.flush(),C.close()}catch(C){R(C)}}))}catch(y){F.warn(`${p.type} decoder error:`,y)}return f})))).forEach(p=>{p.type==="h264"?(t.isH264EncodeSupported=p.encodeSupported,t.isH264DecodeSupported=p.decodeSupported):p.type==="vp8"&&(t.isVp8EncodeSupported=p.encodeSupported,t.isVp8DecodeSupported=p.decodeSupported)}),s(),i(t)}catch(n){s(),F.warn("detectWebCodecsSupported failed:",n),i(t)}})),mu)})}var GS=(i,t,e)=>{location.protocol==="http:"&&!Gr&&(i[t]=()=>{throw new ae({code:q.INVALID_OPERATION,message:nr.NOT_SUPPORTED_HTTP})})},jS=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(Ke(i.selected)&&!i.selected):!1};function Kg(){let i="";if(screen.width){let t=screen.width?screen.width*window.devicePixelRatio:"",e=screen.height?screen.height*window.devicePixelRatio:"";i+=`${t} * ${e}`}return i}function eE(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function tE(){let i={isSupported:!1},t=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let e=0;e<t.length;e++)if(t[e]in window){i.isSupported=!0;break}return i.isSupported}function rE(){return"captureStream"in HTMLCanvasElement.prototype}function iE(){return Mi||ot||sr&&sr<63?!1:!!(ph()&&rE())}function oE(){return!(sr<74||ds||Vt<11||Ld<46)}function gu(){return iE()||oE()}var qS=function(){if(O(window.RTCRtpTransceiver)||!Eu()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:mm}),i.addTransceiver(M.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function zS(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function sE(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function JS(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function Eu(){return Vt===11&&!$m?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var XS=!(!Eu()||fr&&sr<86);function QS(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var Ja="RTCRtpSender"in window;function YS(){return Ja&&"replaceTrack"in window.RTCRtpSender.prototype}function ZS(){return Ja&&"setParameters"in window.RTCRtpSender.prototype&&sE()}var KS="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,Nn=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,_h=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,Th=typeof InputDeviceInfo!="undefined"&&"getCapabilities"in InputDeviceInfo.prototype,_s=Ja&&"createEncodedStreams"in window.RTCRtpSender.prototype&&Yd()>=86,nE="RTCRtpScriptTransform"in window,Xa=Ja&&(_s||nE),Ih=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function _u(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return O(window.AudioDecoder)||(i.AudioDecoder=!0),O(window.AudioEncoder)||(i.AudioEncoder=!0),O(window.VideoDecoder)||(i.VideoDecoder=!0),O(window.VideoEncoder)||(i.VideoEncoder=!0),O(window.ImageDecoder)||(i.ImageDecoder=!0),i}function aE(){return"mediaSession"in navigator&&!O(navigator.mediaSession.setActionHandler)}function cE(){return!O(window.WebTransport)}function Sh(){return typeof WebAssembly=="undefined"?!1:WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]))}function ey(){let i={browser:`${si.name}/${si.version}`,os:yn(),displayResolution:Kg(),isScreenShareSupported:za(),isWebRTCSupported:Ih(),isGetUserMediaSupported:eE(),isWebAudioSupported:tE(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:_u(),isMediaSessionSupported:aE(),isWebTransportSupported:cE()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var dE="checkResult";function Jg(i=30){bn.setItem(dE+i,{ua:navigator.userAgent,checkResult:Ce})}function yh(i){Hi();let t=bn.getItem(dE+i);t&&t.ua===navigator.userAgent&&t.checkResult&&ty(t.checkResult.detail,Ce.detail)&&(Ce=t.checkResult),fu(i)}function ty(i,t){return hr(i)?Object.keys(t).every(e=>e in i):!1}function qr(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var ry="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function Xg(i){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[i]}var Qg=!1;function Ah(){return A(this,null,function*(){var i;try{if(Qg||!((i=navigator==null?void 0:navigator.mediaCapabilities)!=null&&i.encodingInfo))return;let t=hs(),e=Wm();if(t===0||e===0)return;Qg=!0;let r=["H264","VP8","VP9","AV1","H265"],[o,s]=yield Promise.all([uE(r),lE(r)]);o&&Object.keys(o).forEach(d=>{let l=Xg(d.toLowerCase());J.addEnum({key:513707,value:+`${l}${+o[d].supported}${+o[d].powerEfficient}${t}${e}`,useUV:!1})}),s&&Object.keys(s).forEach(d=>{let l=Xg(d.toLowerCase());J.addEnum({key:514713,value:+`${l}${+s[d].supported}${+s[d].powerEfficient}${t}${e}`,useUV:!1})});let{sender:n,receiver:a}=mE();J.addEnum({key:513708,value:+`${t}${e}${+n.high}`,useUV:!1}),J.addEnum({key:513709,value:+`${t}${e}${+n.main}`,useUV:!1}),J.addEnum({key:514714,value:+`${t}${e}${+a.high}`,useUV:!1}),J.addEnum({key:514715,value:+`${t}${e}${+a.main}`,useUV:!1})}catch(t){F.info("detectVideoCodecCapabilities failed",t)}})}function uE(i,t=1920,e=1080,r=30,o=3e3){return A(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.encodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}function lE(i,t=1920,e=1080,r=30,o=3e3){return A(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.decodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}function mE(){let i={sender:{base:!1,main:!1,high:!1},receiver:{base:!1,main:!1,high:!1}};try{if(RTCRtpSender&&typeof RTCRtpSender.getCapabilities=="function"){let t=RTCRtpSender.getCapabilities("video");t&&t.codecs&&t.codecs.filter(r=>r.mimeType.toLowerCase()==="video/h264").forEach(r=>{if(r.sdpFmtpLine){let o=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(o&&o[1])switch(o[1].slice(0,2)){case"42":i.sender.base=!0;break;case"4d":i.sender.main=!0;break;case"64":i.sender.high=!0;break}}})}if(RTCRtpReceiver&&typeof RTCRtpReceiver.getCapabilities=="function"){let t=RTCRtpReceiver.getCapabilities("video");t&&t.codecs&&t.codecs.filter(r=>r.mimeType.toLowerCase()==="video/h264").forEach(r=>{if(r.sdpFmtpLine){let o=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(o&&o[1])switch(o[1].slice(0,2)){case"42":i.receiver.base=!0;break;case"4d":i.receiver.main=!0;break;case"64":i.receiver.high=!0;break}}})}}catch(t){F.warn("get H264 profile levelId failed",t)}return i}var pE=Ai(ki(),1);var hE=Symbol("instance"),AN=Symbol("abortCtrl"),Tu=Symbol("cacheResult"),Qa=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,Ka.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},Ya=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function iy(i){return typeof i=="object"&&i&&"then"in i}var Za=new Map;function et(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let d=Za.get(r)||[];Za.has(r)||Za.set(r,d),d.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...d){let l=this;if(e.context&&(l=ue.get(typeof e.context=="function"?e.context.call(this,...d):e.context)),l.state===t)return e.sync?l[Tu]:Promise.resolve(l[Tu]);l.state instanceof Qa&&l.state.action==e.abortAction&&l.state.abort(l);let p=null;Array.isArray(i)?i.length==0?l.state instanceof Qa&&l.state.abort(l):(typeof l.state!="string"||!i.includes(l.state))&&(p=new Ya(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i.join("|")}`)):i!==l.state&&(p=new Ya(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i}`));let f=N=>{if(e.fail&&e.fail.call(this,N),e.sync){if(e.ignoreError)return N;throw N}else return e.ignoreError?Promise.resolve(N):Promise.reject(N)};if(p)return f(p);let g=l.state,y=new Qa(g,t,n);Ka.call(l,y);let R=N=>{var k;return l[Tu]=N,y.aborted||(Ka.call(l,t),(k=e.success)===null||k===void 0||k.call(this,l[Tu])),N},C=N=>(Ka.call(l,g,N),f(N));try{let N=a.apply(this,d);return iy(N)?N.then(R).catch(C):e.sync?R(N):Promise.resolve(R(N))}catch(N){return C(new Ya(l._state,`${l.name} ${n} from ${i} to ${t} failed: ${N}`,N instanceof Error?N:new Error(String(N))))}}}}var oy=typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{};function Ka(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(ue.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var ue=class i extends pE.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=i.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let o=r[hE];o?this.name=o.name+"-"+o.count++:r[hE]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=Za.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);Za.has(a)&&(a.stateDiagram.forEach(l=>r.add(l)),a.allStates.forEach(l=>n.add(l))),e.forEach(({from:l,to:p,action:f})=>{typeof l=="string"?o.push({from:l,to:p,action:f}):l.length?l.forEach(g=>{o.push({from:g,to:p,action:f})}):s.push({to:p,action:f})}),o.forEach(({from:l,to:p,action:f})=>{n.add(l),n.add(p),n.add(f+"ing"),r.add(`${l} --> ${f}ing : ${f}`),r.add(`${f}ing --> ${p} : ${f} \u{1F7E2}`),r.add(`${f}ing --> ${l} : ${f} \u{1F534}`)}),s.forEach(({to:l,action:p})=>{r.add(`${p}ing --> ${l} : ${p} \u{1F7E2}`),n.forEach(f=>{f!==l&&r.add(`${f} --> ${p}ing : ${p}`)})});let d=[...r];return Object.defineProperties(t,{stateDiagram:{value:d},allStates:{value:n}}),d}static get(t){let e;return typeof t=="string"?(e=i.instances.get(t),e||i.instances.set(t,e=new i(t,void 0,Object.create(i.prototype)))):(e=i.instances2.get(t),e||i.instances2.set(t,e=new i(t.constructor.name,void 0,Object.create(i.prototype)))),e}static getState(t){var e;return(e=i.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){oy(i.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){Ka.call(this,t)}};ue.STATECHANGED="stateChanged";ue.UPDATEAFSM="updateAFSM";ue.INIT="[*]";ue.ON="on";ue.OFF="off";ue.instances=new Map;ue.instances2=new WeakMap;var Rh=typeof window!="undefined",fE=Rh&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},sy=Rh&&window.cancelIdleCallback||function(i){clearTimeout(i)},gE=Rh&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),Ct=class Ct{static generateTaskID(){return this.currentTaskID++}static run(t,e,r){r!=null&&r.fps&&(r.delay=r.delay||Number((1e3/r.fps).toFixed(2))),t==="interval"?r=Y({delay:2e3,count:0,backgroundTask:!0},r):t==="ric"?r=Y({delay:1e4,count:0},r):t==="raf"?r=Y({fps:60,delay:16.6,count:0,backgroundTask:!0},r):r=Y({delay:2e3,count:0,backgroundTask:!0},r);let o=Ee(Y({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:t,callback:e},r),{delay:r.delay});return this.taskMap.set(o.taskID,o),this[t](o),o.taskID}static interval(t){let e=()=>{t.callback(),t.loopCount+=1,Ct.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){Ct.sharedWorker||(Ct.sharedWorker=new Worker(URL.createObjectURL(new Blob([`
11
+ `),p}var hh=bi(qg(),1);var xS=1,PS=0,uu=class{constructor(t=!0){m(this,"countMap",new Map);m(this,"distributionMap",new Map);m(this,"version");m(this,"log",F.createLogger({id:"kv"}));t&&(U.on("102",({track:e,cost:r})=>{this.addSuccessEvent({key:e.kind===M.AUDIO?501700:511700,cost:r})}),U.on("103",({track:e,error:r})=>{this.addFailedEvent({key:e.kind===M.AUDIO?501700:511700,error:r})}),U.on("266",({enable:e})=>{this.log.info(`${e?"enable":"disable"} sso`),e?this.addSuccessEvent({key:525701}):this.addFailedEvent({key:525701})}))}getReportData(t,e){let r={msg_sdk_basic_info:{uint32_sdk_version:Dd(this.version||ht),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([o,s])=>({uint32_key:o,uint32_count:s})),stats_distribution:[...this.distributionMap.entries()].map(([o,s])=>({uint32_key:o,distribution_items:[...s.entries()].map(([n,a])=>({uint32_item_key:n,uint32_item_value:a}))})),str_user_sig:t,bytes_report_token:e};return this.countMap.clear(),this.distributionMap.clear(),r}clear(){this.countMap.clear(),this.distributionMap.clear()}isEnumKey(t){let e=+String(t).slice(-3);return e>=700&&e<799}isErrorCodeKey(t){let e=+String(t).slice(-3);return e>=600&&e<699}isCountKey(t){let e=+String(t).slice(-3);return e>=0&&e<599}isNumberKey(t){let e=+String(t).slice(-3);return e>=800&&e<899}addCount({key:t,useUV:e=!1}){if(!this.isCountKey(t)){this.log.debug(`${t} is not count key, last 3 number should be 0~599`);return}e&&this.countMap.has(t)||this.countMap.set(t,(this.countMap.get(t)||0)+1)}addEnum({key:t,value:e,useUV:r=!0}){var s;if(!this.isEnumKey(t))return this.log.debug(`${t} is not enum key, last 3 number should be 700~799`);if(r&&this.countMap.has(t))return;this.countMap.set(t,(this.countMap.get(t)||0)+1);let o=((s=this.distributionMap)==null?void 0:s.get(t))||new Map;o.set(e,(o.get(e)||0)+1),this.distributionMap.set(t,o)}addNumber({key:t,value:e,split:r=100,useUV:o=!1,max:s=5e3}){var d;if(!this.isNumberKey(t))return this.log.debug(`${t} is not number key, last 3 number should be 800~899`);if(o&&this.countMap.has(t))return;e>s&&(e=s),this.countMap.set(t,(this.countMap.get(t)||0)+1);let n=((d=this.distributionMap)==null?void 0:d.get(t))||new Map,a=0;if(Ve(r))a=Math.floor(e/r);else for(let l=r.length-1;l>0;l--)if(e>r[l]){a=l;break}n.set(a,(n.get(a)||0)+1),this.distributionMap.set(t,n)}addSuccessEvent({key:t,cost:e,timeKey:r,split:o}){if(t&&(this.addEnum({key:t,value:xS,useUV:!1}),e)){let s=+String(t).slice(-3);s<800&&s>=700?this.addNumber({key:r||t+100,value:e,split:o}):r||this.log.debug(`time stat ignored, ${t}`)}}addFailedEvent({key:t,error:e}){if(!t)return;let r=q.UNKNOWN;e&&(Ve(e)?r=e:(!O(e.extraCode)||!O(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:PS,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},lu=(W=>(W[W.enterRoom=500700]="enterRoom",W[W.exitRoom=500701]="exitRoom",W[W.switchRole=500702]="switchRole",W[W.destroy=500703]="destroy",W[W.startLocalAudio=500704]="startLocalAudio",W[W.updateLocalAudio=500705]="updateLocalAudio",W[W.stopLocalAudio=500706]="stopLocalAudio",W[W.startLocalVideo=500707]="startLocalVideo",W[W.updateLocalVideo=500708]="updateLocalVideo",W[W.stopLocalVideo=500709]="stopLocalVideo",W[W.startScreenShare=500710]="startScreenShare",W[W.updateScreenShare=500711]="updateScreenShare",W[W.stopScreenShare=500712]="stopScreenShare",W[W.startRemoteVideo=500713]="startRemoteVideo",W[W.updateRemoteVideo=500714]="updateRemoteVideo",W[W.stopRemoteVideo=500715]="stopRemoteVideo",W[W.muteRemoteAudio=500716]="muteRemoteAudio",W[W.setRemoteAudioVolume=500717]="setRemoteAudioVolume",W[W.use=500718]="use",W[W.switchRoom=500719]="switchRoom",W[W.sendSEIMessage=5e5]="sendSEIMessage",W[W.sendCustomMessage=500001]="sendCustomMessage",W))(lu||{}),uh=(g=>(g[g.AudioMixer=550700]="AudioMixer",g[g.AIDenoiser=551700]="AIDenoiser",g[g.VirtualBackground=570700]="VirtualBackground",g[g.Beauty=571700]="Beauty",g[g.Watermark=572700]="Watermark",g[g.BasicBeauty=574700]="BasicBeauty",g[g.CDNStreaming=590700]="CDNStreaming",g[g.DeviceDetector=591700]="DeviceDetector",g[g.Debug=592700]="Debug",g[g.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",g[g.VideoMixer=594700]="VideoMixer",g[g.AudioProcessor=595700]="AudioProcessor",g))(uh||{}),lh=(g=>(g[g.AudioMixer=550701]="AudioMixer",g[g.AIDenoiser=551701]="AIDenoiser",g[g.VirtualBackground=570701]="VirtualBackground",g[g.Beauty=571701]="Beauty",g[g.Watermark=572701]="Watermark",g[g.BasicBeauty=574701]="BasicBeauty",g[g.CDNStreaming=590701]="CDNStreaming",g[g.DeviceDetector=591701]="DeviceDetector",g[g.Debug=592701]="Debug",g[g.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",g[g.VideoMixer=594701]="VideoMixer",g[g.AudioProcessor=595701]="AudioProcessor",g))(lh||{}),mh=(g=>(g[g.AudioMixer=550702]="AudioMixer",g[g.AIDenoiser=551702]="AIDenoiser",g[g.VirtualBackground=570702]="VirtualBackground",g[g.Beauty=571702]="Beauty",g[g.Watermark=572702]="Watermark",g[g.BasicBeauty=574702]="BasicBeauty",g[g.CDNStreaming=590702]="CDNStreaming",g[g.DeviceDetector=591702]="DeviceDetector",g[g.Debug=592702]="Debug",g[g.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",g[g.VideoMixer=594702]="VideoMixer",g[g.AudioProcessor=595702]="AudioProcessor",g))(mh||{});var Cn=(H=>(H[H.DECODER_TYPE=514700]="DECODER_TYPE",H[H.DECODER_HW_SW=514701]="DECODER_HW_SW",H[H.DECODE_RESULT=514702]="DECODE_RESULT",H[H.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",H[H.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",H[H.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",H[H.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",H[H.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",H[H.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",H[H.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",H[H.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",H[H.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",H[H.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",H[H.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",H[H.H264_PROFILE_LEVEL_ID_HIGH=514714]="H264_PROFILE_LEVEL_ID_HIGH",H[H.H264_PROFILE_LEVEL_ID_MAIN=514715]="H264_PROFILE_LEVEL_ID_MAIN",H[H.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",H[H.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",H[H.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",H))(Cn||{});var LS=new uu(!0),Es=new uu(!1);var J=LS;var Ce={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}},kS=new Map([[lt,["Firefox",Ld]],[gn,["Edg",Vd]],[Sn,["Chrome",Kd]],[_t,["Safari",xi]],[Wr,["TBS",$d]],[Oi,["XWEB",Hd]],[Mi&&_o,["WeChat",Wd]],[Ca,["QQ(Win)",Gd]],[_n,["QQ(Mobile)",pn]],[En,["QQ(Mobile X5)",pn]],[Na,["QQ(Mac)",jd]],[Da,["QQ(iPad)",qd]],[Oa,["MI",zd]],[Ma,["HW",Jd]],[Pa,["Samsung",Xd]],[Tn,["OPPO",Qd]],[La,["VIVO",Yd]],[ds,["EDGE",Ud]],[Ra,["SogouMobile",Fd]],[va,["Sogou",Bd]]]);function pu(){let i=kS.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var ph=function(){return!(xm||ds||gn&&Om<80||lt&&kd<56)},fh=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(t=>t in window)},fu=function(){if(!navigator.mediaDevices)return Hi()||F.error(nr.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},zg=!1;function Hi(){return location.protocol==="http:"&&!jr?(zg||F.error(He({key:$e.NOT_SUPPORTED_HTTP})),zg=!0,!0):!1}var gh=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},US=function(){return!!(window!=null&&window.MediaStreamTrackGenerator)},Eh=function(){return A(this,null,function*(){var o,s,n;if(Ce.detail.isH264EncodeSupported&&Ce.detail.isVp8EncodeSupported)return{isH264EncodeSupported:Ce.detail.isH264EncodeSupported,isVp8EncodeSupported:Ce.detail.isVp8EncodeSupported,isH265EncodeSupported:Ce.detail.isH265EncodeSupported};let i,t=!1,e=!1,r=!1;try{let a=new RTCPeerConnection,d=document.createElement(M.CANVAS);d.getContext("2d");let l=d.captureStream(0);return a.addTrack(l.getVideoTracks()[0],l),i=yield a.createOffer(),t=((o=i.sdp)==null?void 0:o.toLowerCase().indexOf("h264"))!==-1,e=((s=i.sdp)==null?void 0:s.toLowerCase().indexOf("vp8"))!==-1,r=((n=i.sdp)==null?void 0:n.toLowerCase().indexOf("h265"))!==-1,a.close(),{isH264EncodeSupported:t,isVp8EncodeSupported:e,isH265EncodeSupported:r}}catch(a){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1}}})},Zg=function(){return A(this,null,function*(){var r;if(Ce.detail.isH264DecodeSupported&&Ce.detail.isVp8DecodeSupported)return{isH264DecodeSupported:Ce.detail.isH264DecodeSupported,isVp8DecodeSupported:Ce.detail.isVp8DecodeSupported,isH265DecodeSupported:Ce.detail.isH265DecodeSupported};let i,t=!1,e=!1;try{let o=new RTCPeerConnection;_u()?(o.addTransceiver(M.VIDEO,{direction:"recvonly"}),i=yield o.createOffer()):i=yield o.createOffer({offerToReceiveVideo:!0}),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0);let s=((r=i.sdp)==null?void 0:r.toLowerCase().indexOf("h265"))!==-1;return o.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:e,isH265DecodeSupported:s}}catch(o){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}}})};function VS(){return A(this,null,function*(){let[i,t]=yield Promise.all([Eh(),Zg()]);return{encode:{h264:i.isH264EncodeSupported,vp8:i.isVp8EncodeSupported,h265:i.isH265EncodeSupported},decode:{h264:t.isH264DecodeSupported,vp8:t.isVp8DecodeSupported,h265:t.isH265DecodeSupported}}})}var gu=wd(i=>A(void 0,null,function*(){let t=Date.now(),e=Ih(),r=fu(),o=fh();if(Ce.detail.isWebRTCSupported=e,Ce.detail.isMediaDevicesSupported=r,Ce.detail.isWebCodecsSupported=o,Ce.detail.isScreenShareSupported=za(),Ce.detail.isSmallStreamSupported=Eu(),i===37)return Object.assign(Ce.detail,yield HS()),Ce.detail.isBrowserSupported=o,Ce.result=r&&o,Ce.result||F.error(`${navigator.userAgent} ${ya(Ce.detail,!1)}`),Jg(i),J.addNumber({key:523800,value:Date.now()-t}),Ce;if(Ce.result&&Ce.detail.isH264EncodeSupported&&Ce.detail.isVp8EncodeSupported&&Ce.detail.isH265EncodeSupported&&Ce.detail.isH264DecodeSupported&&Ce.detail.isVp8DecodeSupported&&Ce.detail.isH265DecodeSupported)return Ce;let s=ph(),{encode:n,decode:a}=yield VS(),{h264:d,vp8:l}=n,{h264:p}=a,{h265:f}=n,{vp8:g,h265:y}=a;if(!d||!l){let R=yield Eh();F.warn(`detect encode again h264:${d} vp8:${l} result: ${JSON.stringify(R)}`),d=R.isH264EncodeSupported,l=R.isVp8EncodeSupported}if(d&&p&&nt&&fr&&!Oi&&!Wr&&!(Tn&&sr===115)){let{encode:R,decode:C}=yield $S();d=R,p=C}return Ce.result=s&&e&&r&&(d||l)&&(p||g),Ce.detail.isBrowserSupported=s,Ce.detail.isWebRTCSupported=e,Ce.detail.isH264EncodeSupported=d,Ce.detail.isVp8EncodeSupported=l,Ce.detail.isH265EncodeSupported=f,Ce.detail.isH264DecodeSupported=p,Ce.detail.isVp8DecodeSupported=g,Ce.detail.isH265DecodeSupported=y,Ce.result||F.error(`${navigator.userAgent} ${ya(Ce.detail,!1)}`),Jg(),J.addNumber({key:523800,value:Date.now()-t}),Ce})),FS=function(){return Ce.result},za=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},BS=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype,mu=null;function $S(){return A(this,null,function*(){return mu||(mu=new Promise(i=>A(this,null,function*(){let t={encode:!1,decode:!1},e=()=>{};try{let r=document.createElement("canvas"),o=r.getContext("2d");r.width=640,r.height=480;let s=setInterval(()=>{o.fillText("test",Math.floor(Math.random()*640),Math.floor(Math.random()*480))},66),n=-1,a=-1;e=()=>{clearInterval(n),clearInterval(s),clearTimeout(a),l.close(),p.close(),d.getTracks().forEach(C=>C.stop())},a=setTimeout(()=>{e(),i(t)},2*1e3);let d=r.captureStream(),l=new RTCPeerConnection({}),p=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});l.addEventListener("icecandidate",C=>p.addIceCandidate(C.candidate)),p.addEventListener("icecandidate",C=>l.addIceCandidate(C.candidate)),l.addTrack(d.getVideoTracks()[0],d);let f=yield l.createOffer();yield l.setLocalDescription(f),yield p.setRemoteDescription(f);let g=yield p.createAnswer(),y=hh.default.parse(g.sdp),R=y.media[0].rtp.findIndex(C=>C.codec==="H264");y.media[0].rtp=[y.media[0].rtp[R]],y.media[0].fmtp=y.media[0].fmtp.filter(C=>C.payload===y.media[0].rtp[0].payload),y.media[0].rtcpFb&&(y.media[0].rtcpFb=y.media[0].rtcpFb.filter(C=>C.payload===y.media[0].rtp[0].payload)),g.sdp=hh.default.write(y),yield p.setLocalDescription(g),yield l.setRemoteDescription(g),n=setInterval(()=>A(this,null,function*(){t.encode&&t.decode&&(e(),i(t));let[C,N]=yield Promise.all([l.getSenders()[0].getStats(),p.getReceivers()[0].getStats()]);t.encode||C.forEach(k=>{k.type==="outbound-rtp"&&k.mediaType===M.VIDEO&&k.bytesSent>0&&(t.encode=!0)}),t.decode||N.forEach(k=>{k.type==="inbound-rtp"&&k.mediaType===M.VIDEO&&k.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){e(),F.warn("detectH264Supported failed",r),i({encode:!0,decode:!0})}})).then(i=>(i.encode||(i.decode=!0),(!i.encode||!i.decode)&&F.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${Hr}`),i)),mu)})}var hu=null;function HS(){return A(this,null,function*(){return hu||(hu=new Promise(i=>A(this,null,function*(){let t={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!fh()){i(t);return}let e=null,r=null,o=null,s=()=>{o&&clearTimeout(o),e=null,r=null};try{e=document.createElement("canvas"),r=e.getContext("2d"),e.width=320,e.height=240;let n=0,a=()=>{!r||!e||(r.fillStyle=`hsl(${n%360}, 50%, 50%)`,r.fillRect(0,0,e.width,e.height),r.fillStyle="white",r.font="20px Arial",r.fillText(`Frame ${n}`,10,30),n++)};o=setTimeout(()=>{s(),i(t)},5e3);let d=[{type:"h264",encodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"},width:320,height:240,bitrate:1e6},decodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"}}},{type:"vp8",encodeConfig:{codec:"vp8",width:320,height:240,bitrate:1e6},decodeConfig:{codec:"vp8"}}];(yield Promise.all(d.map(p=>A(this,null,function*(){let f={type:p.type,encodeSupported:!1,decodeSupported:!1},g;try{g=yield new Promise((y,R)=>A(this,null,function*(){try{let C=new VideoEncoder({output:k=>{y(k),f.encodeSupported=!0},error:R});C.configure(p.encodeConfig),a();let N=new VideoFrame(e,{timestamp:0});C.encode(N,{keyFrame:!0}),N.close(),yield C.flush(),C.close()}catch(C){R(C)}}))}catch(y){return F.warn(`${p.type} encoder error:`,y),f}try{yield new Promise((y,R)=>A(this,null,function*(){try{let C=new VideoDecoder({output:N=>{f.decodeSupported=!0,y(0),N.close()},error:R});C.configure(p.decodeConfig),C.decode(g),yield C.flush(),C.close()}catch(C){R(C)}}))}catch(y){F.warn(`${p.type} decoder error:`,y)}return f})))).forEach(p=>{p.type==="h264"?(t.isH264EncodeSupported=p.encodeSupported,t.isH264DecodeSupported=p.decodeSupported):p.type==="vp8"&&(t.isVp8EncodeSupported=p.encodeSupported,t.isVp8DecodeSupported=p.decodeSupported)}),s(),i(t)}catch(n){s(),F.warn("detectWebCodecsSupported failed:",n),i(t)}})),hu)})}var WS=(i,t,e)=>{location.protocol==="http:"&&!jr&&(i[t]=()=>{throw new ae({code:q.INVALID_OPERATION,message:nr.NOT_SUPPORTED_HTTP})})},GS=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(Ye(i.selected)&&!i.selected):!1};function Kg(){let i="";if(screen.width){let t=screen.width?screen.width*window.devicePixelRatio:"",e=screen.height?screen.height*window.devicePixelRatio:"";i+=`${t} * ${e}`}return i}function eE(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function tE(){let i={isSupported:!1},t=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let e=0;e<t.length;e++)if(t[e]in window){i.isSupported=!0;break}return i.isSupported}function rE(){return"captureStream"in HTMLCanvasElement.prototype}function iE(){return Mi||ot||sr&&sr<63?!1:!!(ph()&&rE())}function oE(){return!(sr<74||ds||Vt<11||kd<46)}function Eu(){return iE()||oE()}var jS=function(){if(O(window.RTCRtpTransceiver)||!_u()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:mm}),i.addTransceiver(M.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function qS(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function sE(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function zS(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function _u(){return Vt===11&&!$m?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var JS=!(!_u()||fr&&sr<86);function XS(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var Ja="RTCRtpSender"in window;function QS(){return Ja&&"replaceTrack"in window.RTCRtpSender.prototype}function YS(){return Ja&&"setParameters"in window.RTCRtpSender.prototype&&sE()}var ZS="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,Nn=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,_h=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,Th=typeof InputDeviceInfo!="undefined"&&"getCapabilities"in InputDeviceInfo.prototype,_s=Ja&&"createEncodedStreams"in window.RTCRtpSender.prototype&&Zd()>=86,nE="RTCRtpScriptTransform"in window,Xa=Ja&&(_s||nE),Ih=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function Tu(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return O(window.AudioDecoder)||(i.AudioDecoder=!0),O(window.AudioEncoder)||(i.AudioEncoder=!0),O(window.VideoDecoder)||(i.VideoDecoder=!0),O(window.VideoEncoder)||(i.VideoEncoder=!0),O(window.ImageDecoder)||(i.ImageDecoder=!0),i}function aE(){return"mediaSession"in navigator&&!O(navigator.mediaSession.setActionHandler)}function cE(){return!O(window.WebTransport)}function Sh(){return typeof WebAssembly=="undefined"?!1:WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]))}function KS(){let i={browser:`${ni.name}/${ni.version}`,os:yn(),displayResolution:Kg(),isScreenShareSupported:za(),isWebRTCSupported:Ih(),isGetUserMediaSupported:eE(),isWebAudioSupported:tE(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:Tu(),isMediaSessionSupported:aE(),isWebTransportSupported:cE()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var dE="checkResult";function Jg(i=30){bn.setItem(dE+i,{ua:navigator.userAgent,checkResult:Ce})}function yh(i){Hi();let t=bn.getItem(dE+i);t&&t.ua===navigator.userAgent&&t.checkResult&&ey(t.checkResult.detail,Ce.detail)&&(Ce=t.checkResult),gu(i)}function ey(i,t){return hr(i)?Object.keys(t).every(e=>e in i):!1}function zr(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var ty="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function Xg(i){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[i]}var Qg=!1;function Ah(){return A(this,null,function*(){var i;try{if(Qg||!((i=navigator==null?void 0:navigator.mediaCapabilities)!=null&&i.encodingInfo))return;let t=hs(),e=Wm();if(t===0||e===0)return;Qg=!0;let r=["H264","VP8","VP9","AV1","H265"],[o,s]=yield Promise.all([uE(r),lE(r)]);o&&Object.keys(o).forEach(d=>{let l=Xg(d.toLowerCase());J.addEnum({key:513707,value:+`${l}${+o[d].supported}${+o[d].powerEfficient}${t}${e}`,useUV:!1})}),s&&Object.keys(s).forEach(d=>{let l=Xg(d.toLowerCase());J.addEnum({key:514713,value:+`${l}${+s[d].supported}${+s[d].powerEfficient}${t}${e}`,useUV:!1})});let{sender:n,receiver:a}=mE();J.addEnum({key:513708,value:+`${t}${e}${+n.high}`,useUV:!1}),J.addEnum({key:513709,value:+`${t}${e}${+n.main}`,useUV:!1}),J.addEnum({key:514714,value:+`${t}${e}${+a.high}`,useUV:!1}),J.addEnum({key:514715,value:+`${t}${e}${+a.main}`,useUV:!1})}catch(t){F.info("detectVideoCodecCapabilities failed",t)}})}function uE(i,t=1920,e=1080,r=30,o=3e3){return A(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.encodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}function lE(i,t=1920,e=1080,r=30,o=3e3){return A(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.decodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}function mE(){let i={sender:{base:!1,main:!1,high:!1},receiver:{base:!1,main:!1,high:!1}};try{if(RTCRtpSender&&typeof RTCRtpSender.getCapabilities=="function"){let t=RTCRtpSender.getCapabilities("video");t&&t.codecs&&t.codecs.filter(r=>r.mimeType.toLowerCase()==="video/h264").forEach(r=>{if(r.sdpFmtpLine){let o=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(o&&o[1])switch(o[1].slice(0,2)){case"42":i.sender.base=!0;break;case"4d":i.sender.main=!0;break;case"64":i.sender.high=!0;break}}})}if(RTCRtpReceiver&&typeof RTCRtpReceiver.getCapabilities=="function"){let t=RTCRtpReceiver.getCapabilities("video");t&&t.codecs&&t.codecs.filter(r=>r.mimeType.toLowerCase()==="video/h264").forEach(r=>{if(r.sdpFmtpLine){let o=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(o&&o[1])switch(o[1].slice(0,2)){case"42":i.receiver.base=!0;break;case"4d":i.receiver.main=!0;break;case"64":i.receiver.high=!0;break}}})}}catch(t){F.warn("get H264 profile levelId failed",t)}return i}var pE=bi(ki(),1);var hE=Symbol("instance"),AN=Symbol("abortCtrl"),Iu=Symbol("cacheResult"),Qa=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,Ka.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},Ya=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function ry(i){return typeof i=="object"&&i&&"then"in i}var Za=new Map;function et(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let d=Za.get(r)||[];Za.has(r)||Za.set(r,d),d.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...d){let l=this;if(e.context&&(l=ue.get(typeof e.context=="function"?e.context.call(this,...d):e.context)),l.state===t)return e.sync?l[Iu]:Promise.resolve(l[Iu]);l.state instanceof Qa&&l.state.action==e.abortAction&&l.state.abort(l);let p=null;Array.isArray(i)?i.length==0?l.state instanceof Qa&&l.state.abort(l):(typeof l.state!="string"||!i.includes(l.state))&&(p=new Ya(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i.join("|")}`)):i!==l.state&&(p=new Ya(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i}`));let f=N=>{if(e.fail&&e.fail.call(this,N),e.sync){if(e.ignoreError)return N;throw N}else return e.ignoreError?Promise.resolve(N):Promise.reject(N)};if(p)return f(p);let g=l.state,y=new Qa(g,t,n);Ka.call(l,y);let R=N=>{var k;return l[Iu]=N,y.aborted||(Ka.call(l,t),(k=e.success)===null||k===void 0||k.call(this,l[Iu])),N},C=N=>(Ka.call(l,g,N),f(N));try{let N=a.apply(this,d);return ry(N)?N.then(R).catch(C):e.sync?R(N):Promise.resolve(R(N))}catch(N){return C(new Ya(l._state,`${l.name} ${n} from ${i} to ${t} failed: ${N}`,N instanceof Error?N:new Error(String(N))))}}}}var iy=typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{};function Ka(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(ue.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var ue=class i extends pE.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=i.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let o=r[hE];o?this.name=o.name+"-"+o.count++:r[hE]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=Za.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);Za.has(a)&&(a.stateDiagram.forEach(l=>r.add(l)),a.allStates.forEach(l=>n.add(l))),e.forEach(({from:l,to:p,action:f})=>{typeof l=="string"?o.push({from:l,to:p,action:f}):l.length?l.forEach(g=>{o.push({from:g,to:p,action:f})}):s.push({to:p,action:f})}),o.forEach(({from:l,to:p,action:f})=>{n.add(l),n.add(p),n.add(f+"ing"),r.add(`${l} --> ${f}ing : ${f}`),r.add(`${f}ing --> ${p} : ${f} \u{1F7E2}`),r.add(`${f}ing --> ${l} : ${f} \u{1F534}`)}),s.forEach(({to:l,action:p})=>{r.add(`${p}ing --> ${l} : ${p} \u{1F7E2}`),n.forEach(f=>{f!==l&&r.add(`${f} --> ${p}ing : ${p}`)})});let d=[...r];return Object.defineProperties(t,{stateDiagram:{value:d},allStates:{value:n}}),d}static get(t){let e;return typeof t=="string"?(e=i.instances.get(t),e||i.instances.set(t,e=new i(t,void 0,Object.create(i.prototype)))):(e=i.instances2.get(t),e||i.instances2.set(t,e=new i(t.constructor.name,void 0,Object.create(i.prototype)))),e}static getState(t){var e;return(e=i.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){iy(i.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){Ka.call(this,t)}};ue.STATECHANGED="stateChanged";ue.UPDATEAFSM="updateAFSM";ue.INIT="[*]";ue.ON="on";ue.OFF="off";ue.instances=new Map;ue.instances2=new WeakMap;var Rh=typeof window!="undefined",fE=Rh&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},oy=Rh&&window.cancelIdleCallback||function(i){clearTimeout(i)},gE=Rh&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),Ct=class Ct{static generateTaskID(){return this.currentTaskID++}static run(t,e,r){r!=null&&r.fps&&(r.delay=r.delay||Number((1e3/r.fps).toFixed(2))),t==="interval"?r=Y({delay:2e3,count:0,backgroundTask:!0},r):t==="ric"?r=Y({delay:1e4,count:0},r):t==="raf"?r=Y({fps:60,delay:16.6,count:0,backgroundTask:!0},r):r=Y({delay:2e3,count:0,backgroundTask:!0},r);let o=Ee(Y({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:t,callback:e},r),{delay:r.delay});return this.taskMap.set(o.taskID,o),this[t](o),o.taskID}static interval(t){let e=()=>{t.callback(),t.loopCount+=1,Ct.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){Ct.sharedWorker||(Ct.sharedWorker=new Worker(URL.createObjectURL(new Blob([`
12
12
  const timers = new Map();
13
13
  self.onmessage = function(e) {
14
14
  const { taskId, delay, type } = e.data;
@@ -21,15 +21,15 @@ Refer to: ${Vg("en",a)}
21
21
  timers.delete(taskId);
22
22
  }
23
23
  };
24
- `],{type:"application/javascript"}))),Ct.sharedWorker.onmessage=e=>{var r;if(e.data.type==="tick"){let o=Ct.workerTasks.get(e.data.taskId);o&&(Ct.isBreakLoop(o)?((r=Ct.sharedWorker)==null||r.postMessage({type:"stop",taskId:o.taskID}),Ct.workerTasks.delete(o.taskID)):(o.callback(),o.loopCount+=1))}}),Ct.workerTasks.set(t.taskID,t),Ct.sharedWorker.postMessage({taskId:t.taskID,delay:t.delay,type:"start"})}static timeout(t){let e=()=>{if(t.callback(),t.loopCount+=1,!Ct.isBreakLoop(t))return t.timeoutID=setTimeout(e,t.delay)};return t.timeoutID=setTimeout(e,t.delay)}static ric(t){let e=_e(),r,o=()=>{if(r=_e()-e,r>=t.delay&&(e=_e()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!Ct.isBreakLoop(t))return t.ricID=fE(o,{timeout:t.delay})};return t.ricID=fE(o,{timeout:t.delay})}static raf(t){let e=_e(),r,o=()=>{if(document.hidden&&t.backgroundTask)return r=_e()-e,e=_e(),t.callback(),t.loopCount+=1,Ct.isBreakLoop(t)?void 0:t.timeoutID=setTimeout(o,t.delay-Math.floor(r%t.delay));if(r=_e()-e,r>=t.delay&&(e=_e()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!Ct.isBreakLoop(t))return t.rafID=requestAnimationFrame(o)};if(t.rafID=requestAnimationFrame(o),t.backgroundTask){let s=()=>{if(document.hidden){let n=_e()-e;n>=t.delay?o():t.timeoutID=setTimeout(o,t.delay-n)}};document.addEventListener("visibilitychange",s),t.onVisibilitychange=s,document.hidden&&s()}return t.taskID}static hasTask(t){return this.taskMap.has(t)}static clearTask(t){if(!this.taskMap.has(t))return!0;let{intervalID:e,timeoutID:r,rafID:o,ricID:s,onVisibilitychange:n}=this.taskMap.get(t);return e&&clearInterval(e),r&&clearTimeout(r),o&&gE&&gE(o),s&&sy(s),n&&document.removeEventListener("visibilitychange",n),this.taskMap.delete(t),!0}static isBreakLoop(t){return this.hasTask(t.taskID)?t.count!==0&&t.loopCount>=t.count?(this.clearTask(t.taskID),!0):!1:!0}};m(Ct,"taskMap",new Map),m(Ct,"currentTaskID",1),m(Ct,"sharedWorker",null),m(Ct,"workerTasks",new Map);var bh=Ct,ft=bh;var xN={STREAM_ADDED:"stream-added",STREAM_REMOVED:"stream-removed",STREAM_UPDATED:"stream-updated",STREAM_SUBSCRIBED:"stream-subscribed",CONNECTION_STATE_CHANGED:"connection-state-changed",PEER_JOIN:"peer-join",PEER_LEAVE:"peer-leave",MUTE_AUDIO:"mute-audio",MUTE_VIDEO:"mute-video",UNMUTE_AUDIO:"unmute-audio",UNMUTE_VIDEO:"unmute-video",CLIENT_BANNED:"client-banned",NETWORK_QUALITY:"network-quality",AUDIO_VOLUME:"audio-volume",SEI_MESSAGE:M.SEI_MESSAGE,ERROR:"error"};var Ge={LOADED_DATA:M.LOADEDDATA,LOADED_META_DATA:M.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error",RESIZE:M.RESIZE,TIME_UPDATE:"time-update"};var ci={};yi(ci,{create:()=>Ft,remove:()=>St});var ec=new WeakMap;function Ft(i,t){ec.has(i)||ec.set(i,[]);let e=ec.get(i),o={add:(s,n)=>("addEventListener"in t?(e.push(t.removeEventListener.bind(t,s,n)),t.addEventListener(s,n)):(e.push(t.off.bind(t,s,n)),t.on(s,n)),o)};return o}function St(i){let t=ec.get(i);t&&(t.forEach(e=>e()),ec.delete(i))}var vh=class{constructor(){m(this,"_roomIdMap",new Map);m(this,"_configs");typeof registerProcessor=="undefined"&&(this._configs={sdkAppId:"",userId:"",version:ht,env:Ri.QCLOUD,browserVersion:si.name+si.version,ua:navigator.userAgent})}setConfig({sdkAppId:t,env:e,userId:r,roomId:o}){t!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(t)),this._configs.env=e,this._configs.userId=r,this._roomIdMap.set(r,String(o))}logSuccessEvent(t){Gr||!F.isAbleToUpload||this._configs.env===Ri.QCLOUD&&this.uploadEventToKibana(Ee(Y({},t),{result:"success"}))}logFailedEvent(t){if(Gr||!F.isAbleToUpload)return;let{eventType:e,code:r,error:o,userId:s}=t,n={roomId:this._roomIdMap.get(s||this._configs.userId),userId:s,eventType:e,result:"failed",code:r||(o==null?void 0:o.extraCode)||(o==null?void 0:o.code)||q.UNKNOWN};this._configs.env===Ri.QCLOUD&&this.uploadEventToKibana(Ee(Y({},n),{error:o}))}uploadEventToKibana(t){let e=`stat-${t.eventType}-${t.result}`;(t.eventType==="delta-join"||t.eventType==="delta-leave"||t.eventType==="delta-publish")&&(e=`${t.eventType}:${t.delta}`),this.uploadEvent({log:e,userId:t.userId}),t.result==="failed"&&(e=`stat-${t.eventType}-${t.result}-${t.code}`,this.uploadEvent({log:e,userId:t.userId,error:t.error}))}uploadEvent({log:t,userId:e,error:r}){let o={timestamp:ld(),sdkAppId:this._configs.sdkAppId,userId:e||this._configs.userId,version:ht,log:t};r&&(o.errorInfo=r.message,r.stack&&(o.errorInfo+=`
25
- ${r.stack}`));let s=To.enable?Di(o,2002,Number(this._configs.sdkAppId)):JSON.stringify(o);this.sendRequest(Ci(this._configs.sdkAppId,ho.LOG),s)}sendRequest(t,e){setTimeout(()=>wi({url:t,body:e,priority:"low"}).catch(()=>{}),2e3)}},je=new vh;var Ts=new WeakMap;function Is({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,n){let a=go({retryFunction:n.value,settings:i,onError({error:d,retry:l,reject:p,retryFuncArgs:f}){var g;t?t.call(this,d,()=>{var y;(y=Ts.get(o))!=null&&y.has(s)?l():p(d)},p,f):(g=Ts.get(o))!=null&&g.has(s)?l():p(d)},onRetrying(d,l){var p;fo(e)&&e.call(this,d,l),(p=Ts.get(o))!=null&&p.has(s)&&(Ts.get(o).get(s).stopRetry=l)},onRetryFailed:r});return n.value=function(...d){let l=Ts.get(o);return l?l.set(s,{args:d}):Ts.set(o,new Map([[s,{args:d}]])),a.apply(this,d).finally(()=>{var p;return(p=Ts.get(o))==null?void 0:p.delete(s)})},n}}var zr=class extends ue{constructor(e,r){super(e.id,`${r}-player`);this.options=e;this.kind=r;m(this,"id");m(this,"element",null);m(this,"track");m(this,"url");m(this,"attr");m(this,"mode");m(this,"muted");m(this,"_log");m(this,"_isPausedByUserCall",!1);m(this,"_pausedRetryCount");m(this,"_isElementPlayingFired",!1);m(this,"_interval");m(this,"_delayDestroyTimeoutId",0);m(this,"_playSuccessResolve");m(this,"_isReplayByRecreateMediaStreamCalled",!1);m(this,"isInAutoPlayFailedState",!1);this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=ts,this._state="STOPPED",this.bindTrackEvents(),this._log.info(`create ${r}-player ${this.id}`)}get isPlaying(){var e;return this._state==="PLAYING"&&((e=this.element)==null?void 0:e.paused)===!1}get isPaused(){var e;return this._state==="PAUSED"||((e=this.element)==null?void 0:e.paused)===!0}get isStopped(){return this._state==="STOPPED"}setAttr(e){this.attr=e}setUrl(e){this.track&&(this.unbindTrackEvents(),this.element&&(this.element.srcObject=null),this.track=null),e!==this.url&&(this.url=e,e!==null&&this.element&&(this.element.crossOrigin="anonymous",this.element.src=e))}play(){return A(this,null,function*(){if(!this.isPlaying)try{this._delayDestroyTimeoutId&&(clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0,this.bindTrackEvents(),this.bindElementEvents()),this.bindAutoPlayEvent(),yield new Promise((e,r)=>{this._playSuccessResolve=e,this.element.play().then(e,r)})}catch(e){let r=He({key:$e.PLAY_FAILED,data:{media:this.kind,error:e}});if(this._log.warn(e),r.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new ae({code:q.PLAY_NOT_ALLOWED,message:r})}})}stop(e=0){var r;this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!vr?this._delayDestroyTimeoutId||((r=this.element)==null||r.remove(),this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(M.ENDED),this._interval>0&&ft.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.src="",this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){var e;this._log.info("pause"),(e=this.element)==null||e.pause(),this._isPausedByUserCall=!0,this instanceof Bt&&fr&&sr>=128&&this.setPoster(this.getVideoFrame())}resume(){return this._isPausedByUserCall=!1,this.doResume()}doResume(){return this._log.info("resume"),this._isPausedByUserCall||this.isPlaying?Promise.resolve():Fm?this.replay():(this.element&&this.track&&fr&&sr>=128&&(this.element.srcObject=new MediaStream([this.track])),this.play().catch(()=>{}))}setMuted(e){this.element&&(this.element.muted=e),this.muted=e}replay(){return this.stop(),this.play().catch(()=>{})}bindElementEvents(){if(this.element){let e=this.handleElementEvent.bind(this);return Ft(this.element,this.element).add(M.PLAYING,e).add(M.ENDED,e).add(M.PAUSE,e).add(M.ERROR,e).add(M.LOADEDDATA,e).add(M.LOADEDMETADATA,e)}}bindTrackEvents(e=this.track){if(e){let r=this.handleTrackEvent.bind(this);ci==null||ci.create(e,e).add(M.ENDED,r).add(M.MUTE,r).add(M.UNMUTE,r),e.readyState===M.ENDED&&this.handleTrackEvent({type:M.ENDED}),e.muted&&this.handleTrackEvent({type:M.MUTE})}}bindAutoPlayEvent(){U.on(B.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&St(e)}unbindEvents(){this.element&&St(this.element),this.unbindTrackEvents(),U.off(B.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case M.PLAYING:bo()||(this.isInAutoPlayFailedState=!1),this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(M.PLAYING),this._interval&&(ft.clearTask(this._interval),this._interval=-1);break;case M.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(M.ENDED);break;case M.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(M.PAUSE),ot&&(this._interval=ft.run("timeout",()=>{this.element&&this._state==="PAUSED"&&this.doResume()},{delay:3e3}));break;case M.ERROR:if(this.element&&this.element.error){this.handlePaused(M.ERROR);let{code:o,message:s}=this.element.error;this._log.error(`${this.kind} ${this._log.isLocal?"local":"remote"} MediaError code: ${o} message: ${s} userAgent: ${navigator.userAgent}`),je.uploadEvent({log:`stat-${this.kind}-${Ar.PLAYER_ERROR}-${o}-${navigator.userAgent}`,error:this.element.error}),Pm||xa?this.emit(Ge.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case M.LOADEDDATA:this.kind===M.VIDEO&&this.emit(Ge.LOADED_DATA);break;case M.LOADEDMETADATA:this.kind===M.VIDEO&&this.emit(Ge.LOADED_META_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),je.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),J.addSuccessEvent({key:this.kind===M.AUDIO?506700:516700})}).catch(()=>{var r;this._log.error("replayByRecreateMediaStream failed"),je.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),J.addFailedEvent({key:this.kind===M.AUDIO?506700:516700,error:(r=this.element)==null?void 0:r.error}),this.emit(Ge.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((r,o)=>{Ni(e).then(()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var s,n,a;this._log.warn(`element onerror ${(n=(s=this.element)==null?void 0:s.error)==null?void 0:n.code} fired after recreated mediaStream`),o((a=this.element)==null?void 0:a.error)}),Ni(5e3).then(()=>{var s,n;(!this.isPlaying||(s=this.element)!=null&&s.error)&&o((n=this.element)==null?void 0:n.error),r()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(e){return A(this,null,function*(){switch(e.type){case M.ENDED:this.handleStopped(M.ENDED);break;case M.MUTE:this.handlePaused(M.MUTE);break;case M.UNMUTE:this.mode>0?this.handlePlaying(this.mode.toString()):this.element&&(this.element.paused&&(this._log.warn("track unmuted and element is paused, resume"),yield this.doResume()),!this.element.paused&&this._isElementPlayingFired&&this.handlePlaying(M.UNMUTE));break}})}handlePlaying(e){var r;return this._log.debug("handlePlaying",e),(r=this._playSuccessResolve)==null||r.call(this,e),e}handlePaused(e){return this._log.debug("handlePaused",e),e}handleStopped(e){return this._log.debug("handleStopped",e),e}getElement(){return this.element}};m(zr,"PlayerEvent",Ge),Z([Is({settings:{retries:2,timeout:0},onError(e,r,o,s){s[0]=(s[0]||1e3)+1e3,r()}})],zr.prototype,"doReplayByRecreateMediaStream",1),Z([et([],"PLAYING",{sync:!0,success(e){this.emit(Ge.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}})],zr.prototype,"handlePlaying",1),Z([et("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(e){this.emit(Ge.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}})],zr.prototype,"handlePaused",1),Z([et([],"STOPPED",{sync:!0,success(e){this.emit(Ge.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}})],zr.prototype,"handleStopped",1);var Wi="trtc_autoplay",Ch=`${Wi}_mask`,tc=`${Wi}_wrapper`,EE=`${Wi}_header`,Nh=`${Wi}_content`,Iu=`${Wi}_action_wrapper`,Dh=`${Wi}_question`,wh=`${Wi}_collapse`,Su=`${Wi}_action_confirm`,_E=`${Wi}_detail`,TE="#2473E8",xh="dialog",ay=`${xh}-show`,cy=`${xh}-1`,dy=`${xh}-2`,IE=!1,Oh=!1,bo=()=>Oh,yE=`${ir}/${Fr()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,SE=`<br><a href='${yE}' target='_blank'>${Fr()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,uy=`${Fr()?`\u6D4F\u89C8\u5668\u81EA\u52A8\u64AD\u653E\u7B56\u7565\uFF1A\u5728\u7528\u6237\u4E0E\u9875\u9762\u4EA7\u751F\u4EA4\u4E92\uFF08\u70B9\u51FB\u3001\u89E6\u6478\uFF09\u4E4B\u524D\uFF0C\u6D4F\u89C8\u5668\u7981\u6B62\u64AD\u653E\u6709\u58F0\u5A92\u4F53\u3002\u8BE5\u5F39\u7A97\u7528\u4E8E\u5E2E\u52A9\u7528\u6237\u6062\u590D\u97F3\u89C6\u9891\u64AD\u653E\u3002${SE}`:`Autoplay Policy: Before user interacts with the web page (clicking, touching), page will not be allowed to play media with sound. This Dialog is used to help users resume playback. ${SE}`}`,Mh=class{constructor(){m(this,"content","\u97F3\u89C6\u9891\u64AD\u653E\u88AB\u6D4F\u89C8\u5668\u62E6\u622A\uFF0C\u8BF7\u70B9\u51FB\u201C\u6062\u590D\u64AD\u653E\u201D\u3002");m(this,"_dialogNode",null);m(this,"_bodyPosition","");m(this,"_showDetail",!1);m(this,"_isCollapseClicked",!1);m(this,"_isQuestionClicked",!1);if(Fr()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!IE){let t=document.createElement("style");t.innerHTML=`.${Ch}{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.5);z-index:1500;}.${Ch} div:not(.${Iu}){display:block !important;}.${tc}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${tc} a{color:${TE};}.${EE}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${Nh}{margin:8px 0;}.${Iu}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${wh}{margin-right:auto;cursor:pointer}.${Dh}{height:100%;line-height:16px;cursor:pointer;}.${Su}{margin-left:8px;color:#fff;background:${TE};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${Su}:hover{opacity:0.9;}.${wh},.${Su},.${Nh},.${Dh}{font-size:14px;}@media screen and (max-width:750px){.${tc}{width:80vw;}}`,document.head.appendChild(t),IE=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${Ch}"><div class='${tc}'><div class='${EE}'>${location.host}</div><div class='${Nh}'>${this.content}</div><div class='${_E}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${uy}</div><div class='${Iu}'></div></div></div>`.trim();let e=document.createElement("button");e.className=Su,e.innerText=Fr()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=Dh,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
24
+ `],{type:"application/javascript"}))),Ct.sharedWorker.onmessage=e=>{var r;if(e.data.type==="tick"){let o=Ct.workerTasks.get(e.data.taskId);o&&(Ct.isBreakLoop(o)?((r=Ct.sharedWorker)==null||r.postMessage({type:"stop",taskId:o.taskID}),Ct.workerTasks.delete(o.taskID)):(o.callback(),o.loopCount+=1))}}),Ct.workerTasks.set(t.taskID,t),Ct.sharedWorker.postMessage({taskId:t.taskID,delay:t.delay,type:"start"})}static timeout(t){let e=()=>{if(t.callback(),t.loopCount+=1,!Ct.isBreakLoop(t))return t.timeoutID=setTimeout(e,t.delay)};return t.timeoutID=setTimeout(e,t.delay)}static ric(t){let e=_e(),r,o=()=>{if(r=_e()-e,r>=t.delay&&(e=_e()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!Ct.isBreakLoop(t))return t.ricID=fE(o,{timeout:t.delay})};return t.ricID=fE(o,{timeout:t.delay})}static raf(t){let e=_e(),r,o=()=>{if(document.hidden&&t.backgroundTask)return r=_e()-e,e=_e(),t.callback(),t.loopCount+=1,Ct.isBreakLoop(t)?void 0:t.timeoutID=setTimeout(o,t.delay-Math.floor(r%t.delay));if(r=_e()-e,r>=t.delay&&(e=_e()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!Ct.isBreakLoop(t))return t.rafID=requestAnimationFrame(o)};if(t.rafID=requestAnimationFrame(o),t.backgroundTask){let s=()=>{if(document.hidden){let n=_e()-e;n>=t.delay?o():t.timeoutID=setTimeout(o,t.delay-n)}};document.addEventListener("visibilitychange",s),t.onVisibilitychange=s,document.hidden&&s()}return t.taskID}static hasTask(t){return this.taskMap.has(t)}static clearTask(t){if(!this.taskMap.has(t))return!0;let{intervalID:e,timeoutID:r,rafID:o,ricID:s,onVisibilitychange:n}=this.taskMap.get(t);return e&&clearInterval(e),r&&clearTimeout(r),o&&gE&&gE(o),s&&oy(s),n&&document.removeEventListener("visibilitychange",n),this.taskMap.delete(t),!0}static isBreakLoop(t){return this.hasTask(t.taskID)?t.count!==0&&t.loopCount>=t.count?(this.clearTask(t.taskID),!0):!1:!0}};m(Ct,"taskMap",new Map),m(Ct,"currentTaskID",1),m(Ct,"sharedWorker",null),m(Ct,"workerTasks",new Map);var bh=Ct,ft=bh;var xN={STREAM_ADDED:"stream-added",STREAM_REMOVED:"stream-removed",STREAM_UPDATED:"stream-updated",STREAM_SUBSCRIBED:"stream-subscribed",CONNECTION_STATE_CHANGED:"connection-state-changed",PEER_JOIN:"peer-join",PEER_LEAVE:"peer-leave",MUTE_AUDIO:"mute-audio",MUTE_VIDEO:"mute-video",UNMUTE_AUDIO:"unmute-audio",UNMUTE_VIDEO:"unmute-video",CLIENT_BANNED:"client-banned",NETWORK_QUALITY:"network-quality",AUDIO_VOLUME:"audio-volume",SEI_MESSAGE:M.SEI_MESSAGE,ERROR:"error"};var Ge={LOADED_DATA:M.LOADEDDATA,LOADED_META_DATA:M.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error",RESIZE:M.RESIZE,TIME_UPDATE:"time-update"};var di={};Ai(di,{create:()=>Ft,remove:()=>St});var ec=new WeakMap;function Ft(i,t){ec.has(i)||ec.set(i,[]);let e=ec.get(i),o={add:(s,n)=>("addEventListener"in t?(e.push(t.removeEventListener.bind(t,s,n)),t.addEventListener(s,n)):(e.push(t.off.bind(t,s,n)),t.on(s,n)),o)};return o}function St(i){let t=ec.get(i);t&&(t.forEach(e=>e()),ec.delete(i))}var vh=class{constructor(){m(this,"_roomIdMap",new Map);m(this,"_configs");typeof registerProcessor=="undefined"&&(this._configs={sdkAppId:"",userId:"",version:ht,env:vi.QCLOUD,browserVersion:ni.name+ni.version,ua:navigator.userAgent})}setConfig({sdkAppId:t,env:e,userId:r,roomId:o}){t!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(t)),this._configs.env=e,this._configs.userId=r,this._roomIdMap.set(r,String(o))}logSuccessEvent(t){jr||!F.isAbleToUpload||this._configs.env===vi.QCLOUD&&this.uploadEventToKibana(Ee(Y({},t),{result:"success"}))}logFailedEvent(t){if(jr||!F.isAbleToUpload)return;let{eventType:e,code:r,error:o,userId:s}=t,n={roomId:this._roomIdMap.get(s||this._configs.userId),userId:s,eventType:e,result:"failed",code:r||(o==null?void 0:o.extraCode)||(o==null?void 0:o.code)||q.UNKNOWN};this._configs.env===vi.QCLOUD&&this.uploadEventToKibana(Ee(Y({},n),{error:o}))}uploadEventToKibana(t){let e=`stat-${t.eventType}-${t.result}`;(t.eventType==="delta-join"||t.eventType==="delta-leave"||t.eventType==="delta-publish")&&(e=`${t.eventType}:${t.delta}`),this.uploadEvent({log:e,userId:t.userId}),t.result==="failed"&&(e=`stat-${t.eventType}-${t.result}-${t.code}`,this.uploadEvent({log:e,userId:t.userId,error:t.error}))}uploadEvent({log:t,userId:e,error:r}){let o={timestamp:md(),sdkAppId:this._configs.sdkAppId,userId:e||this._configs.userId,version:ht,log:t};r&&(o.errorInfo=r.message,r.stack&&(o.errorInfo+=`
25
+ ${r.stack}`));let s=To.enable?Di(o,2002,Number(this._configs.sdkAppId)):JSON.stringify(o);this.sendRequest(Ni(this._configs.sdkAppId,ho.LOG),s)}sendRequest(t,e){setTimeout(()=>wi({url:t,body:e,priority:"low"}).catch(()=>{}),2e3)}},je=new vh;var Ts=new WeakMap;function Is({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,n){let a=go({retryFunction:n.value,settings:i,onError({error:d,retry:l,reject:p,retryFuncArgs:f}){var g;t?t.call(this,d,()=>{var y;(y=Ts.get(o))!=null&&y.has(s)?l():p(d)},p,f):(g=Ts.get(o))!=null&&g.has(s)?l():p(d)},onRetrying(d,l){var p;fo(e)&&e.call(this,d,l),(p=Ts.get(o))!=null&&p.has(s)&&(Ts.get(o).get(s).stopRetry=l)},onRetryFailed:r});return n.value=function(...d){let l=Ts.get(o);return l?l.set(s,{args:d}):Ts.set(o,new Map([[s,{args:d}]])),a.apply(this,d).finally(()=>{var p;return(p=Ts.get(o))==null?void 0:p.delete(s)})},n}}var Jr=class extends ue{constructor(e,r){super(e.id,`${r}-player`);this.options=e;this.kind=r;m(this,"id");m(this,"element",null);m(this,"track");m(this,"url");m(this,"attr");m(this,"mode");m(this,"muted");m(this,"_log");m(this,"_isPausedByUserCall",!1);m(this,"_pausedRetryCount");m(this,"_isElementPlayingFired",!1);m(this,"_interval");m(this,"_delayDestroyTimeoutId",0);m(this,"_playSuccessResolve");m(this,"_isReplayByRecreateMediaStreamCalled",!1);m(this,"isInAutoPlayFailedState",!1);this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=ts,this._state="STOPPED",this.bindTrackEvents(),this._log.info(`create ${r}-player ${this.id}`)}get isPlaying(){var e;return this._state==="PLAYING"&&((e=this.element)==null?void 0:e.paused)===!1}get isPaused(){var e;return this._state==="PAUSED"||((e=this.element)==null?void 0:e.paused)===!0}get isStopped(){return this._state==="STOPPED"}setAttr(e){this.attr=e}setUrl(e){this.track&&(this.unbindTrackEvents(),this.element&&(this.element.srcObject=null),this.track=null),e!==this.url&&(this.url=e,e!==null&&this.element&&(this.element.crossOrigin="anonymous",this.element.src=e))}play(){return A(this,null,function*(){if(!this.isPlaying)try{this._delayDestroyTimeoutId&&(clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0,this.bindTrackEvents(),this.bindElementEvents()),this.bindAutoPlayEvent(),yield new Promise((e,r)=>{this._playSuccessResolve=e,this.element.play().then(e,r)})}catch(e){let r=He({key:$e.PLAY_FAILED,data:{media:this.kind,error:e}});if(this._log.warn(e),r.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new ae({code:q.PLAY_NOT_ALLOWED,message:r})}})}stop(e=0){var r;this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!vr?this._delayDestroyTimeoutId||((r=this.element)==null||r.remove(),this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(M.ENDED),this._interval>0&&ft.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.src="",this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){var e;this._log.info("pause"),(e=this.element)==null||e.pause(),this._isPausedByUserCall=!0,this instanceof Bt&&fr&&sr>=128&&this.setPoster(this.getVideoFrame())}resume(){return this._isPausedByUserCall=!1,this.doResume()}doResume(){return this._log.info("resume"),this._isPausedByUserCall||this.isPlaying?Promise.resolve():Fm?this.replay():(this.element&&this.track&&fr&&sr>=128&&(this.element.srcObject=new MediaStream([this.track])),this.play().catch(()=>{}))}setMuted(e){this.element&&(this.element.muted=e),this.muted=e}replay(){return this.stop(),this.play().catch(()=>{})}bindElementEvents(){if(this.element){let e=this.handleElementEvent.bind(this);return Ft(this.element,this.element).add(M.PLAYING,e).add(M.ENDED,e).add(M.PAUSE,e).add(M.ERROR,e).add(M.LOADEDDATA,e).add(M.LOADEDMETADATA,e)}}bindTrackEvents(e=this.track){if(e){let r=this.handleTrackEvent.bind(this);di==null||di.create(e,e).add(M.ENDED,r).add(M.MUTE,r).add(M.UNMUTE,r),e.readyState===M.ENDED&&this.handleTrackEvent({type:M.ENDED}),e.muted&&this.handleTrackEvent({type:M.MUTE})}}bindAutoPlayEvent(){U.on(B.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&St(e)}unbindEvents(){this.element&&St(this.element),this.unbindTrackEvents(),U.off(B.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case M.PLAYING:bo()||(this.isInAutoPlayFailedState=!1),this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(M.PLAYING),this._interval&&(ft.clearTask(this._interval),this._interval=-1);break;case M.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(M.ENDED);break;case M.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(M.PAUSE),ot&&(this._interval=ft.run("timeout",()=>{this.element&&this._state==="PAUSED"&&this.doResume()},{delay:3e3}));break;case M.ERROR:if(this.element&&this.element.error){this.handlePaused(M.ERROR);let{code:o,message:s}=this.element.error;this._log.error(`${this.kind} ${this._log.isLocal?"local":"remote"} MediaError code: ${o} message: ${s} userAgent: ${navigator.userAgent}`),je.uploadEvent({log:`stat-${this.kind}-${Ar.PLAYER_ERROR}-${o}-${navigator.userAgent}`,error:this.element.error}),Pm||xa?this.emit(Ge.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case M.LOADEDDATA:this.kind===M.VIDEO&&this.emit(Ge.LOADED_DATA);break;case M.LOADEDMETADATA:this.kind===M.VIDEO&&this.emit(Ge.LOADED_META_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),je.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),J.addSuccessEvent({key:this.kind===M.AUDIO?506700:516700})}).catch(()=>{var r;this._log.error("replayByRecreateMediaStream failed"),je.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),J.addFailedEvent({key:this.kind===M.AUDIO?506700:516700,error:(r=this.element)==null?void 0:r.error}),this.emit(Ge.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((r,o)=>{$r(e).then(()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var s,n,a;this._log.warn(`element onerror ${(n=(s=this.element)==null?void 0:s.error)==null?void 0:n.code} fired after recreated mediaStream`),o((a=this.element)==null?void 0:a.error)}),$r(5e3).then(()=>{var s,n;(!this.isPlaying||(s=this.element)!=null&&s.error)&&o((n=this.element)==null?void 0:n.error),r()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(e){return A(this,null,function*(){switch(e.type){case M.ENDED:this.handleStopped(M.ENDED);break;case M.MUTE:this.handlePaused(M.MUTE);break;case M.UNMUTE:this.mode>0?this.handlePlaying(this.mode.toString()):this.element&&(this.element.paused&&(this._log.warn("track unmuted and element is paused, resume"),yield this.doResume()),!this.element.paused&&this._isElementPlayingFired&&this.handlePlaying(M.UNMUTE));break}})}handlePlaying(e){var r;return this._log.debug("handlePlaying",e),(r=this._playSuccessResolve)==null||r.call(this,e),e}handlePaused(e){return this._log.debug("handlePaused",e),e}handleStopped(e){return this._log.debug("handleStopped",e),e}getElement(){return this.element}};m(Jr,"PlayerEvent",Ge),Z([Is({settings:{retries:2,timeout:0},onError(e,r,o,s){s[0]=(s[0]||1e3)+1e3,r()}})],Jr.prototype,"doReplayByRecreateMediaStream",1),Z([et([],"PLAYING",{sync:!0,success(e){this.emit(Ge.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}})],Jr.prototype,"handlePlaying",1),Z([et("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(e){this.emit(Ge.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}})],Jr.prototype,"handlePaused",1),Z([et([],"STOPPED",{sync:!0,success(e){this.emit(Ge.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}})],Jr.prototype,"handleStopped",1);var Wi="trtc_autoplay",Ch=`${Wi}_mask`,tc=`${Wi}_wrapper`,EE=`${Wi}_header`,Nh=`${Wi}_content`,Su=`${Wi}_action_wrapper`,Dh=`${Wi}_question`,wh=`${Wi}_collapse`,yu=`${Wi}_action_confirm`,_E=`${Wi}_detail`,TE="#2473E8",xh="dialog",ny=`${xh}-show`,ay=`${xh}-1`,cy=`${xh}-2`,IE=!1,Oh=!1,bo=()=>Oh,yE=`${ir}/${Fr()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,SE=`<br><a href='${yE}' target='_blank'>${Fr()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,dy=`${Fr()?`\u6D4F\u89C8\u5668\u81EA\u52A8\u64AD\u653E\u7B56\u7565\uFF1A\u5728\u7528\u6237\u4E0E\u9875\u9762\u4EA7\u751F\u4EA4\u4E92\uFF08\u70B9\u51FB\u3001\u89E6\u6478\uFF09\u4E4B\u524D\uFF0C\u6D4F\u89C8\u5668\u7981\u6B62\u64AD\u653E\u6709\u58F0\u5A92\u4F53\u3002\u8BE5\u5F39\u7A97\u7528\u4E8E\u5E2E\u52A9\u7528\u6237\u6062\u590D\u97F3\u89C6\u9891\u64AD\u653E\u3002${SE}`:`Autoplay Policy: Before user interacts with the web page (clicking, touching), page will not be allowed to play media with sound. This Dialog is used to help users resume playback. ${SE}`}`,Mh=class{constructor(){m(this,"content","\u97F3\u89C6\u9891\u64AD\u653E\u88AB\u6D4F\u89C8\u5668\u62E6\u622A\uFF0C\u8BF7\u70B9\u51FB\u201C\u6062\u590D\u64AD\u653E\u201D\u3002");m(this,"_dialogNode",null);m(this,"_bodyPosition","");m(this,"_showDetail",!1);m(this,"_isCollapseClicked",!1);m(this,"_isQuestionClicked",!1);if(Fr()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!IE){let t=document.createElement("style");t.innerHTML=`.${Ch}{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.5);z-index:1500;}.${Ch} div:not(.${Su}){display:block !important;}.${tc}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${tc} a{color:${TE};}.${EE}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${Nh}{margin:8px 0;}.${Su}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${wh}{margin-right:auto;cursor:pointer}.${Dh}{height:100%;line-height:16px;cursor:pointer;}.${yu}{margin-left:8px;color:#fff;background:${TE};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${yu}:hover{opacity:0.9;}.${wh},.${yu},.${Nh},.${Dh}{font-size:14px;}@media screen and (max-width:750px){.${tc}{width:80vw;}}`,document.head.appendChild(t),IE=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${Ch}"><div class='${tc}'><div class='${EE}'>${location.host}</div><div class='${Nh}'>${this.content}</div><div class='${_E}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${dy}</div><div class='${Su}'></div></div></div>`.trim();let e=document.createElement("button");e.className=yu,e.innerText=Fr()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=Dh,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
26
26
  <svg class="icon" width="18" height="18" p-id="2030" t="1639646523624" version="1.1" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
27
27
  <path d="m464 784.35c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z" p-id="2031"/>
28
28
  <path d="m512 960c-247.04 0-448-200.96-448-448s200.96-448 448-448 448 200.96 448 448-200.96 448-448 448zm0-831.71c-211.58 0-383.71 172.13-383.71 383.71 0 211.55 172.13 383.71 383.71 383.71 211.55 0 383.71-172.16 383.71-383.71 0-211.58-172.16-383.71-383.71-383.71z" p-id="2032"/>
29
29
  <path d="m512 673.7c-17.665 0-32.001-14.336-32.001-31.999v-54.112c0-52.353 40-92.352 75.328-127.65 25.887-25.92 52.672-52.672 52.672-74.017 0-53.343-43.072-96.735-95.999-96.735-53.823 0-95.999 41.536-95.999 94.559 0 17.665-14.336 31.999-32.001 31.999s-32.001-14.336-32.001-31.999c0-87.424 71.775-158.56 160-158.56s160 72.095 160 160.74c0 47.904-36.32 84.192-71.424 119.3-27.84 27.776-56.576 56.512-56.576 82.336v54.112c0 17.665-14.336 32.032-32.001 32.032z" p-id="2033"/>
30
30
  </svg>
31
- `,r.onclick=this.onQuestionClick.bind(this);let o=document.createElement("div");o.className=wh,o.innerText=`${Fr()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,n=s.querySelector(`.${Iu}`);return n.appendChild(o),n.appendChild(r),n.appendChild(e),s}addDiaLog(){bo()||(Oh=!0,this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${tc}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",F.info("show autoplay dialog"),je.uploadEvent({log:ay}))}deleteDialog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null,Oh=!1)}onConfirm(){F.warn("confirm clicked, try resume stream"),U.emit(B.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDialog()}onCollapseClick(){let t=this._dialogNode.querySelector(`.${_E}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||je.uploadEvent({log:cy}),this._isCollapseClicked=!0}onQuestionClick(){window.open(yE,"_blank"),this._isQuestionClicked||je.uploadEvent({log:dy}),this._isQuestionClicked=!0}},rc=null;function Dn(){rc||(rc=new Mh)}function AE(){rc&&(rc.deleteDialog(),rc=null)}var Bt=class extends zr{constructor(e){super(e,M.VIDEO);m(this,"stat",{});m(this,"_calculateTimeout",-1);m(this,"viewMirror",!1);m(this,"objectFit");m(this,"container");m(this,"canvas");m(this,"shouldRenderAlpha",!1);m(this,"_preSize",{width:0,height:0});this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,O(e.viewMirror)||(this.viewMirror=e.viewMirror),O(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}get isPlaying(){var e;return this._state!=="PLAYING"||this.element&&this.element.paused?!1:((e=this.track)==null?void 0:e.readyState)==="live"&&!this.track.muted}initializeElement(){var r;let e=document.createElement(M.VIDEO);this.track&&this.mode!==2&&(e.srcObject=new MediaStream([this.track])),e.muted=!0,e.setAttribute("id",`video_${this.id}`),e.setAttribute("style",this.styleAttribute),this.canvas&&this.canvas.setAttribute("style",this.styleAttribute),e.setAttribute("autoplay","autoplay"),e.setAttribute("playsinline","playsinline"),this.element=e,nt&&(e.poster="noposter"),(r=this.container)==null||r.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e=`width: 100%; height: 100%; object-fit: ${this.objectFit};${this.shouldRenderAlpha?"":"background-color: black"};`;return this.viewMirror&&(e+="transform: scaleX(-1);"),e}setContainer(e){var r;this.container=e,this.track&&this.elementToRender&&((r=this.container)==null||r.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(M.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(M.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent).add(M.RESIZE,this.handleElementEvent)}handleTrackEvent(e){var r;return e.type===M.MUTE&&((r=this.stat)!=null&&r.fps)&&(this.stat.fps=0),super.handleTrackEvent(e)}handleElementEvent(e){var o,s,n,a,d,l,p,f;if(this.mode===2)return;super.handleElementEvent(e);let r=e.type;if(r===M.PAUSE&&(this.container&&document.getElementById(this.container.id)||this._log.warn(`${this.kind} player has been remove, element ID: ${(o=this.container)==null?void 0:o.id}`),this.container&&this.container!==document.getElementById(this.container.id)&&(this._pausedRetryCount=ts,this._log.info(`view container ${(s=this.container)==null?void 0:s.id} is recreated`)),this._pausedRetryCount>0&&!bo()&&!this._isPausedByUserCall&&(this._log.info(`[${ts-this._pausedRetryCount+1}/${ts}] ${this.kind} player auto resume when paused`),this.doResume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let g=this.element.style.transform;r===M.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=g.replace("scaleX(-1)",""):r===M.LEAVE_PICTURE_IN_PICTURE&&!g.includes("scaleX")&&(this.element.style.transform=`${g} scaleX(-1)`)}r===M.RESIZE&&(this._preSize.height!==((n=this.element)==null?void 0:n.videoHeight)||this._preSize.width!==((a=this.element)==null?void 0:a.videoWidth))&&(this._log.info(`video size changed to ${(d=this.element)==null?void 0:d.videoWidth}x${(l=this.element)==null?void 0:l.videoHeight}`),this._preSize.height=((p=this.element)==null?void 0:p.videoHeight)||0,this._preSize.width=((f=this.element)==null?void 0:f.videoWidth)||0,this.emit(Ge.RESIZE,{newWidth:this._preSize.width,newHeight:this._preSize.height}))}setCanvas(e,r=1){var o,s,n,a;this.canvas!==e&&((o=this.canvas)==null||o.remove(),e==null||e.setAttribute("style",this.styleAttribute),this.canvas=e,this.mode=e?r:0,this.mode===2&&this.setTrack(e.captureStream().getVideoTracks()[0]),e?((s=this.element)==null||s.remove(),(n=this.container)==null||n.appendChild(e)):this.element&&((a=this.container)==null||a.appendChild(this.element)))}setAttr(e){let r=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},e);r.style=Object.assign({width:"100%",height:"100%"},r.style),super.setAttr(r)}get mirror(){return this.viewMirror}setRect(e,r){this.elementToRender&&(this.elementToRender.style.width=`${e}px`,this.elementToRender.style.height=`${r}px`)}setViewMirror(e){this.elementToRender&&(this.elementToRender.style.transform=e?"scaleX(-1)":""),this.viewMirror=e}setObjectFit(e){this.elementToRender&&(this.elementToRender.style.objectFit=`${e}`),this.objectFit=e}setPoster(e){this.element&&(this.element.poster=e)}stop(e=0){var r;super.stop(e),(r=this.canvas)==null||r.remove()}play(){return this.element?this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender):this.initializeElement(),this.mode===2?Promise.resolve():super.play()}get elementToRender(){return this.canvas||this.element}setTrack(e){e!==this.track&&(this.unbindTrackEvents(),this.track=e,this.emit(Ge.MEDIA_TRACK_CHANGED,e),e!==null&&(this.bindTrackEvents(),this.element&&this.mode!==2&&(this.element.srcObject=new MediaStream([e]),this.element.remove()),this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender)))}getVideoFrame(){if(this.canvas)return this.canvas.toDataURL("image/png");if(!this.element)return"";let e=document.createElement("canvas");return e.width=this.element.videoWidth,e.height=this.element.videoHeight,e.getContext("2d").drawImage(this.element,0,0),e.toDataURL("image/png")}getElement(){return this.element}calculateStat(){try{if(qr()&&this.element&&this._calculateTimeout<0){let e=0,r=null,o=(s,n)=>{this.stat.width=n.width,this.stat.height=n.height,r&&(this.stat.fps=Math.round((n.presentedFrames-r.presentedFrames)/(s-e)*1e3)),e=s,r=n,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var a;return(a=this.element)==null?void 0:a.requestVideoFrameCallback(o)},2e3))};this.element.requestVideoFrameCallback(o)}}catch(e){this._log.warn("init stat failed",e)}}};function Gi(i,t){return A(this,null,function*(){if(!i.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield i.audioWorklet.addModule(t),F.info("worklet addModule success")}catch(e){throw F.info(`worklet addModule catch error. ${e.message}`),e}})}var ic;typeof AudioContext!="undefined"?ic=AudioContext:typeof webkitAudioContext!="undefined"?ic=webkitAudioContext:typeof mozAudioContext!="undefined"&&(ic=mozAudioContext);var Uh=1500,$t,bE=-1,yu=0,oc=-1,kh=!1,RE=0,vE=-1,CE=-1;NE();function NE(){try{if($t)return;$t=new ic({sampleRate:48e3}),$t.onstatechange=()=>{F.info(`context state: ${$t.state}${$t.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),wn()},clearTimeout(bE)}catch(i){F.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof ic}`),bE=setTimeout(NE,1e3)}}var wn=()=>{$t.state==="suspended"?(yu=_e(),ly(),Ro(),document.addEventListener("click",wn)):$t.state==="interrupted"?Ro():(yu&&(J.addNumber({key:507800,value:_e()-yu,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),yu=0),my(),document.removeEventListener("visibilitychange",wn),document.removeEventListener("click",wn))},Ph=0,Lh=-1;function Ro(){return new Promise((i,t)=>{if($t.state==="running")return i();Date.now()-Ph<1e3?(clearTimeout(Lh),Lh=setTimeout(()=>{Ph=Date.now(),$t.resume().then(i,t)},1e3)):(clearTimeout(Lh),Ph=Date.now(),$t.resume().then(i,t))}).catch(i=>{F.warn(`context resume failed: ${i}`),document.addEventListener("visibilitychange",wn)})}document.addEventListener("click",wn);function ly(){oc===-1&&(oc=setTimeout(()=>{$t.state==="suspended"&&(kh=!0,U.emit("155",{isSuspended:!0}))},Uh))}function my(){oc!==-1&&(clearTimeout(oc),oc=-1,kh&&(kh=!1,U.emit("155",{isSuspended:!1})))}function DE(){if(!ot||CE!==-1)return;let i=()=>{_e()-RE<500||($t&&$t.state==="running"&&$t.currentTime===vE&&(F.warn("context is fake running, auto resume"),$t.suspend().catch(t=>{F.warn(`context suspend failed: ${t}`)})),vE=$t.currentTime,RE=_e())};CE=setInterval(()=>{i()},2e3),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&i()})}var qe=i=>$t;var yt=class{constructor(t){this.name=t;m(this,"node");m(this,"node2");m(this,"pre",new Set);m(this,"next",new Set);m(this,"context");m(this,"connectedNodes",new Set);m(this,"nextInputChannelMap",new Map);m(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(t){this._channelCount=t,this.setChannelCount(this.node,t),this.setChannelCount(this.node2,t),this.next.forEach(e=>e.channelCount=t)}setChannelCount(t,e){!t||t instanceof ScriptProcessorNode||(t.channelCountMode="explicit",t.channelCount=e||this.channelCount||1)}setContext(t){this.context=t,this.node&&t.addMixWeight()}removeContext(){var t;this.node&&((t=this.context)==null||t.reduceMixWeight()),delete this.context}replaceNode(t){var e;if(t!==this.node)try{this.node?this._disconnect():(e=this.context)==null||e.addMixWeight(),this.node=t,this.setChannelCount(this.node),this.preNodeReconnect(),this.reconnect()}catch(r){F.error(r)}}setNode(t,e){var r;if(!this.node)try{(r=this.context)==null||r.addMixWeight(),this.node=t,this.setChannelCount(this.node),e&&(this.node2=e,this.setChannelCount(this.node2)),this.preNodeReconnect(),this.reconnect(),J.addSuccessEvent({key:502701})}catch(o){F.error(o),J.addFailedEvent({key:502701,error:o})}}deleteNode(){var t;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,(t=this.context)==null||t.reduceMixWeight(),this.preNodeReconnect(),J.addSuccessEvent({key:502702})}catch(e){F.error(e),J.addFailedEvent({key:502702,error:e})}}preNodeReconnect(){this.pre.forEach(t=>{t.node?t.reconnect():t.preNodeReconnect()})}connectNext(t){this.next.forEach(e=>{let r=this.nextInputChannelMap.get(e);t._connect(e.node,r)||e.connectNext(t)})}_connect(t,e=0){return!this.node||!t?!1:((this.node2||this.node).connect(t,0,e),this.connectedNodes.add(t),!0)}_disconnect(){this.connectedNodes.forEach(t=>{var e;return(e=this.node2||this.node)==null?void 0:e.disconnect(t)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(t,e=0){return this.next.add(t),t.pre.add(this),this.nextInputChannelMap.set(t,e),t}},Au=class extends yt{constructor(e=256){super();this.fftSize=e;m(this,"dataArray",new Uint8Array(0))}setNode(e){e.fftSize=this.fftSize,this.dataArray=new Uint8Array(e.frequencyBinCount),super.setNode(e)}getByteTimeDomainData(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),this.dataArray}get level(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),Math.max(...this.dataArray)/128-1}get timeDomainPathData(){let e=this.getByteTimeDomainData(),r=1,o=0,s=0,n=`M${o},${s}`;for(let a=0;a<e.length;a++)s=e[a]/128*100/2,n+=`L${o},${s}`,o+=r;return n}},sc=class{constructor(){m(this,"source",new yt);m(this,"gain",new yt);m(this,"destination",new yt)}get volume(){var t;return((t=this.gain.node)==null?void 0:t.gain.value)||1}setVolume(t){if(t===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(qe().createGain()),this.gain.node.gain.value=t}replaceSource(t){let e=nc(t);e&&this.source.replaceNode(e)}get track(){var t;return(t=this.stream)==null?void 0:t.getAudioTracks()[0]}get stream(){var t;return(t=this.destination.node)==null?void 0:t.stream}},On=class extends sc{constructor(e){super();this.context=e;m(this,"aec",new yt("aec"));m(this,"mixNode",new yt("mixNode"));m(this,"silentNode",new yt("silentNode"));m(this,"denoiser",new yt("denoiser"));m(this,"voiceChanger",new yt("voiceChanger"));this.source.pipeTo(this.aec).pipeTo(this.denoiser).pipeTo(this.voiceChanger).pipeTo(this.gain).pipeTo(this.destination),this.silentNode.pipeTo(this.mixNode).pipeTo(this.aec,1)}get isProcessEnabled(){return this.aec.node||this.denoiser.node||this.voiceChanger.node||this.gain.node}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.aec.setContext(this.context),this.silentNode.setContext(this.context),this.mixNode.setContext(this.context),this.denoiser.setContext(this.context),this.voiceChanger.setContext(this.context),this.gain.setContext(this.context),this.context.inputs.add(this))}disconnect(){this.context.inputs.has(this)&&(this.destination.deleteNode(),this.source.removeContext(),this.aec.removeContext(),this.silentNode.removeContext(),this.mixNode.removeContext(),this.denoiser.removeContext(),this.voiceChanger.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.aec.deleteNode(),this.silentNode.deleteNode(),this.mixNode.deleteNode(),this.denoiser.deleteNode(),this.voiceChanger.deleteNode(),this.source.deleteNode(),this.disconnect()}setVolume(e){if(e===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(this.context.audioContext.createGain()),this.gain.node.gain.value=e}},bu=class{constructor(){m(this,"audioContext",qe("audio-mixer"));m(this,"destination",this.audioContext.createMediaStreamDestination());m(this,"inputs",new Set);m(this,"mixWeight",0);this.destination.channelCount=1}addMixWeight(t=1){this.mixWeight+=t,this.mixWeight-1===t+1>>1&&this.mixOnChange()}reduceMixWeight(t=1){this.addMixWeight(-t)}close(){this.inputs.forEach(t=>t.remove())}get mixTrack(){return this.destination.stream.getAudioTracks()[0]}},wE=new WeakMap;function nc(i){try{let t=wE.get(i);if(t)return t;let e=qe();if(i instanceof HTMLAudioElement)t=e.createMediaElementSource(i);else if(i instanceof MediaStreamTrack)t=e.createMediaStreamSource(new MediaStream([i]));else return i;return wE.set(i,t),t}catch(t){if(lt&&t instanceof Error&&t.name==="NotSupportedError")F.warn(t);else throw t}}var Er=class Er{constructor(t){m(this,"_volume",0);m(this,"_volumeDb",0);m(this,"_log");m(this,"_scriptProcessorNode",null);m(this,"_audioWorkletNode",null);m(this,"_interval",200);m(this,"ready",this.preload());let{log:e}=t;this._log=e,U.on(B.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-Er.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!Er.workletReady){let t='class VolumeMeterWorklet extends AudioWorkletProcessor{constructor(){super(),this.volume=0,this.intervalTime=200,this.tick=200,this.isStop=!1,this.cache=[],this.sentFirstInfo1=!1,this.unmute=!1,this.port.onmessage=t=>{var e=t.data;switch(e.name){case"chunk":this.cache.push(...e.data),this.sentFirstInfo1||(this.port.postMessage({cl:e.data.length}),this.sentFirstInfo1=!0);break;case"setIntervalTime":this.intervalTime=e.intervalTime;break;case"unmute":this.unmute=!0;break;case"stop":this.isStop=!0}}}process(t,s){t=t[0],s=s[0];if(t||s){if(this.isStop)return!1;var i=s&&s[0]?s[0].length:0,h=this.cache.length,a=(i<h?(s[0].set(this.cache.slice(0,i)),this.cache=this.cache.slice(i)):this.unmute&&s[0].set(t[0]),(i<h?s:t)[0]);if(a){let e=0;for(let t=0;t<a.length;++t)e=Math.max(Math.abs(a[t]),e);s=a.reduce((t,e)=>t+e*e,0)/a.length;this.volume=e,this.tick-=a.length,this.tick<0&&(this.tick+=this.intervalTime/1e3*sampleRate,this.port.postMessage({volume:this.volume,volumeDb:Math.max(10*Math.log10(s)+100,0)/100,cacheLen:h,outputLen:i}))}}return!0}}registerProcessor("volume-meter",VolumeMeterWorklet);';Er.workletReady=Gi(Er.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return Er.workletReady.then(()=>this.initAudioWorklet()).catch(t=>(this._log.error(`volumeMeter preload error: ${t}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(Er.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=e=>{Er.lastMessageTime=Date.now(),this._volume=e.data.volume||0,this._volumeDb=e.data.volumeDb||0,!t&&e.data.cacheLen&&e.data.outputLen&&(this._log.warn("worklet play success"),t=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(t){this._log.error(`volumeMeter init audio worklet error: ${t}`),je.logFailedEvent({userId:this._log.userId,eventType:Ar.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=qe("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{Er.lastMessageTime=Date.now();let e=t.inputBuffer.getChannelData(0),r=0;for(let o=0;o<e.length;++o)r+=e[o]*e[o];this._volume=Math.sqrt(r/e.length)||0}}catch(t){this._log.error(`volumeMeter init script processor error: ${t}`)}}destroy(){this._scriptProcessorNode&&(this._scriptProcessorNode.onaudioprocess=null),this._audioWorkletNode&&(this._audioWorkletNode.port.postMessage({name:"stop"}),this._audioWorkletNode.port.onmessage=null),this._audioWorkletNode=null,this._scriptProcessorNode=null,U.off(B.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}getVolumeDb(){return Math.floor(this._volumeDb*100)}handleAudioLevelInterval(t){var r;let{interval:e}=t;this._interval=e,(r=this._audioWorkletNode)==null||r.port.postMessage({name:"setIntervalTime",intervalTime:e})}};m(Er,"lastMessageTime",0),m(Er,"audioContext",qe("volume-meter")),m(Er,"workletReady");var Ru=Er,ac=class extends yt{constructor(e){super();m(this,"_volumeMeter");this._volumeMeter=new Ru(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return A(this,null,function*(){yield this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)})}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}getVolumeDb(){return this._volumeMeter.getVolumeDb()}write(e){if(this.node){let r=e.allocationSize({planeIndex:0}),o=new Float32Array(r>>2);e.copyTo(o,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:o},[o.buffer]),e.close()}}},vu=Ru;var PE=Ai(ki(),1);var ME=i=>t=>t.deviceId===i;var cc=class{constructor(t,e){m(this,"kind");m(this,"type");m(this,"devices",[]);this.kind=t,this.type=e}update(t,e){let r=t.filter(o=>o.kind===`${this.kind}${this.type.toLocaleLowerCase()}`);if(this.devices.length===1&&xn(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(ME(o.deviceId))){let s=`${this.kind}${this.type}Added`;F.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}}),this.devices.forEach(o=>{if(o.deviceId&&!r.find(ME(o.deviceId))){let s=`${this.kind}${this.type}Removed`;F.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}})),this.devices=r}hasDevice(t){return!!this.devices.find(e=>e.deviceId===t)}},Vh=class extends PE.EventEmitter{constructor(){super();m(this,"audioInputs",new cc(M.AUDIO,"Input"));m(this,"videoInputs",new cc(M.VIDEO,"Input"));m(this,"audioOutputs",new cc(M.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||ft.run("interval",()=>{this.update()},{delay:1e4}))}init(){Mn().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return A(this,arguments,function*(e=0){let r=yield Mn(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}hasBlueTooth(){var r;if(((r=qe())==null?void 0:r.outputLatency)*1e3>150)return!0;let e=["bluetooth","air","wireless","bt","tws","buds","headset","headphone"];return this.audioOutputs.devices.some(o=>e.some(s=>o.label.toLowerCase().includes(s)))||this.audioInputs.devices.some(o=>e.some(s=>o.label.toLowerCase().includes(s)))}},at=ha||Ks?null:new Vh;function xn(i){return i.deviceId===i.groupId&&i.groupId===""}function Mn(){return A(this,arguments,function*(i=0){if(Hi()||!pu())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{xn(r)&&(r.kind===M.AUDIO_INPUT?e.audio=!0:r.kind===M.VIDEO_INPUT&&(e.video=!0))}),i===2&&(e.audio=!1),i===1&&(e.video=!1),e.audio||e.video){let r;try{r=yield navigator.mediaDevices.getUserMedia(e),e.audio&&Ro()}catch(o){F.debug("capture before getDevices failed: ",o)}t=yield navigator.mediaDevices.enumerateDevices(),r==null||r.getTracks().forEach(o=>o.stop())}}return t.map((e,r)=>{let o={kind:e.kind,deviceId:e.deviceId,groupId:e.groupId,label:e.label||`${e.kind}_${r}`};return e.deviceId.length>0&&Fh.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function ar(i=!1){return at.update(i?1:0).then(t=>t.audioInputs.devices)}function cr(i=!1){return at.update(i?2:0).then(t=>t.videoInputs.devices)}var xE=!1;function LE(){return A(this,null,function*(){try{xE||(xE=!0,F.info(`speakers:${(yield vo()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function vo(i=!1){return A(this,null,function*(){return(ot||_t)&&(i=!1),at.update(i?1:0).then(t=>t.audioOutputs.devices)})}var Fh=new Set;function kE(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("camera")||t.includes("webcam"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${M.VIDEO_INPUT}`;return!!Fh.has(r)}function UE(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("mic")||t.includes("\u9EA6\u514B\u98CE"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${M.AUDIO_INPUT}`;return!!Fh.has(r)}function Bh(i,t){return A(this,null,function*(){let r=(yield ar()).find(o=>o.deviceId===rs);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function VE(s){return A(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===M.AUDIO&&i===rs?yield Bh(e,r):!0})}var Cu,$h=class extends sc{constructor(e){super();this.log=e;m(this,"volumeMeter");m(this,"volumeMeterAfter3A");m(this,"volumeDestination");m(this,"analyser",new Au);this.volumeMeter=new ac({log:this.log}),this.volumeMeterAfter3A=new ac({log:this.log}),this.volumeDestination=new yt,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},Pn=class i extends zr{constructor(e){super(e,M.AUDIO);m(this,"_outputDeviceId");m(this,"_volume",1);m(this,"_destination",qe("player").createMediaStreamDestination());m(this,"pipeline");m(this,"volumeMeterMode","worklet");m(this,"enableVolumeControlInIOS");this.enableVolumeControlInIOS=e.enableVolumeControlInIOS,this.mode=0,e.url&&(this.url=e.url),this.pipeline=new $h(this._log)}get duration(){var e;return Math.floor((((e=this.element)==null?void 0:e.duration)||0)*1e3)}get currentTime(){var e;return Math.floor((((e=this.element)==null?void 0:e.currentTime)||0)*1e3)}set currentTime(e){this.element&&(this.element.currentTime=e/1e3)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if((Cr==="15.2"||Cr==="15.3"||Cr==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let o=Cu||new Audio;o.setAttribute("autoplay","autoplay"),o.srcObject=this.getMediaStream(),o.muted=this.muted,this.url&&(o.crossOrigin="anonymous",o.src=this.url),this.element=o,Ve(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===Cu&&(Cu=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(Ge.TIME_UPDATE,this.currentTime)),this.bindElementEvents()}play(e){return A(this,null,function*(){if(!(!this.track&&!this.url))return!this.pipeline.source.node&&this.track&&this.pipeline.replaceSource(this.track),this.element||this.initializeElement(e==null?void 0:e.volume),this._outputDeviceId&&(yield this.setSinkId(this._outputDeviceId)),this.volumeMeterMode==="worklet"?(this.pipeline.volumeMeter.init(),this.pipeline.volumeMeterAfter3A.init()):this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(qe("player").createAnalyser()),LE(),Ut(i.prototype,this,"play").call(this)})}stop(e=0){this.pipeline.destroy(),super.stop(e)}setVolume(e){this._volume=e,this.element&&(this.element.volume=e)}setSinkId(e){return A(this,null,function*(){var r,o;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield(o=(r=this.element).setSinkId)==null?void 0:o.call(r,e))})}get useDestination(){return!!this.pipeline.stream}setLoop(e){this.element&&(this.element.loop=e)}getAudioLevel(){return this.pipeline.volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this.pipeline.volumeMeter.getInternalAudioLevel()}getInternalAudioLevelAfter3A(){return this.pipeline.volumeMeterAfter3A.getInternalAudioLevel()}},Nu=class extends Pn{setTrack(t){this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(Ge.MEDIA_TRACK_CHANGED,t),t&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([t]))))}},Du=class extends Pn{constructor(e){super(e);m(this,"_sourceElement");m(this,"_output",new yt);this.pipeline.source.pipeTo(this.pipeline.gain),this.pipeline.gain.pipeTo(this.pipeline.volumeMeter).pipeTo(this._output),this.pipeline.gain.pipeTo(this.pipeline.destination)}setOutput(){this.mode=1,this._output.setNode(qe("player").destination)}write(e){this.pipeline.volumeMeter.write(e)}setTrack(e){var r,o,s;((o=(r=this.element)==null?void 0:r.error)==null?void 0:o.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(Ge.MEDIA_TRACK_CHANGED,e),e?(this.bindTrackEvents(),this._sourceElement?this._sourceElement.srcObject=new MediaStream([e]):!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([e])),this.pipeline.source.channelCount=((s=e.getSettings())==null?void 0:s.channelCount)||1,this.pipeline.replaceSource(e)):this.pipeline.source.deleteNode())}setVolume(e){if(this._volume=e,this.useDestination)this.pipeline.setVolume(e),this._log.info(`set pipeline volume: ${e}`);else if(e<=1&&!ot)this.element?(this._log.info(`set element volume: ${e}`),this.element.volume=e):this._log.info("set element volume: no element");else{if(ot)if(this.enableVolumeControlInIOS)DE();else return;if(lt&&!this.pipeline.source.node){this._log.warn("set pipeline volume failed: no source node");return}this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),St(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play())}}stop(e=0){this.pipeline.destroy();let r=this._sourceElement||this.element;r&&vr&&(Cu=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var Ss=class extends ue{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:n=o===1?Du:Bt}){var a;super();m(this,"id",Va());m(this,"userId","");m(this,"isRemote");m(this,"mediaType");m(this,"room");m(this,"user");m(this,"_log");m(this,"_inputTrack");m(this,"_outputTrack");m(this,"isPlayCalled");m(this,"container",null);m(this,"player");m(this,"subVideoPlayerMap");m(this,"muted",!1);m(this,"abortCtrl");m(this,"objectFit","cover");m(this,"mirror");m(this,"rotation");m(this,"isScreen",!1);m(this,"manager");m(this,"trackSettings");m(this,"isFirstVideoFrameEmitted",!1);this.userId=e||"",this.mediaType=o,this._log=F.createLogger({parent:s==null?void 0:s.getLogger(),id:`${this.kind[0]}t`,userId:(a=s||this.room)==null?void 0:a.userId,remoteUserId:this instanceof Jr?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof Jr}),this.player=new n({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log,enableVolumeControlInIOS:s==null?void 0:s.enableVolumeControlInIOS}),this.player.on(Ge.PLAYER_STATE_CHANGED,d=>{if(U.emit(B.PLAYER_STATE_CHANGED,Y({track:this},d)),this.emit("player-state-changed",d),d.state==="PLAYING"&&this.room){let l=!0;for(let{remoteAudioTrack:p,remoteVideoTrack:f,remoteAuxiliaryTrack:g}of[...this.room.remotePublishedUserMap.values()])if(p.isAvailable&&!p.player.isPlaying||f.isAvailable&&!f.player.isPlaying||g.isAvailable&&!g.player.isPlaying){l=!1;break}l&&bo()&&AE()}}),this.kind===M.VIDEO&&(this.player.on(Ge.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(Ge.LOADED_DATA),U.emit(B.VIDEO_LOADED_DATA,{track:this})}),this.player.on(Ge.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(Ge.LOADED_META_DATA)}),this.player.on(Ge.MEDIA_TRACK_CHANGED,d=>{var l;(l=this.subVideoPlayerMap)==null||l.forEach(p=>p.setTrack(d))}),this.player.on(Ge.RESIZE,d=>{this.emitFirstVideoFrameEvent(Ge.RESIZE),this.emit("video-size-changed",Y({userId:this.userId,streamType:this.mediaType===2?"auxiliary":"main"},d))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(Ge.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||F}get kind(){return this.mediaType===1?M.AUDIO:M.VIDEO}get isAudio(){return this.kind===M.AUDIO}get strMediaType(){return this.mediaType===4?M.VIDEO:this.mediaType===2?M.SCREEN:M.AUDIO}get streamType(){return(this.mediaType&2)===0?"main":"auxiliary"}get isMediaTrackActive(){return this.mediaTrack?!this.mediaTrack.muted&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled:!1}play(e,r){return A(this,null,function*(){let o=ut(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(r)}`),r&&!O(r.muted)&&this.setPlayerMute(r.muted),r&&!O(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof Bt&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(this.container=o,this.player.setContainer(o)),ut(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),r)));return}if(r&&!O(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===M.VIDEO)&&this.setPlayerMute(!0),r&&!O(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof Bt&&(this.player.setObjectFit(this.objectFit),r&&!O(r.poster)&&this.player.setPoster(r.poster)),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof Bt&&this.player.setContainer(o)),U.emit(B.PLAY_TRACK_START,{track:this}),!this._outputTrack){this.log.info("play has not mediaTrack, abort");return}this._log.info(`play with options: ${JSON.stringify(r)}`);try{this.player.setTrack(this.playerMediaTrack),yield this.player.play(r),ut(e)&&e.length>1&&(yield this.playSubContainer(e.slice(1),r))}catch(s){throw this.handleAutoPlayFailed(s),s}})}setMirror(e,r){if(this.isScreen||this.kind!==M.VIDEO||O(e)||e===this.mirror)return;this.mirror=e;let o=this.player;r&&(o=r);let s=this.manager;if(Ke(this.mirror)){o.setViewMirror(this.mirror),!this.isRemote&&s&&(s.mirror=!1);return}switch(this.mirror){case"view":{s&&(s.mirror=!1),o.setViewMirror(!0);break}case"publish":{s&&(s.mirror=!0),o.setViewMirror(!0);break}case"both":s&&(s.mirror=!0),o.setViewMirror(!1)}}playSubContainer(e,r){return A(this,null,function*(){if(!this._outputTrack||this.kind===M.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((s,n)=>{var a;e.find(d=>n===d)||(s.stop(),(a=this.subVideoPlayerMap)==null||a.delete(n))});for(let[s,n]of e.entries()){let a=this.subVideoPlayerMap.get(n);a?r&&(O(r.objectFit)||a.setObjectFit(r.objectFit)):this.subVideoPlayerMap.set(n,new Bt({id:this.userId||this.id,track:this.playerMediaTrack,container:n,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:`vp-sub${s+1}`})}))}let o=[...this.subVideoPlayerMap.values()];for(let s of o)s.setViewMirror(this.player.mirror),yield s.play()})}setAudioOutput(e){return this.player.setSinkId(e)}setAudioVolume(e){this.player.setVolume(e)}getAudioLevel(){return this.player.getAudioLevel()||0}getInternalAudioLevel(){var e;return((e=this.player)==null?void 0:e.getInternalAudioLevel())||0}stop(e=!1){this.isPlayCalled&&(this.isPlayCalled=!1,this.player&&(this.log.info(`stop ${this.kind} player`),this.player.stop(Nm(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(r=>{r.stop()}),this.container=null)}resume(){return A(this,null,function*(){var e;this.isPlayCalled&&(yield(e=this.player)==null?void 0:e.resume())})}close(){this.log.info("close"),this.isPlayCalled&&this.stop(!0)}setMute(e){this.muted=e,this._inputTrack&&(this._inputTrack.enabled=!e),this._outputTrack&&(this._outputTrack.enabled=!e),this.emit(e?"mute":"unmute",this),U.emit(e?B.TRACK_MUTED:B.TRACK_UNMUTED,{track:this})}setPlayerMute(e){this.player.setMuted(e)}get mediaTrack(){return this._inputTrack||null}get outMediaTrack(){return this._outputTrack||null}get playerMediaTrack(){return this.outMediaTrack}installTrackEvent(e){Ft(e,e).add(M.MUTE,this.onTrackMuted).add(M.UNMUTE,this.onTrackUnmuted).add(M.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===M.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){St(e)}setInputMediaStreamTrack(e){var o;let r=this._inputTrack;if(e!==r)return this._inputTrack=e,this.trackSettings=(o=e.getSettings)==null?void 0:o.call(e),e.enabled=!this.muted,r&&this.uninstallTrackEvent(r),this.installTrackEvent(e),this.emit("input-media-track-changed",e||null,r||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var o;let r=this._outputTrack;e!==r&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",e.label):this.log.info("setOutputMediaStreamTrack",(o=e.getSettings)==null?void 0:o.call(e).deviceId,e.label),this._outputTrack=e,this._inputTrack&&(this._outputTrack.contentHint=this._inputTrack.contentHint,this._outputTrack.enabled=this._inputTrack.enabled),this.updatePlayingState(!!e),this.emit("output-media-track-changed",e))}setMediaType(e){this.mediaType=e}updatePlayingState(e){if(this.isPlayCalled){if(e){if(this.player.setTrack(this.playerMediaTrack),this.player.isStopped){this.player.play().catch(r=>this.handleAutoPlayFailed(r)),this.log.info(`playing state updated, play ${this.kind}`);return}}else if(!this.player.isStopped){this.player.stop(Nm(this)?this.jitterBufferDelay:0),this.log.info(`playing state updated, stop ${this.kind}`);return}}this.log.debug(`updatePlayingState abort ${this.isPlayCalled} ${e} ${this.player.isStopped}`)}handleAutoPlayFailed(e){return A(this,null,function*(){var o;this.log.warn("handleAutoPlayFailed",e);let r=()=>{this.resume().then(()=>{document.removeEventListener("click",r,!0)})};if(this.room&&this.room.enableAutoPlayDialog){if((Oi||Mi)&&(yield Ni(100),(o=this.player)!=null&&o.isPlaying))return;Dn()}else document.addEventListener("click",r,!0);U.once(B.LOCAL_TRACK_CAPTURE_SUCCESS,({track:s})=>{s.kind==="audio"&&bo()&&!this.player.isPlaying&&this.isRemote&&this.isAvailable&&r()}),this.emit("error",e)})}getVideoFrame(){return this.player instanceof Bt?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var n,a,d;if(this.isFirstVideoFrameEmitted)return;let r=(n=this.mediaTrack)==null?void 0:n.getSettings(),o=(r==null?void 0:r.width)||((a=this.player.element)==null?void 0:a.videoWidth)||0,s=(r==null?void 0:r.height)||((d=this.player.element)==null?void 0:d.videoHeight)||0;e===Ge.RESIZE&&!o&&!s||e===Ge.LOADED_META_DATA&&!o&&!s||(e===Ge.LOADED_DATA&&!o&&!s&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,pr(this.rotation)&&([o,s]=[s,o]),this.emit("first-video-frame",{width:o,height:s,streamType:this.streamType,userId:this.isRemote?this.userId:""}))}onTrackMuted(){this._log.warn(`${this.kind} track is unable to provide media output`)}onTrackUnmuted(){this._log.info(`${this.kind} track is able to provide media output`)}onTrackEnded(){this._log.warn(`${this.kind} track ended`)}};Z([et([],ue.INIT,{sync:!0})],Ss.prototype,"close",1);var hy=Object.prototype.hasOwnProperty,{toString:g0}=Object.prototype;function py(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Xt(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(hy.call(i,t))return!1;return!0}}return!1}var dc=py;var fy=function(i){return A(this,null,function*(){let t=Ey(i);F.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];if(t.audio&&(e=yield ar(),F.info(`microphones: ${br(e.map(s=>Ee(Y({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield cr(),F.info(`cameras: ${br(r,{keysToInclude:o})}`),t.video.facingMode==="user"&&!t.video.deviceId)){let n=r.filter(a=>!a.label.includes("infrared")).find(a=>a.label.includes("facing front"));n&&(t.video.deviceId=n.deviceId,F.info(`exclude infrared camera: ${JSON.stringify(t)}`))}try{let s=yield navigator.mediaDevices.getUserMedia(t);return _h&&s.getTracks().forEach(n=>{var d;let a=n.getCapabilities();F.info(`${n.kind} capabilities: ${br(a,{keysToInclude:Sd})}`),!O(i.echoCancellation)&&((d=a.echoCancellation)==null?void 0:d.indexOf(i.echoCancellation))===-1&&F.warn(`Invalid argument for 'echoCancellation'. Expected one of [${JSON.stringify(a.echoCancellation)}], but received '${i.echoCancellation}'`)}),t.audio&&Ro(),s}catch(s){let{message:n}=s;throw s.name==="NotFoundError"&&(i.video&&r&&r.length===0&&(n=He({key:$e.CAMERA_NOT_FOUND})),i.audio&&e&&e.length===0&&(n=He({key:$e.MICROPHONE_NOT_FOUND}))),new ae({code:q.INITIALIZE_FAILED,name:s.name,message:n,constraint:s.constraint})}})},gy=go({retryFunction:fy,settings:{retries:3,timeout:500},onError:({error:i,retry:t,reject:e,retryFuncArgs:r,retriedCount:o})=>{let s=o+1;i.name==="NotReadableError"||i.name==="OverconstrainedError"||i.name==="AbortError"?(s===1?(r[0].video&&(r[0].maxResolution=!1,(!_t||r[0].width*r[0].height<=1920*1080)&&r[0].frameRate&&(r[0].frameRate=r[0].frameRate>10?10:5)),r[0].retryWhenExactFailed&&r[0].useExactDeviceId&&(r[0].useExactDeviceId=!1)):s===2?r[0].useDeviceIdOnly=!0:s===3&&!r[0].useExactDeviceId&&(r[0].useTrueAsConstraint=!0),t()):e(i),r[0].microphoneId&&FE(r[0].microphoneId,!1),r[0].cameraId&&FE(r[0].cameraId,!0)},onRetrying:i=>{F.warn(`getUserMedia NotReadableError observed, retrying [${i}/3]`)},onRetryFailed:i=>{je.logFailedEvent({eventType:Ar.GET_USER_MEDIA_RETRY,error:i})},onRetrySuccess:i=>{je.logSuccessEvent({eventType:Ar.GET_USER_MEDIA_RETRY}),je.uploadEvent({log:`stat-${Ar.GET_USER_MEDIA_RETRY}-success-${i}`})}});function FE(i,t){return A(this,null,function*(){let r=(t?yield cr():yield ar()).find(o=>o.deviceId===i);r&&Xe(r.getCapabilities)&&F.warn(br(r.getCapabilities(),{keysToInclude:Sd}))})}function Ey(i){return{audio:_y(i),video:Ty(i)}}function _y(i){if(!i.audio)return!1;if(i.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:i.sampleRate};return!dc(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:(Ve(i.channelCount)&&(t.channelCount=i.channelCount),(Ke(i.echoCancellation)||i.echoCancellation==="remote-only"||i.echoCancellation==="all")&&(t.echoCancellation=i.echoCancellation),Ke(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),Ke(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),dc(t)?!0:t)}function Ty(i){if(!i.video)return!1;if(i.useTrueAsConstraint)return!0;let{maxResolution:t=!0}=i,e={};return i.cameraId?e.deviceId=i.useExactDeviceId?{exact:i.cameraId}:i.cameraId:i.facingMode&&(e.facingMode=i.facingMode),i.useDeviceIdOnly&&!dc(e)?e:(i.width&&(e.width={ideal:i.width},t&&!lt&&(e.width.max=i.width)),i.height&&(e.height={ideal:i.height},t&&!lt&&(e.height.max=i.height)),lt&&Wr&&i.width&&i.height&&i.width*i.height<352*288&&(e.width=i.width,e.height=i.height),i.frameRate&&(e.frameRate=i.frameRate),dc(e)?!0:e)}var BE=gy;function Co(i){return xe((t,e)=>function(...r){return A(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function $E(i){return xe((t,e)=>function(...r){return A(this,null,function*(){try{return yield t.apply(this,r)}catch(o){i.call(this,o)}})})}function xe(i){return function(t,e,r){return r.value=i(r.value,e),r}}var HE=(()=>{let i=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&F.info(`visibility change: ${document.visibilityState}`),!i&&(document.addEventListener("visibilitychange",()=>{F.info(`visibility change: ${document.visibilityState}`),t=document.visibilityState}),i=!0)}})();var Iy=0,wu=class{constructor(){m(this,"log",F.createLogger({id:`fq${++Iy}`}));m(this,"isRunning",!1);m(this,"queue",[])}get length(){return this.queue.length}get lastQueueItem(){return this.length===0?null:this.queue[this.length-1]}push(t,e=!1){var s,n;let r=Y({},t),o=new Promise((a,d)=>{r.resolve=a,r.reject=d});return r.promise=o,e?this.length<=1?this.queue.push(r):(n=(s=this.lastQueueItem)==null?void 0:s.promise)==null||n.then(r.resolve,r.reject):this.queue.push(r),this.log.debug(`push ${this.length}`),this.isRunning||this.callNext(),o}shift(){let t=this.queue.shift();return this.log.debug(`shift ${this.length}`),t}callNext(){if(this.isRunning||this.length===0)return;this.log.debug("callNext ",this.length);let{fn:t,args:e,context:r,resolve:o,reject:s}=this.queue[0];this.isRunning=!0,t.apply(r,e).then(o,s).finally(()=>{this.isRunning=!1,this.shift(),this.callNext()})}},WE=new WeakMap,GE=new WeakMap;function Ou(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let n=WE.get(this)||new wu;return WE.set(this,n),n.push({fn:o,args:s,context:this},i)},r}}function Mu(i){return function(t,e,r){let o=r.value,s=n=>i(...n);return r.value=function(...n){let a=GE.get(this)||new Map,d=a.get(s(n))||new wu;return a.set(s(n),d),GE.set(this,a),d.push({fn:o,args:n,context:this})},r}}function xu(i,t){return xe((e,r)=>function(...o){let s=i;try{let n=e.apply(this,o),a=_e();return po(n)?n.then(d=>(t?J.addSuccessEvent({key:s,cost:_e()-a}):J.addSuccessEvent({key:s}),d)).catch(d=>{throw J.addFailedEvent({key:s,error:d}),d}):(J.addSuccessEvent({key:s}),n)}catch(n){throw J.addFailedEvent({key:s,error:n}),n}})}var Np={};yi(Np,{Events:()=>gt,Inspect:()=>Nr,LastSink:()=>ys,Sink:()=>fe,Subscribe:()=>As,TimeoutError:()=>uc,audit:()=>iA,bindCallback:()=>Hy,bindNodeCallback:()=>Wy,buffer:()=>Dy,bufferCount:()=>Ny,bufferTime:()=>yA,call:()=>jE,catchError:()=>bp,combineLatest:()=>zE,concat:()=>Ay,concatMap:()=>pA,concatMapTo:()=>fA,count:()=>qy,create:()=>ke,debounce:()=>oA,debounceTime:()=>sA,defer:()=>JE,delay:()=>AA,deliver:()=>Te,dispose:()=>Pu,elementAt:()=>nA,empty:()=>pc,every:()=>lA,exhaustMap:()=>_A,exhaustMapTo:()=>TA,expand:()=>bA,filter:()=>er,find:()=>aA,findIndex:()=>cA,first:()=>dA,fromAnimationFrame:()=>By,fromArray:()=>Py,fromEvent:()=>ye,fromEventPattern:()=>Ly,fromFetch:()=>ky,fromIterable:()=>Uy,fromPromise:()=>YE,fromReadableStream:()=>Fy,fromReader:()=>Vy,groupBy:()=>IA,identity:()=>Sy,ignoreElements:()=>Qy,iif:()=>Ry,inspect:()=>qE,interval:()=>Jh,last:()=>uA,map:()=>Do,mapTo:()=>hA,max:()=>zy,merge:()=>lc,mergeMap:()=>gA,mergeMapTo:()=>EA,min:()=>Jy,never:()=>Gy,nothing:()=>We,of:()=>xy,pairwise:()=>mA,pipe:()=>Ae,race:()=>qh,range:()=>$y,reduce:()=>Xh,retry:()=>CA,scan:()=>Ap,setAsapScheduler:()=>My,share:()=>ji,shareReplay:()=>by,skip:()=>Zy,skipUntil:()=>Ky,skipWhile:()=>Fu,startWith:()=>mc,subject:()=>At,subscribe:()=>Pe,sum:()=>Xy,switchMap:()=>di,switchMapTo:()=>qi,take:()=>Xr,takeLast:()=>Yy,takeUntil:()=>ze,takeWhile:()=>ZE,tap:()=>Cs,throttle:()=>tA,throwError:()=>jy,timeInterval:()=>SA,timeout:()=>Cp,timer:()=>hc,toPromise:()=>RA,toReadableStream:()=>vA,withLatestFrom:()=>Cy,zip:()=>vy});function We(...i){}var jE=i=>i(),Sy=i=>i;function Pu(){this.dispose()}var qE=()=>typeof __FASTRX_DEVTOOLS__!="undefined",yy=1,Nr=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new Hh(t,this,this.streamId++);return gt.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},ys=class{constructor(){this.defers=new Set,this.disposed=!1}next(t){}complete(){this.dispose()}error(t){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=We,this.error=We,this.next=We,this.dispose=We,this.subscribe=We,this.doDefer()}subscribe(t){return t instanceof Nr?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(jE),this.defers.clear()}defer(t){this.defers.add(t)}removeDefer(t){this.defers.delete(t)}reset(){this.disposed=!1,delete this.complete,delete this.next,delete this.dispose,delete this.next,delete this.subscribe}resetNext(){delete this.next}resetComplete(){delete this.complete}resetError(){delete this.error}},fe=class extends ys{constructor(t){super(),this.sink=t,t.defer(this.bindDispose)}next(t){this.sink.next(t)}complete(){this.sink.complete()}error(t){this.sink.error(t)}},As=class extends ys{constructor(t,e=We,r=We,o=We){if(super(),this._next=e,this._error=r,this._complete=o,this.then=We,t instanceof Nr){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{gt.defer(s,0)}),gt.create(s),gt.pipe(s),this.sourceId=s.id,this.subscribe(t),gt.subscribe({id:s.id,end:!0}),e==We?this._next=n=>gt.next(s,0,n):this.next=n=>{gt.next(s,0,n),e(n)},o==We?this._complete=()=>gt.complete(s,0):this.complete=()=>{this.dispose(),gt.complete(s,0),o()},r==We?this._error=n=>gt.complete(s,0,n):this.error=n=>{this.dispose(),gt.complete(s,0,n),r(n)}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function Ae(i,...t){return t.reduce((e,r)=>r(e),i)}function ke(i,t,e){if(qE()){let r=Object.defineProperties(Object.setPrototypeOf(i,Nr.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:t,writable:!0,configurable:!0},args:{value:e,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});gt.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof Nr&&gt.addSource(r,s)}return r}return i}function Te(i,t){return function(...e){return r=>{if(r instanceof Nr){let o=ke(s=>{let n=new i(s,...e);n.sourceId=o.id,n.subscribe(r)},t,arguments);return o.source=r,gt.pipe(o),o}else return o=>r(new i(o,...e))}}}function No(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var Hh=class extends fe{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{gt.defer(this.source,this.id)})}next(t){gt.next(this.source,this.id,t),this.sink.next(t)}complete(){gt.complete(this.source,this.id),this.sink.complete()}error(t){gt.complete(this.source,this.id,t),this.sink.error(t)}},gt={addSource(i,t){No("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){No("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){No("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){No("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){No("defer",{id:i.id,streamId:t})},pipe(i){No("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){No("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=yy++),No("create",{name:i.toString(),id:i.id})}},uc=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var Lu=class extends ys{constructor(t){super(),this.source=t,this.sinks=new Set}add(t){t.defer(()=>this.remove(t)),this.sinks.add(t).size===1&&(this.reset(),this.subscribe(this.source))}remove(t){this.sinks.delete(t),this.sinks.size===0&&this.dispose()}next(t){this.sinks.forEach(e=>e.next(t))}complete(){this.sinks.forEach(t=>t.complete()),this.sinks.clear()}error(t){this.sinks.forEach(e=>e.error(t)),this.sinks.clear()}};function ji(){return i=>{let t=new Lu(i);if(i instanceof Nr){let e=ke(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,gt.pipe(e),e}return ke(t.add.bind(t),"share",arguments)}}function lc(...i){return ke(t=>{let e=new fe(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function qh(...i){return ke(t=>{let e=new Map;i.forEach(r=>{let o=new fe(t);e.set(r,o),o.complete=()=>{e.delete(r),e.size===0?t.complete():o.dispose()},o.next=s=>{e.delete(r),e.forEach(n=>n.dispose()),o.resetNext(),o.resetComplete(),o.next(s)}}),i.forEach(r=>e.get(r).subscribe(r))},"race",arguments)}function Ay(...i){return ke(t=>{let e=0,r=i.length,o=new fe(t);o.complete=()=>{e<r&&!o.disposed?(o.doDefer(),o.subscribe(i[e++])):t.complete()},o.complete()},"concat",arguments)}function by(i){return t=>{let e=new Lu(t),r=[];return e.next=function(o){r.push(o),r.length>i&&r.shift(),this.sinks.forEach(s=>s.next(o))},ke(o=>{o.defer(()=>e.remove(o)),r.forEach(s=>o.next(s)),e.add(o)},"shareReplay",arguments)}}function Ry(i,t,e){return ke(r=>i()?t(r):e(r),"iif",arguments)}function zE(...i){return ke(t=>{let e=i.length,r=e,o=e,s=new Array(e),n=()=>{--o===0&&t.complete()},a=(d,l)=>{let p=new fe(t);p.next=f=>{r--,p.next=g=>{s[l]=g,r===0&&t.next(s)},p.next(f)},p.complete=n,p.subscribe(d)};i.forEach(a)},"combineLatest",arguments)}function vy(...i){return ke(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},n=(a,d)=>{let l=new fe(t),p=[];o[d]=p,l.next=f=>{p.push(f),o.every(g=>g.length)&&t.next(o.map(g=>g.shift()))},l.complete=s,l.subscribe(a)};i.forEach(n)},"zip",arguments)}function mc(...i){return t=>ke((e,r=0,o=i.length)=>{for(;r<o&&!e.disposed;)e.next(i[r++]);e.disposed||e.subscribe(t)},"startWith",arguments)}var Wh=class extends fe{constructor(t,...e){super(t);let r=new fe(this.sink);r.next=o=>this.buffer=o,r.complete=We,r.subscribe(zE(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},Cy=Te(Wh,"withLatestFrom"),Gh=class extends fe{constructor(t,e,r){super(t),this.bufferSize=e,this.startBufferEvery=r,this.buffer=[],this.count=0,this.startBufferEvery&&(this.buffers=[[]])}next(t){this.startBufferEvery?(this.count++===this.startBufferEvery&&(this.buffers.push([]),this.count=1),this.buffers.forEach(e=>{e.push(t)}),this.buffers[0].length===this.bufferSize&&this.sink.next(this.buffers.shift())):(this.buffer.push(t),this.buffer.length===this.bufferSize&&(this.sink.next(this.buffer),this.buffer=[]))}complete(){this.buffer.length?this.sink.next(this.buffer):this.buffers.length&&this.buffers.forEach(t=>this.sink.next(t)),super.complete()}},Ny=Te(Gh,"bufferCount"),jh=class extends fe{constructor(t,e){super(t),this.buffer=[];let r=new fe(t);r.next=o=>{t.next(this.buffer),this.buffer=[]},r.complete=We,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},Dy=Te(jh,"buffer");var wy=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(p){try{l(r.next(p))}catch(f){n(f)}}function d(p){try{l(r.throw(p))}catch(f){n(f)}}function l(p){p.done?s(p.value):o(p.value).then(a,d)}l((r=r.apply(i,t||[])).next())})};function At(i){let t=arguments,e=ji()(ke(r=>{e.next=o=>r.next(o),e.complete=()=>r.complete(),e.error=o=>r.error(o),i&&r.subscribe(i)},"subject",t));return e.next=We,e.complete=We,e.error=We,e}function JE(i){return ke(t=>t.subscribe(i()),"defer",arguments)}var Ln={promise:i=>{Promise.resolve().then(i)},setImmediate:typeof setImmediate!="undefined"?i=>setImmediate(i):null,setTimeout:i=>setTimeout(i,0)},Oy=()=>typeof Promise!="undefined"?Ln.promise:Ln.setImmediate?Ln.setImmediate:Ln.setTimeout,zh=Oy(),XE=i=>t=>{zh(()=>i(t))},My=i=>{typeof i=="function"?zh=i:Ln[i]&&(zh=Ln[i])};var QE=i=>XE(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function xy(...i){return ke(QE(i),"of",arguments)}function Py(i){return ke(QE(i),"fromArray",arguments)}function Jh(i){return ke(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function hc(i,t){return ke(e=>{let r=0,o=setTimeout(()=>{if(e.removeDefer(s),e.next(r++),t){let n=setInterval(()=>e.next(r++),t);e.defer(()=>{clearInterval(n)})}else e.complete()},i),s=()=>clearTimeout(o);e.defer(s)},"timer",arguments)}function ku(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function Ly(i,t){return ke(ku(i,t),"fromEventPattern",arguments)}function ye(i,t){if("on"in i&&"off"in i)return ke(ku(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return ke(ku(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return ke(ku(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function YE(i){return ke(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function ky(i,t){return ke(JE(()=>YE(fetch(i,t))),"fromFetch",arguments)}function Uy(i){return ke(XE(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function Vy(i){let t=e=>wy(this,void 0,void 0,function*(){if(e.disposed)return;let{done:r,value:o}=yield i.read();if(r){e.complete();return}else e.next(o),t(e)});return ke(e=>{t(e)},"fromReader",arguments)}function Fy(i){return ke(t=>{let e=new AbortController,r=e.signal;t.defer(()=>e.abort("cancelled")),i.pipeTo(new WritableStream({write(o){t.next(o)},close(){t.complete()},abort(o){t.error(o)}}),{signal:r}).then(()=>t.complete(),o=>t.error(o))},"fromReadableStream",arguments)}function By(){return ke(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function $y(i,t){return ke((e,r=i,o=t+i)=>{for(;r<o&&!e.disposed;)e.next(r++);return e.complete(),"range"},"range",arguments)}function Hy(i,t,...e){return ke(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function Wy(i,t,...e){return ke(r=>{let o=e.concat((s,n)=>s?r.error(s):(r.next(n),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function Gy(){return ke(()=>{},"never",arguments)}function jy(i){return ke(t=>t.error(i),"throwError",arguments)}function pc(){return ke(i=>i.complete(),"empty",arguments)}var bs=class extends fe{constructor(t,e,r){super(t),this.f=e;let o=()=>{this.sink.next(this.acc),this.sink.complete()};typeof r=="undefined"?this.next=s=>{this.acc=s,this.complete=o,this.resetNext()}:(this.acc=r,this.complete=o)}next(t){this.acc=this.f(this.acc,t)}},Xh=Te(bs,"reduce"),qy=i=>Te(bs,"count")((t,e)=>i(e)?t+1:t,0),zy=()=>Te(bs,"max")(Math.max),Jy=()=>Te(bs,"min")(Math.min),Xy=()=>Te(bs,"sum")((i,t)=>i+t,0);var Qh=class extends fe{constructor(t,e,r){super(t),this.filter=e,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},er=Te(Qh,"filter"),Yh=class extends fe{next(t){}},Qy=Te(Yh,"ignoreElements"),Zh=class extends fe{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&(this.doDefer(),this.complete())}},Xr=Te(Zh,"take"),Kh=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=()=>{r.doDefer(),t.complete()},r.complete=Pu,r.subscribe(e)}},ze=Te(Kh,"takeUntil"),ep=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):(this.doDefer(),this.complete())}},ZE=Te(ep,"takeWhile"),Yy=i=>Xh((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),tp=class extends fe{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},Zy=Te(tp,"skip"),rp=class extends fe{constructor(t,e){super(t),t.next=We;let r=new fe(t);r.next=()=>{r.doDefer(),t.resetNext()},r.complete=Pu,r.subscribe(e)}},Ky=Te(rp,"skipUntil"),ip=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},Fu=Te(ip,"skipWhile"),eA={leading:!0,trailing:!1},op=class extends fe{constructor(t,e,r){super(t),this.durationSelector=e,this.trailing=r}cacheValue(t){this.last=t,this.disposed&&this.throttle(t)}send(t){this.sink.next(t),this.throttle(t)}throttle(t){this.reset(),this.subscribe(this.durationSelector(t))}next(){this.complete()}complete(){this.dispose(),this.trailing&&this.send(this.last)}},Uu=class extends fe{constructor(t,e,r=eA){super(t),this.durationSelector=e,this.config=r,this._throttle=new op(this.sink,this.durationSelector,this.config.trailing),this._throttle.dispose()}next(t){this._throttle.disposed&&this.config.leading?this._throttle.send(t):this._throttle.cacheValue(t)}complete(){this._throttle.throttle=We,this._throttle.complete(),super.complete()}},tA=Te(Uu,"throttle"),rA={leading:!1,trailing:!0},iA=i=>Te(Uu,"audit")(i,rA),sp=class extends fe{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},Vu=class extends fe{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new sp(this.sink),this._debounce.dispose()}next(t){this._debounce.dispose(),this._debounce.reset(),this._debounce.last=t,this._debounce.subscribe(this.durationSelector(t))}complete(){this._debounce.complete(),super.complete()}},oA=Te(Vu,"debounce"),sA=i=>Te(Vu,"debounceTime")(t=>hc(i)),np=class extends fe{constructor(t,e,r){super(t),this.count=e,this.defaultValue=r}next(t){this.count--===0&&(this.defaultValue=t,this.doDefer(),this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("not enough elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},nA=Te(np,"elementAt"),aA=i=>t=>Xr(1)(Fu(e=>!i(e))(t)),ap=class extends fe{constructor(t,e){super(t),this.f=e,this.i=0}next(t){this.f(t)?(this.sink.next(this.i++),this.doDefer(),this.complete()):++this.i}},cA=Te(ap,"findIndex"),cp=class extends fe{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t,this.doDefer(),this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},dA=Te(cp,"first"),dp=class extends fe{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t)}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},uA=Te(dp,"last"),up=class extends fe{constructor(t,e){super(t),this.predicate=e,this.index=0}next(t){this.predicate(t,this.index++)?this.result=!0:(this.result=!1,this.doDefer(),this.complete())}complete(){if(this.result===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.result);super.complete()}},lA=Te(up,"every");var lp=class extends fe{constructor(t,e,r){super(t),this.f=e,typeof r=="undefined"?this.next=o=>{this.acc=o,this.resetNext(),this.sink.next(this.acc)}:this.acc=r}next(t){this.sink.next(this.acc=this.f(this.acc,t))}},Ap=Te(lp,"scan"),mp=class extends fe{constructor(){super(...arguments),this.hasLast=!1}next(t){this.hasLast?this.sink.next([this.last,t]):this.hasLast=!0,this.last=t}},mA=Te(mp,"pairwise"),Bu=class extends fe{constructor(t,e,r){super(t),this.mapper=e,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},Do=Te(Bu,"map"),hA=i=>Te(Bu,"mapTo")(t=>i),Rs=class extends fe{constructor(t,e,r){super(t),this.data=e,this.context=r}next(t){let e=this.context.combineResults;e?this.sink.next(e(this.data,t)):this.sink.next(t)}tryComplete(){this.context.resetComplete(),this.dispose()}},vs=class i extends fe{constructor(t,e,r){super(t),this.makeSource=e,this.combineResults=r,this.index=0}subInner(t,e){let r=this.currentSink=new e(this.sink,t,this);this.complete===i.prototype.complete&&(this.complete=this.tryComplete),r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}complete(){this.sink.complete()}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},$u=class extends Rs{},Hu=class extends vs{next(t){this.subInner(t,$u),this.next=e=>{this.currentSink.dispose(),this.subInner(e,$u)}}},di=Te(Hu,"switchMap");function qu(i){return(t,e)=>i(()=>t,e)}var qi=qu(Te(Hu,"switchMapTo")),hp=class extends Rs{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},Wu=class extends vs{constructor(){super(...arguments),this.sources=[],this.next2=this.sources.push.bind(this.sources)}next(t){this.next2(t),this.subNext()}subNext(){this.next=this.next2,this.subInner(this.sources.shift(),hp),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},pA=Te(Wu,"concatMap"),fA=qu(Te(Wu,"concatMapTo")),pp=class extends Rs{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},Gu=class extends vs{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,pp),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},gA=Te(Gu,"mergeMap"),EA=qu(Te(Gu,"mergeMapTo")),fp=class extends Rs{dispose(){this.context.resetNext(),super.dispose()}},ju=class extends vs{next(t){this.next=We,this.subInner(t,fp)}},_A=Te(ju,"exhaustMap"),TA=qu(Te(ju,"exhaustMapTo")),gp=class extends fe{constructor(t,e){super(t),this.f=e,this.groups=new Map}next(t){let e=this.f(t),r=this.groups.get(e);typeof r=="undefined"&&(r=At(),r.key=e,this.groups.set(e,r),super.next(r)),r.next(t)}complete(){this.groups.forEach(t=>t.complete()),super.complete()}error(t){this.groups.forEach(e=>e.error(t)),super.error(t)}},IA=Te(gp,"groupBy"),Ep=class extends fe{constructor(){super(...arguments),this.start=new Date}next(t){this.sink.next({value:t,interval:Number(new Date)-Number(this.start)}),this.start=new Date}},SA=Te(Ep,"timeInterval"),_p=class extends fe{constructor(t,e){super(t),this.miniseconds=e,this.buffer=[],this.id=setInterval(()=>{this.sink.next(this.buffer.concat()),this.buffer.length=0},this.miniseconds)}next(t){this.buffer.push(t)}complete(){this.sink.next(this.buffer),super.complete()}dispose(){clearInterval(this.id),super.dispose()}},yA=Te(_p,"bufferTime"),Tp=class extends fe{constructor(t,e){super(t),this.buffer=[],this.delayTime=e}dispose(){clearTimeout(this.timeoutId),super.dispose()}delay(t){this.timeoutId=setTimeout(()=>{let e=this.buffer.shift();if(e){let{time:r,data:o}=e;super.next(o),this.buffer.length&&this.delay(Number(this.buffer[0].time)-Number(r))}},t)}next(t){this.buffer.length||this.delay(this.delayTime),this.buffer.push({time:new Date,data:t})}complete(){this.timeoutId=setTimeout(()=>super.complete(),this.delayTime)}},AA=Te(Tp,"delay"),Ip=class extends fe{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},bp=Te(Ip,"catchError"),Sp=class extends Rs{tryComplete(){let t=this.context.inners.delete(this);super.dispose(),t&&this.context.checkComplete()}next(t){this.sink.next(t),this.context.expandValue(t)}},yp=class extends vs{constructor(t,e){super(t,e),this.project=e,this.inners=new Set,this.sourceCompleted=!1}next(t){this.sink.next(t),this.expandValue(t)}expandValue(t){let e=new Sp(this.sink,t,this);this.currentSink=e,this.complete=this.tryComplete,e.complete=e.tryComplete,this.inners.add(e),e.subscribe(this.makeSource(t,this.index++))}complete(){this.sourceCompleted=!0,this.checkComplete()}checkComplete(){this.sourceCompleted&&this.inners.size===0&&(this.resetComplete(),super.complete())}tryComplete(){this.sourceCompleted=!0,this.checkComplete()}},bA=Te(yp,"expand");var RA=()=>i=>new Promise((t,e)=>{let r;new As(i,o=>r=o,e,()=>t(r))}),vA=()=>i=>{let t;return new ReadableStream({start(e){t=new As(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},Pe=(i=We,t=We,e=We)=>r=>new As(r,i,t,e),Rp=class extends fe{constructor(t,e){super(t),e instanceof Function?this.next=r=>{e(r),t.next(r)}:(e.next&&(this.next=r=>{e.next(r),t.next(r)}),e.complete&&(this.complete=()=>{e.complete(),t.complete()}),e.error&&(this.error=r=>{e.error(r),t.error(r)}))}},Cs=Te(Rp,"tap"),vp=class extends fe{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new uc(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},Cp=Te(vp,"timeout"),CA=(i=1/0)=>t=>{if(t instanceof Nr){let e=ke(r=>{let o=i,s=new fe(r);s.error=n=>{o-- >0?s.subscribe(t):r.error(n)},s.sourceId=e.id,s.subscribe(t)},"retry",[i]);return e.source=t,gt.pipe(e),e}else return e=>{let r=i,o=new fe(e);o.error=s=>{r-- >0?t(o):e.error(s)},t(o)}};var kn=(e=>(e[e.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",e[e.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",e))(kn||{}),Ns=class Ns extends Ss{constructor(e,r){super({mediaType:e,PlayerClass:r});m(this,"isRemote",!1);m(this,"deviceId");m(this,"groupId","");m(this,"label","");m(this,"sourceTrack");m(this,"enableAutoSwitchWhenRecapturing",!0);m(this,"_isRecapturing",!1);m(this,"_lastRecaptureTime",0);m(this,"_onMuteTimeoutId",-1);m(this,"_encodeCheckTimeoutId",-1);m(this,"recaptureMode",0);m(this,"profile");m(this,"retryEncodeFailed")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}get isUseCustomSource(){return this.sourceTrack&&this.mediaTrack&&this.sourceTrack!==this.mediaTrack}encodeFrame(e,r){throw new Error("Method not implemented.")}installTrackEvent(e){e.addEventListener(M.MUTE,this.onTrackMuted),e.addEventListener(M.UNMUTE,this.onTrackUnmuted),e.addEventListener(M.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===M.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){e.removeEventListener(M.MUTE,this.onTrackMuted),e.removeEventListener(M.UNMUTE,this.onTrackUnmuted),e.removeEventListener(M.ENDED,this.onTrackEnded)}setStateToReady(){}capture(e,r=!1){return A(this,null,function*(){var s;let o=this.sourceTrack;try{let n=_e();U.emit(B.LOCAL_TRACK_CAPTURE_START,{track:this});let a;e.customSource?(a=new MediaStream,a.addTrack(e.customSource)):(r||(s=this.sourceTrack)==null||s.stop(),a=yield BE(e));let d=a.getTracks()[0];return yield this.setInputMediaStreamTrack(d),e.customSource||(this.sourceTrack=d,this.updateDeviceIdInUse(),this.listenDeviceChange()),U.emit(B.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:_e()-n}),a}catch(n){throw U.emit(B.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:n}),this.log.error(`getUserMedia error observed ${n}`),n}finally{r&&(o==null||o.stop())}})}setOutputMediaStreamTrack(e){var r;if(super.setOutputMediaStreamTrack(e),this.setStateToReady(),this.isPublishing||this.isPublished)return(r=this.room)==null?void 0:r.replaceTrack(this)}get hasFlag(){var r,o;let e=ns(((r=this.room)==null?void 0:r.localPublishFlag)||0,((o=this.room)==null?void 0:o.userId)||"");return this.mediaType===4&&e.hasVideo||this.mediaType===1&&e.hasAudio||this.mediaType===2&&e.hasAuxiliary}publish(e,r){return this.room=e,this.room.localTracks.add(this),this.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.bindParent(e.getLogger()),Promise.all([r,new Promise((o,s)=>A(this,null,function*(){var a,d;this.hasFlag||this.muted?o():Ae(ye(e,"local-publish-flag-changed"),er(()=>this.hasFlag),ze(lc(ye(this,ue.INIT),ye(this,"ready"))),Pe(o,s,()=>{s(new ae({code:q.API_CALL_ABORTED,message:"publish aborted"}))})),!((((d=(a=this.room)==null?void 0:a.networkQuality)==null?void 0:d.uplinkNetworkQuality)||0)>3)&&(this._encodeCheckTimeoutId=setTimeout(()=>A(this,null,function*(){var p,f,g,y,R,C;if(!((((f=(p=this.room)==null?void 0:p.networkQuality)==null?void 0:f.uplinkNetworkQuality)||0)>3)&&(this.isPublished||this.isPublishing)&&this.isMediaTrackActive){let N=this.kind===M.AUDIO,k=this.stat.bytesSent>0;if(J[k?"addSuccessEvent":"addFailedEvent"]({key:N?503700:513702}),!N){let Q=((y=(g=this.room)==null?void 0:g.videoCodec)==null?void 0:y.toUpperCase())||"H264",H={H264:513704,H265:513705,VP8:513706}[Q];H&&J[k?"addSuccessEvent":"addFailedEvent"]({key:H})}if(!k){if(J.addEnum({key:N?503701:513703,value:hs()}),je.uploadEvent({log:`stat-encode-failed-${this.kind}-${ms()||Li()}`,userId:this.userId}),this.log.warn(N?"encode failed":`${(C=(R=this.room)==null?void 0:R.videoCodec)==null?void 0:C.toUpperCase()} encode failed`),this.retryEncodeFailed&&(this.log.warn("retry encode"),yield this.retryEncodeFailed(this),this.stat.bytesSent>0||this.hasFlag||(yield Ni(5e3),this.stat.bytesSent>0||this.hasFlag)))return;this.emit("6",this),s(new ae({message:`${this.strMediaType} encode failed`,code:N?q.AUDIO_ENCODE_FAILED:q.VIDEO_ENCODE_FAILED}))}}}),5e3))}))])}unpublish(){this.room&&this.room.localTracks.delete(this),this.log.info("unpublish"),U.emit(B.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return A(this,null,function*(){if(this.sourceTrack&&Nn){let{deviceId:e,groupId:r}=this.sourceTrack.getSettings(),{label:o}=this.sourceTrack;(yield VE({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),Mn().then(n=>{let a=n.find(d=>{let l=d.deviceId===e;return r&&(l=l&&d.groupId===r),l});a&&this.emit("2",a)}))}})}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(e=!1){return!(!this.deviceId||!this.sourceTrack||this.kind===M.AUDIO&&!UE(this.sourceTrack)||this.kind===M.VIDEO&&!kE(this.sourceTrack)||this._isRecapturing||e&&Wr&&_t)}onTrackMuted(){if(super.onTrackMuted(),HE(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<rn){setTimeout(()=>this.onTrackMuted(),rn);return}this._onMuteTimeoutId=setTimeout(()=>A(this,null,function*(){var e;if((e=this.sourceTrack)!=null&&e.muted){if((ot||nt)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return A(this,null,function*(){if(Ut(Ns.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()&&this.recaptureMode===0){if(Date.now()-this._lastRecaptureTime<rn){setTimeout(()=>this.onTrackEnded(),rn);return}this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e,r=!1){return A(this,null,function*(){var n;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying");let o=this.sourceTrack;r||(n=this.sourceTrack)==null||n.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let s={useExactDeviceId:!0};if(e==="user"||e==="environment")s.facingMode=e;else{let a;(this.kind==="audio"?yield ar():yield cr()).find(l=>l.deviceId===e)&&(a=e),s.deviceId=a}return this.capture(s,r).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),U.emit(B.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(a=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${a.message}`),this.emit("5",a),U.emit(B.LOCAL_TRACK_RECAPTURE,{track:this,error:a})}).finally(()=>{r&&(o==null||o.stop())})})}getRecoverCaptureDeviceId(){return A(this,null,function*(){let e=this instanceof _r;if(e&&this.facingMode)return this.facingMode;let{deviceId:r}=this;if(r){let o=(fc.get(r)||0)+1;if(fc.set(r,o),o>=3&&this.enableAutoSwitchWhenRecapturing){let s=e?(yield cr()).find(n=>!fc.has(n.deviceId)):(yield ar()).find(n=>!fc.has(n.deviceId));s&&(this.log.warn(`${r} capture fail ${o} times, change new ${s.deviceId}`),r=s.deviceId)}}return r})}stopCapture(){var e;this.sourceTrack&&(this.sourceTrack.stop(),this.uninstallTrackEvent(this.sourceTrack)),this._inputTrack&&this.uninstallTrackEvent(this._inputTrack),(e=this.manager)==null||e.removeInput(this)}close(){super.close(),this.stopCapture()}};Z([et(ue.INIT,"ready",{ignoreError:!0,sync:!0})],Ns.prototype,"setStateToReady",1),Z([Ou()],Ns.prototype,"capture",1),Z([et("ready","publish",{ignoreError:!0,success(){U.emit(B.LOCAL_TRACK_PUBLISHED,{track:this,room:this.room}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),this.log.info("published")},fail(e){var o;(o=this.room)==null||o.localTracks.delete(this);let r="error";if(e.cause instanceof ae){let s=e.cause;s.message.includes("timeout")?r="timeout":s.code===q.API_CALL_ABORTED&&(r="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:e.cause||e}),this.log.error("publish failed",e.cause||e)}}),xu(521714,!1),zu(10)],Ns.prototype,"publish",1),Z([xe(e=>function(){return A(this,null,function*(){let r=this.state==="publish"?"started":"starting";e.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:r,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)})}),et([],"ready",{sync:!0})],Ns.prototype,"unpublish",1);var Jr=Ns,fc=new Map;U.on(B.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&fc.delete(i.track.deviceId)});var ui=class i extends Jr{constructor(e){super(1,Nu);m(this,"mediaType",1);m(this,"volume",0);m(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40});m(this,"playerMuted",!0);m(this,"pipeline");m(this,"earMonitorGainNode",new yt);m(this,"_output",new yt);m(this,"codecPipeline",[]);m(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});m(this,"mixedAudioReferenceMap",new Map);m(this,"isAudioContextLongSuspended",!1);m(this,"after3aSilenceStartTime",0);this.manager=e,this.pipeline=new On(e),this.pipeline.source.pipeTo(this.player.pipeline.volumeMeter),this.pipeline.gain.pipeTo(this.earMonitorGainNode).pipeTo(this._output),this.pipeline.gain.pipeTo(this.player.pipeline.volumeMeterAfter3A),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this),U.on(B.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this)}get dbVolume(){return vu.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}getInternalAudioLevelAfter3A(){if(this.pipeline.aec.node||this.pipeline.denoiser.node)return this.player.getInternalAudioLevelAfter3A()}updateAfter3aSilenceStartTime(e){O(e)||(e===0&&!this.after3aSilenceStartTime?this.after3aSilenceStartTime=_e():e>0&&(this.after3aSilenceStartTime=0))}setInputMediaStreamTrack(e){return A(this,null,function*(){let r=this.trackSettings||{};J.addEnum({key:501701,value:r.channelCount||0,useUV:!1}),J.addEnum({key:501702,value:r.sampleRate||0,useUV:!1}),J.addEnum({key:502700,value:0});let{sampleRate:o,channelCount:s}=r;this._log.info(`local audio track input ${JSON.stringify({sampleRate:o,channelCount:s})}`),this.pipeline.source.channelCount=s||1,this.pipeline.replaceSource(e),yield Ut(i.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture(a){return A(this,arguments,function*({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s},n=!1){let d=yield Ut(i.prototype,this,"capture").call(this,{video:!1,audio:!0,microphoneId:e,echoCancellation:this.profile.echoCancellation,autoGainControl:this.profile.autoGainControl,noiseSuppression:this.profile.noiseSuppression,sampleRate:this.profile.sampleRate,channelCount:this.profile.channelCount,useExactDeviceId:o,retryWhenExactFailed:s,customSource:r},n);return Ro(),d})}switchDevice(e){return A(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource)if(e===rs){if(yield Bh(this.groupId,this.label))return}else return;try{this.log.info(`switchDevice audio to: ${e}`),this.sourceTrack&&this.sourceTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),U.emit(B.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(r){throw this.log.error(`switch microphone failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}}})}listenDeviceChange(){at&&!at.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&at.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return A(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${kn[this.recaptureMode]}. Current microphone is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){mt(this.userId,{eventId:2003,param1:6,streamType:1});let o=yield ar();o[0]?this.recapture(o[0].deviceId):r=!0}r&&at.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.recaptureMode===1&&e.deviceId!==this.deviceId||(at.off("audioInputAdded",this.handleMicrophoneAdded,this),this.log.warn(`microphone added: ${JSON.stringify(e)}`),this.recapture(e.deviceId))}update3A(s){return A(this,arguments,function*({echoCancellation:e,noiseSuppression:r,autoGainControl:o}){let n=this.sourceTrack||this.mediaTrack;if(!n)return;let a=n.getConstraints(),d=!1;!O(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,a.echoCancellation=e,d=!0),!O(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,a.noiseSuppression=r,d=!0),!O(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,a.autoGainControl=o,d=!0),d&&(lt||_t?yield n.applyConstraints(a).catch(l=>this._log.warn("update3A failed: ",l)):this.deviceId&&(yield this.recapture(this.deviceId,!0)))})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&J.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),ot&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(qe().createGain()),this._output.setNode(qe().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!(_t||ot))return this.update3A({echoCancellation:e})}addDenoiser(e){var r;if(sr<=92&&((r=this.trackSettings)==null?void 0:r.sampleRate)!==48e3){this._log.warn("denoiser only support sampleRate 48000 before chrome 93");return}J.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.enableTrackANS(!1)}mixAudioReference(e,r){if(this.mixedAudioReferenceMap.has(r))return;this.log.info(`mixAudioReference() => ${r}`);let o=nc(e);if(!o)return;let s=new yt,n=qe().createGain();n.gain.value=1;let a=new yt;s.pipeTo(a).pipeTo(this.pipeline.mixNode),s.setNode(o),a.setNode(n),this.mixedAudioReferenceMap.set(r,[s,a])}unMixAudioReference(e){let[r,o]=this.mixedAudioReferenceMap.get(e)||[];r&&(this.log.info(`unMixAudioReference() => ${e}`),r.deleteNode(),o==null||o.deleteNode(),this.mixedAudioReferenceMap.delete(e))}setAudioReferenceVolume(e,r){let[o,s]=this.mixedAudioReferenceMap.get(e)||[];s!=null&&s.node&&(s.node.gain.value=r/100,this.log.info(`setAudioReferenceVolume() => ${e} ${s.node.gain.value}`))}addAudioProcessor(e,r,o){this.pipeline.silentNode.setNode(o),this.pipeline.mixNode.setNode(r),this.pipeline.aec.setNode(e)}removeDenoiser(e){if(this.pipeline.denoiser.node===e)return this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0)}removeAudioProcessor(e){this.pipeline.aec.node===e&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode())}close(){this.mixedAudioReferenceMap.forEach(([e,r])=>{e.deleteNode(),r.deleteNode()}),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),at.off("audioInputAdded",this.handleMicrophoneAdded,this),at.off("audioInputRemoved",this.handleMicrophoneRemoved,this),U.off(B.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this),super.close()}recapture(e,r=!1){return A(this,null,function*(){try{yield Ut(i.prototype,this,"recapture").call(this,e,r)}catch(o){let s=(yield ar()).find(n=>n.deviceId!==e);if(s)yield Ut(i.prototype,this,"recapture").call(this,s.deviceId);else throw o}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((r,o)=>o?o({frame:r,ntp:bi()}):r,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}get enableEncryptFrame(){return this.manager&&!!this.manager.encodePipeline[0]}handleAudioContextLongSuspended({isSuspended:e}){if(this.pipeline.isProcessEnabled)if(e){this.isAudioContextLongSuspended=!0,this.log.warn(`context has suspended for ${Uh/1e3} seconds, change to source audio${vr?"":", non-Safari"}`);let r=this.sourceTrack||this.mediaTrack;r&&this.setOutputMediaStreamTrack(r)}else this.isAudioContextLongSuspended=!1,this.log.warn("context has resumed, change to processed audio"),this.pipeline.track&&this.setOutputMediaStreamTrack(this.pipeline.track)}setOutputMediaStreamTrack(e){if(this.isAudioContextLongSuspended){let r=this.sourceTrack||this.mediaTrack;r&&(e=r)}super.setOutputMediaStreamTrack(e)}};var Ds=class{constructor(t,e=!1){this.dataView=t;this.isSEI&&(e?this.addPreventionByte():this.removePreventionByte())}addPreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-2,r=[],o=0;for(let n=t;n<=e;n++){let a=this.dataView.getInt8(n);switch(a){case 0:case 1:case 2:case 3:o===2&&(r.push(3),o=0),a==0?o++:o=0,r.push(a);break;default:o=0,r.push(a);break}}r.push(this.dataView.getInt8(this.dataView.byteLength-1));let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}removePreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-1,r=[],o=0;for(let n=t;n<=e;n++)switch(this.dataView.getInt8(n)){case 0:o++,r.push(this.dataView.getInt8(n));break;case 3:o!==2&&r.push(this.dataView.getInt8(n)),o=0;break;default:r.push(this.dataView.getInt8(n)),o=0;break}let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}get isSEI(){return this.dataView.getUint8(4)===6}get seiPayloadStartIndex(){let t=6;for(let e=6;e<this.dataView.buffer.byteLength&&(t++,this.dataView.getUint8(e)===255);e++);return t}get seiPayloadType(){return this.isSEI?this.dataView.getUint8(5):null}get seiPayload(){if(!this.isSEI)return null;let t=0,e=6;for(let s=6;s<this.dataView.buffer.byteLength;s++){let n=this.dataView.getUint8(s);if(e++,n===255)t+=255;else{t+=n;break}}let r=new ArrayBuffer(t),o=new DataView(r);for(let s=0;s<r.byteLength;s++,e++)o.setInt8(s,this.dataView.getInt8(e));return o}};var Ju=class{constructor(){m(this,"_seiMessageList",[]);m(this,"_smallSeiMessageList",[]);m(this,"_seiPayloadType",243)}encodeSEINalu(t){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,this._seiPayloadType);for(let a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new Ds(new DataView(new Uint8Array(s).buffer),!0)}sendSEI(t,e){e!=null&&e.seiPayloadType&&(this._seiPayloadType=e.seiPayloadType),this._seiMessageList.push(t),e!=null&&e.small&&this._smallSeiMessageList.push(t)}isEmpty(){return!this._seiMessageList.length}getNaluCount(t){let e=0,r=0,o=new DataView(t);for(let s=0;s<t.byteLength;s++)switch(o.getUint8(s)){case 0:e++;break;case 1:(e===2||e===3)&&r++,e=0;break;default:e=0;break}return r}encode(t,e){let r=e?this._smallSeiMessageList:this._seiMessageList;if(r.length>0&&t.data.byteLength>0){let s=9-this.getNaluCount(t.data);if(s<=0)return 0;let n=r.splice(0,s).reverse().map(this.encodeSEINalu.bind(this)),a=n.reduce((g,y)=>g+y.dataView.byteLength,0),d=new ArrayBuffer(a+t.data.byteLength),l=new DataView(d),p=new DataView(t.data),f=0;for(let g=0;g<n.length;g++)for(let y=0;y<n[g].dataView.byteLength;y++)l.setInt8(f++,n[g].dataView.getInt8(y));for(let g=0;g<t.data.byteLength;g++)l.setInt8(f++,p.getInt8(g));return t.data=d,n.length}return 0}};var wo=class wo extends Jr{constructor(e,r=4){super(r,Bt);m(this,"profile",Y({},fa));m(this,"avoidCropping",!1);m(this,"_scaleResolutionDownBy");m(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0,framesCaptured:0});m(this,"small");m(this,"isNeedToSetBandwidth");m(this,"muteImage");m(this,"manager");m(this,"_seiCodec",new Ju);this.manager=e;let o=()=>{var s;if(this.isAllowed2k4k(this.profile))this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1});else{let n=Rr(((s=this.room)==null?void 0:s.sdkAppId)||0)?hd:md;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${n}`),this.setProfile(Ee(Y({},this.profile),{width:1920,height:1080})),this.applyProfile()}};this.on("input-media-track-changed",o),this.on("publish",o),this.handleCameraAdded=this.handleCameraAdded.bind(this),this.handleCameraRemoved=this.handleCameraRemoved.bind(this)}get facingMode(){if(!(!Nn||!this.mediaTrack))return this.mediaTrack.getSettings().facingMode}get contentHint(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)||""}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}get hasSmall(){var e;return!!((e=this.manager)!=null&&e.hasSmall)}setMute(e){return A(this,null,function*(){var r,o,s;if(we(e)){if(this.muteImage===e)return;yield(r=this.manager)==null?void 0:r.deleteWatermark("mute"),yield(o=this.manager)==null?void 0:o.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:e,fillVideo:!0}),this.muteImage=e,Ut(wo.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0),Ut(wo.prototype,this,"setMute").call(this,e)})}capture(a){return A(this,arguments,function*({deviceId:e,facingMode:r,useExactDeviceId:o=!0,customSource:s,retryWhenExactFailed:n=!0}){let d={audio:!1,video:!0,facingMode:r||this.facingMode,cameraId:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,useExactDeviceId:o,retryWhenExactFailed:n,customSource:s};if(d.facingMode==="environment"){let l=yield this.getDeviceIdWhenUsingBackCamera();l&&(d.cameraId=l)}return Ut(wo.prototype,this,"capture").call(this,d)})}setProfile(e){var o;let r=this.fallbackProfile(e);if(r.bitrate&&(this.isNeedToSetBandwidth=r.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile))super.setProfile(r);else{let s=Rr(((o=this.room)==null?void 0:o.sdkAppId)||0)?hd:md;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${s}`),super.setProfile(Ee(Y({},this.profile),{width:1920,height:1080}))}}applyProfile(){return A(this,null,function*(){var a;if(!this.mediaTrack)return;let{width:e=0,height:r=0}=(this.sourceTrack||this.mediaTrack).getSettings(),o=e*r,s=this.settings,n=s.height!==this.profile.height||s.width!==this.profile.width||s.frameRate!==this.profile.frameRate;if(n&&(Vt===16&&this.deviceId?yield this.recapture(this.deviceId):(yield(a=this.sourceTrack||this.mediaTrack)==null?void 0:a.applyConstraints({width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate}),this.manager&&this.manager.changeInput(this)),this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1})),this.isNeedToSetBandwidth&&this.room&&this.room.setBandWidth){this.isNeedToSetBandwidth=!1;let{width:d=0,height:l=0}=(this.sourceTrack||this.mediaTrack).getSettings(),p=d*l;if(n&&p&&o&&p===o){this.log.warn("set bandwidth failed: resolution is not changed");return}return this.room.setBandWidth({bandwidth:this.profile.bitrate,type:M.VIDEO,videoType:M.BIG})}})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},r=this.sourceTrack||this.mediaTrack;return Nn&&r&&Object.assign(e,r.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:Od(this.settings,this.profile)}isAllowed2k4k(e){var r;return!this.room||!this.room.scheduleResult||this.isScreen||e.height*e.width<2560*1440?!0:((r=this.room.scheduleResult.trtcAutoConf)==null?void 0:r["2k4k"])===1}isNeedToSwitchDevice(e){return!(!this.mediaTrack||this.deviceId===e||this.facingMode===e)}switchDevice(e){return A(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e)&&!this.isUseCustomSource)return;let r={useExactDeviceId:!0,retryWhenExactFailed:!1};e==="user"||e==="environment"?r.facingMode=e:r.deviceId=e,this.sourceTrack&&this.sourceTrack.stop(),yield this.capture(r),U.emit(B.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(r){throw this.log.error(`switch camera failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}})}getDeviceIdWhenUsingBackCamera(){return A(this,null,function*(){let e;try{if(xa&&!In&&Th){let o=(yield cr(!0)).map(n=>{var a;return Ee(Y({},n),{capabilities:(a=n.getCapabilities)==null?void 0:a.call(n)})}).filter(n=>{var a,d;return(d=(a=n.capabilities)==null?void 0:a.facingMode)==null?void 0:d.includes("environment")}),s=o[0];o.forEach(n=>{var p,f,g,y;let{capabilities:a}=n,d=(p=a.width)!=null&&p.max&&((f=a.height)!=null&&f.max)?a.width.max*a.height.max:0,l=(g=s.capabilities.width)!=null&&g.max&&((y=s.capabilities.height)!=null&&y.max)?s.capabilities.width.max*s.capabilities.height.max:0;d>l&&(s=n)}),s!=null&&s.capabilities&&(this._log.info("use max resolution back camera",s),e=s.deviceId)}}catch(r){this._log.warn("get max res camera failed",r)}return e})}updateSmallConfig(e){var o,s;this._log.info(`update small stream config: ${JSON.stringify(e)}`);let r=!this.small;this.small=this.fallbackProfile(e,!0),(o=this.manager)==null||o.update(),r&&((s=this.room)==null||s.enableSmall(!0)),this.log.info("update small stream config success")}fallbackProfile(e,r=!1){let o=e.width>e.height,s=Y({},e);return e.width*e.height<=160*120&&nt&&fr&&(this.log.warn(`${r?"small ":""}resolution is ${e.width}*${e.height}, fallback to 240*180 for android chrome`),s.width=o?240:180,s.height=o?180:240,s.bitrate=Math.max(e.bitrate,150)),e.width*e.height>1280*720&&Bm&&(s.width=o?1280:720,s.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),Um(Cr,"14.3")&&Vm(Cr,"14.0",!0)&&this.on("7",()=>{let n=this.profile.width>this.profile.height;this.profile.width*this.profile.height>640*480?(this.profile.width=n?640:480,this.profile.height=n?480:640,this.log.warn("reduce the resolution to 480p on iOS 14.0 ~ 14.2")):this.profile.width*this.profile.height>640*360&&(this.profile.width=n?640:360,this.profile.height=n?360:640,this.log.warn("reduce the resolution to 360p on iOS 14.0 ~ 14.2"))}),!r&&this.avoidCropping&&(fr||lt)&&!ka()&&e.width*e.height<=640*360&&e.width/e.height===16/9&&(this._scaleResolutionDownBy=1280/e.width,e.width=1280,e.height=720,this.log.warn(`capture 720p, scale: ${this._scaleResolutionDownBy}`)),s}stopSmall(){var e,r;this.small&&(delete this.small,(e=this.manager)==null||e.update(),(r=this.room)==null||r.enableSmall(!1))}listenDeviceChange(){at&&!at.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&at.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return A(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${kn[this.recaptureMode]}. Current camera is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){mt(this.userId,{eventId:2003,param1:7,streamType:2});let o=yield cr();o[0]?this.recapture(o[0].deviceId):r=!0}r&&at.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return A(this,null,function*(){this.recaptureMode===1&&e.deviceId!==this.deviceId||(at.off("videoInputAdded",this.handleCameraAdded,this),this.log.warn(`camera added: ${JSON.stringify(e)}`),this.recapture(e.deviceId))})}encodeFrame(e,r){if(!this.manager)return e;let o=r?8:this.mediaType;return this.manager.encodePipeline.reduceRight((s,n)=>n?n({frame:s,mediaType:o}):s,e)}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}play(e,r){return O(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){at.off("videoInputAdded",this.handleCameraAdded,this),at.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return A(this,null,function*(){try{yield Ut(wo.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield cr()).find(s=>s.deviceId!==e);if(o)yield Ut(wo.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}setContentHint(e){this.mediaTrack&&"contentHint"in this.mediaTrack&&(this.mediaTrack.contentHint!==e&&(this.log.info(`setContentHint ${e}`),this.mediaTrack.contentHint=e),this.outMediaTrack&&this.outMediaTrack.contentHint!==e&&(this.outMediaTrack.contentHint=e))}setRotation(e){this.manager&&(this.isScreen||O(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};Z([Co(function(e){this.setContentHint(e.contentHint||"motion")})],wo.prototype,"capture",1);var _r=wo;var Op={};yi(Op,{REPORT_TYPE:()=>hn,buildSSOPackage:()=>Di,bytes2ms:()=>tg,calculateScaleResolutionDownNumber:()=>Od,concatArrayBuffers:()=>hg,convertObjectNumberToInt:()=>Aa,copyProperties:()=>eg,deepClone:()=>is,deepCloneBasic:()=>Rd,deepMerge:()=>Br,delay:()=>Ni,fibonacci:()=>os,formatedTime:()=>Cd,getConstructorName:()=>cn,getContainerFromElement:()=>ug,getEnv:()=>Qf,getFirst16Bits:()=>fg,getInternalVersion:()=>cg,getLast16Bits:()=>pg,getLoggerUrl:()=>Ci,getMediaStreamTrackInfo:()=>wd,getMuteStateFromFlag:()=>ns,getNetworkType:()=>an,getNumNetworkType:()=>vd,getReconnectionTimeout:()=>ig,getStringByteLength:()=>lg,getTurnServer:()=>dg,getUint32Version:()=>Nd,getValueType:()=>pt,getViewListFromView:()=>ln,glog:()=>Ia,ipv4ToUint32:()=>un,isArray:()=>ut,isAudioWorkletSupported:()=>ng,isBoolean:()=>Ke,isConstructor:()=>ss,isEmpty:()=>dn,isFunction:()=>Xe,isLangChinese:()=>Fr,isMediaStreamTrack:()=>og,isNumber:()=>Ve,isObject:()=>hr,isOverseaSdkAppId:()=>Rr,isPlainObject:()=>Xt,isPortrait:()=>Rm,isPromise:()=>po,isRemoteTrack:()=>sg,isRotate90Or270:()=>pr,isSetSinkIdSupported:()=>ag,isString:()=>we,isUndefined:()=>O,loadImage:()=>mn,loadVideo:()=>mg,ms2bytes:()=>rg,ms2samples:()=>bm,normalizeUrl:()=>as,performanceNow:()=>_e,promiseAny:()=>Sa,samples2ms:()=>Am,setNetworkTypeFromWebRTC:()=>Kf,stringify:()=>br,stringifyIncludeValue:()=>ya,throttlePromise:()=>Dd});var DA=[-1,-1,1,-1,-1,1,1,1],wA=[0,0,1,0,0,1,1,1];var Oo=class Oo extends ue{constructor(e,r){super();this.context=e;m(this,"name");m(this,"input");m(this,"output");m(this,"texture");m(this,"ctx2d",null);m(this,"fbo");m(this,"width",0);m(this,"height",0);m(this,"x",0);m(this,"y",0);m(this,"program");m(this,"vertexShader");m(this,"fragmentShader");m(this,"totalFrames",0);m(this,"dropFrames",0);m(this,"matchInputSize",!0);m(this,"texCoordBuffer");m(this,"positionBuffer");m(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0});m(this,"cost",0);m(this,"_canvas",null);m(this,"_image");m(this,"log");if(this.context.on("disconnect",this.close,this),this.name=r.name,this.log=r.logger,this.matchInputSize=r.matchInputSize!==!1,this.width=r.width||e.width,this.height=r.height||e.height,this._image=r.image,e instanceof Pt){e.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&Vt!==16?this._canvas=new OffscreenCanvas(this.width,this.height):(this._canvas=document.createElement("canvas"),this._canvas.width=this.width,this._canvas.height=this.height),this.ctx2d=this._canvas.getContext("2d"),this._image=this._canvas);return}try{let o=e.ctx;this.texCoordBuffer=this.createBuffer(wA),this.positionBuffer=this.createBuffer(DA),r.createTexture!==!1&&(this.texture=o.createTexture(),this.useTexture(),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.pixelStorei(o.UNPACK_ALIGNMENT,1)),r.useFbo&&(this.fbo=o.createFramebuffer(),this.useBufferFrame(),this.useTexture(),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,this.width,this.height,0,o.RGBA,o.UNSIGNED_BYTE,null),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,this.texture,0)),r.useDefaultProgram?this.program=e.defaultProgam:(r.vertexShaderSource||r.fragmentShaderSource)&&(this.vertexShader=r.vertexShaderSource?e.createShader(o.VERTEX_SHADER,r.vertexShaderSource):e.defaultVShader,this.fragmentShader=r.fragmentShaderSource?e.createShader(o.FRAGMENT_SHADER,r.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(o){this.context.destroy(new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${o.message||o}`}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let r=this.context.ctx,o=r.createFramebuffer();return r.bindFramebuffer(r.FRAMEBUFFER,o),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0),o}connect(e,...r){return e.addInput(this,...r),this.output=e,e}addInput(e,...r){this.input=e,this.matchInputSize&&e.width&&e.height&&this.resize(e.width,e.height)}requestFrame(e){let r=Date.now();if(this.context instanceof Nt&&this.render(e)||this.context instanceof Pt&&this.render2d(e))this.totalFrames++;else return!1;return this.cost=Date.now()-r,!0}render2d(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?this.draw2d(this.input.image,0,0,this.width,this.height):!1}update(e=0){var r;(r=this.output)==null||r.update(e)}disconnect(...e){var r;(r=this.output)==null||r.removeInput(this,...e),delete this.output}removeInput(e,...r){delete this.input}close(){var e,r;if(this.context.off("disconnect",this.close,this),(e=this.output)==null||e.removeInput(this),delete this.output,(r=this.input)==null||r.disconnect(),this.context instanceof Nt){let o=this.context.ctx;o.deleteBuffer(this.texCoordBuffer),o.deleteBuffer(this.positionBuffer),this.fbo&&o.deleteFramebuffer(this.fbo),this.texture&&o.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&o.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&o.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&o.deleteProgram(this.program)}this._canvas&&(this._canvas.width=0,this._canvas.height=0,this.ctx2d=null),this.removeAllListeners()}useTexture(){this.useTextures(this.texture)}useInputTexture(){var e;this.useTextures((e=this.input)==null?void 0:e.texture)}useTextures(...e){let r=this.context.ctx;e.forEach((o,s)=>{o&&(r.activeTexture(r.TEXTURE0+s),r.bindTexture(r.TEXTURE_2D,o))})}useProgram(){this.context.ctx.useProgram(this.program)}useBufferFrame(){let e=this.context.ctx;e.bindFramebuffer(e.FRAMEBUFFER,this.fbo||null)}createBuffer(e){let r=this.context.ctx,o=r.createBuffer();return r.bindBuffer(r.ARRAY_BUFFER,o),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW),o}setTexBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.texCoordBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}setPosBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.positionBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}changeBufferData(e,r){let o=this.context.ctx;o.bindBuffer(o.ARRAY_BUFFER,e),o.bufferData(o.ARRAY_BUFFER,new Float32Array(r),o.STATIC_DRAW)}setAttributes(...e){let r=this.context.ctx;e.forEach((o,s)=>{r.enableVertexAttribArray(s),r.bindBuffer(r.ARRAY_BUFFER,o),r.vertexAttribPointer(s,2,r.FLOAT,!1,0,0)})}getVertexPoint(e,r){return[e/this.width*2-1,r/this.height*2-1]}layout2texCoords(e){return[...this.getVertexPoint(e.x,e.y),...this.getVertexPoint(e.x+e.width,e.y),...this.getVertexPoint(e.x,e.y+e.height),...this.getVertexPoint(e.x+e.width,e.y+e.height)]}resize(e,r){if(!(this.width===e&&this.height===r)){if(this.width=e,this.height=r,this._canvas&&(this._canvas.width=e,this._canvas.height=r),this.texture&&this.fbo){this.useTexture();let o=this.context.ctx;o.texImage2D(o.TEXTURE_2D,0,o.RGBA,e,r,0,o.RGBA,o.UNSIGNED_BYTE,null)}this.output&&this.output.matchInputSize&&this.output.resize(e,r)}}draw(e,r){this.setAttributes(e||this.positionBuffer,r||this.texCoordBuffer);let o=this.context.ctx;o.drawArrays(o.TRIANGLE_STRIP,0,4)}draw2d(e,r,o,s,n,a,d,l,p){let f=!O(a)&&!O(d)&&!O(l)&&!O(p);return this.ctx2d&&e?(e instanceof ImageData?(f?this.ctx2d.putImageData(e,r,o,a,d,l,p):this.ctx2d.putImageData(e,r,o),this.emit(Oo.RENDER,this.ctx2d.canvas)):(f?this.ctx2d.drawImage(e,a,d,l,p,r,o,s,n):this.ctx2d.drawImage(e,r,o,s,n),this.emit(Oo.RENDER,e)),typeof VideoFrame!="undefined"&&e instanceof VideoFrame&&e.close(),!0):!1}drawBackGround2d(e){this.ctx2d&&(this.ctx2d.save(),this.ctx2d.fillStyle=e,this.ctx2d.fillRect(0,0,this.width,this.height),this.ctx2d.restore())}getInfo(){var f;let{totalFrames:e,x:r,y:o,width:s,height:n,name:a,cost:d}=this,l=Date.now(),p=(e-this.lastInfo.totalFrames)/((l-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:l,fps:p,name:a,cost:d},Y({parent:(f=this.input)==null?void 0:f.getInfo()},this.lastInfo)}createTexture(e){let r=this.context.ctx,o=r.createTexture();return this.useTextures(o),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.pixelStorei(r.UNPACK_ALIGNMENT,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),o}};m(Oo,"RENDER","render"),Z([et(ue.INIT,"connected",{sync:!0})],Oo.prototype,"connect",1),Z([et("connected",ue.INIT,{ignoreError:!0,sync:!0})],Oo.prototype,"disconnect",1),Z([et([],"closed",{sync:!0})],Oo.prototype,"close",1);var bt=Oo;var e_=Ae(Jh(250),Do(()=>performance.now()),ji()),t_=i=>t=>{let e=0,r=performance.now();Ae(e_,Do(o=>(o-r)/i>>0),er(o=>o!=e?(e=o,!0):!1))(t)},Xu=i=>t=>{let e=performance.now();Ae(e_,Fu(r=>r-e<i),Xr(1))(t)};var MA=[0,1,1,1,0,0,1,0],ws=class extends bt{constructor(e,r){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},r));m(this,"_intervalId",0);m(this,"_sequence",0);m(this,"checkGLError",!1);m(this,"checkVisibilityChange");e instanceof Pt?this.ctx2d=e.ctx||null:e.available&&(r!=null&&r.mirrorUpAndDown)&&this.setTexBuffer(MA)}start(e){this.log.info(`${this.name} start render ${e} fps`),ft.clearTask(this._intervalId),this._intervalId=ft.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(ft.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof Nt){let o=this.context.ctx.getError();o&&this.context.destroy(new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:5,message:`${this.name} req ${this._sequence} render ${this.totalFrames} faild ${o}`}))}},{fps:this.context.frameRate})}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),this.emit(bt.RENDER,this.context._canvas),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){this.state!=="closed"&&(this._intervalId&&(ft.clearTask(this._intervalId),this._intervalId=0,e===1&&(this.log.info(`${this.name} use requestVideoFrameCallback`),this.checkVisibilityChange=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info(`${this.name} use timer`),document.removeEventListener("visibilitychange",this.checkVisibilityChange))},document.addEventListener("visibilitychange",this.checkVisibilityChange))),this.requestFrame(this._sequence++))}removeInput(e){super.removeInput(e),ft.clearTask(this._intervalId)}resize(e,r){super.resize(e,r),this.context.setSize(e,r)}close(){super.close(),ft.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},Un=class extends ws{constructor(e,r){super(e,r);m(this,"_videoTrack");m(this,"_muteOb");m(this,"_closedOb",ye(this,"closed"));m(this,"_subscription");m(this,"_canvasContainer");Number(xi)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e.canvas.captureStream().getVideoTracks(),this._muteOb=ye(this._videoTrack,"mute"),Ae(ye(this._videoTrack,"ended"),ze(this._closedOb),Pe(()=>{this.context.destroy(new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=Ae(this._muteOb,ze(this._closedOb),qi(Xu(5e3)),er(()=>{var e;return!!((e=this._videoTrack)!=null&&e.muted)&&!document.hidden}),Pe(()=>{this.context.destroy(new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:7,message:"video track muted"}))}))}disableCheckMute(){var e;(e=this._subscription)==null||e.dispose()}get videoTrack(){return this._videoTrack}putCanvasIntoDom(){!this.context._canvas||!this._canvasContainer||document.getElementById(this.context._canvas.id)||(this.log.info(`${this.name} put canvas to body`),document.body.appendChild(this._canvasContainer),this._canvasContainer.appendChild(this.context._canvas))}render(e){return this.putCanvasIntoDom(),super.render(e)}render2d(e){return this.putCanvasIntoDom(),super.render2d(e)}close(){var e,r;super.close(),(e=this._videoTrack)==null||e.stop(),delete this._videoTrack,(r=this._canvasContainer)==null||r.remove()}},Qu=class extends Un{render(t){var r;let e=!!((r=this.input)!=null&&r.requestFrame(t));if(this.context._canvas2d){let o=this.context._canvas2d.getContext("2d");o.clearRect(0,0,this.context._canvas2d.width,this.context._canvas2d.height),o.drawImage(this.context._canvas,0,0,this.context._canvas2d.width,this.context._canvas2d.height)}return e}};var Yu=class extends Un{constructor(e,r,o){super(e,{name:"smallDestination",logger:o});this.resolution=r}resize(e,r){let o,s=e*r,n=this.resolution.width*this.resolution.height;this.log.info(`big res: ${e}*${r} small res: ${this.resolution.width}*${this.resolution.height} `),s>n?o=s/n:(this.log.warn(`Small stream resolution is not smaller than big stream, which is invalid. big: ${e} * ${r} small: ${this.resolution.width} * ${this.resolution.height}`),o=s/(160*120)),super.resize(e/Math.sqrt(o),r/Math.sqrt(o))}};var gc=class extends bt{constructor(e,r){super(e,Y({name:"imageSource"},r));m(this,"_lastImage");m(this,"_totalFrames",0);m(this,"_autoResize",!1);m(this,"_canvasRendered");m(this,"videoCallbackId",0);m(this,"waitingFirstFrame",!0);m(this,"shouldUpdate",!0);this._autoResize=(r==null?void 0:r.autoResize)!==!1,Vt===16&&(this._canvasRendered=At(),Ae(this._canvasRendered,mc(this._image),di(o=>o instanceof HTMLCanvasElement?ye(o,"rendered"):pc()),ze(ye(this,"closed")),Pe(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let e=this.image;this.videoCallbackId&&e.cancelVideoFrameCallback(this.videoCallbackId),qr()&&!document.hidden&&(this.videoCallbackId=e.requestVideoFrameCallback((r,o)=>{this.waitingFirstFrame&&this.onFirstFrame(),document.hidden||(this._totalFrames=o.presentedFrames,this.update(1))}))}_render(e,r){var a;let{width:o,height:s}=this,{image:n}=this;if(n instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),{videoWidth:o,videoHeight:s}=n,!o||!s)return!1;n.width=o,n.height=s}else if(n instanceof HTMLImageElement||n instanceof ImageData||n instanceof ImageBitmap){if({width:o,height:s}=n,n!==this._lastImage)this._lastImage=n;else if(o===this.width&&s===this.height)return!0}else n instanceof HTMLCanvasElement||n instanceof OffscreenCanvas?({width:o,height:s}=n,this._lastImage=n):typeof VideoFrame!="undefined"&&n instanceof VideoFrame&&({displayWidth:o,displayHeight:s}=n,(a=this._lastImage)==null||a.close(),this._lastImage=n);if(!this._autoResize)return!0;if(this.width===o&&this.height===s&&this.totalFrames){if(r){this.useTexture();let d=this.context.ctx;d.texSubImage2D(d.TEXTURE_2D,0,0,0,d.RGBA,d.UNSIGNED_BYTE,n)}}else{if(r){this.useTexture();let d=this.context.ctx;d.texImage2D(d.TEXTURE_2D,0,d.RGBA,d.RGBA,d.UNSIGNED_BYTE,n)}this.resize(o,s)}return!0}get image(){return this._image}set image(e){var r;(r=this._canvasRendered)==null||r.next(e),this._image=e}render(e){return this._render(e,!0)}render2d(e){return this._render(e,!1)}},Ec=class extends gc{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",Ae(ye(this._player,Ge.PLAYER_STATE_CHANGED),ze(ye(this,"closed")),er(({state:s})=>s==="PLAYING"),Pe(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},Dr=class extends Ec{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(t,e,r){super(t,new Bt({id:r.name,track:e,muted:!0,container:null,objectFit:"contain",log:r.logger}),r),this.name="videoTrackSource",this._player.play()}replaceTrack(t){this.waitingFirstFrame=!0,this._player.setTrack(t),this._player.play()}close(){super.close(),this._player.stop()}},Zu=class extends bt{constructor(e,r,o){super(e,Ee(Y({name:"textSource"},o),{create2d:!0}));m(this,"hasChange",!0);m(this,"content","");this.ctx2d.textBaseline="top",this.content=r.content||"",r.font&&(this.font=r.font),r.color&&(this.color=r.color)}set font(e){this.ctx2d&&(this.ctx2d.font=e,this.hasChange=!0)}get font(){var e;return((e=this.ctx2d)==null?void 0:e.font)||""}set color(e){this.ctx2d&&(this.ctx2d.fillStyle=e,this.hasChange=!0)}get color(){var e;return((e=this.ctx2d)==null?void 0:e.fillStyle)||""}render2d(e){return this.ctx2d&&this.hasChange?(this.ctx2d.clearRect(0,0,this.width,this.height),this.drawMultilineText(0,0),this.hasChange=!1,!0):!1}render(e){return!1}resize(e,r){if(!this.ctx2d)return;let{color:o,font:s}=this;super.resize(e,r),this.color=o,this.font=s}drawMultilineText(e=0,r=0,o=1.2){if(!this.ctx2d)return;let s=this.ctx2d.measureText(this.content);r+=s.fontBoundingBoxAscent||s.actualBoundingBoxAscent||0;let n=this.font.match(/(\d+)px/),d=(n?parseInt(n[1],10):16)*o,l=this.content.split(`
32
- `);for(let p=0;p<l.length;p++)this.ctx2d.fillText(l[p],e,r+p*d)}};var PA=`
31
+ `,r.onclick=this.onQuestionClick.bind(this);let o=document.createElement("div");o.className=wh,o.innerText=`${Fr()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,n=s.querySelector(`.${Su}`);return n.appendChild(o),n.appendChild(r),n.appendChild(e),s}addDiaLog(){bo()||(Oh=!0,this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${tc}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",F.info("show autoplay dialog"),je.uploadEvent({log:ny}))}deleteDialog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null,Oh=!1)}onConfirm(){F.warn("confirm clicked, try resume stream"),U.emit(B.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDialog()}onCollapseClick(){let t=this._dialogNode.querySelector(`.${_E}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||je.uploadEvent({log:ay}),this._isCollapseClicked=!0}onQuestionClick(){window.open(yE,"_blank"),this._isQuestionClicked||je.uploadEvent({log:cy}),this._isQuestionClicked=!0}},rc=null;function Dn(){rc||(rc=new Mh)}function AE(){rc&&(rc.deleteDialog(),rc=null)}var Bt=class extends Jr{constructor(e){super(e,M.VIDEO);m(this,"stat",{});m(this,"_calculateTimeout",-1);m(this,"viewMirror",!1);m(this,"objectFit");m(this,"container");m(this,"canvas");m(this,"shouldRenderAlpha",!1);m(this,"_preSize",{width:0,height:0});this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,O(e.viewMirror)||(this.viewMirror=e.viewMirror),O(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}get isPlaying(){var e;return this._state!=="PLAYING"||this.element&&this.element.paused?!1:((e=this.track)==null?void 0:e.readyState)==="live"&&!this.track.muted}initializeElement(){var r;let e=document.createElement(M.VIDEO);this.track&&this.mode!==2&&(e.srcObject=new MediaStream([this.track])),e.muted=!0,e.setAttribute("id",`video_${this.id}`),e.setAttribute("style",this.styleAttribute),this.canvas&&this.canvas.setAttribute("style",this.styleAttribute),e.setAttribute("autoplay","autoplay"),e.setAttribute("playsinline","playsinline"),this.element=e,nt&&(e.poster="noposter"),(r=this.container)==null||r.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e=`width: 100%; height: 100%; object-fit: ${this.objectFit};${this.shouldRenderAlpha?"":"background-color: black"};`;return this.viewMirror&&(e+="transform: scaleX(-1);"),e}setContainer(e){var r;this.container=e,this.track&&this.elementToRender&&((r=this.container)==null||r.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(M.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(M.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent).add(M.RESIZE,this.handleElementEvent)}handleTrackEvent(e){var r;return e.type===M.MUTE&&((r=this.stat)!=null&&r.fps)&&(this.stat.fps=0),super.handleTrackEvent(e)}handleElementEvent(e){var o,s,n,a,d,l;if(this.mode===2)return;super.handleElementEvent(e);let r=e.type;if(r===M.PAUSE&&(this.container&&!this.container.isConnected&&(this._log.warn(`${this.kind} player has been remove, element ID: ${this.container.id}`),$r(500).then(()=>{var p;(p=this.container)!=null&&p.isConnected&&(this._pausedRetryCount=ts,this._log.info(`view container ${this.container.id} is in dom, reset pausedRetryCount`))})),this._pausedRetryCount>0&&!bo()&&!this._isPausedByUserCall&&(this._log.info(`[${ts-this._pausedRetryCount+1}/${ts}] ${this.kind} player auto resume when paused`),this.doResume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let p=this.element.style.transform;r===M.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=p.replace("scaleX(-1)",""):r===M.LEAVE_PICTURE_IN_PICTURE&&!p.includes("scaleX")&&(this.element.style.transform=`${p} scaleX(-1)`)}r===M.RESIZE&&(this._preSize.height!==((o=this.element)==null?void 0:o.videoHeight)||this._preSize.width!==((s=this.element)==null?void 0:s.videoWidth))&&(this._log.info(`video size changed to ${(n=this.element)==null?void 0:n.videoWidth}x${(a=this.element)==null?void 0:a.videoHeight}`),this._preSize.height=((d=this.element)==null?void 0:d.videoHeight)||0,this._preSize.width=((l=this.element)==null?void 0:l.videoWidth)||0,this.emit(Ge.RESIZE,{newWidth:this._preSize.width,newHeight:this._preSize.height}))}setCanvas(e,r=1){var o,s,n,a;this.canvas!==e&&((o=this.canvas)==null||o.remove(),e==null||e.setAttribute("style",this.styleAttribute),this.canvas=e,this.mode=e?r:0,this.mode===2&&this.setTrack(e.captureStream().getVideoTracks()[0]),e?((s=this.element)==null||s.remove(),(n=this.container)==null||n.appendChild(e)):this.element&&((a=this.container)==null||a.appendChild(this.element)))}setAttr(e){let r=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},e);r.style=Object.assign({width:"100%",height:"100%"},r.style),super.setAttr(r)}get mirror(){return this.viewMirror}setRect(e,r){this.elementToRender&&(this.elementToRender.style.width=`${e}px`,this.elementToRender.style.height=`${r}px`)}setViewMirror(e){this.elementToRender&&(this.elementToRender.style.transform=e?"scaleX(-1)":""),this.viewMirror=e}setObjectFit(e){this.elementToRender&&(this.elementToRender.style.objectFit=`${e}`),this.objectFit=e}setPoster(e){this.element&&(this.element.poster=e)}stop(e=0){var r;super.stop(e),(r=this.canvas)==null||r.remove()}play(){return this.element?this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender):this.initializeElement(),this.mode===2?Promise.resolve():super.play()}get elementToRender(){return this.canvas||this.element}setTrack(e){e!==this.track&&(this.unbindTrackEvents(),this.track=e,this.emit(Ge.MEDIA_TRACK_CHANGED,e),e!==null&&(this.bindTrackEvents(),this.element&&this.mode!==2&&(this.element.srcObject=new MediaStream([e]),this.element.remove()),this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender)))}getVideoFrame(){if(this.canvas)return this.canvas.toDataURL("image/png");if(!this.element)return"";let e=document.createElement("canvas");return e.width=this.element.videoWidth,e.height=this.element.videoHeight,e.getContext("2d").drawImage(this.element,0,0),e.toDataURL("image/png")}getElement(){return this.element}calculateStat(){try{if(zr()&&this.element&&this._calculateTimeout<0){let e=0,r=null,o=(s,n)=>{this.stat.width=n.width,this.stat.height=n.height,r&&(this.stat.fps=Math.round((n.presentedFrames-r.presentedFrames)/(s-e)*1e3)),e=s,r=n,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var a;return(a=this.element)==null?void 0:a.requestVideoFrameCallback(o)},2e3))};this.element.requestVideoFrameCallback(o)}}catch(e){this._log.warn("init stat failed",e)}}};function Gi(i,t){return A(this,null,function*(){if(!i.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield i.audioWorklet.addModule(t),F.info("worklet addModule success")}catch(e){throw F.info(`worklet addModule catch error. ${e.message}`),e}})}var ic;typeof AudioContext!="undefined"?ic=AudioContext:typeof webkitAudioContext!="undefined"?ic=webkitAudioContext:typeof mozAudioContext!="undefined"&&(ic=mozAudioContext);var Uh=1500,$t,bE=-1,Au=0,oc=-1,kh=!1,RE=0,vE=-1,CE=-1;NE();function NE(){try{if($t)return;$t=new ic({sampleRate:48e3}),$t.onstatechange=()=>{F.info(`context state: ${$t.state}${$t.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),wn()},clearTimeout(bE)}catch(i){F.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof ic}`),bE=setTimeout(NE,1e3)}}var wn=()=>{$t.state==="suspended"?(Au=_e(),uy(),Ro(),document.addEventListener("click",wn)):$t.state==="interrupted"?Ro():(Au&&(J.addNumber({key:507800,value:_e()-Au,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),Au=0),ly(),document.removeEventListener("visibilitychange",wn),document.removeEventListener("click",wn))},Ph=0,Lh=-1;function Ro(){return new Promise((i,t)=>{if($t.state==="running")return i();Date.now()-Ph<1e3?(clearTimeout(Lh),Lh=setTimeout(()=>{Ph=Date.now(),$t.resume().then(i,t)},1e3)):(clearTimeout(Lh),Ph=Date.now(),$t.resume().then(i,t))}).catch(i=>{F.warn(`context resume failed: ${i}`),document.addEventListener("visibilitychange",wn)})}document.addEventListener("click",wn);function uy(){oc===-1&&(oc=setTimeout(()=>{$t.state==="suspended"&&(kh=!0,U.emit("155",{isSuspended:!0}))},Uh))}function ly(){oc!==-1&&(clearTimeout(oc),oc=-1,kh&&(kh=!1,U.emit("155",{isSuspended:!1})))}function DE(){if(!ot||CE!==-1)return;let i=()=>{_e()-RE<500||($t&&$t.state==="running"&&$t.currentTime===vE&&(F.warn("context is fake running, auto resume"),$t.suspend().catch(t=>{F.warn(`context suspend failed: ${t}`)})),vE=$t.currentTime,RE=_e())};CE=setInterval(()=>{i()},2e3),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&i()})}var qe=i=>$t;var yt=class{constructor(t){this.name=t;m(this,"node");m(this,"node2");m(this,"pre",new Set);m(this,"next",new Set);m(this,"context");m(this,"connectedNodes",new Set);m(this,"nextInputChannelMap",new Map);m(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(t){this._channelCount=t,this.setChannelCount(this.node,t),this.setChannelCount(this.node2,t),this.next.forEach(e=>e.channelCount=t)}setChannelCount(t,e){!t||t instanceof ScriptProcessorNode||(t.channelCountMode="explicit",t.channelCount=e||this.channelCount||1)}setContext(t){this.context=t,this.node&&t.addMixWeight()}removeContext(){var t;this.node&&((t=this.context)==null||t.reduceMixWeight()),delete this.context}replaceNode(t){var e;if(t!==this.node)try{this.node?this._disconnect():(e=this.context)==null||e.addMixWeight(),this.node=t,this.setChannelCount(this.node),this.preNodeReconnect(),this.reconnect()}catch(r){F.error(r)}}setNode(t,e){var r;if(!this.node)try{(r=this.context)==null||r.addMixWeight(),this.node=t,this.setChannelCount(this.node),e&&(this.node2=e,this.setChannelCount(this.node2)),this.preNodeReconnect(),this.reconnect(),J.addSuccessEvent({key:502701})}catch(o){F.error(o),J.addFailedEvent({key:502701,error:o})}}deleteNode(){var t;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,(t=this.context)==null||t.reduceMixWeight(),this.preNodeReconnect(),J.addSuccessEvent({key:502702})}catch(e){F.error(e),J.addFailedEvent({key:502702,error:e})}}preNodeReconnect(){this.pre.forEach(t=>{t.node?t.reconnect():t.preNodeReconnect()})}connectNext(t){this.next.forEach(e=>{let r=this.nextInputChannelMap.get(e);t._connect(e.node,r)||e.connectNext(t)})}_connect(t,e=0){return!this.node||!t?!1:((this.node2||this.node).connect(t,0,e),this.connectedNodes.add(t),!0)}_disconnect(){this.connectedNodes.forEach(t=>{var e;return(e=this.node2||this.node)==null?void 0:e.disconnect(t)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(t,e=0){return this.next.add(t),t.pre.add(this),this.nextInputChannelMap.set(t,e),t}},bu=class extends yt{constructor(e=256){super();this.fftSize=e;m(this,"dataArray",new Uint8Array(0))}setNode(e){e.fftSize=this.fftSize,this.dataArray=new Uint8Array(e.frequencyBinCount),super.setNode(e)}getByteTimeDomainData(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),this.dataArray}get level(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),Math.max(...this.dataArray)/128-1}get timeDomainPathData(){let e=this.getByteTimeDomainData(),r=1,o=0,s=0,n=`M${o},${s}`;for(let a=0;a<e.length;a++)s=e[a]/128*100/2,n+=`L${o},${s}`,o+=r;return n}},sc=class{constructor(){m(this,"source",new yt);m(this,"gain",new yt);m(this,"destination",new yt)}get volume(){var t;return((t=this.gain.node)==null?void 0:t.gain.value)||1}setVolume(t){if(t===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(qe().createGain()),this.gain.node.gain.value=t}replaceSource(t){let e=nc(t);e&&this.source.replaceNode(e)}get track(){var t;return(t=this.stream)==null?void 0:t.getAudioTracks()[0]}get stream(){var t;return(t=this.destination.node)==null?void 0:t.stream}},On=class extends sc{constructor(e){super();this.context=e;m(this,"aec",new yt("aec"));m(this,"mixNode",new yt("mixNode"));m(this,"silentNode",new yt("silentNode"));m(this,"denoiser",new yt("denoiser"));m(this,"voiceChanger",new yt("voiceChanger"));this.source.pipeTo(this.aec).pipeTo(this.denoiser).pipeTo(this.voiceChanger).pipeTo(this.gain).pipeTo(this.destination),this.silentNode.pipeTo(this.mixNode).pipeTo(this.aec,1)}get isProcessEnabled(){return this.aec.node||this.denoiser.node||this.voiceChanger.node||this.gain.node}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.aec.setContext(this.context),this.silentNode.setContext(this.context),this.mixNode.setContext(this.context),this.denoiser.setContext(this.context),this.voiceChanger.setContext(this.context),this.gain.setContext(this.context),this.context.inputs.add(this))}disconnect(){this.context.inputs.has(this)&&(this.destination.deleteNode(),this.source.removeContext(),this.aec.removeContext(),this.silentNode.removeContext(),this.mixNode.removeContext(),this.denoiser.removeContext(),this.voiceChanger.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.aec.deleteNode(),this.silentNode.deleteNode(),this.mixNode.deleteNode(),this.denoiser.deleteNode(),this.voiceChanger.deleteNode(),this.source.deleteNode(),this.disconnect()}setVolume(e){if(e===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(this.context.audioContext.createGain()),this.gain.node.gain.value=e}},Ru=class{constructor(){m(this,"audioContext",qe("audio-mixer"));m(this,"destination",this.audioContext.createMediaStreamDestination());m(this,"inputs",new Set);m(this,"mixWeight",0);this.destination.channelCount=1}addMixWeight(t=1){this.mixWeight+=t,this.mixWeight-1===t+1>>1&&this.mixOnChange()}reduceMixWeight(t=1){this.addMixWeight(-t)}close(){this.inputs.forEach(t=>t.remove())}get mixTrack(){return this.destination.stream.getAudioTracks()[0]}},wE=new WeakMap;function nc(i){try{let t=wE.get(i);if(t)return t;let e=qe();if(i instanceof HTMLAudioElement)t=e.createMediaElementSource(i);else if(i instanceof MediaStreamTrack)t=e.createMediaStreamSource(new MediaStream([i]));else return i;return wE.set(i,t),t}catch(t){if(lt&&t instanceof Error&&t.name==="NotSupportedError")F.warn(t);else throw t}}var Er=class Er{constructor(t){m(this,"_volume",0);m(this,"_volumeDb",0);m(this,"_log");m(this,"_scriptProcessorNode",null);m(this,"_audioWorkletNode",null);m(this,"_interval",200);m(this,"ready",this.preload());let{log:e}=t;this._log=e,U.on(B.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-Er.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!Er.workletReady){let t='class VolumeMeterWorklet extends AudioWorkletProcessor{constructor(){super(),this.volume=0,this.intervalTime=200,this.tick=200,this.isStop=!1,this.cache=[],this.sentFirstInfo1=!1,this.unmute=!1,this.port.onmessage=t=>{var e=t.data;switch(e.name){case"chunk":this.cache.push(...e.data),this.sentFirstInfo1||(this.port.postMessage({cl:e.data.length}),this.sentFirstInfo1=!0);break;case"setIntervalTime":this.intervalTime=e.intervalTime;break;case"unmute":this.unmute=!0;break;case"stop":this.isStop=!0}}}process(t,s){t=t[0],s=s[0];if(t||s){if(this.isStop)return!1;var i=s&&s[0]?s[0].length:0,h=this.cache.length,a=(i<h?(s[0].set(this.cache.slice(0,i)),this.cache=this.cache.slice(i)):this.unmute&&s[0].set(t[0]),(i<h?s:t)[0]);if(a){let e=0;for(let t=0;t<a.length;++t)e=Math.max(Math.abs(a[t]),e);s=a.reduce((t,e)=>t+e*e,0)/a.length;this.volume=e,this.tick-=a.length,this.tick<0&&(this.tick+=this.intervalTime/1e3*sampleRate,this.port.postMessage({volume:this.volume,volumeDb:Math.max(10*Math.log10(s)+100,0)/100,cacheLen:h,outputLen:i}))}}return!0}}registerProcessor("volume-meter",VolumeMeterWorklet);';Er.workletReady=Gi(Er.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return Er.workletReady.then(()=>this.initAudioWorklet()).catch(t=>(this._log.error(`volumeMeter preload error: ${t}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(Er.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=e=>{Er.lastMessageTime=Date.now(),this._volume=e.data.volume||0,this._volumeDb=e.data.volumeDb||0,!t&&e.data.cacheLen&&e.data.outputLen&&(this._log.warn("worklet play success"),t=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(t){this._log.error(`volumeMeter init audio worklet error: ${t}`),je.logFailedEvent({userId:this._log.userId,eventType:Ar.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=qe("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{Er.lastMessageTime=Date.now();let e=t.inputBuffer.getChannelData(0),r=0;for(let o=0;o<e.length;++o)r+=e[o]*e[o];this._volume=Math.sqrt(r/e.length)||0}}catch(t){this._log.error(`volumeMeter init script processor error: ${t}`)}}destroy(){this._scriptProcessorNode&&(this._scriptProcessorNode.onaudioprocess=null),this._audioWorkletNode&&(this._audioWorkletNode.port.postMessage({name:"stop"}),this._audioWorkletNode.port.onmessage=null),this._audioWorkletNode=null,this._scriptProcessorNode=null,U.off(B.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}getVolumeDb(){return Math.floor(this._volumeDb*100)}handleAudioLevelInterval(t){var r;let{interval:e}=t;this._interval=e,(r=this._audioWorkletNode)==null||r.port.postMessage({name:"setIntervalTime",intervalTime:e})}};m(Er,"lastMessageTime",0),m(Er,"audioContext",qe("volume-meter")),m(Er,"workletReady");var vu=Er,ac=class extends yt{constructor(e){super();m(this,"_volumeMeter");this._volumeMeter=new vu(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return A(this,null,function*(){yield this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)})}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}getVolumeDb(){return this._volumeMeter.getVolumeDb()}write(e){if(this.node){let r=e.allocationSize({planeIndex:0}),o=new Float32Array(r>>2);e.copyTo(o,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:o},[o.buffer]),e.close()}}},Cu=vu;var PE=bi(ki(),1);var ME=i=>t=>t.deviceId===i;var cc=class{constructor(t,e){m(this,"kind");m(this,"type");m(this,"devices",[]);this.kind=t,this.type=e}update(t,e){let r=t.filter(o=>o.kind===`${this.kind}${this.type.toLocaleLowerCase()}`);if(this.devices.length===1&&xn(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(ME(o.deviceId))){let s=`${this.kind}${this.type}Added`;F.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}}),this.devices.forEach(o=>{if(o.deviceId&&!r.find(ME(o.deviceId))){let s=`${this.kind}${this.type}Removed`;F.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}})),this.devices=r}hasDevice(t){return!!this.devices.find(e=>e.deviceId===t)}},Vh=class extends PE.EventEmitter{constructor(){super();m(this,"audioInputs",new cc(M.AUDIO,"Input"));m(this,"videoInputs",new cc(M.VIDEO,"Input"));m(this,"audioOutputs",new cc(M.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||ft.run("interval",()=>{this.update()},{delay:1e4}))}init(){Mn().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return A(this,arguments,function*(e=0){let r=yield Mn(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}hasBlueTooth(){var r;if(((r=qe())==null?void 0:r.outputLatency)*1e3>150)return!0;let e=["bluetooth","air","wireless","bt","tws","buds","headset","headphone"];return this.audioOutputs.devices.some(o=>e.some(s=>o.label.toLowerCase().includes(s)))||this.audioInputs.devices.some(o=>e.some(s=>o.label.toLowerCase().includes(s)))}},at=ha||Ks?null:new Vh;function xn(i){return i.deviceId===i.groupId&&i.groupId===""}function Mn(){return A(this,arguments,function*(i=0){if(Hi()||!fu())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{xn(r)&&(r.kind===M.AUDIO_INPUT?e.audio=!0:r.kind===M.VIDEO_INPUT&&(e.video=!0))}),i===2&&(e.audio=!1),i===1&&(e.video=!1),e.audio||e.video){let r;try{r=yield navigator.mediaDevices.getUserMedia(e),e.audio&&Ro()}catch(o){F.debug("capture before getDevices failed: ",o)}t=yield navigator.mediaDevices.enumerateDevices(),r==null||r.getTracks().forEach(o=>o.stop())}}return t.map((e,r)=>{let o={kind:e.kind,deviceId:e.deviceId,groupId:e.groupId,label:e.label||`${e.kind}_${r}`};return e.deviceId.length>0&&Fh.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function ar(i=!1){return at.update(i?1:0).then(t=>t.audioInputs.devices)}function cr(i=!1){return at.update(i?2:0).then(t=>t.videoInputs.devices)}var xE=!1;function LE(){return A(this,null,function*(){try{xE||(xE=!0,F.info(`speakers:${(yield vo()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function vo(i=!1){return A(this,null,function*(){return(ot||_t)&&(i=!1),at.update(i?1:0).then(t=>t.audioOutputs.devices)})}var Fh=new Set;function kE(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("camera")||t.includes("webcam"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${M.VIDEO_INPUT}`;return!!Fh.has(r)}function UE(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("mic")||t.includes("\u9EA6\u514B\u98CE"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${M.AUDIO_INPUT}`;return!!Fh.has(r)}function Bh(i,t){return A(this,null,function*(){let r=(yield ar()).find(o=>o.deviceId===rs);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function VE(s){return A(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===M.AUDIO&&i===rs?yield Bh(e,r):!0})}var Nu,$h=class extends sc{constructor(e){super();this.log=e;m(this,"volumeMeter");m(this,"volumeMeterAfter3A");m(this,"volumeDestination");m(this,"analyser",new bu);this.volumeMeter=new ac({log:this.log}),this.volumeMeterAfter3A=new ac({log:this.log}),this.volumeDestination=new yt,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},Pn=class i extends Jr{constructor(e){super(e,M.AUDIO);m(this,"_outputDeviceId");m(this,"_volume",1);m(this,"_destination",qe("player").createMediaStreamDestination());m(this,"pipeline");m(this,"volumeMeterMode","worklet");m(this,"enableVolumeControlInIOS");this.enableVolumeControlInIOS=e.enableVolumeControlInIOS,this.mode=0,e.url&&(this.url=e.url),this.pipeline=new $h(this._log)}get duration(){var e;return Math.floor((((e=this.element)==null?void 0:e.duration)||0)*1e3)}get currentTime(){var e;return Math.floor((((e=this.element)==null?void 0:e.currentTime)||0)*1e3)}set currentTime(e){this.element&&(this.element.currentTime=e/1e3)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if((Cr==="15.2"||Cr==="15.3"||Cr==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let o=Nu||new Audio;o.setAttribute("autoplay","autoplay"),o.srcObject=this.getMediaStream(),o.muted=this.muted,this.url&&(o.crossOrigin="anonymous",o.src=this.url),this.element=o,Ve(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===Nu&&(Nu=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(Ge.TIME_UPDATE,this.currentTime)),this.bindElementEvents()}play(e){return A(this,null,function*(){if(!(!this.track&&!this.url))return!this.pipeline.source.node&&this.track&&this.pipeline.replaceSource(this.track),this.element||this.initializeElement(e==null?void 0:e.volume),this._outputDeviceId&&(yield this.setSinkId(this._outputDeviceId)),this.volumeMeterMode==="worklet"?(this.pipeline.volumeMeter.init(),this.pipeline.volumeMeterAfter3A.init()):this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(qe("player").createAnalyser()),LE(),Ut(i.prototype,this,"play").call(this)})}stop(e=0){this.pipeline.destroy(),super.stop(e)}setVolume(e){this._volume=e,this.element&&(this.element.volume=e)}setSinkId(e){return A(this,null,function*(){var r,o;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield(o=(r=this.element).setSinkId)==null?void 0:o.call(r,e))})}get useDestination(){return!!this.pipeline.stream}setLoop(e){this.element&&(this.element.loop=e)}getAudioLevel(){return this.pipeline.volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this.pipeline.volumeMeter.getInternalAudioLevel()}getInternalAudioLevelAfter3A(){return this.pipeline.volumeMeterAfter3A.getInternalAudioLevel()}},Du=class extends Pn{setTrack(t){this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(Ge.MEDIA_TRACK_CHANGED,t),t&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([t]))))}},wu=class extends Pn{constructor(e){super(e);m(this,"_sourceElement");m(this,"_output",new yt);this.pipeline.source.pipeTo(this.pipeline.gain),this.pipeline.gain.pipeTo(this.pipeline.volumeMeter).pipeTo(this._output),this.pipeline.gain.pipeTo(this.pipeline.destination)}setOutput(){this.mode=1,this._output.setNode(qe("player").destination)}write(e){this.pipeline.volumeMeter.write(e)}setTrack(e){var r,o,s;((o=(r=this.element)==null?void 0:r.error)==null?void 0:o.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(Ge.MEDIA_TRACK_CHANGED,e),e?(this.bindTrackEvents(),this._sourceElement?this._sourceElement.srcObject=new MediaStream([e]):!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([e])),this.pipeline.source.channelCount=((s=e.getSettings())==null?void 0:s.channelCount)||1,this.pipeline.replaceSource(e)):this.pipeline.source.deleteNode())}setVolume(e){if(this._volume=e,this.useDestination)this.pipeline.setVolume(e),this._log.info(`set pipeline volume: ${e}`);else if(e<=1&&!ot)this.element?(this._log.info(`set element volume: ${e}`),this.element.volume=e):this._log.info("set element volume: no element");else{if(ot)if(this.enableVolumeControlInIOS)DE();else return;if(lt&&!this.pipeline.source.node){this._log.warn("set pipeline volume failed: no source node");return}this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),St(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play())}}stop(e=0){this.pipeline.destroy();let r=this._sourceElement||this.element;r&&vr&&(Nu=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var Ss=class extends ue{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:n=o===1?wu:Bt}){var a;super();m(this,"id",Va());m(this,"userId","");m(this,"isRemote");m(this,"mediaType");m(this,"room");m(this,"user");m(this,"_log");m(this,"_inputTrack");m(this,"_outputTrack");m(this,"isPlayCalled");m(this,"container",null);m(this,"player");m(this,"subVideoPlayerMap");m(this,"muted",!1);m(this,"abortCtrl");m(this,"objectFit","cover");m(this,"mirror");m(this,"rotation");m(this,"isScreen",!1);m(this,"manager");m(this,"trackSettings");m(this,"isFirstVideoFrameEmitted",!1);this.userId=e||"",this.mediaType=o,this._log=F.createLogger({parent:s==null?void 0:s.getLogger(),id:`${this.kind[0]}t`,userId:(a=s||this.room)==null?void 0:a.userId,remoteUserId:this instanceof Xr?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof Xr}),this.player=new n({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log,enableVolumeControlInIOS:s==null?void 0:s.enableVolumeControlInIOS}),this.player.on(Ge.PLAYER_STATE_CHANGED,d=>{if(U.emit(B.PLAYER_STATE_CHANGED,Y({track:this},d)),this.emit("player-state-changed",d),d.state==="PLAYING"&&this.room){let l=!0;for(let{remoteAudioTrack:p,remoteVideoTrack:f,remoteAuxiliaryTrack:g}of[...this.room.remotePublishedUserMap.values()])if(p.isAvailable&&!p.player.isPlaying||f.isAvailable&&!f.player.isPlaying||g.isAvailable&&!g.player.isPlaying){l=!1;break}l&&bo()&&AE()}}),this.kind===M.VIDEO&&(this.player.on(Ge.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(Ge.LOADED_DATA),U.emit(B.VIDEO_LOADED_DATA,{track:this})}),this.player.on(Ge.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(Ge.LOADED_META_DATA)}),this.player.on(Ge.MEDIA_TRACK_CHANGED,d=>{var l;(l=this.subVideoPlayerMap)==null||l.forEach(p=>p.setTrack(d))}),this.player.on(Ge.RESIZE,d=>{this.emitFirstVideoFrameEvent(Ge.RESIZE),this.emit("video-size-changed",Y({userId:this.userId,streamType:this.mediaType===2?"auxiliary":"main"},d))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(Ge.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||F}get kind(){return this.mediaType===1?M.AUDIO:M.VIDEO}get isAudio(){return this.kind===M.AUDIO}get strMediaType(){return this.mediaType===4?M.VIDEO:this.mediaType===2?M.SCREEN:M.AUDIO}get streamType(){return(this.mediaType&2)===0?"main":"auxiliary"}get isMediaTrackActive(){return this.mediaTrack?!this.mediaTrack.muted&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled:!1}play(e,r){return A(this,null,function*(){let o=ut(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(r)}`),r&&!O(r.muted)&&this.setPlayerMute(r.muted),r&&!O(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof Bt&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(this.container=o,this.player.setContainer(o)),ut(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),r)));return}if(r&&!O(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===M.VIDEO)&&this.setPlayerMute(!0),r&&!O(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof Bt&&(this.player.setObjectFit(this.objectFit),r&&!O(r.poster)&&this.player.setPoster(r.poster)),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof Bt&&this.player.setContainer(o)),U.emit(B.PLAY_TRACK_START,{track:this}),!this._outputTrack){this.log.info("play has not mediaTrack, abort");return}this._log.info(`play with options: ${JSON.stringify(r)}`);try{this.player.setTrack(this.playerMediaTrack),yield this.player.play(r),ut(e)&&e.length>1&&(yield this.playSubContainer(e.slice(1),r))}catch(s){throw this.handleAutoPlayFailed(s),s}})}setMirror(e,r){if(this.isScreen||this.kind!==M.VIDEO||O(e)||e===this.mirror)return;this.mirror=e;let o=this.player;r&&(o=r);let s=this.manager;if(Ye(this.mirror)){o.setViewMirror(this.mirror),!this.isRemote&&s&&(s.mirror=!1);return}switch(this.mirror){case"view":{s&&(s.mirror=!1),o.setViewMirror(!0);break}case"publish":{s&&(s.mirror=!0),o.setViewMirror(!0);break}case"both":s&&(s.mirror=!0),o.setViewMirror(!1)}}playSubContainer(e,r){return A(this,null,function*(){if(!this._outputTrack||this.kind===M.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((s,n)=>{var a;e.find(d=>n===d)||(s.stop(),(a=this.subVideoPlayerMap)==null||a.delete(n))});for(let[s,n]of e.entries()){let a=this.subVideoPlayerMap.get(n);a?r&&(O(r.objectFit)||a.setObjectFit(r.objectFit)):this.subVideoPlayerMap.set(n,new Bt({id:this.userId||this.id,track:this.playerMediaTrack,container:n,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:`vp-sub${s+1}`})}))}let o=[...this.subVideoPlayerMap.values()];for(let s of o)s.setViewMirror(this.player.mirror),yield s.play()})}setAudioOutput(e){return this.player.setSinkId(e)}setAudioVolume(e){this.player.setVolume(e)}getAudioLevel(){return this.player.getAudioLevel()||0}getInternalAudioLevel(){var e;return((e=this.player)==null?void 0:e.getInternalAudioLevel())||0}stop(e=!1){this.isPlayCalled&&(this.isPlayCalled=!1,this.player&&(this.log.info(`stop ${this.kind} player`),this.player.stop(Nm(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(r=>{r.stop()}),this.container=null)}resume(){return A(this,null,function*(){var e;this.isPlayCalled&&(yield(e=this.player)==null?void 0:e.resume())})}close(){this.log.info("close"),this.isPlayCalled&&this.stop(!0)}setMute(e){this.muted=e,this._inputTrack&&(this._inputTrack.enabled=!e),this._outputTrack&&(this._outputTrack.enabled=!e),this.emit(e?"mute":"unmute",this),U.emit(e?B.TRACK_MUTED:B.TRACK_UNMUTED,{track:this})}setPlayerMute(e){this.player.setMuted(e)}get mediaTrack(){return this._inputTrack||null}get outMediaTrack(){return this._outputTrack||null}get playerMediaTrack(){return this.outMediaTrack}installTrackEvent(e){Ft(e,e).add(M.MUTE,this.onTrackMuted).add(M.UNMUTE,this.onTrackUnmuted).add(M.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===M.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){St(e)}setInputMediaStreamTrack(e){var o;let r=this._inputTrack;if(e!==r)return this._inputTrack=e,this.trackSettings=(o=e.getSettings)==null?void 0:o.call(e),e.enabled=!this.muted,r&&this.uninstallTrackEvent(r),this.installTrackEvent(e),this.emit("input-media-track-changed",e||null,r||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var o;let r=this._outputTrack;e!==r&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",e.label):this.log.info("setOutputMediaStreamTrack",(o=e.getSettings)==null?void 0:o.call(e).deviceId,e.label),this._outputTrack=e,this._inputTrack&&(this._outputTrack.contentHint=this._inputTrack.contentHint,this._outputTrack.enabled=this._inputTrack.enabled),this.updatePlayingState(!!e),this.emit("output-media-track-changed",e))}setMediaType(e){this.mediaType=e}updatePlayingState(e){if(this.isPlayCalled){if(e){if(this.player.setTrack(this.playerMediaTrack),this.player.isStopped){this.player.play().catch(r=>this.handleAutoPlayFailed(r)),this.log.info(`playing state updated, play ${this.kind}`);return}}else if(!this.player.isStopped){this.player.stop(Nm(this)?this.jitterBufferDelay:0),this.log.info(`playing state updated, stop ${this.kind}`);return}}this.log.debug(`updatePlayingState abort ${this.isPlayCalled} ${e} ${this.player.isStopped}`)}handleAutoPlayFailed(e){return A(this,null,function*(){var o;this.log.warn("handleAutoPlayFailed",e);let r=()=>{this.resume().then(()=>{document.removeEventListener("click",r,!0)})};if(this.room&&this.room.enableAutoPlayDialog){if((Oi||Mi)&&(yield $r(100),(o=this.player)!=null&&o.isPlaying))return;Dn()}else document.addEventListener("click",r,!0);U.once(B.LOCAL_TRACK_CAPTURE_SUCCESS,({track:s})=>{s.kind==="audio"&&bo()&&!this.player.isPlaying&&this.isRemote&&this.isAvailable&&r()}),this.emit("error",e)})}getVideoFrame(){return this.player instanceof Bt?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var n,a,d;if(this.isFirstVideoFrameEmitted)return;let r=(n=this.mediaTrack)==null?void 0:n.getSettings(),o=(r==null?void 0:r.width)||((a=this.player.element)==null?void 0:a.videoWidth)||0,s=(r==null?void 0:r.height)||((d=this.player.element)==null?void 0:d.videoHeight)||0;e===Ge.RESIZE&&!o&&!s||e===Ge.LOADED_META_DATA&&!o&&!s||(e===Ge.LOADED_DATA&&!o&&!s&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,pr(this.rotation)&&([o,s]=[s,o]),this.emit("first-video-frame",{width:o,height:s,streamType:this.streamType,userId:this.isRemote?this.userId:""}))}onTrackMuted(){this._log.warn(`${this.kind} track is unable to provide media output`)}onTrackUnmuted(){this._log.info(`${this.kind} track is able to provide media output`)}onTrackEnded(){this._log.warn(`${this.kind} track ended`)}};Z([et([],ue.INIT,{sync:!0})],Ss.prototype,"close",1);var my=Object.prototype.hasOwnProperty,{toString:g0}=Object.prototype;function hy(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Xt(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(my.call(i,t))return!1;return!0}}return!1}var dc=hy;var py=function(i){return A(this,null,function*(){let t=gy(i);F.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];if(t.audio&&(e=yield ar(),F.info(`microphones: ${br(e.map(s=>Ee(Y({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield cr(),F.info(`cameras: ${br(r,{keysToInclude:o})}`),!Ye(t.video)&&t.video.facingMode==="user"&&!t.video.deviceId)){let n=r.filter(a=>!a.label.includes("infrared")).find(a=>a.label.includes("facing front"));n&&(t.video.deviceId=n.deviceId,F.info(`exclude infrared camera: ${JSON.stringify(t)}`))}try{let s=yield navigator.mediaDevices.getUserMedia(t);return _h&&s.getTracks().forEach(n=>{var d;let a=n.getCapabilities();F.info(`${n.kind} capabilities: ${br(a,{keysToInclude:yd})}`),!O(i.echoCancellation)&&((d=a.echoCancellation)==null?void 0:d.indexOf(i.echoCancellation))===-1&&F.warn(`Invalid argument for 'echoCancellation'. Expected one of [${JSON.stringify(a.echoCancellation)}], but received '${i.echoCancellation}'`)}),t.audio&&Ro(),s}catch(s){let{message:n}=s;throw s.name==="NotFoundError"&&(i.video&&r&&r.length===0&&(n=He({key:$e.CAMERA_NOT_FOUND})),i.audio&&e&&e.length===0&&(n=He({key:$e.MICROPHONE_NOT_FOUND}))),new ae({code:q.INITIALIZE_FAILED,name:s.name,message:n,constraint:s.constraint})}})},fy=go({retryFunction:py,settings:{retries:3,timeout:500},onError:({error:i,retry:t,reject:e,retryFuncArgs:r,retriedCount:o})=>{let s=o+1;i.name==="NotReadableError"||i.name==="OverconstrainedError"||i.name==="AbortError"?(s===1?(r[0].video&&(r[0].maxResolution=!1,(!_t||r[0].width*r[0].height<=1920*1080)&&r[0].frameRate&&(r[0].frameRate=r[0].frameRate>10?10:5)),r[0].retryWhenExactFailed&&r[0].useExactDeviceId&&(r[0].useExactDeviceId=!1)):s===2?r[0].useDeviceIdOnly=!0:s===3&&!r[0].useExactDeviceId&&(r[0].useTrueAsConstraint=!0),t()):e(i),r[0].microphoneId&&FE(r[0].microphoneId,!1),r[0].cameraId&&FE(r[0].cameraId,!0)},onRetrying:i=>{F.warn(`getUserMedia NotReadableError observed, retrying [${i}/3]`)},onRetryFailed:i=>{je.logFailedEvent({eventType:Ar.GET_USER_MEDIA_RETRY,error:i})},onRetrySuccess:i=>{je.logSuccessEvent({eventType:Ar.GET_USER_MEDIA_RETRY}),je.uploadEvent({log:`stat-${Ar.GET_USER_MEDIA_RETRY}-success-${i}`})}});function FE(i,t){return A(this,null,function*(){let r=(t?yield cr():yield ar()).find(o=>o.deviceId===i);r&&Xe(r.getCapabilities)&&F.warn(br(r.getCapabilities(),{keysToInclude:yd}))})}function gy(i){return{audio:Ey(i),video:_y(i)}}function Ey(i){if(!i.audio)return!1;if(i.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:i.sampleRate};return!dc(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:(Ve(i.channelCount)&&(t.channelCount=i.channelCount),(Ye(i.echoCancellation)||i.echoCancellation==="remote-only"||i.echoCancellation==="all")&&(t.echoCancellation=i.echoCancellation),Ye(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),Ye(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),dc(t)?!0:t)}function _y(i){if(!i.video)return!1;if(i.useTrueAsConstraint)return!0;let{maxResolution:t=!0}=i,e={};return i.cameraId?e.deviceId=i.useExactDeviceId?{exact:i.cameraId}:i.cameraId:i.facingMode&&(e.facingMode=i.facingMode),i.useDeviceIdOnly&&!dc(e)?e:(i.width&&(e.width={ideal:i.width},t&&!lt&&(e.width.max=i.width)),i.height&&(e.height={ideal:i.height},t&&!lt&&(e.height.max=i.height)),lt&&Gr&&i.width&&i.height&&i.width*i.height<352*288&&(e.width=i.width,e.height=i.height),i.frameRate&&(e.frameRate=i.frameRate),dc(e)?!0:e)}var BE=fy;function Co(i){return xe((t,e)=>function(...r){return A(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function $E(i){return xe((t,e)=>function(...r){return A(this,null,function*(){try{return yield t.apply(this,r)}catch(o){i.call(this,o)}})})}function xe(i){return function(t,e,r){return r.value=i(r.value,e),r}}var HE=(()=>{let i=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&F.info(`visibility change: ${document.visibilityState}`),!i&&(document.addEventListener("visibilitychange",()=>{F.info(`visibility change: ${document.visibilityState}`),t=document.visibilityState}),i=!0)}})();var Ty=0,Ou=class{constructor(){m(this,"log",F.createLogger({id:`fq${++Ty}`}));m(this,"isRunning",!1);m(this,"queue",[])}get length(){return this.queue.length}get lastQueueItem(){return this.length===0?null:this.queue[this.length-1]}push(t,e=!1){var s,n;let r=Y({},t),o=new Promise((a,d)=>{r.resolve=a,r.reject=d});return r.promise=o,e?this.length<=1?this.queue.push(r):(n=(s=this.lastQueueItem)==null?void 0:s.promise)==null||n.then(r.resolve,r.reject):this.queue.push(r),this.log.debug(`push ${this.length}`),this.isRunning||this.callNext(),o}shift(){let t=this.queue.shift();return this.log.debug(`shift ${this.length}`),t}callNext(){if(this.isRunning||this.length===0)return;this.log.debug("callNext ",this.length);let{fn:t,args:e,context:r,resolve:o,reject:s}=this.queue[0];this.isRunning=!0,t.apply(r,e).then(o,s).finally(()=>{this.isRunning=!1,this.shift(),this.callNext()})}},WE=new WeakMap,GE=new WeakMap;function Mu(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let n=WE.get(this)||new Ou;return WE.set(this,n),n.push({fn:o,args:s,context:this},i)},r}}function xu(i){return function(t,e,r){let o=r.value,s=n=>i(...n);return r.value=function(...n){let a=GE.get(this)||new Map,d=a.get(s(n))||new Ou;return a.set(s(n),d),GE.set(this,a),d.push({fn:o,args:n,context:this})},r}}function Pu(i,t){return xe((e,r)=>function(...o){let s=i;try{let n=e.apply(this,o),a=_e();return po(n)?n.then(d=>(t?J.addSuccessEvent({key:s,cost:_e()-a}):J.addSuccessEvent({key:s}),d)).catch(d=>{throw J.addFailedEvent({key:s,error:d}),d}):(J.addSuccessEvent({key:s}),n)}catch(n){throw J.addFailedEvent({key:s,error:n}),n}})}var Np={};Ai(Np,{Events:()=>gt,Inspect:()=>Nr,LastSink:()=>ys,Sink:()=>fe,Subscribe:()=>As,TimeoutError:()=>uc,audit:()=>rA,bindCallback:()=>$y,bindNodeCallback:()=>Hy,buffer:()=>Ny,bufferCount:()=>Cy,bufferTime:()=>SA,call:()=>jE,catchError:()=>bp,combineLatest:()=>zE,concat:()=>yy,concatMap:()=>hA,concatMapTo:()=>pA,count:()=>jy,create:()=>ke,debounce:()=>iA,debounceTime:()=>oA,defer:()=>JE,delay:()=>yA,deliver:()=>Te,dispose:()=>Lu,elementAt:()=>sA,empty:()=>pc,every:()=>uA,exhaustMap:()=>EA,exhaustMapTo:()=>_A,expand:()=>AA,filter:()=>er,find:()=>nA,findIndex:()=>aA,first:()=>cA,fromAnimationFrame:()=>Fy,fromArray:()=>xy,fromEvent:()=>ye,fromEventPattern:()=>Py,fromFetch:()=>Ly,fromIterable:()=>ky,fromPromise:()=>YE,fromReadableStream:()=>Vy,fromReader:()=>Uy,groupBy:()=>TA,identity:()=>Iy,ignoreElements:()=>Xy,iif:()=>by,inspect:()=>qE,interval:()=>Jh,last:()=>dA,map:()=>Do,mapTo:()=>mA,max:()=>qy,merge:()=>lc,mergeMap:()=>fA,mergeMapTo:()=>gA,min:()=>zy,never:()=>Wy,nothing:()=>We,of:()=>My,pairwise:()=>lA,pipe:()=>Ae,race:()=>qh,range:()=>By,reduce:()=>Xh,retry:()=>vA,scan:()=>Ap,setAsapScheduler:()=>Oy,share:()=>ji,shareReplay:()=>Ay,skip:()=>Yy,skipUntil:()=>Zy,skipWhile:()=>Bu,startWith:()=>mc,subject:()=>At,subscribe:()=>Pe,sum:()=>Jy,switchMap:()=>ui,switchMapTo:()=>qi,take:()=>Qr,takeLast:()=>Qy,takeUntil:()=>ze,takeWhile:()=>ZE,tap:()=>Cs,throttle:()=>eA,throwError:()=>Gy,timeInterval:()=>IA,timeout:()=>Cp,timer:()=>hc,toPromise:()=>bA,toReadableStream:()=>RA,withLatestFrom:()=>vy,zip:()=>Ry});function We(...i){}var jE=i=>i(),Iy=i=>i;function Lu(){this.dispose()}var qE=()=>typeof __FASTRX_DEVTOOLS__!="undefined",Sy=1,Nr=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new Hh(t,this,this.streamId++);return gt.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},ys=class{constructor(){this.defers=new Set,this.disposed=!1}next(t){}complete(){this.dispose()}error(t){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=We,this.error=We,this.next=We,this.dispose=We,this.subscribe=We,this.doDefer()}subscribe(t){return t instanceof Nr?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(jE),this.defers.clear()}defer(t){this.defers.add(t)}removeDefer(t){this.defers.delete(t)}reset(){this.disposed=!1,delete this.complete,delete this.next,delete this.dispose,delete this.next,delete this.subscribe}resetNext(){delete this.next}resetComplete(){delete this.complete}resetError(){delete this.error}},fe=class extends ys{constructor(t){super(),this.sink=t,t.defer(this.bindDispose)}next(t){this.sink.next(t)}complete(){this.sink.complete()}error(t){this.sink.error(t)}},As=class extends ys{constructor(t,e=We,r=We,o=We){if(super(),this._next=e,this._error=r,this._complete=o,this.then=We,t instanceof Nr){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{gt.defer(s,0)}),gt.create(s),gt.pipe(s),this.sourceId=s.id,this.subscribe(t),gt.subscribe({id:s.id,end:!0}),e==We?this._next=n=>gt.next(s,0,n):this.next=n=>{gt.next(s,0,n),e(n)},o==We?this._complete=()=>gt.complete(s,0):this.complete=()=>{this.dispose(),gt.complete(s,0),o()},r==We?this._error=n=>gt.complete(s,0,n):this.error=n=>{this.dispose(),gt.complete(s,0,n),r(n)}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function Ae(i,...t){return t.reduce((e,r)=>r(e),i)}function ke(i,t,e){if(qE()){let r=Object.defineProperties(Object.setPrototypeOf(i,Nr.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:t,writable:!0,configurable:!0},args:{value:e,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});gt.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof Nr&&gt.addSource(r,s)}return r}return i}function Te(i,t){return function(...e){return r=>{if(r instanceof Nr){let o=ke(s=>{let n=new i(s,...e);n.sourceId=o.id,n.subscribe(r)},t,arguments);return o.source=r,gt.pipe(o),o}else return o=>r(new i(o,...e))}}}function No(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var Hh=class extends fe{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{gt.defer(this.source,this.id)})}next(t){gt.next(this.source,this.id,t),this.sink.next(t)}complete(){gt.complete(this.source,this.id),this.sink.complete()}error(t){gt.complete(this.source,this.id,t),this.sink.error(t)}},gt={addSource(i,t){No("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){No("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){No("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){No("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){No("defer",{id:i.id,streamId:t})},pipe(i){No("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){No("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=Sy++),No("create",{name:i.toString(),id:i.id})}},uc=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var ku=class extends ys{constructor(t){super(),this.source=t,this.sinks=new Set}add(t){t.defer(()=>this.remove(t)),this.sinks.add(t).size===1&&(this.reset(),this.subscribe(this.source))}remove(t){this.sinks.delete(t),this.sinks.size===0&&this.dispose()}next(t){this.sinks.forEach(e=>e.next(t))}complete(){this.sinks.forEach(t=>t.complete()),this.sinks.clear()}error(t){this.sinks.forEach(e=>e.error(t)),this.sinks.clear()}};function ji(){return i=>{let t=new ku(i);if(i instanceof Nr){let e=ke(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,gt.pipe(e),e}return ke(t.add.bind(t),"share",arguments)}}function lc(...i){return ke(t=>{let e=new fe(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function qh(...i){return ke(t=>{let e=new Map;i.forEach(r=>{let o=new fe(t);e.set(r,o),o.complete=()=>{e.delete(r),e.size===0?t.complete():o.dispose()},o.next=s=>{e.delete(r),e.forEach(n=>n.dispose()),o.resetNext(),o.resetComplete(),o.next(s)}}),i.forEach(r=>e.get(r).subscribe(r))},"race",arguments)}function yy(...i){return ke(t=>{let e=0,r=i.length,o=new fe(t);o.complete=()=>{e<r&&!o.disposed?(o.doDefer(),o.subscribe(i[e++])):t.complete()},o.complete()},"concat",arguments)}function Ay(i){return t=>{let e=new ku(t),r=[];return e.next=function(o){r.push(o),r.length>i&&r.shift(),this.sinks.forEach(s=>s.next(o))},ke(o=>{o.defer(()=>e.remove(o)),r.forEach(s=>o.next(s)),e.add(o)},"shareReplay",arguments)}}function by(i,t,e){return ke(r=>i()?t(r):e(r),"iif",arguments)}function zE(...i){return ke(t=>{let e=i.length,r=e,o=e,s=new Array(e),n=()=>{--o===0&&t.complete()},a=(d,l)=>{let p=new fe(t);p.next=f=>{r--,p.next=g=>{s[l]=g,r===0&&t.next(s)},p.next(f)},p.complete=n,p.subscribe(d)};i.forEach(a)},"combineLatest",arguments)}function Ry(...i){return ke(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},n=(a,d)=>{let l=new fe(t),p=[];o[d]=p,l.next=f=>{p.push(f),o.every(g=>g.length)&&t.next(o.map(g=>g.shift()))},l.complete=s,l.subscribe(a)};i.forEach(n)},"zip",arguments)}function mc(...i){return t=>ke((e,r=0,o=i.length)=>{for(;r<o&&!e.disposed;)e.next(i[r++]);e.disposed||e.subscribe(t)},"startWith",arguments)}var Wh=class extends fe{constructor(t,...e){super(t);let r=new fe(this.sink);r.next=o=>this.buffer=o,r.complete=We,r.subscribe(zE(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},vy=Te(Wh,"withLatestFrom"),Gh=class extends fe{constructor(t,e,r){super(t),this.bufferSize=e,this.startBufferEvery=r,this.buffer=[],this.count=0,this.startBufferEvery&&(this.buffers=[[]])}next(t){this.startBufferEvery?(this.count++===this.startBufferEvery&&(this.buffers.push([]),this.count=1),this.buffers.forEach(e=>{e.push(t)}),this.buffers[0].length===this.bufferSize&&this.sink.next(this.buffers.shift())):(this.buffer.push(t),this.buffer.length===this.bufferSize&&(this.sink.next(this.buffer),this.buffer=[]))}complete(){this.buffer.length?this.sink.next(this.buffer):this.buffers.length&&this.buffers.forEach(t=>this.sink.next(t)),super.complete()}},Cy=Te(Gh,"bufferCount"),jh=class extends fe{constructor(t,e){super(t),this.buffer=[];let r=new fe(t);r.next=o=>{t.next(this.buffer),this.buffer=[]},r.complete=We,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},Ny=Te(jh,"buffer");var Dy=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(p){try{l(r.next(p))}catch(f){n(f)}}function d(p){try{l(r.throw(p))}catch(f){n(f)}}function l(p){p.done?s(p.value):o(p.value).then(a,d)}l((r=r.apply(i,t||[])).next())})};function At(i){let t=arguments,e=ji()(ke(r=>{e.next=o=>r.next(o),e.complete=()=>r.complete(),e.error=o=>r.error(o),i&&r.subscribe(i)},"subject",t));return e.next=We,e.complete=We,e.error=We,e}function JE(i){return ke(t=>t.subscribe(i()),"defer",arguments)}var Ln={promise:i=>{Promise.resolve().then(i)},setImmediate:typeof setImmediate!="undefined"?i=>setImmediate(i):null,setTimeout:i=>setTimeout(i,0)},wy=()=>typeof Promise!="undefined"?Ln.promise:Ln.setImmediate?Ln.setImmediate:Ln.setTimeout,zh=wy(),XE=i=>t=>{zh(()=>i(t))},Oy=i=>{typeof i=="function"?zh=i:Ln[i]&&(zh=Ln[i])};var QE=i=>XE(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function My(...i){return ke(QE(i),"of",arguments)}function xy(i){return ke(QE(i),"fromArray",arguments)}function Jh(i){return ke(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function hc(i,t){return ke(e=>{let r=0,o=setTimeout(()=>{if(e.removeDefer(s),e.next(r++),t){let n=setInterval(()=>e.next(r++),t);e.defer(()=>{clearInterval(n)})}else e.complete()},i),s=()=>clearTimeout(o);e.defer(s)},"timer",arguments)}function Uu(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function Py(i,t){return ke(Uu(i,t),"fromEventPattern",arguments)}function ye(i,t){if("on"in i&&"off"in i)return ke(Uu(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return ke(Uu(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return ke(Uu(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function YE(i){return ke(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function Ly(i,t){return ke(JE(()=>YE(fetch(i,t))),"fromFetch",arguments)}function ky(i){return ke(XE(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function Uy(i){let t=e=>Dy(this,void 0,void 0,function*(){if(e.disposed)return;let{done:r,value:o}=yield i.read();if(r){e.complete();return}else e.next(o),t(e)});return ke(e=>{t(e)},"fromReader",arguments)}function Vy(i){return ke(t=>{let e=new AbortController,r=e.signal;t.defer(()=>e.abort("cancelled")),i.pipeTo(new WritableStream({write(o){t.next(o)},close(){t.complete()},abort(o){t.error(o)}}),{signal:r}).then(()=>t.complete(),o=>t.error(o))},"fromReadableStream",arguments)}function Fy(){return ke(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function By(i,t){return ke((e,r=i,o=t+i)=>{for(;r<o&&!e.disposed;)e.next(r++);return e.complete(),"range"},"range",arguments)}function $y(i,t,...e){return ke(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function Hy(i,t,...e){return ke(r=>{let o=e.concat((s,n)=>s?r.error(s):(r.next(n),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function Wy(){return ke(()=>{},"never",arguments)}function Gy(i){return ke(t=>t.error(i),"throwError",arguments)}function pc(){return ke(i=>i.complete(),"empty",arguments)}var bs=class extends fe{constructor(t,e,r){super(t),this.f=e;let o=()=>{this.sink.next(this.acc),this.sink.complete()};typeof r=="undefined"?this.next=s=>{this.acc=s,this.complete=o,this.resetNext()}:(this.acc=r,this.complete=o)}next(t){this.acc=this.f(this.acc,t)}},Xh=Te(bs,"reduce"),jy=i=>Te(bs,"count")((t,e)=>i(e)?t+1:t,0),qy=()=>Te(bs,"max")(Math.max),zy=()=>Te(bs,"min")(Math.min),Jy=()=>Te(bs,"sum")((i,t)=>i+t,0);var Qh=class extends fe{constructor(t,e,r){super(t),this.filter=e,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},er=Te(Qh,"filter"),Yh=class extends fe{next(t){}},Xy=Te(Yh,"ignoreElements"),Zh=class extends fe{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&(this.doDefer(),this.complete())}},Qr=Te(Zh,"take"),Kh=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=()=>{r.doDefer(),t.complete()},r.complete=Lu,r.subscribe(e)}},ze=Te(Kh,"takeUntil"),ep=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):(this.doDefer(),this.complete())}},ZE=Te(ep,"takeWhile"),Qy=i=>Xh((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),tp=class extends fe{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},Yy=Te(tp,"skip"),rp=class extends fe{constructor(t,e){super(t),t.next=We;let r=new fe(t);r.next=()=>{r.doDefer(),t.resetNext()},r.complete=Lu,r.subscribe(e)}},Zy=Te(rp,"skipUntil"),ip=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},Bu=Te(ip,"skipWhile"),Ky={leading:!0,trailing:!1},op=class extends fe{constructor(t,e,r){super(t),this.durationSelector=e,this.trailing=r}cacheValue(t){this.last=t,this.disposed&&this.throttle(t)}send(t){this.sink.next(t),this.throttle(t)}throttle(t){this.reset(),this.subscribe(this.durationSelector(t))}next(){this.complete()}complete(){this.dispose(),this.trailing&&this.send(this.last)}},Vu=class extends fe{constructor(t,e,r=Ky){super(t),this.durationSelector=e,this.config=r,this._throttle=new op(this.sink,this.durationSelector,this.config.trailing),this._throttle.dispose()}next(t){this._throttle.disposed&&this.config.leading?this._throttle.send(t):this._throttle.cacheValue(t)}complete(){this._throttle.throttle=We,this._throttle.complete(),super.complete()}},eA=Te(Vu,"throttle"),tA={leading:!1,trailing:!0},rA=i=>Te(Vu,"audit")(i,tA),sp=class extends fe{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},Fu=class extends fe{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new sp(this.sink),this._debounce.dispose()}next(t){this._debounce.dispose(),this._debounce.reset(),this._debounce.last=t,this._debounce.subscribe(this.durationSelector(t))}complete(){this._debounce.complete(),super.complete()}},iA=Te(Fu,"debounce"),oA=i=>Te(Fu,"debounceTime")(t=>hc(i)),np=class extends fe{constructor(t,e,r){super(t),this.count=e,this.defaultValue=r}next(t){this.count--===0&&(this.defaultValue=t,this.doDefer(),this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("not enough elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},sA=Te(np,"elementAt"),nA=i=>t=>Qr(1)(Bu(e=>!i(e))(t)),ap=class extends fe{constructor(t,e){super(t),this.f=e,this.i=0}next(t){this.f(t)?(this.sink.next(this.i++),this.doDefer(),this.complete()):++this.i}},aA=Te(ap,"findIndex"),cp=class extends fe{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t,this.doDefer(),this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},cA=Te(cp,"first"),dp=class extends fe{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t)}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},dA=Te(dp,"last"),up=class extends fe{constructor(t,e){super(t),this.predicate=e,this.index=0}next(t){this.predicate(t,this.index++)?this.result=!0:(this.result=!1,this.doDefer(),this.complete())}complete(){if(this.result===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.result);super.complete()}},uA=Te(up,"every");var lp=class extends fe{constructor(t,e,r){super(t),this.f=e,typeof r=="undefined"?this.next=o=>{this.acc=o,this.resetNext(),this.sink.next(this.acc)}:this.acc=r}next(t){this.sink.next(this.acc=this.f(this.acc,t))}},Ap=Te(lp,"scan"),mp=class extends fe{constructor(){super(...arguments),this.hasLast=!1}next(t){this.hasLast?this.sink.next([this.last,t]):this.hasLast=!0,this.last=t}},lA=Te(mp,"pairwise"),$u=class extends fe{constructor(t,e,r){super(t),this.mapper=e,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},Do=Te($u,"map"),mA=i=>Te($u,"mapTo")(t=>i),Rs=class extends fe{constructor(t,e,r){super(t),this.data=e,this.context=r}next(t){let e=this.context.combineResults;e?this.sink.next(e(this.data,t)):this.sink.next(t)}tryComplete(){this.context.resetComplete(),this.dispose()}},vs=class i extends fe{constructor(t,e,r){super(t),this.makeSource=e,this.combineResults=r,this.index=0}subInner(t,e){let r=this.currentSink=new e(this.sink,t,this);this.complete===i.prototype.complete&&(this.complete=this.tryComplete),r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}complete(){this.sink.complete()}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},Hu=class extends Rs{},Wu=class extends vs{next(t){this.subInner(t,Hu),this.next=e=>{this.currentSink.dispose(),this.subInner(e,Hu)}}},ui=Te(Wu,"switchMap");function zu(i){return(t,e)=>i(()=>t,e)}var qi=zu(Te(Wu,"switchMapTo")),hp=class extends Rs{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},Gu=class extends vs{constructor(){super(...arguments),this.sources=[],this.next2=this.sources.push.bind(this.sources)}next(t){this.next2(t),this.subNext()}subNext(){this.next=this.next2,this.subInner(this.sources.shift(),hp),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},hA=Te(Gu,"concatMap"),pA=zu(Te(Gu,"concatMapTo")),pp=class extends Rs{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},ju=class extends vs{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,pp),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},fA=Te(ju,"mergeMap"),gA=zu(Te(ju,"mergeMapTo")),fp=class extends Rs{dispose(){this.context.resetNext(),super.dispose()}},qu=class extends vs{next(t){this.next=We,this.subInner(t,fp)}},EA=Te(qu,"exhaustMap"),_A=zu(Te(qu,"exhaustMapTo")),gp=class extends fe{constructor(t,e){super(t),this.f=e,this.groups=new Map}next(t){let e=this.f(t),r=this.groups.get(e);typeof r=="undefined"&&(r=At(),r.key=e,this.groups.set(e,r),super.next(r)),r.next(t)}complete(){this.groups.forEach(t=>t.complete()),super.complete()}error(t){this.groups.forEach(e=>e.error(t)),super.error(t)}},TA=Te(gp,"groupBy"),Ep=class extends fe{constructor(){super(...arguments),this.start=new Date}next(t){this.sink.next({value:t,interval:Number(new Date)-Number(this.start)}),this.start=new Date}},IA=Te(Ep,"timeInterval"),_p=class extends fe{constructor(t,e){super(t),this.miniseconds=e,this.buffer=[],this.id=setInterval(()=>{this.sink.next(this.buffer.concat()),this.buffer.length=0},this.miniseconds)}next(t){this.buffer.push(t)}complete(){this.sink.next(this.buffer),super.complete()}dispose(){clearInterval(this.id),super.dispose()}},SA=Te(_p,"bufferTime"),Tp=class extends fe{constructor(t,e){super(t),this.buffer=[],this.delayTime=e}dispose(){clearTimeout(this.timeoutId),super.dispose()}delay(t){this.timeoutId=setTimeout(()=>{let e=this.buffer.shift();if(e){let{time:r,data:o}=e;super.next(o),this.buffer.length&&this.delay(Number(this.buffer[0].time)-Number(r))}},t)}next(t){this.buffer.length||this.delay(this.delayTime),this.buffer.push({time:new Date,data:t})}complete(){this.timeoutId=setTimeout(()=>super.complete(),this.delayTime)}},yA=Te(Tp,"delay"),Ip=class extends fe{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},bp=Te(Ip,"catchError"),Sp=class extends Rs{tryComplete(){let t=this.context.inners.delete(this);super.dispose(),t&&this.context.checkComplete()}next(t){this.sink.next(t),this.context.expandValue(t)}},yp=class extends vs{constructor(t,e){super(t,e),this.project=e,this.inners=new Set,this.sourceCompleted=!1}next(t){this.sink.next(t),this.expandValue(t)}expandValue(t){let e=new Sp(this.sink,t,this);this.currentSink=e,this.complete=this.tryComplete,e.complete=e.tryComplete,this.inners.add(e),e.subscribe(this.makeSource(t,this.index++))}complete(){this.sourceCompleted=!0,this.checkComplete()}checkComplete(){this.sourceCompleted&&this.inners.size===0&&(this.resetComplete(),super.complete())}tryComplete(){this.sourceCompleted=!0,this.checkComplete()}},AA=Te(yp,"expand");var bA=()=>i=>new Promise((t,e)=>{let r;new As(i,o=>r=o,e,()=>t(r))}),RA=()=>i=>{let t;return new ReadableStream({start(e){t=new As(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},Pe=(i=We,t=We,e=We)=>r=>new As(r,i,t,e),Rp=class extends fe{constructor(t,e){super(t),e instanceof Function?this.next=r=>{e(r),t.next(r)}:(e.next&&(this.next=r=>{e.next(r),t.next(r)}),e.complete&&(this.complete=()=>{e.complete(),t.complete()}),e.error&&(this.error=r=>{e.error(r),t.error(r)}))}},Cs=Te(Rp,"tap"),vp=class extends fe{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new uc(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},Cp=Te(vp,"timeout"),vA=(i=1/0)=>t=>{if(t instanceof Nr){let e=ke(r=>{let o=i,s=new fe(r);s.error=n=>{o-- >0?s.subscribe(t):r.error(n)},s.sourceId=e.id,s.subscribe(t)},"retry",[i]);return e.source=t,gt.pipe(e),e}else return e=>{let r=i,o=new fe(e);o.error=s=>{r-- >0?t(o):e.error(s)},t(o)}};var kn=(e=>(e[e.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",e[e.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",e))(kn||{}),Ns=class Ns extends Ss{constructor(e,r){super({mediaType:e,PlayerClass:r});m(this,"isRemote",!1);m(this,"deviceId");m(this,"groupId","");m(this,"label","");m(this,"sourceTrack");m(this,"enableAutoSwitchWhenRecapturing",!0);m(this,"_isRecapturing",!1);m(this,"_lastRecaptureTime",0);m(this,"_onMuteTimeoutId",-1);m(this,"_encodeCheckTimeoutId",-1);m(this,"recaptureMode",0);m(this,"profile");m(this,"retryEncodeFailed")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}get isUseCustomSource(){return this.sourceTrack&&this.mediaTrack&&this.sourceTrack!==this.mediaTrack}encodeFrame(e,r){throw new Error("Method not implemented.")}installTrackEvent(e){e.addEventListener(M.MUTE,this.onTrackMuted),e.addEventListener(M.UNMUTE,this.onTrackUnmuted),e.addEventListener(M.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===M.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){e.removeEventListener(M.MUTE,this.onTrackMuted),e.removeEventListener(M.UNMUTE,this.onTrackUnmuted),e.removeEventListener(M.ENDED,this.onTrackEnded)}setStateToReady(){}capture(e,r=!1){return A(this,null,function*(){var s;let o=this.sourceTrack;try{let n=_e();U.emit(B.LOCAL_TRACK_CAPTURE_START,{track:this});let a;e.customSource?(a=new MediaStream,a.addTrack(e.customSource)):(r||(s=this.sourceTrack)==null||s.stop(),a=yield BE(e));let d=a.getTracks()[0];return yield this.setInputMediaStreamTrack(d),e.customSource||(this.sourceTrack=d,this.updateDeviceIdInUse(),this.listenDeviceChange()),U.emit(B.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:_e()-n}),a}catch(n){throw U.emit(B.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:n}),this.log.error(`getUserMedia error observed ${n}`),n}finally{r&&(o==null||o.stop())}})}setOutputMediaStreamTrack(e){var r;if(super.setOutputMediaStreamTrack(e),this.setStateToReady(),this.isPublishing||this.isPublished)return(r=this.room)==null?void 0:r.replaceTrack(this)}get hasFlag(){var r,o;let e=ns(((r=this.room)==null?void 0:r.localPublishFlag)||0,((o=this.room)==null?void 0:o.userId)||"");return this.mediaType===4&&e.hasVideo||this.mediaType===1&&e.hasAudio||this.mediaType===2&&e.hasAuxiliary}publish(e,r){return this.room=e,this.room.localTracks.add(this),this.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.bindParent(e.getLogger()),Promise.all([r,new Promise((o,s)=>A(this,null,function*(){var a,d;this.hasFlag||this.muted?o():Ae(ye(e,"local-publish-flag-changed"),er(()=>this.hasFlag),ze(lc(ye(this,ue.INIT),ye(this,"ready"))),Pe(o,s,()=>{s(new ae({code:q.API_CALL_ABORTED,message:"publish aborted"}))})),!((((d=(a=this.room)==null?void 0:a.networkQuality)==null?void 0:d.uplinkNetworkQuality)||0)>3)&&(this._encodeCheckTimeoutId=setTimeout(()=>A(this,null,function*(){var p,f,g,y,R,C;if(!((((f=(p=this.room)==null?void 0:p.networkQuality)==null?void 0:f.uplinkNetworkQuality)||0)>3)&&(this.isPublished||this.isPublishing)&&this.isMediaTrackActive){let N=this.kind===M.AUDIO,k=this.stat.bytesSent>0;if(J[k?"addSuccessEvent":"addFailedEvent"]({key:N?503700:513702}),!N){let Q=((y=(g=this.room)==null?void 0:g.videoCodec)==null?void 0:y.toUpperCase())||"H264",H={H264:513704,H265:513705,VP8:513706}[Q];H&&J[k?"addSuccessEvent":"addFailedEvent"]({key:H})}if(!k){if(J.addEnum({key:N?503701:513703,value:hs()}),je.uploadEvent({log:`stat-encode-failed-${this.kind}-${ms()||Li()}`,userId:this.userId}),this.log.warn(N?"encode failed":`${(C=(R=this.room)==null?void 0:R.videoCodec)==null?void 0:C.toUpperCase()} encode failed`),this.retryEncodeFailed&&(this.log.warn("retry encode"),yield this.retryEncodeFailed(this),this.stat.bytesSent>0||this.hasFlag||(yield $r(5e3),this.stat.bytesSent>0||this.hasFlag)))return;this.emit("6",this),s(new ae({message:`${this.strMediaType} encode failed`,code:N?q.AUDIO_ENCODE_FAILED:q.VIDEO_ENCODE_FAILED}))}}}),5e3))}))])}unpublish(){this.room&&this.room.localTracks.delete(this),this.log.info("unpublish"),U.emit(B.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return A(this,null,function*(){if(this.sourceTrack&&Nn){let{deviceId:e,groupId:r}=this.sourceTrack.getSettings(),{label:o}=this.sourceTrack;(yield VE({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),Mn().then(n=>{let a=n.find(d=>{let l=d.deviceId===e;return r&&(l=l&&d.groupId===r),l});a&&this.emit("2",a)}))}})}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(e=!1){return!(!this.deviceId||!this.sourceTrack||this.kind===M.AUDIO&&!UE(this.sourceTrack)||this.kind===M.VIDEO&&!kE(this.sourceTrack)||this._isRecapturing||e&&Gr&&_t)}onTrackMuted(){if(super.onTrackMuted(),HE(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<rn){setTimeout(()=>this.onTrackMuted(),rn);return}this._onMuteTimeoutId=setTimeout(()=>A(this,null,function*(){var e;if((e=this.sourceTrack)!=null&&e.muted){if((ot||nt)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return A(this,null,function*(){if(Ut(Ns.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()&&this.recaptureMode===0){if(Date.now()-this._lastRecaptureTime<rn){setTimeout(()=>this.onTrackEnded(),rn);return}this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e,r=!1){return A(this,null,function*(){var n;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying");let o=this.sourceTrack;r||(n=this.sourceTrack)==null||n.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let s={useExactDeviceId:!0};if(e==="user"||e==="environment")s.facingMode=e;else{let a;(this.kind==="audio"?yield ar():yield cr()).find(l=>l.deviceId===e)&&(a=e),s.deviceId=a}return this.capture(s,r).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),U.emit(B.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(a=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${a.message}`),this.emit("5",a),U.emit(B.LOCAL_TRACK_RECAPTURE,{track:this,error:a})}).finally(()=>{r&&(o==null||o.stop())})})}getRecoverCaptureDeviceId(){return A(this,null,function*(){let e=this instanceof _r;if(e&&this.facingMode)return this.facingMode;let{deviceId:r}=this;if(r){let o=(fc.get(r)||0)+1;if(fc.set(r,o),o>=3&&this.enableAutoSwitchWhenRecapturing){let s=e?(yield cr()).find(n=>!fc.has(n.deviceId)):(yield ar()).find(n=>!fc.has(n.deviceId));s&&(this.log.warn(`${r} capture fail ${o} times, change new ${s.deviceId}`),r=s.deviceId)}}return r})}stopCapture(){var e;this.sourceTrack&&(this.sourceTrack.stop(),this.uninstallTrackEvent(this.sourceTrack)),this._inputTrack&&this.uninstallTrackEvent(this._inputTrack),(e=this.manager)==null||e.removeInput(this)}close(){super.close(),this.stopCapture()}};Z([et(ue.INIT,"ready",{ignoreError:!0,sync:!0})],Ns.prototype,"setStateToReady",1),Z([Mu()],Ns.prototype,"capture",1),Z([et("ready","publish",{ignoreError:!0,success(){U.emit(B.LOCAL_TRACK_PUBLISHED,{track:this,room:this.room}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),this.log.info("published")},fail(e){var o;(o=this.room)==null||o.localTracks.delete(this);let r="error";if(e.cause instanceof ae){let s=e.cause;s.message.includes("timeout")?r="timeout":s.code===q.API_CALL_ABORTED&&(r="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:e.cause||e}),this.log.error("publish failed",e.cause||e)}}),Pu(521714,!1),Ju(10)],Ns.prototype,"publish",1),Z([xe(e=>function(){return A(this,null,function*(){let r=this.state==="publish"?"started":"starting";e.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:r,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)})}),et([],"ready",{sync:!0})],Ns.prototype,"unpublish",1);var Xr=Ns,fc=new Map;U.on(B.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&fc.delete(i.track.deviceId)});var li=class i extends Xr{constructor(e){super(1,Du);m(this,"mediaType",1);m(this,"volume",0);m(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40});m(this,"playerMuted",!0);m(this,"pipeline");m(this,"earMonitorGainNode",new yt);m(this,"_output",new yt);m(this,"codecPipeline",[]);m(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});m(this,"mixedAudioReferenceMap",new Map);m(this,"isAudioContextLongSuspended",!1);m(this,"after3aSilenceStartTime",0);this.manager=e,this.pipeline=new On(e),this.pipeline.source.pipeTo(this.player.pipeline.volumeMeter),this.pipeline.gain.pipeTo(this.earMonitorGainNode).pipeTo(this._output),this.pipeline.gain.pipeTo(this.player.pipeline.volumeMeterAfter3A),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this),U.on(B.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this)}get dbVolume(){return Cu.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}getInternalAudioLevelAfter3A(){if(this.pipeline.aec.node||this.pipeline.denoiser.node)return this.player.getInternalAudioLevelAfter3A()}updateAfter3aSilenceStartTime(e){O(e)||(e===0&&!this.after3aSilenceStartTime?this.after3aSilenceStartTime=_e():e>0&&(this.after3aSilenceStartTime=0))}setInputMediaStreamTrack(e){return A(this,null,function*(){let r=this.trackSettings||{};J.addEnum({key:501701,value:r.channelCount||0,useUV:!1}),J.addEnum({key:501702,value:r.sampleRate||0,useUV:!1}),J.addEnum({key:502700,value:0});let{sampleRate:o,channelCount:s}=r;this._log.info(`local audio track input ${JSON.stringify({sampleRate:o,channelCount:s})}`),this.pipeline.source.channelCount=s||1,this.pipeline.replaceSource(e),yield Ut(i.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture(a){return A(this,arguments,function*({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s},n=!1){let d=yield Ut(i.prototype,this,"capture").call(this,{video:!1,audio:!0,microphoneId:e,echoCancellation:this.profile.echoCancellation,autoGainControl:this.profile.autoGainControl,noiseSuppression:this.profile.noiseSuppression,sampleRate:this.profile.sampleRate,channelCount:this.profile.channelCount,useExactDeviceId:o,retryWhenExactFailed:s,customSource:r},n);return Ro(),d})}switchDevice(e){return A(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource)if(e===rs){if(yield Bh(this.groupId,this.label))return}else return;try{this.log.info(`switchDevice audio to: ${e}`),this.sourceTrack&&this.sourceTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),U.emit(B.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(r){throw this.log.error(`switch microphone failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}}})}listenDeviceChange(){at&&!at.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&at.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return A(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${kn[this.recaptureMode]}. Current microphone is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){mt(this.userId,{eventId:2003,param1:6,streamType:1});let o=yield ar();o[0]?this.recapture(o[0].deviceId):r=!0}r&&at.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.recaptureMode===1&&e.deviceId!==this.deviceId||(at.off("audioInputAdded",this.handleMicrophoneAdded,this),this.log.warn(`microphone added: ${JSON.stringify(e)}`),this.recapture(e.deviceId))}update3A(s){return A(this,arguments,function*({echoCancellation:e,noiseSuppression:r,autoGainControl:o}){let n=this.sourceTrack||this.mediaTrack;if(!n)return;let a=n.getConstraints(),d=!1;!O(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,a.echoCancellation=e,d=!0),!O(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,a.noiseSuppression=r,d=!0),!O(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,a.autoGainControl=o,d=!0),d&&(lt||_t?yield n.applyConstraints(a).catch(l=>this._log.warn("update3A failed: ",l)):this.deviceId&&(yield this.recapture(this.deviceId,!0)))})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&J.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),ot&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(qe().createGain()),this._output.setNode(qe().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!(_t||ot))return this.update3A({echoCancellation:e})}addDenoiser(e){var r;if(sr<=92&&((r=this.trackSettings)==null?void 0:r.sampleRate)!==48e3){this._log.warn("denoiser only support sampleRate 48000 before chrome 93");return}J.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.enableTrackANS(!1)}mixAudioReference(e,r){if(this.mixedAudioReferenceMap.has(r))return;this.log.info(`mixAudioReference() => ${r}`);let o=nc(e);if(!o)return;let s=new yt,n=qe().createGain();n.gain.value=1;let a=new yt;s.pipeTo(a).pipeTo(this.pipeline.mixNode),s.setNode(o),a.setNode(n),this.mixedAudioReferenceMap.set(r,[s,a])}unMixAudioReference(e){let[r,o]=this.mixedAudioReferenceMap.get(e)||[];r&&(this.log.info(`unMixAudioReference() => ${e}`),r.deleteNode(),o==null||o.deleteNode(),this.mixedAudioReferenceMap.delete(e))}setAudioReferenceVolume(e,r){let[o,s]=this.mixedAudioReferenceMap.get(e)||[];s!=null&&s.node&&(s.node.gain.value=r/100,this.log.info(`setAudioReferenceVolume() => ${e} ${s.node.gain.value}`))}addAudioProcessor(e,r,o){this.pipeline.silentNode.setNode(o),this.pipeline.mixNode.setNode(r),this.pipeline.aec.setNode(e)}removeDenoiser(e){if(this.pipeline.denoiser.node===e)return this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0)}removeAudioProcessor(e){this.pipeline.aec.node===e&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode())}close(){this.mixedAudioReferenceMap.forEach(([e,r])=>{e.deleteNode(),r.deleteNode()}),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),at.off("audioInputAdded",this.handleMicrophoneAdded,this),at.off("audioInputRemoved",this.handleMicrophoneRemoved,this),U.off(B.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this),super.close()}recapture(e,r=!1){return A(this,null,function*(){try{yield Ut(i.prototype,this,"recapture").call(this,e,r)}catch(o){let s=(yield ar()).find(n=>n.deviceId!==e);if(s)yield Ut(i.prototype,this,"recapture").call(this,s.deviceId);else throw o}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((r,o)=>o?o({frame:r,ntp:Ri()}):r,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}get enableEncryptFrame(){return this.manager&&!!this.manager.encodePipeline[0]}handleAudioContextLongSuspended({isSuspended:e}){if(this.pipeline.isProcessEnabled)if(e){this.isAudioContextLongSuspended=!0,this.log.warn(`context has suspended for ${Uh/1e3} seconds, change to source audio${vr?"":", non-Safari"}`);let r=this.sourceTrack||this.mediaTrack;r&&this.setOutputMediaStreamTrack(r)}else this.isAudioContextLongSuspended=!1,this.log.warn("context has resumed, change to processed audio"),this.pipeline.track&&this.setOutputMediaStreamTrack(this.pipeline.track)}setOutputMediaStreamTrack(e){if(this.isAudioContextLongSuspended){let r=this.sourceTrack||this.mediaTrack;r&&(e=r)}super.setOutputMediaStreamTrack(e)}};var Ds=class{constructor(t,e=!1){this.dataView=t;this.isSEI&&(e?this.addPreventionByte():this.removePreventionByte())}addPreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-2,r=[],o=0;for(let n=t;n<=e;n++){let a=this.dataView.getInt8(n);switch(a){case 0:case 1:case 2:case 3:o===2&&(r.push(3),o=0),a==0?o++:o=0,r.push(a);break;default:o=0,r.push(a);break}}r.push(this.dataView.getInt8(this.dataView.byteLength-1));let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}removePreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-1,r=[],o=0;for(let n=t;n<=e;n++)switch(this.dataView.getInt8(n)){case 0:o++,r.push(this.dataView.getInt8(n));break;case 3:o!==2&&r.push(this.dataView.getInt8(n)),o=0;break;default:r.push(this.dataView.getInt8(n)),o=0;break}let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}get isSEI(){return this.dataView.getUint8(4)===6}get seiPayloadStartIndex(){let t=6;for(let e=6;e<this.dataView.buffer.byteLength&&(t++,this.dataView.getUint8(e)===255);e++);return t}get seiPayloadType(){return this.isSEI?this.dataView.getUint8(5):null}get seiPayload(){if(!this.isSEI)return null;let t=0,e=6;for(let s=6;s<this.dataView.buffer.byteLength;s++){let n=this.dataView.getUint8(s);if(e++,n===255)t+=255;else{t+=n;break}}let r=new ArrayBuffer(t),o=new DataView(r);for(let s=0;s<r.byteLength;s++,e++)o.setInt8(s,this.dataView.getInt8(e));return o}};var Xu=class{constructor(){m(this,"_seiMessageList",[]);m(this,"_smallSeiMessageList",[]);m(this,"_seiPayloadType",243)}encodeSEINalu(t){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,this._seiPayloadType);for(let a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new Ds(new DataView(new Uint8Array(s).buffer),!0)}sendSEI(t,e){e!=null&&e.seiPayloadType&&(this._seiPayloadType=e.seiPayloadType),this._seiMessageList.push(t),e!=null&&e.small&&this._smallSeiMessageList.push(t)}isEmpty(){return!this._seiMessageList.length}getNaluCount(t){let e=0,r=0,o=new DataView(t);for(let s=0;s<t.byteLength;s++)switch(o.getUint8(s)){case 0:e++;break;case 1:(e===2||e===3)&&r++,e=0;break;default:e=0;break}return r}encode(t,e){let r=e?this._smallSeiMessageList:this._seiMessageList;if(r.length>0&&t.data.byteLength>0){let s=9-this.getNaluCount(t.data);if(s<=0)return 0;let n=r.splice(0,s).reverse().map(this.encodeSEINalu.bind(this)),a=n.reduce((g,y)=>g+y.dataView.byteLength,0),d=new ArrayBuffer(a+t.data.byteLength),l=new DataView(d),p=new DataView(t.data),f=0;for(let g=0;g<n.length;g++)for(let y=0;y<n[g].dataView.byteLength;y++)l.setInt8(f++,n[g].dataView.getInt8(y));for(let g=0;g<t.data.byteLength;g++)l.setInt8(f++,p.getInt8(g));return t.data=d,n.length}return 0}};var wo=class wo extends Xr{constructor(e,r=4){super(r,Bt);m(this,"profile",Y({},fa));m(this,"avoidCropping",!1);m(this,"_scaleResolutionDownBy");m(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0,framesCaptured:0});m(this,"small");m(this,"isNeedToSetBandwidth");m(this,"muteImage");m(this,"manager");m(this,"_seiCodec",new Xu);this.manager=e;let o=()=>{var s;if(this.isAllowed2k4k(this.profile))this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1});else{let n=Rr(((s=this.room)==null?void 0:s.sdkAppId)||0)?pd:hd;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${n}`),this.setProfile(Ee(Y({},this.profile),{width:1920,height:1080})),this.applyProfile()}};this.on("input-media-track-changed",o),this.on("publish",o),this.handleCameraAdded=this.handleCameraAdded.bind(this),this.handleCameraRemoved=this.handleCameraRemoved.bind(this)}get facingMode(){if(!(!Nn||!this.mediaTrack))return this.mediaTrack.getSettings().facingMode}get contentHint(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)||""}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}get hasSmall(){var e;return!!((e=this.manager)!=null&&e.hasSmall)}setMute(e){return A(this,null,function*(){var r,o,s;if(we(e)){if(this.muteImage===e)return;yield(r=this.manager)==null?void 0:r.deleteWatermark("mute"),yield(o=this.manager)==null?void 0:o.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:e,fillVideo:!0}),this.muteImage=e,Ut(wo.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0),Ut(wo.prototype,this,"setMute").call(this,e)})}capture(a){return A(this,arguments,function*({deviceId:e,facingMode:r,useExactDeviceId:o=!0,customSource:s,retryWhenExactFailed:n=!0}){let d={audio:!1,video:!0,facingMode:r||this.facingMode,cameraId:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,useExactDeviceId:o,retryWhenExactFailed:n,customSource:s};if(d.facingMode==="environment"){let l=yield this.getDeviceIdWhenUsingBackCamera();l&&(d.cameraId=l)}return Ut(wo.prototype,this,"capture").call(this,d)})}setProfile(e){var o;let r=this.fallbackProfile(e);if(r.bitrate&&(this.isNeedToSetBandwidth=r.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile))super.setProfile(r);else{let s=Rr(((o=this.room)==null?void 0:o.sdkAppId)||0)?pd:hd;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${s}`),super.setProfile(Ee(Y({},this.profile),{width:1920,height:1080}))}}applyProfile(){return A(this,null,function*(){var a;if(!this.mediaTrack)return;let{width:e=0,height:r=0}=(this.sourceTrack||this.mediaTrack).getSettings(),o=e*r,s=this.settings,n=s.height!==this.profile.height||s.width!==this.profile.width||s.frameRate!==this.profile.frameRate;if(n&&(Vt===16&&this.deviceId?yield this.recapture(this.deviceId):(yield(a=this.sourceTrack||this.mediaTrack)==null?void 0:a.applyConstraints({width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate}),this.manager&&this.manager.changeInput(this)),this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1})),this.isNeedToSetBandwidth&&this.room&&this.room.setBandWidth){this.isNeedToSetBandwidth=!1;let{width:d=0,height:l=0}=(this.sourceTrack||this.mediaTrack).getSettings(),p=d*l;if(n&&p&&o&&p===o){this.log.warn("set bandwidth failed: resolution is not changed");return}return this.room.setBandWidth({bandwidth:this.profile.bitrate,type:M.VIDEO,videoType:M.BIG})}})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},r=this.sourceTrack||this.mediaTrack;return Nn&&r&&Object.assign(e,r.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:Md(this.settings,this.profile)}isAllowed2k4k(e){var r;return!this.room||!this.room.scheduleResult||this.isScreen||e.height*e.width<2560*1440?!0:((r=this.room.scheduleResult.trtcAutoConf)==null?void 0:r["2k4k"])===1}isNeedToSwitchDevice(e){return!(!this.mediaTrack||this.deviceId===e||this.facingMode===e)}switchDevice(e){return A(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e)&&!this.isUseCustomSource)return;let r={useExactDeviceId:!0,retryWhenExactFailed:!1};e==="user"||e==="environment"?r.facingMode=e:r.deviceId=e,this.sourceTrack&&this.sourceTrack.stop(),yield this.capture(r),U.emit(B.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(r){throw this.log.error(`switch camera failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}})}getDeviceIdWhenUsingBackCamera(){return A(this,null,function*(){let e;try{if(xa&&!In&&Th){let o=(yield cr(!0)).map(n=>{var a;return Ee(Y({},n),{capabilities:(a=n.getCapabilities)==null?void 0:a.call(n)})}).filter(n=>{var a,d;return(d=(a=n.capabilities)==null?void 0:a.facingMode)==null?void 0:d.includes("environment")}),s=o[0];o.forEach(n=>{var p,f,g,y;let{capabilities:a}=n,d=(p=a.width)!=null&&p.max&&((f=a.height)!=null&&f.max)?a.width.max*a.height.max:0,l=(g=s.capabilities.width)!=null&&g.max&&((y=s.capabilities.height)!=null&&y.max)?s.capabilities.width.max*s.capabilities.height.max:0;d>l&&(s=n)}),s!=null&&s.capabilities&&(this._log.info("use max resolution back camera",s),e=s.deviceId)}}catch(r){this._log.warn("get max res camera failed",r)}return e})}updateSmallConfig(e){var o,s;this._log.info(`update small stream config: ${JSON.stringify(e)}`);let r=!this.small;this.small=this.fallbackProfile(e,!0),(o=this.manager)==null||o.update(),r&&((s=this.room)==null||s.enableSmall(!0)),this.log.info("update small stream config success")}fallbackProfile(e,r=!1){let o=e.width>e.height,s=Y({},e);return e.width*e.height<=160*120&&nt&&fr&&(this.log.warn(`${r?"small ":""}resolution is ${e.width}*${e.height}, fallback to 240*180 for android chrome`),s.width=o?240:180,s.height=o?180:240,s.bitrate=Math.max(e.bitrate,150)),e.width*e.height>1280*720&&Bm&&(s.width=o?1280:720,s.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),Um(Cr,"14.3")&&Vm(Cr,"14.0",!0)&&this.on("7",()=>{let n=this.profile.width>this.profile.height;this.profile.width*this.profile.height>640*480?(this.profile.width=n?640:480,this.profile.height=n?480:640,this.log.warn("reduce the resolution to 480p on iOS 14.0 ~ 14.2")):this.profile.width*this.profile.height>640*360&&(this.profile.width=n?640:360,this.profile.height=n?360:640,this.log.warn("reduce the resolution to 360p on iOS 14.0 ~ 14.2"))}),!r&&this.avoidCropping&&(fr||lt)&&!ka()&&e.width*e.height<=640*360&&e.width/e.height===16/9&&(this._scaleResolutionDownBy=1280/e.width,e.width=1280,e.height=720,this.log.warn(`capture 720p, scale: ${this._scaleResolutionDownBy}`)),s}stopSmall(){var e,r;this.small&&(delete this.small,(e=this.manager)==null||e.update(),(r=this.room)==null||r.enableSmall(!1))}listenDeviceChange(){at&&!at.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&at.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return A(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${kn[this.recaptureMode]}. Current camera is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){mt(this.userId,{eventId:2003,param1:7,streamType:2});let o=yield cr();o[0]?this.recapture(o[0].deviceId):r=!0}r&&at.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return A(this,null,function*(){this.recaptureMode===1&&e.deviceId!==this.deviceId||(at.off("videoInputAdded",this.handleCameraAdded,this),this.log.warn(`camera added: ${JSON.stringify(e)}`),this.recapture(e.deviceId))})}encodeFrame(e,r){if(!this.manager)return e;let o=r?8:this.mediaType;return this.manager.encodePipeline.reduceRight((s,n)=>n?n({frame:s,mediaType:o}):s,e)}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}play(e,r){return O(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){at.off("videoInputAdded",this.handleCameraAdded,this),at.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return A(this,null,function*(){try{yield Ut(wo.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield cr()).find(s=>s.deviceId!==e);if(o)yield Ut(wo.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}setContentHint(e){this.mediaTrack&&"contentHint"in this.mediaTrack&&(this.mediaTrack.contentHint!==e&&(this.log.info(`setContentHint ${e}`),this.mediaTrack.contentHint=e),this.outMediaTrack&&this.outMediaTrack.contentHint!==e&&(this.outMediaTrack.contentHint=e))}setRotation(e){this.manager&&(this.isScreen||O(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};Z([Co(function(e){this.setContentHint(e.contentHint||"motion")})],wo.prototype,"capture",1);var _r=wo;var Op={};Ai(Op,{REPORT_TYPE:()=>hn,buildSSOPackage:()=>Di,bytes2ms:()=>tg,calculateScaleResolutionDownNumber:()=>Md,concatArrayBuffers:()=>hg,convertObjectNumberToInt:()=>Aa,copyProperties:()=>eg,deepClone:()=>is,deepCloneBasic:()=>vd,deepMerge:()=>Br,delay:()=>$r,fibonacci:()=>os,formatedTime:()=>Nd,getConstructorName:()=>cn,getContainerFromElement:()=>ug,getEnv:()=>Qf,getFirst16Bits:()=>fg,getInternalVersion:()=>cg,getLast16Bits:()=>pg,getLoggerUrl:()=>Ni,getMediaStreamTrackInfo:()=>Od,getMuteStateFromFlag:()=>ns,getNetworkType:()=>an,getNumNetworkType:()=>Cd,getReconnectionTimeout:()=>ig,getStringByteLength:()=>lg,getTurnServer:()=>dg,getUint32Version:()=>Dd,getValueType:()=>pt,getViewListFromView:()=>ln,glog:()=>Ia,ipv4ToUint32:()=>un,isArray:()=>ut,isAudioWorkletSupported:()=>ng,isBoolean:()=>Ye,isConstructor:()=>ss,isEmpty:()=>dn,isFunction:()=>Xe,isLangChinese:()=>Fr,isMediaStreamTrack:()=>og,isNumber:()=>Ve,isObject:()=>hr,isOverseaSdkAppId:()=>Rr,isPlainObject:()=>Xt,isPortrait:()=>Rm,isPromise:()=>po,isRemoteTrack:()=>sg,isRotate90Or270:()=>pr,isSetSinkIdSupported:()=>ag,isString:()=>we,isUndefined:()=>O,loadImage:()=>mn,loadVideo:()=>mg,ms2bytes:()=>rg,ms2samples:()=>bm,normalizeUrl:()=>as,performanceNow:()=>_e,promiseAny:()=>Sa,samples2ms:()=>Am,setNetworkTypeFromWebRTC:()=>Kf,stringify:()=>br,stringifyIncludeValue:()=>ya,throttlePromise:()=>wd});var NA=[-1,-1,1,-1,-1,1,1,1],DA=[0,0,1,0,0,1,1,1];var Oo=class Oo extends ue{constructor(e,r){super();this.context=e;m(this,"name");m(this,"input");m(this,"output");m(this,"texture");m(this,"ctx2d",null);m(this,"fbo");m(this,"width",0);m(this,"height",0);m(this,"x",0);m(this,"y",0);m(this,"program");m(this,"vertexShader");m(this,"fragmentShader");m(this,"totalFrames",0);m(this,"dropFrames",0);m(this,"matchInputSize",!0);m(this,"texCoordBuffer");m(this,"positionBuffer");m(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0});m(this,"cost",0);m(this,"_canvas",null);m(this,"_image");m(this,"log");if(this.context.on("disconnect",this.close,this),this.name=r.name,this.log=r.logger,this.matchInputSize=r.matchInputSize!==!1,this.width=r.width||e.width,this.height=r.height||e.height,this._image=r.image,e instanceof Pt){e.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&Vt!==16?this._canvas=new OffscreenCanvas(this.width,this.height):(this._canvas=document.createElement("canvas"),this._canvas.width=this.width,this._canvas.height=this.height),this.ctx2d=this._canvas.getContext("2d"),this._image=this._canvas);return}try{let o=e.ctx;this.texCoordBuffer=this.createBuffer(DA),this.positionBuffer=this.createBuffer(NA),r.createTexture!==!1&&(this.texture=o.createTexture(),this.useTexture(),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.pixelStorei(o.UNPACK_ALIGNMENT,1)),r.useFbo&&(this.fbo=o.createFramebuffer(),this.useBufferFrame(),this.useTexture(),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,this.width,this.height,0,o.RGBA,o.UNSIGNED_BYTE,null),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,this.texture,0)),r.useDefaultProgram?this.program=e.defaultProgam:(r.vertexShaderSource||r.fragmentShaderSource)&&(this.vertexShader=r.vertexShaderSource?e.createShader(o.VERTEX_SHADER,r.vertexShaderSource):e.defaultVShader,this.fragmentShader=r.fragmentShaderSource?e.createShader(o.FRAGMENT_SHADER,r.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(o){this.context.destroy(new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${o.message||o}`}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let r=this.context.ctx,o=r.createFramebuffer();return r.bindFramebuffer(r.FRAMEBUFFER,o),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0),o}connect(e,...r){return e.addInput(this,...r),this.output=e,e}addInput(e,...r){this.input=e,this.matchInputSize&&e.width&&e.height&&this.resize(e.width,e.height)}requestFrame(e){let r=Date.now();if(this.context instanceof Nt&&this.render(e)||this.context instanceof Pt&&this.render2d(e))this.totalFrames++;else return!1;return this.cost=Date.now()-r,!0}render2d(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?this.draw2d(this.input.image,0,0,this.width,this.height):!1}update(e=0){var r;(r=this.output)==null||r.update(e)}disconnect(...e){var r;(r=this.output)==null||r.removeInput(this,...e),delete this.output}removeInput(e,...r){delete this.input}close(){var e,r;if(this.context.off("disconnect",this.close,this),(e=this.output)==null||e.removeInput(this),delete this.output,(r=this.input)==null||r.disconnect(),this.context instanceof Nt){let o=this.context.ctx;o.deleteBuffer(this.texCoordBuffer),o.deleteBuffer(this.positionBuffer),this.fbo&&o.deleteFramebuffer(this.fbo),this.texture&&o.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&o.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&o.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&o.deleteProgram(this.program)}this._canvas&&(this._canvas.width=0,this._canvas.height=0,this.ctx2d=null),this.removeAllListeners()}useTexture(){this.useTextures(this.texture)}useInputTexture(){var e;this.useTextures((e=this.input)==null?void 0:e.texture)}useTextures(...e){let r=this.context.ctx;e.forEach((o,s)=>{o&&(r.activeTexture(r.TEXTURE0+s),r.bindTexture(r.TEXTURE_2D,o))})}useProgram(){this.context.ctx.useProgram(this.program)}useBufferFrame(){let e=this.context.ctx;e.bindFramebuffer(e.FRAMEBUFFER,this.fbo||null)}createBuffer(e){let r=this.context.ctx,o=r.createBuffer();return r.bindBuffer(r.ARRAY_BUFFER,o),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW),o}setTexBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.texCoordBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}setPosBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.positionBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}changeBufferData(e,r){let o=this.context.ctx;o.bindBuffer(o.ARRAY_BUFFER,e),o.bufferData(o.ARRAY_BUFFER,new Float32Array(r),o.STATIC_DRAW)}setAttributes(...e){let r=this.context.ctx;e.forEach((o,s)=>{r.enableVertexAttribArray(s),r.bindBuffer(r.ARRAY_BUFFER,o),r.vertexAttribPointer(s,2,r.FLOAT,!1,0,0)})}getVertexPoint(e,r){return[e/this.width*2-1,r/this.height*2-1]}layout2texCoords(e){return[...this.getVertexPoint(e.x,e.y),...this.getVertexPoint(e.x+e.width,e.y),...this.getVertexPoint(e.x,e.y+e.height),...this.getVertexPoint(e.x+e.width,e.y+e.height)]}resize(e,r){if(!(this.width===e&&this.height===r)){if(this.width=e,this.height=r,this._canvas&&(this._canvas.width=e,this._canvas.height=r),this.texture&&this.fbo){this.useTexture();let o=this.context.ctx;o.texImage2D(o.TEXTURE_2D,0,o.RGBA,e,r,0,o.RGBA,o.UNSIGNED_BYTE,null)}this.output&&this.output.matchInputSize&&this.output.resize(e,r)}}draw(e,r){this.setAttributes(e||this.positionBuffer,r||this.texCoordBuffer);let o=this.context.ctx;o.drawArrays(o.TRIANGLE_STRIP,0,4)}draw2d(e,r,o,s,n,a,d,l,p){let f=!O(a)&&!O(d)&&!O(l)&&!O(p);return this.ctx2d&&e?(e instanceof ImageData?(f?this.ctx2d.putImageData(e,r,o,a,d,l,p):this.ctx2d.putImageData(e,r,o),this.emit(Oo.RENDER,this.ctx2d.canvas)):(f?this.ctx2d.drawImage(e,a,d,l,p,r,o,s,n):this.ctx2d.drawImage(e,r,o,s,n),this.emit(Oo.RENDER,e)),typeof VideoFrame!="undefined"&&e instanceof VideoFrame&&e.close(),!0):!1}drawBackGround2d(e){this.ctx2d&&(this.ctx2d.save(),this.ctx2d.fillStyle=e,this.ctx2d.fillRect(0,0,this.width,this.height),this.ctx2d.restore())}getInfo(){var f;let{totalFrames:e,x:r,y:o,width:s,height:n,name:a,cost:d}=this,l=Date.now(),p=(e-this.lastInfo.totalFrames)/((l-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:l,fps:p,name:a,cost:d},Y({parent:(f=this.input)==null?void 0:f.getInfo()},this.lastInfo)}createTexture(e){let r=this.context.ctx,o=r.createTexture();return this.useTextures(o),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.pixelStorei(r.UNPACK_ALIGNMENT,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),o}};m(Oo,"RENDER","render"),Z([et(ue.INIT,"connected",{sync:!0})],Oo.prototype,"connect",1),Z([et("connected",ue.INIT,{ignoreError:!0,sync:!0})],Oo.prototype,"disconnect",1),Z([et([],"closed",{sync:!0})],Oo.prototype,"close",1);var bt=Oo;var e_=Ae(Jh(250),Do(()=>performance.now()),ji()),t_=i=>t=>{let e=0,r=performance.now();Ae(e_,Do(o=>(o-r)/i>>0),er(o=>o!=e?(e=o,!0):!1))(t)},Qu=i=>t=>{let e=performance.now();Ae(e_,Bu(r=>r-e<i),Qr(1))(t)};var OA=[0,1,1,1,0,0,1,0],ws=class extends bt{constructor(e,r){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},r));m(this,"_intervalId",0);m(this,"_sequence",0);m(this,"checkGLError",!1);m(this,"checkVisibilityChange");e instanceof Pt?this.ctx2d=e.ctx||null:e.available&&(r!=null&&r.mirrorUpAndDown)&&this.setTexBuffer(OA)}start(e){this.log.info(`${this.name} start render ${e} fps`),ft.clearTask(this._intervalId),this._intervalId=ft.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(ft.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof Nt){let o=this.context.ctx.getError();o&&this.context.destroy(new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:5,message:`${this.name} req ${this._sequence} render ${this.totalFrames} faild ${o}`}))}},{fps:this.context.frameRate})}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),this.emit(bt.RENDER,this.context._canvas),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){this.state!=="closed"&&(this._intervalId&&(ft.clearTask(this._intervalId),this._intervalId=0,e===1&&(this.log.info(`${this.name} use requestVideoFrameCallback`),this.checkVisibilityChange=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info(`${this.name} use timer`),document.removeEventListener("visibilitychange",this.checkVisibilityChange))},document.addEventListener("visibilitychange",this.checkVisibilityChange))),this.requestFrame(this._sequence++))}removeInput(e){super.removeInput(e),ft.clearTask(this._intervalId)}resize(e,r){super.resize(e,r),this.context.setSize(e,r)}close(){super.close(),ft.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},Un=class extends ws{constructor(e,r){super(e,r);m(this,"_videoTrack");m(this,"_muteOb");m(this,"_closedOb",ye(this,"closed"));m(this,"_subscription");m(this,"_canvasContainer");Number(xi)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e.canvas.captureStream().getVideoTracks(),this._muteOb=ye(this._videoTrack,"mute"),Ae(ye(this._videoTrack,"ended"),ze(this._closedOb),Pe(()=>{this.context.destroy(new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=Ae(this._muteOb,ze(this._closedOb),qi(Qu(5e3)),er(()=>{var e;return!!((e=this._videoTrack)!=null&&e.muted)&&!document.hidden}),Pe(()=>{this.context.destroy(new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:7,message:"video track muted"}))}))}disableCheckMute(){var e;(e=this._subscription)==null||e.dispose()}get videoTrack(){return this._videoTrack}putCanvasIntoDom(){!this.context._canvas||!this._canvasContainer||document.getElementById(this.context._canvas.id)||(this.log.info(`${this.name} put canvas to body`),document.body.appendChild(this._canvasContainer),this._canvasContainer.appendChild(this.context._canvas))}render(e){return this.putCanvasIntoDom(),super.render(e)}render2d(e){return this.putCanvasIntoDom(),super.render2d(e)}close(){var e,r;super.close(),(e=this._videoTrack)==null||e.stop(),delete this._videoTrack,(r=this._canvasContainer)==null||r.remove()}},Yu=class extends Un{render(t){var r;let e=!!((r=this.input)!=null&&r.requestFrame(t));if(this.context._canvas2d){let o=this.context._canvas2d.getContext("2d");o.clearRect(0,0,this.context._canvas2d.width,this.context._canvas2d.height),o.drawImage(this.context._canvas,0,0,this.context._canvas2d.width,this.context._canvas2d.height)}return e}};var Zu=class extends Un{constructor(e,r,o){super(e,{name:"smallDestination",logger:o});this.resolution=r}resize(e,r){let o,s=e*r,n=this.resolution.width*this.resolution.height;this.log.info(`big res: ${e}*${r} small res: ${this.resolution.width}*${this.resolution.height} `),s>n?o=s/n:(this.log.warn(`Small stream resolution is not smaller than big stream, which is invalid. big: ${e} * ${r} small: ${this.resolution.width} * ${this.resolution.height}`),o=s/(160*120)),super.resize(e/Math.sqrt(o),r/Math.sqrt(o))}};var gc=class extends bt{constructor(e,r){super(e,Y({name:"imageSource"},r));m(this,"_lastImage");m(this,"_totalFrames",0);m(this,"_autoResize",!1);m(this,"_canvasRendered");m(this,"videoCallbackId",0);m(this,"waitingFirstFrame",!0);m(this,"shouldUpdate",!0);this._autoResize=(r==null?void 0:r.autoResize)!==!1,Vt===16&&(this._canvasRendered=At(),Ae(this._canvasRendered,mc(this._image),ui(o=>o instanceof HTMLCanvasElement?ye(o,"rendered"):pc()),ze(ye(this,"closed")),Pe(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let e=this.image;this.videoCallbackId&&e.cancelVideoFrameCallback(this.videoCallbackId),zr()&&!document.hidden&&(this.videoCallbackId=e.requestVideoFrameCallback((r,o)=>{this.waitingFirstFrame&&this.onFirstFrame(),document.hidden||(this._totalFrames=o.presentedFrames,this.update(1))}))}_render(e,r){var a;let{width:o,height:s}=this,{image:n}=this;if(n instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),{videoWidth:o,videoHeight:s}=n,!o||!s)return!1;n.width=o,n.height=s}else if(n instanceof HTMLImageElement||n instanceof ImageData||n instanceof ImageBitmap){if({width:o,height:s}=n,n!==this._lastImage)this._lastImage=n;else if(o===this.width&&s===this.height)return!0}else n instanceof HTMLCanvasElement||n instanceof OffscreenCanvas?({width:o,height:s}=n,this._lastImage=n):typeof VideoFrame!="undefined"&&n instanceof VideoFrame&&({displayWidth:o,displayHeight:s}=n,(a=this._lastImage)==null||a.close(),this._lastImage=n);if(!this._autoResize)return!0;if(this.width===o&&this.height===s&&this.totalFrames){if(r){this.useTexture();let d=this.context.ctx;d.texSubImage2D(d.TEXTURE_2D,0,0,0,d.RGBA,d.UNSIGNED_BYTE,n)}}else{if(r){this.useTexture();let d=this.context.ctx;d.texImage2D(d.TEXTURE_2D,0,d.RGBA,d.RGBA,d.UNSIGNED_BYTE,n)}this.resize(o,s)}return!0}get image(){return this._image}set image(e){var r;(r=this._canvasRendered)==null||r.next(e),this._image=e}render(e){return this._render(e,!0)}render2d(e){return this._render(e,!1)}},Ec=class extends gc{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",Ae(ye(this._player,Ge.PLAYER_STATE_CHANGED),ze(ye(this,"closed")),er(({state:s})=>s==="PLAYING"),Pe(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},Dr=class extends Ec{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(t,e,r){super(t,new Bt({id:r.name,track:e,muted:!0,container:null,objectFit:"contain",log:r.logger}),r),this.name="videoTrackSource",this._player.play()}replaceTrack(t){this.waitingFirstFrame=!0,this._player.setTrack(t),this._player.play()}close(){super.close(),this._player.stop()}},Ku=class extends bt{constructor(e,r,o){super(e,Ee(Y({name:"textSource"},o),{create2d:!0}));m(this,"hasChange",!0);m(this,"content","");this.ctx2d.textBaseline="top",this.content=r.content||"",r.font&&(this.font=r.font),r.color&&(this.color=r.color)}set font(e){this.ctx2d&&(this.ctx2d.font=e,this.hasChange=!0)}get font(){var e;return((e=this.ctx2d)==null?void 0:e.font)||""}set color(e){this.ctx2d&&(this.ctx2d.fillStyle=e,this.hasChange=!0)}get color(){var e;return((e=this.ctx2d)==null?void 0:e.fillStyle)||""}render2d(e){return this.ctx2d&&this.hasChange?(this.ctx2d.clearRect(0,0,this.width,this.height),this.drawMultilineText(0,0),this.hasChange=!1,!0):!1}render(e){return!1}resize(e,r){if(!this.ctx2d)return;let{color:o,font:s}=this;super.resize(e,r),this.color=o,this.font=s}drawMultilineText(e=0,r=0,o=1.2){if(!this.ctx2d)return;let s=this.ctx2d.measureText(this.content);r+=s.fontBoundingBoxAscent||s.actualBoundingBoxAscent||0;let n=this.font.match(/(\d+)px/),d=(n?parseInt(n[1],10):16)*o,l=this.content.split(`
32
+ `);for(let p=0;p<l.length;p++)this.ctx2d.fillText(l[p],e,r+p*d)}};var xA=`
33
33
  // \u9876\u70B9\u7740\u8272\u5668
34
34
  attribute vec4 a_position;
35
35
  attribute vec2 a_texCoord;
@@ -39,7 +39,7 @@ void main() {
39
39
  gl_Position = a_position;
40
40
  v_texCoord = a_texCoord;
41
41
  }
42
- `,LA=`
42
+ `,PA=`
43
43
  // \u7247\u5143\u7740\u8272\u5668
44
44
  precision mediump float;
45
45
  varying vec2 v_texCoord;
@@ -47,14 +47,14 @@ uniform sampler2D u_texture;
47
47
 
48
48
  void main() {
49
49
  gl_FragColor = texture2D(u_texture, v_texCoord);
50
- } `;var Os=class extends ue{constructor(e){super();m(this,"frameRate");m(this,"_canvas");m(this,"log");m(this,"hasAlpha",!1);m(this,"name");m(this,"error");this.name=e.name,this.log=e.logger.createChild({id:`vc-${this.name}`}),this.frameRate=e.frameRate}get canvas(){return this._canvas}set width(e){this._canvas&&(this._canvas.width=e)}get width(){var e;return((e=this._canvas)==null?void 0:e.width)||0}set height(e){this._canvas&&(this._canvas.height=e)}get height(){var e;return((e=this._canvas)==null?void 0:e.height)||0}setSize(e,r){this._canvas&&(this._canvas.width=e,this._canvas.height=r)}createVideoTrackSource(e,r){return new Dr(this,e,{logger:this.log,name:r})}createVideoTrackDestination(e){return new Un(this,e)}createVideoImageSource(e,r){return new gc(this,r?Object.assign(r,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,r){return new Ec(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}createTextSource(e,r){return new Zu(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};m(Os,"_ids",0);var kA={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},Vn=class Vn extends Os{constructor(){super(...arguments);m(this,"defaultProgam");m(this,"defaultVShader");m(this,"defaultFShader");m(this,"ctx");m(this,"_canvas2d")}get canvas(){return this._canvas2d||this._canvas}create(e=!1){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${Os._ids++}`),e&&(this._canvas2d=document.createElement("canvas")),this.ctx=this._canvas.getContext("webgl2",kA),!this.ctx)throw new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,PA),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,LA),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(e){let r="";return e&&(r=e.message,this.error=e,J.addFailedEvent({key:512702,error:e})),this.disconnect(),this.log.info(`video context destroy${r}`?`: ${r}`:""),this.ctx&&(this.ctx.deleteShader(this.defaultVShader),this.ctx.deleteShader(this.defaultFShader),this.ctx.deleteProgram(this.defaultProgam),delete this.ctx),e}set width(e){var r;(r=this.ctx)==null||r.viewport(0,0,e,this.height),super.width=e,this._canvas2d&&(this._canvas2d.width=e)}set height(e){var r;(r=this.ctx)==null||r.viewport(0,0,this.width,e),super.height=e,this._canvas2d&&(this._canvas2d.height=e)}setSize(e,r){var o;(o=this.ctx)==null||o.viewport(0,0,e,r),super.setSize(e,r),this._canvas2d&&(this._canvas2d.width=e,this._canvas2d.height=r)}createShader(e,r){let o=this.ctx,s=o.createShader(e);return o.shaderSource(s,r),o.compileShader(s),s}createProgram(e,r){let o=this.ctx,s=o.createProgram();return o.attachShader(s,e),o.attachShader(s,r),o.linkProgram(s),o.getProgramParameter(s,o.LINK_STATUS)||this.log.error(o.getProgramInfoLog(s)),s}};m(Vn,"UNAVAILABLE","unavailable"),Z([et(ue.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),J.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),J.addSuccessEvent({key:512700})}})],Vn.prototype,"create",1),Z([et("created",ue.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(Vn.UNAVAILABLE,e),this.removeAllListeners()}})],Vn.prototype,"destroy",1);var Nt=Vn,Pt=class extends Os{constructor(){super(...arguments);m(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${Os._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha,willReadFrequently:e.willReadFrequently}),!this.ctx)throw new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"2d context not supported"});this._canvas.addEventListener("contextlost",()=>{this.log.error("2d context lost")}),this._canvas.addEventListener("contextrestored",()=>{this.log.warn("2d context restored")})}destroy(e){let r="";e&&(r=e.message,this.error=e,J.addFailedEvent({key:512703,error:e})),this.disconnect(),this.log.info(`video context destroy ${r?`: ${r}`:""}`),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners(),J.addSuccessEvent({key:512703})}};Z([et(ue.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),J.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),J.addSuccessEvent({key:512701})}})],Pt.prototype,"create",1),Z([et("created",ue.INIT,{ignoreError:!0,sync:!0})],Pt.prototype,"destroy",1);function UA(i,t,e,r,o,s=!1){s&&([e,r]=[r,e]);let n={sWidth:i,sHeight:t,dWidth:e,dHeight:r,sx:0,sy:0,dx:0,dy:0};if(i===0||t===0)return n;switch(o){case void 0:case"fill":break;case"contain":{let a=Math.min(e/i,r/t);n.dWidth=i*a,n.dHeight=t*a,n.dx=(e-n.dWidth)/2,n.dy=(r-n.dHeight)/2;break}case"cover":{let a=Math.max(e/i,r/t),d=e/a,l=r/a;n.sx=(i-d)/2,n.sy=(t-l)/2,n.sWidth=d,n.sHeight=l;break}}return n}var xp=class{constructor(t,e){this.node=t;this.layout=e;m(this,"positionBuffer")}get x(){return this.layout.x||this.node.x}get y(){return this.layout.y||this.node.y}get width(){return this.layout.width||this.node.width}get height(){return this.layout.height||this.node.height}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get fillMode(){return this.layout.fillMode}get rotation(){return this.layout.rotation}get hidden(){return!!this.layout.hidden}},Fn=class extends bt{constructor(e,r){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:r});m(this,"inputs",[]);m(this,"backgroundColor","black")}addInput(e,r){let o=0,s=this.inputs.length;for(;o<s;){let a=Math.floor((o+s)/2);if(this.inputs[a].layout.zIndex<r.zIndex)o=a+1;else if(this.inputs[a].layout.zIndex>r.zIndex)s=a;else throw new Error(`input already exists at zIndex ${r.zIndex}`)}let n=new xp(e,r);this.inputs.splice(o,0,n)}changeInputLayout(e,r){let o=this.inputs.findIndex(R=>R.node===e);if(o<0)return;let{x:s,y:n,width:a,height:d,zIndex:l,fillMode:p,rotation:f,hidden:g}=r;if(!O(l)&&this.inputs.some(R=>R.layout.zIndex===l&&R.node!==e))throw new Error(`input already exists at zIndex ${r.zIndex}`);let y=this.inputs[o];O(s)||(y.layout.x=s),O(n)||(y.layout.y=n),O(a)||(y.layout.width=a),O(d)||(y.layout.height=d),O(f)||(y.layout.rotation=f),O(g)||(y.layout.hidden=g),p&&(y.layout.fillMode=p),!O(l)&&l!==y.layout.zIndex&&(y.layout.zIndex=l,this.inputs.sort((R,C)=>R.layout.zIndex-C.layout.zIndex))}hasInput(e){return this.inputs.some(r=>r.node===e)}hasNoInput(){return this.inputs.length===0}resize(e,r){if(!this.matchInputSize){super.resize(e,r);return}let o=this.inputs.reduce((s,n)=>n?Object.assign(s,{width:Math.max(s.width,n.right),height:Math.max(s.height,n.bottom)}):s,{width:0,height:0});super.resize(o.width,o.height),this.context instanceof Nt&&this.inputs.forEach(s=>{if(s){let n=this.layout2texCoords(s);s.positionBuffer?this.changeBufferData(s.positionBuffer,n):s.positionBuffer=this.createBuffer(n)}})}connect(e,...r){return super.connect(e,...r),this.drawBackGround2d(this.backgroundColor),this.matchInputSize&&this.resize(0,0),e}removeInput(e){this.inputs=this.inputs.filter(r=>r.node!==e),this.inputs.length===0&&this.drawBackGround2d(this.backgroundColor)}render(e){let r=this.context.ctx;if(r.clearColor(0,0,0,0),this.inputs.reduce((s,n)=>n.node.requestFrame(e)||s,!1)&&r){this.useProgram(),r.enable(r.BLEND),r.blendFunc(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA),this.useBufferFrame();for(let s=0;s<this.inputs.length;s++){let n=this.inputs[s];n&&(n.node.useTexture(),this.draw(n.positionBuffer))}return!0}return!1}render2d(e){if(this.inputs.forEach(r=>r.node.requestFrame(e)),this.ctx2d){this.drawBackGround2d(this.backgroundColor);for(let r=0;r<this.inputs.length;r++){let o=this.inputs[r];if(o.hidden)continue;let s=UA(o.node.width,o.node.height,o.width,o.height,o.fillMode,pr(o.rotation));this.draw2d(o.node.image,o.x+s.dx,o.y+s.dy,s.dWidth,s.dHeight,s.sx,s.sy,s.sWidth,s.sHeight)}return!0}return!1}debugLayout(e,r,o,s,n=!1){this.ctx2d&&(n&&([o,s]=[s,o]),this.ctx2d.save(),this.ctx2d.strokeStyle="red",this.ctx2d.lineWidth=2,this.ctx2d.strokeRect(e,r,o,s),this.ctx2d.restore())}getInfo(){let{totalFrames:e,x:r,y:o,width:s,height:n,name:a}=this,d=Date.now(),l=(e-this.lastInfo.totalFrames)/((d-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:d,fps:l,name:a},Y({parent:this.inputs.filter(p=>p).map(p=>p.node.getInfo())},this.lastInfo)}removeAllInputs(){this.inputs.forEach(e=>{var r;if(e.node.disconnect(),e.positionBuffer&&this.context instanceof Nt)try{(r=this.context.ctx)==null||r.deleteBuffer(e.positionBuffer)}catch(o){}})}close(){super.close(),this.removeAllInputs()}};var VA=[1,0,0,0,1,1,0,1],wr=class extends bt{constructor(e,r,o,s){super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:r});m(this,"mirror",!1);m(this,"rotation",0);if(o&&(this.mirror=o),s&&(this.rotation=s),e instanceof Nt)try{this.setTexBuffer(VA)}catch(n){e.destroy(new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${n.message||n}`}))}}draw2d(e,r,o,s,n){if(this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height),this.ctx2d.save(),this.mirror&&(this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0)),this.rotation===90?(this.ctx2d.translate(s,0),this.ctx2d.rotate(Math.PI/2),this.ctx2d.scale(n/s,s/n)):this.rotation===180?(this.ctx2d.translate(this.width,this.height),this.ctx2d.rotate(Math.PI)):this.rotation===270&&(this.ctx2d.translate(0,n),this.ctx2d.rotate(3*Math.PI/2),this.ctx2d.scale(n/s,s/n));let a=super.draw2d(e,r,o,s,n);return this.ctx2d.restore(),a}return!1}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}resize(e,r){pr(this.rotation)&&([e,r]=[r,e]),super.resize(e,r)}};var Ms=class extends Jr{constructor(e,r=4){super(r,Bt);m(this,"inputLocalVideoTracks",new Map);m(this,"inputLocalScreenTracks",new Map);m(this,"cameraNodeMap",new Map);m(this,"screenNodeMap",new Map);m(this,"textNodeMap",new Map);m(this,"imageNodeMap",new Map);m(this,"videoNodeMap",new Map);m(this,"endedIds",new Set);m(this,"videoContext");m(this,"mixNode");m(this,"destination");m(this,"manager");m(this,"stat");m(this,"_checkId",0);m(this,"autoSetFps",!0);this.manager=e,this.log.id+="mix",this.create2dVideoContext(),this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(bt.RENDER,o=>{this.emit("render",o)}),this.mixNode=new Fn(this.videoContext,this.log),this.mixNode.matchInputSize=!1}listenDeviceChange(){throw new Error("Method not implemented.")}enablePrintDetail(e=2e3){this._checkId=ft.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}create2dVideoContext(){this.videoContext?this.videoContext.destroy():this.videoContext=new Pt({frameRate:15,logger:this.log,name:"mix-ctx"}),this.videoContext.create({alpha:!1})}setFps(e){this.autoSetFps=!1,this.videoContext.frameRate=e;for(let r of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])r.shouldUpdate=!1;setTimeout(()=>{var r;return(r=this.destination)==null?void 0:r.start(this.videoContext.frameRate)},500)}setFpsAuto(){var s;if(!this.autoSetFps)return;for(let n of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])n.shouldUpdate=!1;let e=null,r=0,o=!0;for(let[n,a]of this.inputLocalVideoTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let d=this.cameraNodeMap.get(n);d&&d.image.cancelVideoFrameCallback(d.videoCallbackId);continue}r=a.profile.frameRate,e=n}for(let[n,a]of this.inputLocalScreenTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let d=this.screenNodeMap.get(n);d&&d.image.cancelVideoFrameCallback(d.videoCallbackId);continue}r=a.profile.frameRate,e=n,o=!1}if(e!==null){let n=o?this.cameraNodeMap.get(e):this.screenNodeMap.get(e);n&&(n.shouldUpdate=!0,n.tryVideoFrameCallback()),this.log.info("set mix fps: ",r)}else(s=this.destination)==null||s.start(this.videoContext.frameRate),this.log.info("fallback to timer, fps: ",this.videoContext.frameRate)}setMixBackground(e){this.mixNode&&(this.mixNode.backgroundColor=e)}resizeMixCanvas(e,r){var o;(o=this.mixNode)==null||o.resize(e,r)}startMix(){return A(this,null,function*(){var e;if(!this.mixNode||!this.destination)throw new Error("can't mix without necessary conditions");this.mixNode.disconnect(),this.mixNode.connect(this.destination),vr&&this.player.setCanvas(this.videoContext._canvas),this.setOutputMediaStreamTrack(this.destination.videoTrack),(e=this.manager)==null||e.changeInput(this)})}addCameraSource(e,r,o){if(this.inputLocalVideoTracks.has(e)||this.cameraNodeMap.has(e))throw new Error(`There is already a cameraSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");r.recaptureMode=1,Ft(this,at).add("videoInputRemoved",a=>{a.deviceId===r.deviceId&&(this.endedIds.add(e),this.setFpsAuto())}),r.on("output-media-track-changed",()=>{this.endedIds.delete(e),this.updateCameraSource(e,o,r.mediaTrack)});let n;Vt===16&&s instanceof CanvasCaptureMediaStreamTrack?n=this.videoContext.createVideoImageSource(s.canvas,{name:"cameraCanvasSource",logger:this.log}):n=this.videoContext.createVideoTrackSource(s,"cameraNodeSource"),n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o,"cover"),this.inputLocalVideoTracks.set(e,r),this.cameraNodeMap.set(e,n),this.setFpsAuto()}addScreenSource(e,r,o){if(this.inputLocalScreenTracks.has(e)||this.screenNodeMap.has(e))throw new Error(`There is already a screenSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");let n=this.videoContext.createVideoTrackSource(s,"screenNodeSource");n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o),this.inputLocalScreenTracks.set(e,r),this.screenNodeMap.set(e,n),this.setFpsAuto()}addTextSource(e){let{id:r,content:o="",font:s,color:n,layout:a}=e;if(this.textNodeMap.has(r))throw new Error(`There is already a textSource with the same ID: ${r}`);let d=this.videoContext.createTextSource({content:o,font:s,color:n});d.resize(a.width,a.height),this._connectMix(d,a),this.textNodeMap.set(r,d)}addImageSource(e,r,o){if(this.imageNodeMap.has(e))throw new Error(`There is already a imageSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.width,r.height),this._connectMix(s,o),this.imageNodeMap.set(e,s)}addVideoSource(e,r,o){if(this.videoNodeMap.has(e))throw new Error(`There is already a videoSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.videoWidth,r.videoHeight),s.shouldUpdate=!1,this._connectMix(s,o),this.videoNodeMap.set(e,s)}updateCameraSource(e,r,o=null,s){let n=this.cameraNodeMap.get(e);if(n){if(o){if(Vt===16&&o instanceof CanvasCaptureMediaStreamTrack)if(n instanceof Dr){let l=n.output;n.close(),n=this.videoContext.createVideoImageSource(o.canvas,{name:"cameraCanvasSource",logger:this.log}),n.connect(l),this.cameraNodeMap.set(e,n)}else n.image=o.canvas;else if(n instanceof Dr)n.replaceTrack(o);else{let l=n.output;n.close(),n=this.videoContext.createVideoTrackSource(o,"cameraNodeSource"),n.connect(l),this.cameraNodeMap.set(e,n)}let{width:a,height:d}=o.getSettings();a&&d&&n.resize(a,d)}s&&n.resize(s.width,s.height),(s||o)&&this.setFpsAuto(),this._changeMixLayout(n,r)}}updateScreenSource(e,r){let o=this.screenNodeMap.get(e);o&&this._changeMixLayout(o,r)}updateTextSource(e){let{id:r,content:o,font:s,color:n,layout:a}=e,d=this.textNodeMap.get(r);d&&(O(o)||(d.content=o),O(s)||(d.font=s),O(n)||(d.color=n),d.resize(a.width,a.height),this._changeMixLayout(d,a))}updateImageSource(e,r,o){let s=this.imageNodeMap.get(e);s&&(o&&(s.image=o,s.resize(o.width,o.height)),this._changeMixLayout(s,r))}updateVideoSource(e,r,o){let s=this.videoNodeMap.get(e);if(s){if(o){let n=s.image;n instanceof HTMLVideoElement&&this.stopVideoElement(n),s.image=o,s.resize(o.videoWidth,o.videoHeight)}this._changeMixLayout(s,r)}}_connectMix(e,r,o="contain"){if(!this.mixNode)return;let{mirror:s,rotation:n}=r;e.disconnect();let a=new wr(this.videoContext,this.log,s,n);a=e.connect(a),r.fillMode||(r.fillMode=o),a.connect(this.mixNode,r)}_changeMixLayout(e,r){if(!this.mixNode)return;let{mirror:o,rotation:s}=r,n=e.output||e;n instanceof wr&&(O(o)||(n.mirror=o),O(s)||(n.rotation=s),n.resize(e.width,e.height)),this.mixNode.changeInputLayout(n,r)}removeCameraSource(e){let r=this.inputLocalVideoTracks.get(e);if(!r)return;r.close(),this.inputLocalVideoTracks.delete(e);let o=this.cameraNodeMap.get(e);o&&(o.output instanceof wr&&o.output.close(),o.close(),this.cameraNodeMap.delete(e)),this.checkAfterRemove(!0)}removeScreenSource(e){let r=this.inputLocalScreenTracks.get(e);if(!r)return;r.close(),this.inputLocalScreenTracks.delete(e);let o=this.screenNodeMap.get(e);o&&(o.output instanceof wr&&o.output.close(),o.close(),this.screenNodeMap.delete(e)),this.checkAfterRemove(!0)}removeTextSource(e){let r=this.textNodeMap.get(e);r&&(r.output instanceof wr&&r.output.close(),r.close(),this.textNodeMap.delete(e)),this.checkAfterRemove()}removeImageSource(e){let r=this.imageNodeMap.get(e);r&&(r.output instanceof wr&&r.output.close(),r.close(),this.imageNodeMap.delete(e)),this.checkAfterRemove()}removeVideoSource(e){let r=this.videoNodeMap.get(e);r&&(r.output instanceof wr&&r.output.close(),r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image),r.close(),this.videoNodeMap.delete(e)),this.checkAfterRemove()}checkAfterRemove(e=!1){e&&this.setFpsAuto()}stopVideoElement(e){e.pause(),e.src="",e.srcObject=null,e.remove()}close(){var e;super.close(),ft.clearTask(this._checkId),(e=this.videoContext)==null||e.destroy(),delete this.mixNode,delete this.destination;for(let r of[...this.inputLocalVideoTracks.values(),...this.inputLocalScreenTracks.values()])r.close();this.inputLocalVideoTracks.clear(),this.inputLocalScreenTracks.clear(),this.cameraNodeMap.clear(),this.screenNodeMap.clear(),this.textNodeMap.clear(),this.imageNodeMap.clear(),St(this);for(let r of this.videoNodeMap.values())r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image);this.videoNodeMap.clear(),this.log.info("localMixVideoTrack close, stop mix")}};var Ku=Va();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Ku,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var FA=function(i){return A(this,null,function*(){let t=null,e=HA(i);F.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(Sn&&sr<74||_t||lt)&&F.warn("Your browser not support capture system audio");let o=r.getVideoTracks()[0];if(o){if(i.frameRate)try{yield o.applyConstraints({frameRate:{min:i.frameRate,ideal:i.frameRate},width:i.width,height:i.height})}catch(s){F.warn(`screen applyConstraints failed: ${s}`)}i.captureElement&&(yield BA(o,i.captureElement))}if(i.audio){let s=$A(i);F.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function BA(i,t){return A(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&Xe(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===Ku))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){F.warn(`cropTo target failed ${r}`)}})}function $A(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return O(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function HA(i){let t={preferCurrentTab:i.preferDisplaySurface==="current-tab"||!!i.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:_t?{max:i.width}:{ideal:i.width,max:i.width},height:_t?{max:i.height}:{ideal:i.height,max:i.height},frameRate:i.frameRate,displaySurface:i.preferDisplaySurface||"monitor"};if(t.video=e,i.systemAudio){let{echoCancellation:r=!0,noiseSuppression:o=!1,autoGainControl:s=!1}=i;t.audio={echoCancellation:r,noiseSuppression:o,autoGainControl:s,sampleRate:48e3}}return t}var r_=FA;var li=class extends _r{constructor(e){super(e,2);m(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600});m(this,"objectFit","contain");m(this,"isScreen",!0);this._log.id=`s-${this._log.id}`}get isShareCurrentTab(){var e,r;try{return Ku===((r=(e=this.mediaTrack)==null?void 0:e.getCaptureHandle())==null?void 0:r.handle)}catch(o){return}}capture(p){return A(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:n,videoTrack:a,captureElement:d,preferDisplaySurface:l}){try{let f;return a||n?(f=new MediaStream,a&&f.addTrack(a),n&&f.addTrack(n)):(f=yield r_({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:r,echoCancellation:o,noiseSuppression:s,captureElement:d,preferDisplaySurface:l}),this.sourceTrack=f.getVideoTracks()[0]),yield this.setInputMediaStreamTrack(f.getVideoTracks()[0]),f}catch(f){throw this.log.error(`getDisplayMedia error observed ${f}`),f instanceof ae?f:new ae({code:q.INITIALIZE_FAILED,name:f.name,message:f.message})}})}switchDevice(e){return A(this,null,function*(){throw new Error("Method not implemented.")})}};Z([Co(function(e){this.setContentHint(e.contentHint||"detail")})],li.prototype,"capture",1);var xs=class extends ui{constructor(t){super(t),this._log.id=`s-${this._log.id}`,this.isScreen=!0}addAudioProcessor(t,e,r){this.pipeline.silentNode.setNode(r),this.pipeline.mixNode.setNode(e),this.pipeline.aec.setNode(t),this.enableTrackAEC(!1)}removeAudioProcessor(t){this.pipeline.aec.node===t&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}};var WA='registerProcessor("dumper",class extends AudioWorkletProcessor{constructor(e){super(),this.sourceSampleRate=e.processorOptions.sourceSampleRate||48e3,this.targetSampleRate=e.processorOptions.targetSampleRate||48e3,this.port.onmessage=e=>{this.port2=e.data.port}}process(e){return(this.port2||this.port).postMessage(this.resampleAll(e,this.sourceSampleRate,this.targetSampleRate)),!0}resampleAll(r,s,a){if(s===a)return r;var o=[];for(let t=0;t<r.length;t++){o[t]=[];for(let e=0;e<r[t].length;e++)o[t][e]=this.resample(r[t][e],s,a)}return o}resample(t,e,r){if(e===r)return t;var s=Math.round(t.length*(this.targetSampleRate/this.sourceSampleRate)),a=new Float32Array(s),o=(t.length-1)/(s-1);a[0]=t[0];for(let e=1;e<s-1;e++){var l=e*o,p=Math.floor(l),h=Math.ceil(l);a[e]=t[p]+(t[h]-t[p])*(l-p)}return a[s-1]=t[t.length-1],a}});',Pp;function _c(i,t=48e3,e=1,r){return A(this,null,function*(){let o=qe("dump");Pp||(Pp=Gi(o,URL.createObjectURL(new Blob([WA],{type:"application/javascript"})))),yield Pp;let s=o.sampleRate,n=new AudioWorkletNode(o,"dumper",{numberOfInputs:i.length,numberOfOutputs:0,processorOptions:{sourceSampleRate:s,targetSampleRate:t}});return n.channelCountMode="explicit",n.channelCount=e,r&&n.port.postMessage({port:r},[r]),i.forEach((a,d)=>a.connect(n,0,d)),new ReadableStream({start(a){n.port.onmessage=d=>{a.enqueue(d.data)}},cancel(){i.forEach(a=>a.disconnect(n)),n.port.close()}})})}var el=class extends bu{constructor(e){super();this.room=e;m(this,"_localAudioTrack");m(this,"_localScreenAudioTrack");m(this,"log");m(this,"denoiser");m(this,"voiceChanger");m(this,"mixChangedDebounce");m(this,"audioProcessor");m(this,"encodePipeline",[]);m(this,"decodePipeline",[]);m(this,"getPCMAbortCtrlMap",new Map);m(this,"audioFrameEventConfigMap",new Map);m(this,"audioReferenceMap",new Map);m(this,"isLocalAudioNeedAudioProcess",!1);m(this,"isScreenAudioNeedAudioProcess",!1);this.log=F.createLogger({parent:e==null?void 0:e.getLogger(),id:"am",userId:e==null?void 0:e.userId,sdkAppId:e==null?void 0:e.sdkAppId}),this.installEvent()}get localAudioTrack(){return this._localAudioTrack}get _localAudioPipline(){var e;return(e=this._localAudioTrack)==null?void 0:e.pipeline}get _localScreenAudioPipeline(){var e;return(e=this._localScreenAudioTrack)==null?void 0:e.pipeline}dump(e){var p,f;if(!this._localAudioTrack)return;let r=[],o=[];(p=this._localAudioPipline)!=null&&p.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(f=this._localAudioPipline)!=null&&f.denoiser.node&&(r.push(this._localAudioPipline.denoiser.node),o.push("mic-processed")),this.mixWeight>1&&(r.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),o.push("mix")),this.log.info(`dump audio track ${o}, duration: ${e}`);let s=new AbortController,n=[],a=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),s.abort("timeout")},e*1e3),d=()=>{for(let g=0;g<o.length;g++){let y=URL.createObjectURL(new Blob(n[g])),R=document.createElement("a");R.href=y,R.download=`${o[g]}.pcm`,R.style.display="none",document.body.appendChild(R),R.click(),URL.revokeObjectURL(y),R.remove()}clearTimeout(a),s.abort("download")},l=_c(r).then(g=>g.pipeTo(new WritableStream({write(y){y.forEach((R,C)=>n[C]=n[C]?n[C].concat(R[0]):[R[0]])}}),s).catch(y=>d));return{then:l.then.bind(l),download:d}}getPCM(e,r){var k,Q,H;if(typeof WritableStream=="undefined"){this.log.warn("getPCM failed: browser not support WritableStream");return}let{enable:o,sampleRate:s=48e3,channelCount:n=1,port:a}=(r===""?this.audioFrameEventConfigMap.get(""):this.audioFrameEventConfigMap.get(r)||this.audioFrameEventConfigMap.get("*"))||{};if(!o)return;this.log.info(`getPCM ${r||"local"}`);let d=Math.floor(s*.04),l=new Float32Array(d),p=new Float32Array(d),f,g,y=0,R=new AbortController,C=r===""?(k=this._localAudioTrack)==null?void 0:k.mediaTrack:(H=(Q=this.room)==null?void 0:Q.remotePublishedUserMap.get(r))==null?void 0:H.remoteAudioTrack.mediaTrack;if(!C){this.log.info(`getPCM failed: ${r||"local"} has no audio track`);return}let N=qe().createMediaStreamSource(new MediaStream([C]));return _c([N],s,n,a).then(Ie=>Ie.pipeTo(new WritableStream({write(Je){Je[0][0]&&(y+Je[0][0].length>d?(l.set(Je[0][0].subarray(0,d-y),y),f=Je[0][0].subarray(d-y),Je[0][1]&&(p.set(Je[0][1].subarray(0,d-y),y),g=Je[0][1].subarray(d-y)),y+=d-y):(f&&(l.set(f,y),y+=f.length,f=void 0),g&&(p.set(g,y),g=void 0),l.set(Je[0][0],y),Je[0][1]&&p.set(Je[0][1],y),y+=Je[0][0].length),y>=d&&(y=0,e({userId:r,sampleRate:s,channelCount:n,data:n===1?l:[l,p]}),l=new Float32Array(d),p=new Float32Array(d)))}}),R).catch(Je=>this.log.warn(`stop getPCM reason:${Je}`))),R}get hasScreenAudioTrack(){return!O(this._localScreenAudioTrack)}get hasAudioTrack(){return!O(this._localAudioTrack)}changeInput(e){var r,o;if(e instanceof xs)return this._localScreenAudioTrack=e,this.isScreenAudioNeedAudioProcess&&((r=this.audioProcessor)!=null&&r.screenAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.screenAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof ui)return this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),this.isLocalAudioNeedAudioProcess&&((o=this.audioProcessor)!=null&&o.localAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.localAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof zi)return e.setOutputMediaStreamTrack(e.mediaTrack)}mixAudioReference(e,r){var o;(o=this._localAudioTrack)==null||o.mixAudioReference(e,r)}unMixAudioReference(e){var r;(r=this._localAudioTrack)==null||r.unMixAudioReference(e)}setAudioReferenceVolume(e,r){var o;(o=this._localAudioTrack)==null||o.setAudioReferenceVolume(e,r)}mixOnChange(){return this.mixChangedDebounce||(this.mixChangedDebounce=Promise.resolve().then(()=>{var e,r;return delete this.mixChangedDebounce,Promise.all([(e=this._localAudioTrack)==null?void 0:e.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localAudioTrack.mediaTrack),(r=this._localScreenAudioTrack)==null?void 0:r.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localScreenAudioTrack.mediaTrack)])})),this.mixChangedDebounce}removeInput(e){e instanceof xs?delete this._localScreenAudioTrack:e instanceof ui?delete this._localAudioTrack:e instanceof zi}addDenoiser(e){var r;this.denoiser=e,(r=this._localAudioTrack)==null||r.addDenoiser(e)}addAudioProcessor(e,r,o,s){var n;this.audioProcessor={localAudioWorkletNode:o,mixNode:e,silentNode:r,screenAudioWorkletNode:s},this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&o&&(this._localAudioTrack.addAudioProcessor(o,e,r),this.audioReferenceMap.forEach((a,d)=>{var l;(l=this._localAudioTrack)==null||l.mixAudioReference(a,d)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&s&&((n=this._localScreenAudioTrack)==null||n.addAudioProcessor(s,e,r),this.audioReferenceMap.forEach((a,d)=>{var l;(l=this._localScreenAudioTrack)==null||l.mixAudioReference(a,d)}))}removeDenoiser(e){var r;return delete this.denoiser,(r=this._localAudioTrack)==null?void 0:r.removeDenoiser(e)}addVoiceChanger(e,r){var o;this.voiceChanger=[e,r],(o=this._localAudioTrack)==null||o.pipeline.voiceChanger.setNode(e,r)}removeVoiceChanger(){var e;delete this.voiceChanger,(e=this._localAudioTrack)==null||e.pipeline.voiceChanger.deleteNode()}removeAudioProcessor(e,r){var o,s;delete this.audioProcessor,(o=this._localAudioTrack)==null||o.removeAudioProcessor(e),(s=this._localScreenAudioTrack)==null||s.removeAudioProcessor(r)}destroy(){this.close(),this.audioReferenceMap.clear(),this.getPCMAbortCtrlMap.forEach(e=>e==null?void 0:e.abort("destroy")),this.getPCMAbortCtrlMap.clear(),this.audioFrameEventConfigMap.clear(),this.uninstallEvent()}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}handleLocalTrackStarted({room:e,userId:r}){var s;if(e!==this.room||this.getPCMAbortCtrlMap.get(r))return;let o=this.getPCM(n=>{var a;(a=this.room)==null||a.emit("audio-frame",n)},"");this.getPCMAbortCtrlMap.set(r,o),this.getPCMAbortCtrlMap.get(r)&&((s=this._localAudioTrack)==null||s.on("input-media-track-changed",()=>{let n=this.getPCMAbortCtrlMap.get(r);n&&(n.abort("inputMediaTrackChanged"),n=this.getPCM(a=>{var d;(d=this.room)==null||d.emit("audio-frame",a)},""),this.getPCMAbortCtrlMap.set(r,n))}))}handleLocalTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopLocalAudio"),this.getPCMAbortCtrlMap.delete(r))}handleRemoteTrackStarted({room:e,userId:r}){if(e===this.room&&!this.getPCMAbortCtrlMap.get(r)){let o=this.room.audioManager.getPCM(s=>{var n;(n=this.room)==null||n.emit("audio-frame",s)},r);this.getPCMAbortCtrlMap.set(r,o)}}handleRemoteTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopRemoteAudio"),this.getPCMAbortCtrlMap.delete(r))}installEvent(){U.on("113",this.handleLocalTrackStarted,this),U.on("114",this.handleLocalTrackStopped,this),U.on("115",this.handleRemoteTrackStarted,this),U.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){U.off("113",this.handleLocalTrackStarted),U.off("114",this.handleLocalTrackStopped),U.off("115",this.handleRemoteTrackStarted),U.off("116",this.handleRemoteTrackStopped)}updateAudioReference({type:e,audioReference:r,refId:o,volume:s}){if(e==="add"){if(this.audioReferenceMap.get(o)||!r||(this.audioReferenceMap.set(o,r),!this.audioProcessor))return;this.mixAudioReference(r,o)}else if(e==="remove")this.audioReferenceMap.get(o)&&(this.audioReferenceMap.delete(o),this.unMixAudioReference(o));else if(e==="updateVolume"){if(!this.audioProcessor||O(s))return;this.setAudioReferenceVolume(o,s)}}};function zu(i=30,t=2){return xe((e,r)=>function(...o){return new Promise((s,n)=>{let a=setTimeout(()=>{let d=new ae({code:q.API_CALL_TIMEOUT,message:`checkPendingPromise ${r}() timeout ${i}s`});(this.log||this._log||F).warn(d),t===2?n(d):t===1&&s()},i*1e3);this._checkPendingPromiseSet||(this._checkPendingPromiseSet=new Set),this._checkPendingPromiseSet.add(a),e.apply(this,o).then(s,n).finally(()=>{clearTimeout(a),this._checkPendingPromiseSet&&a&&this._checkPendingPromiseSet.delete(a)})})})}var mi=class mi extends Ss{constructor(e,r,o){super({userId:r.userId,sdkAppId:e.sdkAppId,mediaType:o,room:e});this.room=e;this.user=r;m(this,"tinyId");m(this,"isRemote",!0);m(this,"jitterBufferDelay",0);m(this,"availableState");m(this,"remotePublishState");m(this,"_triggerCheckDecodeSubject",At(ye(this,mi.STATE_SUBSCRIBE)));this.tinyId=r.tinyId,this.availableState=new ue(`${r.userId}-${this.mediaType}-available`,"remote-track-available"),this.remotePublishState=new ue(`${r.userId}-${this.mediaType}-remote-publish`,"remote-track-publish"),Ae(lc(ye(this,ue.STATECHANGED),ye(this.remotePublishState,ue.STATECHANGED)),Do(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),Pe(d=>{this.availableState.state!==(d?ue.ON:ue.OFF)&&(this.availableState.state=d?ue.ON:ue.OFF),this.updatePlayingState(d)}));let s=Ae(ye(this.player,Ge.ERROR),er(d=>d.code===MediaError.MEDIA_ERR_DECODE)),n=Ae(hc(5e3),er(()=>this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived?!1:this.player.isPlaying||(this.kind===M.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)?(this.reportDecodeResult(!0),!1):!0)),a=Ae(qh(s,n),ze(ye(this,ue.INIT)));Ae(this._triggerCheckDecodeSubject,er(()=>!this.ignoreDecodeError),qi(a),Pe(d=>{this.reportDecodeResult(!1,d)}))}setMute(e){this.isRemotePublished&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isRemotePublished&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}checkDecodeResult(){this._triggerCheckDecodeSubject.next(!0)}waitHasMediaTrack(){return new Promise(e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)})}get ignoreDecodeError(){var r,o;return(((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===mi.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===ue.ON}get isNeedPlay(){return this.isAvailable&&this.isPlayCalled}subscribe(e){return e}unsubscribe(){this.player.setTrack(null),this.streamType==="main"&&this.kind==="video"&&this.room.changeType(!1,this.user)}reportDecodeResult(e,r){var s,n;let o=this.kind===M.AUDIO;if(J[e?"addSuccessEvent":"addFailedEvent"]({key:o?504700:514702}),!o){let a=((s=this.room)==null?void 0:s.downlinkVideoCodec.toUpperCase())||"H264";J[e?"addSuccessEvent":"addFailedEvent"]({key:Cn[`DECODE_${a}_RESULT`]}),e||this.log.warn(`${(n=this.room)==null?void 0:n.downlinkVideoCodec} decode failed`)}e||(J.addEnum({key:o?504701:514703,value:hs()}),je.uploadEvent({log:`stat-decode-failed-${this.kind}-${ms()||Li()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===M.AUDIO?`audioLevel: ${this.getAudioLevel()}`:`framesDecoded: ${this.stat.framesDecoded>0}`}`),this.emit("decode-failed",{error:r}))}updatePlayingState(e){if(this.isPlayCalled&&this.player.isStopped===e){if(e&&(!this.isSubscribed||!this.isRemotePublished||!this.outMediaTrack)){this.log.info(`abort play, isSubscribed: ${this.isSubscribed} isAvailable: ${this.isRemotePublished} hasTrack: ${!!this.outMediaTrack} `);return}super.updatePlayingState(e)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.remotePublishState.state=this.isRemotePublished?ue.ON:ue.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};m(mi,"STATE_SUBSCRIBE","subscribe"),Z([zu(5,1)],mi.prototype,"waitHasMediaTrack",1),Z([et(ue.INIT,mi.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),U.emit(B.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),xu(521716,!1)],mi.prototype,"subscribe",1),Z([et(mi.STATE_SUBSCRIBE,ue.INIT,{sync:!0,success(){this.log.info("unsubscribed"),U.emit(B.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],mi.prototype,"unsubscribe",1);var Bn=mi;var zi=class extends Bn{constructor(e,r){super(e,r,1);m(this,"volume",0);m(this,"mediaType",1);m(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.audioManager}get dbVolume(){return vu.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}onPlayerError(e){this.enableDecodeFrame&&(this._log.warn("use audio decoder"),this.room.enableInsertableStreams())}get enableDecodeFrame(){var e,r;return this.manager?this.manager.decodePipeline.some(o=>o)||((r=(e=this.player.element)==null?void 0:e.error)==null?void 0:r.code)===MediaError.MEDIA_ERR_DECODE&&_u().AudioDecoder&&_s:!1}get enableDecryptFrame(){return this.manager&&!!this.manager.decodePipeline[0]}decodeFrame(e){if(!this.manager)return e;let r=e;for(let[o,s]of this.manager.decodePipeline.entries()){if(!s)continue;let n={frame:e,track:this};if(o===1&&this.isAvailable&&this.room.role==="audience"&&(n.onAudioFrameNTPTime=({ntp:a,frame:d,hasLeavingTag:l})=>{this.emit("audio-frame-with-ntp",{ntp:a,frame:d,hasLeavingTag:l})}),r=s(n),!r)return}return r}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isRemotePublished(){return this.user.muteState.audioAvailable}};var tl=class extends bt{constructor(e,r,o,s,n){super(e,{useDefaultProgram:!0,useFbo:!0,name:"alpha",create2d:!0,logger:r});this.setContainer=s;m(this,"initStat",{alphaStitchingType:1});m(this,"end",At());m(this,"minSize",320);m(this,"maxSize",1280);m(this,"draggable",!1);m(this,"startDragX",0);m(this,"startDragY",0);m(this,"left",0);m(this,"top",0);m(this,"baseWidth",320);m(this,"baseRatio");m(this,"container");this.initStat=n,this.draggable=o,this.bindDragEvents()}bindDragEvents(){let e=this.context._canvas;if(e)if(this.draggable){let r=ze(this.end);Ae(ye(e,"mousedown"),Cs(this.startDrag.bind(this)),di(()=>Ae(ye(window,"mousemove"),ze(ye(window,"mouseup")))),r,Pe(this.doDrag.bind(this))),Ae(ye(e,"dblclick"),r,Pe(this.resetPosition.bind(this))),Ae(ye(e,"wheel"),r,Pe(this.handleZoom.bind(this))),this.renderCanvas()}else{if(!this.container)return;this.container.style.removeProperty("left"),this.container.style.removeProperty("top"),this.end.next()}}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}startDrag(e){e.preventDefault(),e.button===0&&(this.startDragX=e.clientX-this.left,this.startDragY=e.clientY-this.top)}renderCanvas(){let{container:e}=this;e||this.setContainer(),!(!e||!this.baseRatio||!this.draggable)&&(e.style.setProperty("width",`${this.baseWidth}px`),e.style.setProperty("height",`${this.baseWidth/this.baseRatio}px`),e.style.setProperty("position","fixed"),e.style.setProperty("left",`${this.left}px`),e.style.setProperty("top",`${this.top}px`))}doDrag(e){e.preventDefault(),this.left=e.clientX-this.startDragX,this.top=e.clientY-this.startDragY,this.renderCanvas()}handleZoom(e){e.preventDefault();let r=.1,o=e.deltaY,s=this.context._canvas;s&&(this.baseWidth||(this.baseWidth=s.offsetWidth),o<0?this.baseWidth=Math.min(this.baseWidth*(1+r),this.maxSize):this.baseWidth=Math.max(this.baseWidth*(1-r),this.minSize),this.renderCanvas())}resetPosition(){this.left=0,this.top=0,this.renderCanvas()}onRatioReset(){this.renderCanvas()}draw2d(e,r,o,s,n){var y;let{ctx2d:a}=this,d=this.context._canvas;if(!a||!d)return!1;let l=super.draw2d(e,r,o,s,n),p=a.getImageData(0,0,s,n),{data:f}=p,g=!1;if(this.initStat.alphaStitchingType===1){let R=Math.floor(s/2);for(let C=0;C<n;C++)for(let N=0;N<R;N++){let k=(C*s+N)*4,Q=N+R,H=(C*s+Q)*4,Ie=f[H];f[H+3]=0;let Je=Ie>=100;f[k+3]=Je?255:0}g=super.draw2d(p,0,0,0,0,R,n),d.width=R}else if(this.initStat.alphaStitchingType===2){let R=Math.floor(n/2);for(let C=0;C<R;C++)for(let N=0;N<s;N++){let k=(C*s+N)*4,H=((C+R)*s+N)*4,Ie=f[H];f[H+3]=0;let Je=Ie>=100;f[k+3]=Je?255:0}g=super.draw2d(p,0,0,0,0,s,R),d.height=R}return(y=this.context.ctx)==null||y.clearRect(0,0,s,n),l&&g}close(){this.baseRatio=void 0,this.end.next(),this.end.complete()}};function jA(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var Mo=class extends Bn{constructor(e,r,o=4){super(e,r,o);m(this,"mediaType",4);m(this,"source");m(this,"shouldRenderAlpha",!1);m(this,"alphaNode");m(this,"shouldBeDraggable",!0);m(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.videoManager,this.once("first-video-frame",s=>{this.room.emit("first-video-frame",s)})}isAlphaSei(e){if(this.userId!==e.userId||e.seiPayloadType!==50)return!1;let r=new Uint8Array(e.data);return r.length%3!==0||r[0]!==0||r[1]!==1?!1:r}play(e,r){return(Ke(r==null?void 0:r.canvasRender)?r.canvasRender:Vt===17)&&!this.source&&this.useCanvasPlayer(),super.play(e,r).then(()=>{this.player.calculateStat(),U.emit("156",{track:this,player:this.player})})}updateAlphaRenderInfo(e){let r=this.isAlphaSei(e);if(r)if(!this.alphaNode)this.shouldRenderAlpha=!0,this.player.shouldRenderAlpha=!0,this.useCanvasPlayer(r[2]);else{let o=r[2];if(this.alphaNode.baseRatio&&this.alphaNode.initStat.alphaStitchingType===o)return;this.alphaNode.initStat={alphaStitchingType:o};let s=this.player.getElement();if(s){let n=s.videoWidth/s.videoHeight;n&&(this.alphaNode.baseRatio=n*(o===1?.5:2),this.alphaNode.onRatioReset())}this.player.canvas&&(this.player.canvas.id=this.generateAlphaCanvasName(o))}}generateAlphaCanvasName(e){let r="alpha",o=ja[e];return`${r}_${o}_${this.userId}`}useCanvasPlayer(e){if(this.log.info(`useCanvasPlayer(), has element:${!!this.player.element}`),!this.player.element)return;let r=new Pt({frameRate:15,logger:this.log,name:this.shouldRenderAlpha&&e?this.generateAlphaCanvasName(e):this.userId});r.create({alpha:this.shouldRenderAlpha,willReadFrequently:this.shouldRenderAlpha});let o=new ws(r,{name:"remotePlayer",logger:this.log});if(this.source=r.createVideoPlayerSource(this.player),this.player.setCanvas(r._canvas),this.shouldRenderAlpha&&e){let s=()=>{!this.player.container||!this.alphaNode||(this.alphaNode.container=this.player.container,this.alphaNode.renderCanvas())},n=new tl(r,this.log,this.shouldBeDraggable,s,{alphaStitchingType:e});this.source.connect(n),n.connect(o),this.alphaNode=n}else this.source.connect(o);qr()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,r),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=jA(r);if(!Ve(r)||r<=0){this.log.debug(`updateCanvasPlayerFPS() ignore decoder: ${r} `);return}if(o===e.frameRate){this.log.debug(`updateCanvasPlayerFPS() ignore ClosestFPS ${o} == ${e.frameRate}`);return}this.log.info(`updateCanvasPlayerFPS() decoder: ${r}, closest: ${o}, current: ${e.frameRate}`),e.frameRate=o}get decodeFPS(){var n;let{msg_video_status:e}=((n=this.room.heartbeatReport)==null?void 0:n.msg_down_stream_info.find(a=>a.msg_user_info.str_identifier===this.userId))||{},r=this.mediaType===2?7:this.isSmall?3:2;if(!e||e.length===0)return 0;let o=e.find(a=>a.uint32_video_stream_type===r);return(o==null?void 0:o.uint32_video_dec_fps)||0}stop(){return this.room.off("heartbeat-report",this.updateCanvasPlayerFPS,this),U.emit("157",{track:this,player:this.player}),this.alphaNode&&this.alphaNode.close(),super.stop()}decodeFrame(e){if(!this.manager)return e;for(let r of this.manager.decodePipeline)if(r&&(e=r({frame:e,track:this}),!e))return;return e}get isBig(){return this.mediaType===4}get isSmall(){return this.mediaType===8}changeType(e){this.room.changeType(e,this.user)}get isRemotePublished(){return this.user.muteState.videoAvailable}setMirror(e){e==="publish"||e==="both"||super.setMirror(e)}setDraggable(e){this.shouldBeDraggable=e,this.alphaNode&&(this.alphaNode.draggable=e,this.alphaNode.bindDragEvents())}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},rl=class extends Mo{constructor(e,r){super(e,r,2);m(this,"mediaType",2);m(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}};var $n=new Map;U.on(B.JOIN_SUCCESS,({room:i})=>{mt(i.userId,{eventId:32788})});U.on(B.LEAVE_START,({room:i})=>{mt(i.userId,{eventId:32789})});U.on(B.LOCAL_TRACK_PUBLISHED,({track:i})=>{if(i.room){let t=32769;i.mediaType===4?t=32768:i.mediaType===2&&(t=32805),mt(i.room.userId,{eventId:t})}});U.on(B.LOCAL_TRACK_UNPUBLISHED,({track:i})=>{if(i.room){let t=32771;i.mediaType===4?t=32770:i.mediaType===2&&(t=32806),mt(i.room.userId,{eventId:t})}});U.on(B.TRACK_MUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?mt(i.room.userId,{eventId:i.isRemote?32785:32772,remoteUserId:i.isRemote?i.userId:void 0}):mt(i.room.userId,{eventId:i.isRemote?32784:32773,remoteUserId:i.isRemote?i.userId:void 0}))});U.on(B.TRACK_UNMUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?mt(i.room.userId,{eventId:i.isRemote?32787:32774,remoteUserId:i.isRemote?i.userId:void 0}):mt(i.room.userId,{eventId:i.isRemote?32786:32775,remoteUserId:i.isRemote?i.userId:void 0}))});U.on(B.REMOTE_TRACK_SUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&mt(i.room.userId,{eventId:32777,remoteUserId:i.userId}),i.mediaType===4&&mt(i.room.userId,{eventId:32776,remoteUserId:i.userId}),i.mediaType===8&&mt(i.room.userId,{eventId:32803,remoteUserId:i.userId}))});U.on(B.REMOTE_TRACK_UNSUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&mt(i.room.userId,{eventId:32779,remoteUserId:i.userId}),i.mediaType===4&&mt(i.room.userId,{eventId:32778,remoteUserId:i.userId}),i.mediaType===8&&mt(i.room.userId,{eventId:32804,remoteUserId:i.userId}))});U.on(B.SWITCH_DEVICE_SUCCESS,({track:i})=>{i.room&&mt(i.room.userId,{eventId:i.kind===M.VIDEO?32780:32781})});U.on(B.LOCAL_TRACK_REPLACED,({track:i})=>{i.room&&mt(i.room.userId,{eventId:i.kind===M.VIDEO?32782:32783})});U.on(B.SIGNAL_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e})=>{let r;switch(e){case"CONNECTED":t==="RECONNECTING"?r=32795:r=32791;break;case"DISCONNECTED":t==="RECONNECTING"?r=32796:r=32790;break;case"RECONNECTING":r=32794;break}r&&mt(i.userId,{eventId:r})});U.on(B.PEER_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e,remoteUserId:r})=>{let o=!!r,s;switch(e){case"CONNECTED":t==="RECONNECTING"?s=o?32801:32798:s=o?32793:32792;break;case"DISCONNECTED":t==="RECONNECTING"&&(s=o?32802:32799);break;case"RECONNECTING":s=o?32800:32797;break}s&&mt(i.userId,{eventId:s,remoteUserId:r})});U.on(B.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:i,userId:t,remoteUserId:e,codec:r,isHWCodec:o,prevImplementation:s,streamType:n})=>{let a=o?1:0;s||(a=o?3:2);let d={H264:0,H265:1,VP8:2}[r.toUpperCase()],l={eventId:4004,param1:a,param2:d,streamType:n||2};e&&(l.remoteUserId=e,l.eventId=4005),mt(t,l),J.addEnum({key:e?514701:513701,value:a}),J.addEnum({key:e?514700:513700,value:d})});U.on(B.LOCAL_TRACK_RECAPTURE,({track:i,error:t})=>{if(i.userId){let e={eventId:2003,param1:0};i.kind===M.AUDIO?(e.streamType=1,t&&(e.param1=2)):(e.streamType=i.streamType==="auxiliary"?7:2,t&&(e.param1=8)),mt(i.userId,e)}});function mt(i,t){let e=Ee(Y({},t),{timestamp:bi()});$n.has(i)?$n.get(i).push(e):$n.set(i,[e])}function i_(i){if($n.has(i)){let t=$n.get(i).map(e=>({uint32_event_id:e.eventId,uint64_date:e.timestamp,str_userid:e.remoteUserId,uint32_param1:e.param1,uint32_param2:e.param2,uint32_video_stream_type:e.streamType}));return $n.delete(i),t}return[]}function o_(...i){return xe((t,e)=>function(...r){return qA.call(this,i,r,e,this._name),t.apply(this,r)})}function qA(i,t,e,r){try{if(ut(i))for(let o=0;o<i.length;o++)il.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else il.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}catch(o){throw F.error(o),o}}function il({rule:i,value:t,key:e,fnName:r,className:o}){if(O(t)){if(i.required)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_REQUIRED,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(O(i.defaultValue))return;t=i.defaultValue}if(Array.isArray(i.type)){let a=!1;for(let d=0;d<i.type.length;d++)i.type[d]===null&&t===null&&(a=!0),Xe(i.type[d])&&t instanceof i.type[d]&&(a=!0),we(i.type[d])&&pt(t)===i.type[d].toLowerCase()&&(a=!0);if(!a)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_TYPE,data:{key:e,rule:{type:i.type.map(d=>ss(d)?cn(d):we(d)?d:pt(d))},fnName:r,value:t},link:{className:o,fnName:r}})})}else if(!O(i.type)&&pt(t)!==i.type)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_TYPE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.allowEmpty===!1){let a=Ve(t)&&(t===0||Number.isNaN(t)),d=we(t)&&t.trim()==="";if(a||d)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_EMPTY,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}if(i.notLessThanZero&&Ve(t)&&t<0)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.CANNOT_LESS_THAN_ZERO,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!O(i.min)&&Ve(t)&&t<i.min)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_MIN,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!O(i.max)&&Ve(t)&&t>i.max)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_MAX,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(we(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}else if(Xe(i.instanceOf)&&!(t instanceof i.instanceOf))throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.values&&!i.values.includes(t))throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_RANGE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});let{properties:s}=i;Xt(s)&&hr(t)&&Object.keys(s).forEach(a=>{il.call(this,{rule:s[a],value:t&&t[a],key:`${e}.${a}`,fnName:r,className:o})});let{arrayItem:n}=i;Xt(n)&&ut(t)&&t.forEach((a,d)=>{il.call(this,{rule:n,value:a,key:`${e}[${d}]`,fnName:r,className:o})}),Xe(i.validate)&&i.validate.call(this,t,e,r,o,this)}var zA=Ai(ki(),1);var JA=Object.create,al=Object.defineProperty,XA=Object.defineProperties,E_=Object.getOwnPropertyDescriptor,QA=Object.getOwnPropertyDescriptors,__=Object.getOwnPropertyNames,nl=Object.getOwnPropertySymbols,YA=Object.getPrototypeOf,Xp=Object.prototype.hasOwnProperty,T_=Object.prototype.propertyIsEnumerable,$p=(i,t,e)=>t in i?al(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Ac=(i,t)=>{for(var e in t||(t={}))Xp.call(t,e)&&$p(i,e,t[e]);if(nl)for(var e of nl(t))T_.call(t,e)&&$p(i,e,t[e]);return i},bc=(i,t)=>XA(i,QA(t)),ZA=(i,t)=>{var e={};for(var r in i)Xp.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&nl)for(var r of nl(i))t.indexOf(r)<0&&T_.call(i,r)&&(e[r]=i[r]);return e},KA=(i,t)=>function(){return t||(0,i[__(i)[0]])((t={exports:{}}).exports,t),t.exports},eb=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of __(t))Xp.call(i,o)||o===e||al(i,o,{get:()=>t[o],enumerable:!(r=E_(t,o))||r.enumerable});return i},I_=(i,t,e)=>(e=i!=null?JA(YA(i)):{},eb(!t&&i&&i.__esModule?e:al(e,"default",{value:i,enumerable:!0}),i)),Ji=(i,t,e,r)=>{for(var o,s=r>1?void 0:r?E_(t,e):t,n=i.length-1;n>=0;n--)(o=i[n])&&(s=(r?o(t,e,s):o(s))||s);return r&&s&&al(t,e,s),s},tt=(i,t,e)=>$p(i,typeof t!="symbol"?t+"":t,e),S_=KA({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(i,t){"use strict";var e=Object.prototype.hasOwnProperty,r="~";function o(){}function s(l,p,f){this.fn=l,this.context=p,this.once=f||!1}function n(l,p,f,g,y){if(typeof f!="function")throw new TypeError("The listener must be a function");var R=new s(f,g||l,y),C=r?r+p:p;return l._events[C]?l._events[C].fn?l._events[C]=[l._events[C],R]:l._events[C].push(R):(l._events[C]=R,l._eventsCount++),l}function a(l,p){--l._eventsCount==0?l._events=new o:delete l._events[p]}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 l,p,f=[];if(this._eventsCount===0)return f;for(p in l=this._events)e.call(l,p)&&f.push(r?p.slice(1):p);return Object.getOwnPropertySymbols?f.concat(Object.getOwnPropertySymbols(l)):f},d.prototype.listeners=function(l){var p=r?r+l:l,f=this._events[p];if(!f)return[];if(f.fn)return[f.fn];for(var g=0,y=f.length,R=new Array(y);g<y;g++)R[g]=f[g].fn;return R},d.prototype.listenerCount=function(l){var p=r?r+l:l,f=this._events[p];return f?f.fn?1:f.length:0},d.prototype.emit=function(l,p,f,g,y,R){var C=r?r+l:l;if(!this._events[C])return!1;var N,k,Q=this._events[C],H=arguments.length;if(Q.fn){switch(Q.once&&this.removeListener(l,Q.fn,void 0,!0),H){case 1:return Q.fn.call(Q.context),!0;case 2:return Q.fn.call(Q.context,p),!0;case 3:return Q.fn.call(Q.context,p,f),!0;case 4:return Q.fn.call(Q.context,p,f,g),!0;case 5:return Q.fn.call(Q.context,p,f,g,y),!0;case 6:return Q.fn.call(Q.context,p,f,g,y,R),!0}for(k=1,N=new Array(H-1);k<H;k++)N[k-1]=arguments[k];Q.fn.apply(Q.context,N)}else{var Ie,Je=Q.length;for(k=0;k<Je;k++)switch(Q[k].once&&this.removeListener(l,Q[k].fn,void 0,!0),H){case 1:Q[k].fn.call(Q[k].context);break;case 2:Q[k].fn.call(Q[k].context,p);break;case 3:Q[k].fn.call(Q[k].context,p,f);break;case 4:Q[k].fn.call(Q[k].context,p,f,g);break;default:if(!N)for(Ie=1,N=new Array(H-1);Ie<H;Ie++)N[Ie-1]=arguments[Ie];Q[k].fn.apply(Q[k].context,N)}}return!0},d.prototype.on=function(l,p,f){return n(this,l,p,f,!1)},d.prototype.once=function(l,p,f){return n(this,l,p,f,!0)},d.prototype.removeListener=function(l,p,f,g){var y=r?r+l:l;if(!this._events[y])return this;if(!p)return a(this,y),this;var R=this._events[y];if(R.fn)R.fn!==p||g&&!R.once||f&&R.context!==f||a(this,y);else{for(var C=0,N=[],k=R.length;C<k;C++)(R[C].fn!==p||g&&!R[C].once||f&&R[C].context!==f)&&N.push(R[C]);N.length?this._events[y]=N.length===1?N[0]:N:a(this,y)}return this},d.prototype.removeAllListeners=function(l){var p;return l?(p=r?r+l:l,this._events[p]&&a(this,p)):(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,t!==void 0&&(t.exports=d)}}),tb=I_(S_(),1),s_=Symbol("instance"),EU=Symbol("abortCtrl"),ol=Symbol("cacheResult"),Lp=class{constructor(i,t,e){this.oldState=i,this.newState=t,this.action=e,this.aborted=!1}abort(i){this.aborted=!0,vc.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},sl=class extends Error{constructor(i,t,e){super(t),this.state=i,this.message=t,this.cause=e}};function rb(i){return typeof i=="object"&&i&&"then"in i}var Rc=new Map;function xo(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let d=Rc.get(r)||[];Rc.has(r)||Rc.set(r,d),d.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...d){let l=this;if(e.context&&(l=tr.get(typeof e.context=="function"?e.context.call(this,...d):e.context)),l.state===t)return e.sync?l[ol]:Promise.resolve(l[ol]);l.state instanceof Lp&&l.state.action==e.abortAction&&l.state.abort(l);let p=null;Array.isArray(i)?i.length==0?l.state instanceof Lp&&l.state.abort(l):typeof l.state=="string"&&i.includes(l.state)||(p=new sl(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i.join("|")}`)):i!==l.state&&(p=new sl(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i}`));let f=N=>{if(e.fail&&e.fail.call(this,N),e.sync){if(e.ignoreError)return N;throw N}return e.ignoreError?Promise.resolve(N):Promise.reject(N)};if(p)return f(p);let g=l.state,y=new Lp(g,t,n);vc.call(l,y);let R=N=>{var k;return l[ol]=N,y.aborted||(vc.call(l,t),(k=e.success)===null||k===void 0||k.call(this,l[ol])),N},C=N=>(vc.call(l,g,N),f(N));try{let N=a.apply(this,d);return rb(N)?N.then(R).catch(C):e.sync?R(N):Promise.resolve(R(N))}catch(N){return C(new sl(l._state,`${l.name} ${n} from ${i} to ${t} failed: ${N}`,N instanceof Error?N:new Error(String(N))))}}}}function ib(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...n){if(!i.includes(this.state.toString()))throw new sl(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,n)}}}var ob=typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{};function vc(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(tr.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var tr=class Or extends tb.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=Or.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let o=r[s_];o?this.name=o.name+"-"+o.count++:r[s_]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=Rc.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);Rc.has(a)&&(a.stateDiagram.forEach(l=>r.add(l)),a.allStates.forEach(l=>n.add(l))),e.forEach(({from:l,to:p,action:f})=>{typeof l=="string"?o.push({from:l,to:p,action:f}):l.length?l.forEach(g=>{o.push({from:g,to:p,action:f})}):s.push({to:p,action:f})}),o.forEach(({from:l,to:p,action:f})=>{n.add(l),n.add(p),n.add(f+"ing"),r.add(`${l} --> ${f}ing : ${f}`),r.add(`${f}ing --> ${p} : ${f} \u{1F7E2}`),r.add(`${f}ing --> ${l} : ${f} \u{1F534}`)}),s.forEach(({to:l,action:p})=>{r.add(`${p}ing --> ${l} : ${p} \u{1F7E2}`),n.forEach(f=>{f!==l&&r.add(`${f} --> ${p}ing : ${p}`)})});let d=[...r];return Object.defineProperties(t,{stateDiagram:{value:d},allStates:{value:n}}),d}static get(t){let e;return typeof t=="string"?(e=Or.instances.get(t),e||Or.instances.set(t,e=new Or(t,void 0,Object.create(Or.prototype)))):(e=Or.instances2.get(t),e||Or.instances2.set(t,e=new Or(t.constructor.name,void 0,Object.create(Or.prototype)))),e}static getState(t){var e;return(e=Or.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){ob(Or.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){vc.call(this,t)}};tr.STATECHANGED="stateChanged",tr.UPDATEAFSM="updateAFSM",tr.INIT="[*]",tr.ON="on",tr.OFF="off",tr.instances=new Map,tr.instances2=new WeakMap;var Wn=class extends tr{constructor(){super(...arguments),tt(this,"decoder"),tt(this,"config")}initialize(){return A(this,null,function*(){this.decoder=new VideoDecoder({output:i=>{this.emit("videoFrame",i)},error:i=>{this.close(),this.emit("error",i)}})})}configure(i){this.config=i,this.decoder.configure(bc(Ac({},i),{codec:this.getCodec(i)}))}getCodec(i){switch(i.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 i.codec}}decode(i){this.decoder.state==="configured"&&this.decoder.decode(new EncodedVideoChunk(i))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){this.decoder.state!=="closed"&&this.decoder.close()}};function sb(){var i;self.onmessage=t=>{if(t.data.type==="init"){let{canvas:e,wasmScript:r,wasmBinary:o}=t.data,s=e==null?void 0:e.getContext("2d"),n=0,a=0,d={wasmBinary:o,postRun:()=>{i=new d.VideoDecoder({videoInfo(l,p){n=l,a=p,console.log("video info",l,p)},yuvData(l,p){let f=n*a,g=f>>2,y=d.HEAPU32[l>>2],R=d.HEAPU32[1+(l>>2)],C=d.HEAPU32[2+(l>>2)],N=d.HEAPU8.subarray(y,y+f),k=d.HEAPU8.subarray(R,R+g),Q=d.HEAPU8.subarray(C,C+g),H=new Uint8Array(f+g+g);H.set(N),H.set(k,f),H.set(Q,f+g);let Ie=new VideoFrame(H,{codedWidth:n,codedHeight:a,format:"I420",timestamp:p});e?(s==null||s.drawImage(Ie,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:Ie},[Ie])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(d)}else if(t.data.type==="decode"){let{packet:e}=t.data;i==null||i.decode(e.data,e.type=="key",e.timestamp)}else if(t.data.type==="setCodec"){let{codec:e,format:r,description:o}=t.data;i==null||i.setCodec(e,r,o!=null?o:"")}}}Ji([xo([tr.INIT,"closed"],"initialized")],Wn.prototype,"initialize",1),Ji([xo("initialized","configured",{sync:!0})],Wn.prototype,"configure",1),Ji([ib("configured")],Wn.prototype,"decode",1),Ji([xo([],tr.INIT,{sync:!0})],Wn.prototype,"reset",1),Ji([xo([],"closed",{ignoreError:!0,sync:!0})],Wn.prototype,"close",1);var yc=class extends tr{constructor(i,t,e=!1,r,o=!1){super(),this.createModule=i,this.wasmBinary=t,this.workerMode=e,this.canvas=r,this.yuvMode=o,tt(this,"worker"),tt(this,"decoder"),tt(this,"config"),tt(this,"module",{}),tt(this,"width",0),tt(this,"height",0)}initialize(i){return A(this,null,function*(){var t;if(this.workerMode){let r=new RegExp("\\{(.+)\\}","s").exec(sb.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([r],{type:"text/javascript"})));let o=(t=this.canvas)==null?void 0:t.transferControlToOffscreen(),s=yield this.wasmBinary;return console.warn("worker mode",s),this.worker.postMessage({type:"init",canvas:o,wasmScript:this.createModule.toString(),wasmBinary:s},o?[o,s]:[s]),new Promise(n=>{this.worker.onmessage=a=>{if(a.data.type==="ready")delete this.wasmBinary,n(),console.warn("worker mode initialize success");else if(a.data.type==="yuvData"){let{videoFrame:d}=a.data;this.emit("videoFrame",d)}}})}let e=this.module;return this.wasmBinary&&(e.wasmBinary=yield this.wasmBinary),e.print=r=>console.log(r),e.printErr=r=>console.log(`[JS] ERROR: ${r}`),e.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise(r=>{e.postRun=o=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),r()},i&&Object.assign(e,i),this.createModule(e)})})}configure(i){var t,e,r;this.config=i;let o=this.config.codec.startsWith("avc")?"avc":"hevc",s=this.config.description?o=="avc"?"avcc":"hvcc":"annexb";(e=this.decoder)==null||e.setCodec(o,s,(t=this.config.description)!=null?t:""),(r=this.worker)==null||r.postMessage({type:"setCodec",codec:o,format:s,description:this.config.description})}decode(i){var t,e;(t=this.decoder)==null||t.decode(i.data,i.type=="key",i.timestamp),this.state==="configured"&&((e=this.worker)==null||e.postMessage({type:"decode",packet:i}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(i,t){this.width=i,this.height=t;let e={width:i,height:t};this.emit("videoCodecInfo",e)}yuvData(i,t){if(!this.module)return;let e=this.width*this.height,r=e>>2,o=this.module.HEAPU32[i>>2],s=this.module.HEAPU32[1+(i>>2)],n=this.module.HEAPU32[2+(i>>2)],a=this.module.HEAPU8.subarray(o,o+e),d=this.module.HEAPU8.subarray(s,s+r),l=this.module.HEAPU8.subarray(n,n+r);if(this.yuvMode)return void this.emit("videoFrame",{y:a,u:d,v:l,timestamp:t});let p=new Uint8Array(e+r+r);p.set(a),p.set(d,e),p.set(l,e+r),this.emit("videoFrame",new VideoFrame(p,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:t}))}errorInfo(i){let t={errMsg:i};this.emit("error",t)}};Ji([xo([tr.INIT,"closed"],"initialized")],yc.prototype,"initialize",1),Ji([xo("initialized","configured",{sync:!0})],yc.prototype,"configure",1),Ji([xo([],tr.INIT,{sync:!0})],yc.prototype,"reset",1),Ji([xo([],"closed",{sync:!0})],yc.prototype,"close",1);var nb=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((c,u)=>{e=c,r=u});var s,n,a,d=Object.assign({},o),l="./this.program",p=typeof window=="object",f=typeof importScripts=="function",g=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(p||f)&&(f?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),i&&(g=i),g=g.indexOf("blob:")!==0?g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):"",s=c=>{var u=new XMLHttpRequest;return u.open("GET",c,!1),u.send(null),u.responseText},f&&(a=c=>{var u=new XMLHttpRequest;return u.open("GET",c,!1),u.responseType="arraybuffer",u.send(null),new Uint8Array(u.response)}),n=(c,u,h)=>{var E=new XMLHttpRequest;E.open("GET",c,!0),E.responseType="arraybuffer",E.onload=()=>{E.status==200||E.status==0&&E.response?u(E.response):h()},E.onerror=h,E.send(null)});var y,R=o.print||console.log.bind(console),C=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&&(y=o.wasmBinary);var N,k;o.noExitRuntime,typeof WebAssembly!="object"&&Yr("no native wasm support detected");var Q,H,Ie,Je,W,Ue,Yn,Zn,Kn,ea=!1,Qr=[],Hs=[],Ki=[],Ir=0,Ei=null,_i=null;function ie(c){Ir++,o.monitorRunDependencies&&o.monitorRunDependencies(Ir)}function Ho(c){if(Ir--,o.monitorRunDependencies&&o.monitorRunDependencies(Ir),Ir==0&&(Ei!==null&&(clearInterval(Ei),Ei=null),_i)){var u=_i;_i=null,u()}}function Yr(c){o.onAbort&&o.onAbort(c),C(c="Aborted("+c+")"),ea=!0,c+=". Build with -sASSERTIONS for more info.";var u=new WebAssembly.RuntimeError(c);throw r(u),u}var Ti,ta,Se,rt;function Gt(c){return c.startsWith("data:application/octet-stream;base64,")}function X(c){if(c==Ti&&y)return new Uint8Array(y);if(a)return a(c);throw"both async and sync fetching of the wasm failed"}function Zr(c,u,h){return function(E){return y||!p&&!f||typeof fetch!="function"?Promise.resolve().then(()=>X(E)):fetch(E,{credentials:"same-origin"}).then(I=>{if(!I.ok)throw"failed to load wasm binary file at '"+E+"'";return I.arrayBuffer()}).catch(()=>X(E))}(c).then(E=>WebAssembly.instantiate(E,u)).then(E=>E).then(h,E=>{C("failed to asynchronously prepare wasm: "+E),Yr(E)})}Gt(Ti="videodec.wasm")||(ta=Ti,Ti=o.locateFile?o.locateFile(ta,g):g+ta);var eo=c=>{for(;c.length>0;)c.shift()(o)};function to(c){this.excPtr=c,this.ptr=c-24,this.set_type=function(u){Ue[this.ptr+4>>2]=u},this.get_type=function(){return Ue[this.ptr+4>>2]},this.set_destructor=function(u){Ue[this.ptr+8>>2]=u},this.get_destructor=function(){return Ue[this.ptr+8>>2]},this.set_caught=function(u){u=u?1:0,Q[this.ptr+12|0]=u},this.get_caught=function(){return Q[this.ptr+12|0]!=0},this.set_rethrown=function(u){u=u?1:0,Q[this.ptr+13|0]=u},this.get_rethrown=function(){return Q[this.ptr+13|0]!=0},this.init=function(u,h){this.set_adjusted_ptr(0),this.set_type(u),this.set_destructor(h)},this.set_adjusted_ptr=function(u){Ue[this.ptr+16>>2]=u},this.get_adjusted_ptr=function(){return Ue[this.ptr+16>>2]},this.get_exception_ptr=function(){if(da(this.get_type()))return Ue[this.excPtr>>2];var u=this.get_adjusted_ptr();return u!==0?u:this.excPtr}}var me={isAbs:c=>c.charAt(0)==="/",splitPath:c=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(c).slice(1),normalizeArray:(c,u)=>{for(var h=0,E=c.length-1;E>=0;E--){var I=c[E];I==="."?c.splice(E,1):I===".."?(c.splice(E,1),h++):h&&(c.splice(E,1),h--)}if(u)for(;h;h--)c.unshift("..");return c},normalize:c=>{var u=me.isAbs(c),h=c.substr(-1)==="/";return(c=me.normalizeArray(c.split("/").filter(E=>!!E),!u).join("/"))||u||(c="."),c&&h&&(c+="/"),(u?"/":"")+c},dirname:c=>{var u=me.splitPath(c),h=u[0],E=u[1];return h||E?(E&&(E=E.substr(0,E.length-1)),h+E):"."},basename:c=>{if(c==="/")return"/";var u=(c=(c=me.normalize(c)).replace(/\/$/,"")).lastIndexOf("/");return u===-1?c:c.substr(u+1)},join:function(){var c=Array.prototype.slice.call(arguments);return me.normalize(c.join("/"))},join2:(c,u)=>me.normalize(c+"/"+u)},ra=c=>(ra=(()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return u=>crypto.getRandomValues(u);Yr("initRandomDevice")})())(c),rr={resolve:function(){for(var c="",u=!1,h=arguments.length-1;h>=-1&&!u;h--){var E=h>=0?arguments[h]:_.cwd();if(typeof E!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!E)return"";c=E+"/"+c,u=me.isAbs(E)}return(u?"/":"")+(c=me.normalizeArray(c.split("/").filter(I=>!!I),!u).join("/"))||"."},relative:(c,u)=>{function h(L){for(var te=0;te<L.length&&L[te]==="";te++);for(var ce=L.length-1;ce>=0&&L[ce]==="";ce--);return te>ce?[]:L.slice(te,ce-te+1)}c=rr.resolve(c).substr(1),u=rr.resolve(u).substr(1);for(var E=h(c.split("/")),I=h(u.split("/")),b=Math.min(E.length,I.length),v=b,D=0;D<b;D++)if(E[D]!==I[D]){v=D;break}var V=[];for(D=v;D<E.length;D++)V.push("..");return(V=V.concat(I.slice(v))).join("/")}},ro=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,jt=(c,u,h)=>{for(var E=u+h,I=u;c[I]&&!(I>=E);)++I;if(I-u>16&&c.buffer&&ro)return ro.decode(c.subarray(u,I));for(var b="";u<I;){var v=c[u++];if(128&v){var D=63&c[u++];if((224&v)!=192){var V=63&c[u++];if((v=(240&v)==224?(15&v)<<12|D<<6|V:(7&v)<<18|D<<12|V<<6|63&c[u++])<65536)b+=String.fromCharCode(v);else{var L=v-65536;b+=String.fromCharCode(55296|L>>10,56320|1023&L)}}else b+=String.fromCharCode((31&v)<<6|D)}else b+=String.fromCharCode(v)}return b},ia=[],Wo=c=>{for(var u=0,h=0;h<c.length;++h){var E=c.charCodeAt(h);E<=127?u++:E<=2047?u+=2:E>=55296&&E<=57343?(u+=4,++h):u+=3}return u},Go=(c,u,h,E)=>{if(!(E>0))return 0;for(var I=h,b=h+E-1,v=0;v<c.length;++v){var D=c.charCodeAt(v);if(D>=55296&&D<=57343&&(D=65536+((1023&D)<<10)|1023&c.charCodeAt(++v)),D<=127){if(h>=b)break;u[h++]=D}else if(D<=2047){if(h+1>=b)break;u[h++]=192|D>>6,u[h++]=128|63&D}else if(D<=65535){if(h+2>=b)break;u[h++]=224|D>>12,u[h++]=128|D>>6&63,u[h++]=128|63&D}else{if(h+3>=b)break;u[h++]=240|D>>18,u[h++]=128|D>>12&63,u[h++]=128|D>>6&63,u[h++]=128|63&D}}return u[h]=0,h-I};function Ws(c,u,h){var E=h>0?h:Wo(c)+1,I=new Array(E),b=Go(c,I,0,I.length);return u&&(I.length=b),I}var Mr={ttys:[],init:function(){},shutdown:function(){},register:function(c,u){Mr.ttys[c]={input:[],output:[],ops:u},_.registerDevice(c,Mr.stream_ops)},stream_ops:{open:function(c){var u=Mr.ttys[c.node.rdev];if(!u)throw new _.ErrnoError(43);c.tty=u,c.seekable=!1},close:function(c){c.tty.ops.fsync(c.tty)},fsync:function(c){c.tty.ops.fsync(c.tty)},read:function(c,u,h,E,I){if(!c.tty||!c.tty.ops.get_char)throw new _.ErrnoError(60);for(var b=0,v=0;v<E;v++){var D;try{D=c.tty.ops.get_char(c.tty)}catch(V){throw new _.ErrnoError(29)}if(D===void 0&&b===0)throw new _.ErrnoError(6);if(D==null)break;b++,u[h+v]=D}return b&&(c.node.timestamp=Date.now()),b},write:function(c,u,h,E,I){if(!c.tty||!c.tty.ops.put_char)throw new _.ErrnoError(60);try{for(var b=0;b<E;b++)c.tty.ops.put_char(c.tty,u[h+b])}catch(v){throw new _.ErrnoError(29)}return E&&(c.node.timestamp=Date.now()),b}},default_tty_ops:{get_char:function(c){return(()=>{if(!ia.length){var u=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(u=window.prompt("Input: "))!==null&&(u+=`
50
+ } `;var Os=class extends ue{constructor(e){super();m(this,"frameRate");m(this,"_canvas");m(this,"log");m(this,"hasAlpha",!1);m(this,"name");m(this,"error");this.name=e.name,this.log=e.logger.createChild({id:`vc-${this.name}`}),this.frameRate=e.frameRate}get canvas(){return this._canvas}set width(e){this._canvas&&(this._canvas.width=e)}get width(){var e;return((e=this._canvas)==null?void 0:e.width)||0}set height(e){this._canvas&&(this._canvas.height=e)}get height(){var e;return((e=this._canvas)==null?void 0:e.height)||0}setSize(e,r){this._canvas&&(this._canvas.width=e,this._canvas.height=r)}createVideoTrackSource(e,r){return new Dr(this,e,{logger:this.log,name:r})}createVideoTrackDestination(e){return new Un(this,e)}createVideoImageSource(e,r){return new gc(this,r?Object.assign(r,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,r){return new Ec(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}createTextSource(e,r){return new Ku(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};m(Os,"_ids",0);var LA={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},Vn=class Vn extends Os{constructor(){super(...arguments);m(this,"defaultProgam");m(this,"defaultVShader");m(this,"defaultFShader");m(this,"ctx");m(this,"_canvas2d")}get canvas(){return this._canvas2d||this._canvas}create(e=!1){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${Os._ids++}`),e&&(this._canvas2d=document.createElement("canvas")),this.ctx=this._canvas.getContext("webgl2",LA),!this.ctx)throw new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,xA),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,PA),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(e){let r="";return e&&(r=e.message,this.error=e,J.addFailedEvent({key:512702,error:e})),this.disconnect(),this.log.info(`video context destroy${r}`?`: ${r}`:""),this.ctx&&(this.ctx.deleteShader(this.defaultVShader),this.ctx.deleteShader(this.defaultFShader),this.ctx.deleteProgram(this.defaultProgam),delete this.ctx),e}set width(e){var r;(r=this.ctx)==null||r.viewport(0,0,e,this.height),super.width=e,this._canvas2d&&(this._canvas2d.width=e)}set height(e){var r;(r=this.ctx)==null||r.viewport(0,0,this.width,e),super.height=e,this._canvas2d&&(this._canvas2d.height=e)}setSize(e,r){var o;(o=this.ctx)==null||o.viewport(0,0,e,r),super.setSize(e,r),this._canvas2d&&(this._canvas2d.width=e,this._canvas2d.height=r)}createShader(e,r){let o=this.ctx,s=o.createShader(e);return o.shaderSource(s,r),o.compileShader(s),s}createProgram(e,r){let o=this.ctx,s=o.createProgram();return o.attachShader(s,e),o.attachShader(s,r),o.linkProgram(s),o.getProgramParameter(s,o.LINK_STATUS)||this.log.error(o.getProgramInfoLog(s)),s}};m(Vn,"UNAVAILABLE","unavailable"),Z([et(ue.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),J.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),J.addSuccessEvent({key:512700})}})],Vn.prototype,"create",1),Z([et("created",ue.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(Vn.UNAVAILABLE,e),this.removeAllListeners()}})],Vn.prototype,"destroy",1);var Nt=Vn,Pt=class extends Os{constructor(){super(...arguments);m(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${Os._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha,willReadFrequently:e.willReadFrequently}),!this.ctx)throw new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"2d context not supported"});this._canvas.addEventListener("contextlost",()=>{this.log.error("2d context lost")}),this._canvas.addEventListener("contextrestored",()=>{this.log.warn("2d context restored")})}destroy(e){let r="";e&&(r=e.message,this.error=e,J.addFailedEvent({key:512703,error:e})),this.disconnect(),this.log.info(`video context destroy ${r?`: ${r}`:""}`),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners(),J.addSuccessEvent({key:512703})}};Z([et(ue.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),J.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),J.addSuccessEvent({key:512701})}})],Pt.prototype,"create",1),Z([et("created",ue.INIT,{ignoreError:!0,sync:!0})],Pt.prototype,"destroy",1);function kA(i,t,e,r,o,s=!1){s&&([e,r]=[r,e]);let n={sWidth:i,sHeight:t,dWidth:e,dHeight:r,sx:0,sy:0,dx:0,dy:0};if(i===0||t===0)return n;switch(o){case void 0:case"fill":break;case"contain":{let a=Math.min(e/i,r/t);n.dWidth=i*a,n.dHeight=t*a,n.dx=(e-n.dWidth)/2,n.dy=(r-n.dHeight)/2;break}case"cover":{let a=Math.max(e/i,r/t),d=e/a,l=r/a;n.sx=(i-d)/2,n.sy=(t-l)/2,n.sWidth=d,n.sHeight=l;break}}return n}var xp=class{constructor(t,e){this.node=t;this.layout=e;m(this,"positionBuffer")}get x(){return this.layout.x||this.node.x}get y(){return this.layout.y||this.node.y}get width(){return this.layout.width||this.node.width}get height(){return this.layout.height||this.node.height}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get fillMode(){return this.layout.fillMode}get rotation(){return this.layout.rotation}get hidden(){return!!this.layout.hidden}},Fn=class extends bt{constructor(e,r){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:r});m(this,"inputs",[]);m(this,"backgroundColor","black")}addInput(e,r){let o=0,s=this.inputs.length;for(;o<s;){let a=Math.floor((o+s)/2);if(this.inputs[a].layout.zIndex<r.zIndex)o=a+1;else if(this.inputs[a].layout.zIndex>r.zIndex)s=a;else throw new Error(`input already exists at zIndex ${r.zIndex}`)}let n=new xp(e,r);this.inputs.splice(o,0,n)}changeInputLayout(e,r){let o=this.inputs.findIndex(R=>R.node===e);if(o<0)return;let{x:s,y:n,width:a,height:d,zIndex:l,fillMode:p,rotation:f,hidden:g}=r;if(!O(l)&&this.inputs.some(R=>R.layout.zIndex===l&&R.node!==e))throw new Error(`input already exists at zIndex ${r.zIndex}`);let y=this.inputs[o];O(s)||(y.layout.x=s),O(n)||(y.layout.y=n),O(a)||(y.layout.width=a),O(d)||(y.layout.height=d),O(f)||(y.layout.rotation=f),O(g)||(y.layout.hidden=g),p&&(y.layout.fillMode=p),!O(l)&&l!==y.layout.zIndex&&(y.layout.zIndex=l,this.inputs.sort((R,C)=>R.layout.zIndex-C.layout.zIndex))}hasInput(e){return this.inputs.some(r=>r.node===e)}hasNoInput(){return this.inputs.length===0}resize(e,r){if(!this.matchInputSize){super.resize(e,r);return}let o=this.inputs.reduce((s,n)=>n?Object.assign(s,{width:Math.max(s.width,n.right),height:Math.max(s.height,n.bottom)}):s,{width:0,height:0});super.resize(o.width,o.height),this.context instanceof Nt&&this.inputs.forEach(s=>{if(s){let n=this.layout2texCoords(s);s.positionBuffer?this.changeBufferData(s.positionBuffer,n):s.positionBuffer=this.createBuffer(n)}})}connect(e,...r){return super.connect(e,...r),this.drawBackGround2d(this.backgroundColor),this.matchInputSize&&this.resize(0,0),e}removeInput(e){this.inputs=this.inputs.filter(r=>r.node!==e),this.inputs.length===0&&this.drawBackGround2d(this.backgroundColor)}render(e){let r=this.context.ctx;if(r.clearColor(0,0,0,0),this.inputs.reduce((s,n)=>n.node.requestFrame(e)||s,!1)&&r){this.useProgram(),r.enable(r.BLEND),r.blendFunc(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA),this.useBufferFrame();for(let s=0;s<this.inputs.length;s++){let n=this.inputs[s];n&&(n.node.useTexture(),this.draw(n.positionBuffer))}return!0}return!1}render2d(e){if(this.inputs.forEach(r=>r.node.requestFrame(e)),this.ctx2d){this.drawBackGround2d(this.backgroundColor);for(let r=0;r<this.inputs.length;r++){let o=this.inputs[r];if(o.hidden)continue;let s=kA(o.node.width,o.node.height,o.width,o.height,o.fillMode,pr(o.rotation));this.draw2d(o.node.image,o.x+s.dx,o.y+s.dy,s.dWidth,s.dHeight,s.sx,s.sy,s.sWidth,s.sHeight)}return!0}return!1}debugLayout(e,r,o,s,n=!1){this.ctx2d&&(n&&([o,s]=[s,o]),this.ctx2d.save(),this.ctx2d.strokeStyle="red",this.ctx2d.lineWidth=2,this.ctx2d.strokeRect(e,r,o,s),this.ctx2d.restore())}getInfo(){let{totalFrames:e,x:r,y:o,width:s,height:n,name:a}=this,d=Date.now(),l=(e-this.lastInfo.totalFrames)/((d-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:d,fps:l,name:a},Y({parent:this.inputs.filter(p=>p).map(p=>p.node.getInfo())},this.lastInfo)}removeAllInputs(){this.inputs.forEach(e=>{var r;if(e.node.disconnect(),e.positionBuffer&&this.context instanceof Nt)try{(r=this.context.ctx)==null||r.deleteBuffer(e.positionBuffer)}catch(o){}})}close(){super.close(),this.removeAllInputs()}};var UA=[1,0,0,0,1,1,0,1],wr=class extends bt{constructor(e,r,o,s){super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:r});m(this,"mirror",!1);m(this,"rotation",0);if(o&&(this.mirror=o),s&&(this.rotation=s),e instanceof Nt)try{this.setTexBuffer(UA)}catch(n){e.destroy(new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${n.message||n}`}))}}draw2d(e,r,o,s,n){if(this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height),this.ctx2d.save(),this.mirror&&(this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0)),this.rotation===90?(this.ctx2d.translate(s,0),this.ctx2d.rotate(Math.PI/2),this.ctx2d.scale(n/s,s/n)):this.rotation===180?(this.ctx2d.translate(this.width,this.height),this.ctx2d.rotate(Math.PI)):this.rotation===270&&(this.ctx2d.translate(0,n),this.ctx2d.rotate(3*Math.PI/2),this.ctx2d.scale(n/s,s/n));let a=super.draw2d(e,r,o,s,n);return this.ctx2d.restore(),a}return!1}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}resize(e,r){pr(this.rotation)&&([e,r]=[r,e]),super.resize(e,r)}};var Ms=class extends Xr{constructor(e,r=4){super(r,Bt);m(this,"inputLocalVideoTracks",new Map);m(this,"inputLocalScreenTracks",new Map);m(this,"cameraNodeMap",new Map);m(this,"screenNodeMap",new Map);m(this,"textNodeMap",new Map);m(this,"imageNodeMap",new Map);m(this,"videoNodeMap",new Map);m(this,"endedIds",new Set);m(this,"videoContext");m(this,"mixNode");m(this,"destination");m(this,"manager");m(this,"stat");m(this,"_checkId",0);m(this,"autoSetFps",!0);this.manager=e,this.log.id+="mix",this.create2dVideoContext(),this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(bt.RENDER,o=>{this.emit("render",o)}),this.mixNode=new Fn(this.videoContext,this.log),this.mixNode.matchInputSize=!1}listenDeviceChange(){throw new Error("Method not implemented.")}enablePrintDetail(e=2e3){this._checkId=ft.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}create2dVideoContext(){this.videoContext?this.videoContext.destroy():this.videoContext=new Pt({frameRate:15,logger:this.log,name:"mix-ctx"}),this.videoContext.create({alpha:!1})}setFps(e){this.autoSetFps=!1,this.videoContext.frameRate=e;for(let r of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])r.shouldUpdate=!1;setTimeout(()=>{var r;return(r=this.destination)==null?void 0:r.start(this.videoContext.frameRate)},500)}setFpsAuto(){var s;if(!this.autoSetFps)return;for(let n of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])n.shouldUpdate=!1;let e=null,r=0,o=!0;for(let[n,a]of this.inputLocalVideoTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let d=this.cameraNodeMap.get(n);d&&d.image.cancelVideoFrameCallback(d.videoCallbackId);continue}r=a.profile.frameRate,e=n}for(let[n,a]of this.inputLocalScreenTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let d=this.screenNodeMap.get(n);d&&d.image.cancelVideoFrameCallback(d.videoCallbackId);continue}r=a.profile.frameRate,e=n,o=!1}if(e!==null){let n=o?this.cameraNodeMap.get(e):this.screenNodeMap.get(e);n&&(n.shouldUpdate=!0,n.tryVideoFrameCallback()),this.log.info("set mix fps: ",r)}else(s=this.destination)==null||s.start(this.videoContext.frameRate),this.log.info("fallback to timer, fps: ",this.videoContext.frameRate)}setMixBackground(e){this.mixNode&&(this.mixNode.backgroundColor=e)}resizeMixCanvas(e,r){var o;(o=this.mixNode)==null||o.resize(e,r)}startMix(){return A(this,null,function*(){var e;if(!this.mixNode||!this.destination)throw new Error("can't mix without necessary conditions");this.mixNode.disconnect(),this.mixNode.connect(this.destination),vr&&this.player.setCanvas(this.videoContext._canvas),this.setOutputMediaStreamTrack(this.destination.videoTrack),(e=this.manager)==null||e.changeInput(this)})}addCameraSource(e,r,o){if(this.inputLocalVideoTracks.has(e)||this.cameraNodeMap.has(e))throw new Error(`There is already a cameraSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");r.recaptureMode=1,Ft(this,at).add("videoInputRemoved",a=>{a.deviceId===r.deviceId&&(this.endedIds.add(e),this.setFpsAuto())}),r.on("output-media-track-changed",()=>{this.endedIds.delete(e),this.updateCameraSource(e,o,r.mediaTrack)});let n;Vt===16&&s instanceof CanvasCaptureMediaStreamTrack?n=this.videoContext.createVideoImageSource(s.canvas,{name:"cameraCanvasSource",logger:this.log}):n=this.videoContext.createVideoTrackSource(s,"cameraNodeSource"),n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o,"cover"),this.inputLocalVideoTracks.set(e,r),this.cameraNodeMap.set(e,n),this.setFpsAuto()}addScreenSource(e,r,o){if(this.inputLocalScreenTracks.has(e)||this.screenNodeMap.has(e))throw new Error(`There is already a screenSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");let n=this.videoContext.createVideoTrackSource(s,"screenNodeSource");n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o),this.inputLocalScreenTracks.set(e,r),this.screenNodeMap.set(e,n),this.setFpsAuto()}addTextSource(e){let{id:r,content:o="",font:s,color:n,layout:a}=e;if(this.textNodeMap.has(r))throw new Error(`There is already a textSource with the same ID: ${r}`);let d=this.videoContext.createTextSource({content:o,font:s,color:n});d.resize(a.width,a.height),this._connectMix(d,a),this.textNodeMap.set(r,d)}addImageSource(e,r,o){if(this.imageNodeMap.has(e))throw new Error(`There is already a imageSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.width,r.height),this._connectMix(s,o),this.imageNodeMap.set(e,s)}addVideoSource(e,r,o){if(this.videoNodeMap.has(e))throw new Error(`There is already a videoSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.videoWidth,r.videoHeight),s.shouldUpdate=!1,this._connectMix(s,o),this.videoNodeMap.set(e,s)}updateCameraSource(e,r,o=null,s){let n=this.cameraNodeMap.get(e);if(n){if(o){if(Vt===16&&o instanceof CanvasCaptureMediaStreamTrack)if(n instanceof Dr){let l=n.output;n.close(),n=this.videoContext.createVideoImageSource(o.canvas,{name:"cameraCanvasSource",logger:this.log}),n.connect(l),this.cameraNodeMap.set(e,n)}else n.image=o.canvas;else if(n instanceof Dr)n.replaceTrack(o);else{let l=n.output;n.close(),n=this.videoContext.createVideoTrackSource(o,"cameraNodeSource"),n.connect(l),this.cameraNodeMap.set(e,n)}let{width:a,height:d}=o.getSettings();a&&d&&n.resize(a,d)}s&&n.resize(s.width,s.height),(s||o)&&this.setFpsAuto(),this._changeMixLayout(n,r)}}updateScreenSource(e,r){let o=this.screenNodeMap.get(e);o&&this._changeMixLayout(o,r)}updateTextSource(e){let{id:r,content:o,font:s,color:n,layout:a}=e,d=this.textNodeMap.get(r);d&&(O(o)||(d.content=o),O(s)||(d.font=s),O(n)||(d.color=n),d.resize(a.width,a.height),this._changeMixLayout(d,a))}updateImageSource(e,r,o){let s=this.imageNodeMap.get(e);s&&(o&&(s.image=o,s.resize(o.width,o.height)),this._changeMixLayout(s,r))}updateVideoSource(e,r,o){let s=this.videoNodeMap.get(e);if(s){if(o){let n=s.image;n instanceof HTMLVideoElement&&this.stopVideoElement(n),s.image=o,s.resize(o.videoWidth,o.videoHeight)}this._changeMixLayout(s,r)}}_connectMix(e,r,o="contain"){if(!this.mixNode)return;let{mirror:s,rotation:n}=r;e.disconnect();let a=new wr(this.videoContext,this.log,s,n);a=e.connect(a),r.fillMode||(r.fillMode=o),a.connect(this.mixNode,r)}_changeMixLayout(e,r){if(!this.mixNode)return;let{mirror:o,rotation:s}=r,n=e.output||e;n instanceof wr&&(O(o)||(n.mirror=o),O(s)||(n.rotation=s),n.resize(e.width,e.height)),this.mixNode.changeInputLayout(n,r)}removeCameraSource(e){let r=this.inputLocalVideoTracks.get(e);if(!r)return;r.close(),this.inputLocalVideoTracks.delete(e);let o=this.cameraNodeMap.get(e);o&&(o.output instanceof wr&&o.output.close(),o.close(),this.cameraNodeMap.delete(e)),this.checkAfterRemove(!0)}removeScreenSource(e){let r=this.inputLocalScreenTracks.get(e);if(!r)return;r.close(),this.inputLocalScreenTracks.delete(e);let o=this.screenNodeMap.get(e);o&&(o.output instanceof wr&&o.output.close(),o.close(),this.screenNodeMap.delete(e)),this.checkAfterRemove(!0)}removeTextSource(e){let r=this.textNodeMap.get(e);r&&(r.output instanceof wr&&r.output.close(),r.close(),this.textNodeMap.delete(e)),this.checkAfterRemove()}removeImageSource(e){let r=this.imageNodeMap.get(e);r&&(r.output instanceof wr&&r.output.close(),r.close(),this.imageNodeMap.delete(e)),this.checkAfterRemove()}removeVideoSource(e){let r=this.videoNodeMap.get(e);r&&(r.output instanceof wr&&r.output.close(),r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image),r.close(),this.videoNodeMap.delete(e)),this.checkAfterRemove()}checkAfterRemove(e=!1){e&&this.setFpsAuto()}stopVideoElement(e){e.pause(),e.src="",e.srcObject=null,e.remove()}close(){var e;super.close(),ft.clearTask(this._checkId),(e=this.videoContext)==null||e.destroy(),delete this.mixNode,delete this.destination;for(let r of[...this.inputLocalVideoTracks.values(),...this.inputLocalScreenTracks.values()])r.close();this.inputLocalVideoTracks.clear(),this.inputLocalScreenTracks.clear(),this.cameraNodeMap.clear(),this.screenNodeMap.clear(),this.textNodeMap.clear(),this.imageNodeMap.clear(),St(this);for(let r of this.videoNodeMap.values())r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image);this.videoNodeMap.clear(),this.log.info("localMixVideoTrack close, stop mix")}};var el=Va();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:el,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var VA=function(i){return A(this,null,function*(){let t=null,e=$A(i);F.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(Sn&&sr<74||_t||lt)&&F.warn("Your browser not support capture system audio");let o=r.getVideoTracks()[0];if(o){if(i.frameRate)try{yield o.applyConstraints({frameRate:{min:i.frameRate,ideal:i.frameRate},width:i.width,height:i.height})}catch(s){F.warn(`screen applyConstraints failed: ${s}`)}i.captureElement&&(yield FA(o,i.captureElement))}if(i.audio){let s=BA(i);F.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function FA(i,t){return A(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&Xe(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===el))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){F.warn(`cropTo target failed ${r}`)}})}function BA(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return O(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function $A(i){let t={preferCurrentTab:i.preferDisplaySurface==="current-tab"||!!i.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:_t?{max:i.width}:{ideal:i.width,max:i.width},height:_t?{max:i.height}:{ideal:i.height,max:i.height},frameRate:i.frameRate,displaySurface:i.preferDisplaySurface||"monitor"};if(t.video=e,i.systemAudio){let{echoCancellation:r=!0,noiseSuppression:o=!1,autoGainControl:s=!1}=i;t.audio={echoCancellation:r,noiseSuppression:o,autoGainControl:s,sampleRate:48e3}}return t}var r_=VA;var mi=class extends _r{constructor(e){super(e,2);m(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600});m(this,"objectFit","contain");m(this,"isScreen",!0);this._log.id=`s-${this._log.id}`}get isShareCurrentTab(){var e,r;try{return el===((r=(e=this.mediaTrack)==null?void 0:e.getCaptureHandle())==null?void 0:r.handle)}catch(o){return}}capture(p){return A(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:n,videoTrack:a,captureElement:d,preferDisplaySurface:l}){try{let f;return a||n?(f=new MediaStream,a&&f.addTrack(a),n&&f.addTrack(n)):(f=yield r_({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:r,echoCancellation:o,noiseSuppression:s,captureElement:d,preferDisplaySurface:l}),this.sourceTrack=f.getVideoTracks()[0]),yield this.setInputMediaStreamTrack(f.getVideoTracks()[0]),f}catch(f){throw this.log.error(`getDisplayMedia error observed ${f}`),f instanceof ae?f:new ae({code:q.INITIALIZE_FAILED,name:f.name,message:f.message})}})}switchDevice(e){return A(this,null,function*(){throw new Error("Method not implemented.")})}};Z([Co(function(e){this.setContentHint(e.contentHint||"detail")})],mi.prototype,"capture",1);var xs=class extends li{constructor(t){super(t),this._log.id=`s-${this._log.id}`,this.isScreen=!0}addAudioProcessor(t,e,r){this.pipeline.silentNode.setNode(r),this.pipeline.mixNode.setNode(e),this.pipeline.aec.setNode(t),this.enableTrackAEC(!1)}removeAudioProcessor(t){this.pipeline.aec.node===t&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}};var HA='registerProcessor("dumper",class extends AudioWorkletProcessor{constructor(e){super(),this.sourceSampleRate=e.processorOptions.sourceSampleRate||48e3,this.targetSampleRate=e.processorOptions.targetSampleRate||48e3,this.port.onmessage=e=>{this.port2=e.data.port}}process(e){return(this.port2||this.port).postMessage(this.resampleAll(e,this.sourceSampleRate,this.targetSampleRate)),!0}resampleAll(r,s,a){if(s===a)return r;var o=[];for(let t=0;t<r.length;t++){o[t]=[];for(let e=0;e<r[t].length;e++)o[t][e]=this.resample(r[t][e],s,a)}return o}resample(t,e,r){if(e===r)return t;var s=Math.round(t.length*(this.targetSampleRate/this.sourceSampleRate)),a=new Float32Array(s),o=(t.length-1)/(s-1);a[0]=t[0];for(let e=1;e<s-1;e++){var l=e*o,p=Math.floor(l),h=Math.ceil(l);a[e]=t[p]+(t[h]-t[p])*(l-p)}return a[s-1]=t[t.length-1],a}});',Pp;function _c(i,t=48e3,e=1,r){return A(this,null,function*(){let o=qe("dump");Pp||(Pp=Gi(o,URL.createObjectURL(new Blob([HA],{type:"application/javascript"})))),yield Pp;let s=o.sampleRate,n=new AudioWorkletNode(o,"dumper",{numberOfInputs:i.length,numberOfOutputs:0,processorOptions:{sourceSampleRate:s,targetSampleRate:t}});return n.channelCountMode="explicit",n.channelCount=e,r&&n.port.postMessage({port:r},[r]),i.forEach((a,d)=>a.connect(n,0,d)),new ReadableStream({start(a){n.port.onmessage=d=>{a.enqueue(d.data)}},cancel(){i.forEach(a=>a.disconnect(n)),n.port.close()}})})}var tl=class extends Ru{constructor(e){super();this.room=e;m(this,"_localAudioTrack");m(this,"_localScreenAudioTrack");m(this,"log");m(this,"denoiser");m(this,"voiceChanger");m(this,"mixChangedDebounce");m(this,"audioProcessor");m(this,"encodePipeline",[]);m(this,"decodePipeline",[]);m(this,"getPCMAbortCtrlMap",new Map);m(this,"audioFrameEventConfigMap",new Map);m(this,"audioReferenceMap",new Map);m(this,"isLocalAudioNeedAudioProcess",!1);m(this,"isScreenAudioNeedAudioProcess",!1);this.log=F.createLogger({parent:e==null?void 0:e.getLogger(),id:"am",userId:e==null?void 0:e.userId,sdkAppId:e==null?void 0:e.sdkAppId}),this.installEvent()}get localAudioTrack(){return this._localAudioTrack}get _localAudioPipline(){var e;return(e=this._localAudioTrack)==null?void 0:e.pipeline}get _localScreenAudioPipeline(){var e;return(e=this._localScreenAudioTrack)==null?void 0:e.pipeline}dump(e){var p,f;if(!this._localAudioTrack)return;let r=[],o=[];(p=this._localAudioPipline)!=null&&p.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(f=this._localAudioPipline)!=null&&f.denoiser.node&&(r.push(this._localAudioPipline.denoiser.node),o.push("mic-processed")),this.mixWeight>1&&(r.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),o.push("mix")),this.log.info(`dump audio track ${o}, duration: ${e}`);let s=new AbortController,n=[],a=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),s.abort("timeout")},e*1e3),d=()=>{for(let g=0;g<o.length;g++){let y=URL.createObjectURL(new Blob(n[g])),R=document.createElement("a");R.href=y,R.download=`${o[g]}.pcm`,R.style.display="none",document.body.appendChild(R),R.click(),URL.revokeObjectURL(y),R.remove()}clearTimeout(a),s.abort("download")},l=_c(r).then(g=>g.pipeTo(new WritableStream({write(y){y.forEach((R,C)=>n[C]=n[C]?n[C].concat(R[0]):[R[0]])}}),s).catch(y=>d));return{then:l.then.bind(l),download:d}}getPCM(e,r){var k,Q,H;if(typeof WritableStream=="undefined"){this.log.warn("getPCM failed: browser not support WritableStream");return}let{enable:o,sampleRate:s=48e3,channelCount:n=1,port:a}=(r===""?this.audioFrameEventConfigMap.get(""):this.audioFrameEventConfigMap.get(r)||this.audioFrameEventConfigMap.get("*"))||{};if(!o)return;this.log.info(`getPCM ${r||"local"}`);let d=Math.floor(s*.04),l=new Float32Array(d),p=new Float32Array(d),f,g,y=0,R=new AbortController,C=r===""?(k=this._localAudioTrack)==null?void 0:k.mediaTrack:(H=(Q=this.room)==null?void 0:Q.remotePublishedUserMap.get(r))==null?void 0:H.remoteAudioTrack.mediaTrack;if(!C){this.log.info(`getPCM failed: ${r||"local"} has no audio track`);return}let N=qe().createMediaStreamSource(new MediaStream([C]));return _c([N],s,n,a).then(Ie=>Ie.pipeTo(new WritableStream({write(Je){Je[0][0]&&(y+Je[0][0].length>d?(l.set(Je[0][0].subarray(0,d-y),y),f=Je[0][0].subarray(d-y),Je[0][1]&&(p.set(Je[0][1].subarray(0,d-y),y),g=Je[0][1].subarray(d-y)),y+=d-y):(f&&(l.set(f,y),y+=f.length,f=void 0),g&&(p.set(g,y),g=void 0),l.set(Je[0][0],y),Je[0][1]&&p.set(Je[0][1],y),y+=Je[0][0].length),y>=d&&(y=0,e({userId:r,sampleRate:s,channelCount:n,data:n===1?l:[l,p]}),l=new Float32Array(d),p=new Float32Array(d)))}}),R).catch(Je=>this.log.warn(`stop getPCM reason:${Je}`))),R}get hasScreenAudioTrack(){return!O(this._localScreenAudioTrack)}get hasAudioTrack(){return!O(this._localAudioTrack)}changeInput(e){var r,o;if(e instanceof xs)return this._localScreenAudioTrack=e,this.isScreenAudioNeedAudioProcess&&((r=this.audioProcessor)!=null&&r.screenAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.screenAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof li)return this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),this.isLocalAudioNeedAudioProcess&&((o=this.audioProcessor)!=null&&o.localAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.localAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof zi)return e.setOutputMediaStreamTrack(e.mediaTrack)}mixAudioReference(e,r){var o;(o=this._localAudioTrack)==null||o.mixAudioReference(e,r)}unMixAudioReference(e){var r;(r=this._localAudioTrack)==null||r.unMixAudioReference(e)}setAudioReferenceVolume(e,r){var o;(o=this._localAudioTrack)==null||o.setAudioReferenceVolume(e,r)}mixOnChange(){return this.mixChangedDebounce||(this.mixChangedDebounce=Promise.resolve().then(()=>{var e,r;return delete this.mixChangedDebounce,Promise.all([(e=this._localAudioTrack)==null?void 0:e.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localAudioTrack.mediaTrack),(r=this._localScreenAudioTrack)==null?void 0:r.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localScreenAudioTrack.mediaTrack)])})),this.mixChangedDebounce}removeInput(e){e instanceof xs?delete this._localScreenAudioTrack:e instanceof li?delete this._localAudioTrack:e instanceof zi}addDenoiser(e){var r;this.denoiser=e,(r=this._localAudioTrack)==null||r.addDenoiser(e)}addAudioProcessor(e,r,o,s){var n;this.audioProcessor={localAudioWorkletNode:o,mixNode:e,silentNode:r,screenAudioWorkletNode:s},this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&o&&(this._localAudioTrack.addAudioProcessor(o,e,r),this.audioReferenceMap.forEach((a,d)=>{var l;(l=this._localAudioTrack)==null||l.mixAudioReference(a,d)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&s&&((n=this._localScreenAudioTrack)==null||n.addAudioProcessor(s,e,r),this.audioReferenceMap.forEach((a,d)=>{var l;(l=this._localScreenAudioTrack)==null||l.mixAudioReference(a,d)}))}removeDenoiser(e){var r;return delete this.denoiser,(r=this._localAudioTrack)==null?void 0:r.removeDenoiser(e)}addVoiceChanger(e,r){var o;this.voiceChanger=[e,r],(o=this._localAudioTrack)==null||o.pipeline.voiceChanger.setNode(e,r)}removeVoiceChanger(){var e;delete this.voiceChanger,(e=this._localAudioTrack)==null||e.pipeline.voiceChanger.deleteNode()}removeAudioProcessor(e,r){var o,s;delete this.audioProcessor,(o=this._localAudioTrack)==null||o.removeAudioProcessor(e),(s=this._localScreenAudioTrack)==null||s.removeAudioProcessor(r)}destroy(){this.close(),this.audioReferenceMap.clear(),this.getPCMAbortCtrlMap.forEach(e=>e==null?void 0:e.abort("destroy")),this.getPCMAbortCtrlMap.clear(),this.audioFrameEventConfigMap.clear(),this.uninstallEvent()}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}handleLocalTrackStarted({room:e,userId:r}){var s;if(e!==this.room||this.getPCMAbortCtrlMap.get(r))return;let o=this.getPCM(n=>{var a;(a=this.room)==null||a.emit("audio-frame",n)},"");this.getPCMAbortCtrlMap.set(r,o),this.getPCMAbortCtrlMap.get(r)&&((s=this._localAudioTrack)==null||s.on("input-media-track-changed",()=>{let n=this.getPCMAbortCtrlMap.get(r);n&&(n.abort("inputMediaTrackChanged"),n=this.getPCM(a=>{var d;(d=this.room)==null||d.emit("audio-frame",a)},""),this.getPCMAbortCtrlMap.set(r,n))}))}handleLocalTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopLocalAudio"),this.getPCMAbortCtrlMap.delete(r))}handleRemoteTrackStarted({room:e,userId:r}){if(e===this.room&&!this.getPCMAbortCtrlMap.get(r)){let o=this.room.audioManager.getPCM(s=>{var n;(n=this.room)==null||n.emit("audio-frame",s)},r);this.getPCMAbortCtrlMap.set(r,o)}}handleRemoteTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopRemoteAudio"),this.getPCMAbortCtrlMap.delete(r))}installEvent(){U.on("113",this.handleLocalTrackStarted,this),U.on("114",this.handleLocalTrackStopped,this),U.on("115",this.handleRemoteTrackStarted,this),U.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){U.off("113",this.handleLocalTrackStarted),U.off("114",this.handleLocalTrackStopped),U.off("115",this.handleRemoteTrackStarted),U.off("116",this.handleRemoteTrackStopped)}updateAudioReference({type:e,audioReference:r,refId:o,volume:s}){if(e==="add"){if(this.audioReferenceMap.get(o)||!r||(this.audioReferenceMap.set(o,r),!this.audioProcessor))return;this.mixAudioReference(r,o)}else if(e==="remove")this.audioReferenceMap.get(o)&&(this.audioReferenceMap.delete(o),this.unMixAudioReference(o));else if(e==="updateVolume"){if(!this.audioProcessor||O(s))return;this.setAudioReferenceVolume(o,s)}}};function Ju(i=30,t=2){return xe((e,r)=>function(...o){return new Promise((s,n)=>{let a=setTimeout(()=>{let d=new ae({code:q.API_CALL_TIMEOUT,message:`checkPendingPromise ${r}() timeout ${i}s`});(this.log||this._log||F).warn(d),t===2?n(d):t===1&&s()},i*1e3);this._checkPendingPromiseSet||(this._checkPendingPromiseSet=new Set),this._checkPendingPromiseSet.add(a),e.apply(this,o).then(s,n).finally(()=>{clearTimeout(a),this._checkPendingPromiseSet&&a&&this._checkPendingPromiseSet.delete(a)})})})}var hi=class hi extends Ss{constructor(e,r,o){super({userId:r.userId,sdkAppId:e.sdkAppId,mediaType:o,room:e});this.room=e;this.user=r;m(this,"tinyId");m(this,"isRemote",!0);m(this,"jitterBufferDelay",0);m(this,"availableState");m(this,"remotePublishState");m(this,"_triggerCheckDecodeSubject",At(ye(this,hi.STATE_SUBSCRIBE)));this.tinyId=r.tinyId,this.availableState=new ue(`${r.userId}-${this.mediaType}-available`,"remote-track-available"),this.remotePublishState=new ue(`${r.userId}-${this.mediaType}-remote-publish`,"remote-track-publish"),Ae(lc(ye(this,ue.STATECHANGED),ye(this.remotePublishState,ue.STATECHANGED)),Do(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),Pe(d=>{this.availableState.state!==(d?ue.ON:ue.OFF)&&(this.availableState.state=d?ue.ON:ue.OFF),this.updatePlayingState(d)}));let s=Ae(ye(this.player,Ge.ERROR),er(d=>d.code===MediaError.MEDIA_ERR_DECODE)),n=Ae(hc(5e3),er(()=>this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived?!1:this.player.isPlaying||(this.kind===M.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)?(this.reportDecodeResult(!0),!1):!0)),a=Ae(qh(s,n),ze(ye(this,ue.INIT)));Ae(this._triggerCheckDecodeSubject,er(()=>!this.ignoreDecodeError),qi(a),Pe(d=>{this.reportDecodeResult(!1,d)}))}setMute(e){this.isRemotePublished&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isRemotePublished&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}checkDecodeResult(){this._triggerCheckDecodeSubject.next(!0)}waitHasMediaTrack(){return new Promise(e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)})}get ignoreDecodeError(){var r,o;return(((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===hi.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===ue.ON}get isNeedPlay(){return this.isAvailable&&this.isPlayCalled}subscribe(e){return e}unsubscribe(){this.player.setTrack(null),this.streamType==="main"&&this.kind==="video"&&this.room.changeType(!1,this.user)}reportDecodeResult(e,r){var s,n;let o=this.kind===M.AUDIO;if(J[e?"addSuccessEvent":"addFailedEvent"]({key:o?504700:514702}),!o){let a=((s=this.room)==null?void 0:s.downlinkVideoCodec.toUpperCase())||"H264";J[e?"addSuccessEvent":"addFailedEvent"]({key:Cn[`DECODE_${a}_RESULT`]}),e||this.log.warn(`${(n=this.room)==null?void 0:n.downlinkVideoCodec} decode failed`)}e||(J.addEnum({key:o?504701:514703,value:hs()}),je.uploadEvent({log:`stat-decode-failed-${this.kind}-${ms()||Li()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===M.AUDIO?`audioLevel: ${this.getAudioLevel()}`:`framesDecoded: ${this.stat.framesDecoded>0}`}`),this.emit("decode-failed",{error:r}))}updatePlayingState(e){if(this.isPlayCalled&&this.player.isStopped===e){if(e&&(!this.isSubscribed||!this.isRemotePublished||!this.outMediaTrack)){this.log.info(`abort play, isSubscribed: ${this.isSubscribed} isAvailable: ${this.isRemotePublished} hasTrack: ${!!this.outMediaTrack} `);return}super.updatePlayingState(e)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.remotePublishState.state=this.isRemotePublished?ue.ON:ue.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};m(hi,"STATE_SUBSCRIBE","subscribe"),Z([Ju(5,1)],hi.prototype,"waitHasMediaTrack",1),Z([et(ue.INIT,hi.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),U.emit(B.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),Pu(521716,!1)],hi.prototype,"subscribe",1),Z([et(hi.STATE_SUBSCRIBE,ue.INIT,{sync:!0,success(){this.log.info("unsubscribed"),U.emit(B.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],hi.prototype,"unsubscribe",1);var Bn=hi;var zi=class extends Bn{constructor(e,r){super(e,r,1);m(this,"volume",0);m(this,"mediaType",1);m(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.audioManager}get dbVolume(){return Cu.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}onPlayerError(e){this.enableDecodeFrame&&(this._log.warn("use audio decoder"),this.room.enableInsertableStreams())}get enableDecodeFrame(){var e,r;return this.manager?this.manager.decodePipeline.some(o=>o)||((r=(e=this.player.element)==null?void 0:e.error)==null?void 0:r.code)===MediaError.MEDIA_ERR_DECODE&&Tu().AudioDecoder&&_s:!1}get enableDecryptFrame(){return this.manager&&!!this.manager.decodePipeline[0]}decodeFrame(e){if(!this.manager)return e;let r=e;for(let[o,s]of this.manager.decodePipeline.entries()){if(!s)continue;let n={frame:e,track:this};if(o===1&&this.isAvailable&&this.room.role==="audience"&&(n.onAudioFrameNTPTime=({ntp:a,frame:d,hasLeavingTag:l})=>{this.emit("audio-frame-with-ntp",{ntp:a,frame:d,hasLeavingTag:l})}),r=s(n),!r)return}return r}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isRemotePublished(){return this.user.muteState.audioAvailable}};var rl=class extends bt{constructor(e,r,o,s,n){super(e,{useDefaultProgram:!0,useFbo:!0,name:"alpha",create2d:!0,logger:r});this.setContainer=s;m(this,"initStat",{alphaStitchingType:1});m(this,"end",At());m(this,"minSize",320);m(this,"maxSize",1280);m(this,"draggable",!1);m(this,"startDragX",0);m(this,"startDragY",0);m(this,"left",0);m(this,"top",0);m(this,"baseWidth",320);m(this,"baseRatio");m(this,"container");this.initStat=n,this.draggable=o,this.bindDragEvents()}bindDragEvents(){let e=this.context._canvas;if(e)if(this.draggable){let r=ze(this.end);Ae(ye(e,"mousedown"),Cs(this.startDrag.bind(this)),ui(()=>Ae(ye(window,"mousemove"),ze(ye(window,"mouseup")))),r,Pe(this.doDrag.bind(this))),Ae(ye(e,"dblclick"),r,Pe(this.resetPosition.bind(this))),Ae(ye(e,"wheel"),r,Pe(this.handleZoom.bind(this))),this.renderCanvas()}else{if(!this.container)return;this.container.style.removeProperty("left"),this.container.style.removeProperty("top"),this.end.next()}}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}startDrag(e){e.preventDefault(),e.button===0&&(this.startDragX=e.clientX-this.left,this.startDragY=e.clientY-this.top)}renderCanvas(){let{container:e}=this;e||this.setContainer(),!(!e||!this.baseRatio||!this.draggable)&&(e.style.setProperty("width",`${this.baseWidth}px`),e.style.setProperty("height",`${this.baseWidth/this.baseRatio}px`),e.style.setProperty("position","fixed"),e.style.setProperty("left",`${this.left}px`),e.style.setProperty("top",`${this.top}px`))}doDrag(e){e.preventDefault(),this.left=e.clientX-this.startDragX,this.top=e.clientY-this.startDragY,this.renderCanvas()}handleZoom(e){e.preventDefault();let r=.1,o=e.deltaY,s=this.context._canvas;s&&(this.baseWidth||(this.baseWidth=s.offsetWidth),o<0?this.baseWidth=Math.min(this.baseWidth*(1+r),this.maxSize):this.baseWidth=Math.max(this.baseWidth*(1-r),this.minSize),this.renderCanvas())}resetPosition(){this.left=0,this.top=0,this.renderCanvas()}onRatioReset(){this.renderCanvas()}draw2d(e,r,o,s,n){var y;let{ctx2d:a}=this,d=this.context._canvas;if(!a||!d)return!1;let l=super.draw2d(e,r,o,s,n),p=a.getImageData(0,0,s,n),{data:f}=p,g=!1;if(this.initStat.alphaStitchingType===1){let R=Math.floor(s/2);for(let C=0;C<n;C++)for(let N=0;N<R;N++){let k=(C*s+N)*4,Q=N+R,H=(C*s+Q)*4,Ie=f[H];f[H+3]=0;let Je=Ie>=100;f[k+3]=Je?255:0}g=super.draw2d(p,0,0,0,0,R,n),d.width=R}else if(this.initStat.alphaStitchingType===2){let R=Math.floor(n/2);for(let C=0;C<R;C++)for(let N=0;N<s;N++){let k=(C*s+N)*4,H=((C+R)*s+N)*4,Ie=f[H];f[H+3]=0;let Je=Ie>=100;f[k+3]=Je?255:0}g=super.draw2d(p,0,0,0,0,s,R),d.height=R}return(y=this.context.ctx)==null||y.clearRect(0,0,s,n),l&&g}close(){this.baseRatio=void 0,this.end.next(),this.end.complete()}};function GA(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var Mo=class extends Bn{constructor(e,r,o=4){super(e,r,o);m(this,"mediaType",4);m(this,"source");m(this,"shouldRenderAlpha",!1);m(this,"alphaNode");m(this,"shouldBeDraggable",!0);m(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.videoManager,this.once("first-video-frame",s=>{this.room.emit("first-video-frame",s)})}isAlphaSei(e){if(this.userId!==e.userId||e.seiPayloadType!==50)return!1;let r=new Uint8Array(e.data);return r.length%3!==0||r[0]!==0||r[1]!==1?!1:r}play(e,r){return(Ye(r==null?void 0:r.canvasRender)?r.canvasRender:Vt===17)&&!this.source&&this.useCanvasPlayer(),super.play(e,r).then(()=>{this.player.calculateStat(),U.emit("156",{track:this,player:this.player})})}updateAlphaRenderInfo(e){let r=this.isAlphaSei(e);if(r)if(!this.alphaNode)this.shouldRenderAlpha=!0,this.player.shouldRenderAlpha=!0,this.useCanvasPlayer(r[2]);else{let o=r[2];if(this.alphaNode.baseRatio&&this.alphaNode.initStat.alphaStitchingType===o)return;this.alphaNode.initStat={alphaStitchingType:o};let s=this.player.getElement();if(s){let n=s.videoWidth/s.videoHeight;n&&(this.alphaNode.baseRatio=n*(o===1?.5:2),this.alphaNode.onRatioReset())}this.player.canvas&&(this.player.canvas.id=this.generateAlphaCanvasName(o))}}generateAlphaCanvasName(e){let r="alpha",o=ja[e];return`${r}_${o}_${this.userId}`}useCanvasPlayer(e){if(this.log.info(`useCanvasPlayer(), has element:${!!this.player.element}`),!this.player.element)return;let r=new Pt({frameRate:15,logger:this.log,name:this.shouldRenderAlpha&&e?this.generateAlphaCanvasName(e):this.userId});r.create({alpha:this.shouldRenderAlpha,willReadFrequently:this.shouldRenderAlpha});let o=new ws(r,{name:"remotePlayer",logger:this.log});if(this.source=r.createVideoPlayerSource(this.player),this.player.setCanvas(r._canvas),this.shouldRenderAlpha&&e){let s=()=>{!this.player.container||!this.alphaNode||(this.alphaNode.container=this.player.container,this.alphaNode.renderCanvas())},n=new rl(r,this.log,this.shouldBeDraggable,s,{alphaStitchingType:e});this.source.connect(n),n.connect(o),this.alphaNode=n}else this.source.connect(o);zr()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,r),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=GA(r);if(!Ve(r)||r<=0){this.log.debug(`updateCanvasPlayerFPS() ignore decoder: ${r} `);return}if(o===e.frameRate){this.log.debug(`updateCanvasPlayerFPS() ignore ClosestFPS ${o} == ${e.frameRate}`);return}this.log.info(`updateCanvasPlayerFPS() decoder: ${r}, closest: ${o}, current: ${e.frameRate}`),e.frameRate=o}get decodeFPS(){var n;let{msg_video_status:e}=((n=this.room.heartbeatReport)==null?void 0:n.msg_down_stream_info.find(a=>a.msg_user_info.str_identifier===this.userId))||{},r=this.mediaType===2?7:this.isSmall?3:2;if(!e||e.length===0)return 0;let o=e.find(a=>a.uint32_video_stream_type===r);return(o==null?void 0:o.uint32_video_dec_fps)||0}stop(){return this.room.off("heartbeat-report",this.updateCanvasPlayerFPS,this),U.emit("157",{track:this,player:this.player}),this.alphaNode&&this.alphaNode.close(),super.stop()}decodeFrame(e){if(!this.manager)return e;for(let r of this.manager.decodePipeline)if(r&&(e=r({frame:e,track:this}),!e))return;return e}get isBig(){return this.mediaType===4}get isSmall(){return this.mediaType===8}changeType(e){this.room.changeType(e,this.user)}get isRemotePublished(){return this.user.muteState.videoAvailable}setMirror(e){e==="publish"||e==="both"||super.setMirror(e)}setDraggable(e){this.shouldBeDraggable=e,this.alphaNode&&(this.alphaNode.draggable=e,this.alphaNode.bindDragEvents())}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},il=class extends Mo{constructor(e,r){super(e,r,2);m(this,"mediaType",2);m(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}};var $n=new Map;U.on(B.JOIN_SUCCESS,({room:i})=>{mt(i.userId,{eventId:32788})});U.on(B.LEAVE_START,({room:i})=>{mt(i.userId,{eventId:32789})});U.on(B.LOCAL_TRACK_PUBLISHED,({track:i})=>{if(i.room){let t=32769;i.mediaType===4?t=32768:i.mediaType===2&&(t=32805),mt(i.room.userId,{eventId:t})}});U.on(B.LOCAL_TRACK_UNPUBLISHED,({track:i})=>{if(i.room){let t=32771;i.mediaType===4?t=32770:i.mediaType===2&&(t=32806),mt(i.room.userId,{eventId:t})}});U.on(B.TRACK_MUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?mt(i.room.userId,{eventId:i.isRemote?32785:32772,remoteUserId:i.isRemote?i.userId:void 0}):mt(i.room.userId,{eventId:i.isRemote?32784:32773,remoteUserId:i.isRemote?i.userId:void 0}))});U.on(B.TRACK_UNMUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?mt(i.room.userId,{eventId:i.isRemote?32787:32774,remoteUserId:i.isRemote?i.userId:void 0}):mt(i.room.userId,{eventId:i.isRemote?32786:32775,remoteUserId:i.isRemote?i.userId:void 0}))});U.on(B.REMOTE_TRACK_SUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&mt(i.room.userId,{eventId:32777,remoteUserId:i.userId}),i.mediaType===4&&mt(i.room.userId,{eventId:32776,remoteUserId:i.userId}),i.mediaType===8&&mt(i.room.userId,{eventId:32803,remoteUserId:i.userId}))});U.on(B.REMOTE_TRACK_UNSUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&mt(i.room.userId,{eventId:32779,remoteUserId:i.userId}),i.mediaType===4&&mt(i.room.userId,{eventId:32778,remoteUserId:i.userId}),i.mediaType===8&&mt(i.room.userId,{eventId:32804,remoteUserId:i.userId}))});U.on(B.SWITCH_DEVICE_SUCCESS,({track:i})=>{i.room&&mt(i.room.userId,{eventId:i.kind===M.VIDEO?32780:32781})});U.on(B.LOCAL_TRACK_REPLACED,({track:i})=>{i.room&&mt(i.room.userId,{eventId:i.kind===M.VIDEO?32782:32783})});U.on(B.SIGNAL_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e})=>{let r;switch(e){case"CONNECTED":t==="RECONNECTING"?r=32795:r=32791;break;case"DISCONNECTED":t==="RECONNECTING"?r=32796:r=32790;break;case"RECONNECTING":r=32794;break}r&&mt(i.userId,{eventId:r})});U.on(B.PEER_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e,remoteUserId:r})=>{let o=!!r,s;switch(e){case"CONNECTED":t==="RECONNECTING"?s=o?32801:32798:s=o?32793:32792;break;case"DISCONNECTED":t==="RECONNECTING"&&(s=o?32802:32799);break;case"RECONNECTING":s=o?32800:32797;break}s&&mt(i.userId,{eventId:s,remoteUserId:r})});U.on(B.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:i,userId:t,remoteUserId:e,codec:r,isHWCodec:o,prevImplementation:s,streamType:n})=>{let a=o?1:0;s||(a=o?3:2);let d={H264:0,H265:1,VP8:2}[r.toUpperCase()],l={eventId:4004,param1:a,param2:d,streamType:n||2};e&&(l.remoteUserId=e,l.eventId=4005),mt(t,l),J.addEnum({key:e?514701:513701,value:a}),J.addEnum({key:e?514700:513700,value:d})});U.on(B.LOCAL_TRACK_RECAPTURE,({track:i,error:t})=>{if(i.userId){let e={eventId:2003,param1:0};i.kind===M.AUDIO?(e.streamType=1,t&&(e.param1=2)):(e.streamType=i.streamType==="auxiliary"?7:2,t&&(e.param1=8)),mt(i.userId,e)}});function mt(i,t){let e=Ee(Y({},t),{timestamp:Ri()});$n.has(i)?$n.get(i).push(e):$n.set(i,[e])}function i_(i){if($n.has(i)){let t=$n.get(i).map(e=>({uint32_event_id:e.eventId,uint64_date:e.timestamp,str_userid:e.remoteUserId,uint32_param1:e.param1,uint32_param2:e.param2,uint32_video_stream_type:e.streamType}));return $n.delete(i),t}return[]}function o_(...i){return xe((t,e)=>function(...r){return jA.call(this,i,r,e,this._name),t.apply(this,r)})}function jA(i,t,e,r){try{if(ut(i))for(let o=0;o<i.length;o++)ol.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else ol.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}catch(o){throw F.error(o),o}}function ol({rule:i,value:t,key:e,fnName:r,className:o}){if(O(t)){if(i.required)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_REQUIRED,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(O(i.defaultValue))return;t=i.defaultValue}if(Array.isArray(i.type)){let a=!1;for(let d=0;d<i.type.length;d++)i.type[d]===null&&t===null&&(a=!0),Xe(i.type[d])&&t instanceof i.type[d]&&(a=!0),we(i.type[d])&&pt(t)===i.type[d].toLowerCase()&&(a=!0);if(!a)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_TYPE,data:{key:e,rule:{type:i.type.map(d=>ss(d)?cn(d):we(d)?d:pt(d))},fnName:r,value:t},link:{className:o,fnName:r}})})}else if(!O(i.type)&&pt(t)!==i.type)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_TYPE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.allowEmpty===!1){let a=Ve(t)&&(t===0||Number.isNaN(t)),d=we(t)&&t.trim()==="";if(a||d)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_EMPTY,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}if(i.notLessThanZero&&Ve(t)&&t<0)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.CANNOT_LESS_THAN_ZERO,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!O(i.min)&&Ve(t)&&t<i.min)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_MIN,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!O(i.max)&&Ve(t)&&t>i.max)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_MAX,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(we(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}else if(Xe(i.instanceOf)&&!(t instanceof i.instanceOf))throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.values&&!i.values.includes(t))throw new ae({code:q.INVALID_PARAMETER,message:He({key:$e.INVALID_PARAMETER_RANGE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});let{properties:s}=i;Xt(s)&&hr(t)&&Object.keys(s).forEach(a=>{ol.call(this,{rule:s[a],value:t&&t[a],key:`${e}.${a}`,fnName:r,className:o})});let{arrayItem:n}=i;Xt(n)&&ut(t)&&t.forEach((a,d)=>{ol.call(this,{rule:n,value:a,key:`${e}[${d}]`,fnName:r,className:o})}),Xe(i.validate)&&i.validate.call(this,t,e,r,o,this)}var qA=bi(ki(),1);var zA=Object.create,cl=Object.defineProperty,JA=Object.defineProperties,g_=Object.getOwnPropertyDescriptor,XA=Object.getOwnPropertyDescriptors,E_=Object.getOwnPropertyNames,al=Object.getOwnPropertySymbols,QA=Object.getPrototypeOf,Xp=Object.prototype.hasOwnProperty,__=Object.prototype.propertyIsEnumerable,$p=(i,t,e)=>t in i?cl(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Ac=(i,t)=>{for(var e in t||(t={}))Xp.call(t,e)&&$p(i,e,t[e]);if(al)for(var e of al(t))__.call(t,e)&&$p(i,e,t[e]);return i},bc=(i,t)=>JA(i,XA(t)),YA=(i,t)=>{var e={};for(var r in i)Xp.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&al)for(var r of al(i))t.indexOf(r)<0&&__.call(i,r)&&(e[r]=i[r]);return e},ZA=(i,t)=>function(){return t||(0,i[E_(i)[0]])((t={exports:{}}).exports,t),t.exports},KA=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of E_(t))Xp.call(i,o)||o===e||cl(i,o,{get:()=>t[o],enumerable:!(r=g_(t,o))||r.enumerable});return i},T_=(i,t,e)=>(e=i!=null?zA(QA(i)):{},KA(!t&&i&&i.__esModule?e:cl(e,"default",{value:i,enumerable:!0}),i)),Ji=(i,t,e,r)=>{for(var o,s=r>1?void 0:r?g_(t,e):t,n=i.length-1;n>=0;n--)(o=i[n])&&(s=(r?o(t,e,s):o(s))||s);return r&&s&&cl(t,e,s),s},tt=(i,t,e)=>$p(i,typeof t!="symbol"?t+"":t,e),I_=ZA({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(i,t){"use strict";var e=Object.prototype.hasOwnProperty,r="~";function o(){}function s(l,p,f){this.fn=l,this.context=p,this.once=f||!1}function n(l,p,f,g,y){if(typeof f!="function")throw new TypeError("The listener must be a function");var R=new s(f,g||l,y),C=r?r+p:p;return l._events[C]?l._events[C].fn?l._events[C]=[l._events[C],R]:l._events[C].push(R):(l._events[C]=R,l._eventsCount++),l}function a(l,p){--l._eventsCount==0?l._events=new o:delete l._events[p]}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 l,p,f=[];if(this._eventsCount===0)return f;for(p in l=this._events)e.call(l,p)&&f.push(r?p.slice(1):p);return Object.getOwnPropertySymbols?f.concat(Object.getOwnPropertySymbols(l)):f},d.prototype.listeners=function(l){var p=r?r+l:l,f=this._events[p];if(!f)return[];if(f.fn)return[f.fn];for(var g=0,y=f.length,R=new Array(y);g<y;g++)R[g]=f[g].fn;return R},d.prototype.listenerCount=function(l){var p=r?r+l:l,f=this._events[p];return f?f.fn?1:f.length:0},d.prototype.emit=function(l,p,f,g,y,R){var C=r?r+l:l;if(!this._events[C])return!1;var N,k,Q=this._events[C],H=arguments.length;if(Q.fn){switch(Q.once&&this.removeListener(l,Q.fn,void 0,!0),H){case 1:return Q.fn.call(Q.context),!0;case 2:return Q.fn.call(Q.context,p),!0;case 3:return Q.fn.call(Q.context,p,f),!0;case 4:return Q.fn.call(Q.context,p,f,g),!0;case 5:return Q.fn.call(Q.context,p,f,g,y),!0;case 6:return Q.fn.call(Q.context,p,f,g,y,R),!0}for(k=1,N=new Array(H-1);k<H;k++)N[k-1]=arguments[k];Q.fn.apply(Q.context,N)}else{var Ie,Je=Q.length;for(k=0;k<Je;k++)switch(Q[k].once&&this.removeListener(l,Q[k].fn,void 0,!0),H){case 1:Q[k].fn.call(Q[k].context);break;case 2:Q[k].fn.call(Q[k].context,p);break;case 3:Q[k].fn.call(Q[k].context,p,f);break;case 4:Q[k].fn.call(Q[k].context,p,f,g);break;default:if(!N)for(Ie=1,N=new Array(H-1);Ie<H;Ie++)N[Ie-1]=arguments[Ie];Q[k].fn.apply(Q[k].context,N)}}return!0},d.prototype.on=function(l,p,f){return n(this,l,p,f,!1)},d.prototype.once=function(l,p,f){return n(this,l,p,f,!0)},d.prototype.removeListener=function(l,p,f,g){var y=r?r+l:l;if(!this._events[y])return this;if(!p)return a(this,y),this;var R=this._events[y];if(R.fn)R.fn!==p||g&&!R.once||f&&R.context!==f||a(this,y);else{for(var C=0,N=[],k=R.length;C<k;C++)(R[C].fn!==p||g&&!R[C].once||f&&R[C].context!==f)&&N.push(R[C]);N.length?this._events[y]=N.length===1?N[0]:N:a(this,y)}return this},d.prototype.removeAllListeners=function(l){var p;return l?(p=r?r+l:l,this._events[p]&&a(this,p)):(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,t!==void 0&&(t.exports=d)}}),eb=T_(I_(),1),s_=Symbol("instance"),EU=Symbol("abortCtrl"),sl=Symbol("cacheResult"),Lp=class{constructor(i,t,e){this.oldState=i,this.newState=t,this.action=e,this.aborted=!1}abort(i){this.aborted=!0,vc.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},nl=class extends Error{constructor(i,t,e){super(t),this.state=i,this.message=t,this.cause=e}};function tb(i){return typeof i=="object"&&i&&"then"in i}var Rc=new Map;function xo(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let d=Rc.get(r)||[];Rc.has(r)||Rc.set(r,d),d.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...d){let l=this;if(e.context&&(l=tr.get(typeof e.context=="function"?e.context.call(this,...d):e.context)),l.state===t)return e.sync?l[sl]:Promise.resolve(l[sl]);l.state instanceof Lp&&l.state.action==e.abortAction&&l.state.abort(l);let p=null;Array.isArray(i)?i.length==0?l.state instanceof Lp&&l.state.abort(l):typeof l.state=="string"&&i.includes(l.state)||(p=new nl(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i.join("|")}`)):i!==l.state&&(p=new nl(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i}`));let f=N=>{if(e.fail&&e.fail.call(this,N),e.sync){if(e.ignoreError)return N;throw N}return e.ignoreError?Promise.resolve(N):Promise.reject(N)};if(p)return f(p);let g=l.state,y=new Lp(g,t,n);vc.call(l,y);let R=N=>{var k;return l[sl]=N,y.aborted||(vc.call(l,t),(k=e.success)===null||k===void 0||k.call(this,l[sl])),N},C=N=>(vc.call(l,g,N),f(N));try{let N=a.apply(this,d);return tb(N)?N.then(R).catch(C):e.sync?R(N):Promise.resolve(R(N))}catch(N){return C(new nl(l._state,`${l.name} ${n} from ${i} to ${t} failed: ${N}`,N instanceof Error?N:new Error(String(N))))}}}}function rb(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...n){if(!i.includes(this.state.toString()))throw new nl(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,n)}}}var ib=typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{};function vc(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(tr.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var tr=class Or extends eb.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=Or.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let o=r[s_];o?this.name=o.name+"-"+o.count++:r[s_]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=Rc.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);Rc.has(a)&&(a.stateDiagram.forEach(l=>r.add(l)),a.allStates.forEach(l=>n.add(l))),e.forEach(({from:l,to:p,action:f})=>{typeof l=="string"?o.push({from:l,to:p,action:f}):l.length?l.forEach(g=>{o.push({from:g,to:p,action:f})}):s.push({to:p,action:f})}),o.forEach(({from:l,to:p,action:f})=>{n.add(l),n.add(p),n.add(f+"ing"),r.add(`${l} --> ${f}ing : ${f}`),r.add(`${f}ing --> ${p} : ${f} \u{1F7E2}`),r.add(`${f}ing --> ${l} : ${f} \u{1F534}`)}),s.forEach(({to:l,action:p})=>{r.add(`${p}ing --> ${l} : ${p} \u{1F7E2}`),n.forEach(f=>{f!==l&&r.add(`${f} --> ${p}ing : ${p}`)})});let d=[...r];return Object.defineProperties(t,{stateDiagram:{value:d},allStates:{value:n}}),d}static get(t){let e;return typeof t=="string"?(e=Or.instances.get(t),e||Or.instances.set(t,e=new Or(t,void 0,Object.create(Or.prototype)))):(e=Or.instances2.get(t),e||Or.instances2.set(t,e=new Or(t.constructor.name,void 0,Object.create(Or.prototype)))),e}static getState(t){var e;return(e=Or.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){ib(Or.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){vc.call(this,t)}};tr.STATECHANGED="stateChanged",tr.UPDATEAFSM="updateAFSM",tr.INIT="[*]",tr.ON="on",tr.OFF="off",tr.instances=new Map,tr.instances2=new WeakMap;var Wn=class extends tr{constructor(){super(...arguments),tt(this,"decoder"),tt(this,"config")}initialize(){return A(this,null,function*(){this.decoder=new VideoDecoder({output:i=>{this.emit("videoFrame",i)},error:i=>{this.close(),this.emit("error",i)}})})}configure(i){this.config=i,this.decoder.configure(bc(Ac({},i),{codec:this.getCodec(i)}))}getCodec(i){switch(i.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 i.codec}}decode(i){this.decoder.state==="configured"&&this.decoder.decode(new EncodedVideoChunk(i))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){this.decoder.state!=="closed"&&this.decoder.close()}};function ob(){var i;self.onmessage=t=>{if(t.data.type==="init"){let{canvas:e,wasmScript:r,wasmBinary:o}=t.data,s=e==null?void 0:e.getContext("2d"),n=0,a=0,d={wasmBinary:o,postRun:()=>{i=new d.VideoDecoder({videoInfo(l,p){n=l,a=p,console.log("video info",l,p)},yuvData(l,p){let f=n*a,g=f>>2,y=d.HEAPU32[l>>2],R=d.HEAPU32[1+(l>>2)],C=d.HEAPU32[2+(l>>2)],N=d.HEAPU8.subarray(y,y+f),k=d.HEAPU8.subarray(R,R+g),Q=d.HEAPU8.subarray(C,C+g),H=new Uint8Array(f+g+g);H.set(N),H.set(k,f),H.set(Q,f+g);let Ie=new VideoFrame(H,{codedWidth:n,codedHeight:a,format:"I420",timestamp:p});e?(s==null||s.drawImage(Ie,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:Ie},[Ie])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(d)}else if(t.data.type==="decode"){let{packet:e}=t.data;i==null||i.decode(e.data,e.type=="key",e.timestamp)}else if(t.data.type==="setCodec"){let{codec:e,format:r,description:o}=t.data;i==null||i.setCodec(e,r,o!=null?o:"")}}}Ji([xo([tr.INIT,"closed"],"initialized")],Wn.prototype,"initialize",1),Ji([xo("initialized","configured",{sync:!0})],Wn.prototype,"configure",1),Ji([rb("configured")],Wn.prototype,"decode",1),Ji([xo([],tr.INIT,{sync:!0})],Wn.prototype,"reset",1),Ji([xo([],"closed",{ignoreError:!0,sync:!0})],Wn.prototype,"close",1);var yc=class extends tr{constructor(i,t,e=!1,r,o=!1){super(),this.createModule=i,this.wasmBinary=t,this.workerMode=e,this.canvas=r,this.yuvMode=o,tt(this,"worker"),tt(this,"decoder"),tt(this,"config"),tt(this,"module",{}),tt(this,"width",0),tt(this,"height",0)}initialize(i){return A(this,null,function*(){var t;if(this.workerMode){let r=new RegExp("\\{(.+)\\}","s").exec(ob.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([r],{type:"text/javascript"})));let o=(t=this.canvas)==null?void 0:t.transferControlToOffscreen(),s=yield this.wasmBinary;return console.warn("worker mode",s),this.worker.postMessage({type:"init",canvas:o,wasmScript:this.createModule.toString(),wasmBinary:s},o?[o,s]:[s]),new Promise(n=>{this.worker.onmessage=a=>{if(a.data.type==="ready")delete this.wasmBinary,n(),console.warn("worker mode initialize success");else if(a.data.type==="yuvData"){let{videoFrame:d}=a.data;this.emit("videoFrame",d)}}})}let e=this.module;return this.wasmBinary&&(e.wasmBinary=yield this.wasmBinary),e.print=r=>console.log(r),e.printErr=r=>console.log(`[JS] ERROR: ${r}`),e.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise(r=>{e.postRun=o=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),r()},i&&Object.assign(e,i),this.createModule(e)})})}configure(i){var t,e,r;this.config=i;let o=this.config.codec.startsWith("avc")?"avc":"hevc",s=this.config.description?o=="avc"?"avcc":"hvcc":"annexb";(e=this.decoder)==null||e.setCodec(o,s,(t=this.config.description)!=null?t:""),(r=this.worker)==null||r.postMessage({type:"setCodec",codec:o,format:s,description:this.config.description})}decode(i){var t,e;(t=this.decoder)==null||t.decode(i.data,i.type=="key",i.timestamp),this.state==="configured"&&((e=this.worker)==null||e.postMessage({type:"decode",packet:i}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(i,t){this.width=i,this.height=t;let e={width:i,height:t};this.emit("videoCodecInfo",e)}yuvData(i,t){if(!this.module)return;let e=this.width*this.height,r=e>>2,o=this.module.HEAPU32[i>>2],s=this.module.HEAPU32[1+(i>>2)],n=this.module.HEAPU32[2+(i>>2)],a=this.module.HEAPU8.subarray(o,o+e),d=this.module.HEAPU8.subarray(s,s+r),l=this.module.HEAPU8.subarray(n,n+r);if(this.yuvMode)return void this.emit("videoFrame",{y:a,u:d,v:l,timestamp:t});let p=new Uint8Array(e+r+r);p.set(a),p.set(d,e),p.set(l,e+r),this.emit("videoFrame",new VideoFrame(p,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:t}))}errorInfo(i){let t={errMsg:i};this.emit("error",t)}};Ji([xo([tr.INIT,"closed"],"initialized")],yc.prototype,"initialize",1),Ji([xo("initialized","configured",{sync:!0})],yc.prototype,"configure",1),Ji([xo([],tr.INIT,{sync:!0})],yc.prototype,"reset",1),Ji([xo([],"closed",{sync:!0})],yc.prototype,"close",1);var sb=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((c,u)=>{e=c,r=u});var s,n,a,d=Object.assign({},o),l="./this.program",p=typeof window=="object",f=typeof importScripts=="function",g=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(p||f)&&(f?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),i&&(g=i),g=g.indexOf("blob:")!==0?g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):"",s=c=>{var u=new XMLHttpRequest;return u.open("GET",c,!1),u.send(null),u.responseText},f&&(a=c=>{var u=new XMLHttpRequest;return u.open("GET",c,!1),u.responseType="arraybuffer",u.send(null),new Uint8Array(u.response)}),n=(c,u,h)=>{var E=new XMLHttpRequest;E.open("GET",c,!0),E.responseType="arraybuffer",E.onload=()=>{E.status==200||E.status==0&&E.response?u(E.response):h()},E.onerror=h,E.send(null)});var y,R=o.print||console.log.bind(console),C=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&&(y=o.wasmBinary);var N,k;o.noExitRuntime,typeof WebAssembly!="object"&&Zr("no native wasm support detected");var Q,H,Ie,Je,W,Ue,Yn,Zn,Kn,ea=!1,Yr=[],Hs=[],Ki=[],Ir=0,_i=null,Ti=null;function ie(c){Ir++,o.monitorRunDependencies&&o.monitorRunDependencies(Ir)}function Ho(c){if(Ir--,o.monitorRunDependencies&&o.monitorRunDependencies(Ir),Ir==0&&(_i!==null&&(clearInterval(_i),_i=null),Ti)){var u=Ti;Ti=null,u()}}function Zr(c){o.onAbort&&o.onAbort(c),C(c="Aborted("+c+")"),ea=!0,c+=". Build with -sASSERTIONS for more info.";var u=new WebAssembly.RuntimeError(c);throw r(u),u}var Ii,ta,Se,rt;function Gt(c){return c.startsWith("data:application/octet-stream;base64,")}function X(c){if(c==Ii&&y)return new Uint8Array(y);if(a)return a(c);throw"both async and sync fetching of the wasm failed"}function Kr(c,u,h){return function(E){return y||!p&&!f||typeof fetch!="function"?Promise.resolve().then(()=>X(E)):fetch(E,{credentials:"same-origin"}).then(I=>{if(!I.ok)throw"failed to load wasm binary file at '"+E+"'";return I.arrayBuffer()}).catch(()=>X(E))}(c).then(E=>WebAssembly.instantiate(E,u)).then(E=>E).then(h,E=>{C("failed to asynchronously prepare wasm: "+E),Zr(E)})}Gt(Ii="videodec.wasm")||(ta=Ii,Ii=o.locateFile?o.locateFile(ta,g):g+ta);var eo=c=>{for(;c.length>0;)c.shift()(o)};function to(c){this.excPtr=c,this.ptr=c-24,this.set_type=function(u){Ue[this.ptr+4>>2]=u},this.get_type=function(){return Ue[this.ptr+4>>2]},this.set_destructor=function(u){Ue[this.ptr+8>>2]=u},this.get_destructor=function(){return Ue[this.ptr+8>>2]},this.set_caught=function(u){u=u?1:0,Q[this.ptr+12|0]=u},this.get_caught=function(){return Q[this.ptr+12|0]!=0},this.set_rethrown=function(u){u=u?1:0,Q[this.ptr+13|0]=u},this.get_rethrown=function(){return Q[this.ptr+13|0]!=0},this.init=function(u,h){this.set_adjusted_ptr(0),this.set_type(u),this.set_destructor(h)},this.set_adjusted_ptr=function(u){Ue[this.ptr+16>>2]=u},this.get_adjusted_ptr=function(){return Ue[this.ptr+16>>2]},this.get_exception_ptr=function(){if(da(this.get_type()))return Ue[this.excPtr>>2];var u=this.get_adjusted_ptr();return u!==0?u:this.excPtr}}var me={isAbs:c=>c.charAt(0)==="/",splitPath:c=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(c).slice(1),normalizeArray:(c,u)=>{for(var h=0,E=c.length-1;E>=0;E--){var I=c[E];I==="."?c.splice(E,1):I===".."?(c.splice(E,1),h++):h&&(c.splice(E,1),h--)}if(u)for(;h;h--)c.unshift("..");return c},normalize:c=>{var u=me.isAbs(c),h=c.substr(-1)==="/";return(c=me.normalizeArray(c.split("/").filter(E=>!!E),!u).join("/"))||u||(c="."),c&&h&&(c+="/"),(u?"/":"")+c},dirname:c=>{var u=me.splitPath(c),h=u[0],E=u[1];return h||E?(E&&(E=E.substr(0,E.length-1)),h+E):"."},basename:c=>{if(c==="/")return"/";var u=(c=(c=me.normalize(c)).replace(/\/$/,"")).lastIndexOf("/");return u===-1?c:c.substr(u+1)},join:function(){var c=Array.prototype.slice.call(arguments);return me.normalize(c.join("/"))},join2:(c,u)=>me.normalize(c+"/"+u)},ra=c=>(ra=(()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return u=>crypto.getRandomValues(u);Zr("initRandomDevice")})())(c),rr={resolve:function(){for(var c="",u=!1,h=arguments.length-1;h>=-1&&!u;h--){var E=h>=0?arguments[h]:_.cwd();if(typeof E!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!E)return"";c=E+"/"+c,u=me.isAbs(E)}return(u?"/":"")+(c=me.normalizeArray(c.split("/").filter(I=>!!I),!u).join("/"))||"."},relative:(c,u)=>{function h(L){for(var te=0;te<L.length&&L[te]==="";te++);for(var ce=L.length-1;ce>=0&&L[ce]==="";ce--);return te>ce?[]:L.slice(te,ce-te+1)}c=rr.resolve(c).substr(1),u=rr.resolve(u).substr(1);for(var E=h(c.split("/")),I=h(u.split("/")),b=Math.min(E.length,I.length),v=b,D=0;D<b;D++)if(E[D]!==I[D]){v=D;break}var V=[];for(D=v;D<E.length;D++)V.push("..");return(V=V.concat(I.slice(v))).join("/")}},ro=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,jt=(c,u,h)=>{for(var E=u+h,I=u;c[I]&&!(I>=E);)++I;if(I-u>16&&c.buffer&&ro)return ro.decode(c.subarray(u,I));for(var b="";u<I;){var v=c[u++];if(128&v){var D=63&c[u++];if((224&v)!=192){var V=63&c[u++];if((v=(240&v)==224?(15&v)<<12|D<<6|V:(7&v)<<18|D<<12|V<<6|63&c[u++])<65536)b+=String.fromCharCode(v);else{var L=v-65536;b+=String.fromCharCode(55296|L>>10,56320|1023&L)}}else b+=String.fromCharCode((31&v)<<6|D)}else b+=String.fromCharCode(v)}return b},ia=[],Wo=c=>{for(var u=0,h=0;h<c.length;++h){var E=c.charCodeAt(h);E<=127?u++:E<=2047?u+=2:E>=55296&&E<=57343?(u+=4,++h):u+=3}return u},Go=(c,u,h,E)=>{if(!(E>0))return 0;for(var I=h,b=h+E-1,v=0;v<c.length;++v){var D=c.charCodeAt(v);if(D>=55296&&D<=57343&&(D=65536+((1023&D)<<10)|1023&c.charCodeAt(++v)),D<=127){if(h>=b)break;u[h++]=D}else if(D<=2047){if(h+1>=b)break;u[h++]=192|D>>6,u[h++]=128|63&D}else if(D<=65535){if(h+2>=b)break;u[h++]=224|D>>12,u[h++]=128|D>>6&63,u[h++]=128|63&D}else{if(h+3>=b)break;u[h++]=240|D>>18,u[h++]=128|D>>12&63,u[h++]=128|D>>6&63,u[h++]=128|63&D}}return u[h]=0,h-I};function Ws(c,u,h){var E=h>0?h:Wo(c)+1,I=new Array(E),b=Go(c,I,0,I.length);return u&&(I.length=b),I}var Mr={ttys:[],init:function(){},shutdown:function(){},register:function(c,u){Mr.ttys[c]={input:[],output:[],ops:u},_.registerDevice(c,Mr.stream_ops)},stream_ops:{open:function(c){var u=Mr.ttys[c.node.rdev];if(!u)throw new _.ErrnoError(43);c.tty=u,c.seekable=!1},close:function(c){c.tty.ops.fsync(c.tty)},fsync:function(c){c.tty.ops.fsync(c.tty)},read:function(c,u,h,E,I){if(!c.tty||!c.tty.ops.get_char)throw new _.ErrnoError(60);for(var b=0,v=0;v<E;v++){var D;try{D=c.tty.ops.get_char(c.tty)}catch(V){throw new _.ErrnoError(29)}if(D===void 0&&b===0)throw new _.ErrnoError(6);if(D==null)break;b++,u[h+v]=D}return b&&(c.node.timestamp=Date.now()),b},write:function(c,u,h,E,I){if(!c.tty||!c.tty.ops.put_char)throw new _.ErrnoError(60);try{for(var b=0;b<E;b++)c.tty.ops.put_char(c.tty,u[h+b])}catch(v){throw new _.ErrnoError(29)}return E&&(c.node.timestamp=Date.now()),b}},default_tty_ops:{get_char:function(c){return(()=>{if(!ia.length){var u=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(u=window.prompt("Input: "))!==null&&(u+=`
51
51
  `):typeof readline=="function"&&(u=readline())!==null&&(u+=`
52
- `),!u)return null;ia=Ws(u,!0)}return ia.shift()})()},put_char:function(c,u){u===null||u===10?(R(jt(c.output,0)),c.output=[]):u!=0&&c.output.push(u)},fsync:function(c){c.output&&c.output.length>0&&(R(jt(c.output,0)),c.output=[])},ioctl_tcgets:function(c){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(c,u,h){return 0},ioctl_tiocgwinsz:function(c){return[24,80]}},default_tty1_ops:{put_char:function(c,u){u===null||u===10?(C(jt(c.output,0)),c.output=[]):u!=0&&c.output.push(u)},fsync:function(c){c.output&&c.output.length>0&&(C(jt(c.output,0)),c.output=[])}}},oa=c=>{Yr()},ve={ops_table:null,mount:c=>ve.createNode(null,"/",16895,0),createNode(c,u,h,E){if(_.isBlkdev(h)||_.isFIFO(h))throw new _.ErrnoError(63);ve.ops_table||(ve.ops_table={dir:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr,lookup:ve.node_ops.lookup,mknod:ve.node_ops.mknod,rename:ve.node_ops.rename,unlink:ve.node_ops.unlink,rmdir:ve.node_ops.rmdir,readdir:ve.node_ops.readdir,symlink:ve.node_ops.symlink},stream:{llseek:ve.stream_ops.llseek}},file:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr},stream:{llseek:ve.stream_ops.llseek,read:ve.stream_ops.read,write:ve.stream_ops.write,allocate:ve.stream_ops.allocate,mmap:ve.stream_ops.mmap,msync:ve.stream_ops.msync}},link:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr,readlink:ve.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr},stream:_.chrdev_stream_ops}});var I=_.createNode(c,u,h,E);return _.isDir(I.mode)?(I.node_ops=ve.ops_table.dir.node,I.stream_ops=ve.ops_table.dir.stream,I.contents={}):_.isFile(I.mode)?(I.node_ops=ve.ops_table.file.node,I.stream_ops=ve.ops_table.file.stream,I.usedBytes=0,I.contents=null):_.isLink(I.mode)?(I.node_ops=ve.ops_table.link.node,I.stream_ops=ve.ops_table.link.stream):_.isChrdev(I.mode)&&(I.node_ops=ve.ops_table.chrdev.node,I.stream_ops=ve.ops_table.chrdev.stream),I.timestamp=Date.now(),c&&(c.contents[u]=I,c.timestamp=I.timestamp),I},getFileDataAsTypedArray:c=>c.contents?c.contents.subarray?c.contents.subarray(0,c.usedBytes):new Uint8Array(c.contents):new Uint8Array(0),expandFileStorage(c,u){var h=c.contents?c.contents.length:0;if(!(h>=u)){u=Math.max(u,h*(h<1048576?2:1.125)>>>0),h!=0&&(u=Math.max(u,256));var E=c.contents;c.contents=new Uint8Array(u),c.usedBytes>0&&c.contents.set(E.subarray(0,c.usedBytes),0)}},resizeFileStorage(c,u){if(c.usedBytes!=u)if(u==0)c.contents=null,c.usedBytes=0;else{var h=c.contents;c.contents=new Uint8Array(u),h&&c.contents.set(h.subarray(0,Math.min(u,c.usedBytes))),c.usedBytes=u}},node_ops:{getattr(c){var u={};return u.dev=_.isChrdev(c.mode)?c.id:1,u.ino=c.id,u.mode=c.mode,u.nlink=1,u.uid=0,u.gid=0,u.rdev=c.rdev,_.isDir(c.mode)?u.size=4096:_.isFile(c.mode)?u.size=c.usedBytes:_.isLink(c.mode)?u.size=c.link.length:u.size=0,u.atime=new Date(c.timestamp),u.mtime=new Date(c.timestamp),u.ctime=new Date(c.timestamp),u.blksize=4096,u.blocks=Math.ceil(u.size/u.blksize),u},setattr(c,u){u.mode!==void 0&&(c.mode=u.mode),u.timestamp!==void 0&&(c.timestamp=u.timestamp),u.size!==void 0&&ve.resizeFileStorage(c,u.size)},lookup(c,u){throw _.genericErrors[44]},mknod:(c,u,h,E)=>ve.createNode(c,u,h,E),rename(c,u,h){if(_.isDir(c.mode)){var E;try{E=_.lookupNode(u,h)}catch(b){}if(E)for(var I in E.contents)throw new _.ErrnoError(55)}delete c.parent.contents[c.name],c.parent.timestamp=Date.now(),c.name=h,u.contents[h]=c,u.timestamp=c.parent.timestamp,c.parent=u},unlink(c,u){delete c.contents[u],c.timestamp=Date.now()},rmdir(c,u){var h=_.lookupNode(c,u);for(var E in h.contents)throw new _.ErrnoError(55);delete c.contents[u],c.timestamp=Date.now()},readdir(c){var u=[".",".."];for(var h in c.contents)c.contents.hasOwnProperty(h)&&u.push(h);return u},symlink(c,u,h){var E=ve.createNode(c,u,41471,0);return E.link=h,E},readlink(c){if(!_.isLink(c.mode))throw new _.ErrnoError(28);return c.link}},stream_ops:{read(c,u,h,E,I){var b=c.node.contents;if(I>=c.node.usedBytes)return 0;var v=Math.min(c.node.usedBytes-I,E);if(v>8&&b.subarray)u.set(b.subarray(I,I+v),h);else for(var D=0;D<v;D++)u[h+D]=b[I+D];return v},write(c,u,h,E,I,b){if(!E)return 0;var v=c.node;if(v.timestamp=Date.now(),u.subarray&&(!v.contents||v.contents.subarray)){if(b)return v.contents=u.subarray(h,h+E),v.usedBytes=E,E;if(v.usedBytes===0&&I===0)return v.contents=u.slice(h,h+E),v.usedBytes=E,E;if(I+E<=v.usedBytes)return v.contents.set(u.subarray(h,h+E),I),E}if(ve.expandFileStorage(v,I+E),v.contents.subarray&&u.subarray)v.contents.set(u.subarray(h,h+E),I);else for(var D=0;D<E;D++)v.contents[I+D]=u[h+D];return v.usedBytes=Math.max(v.usedBytes,I+E),E},llseek(c,u,h){var E=u;if(h===1?E+=c.position:h===2&&_.isFile(c.node.mode)&&(E+=c.node.usedBytes),E<0)throw new _.ErrnoError(28);return E},allocate(c,u,h){ve.expandFileStorage(c.node,u+h),c.node.usedBytes=Math.max(c.node.usedBytes,u+h)},mmap(c,u,h,E,I){if(!_.isFile(c.node.mode))throw new _.ErrnoError(43);var b,v,D=c.node.contents;if(2&I||D.buffer!==Q.buffer){if((h>0||h+u<D.length)&&(D=D.subarray?D.subarray(h,h+u):Array.prototype.slice.call(D,h,h+u)),v=!0,!(b=oa()))throw new _.ErrnoError(48);Q.set(D,b)}else v=!1,b=D.byteOffset;return{ptr:b,allocated:v}},msync:(c,u,h,E,I)=>(ve.stream_ops.write(c,u,0,E,h,!1),0)}},ql=(c,u,h,E)=>{var I=E?"":`al ${c}`;n(c,b=>{var v;v=`Loading data file "${c}" failed (no arrayBuffer).`,b||Yr(v),u(new Uint8Array(b)),I&&Ho()},b=>{if(!h)throw`Loading data file "${c}" failed.`;h()}),I&&ie()},le=o.preloadPlugins||[];function Ii(c,u){var h=0;return c&&(h|=365),u&&(h|=146),h}var _={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(c,u={})=>{if(!(c=rr.resolve(c)))return{path:"",node:null};if((u=Object.assign({follow_mount:!0,recurse_count:0},u)).recurse_count>8)throw new _.ErrnoError(32);for(var h=c.split("/").filter(L=>!!L),E=_.root,I="/",b=0;b<h.length;b++){var v=b===h.length-1;if(v&&u.parent)break;if(E=_.lookupNode(E,h[b]),I=me.join2(I,h[b]),_.isMountpoint(E)&&(!v||v&&u.follow_mount)&&(E=E.mounted.root),!v||u.follow)for(var D=0;_.isLink(E.mode);){var V=_.readlink(I);if(I=rr.resolve(me.dirname(I),V),E=_.lookupPath(I,{recurse_count:u.recurse_count+1}).node,D++>40)throw new _.ErrnoError(32)}}return{path:I,node:E}},getPath:c=>{for(var u;;){if(_.isRoot(c)){var h=c.mount.mountpoint;return u?h[h.length-1]!=="/"?`${h}/${u}`:h+u:h}u=u?`${c.name}/${u}`:c.name,c=c.parent}},hashName:(c,u)=>{for(var h=0,E=0;E<u.length;E++)h=(h<<5)-h+u.charCodeAt(E)|0;return(c+h>>>0)%_.nameTable.length},hashAddNode:c=>{var u=_.hashName(c.parent.id,c.name);c.name_next=_.nameTable[u],_.nameTable[u]=c},hashRemoveNode:c=>{var u=_.hashName(c.parent.id,c.name);if(_.nameTable[u]===c)_.nameTable[u]=c.name_next;else for(var h=_.nameTable[u];h;){if(h.name_next===c){h.name_next=c.name_next;break}h=h.name_next}},lookupNode:(c,u)=>{var h=_.mayLookup(c);if(h)throw new _.ErrnoError(h,c);for(var E=_.hashName(c.id,u),I=_.nameTable[E];I;I=I.name_next){var b=I.name;if(I.parent.id===c.id&&b===u)return I}return _.lookup(c,u)},createNode:(c,u,h,E)=>{var I=new _.FSNode(c,u,h,E);return _.hashAddNode(I),I},destroyNode:c=>{_.hashRemoveNode(c)},isRoot:c=>c===c.parent,isMountpoint:c=>!!c.mounted,isFile:c=>(61440&c)==32768,isDir:c=>(61440&c)==16384,isLink:c=>(61440&c)==40960,isChrdev:c=>(61440&c)==8192,isBlkdev:c=>(61440&c)==24576,isFIFO:c=>(61440&c)==4096,isSocket:c=>!(49152&~c),flagsToPermissionString:c=>{var u=["r","w","rw"][3&c];return 512&c&&(u+="w"),u},nodePermissions:(c,u)=>_.ignorePermissions||(!u.includes("r")||292&c.mode)&&(!u.includes("w")||146&c.mode)&&(!u.includes("x")||73&c.mode)?0:2,mayLookup:c=>{var u=_.nodePermissions(c,"x");return u||(c.node_ops.lookup?0:2)},mayCreate:(c,u)=>{try{return _.lookupNode(c,u),20}catch(h){}return _.nodePermissions(c,"wx")},mayDelete:(c,u,h)=>{var E;try{E=_.lookupNode(c,u)}catch(b){return b.errno}var I=_.nodePermissions(c,"wx");if(I)return I;if(h){if(!_.isDir(E.mode))return 54;if(_.isRoot(E)||_.getPath(E)===_.cwd())return 10}else if(_.isDir(E.mode))return 31;return 0},mayOpen:(c,u)=>c?_.isLink(c.mode)?32:_.isDir(c.mode)&&(_.flagsToPermissionString(u)!=="r"||512&u)?31:_.nodePermissions(c,_.flagsToPermissionString(u)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var c=0;c<=_.MAX_OPEN_FDS;c++)if(!_.streams[c])return c;throw new _.ErrnoError(33)},getStreamChecked:c=>{var u=_.getStream(c);if(!u)throw new _.ErrnoError(8);return u},getStream:c=>_.streams[c],createStream:(c,u=-1)=>(_.FSStream||(_.FSStream=function(){this.shared={}},_.FSStream.prototype={},Object.defineProperties(_.FSStream.prototype,{object:{get(){return this.node},set(h){this.node=h}},isRead:{get(){return(2097155&this.flags)!=1}},isWrite:{get(){return!!(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(h){this.shared.flags=h}},position:{get(){return this.shared.position},set(h){this.shared.position=h}}})),c=Object.assign(new _.FSStream,c),u==-1&&(u=_.nextfd()),c.fd=u,_.streams[u]=c,c),closeStream:c=>{_.streams[c]=null},chrdev_stream_ops:{open:c=>{var u=_.getDevice(c.node.rdev);c.stream_ops=u.stream_ops,c.stream_ops.open&&c.stream_ops.open(c)},llseek:()=>{throw new _.ErrnoError(70)}},major:c=>c>>8,minor:c=>255&c,makedev:(c,u)=>c<<8|u,registerDevice:(c,u)=>{_.devices[c]={stream_ops:u}},getDevice:c=>_.devices[c],getMounts:c=>{for(var u=[],h=[c];h.length;){var E=h.pop();u.push(E),h.push.apply(h,E.mounts)}return u},syncfs:(c,u)=>{typeof c=="function"&&(u=c,c=!1),_.syncFSRequests++,_.syncFSRequests>1&&C(`warning: ${_.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var h=_.getMounts(_.root.mount),E=0;function I(v){return _.syncFSRequests--,u(v)}function b(v){if(v)return b.errored?void 0:(b.errored=!0,I(v));++E>=h.length&&I(null)}h.forEach(v=>{if(!v.type.syncfs)return b(null);v.type.syncfs(v,c,b)})},mount:(c,u,h)=>{var E,I=h==="/",b=!h;if(I&&_.root)throw new _.ErrnoError(10);if(!I&&!b){var v=_.lookupPath(h,{follow_mount:!1});if(h=v.path,E=v.node,_.isMountpoint(E))throw new _.ErrnoError(10);if(!_.isDir(E.mode))throw new _.ErrnoError(54)}var D={type:c,opts:u,mountpoint:h,mounts:[]},V=c.mount(D);return V.mount=D,D.root=V,I?_.root=V:E&&(E.mounted=D,E.mount&&E.mount.mounts.push(D)),V},unmount:c=>{var u=_.lookupPath(c,{follow_mount:!1});if(!_.isMountpoint(u.node))throw new _.ErrnoError(28);var h=u.node,E=h.mounted,I=_.getMounts(E);Object.keys(_.nameTable).forEach(v=>{for(var D=_.nameTable[v];D;){var V=D.name_next;I.includes(D.mount)&&_.destroyNode(D),D=V}}),h.mounted=null;var b=h.mount.mounts.indexOf(E);h.mount.mounts.splice(b,1)},lookup:(c,u)=>c.node_ops.lookup(c,u),mknod:(c,u,h)=>{var E=_.lookupPath(c,{parent:!0}).node,I=me.basename(c);if(!I||I==="."||I==="..")throw new _.ErrnoError(28);var b=_.mayCreate(E,I);if(b)throw new _.ErrnoError(b);if(!E.node_ops.mknod)throw new _.ErrnoError(63);return E.node_ops.mknod(E,I,u,h)},create:(c,u)=>(u=u!==void 0?u:438,u&=4095,u|=32768,_.mknod(c,u,0)),mkdir:(c,u)=>(u=u!==void 0?u:511,u&=1023,u|=16384,_.mknod(c,u,0)),mkdirTree:(c,u)=>{for(var h=c.split("/"),E="",I=0;I<h.length;++I)if(h[I]){E+="/"+h[I];try{_.mkdir(E,u)}catch(b){if(b.errno!=20)throw b}}},mkdev:(c,u,h)=>(h===void 0&&(h=u,u=438),u|=8192,_.mknod(c,u,h)),symlink:(c,u)=>{if(!rr.resolve(c))throw new _.ErrnoError(44);var h=_.lookupPath(u,{parent:!0}).node;if(!h)throw new _.ErrnoError(44);var E=me.basename(u),I=_.mayCreate(h,E);if(I)throw new _.ErrnoError(I);if(!h.node_ops.symlink)throw new _.ErrnoError(63);return h.node_ops.symlink(h,E,c)},rename:(c,u)=>{var h,E,I=me.dirname(c),b=me.dirname(u),v=me.basename(c),D=me.basename(u);if(h=_.lookupPath(c,{parent:!0}).node,E=_.lookupPath(u,{parent:!0}).node,!h||!E)throw new _.ErrnoError(44);if(h.mount!==E.mount)throw new _.ErrnoError(75);var V,L=_.lookupNode(h,v),te=rr.relative(c,b);if(te.charAt(0)!==".")throw new _.ErrnoError(28);if((te=rr.relative(u,I)).charAt(0)!==".")throw new _.ErrnoError(55);try{V=_.lookupNode(E,D)}catch(ne){}if(L!==V){var ce=_.isDir(L.mode),de=_.mayDelete(h,v,ce);if(de)throw new _.ErrnoError(de);if(de=V?_.mayDelete(E,D,ce):_.mayCreate(E,D))throw new _.ErrnoError(de);if(!h.node_ops.rename)throw new _.ErrnoError(63);if(_.isMountpoint(L)||V&&_.isMountpoint(V))throw new _.ErrnoError(10);if(E!==h&&(de=_.nodePermissions(h,"w")))throw new _.ErrnoError(de);_.hashRemoveNode(L);try{h.node_ops.rename(L,E,D)}catch(ne){throw ne}finally{_.hashAddNode(L)}}},rmdir:c=>{var u=_.lookupPath(c,{parent:!0}).node,h=me.basename(c),E=_.lookupNode(u,h),I=_.mayDelete(u,h,!0);if(I)throw new _.ErrnoError(I);if(!u.node_ops.rmdir)throw new _.ErrnoError(63);if(_.isMountpoint(E))throw new _.ErrnoError(10);u.node_ops.rmdir(u,h),_.destroyNode(E)},readdir:c=>{var u=_.lookupPath(c,{follow:!0}).node;if(!u.node_ops.readdir)throw new _.ErrnoError(54);return u.node_ops.readdir(u)},unlink:c=>{var u=_.lookupPath(c,{parent:!0}).node;if(!u)throw new _.ErrnoError(44);var h=me.basename(c),E=_.lookupNode(u,h),I=_.mayDelete(u,h,!1);if(I)throw new _.ErrnoError(I);if(!u.node_ops.unlink)throw new _.ErrnoError(63);if(_.isMountpoint(E))throw new _.ErrnoError(10);u.node_ops.unlink(u,h),_.destroyNode(E)},readlink:c=>{var u=_.lookupPath(c).node;if(!u)throw new _.ErrnoError(44);if(!u.node_ops.readlink)throw new _.ErrnoError(28);return rr.resolve(_.getPath(u.parent),u.node_ops.readlink(u))},stat:(c,u)=>{var h=_.lookupPath(c,{follow:!u}).node;if(!h)throw new _.ErrnoError(44);if(!h.node_ops.getattr)throw new _.ErrnoError(63);return h.node_ops.getattr(h)},lstat:c=>_.stat(c,!0),chmod:(c,u,h)=>{var E;if(typeof c=="string"?E=_.lookupPath(c,{follow:!h}).node:E=c,!E.node_ops.setattr)throw new _.ErrnoError(63);E.node_ops.setattr(E,{mode:4095&u|-4096&E.mode,timestamp:Date.now()})},lchmod:(c,u)=>{_.chmod(c,u,!0)},fchmod:(c,u)=>{var h=_.getStreamChecked(c);_.chmod(h.node,u)},chown:(c,u,h,E)=>{var I;if(typeof c=="string"?I=_.lookupPath(c,{follow:!E}).node:I=c,!I.node_ops.setattr)throw new _.ErrnoError(63);I.node_ops.setattr(I,{timestamp:Date.now()})},lchown:(c,u,h)=>{_.chown(c,u,h,!0)},fchown:(c,u,h)=>{var E=_.getStreamChecked(c);_.chown(E.node,u,h)},truncate:(c,u)=>{if(u<0)throw new _.ErrnoError(28);var h;if(typeof c=="string"?h=_.lookupPath(c,{follow:!0}).node:h=c,!h.node_ops.setattr)throw new _.ErrnoError(63);if(_.isDir(h.mode))throw new _.ErrnoError(31);if(!_.isFile(h.mode))throw new _.ErrnoError(28);var E=_.nodePermissions(h,"w");if(E)throw new _.ErrnoError(E);h.node_ops.setattr(h,{size:u,timestamp:Date.now()})},ftruncate:(c,u)=>{var h=_.getStreamChecked(c);if(!(2097155&h.flags))throw new _.ErrnoError(28);_.truncate(h.node,u)},utime:(c,u,h)=>{var E=_.lookupPath(c,{follow:!0}).node;E.node_ops.setattr(E,{timestamp:Math.max(u,h)})},open:(c,u,h)=>{if(c==="")throw new _.ErrnoError(44);var E;if(h=h===void 0?438:h,h=64&(u=typeof u=="string"?function(D){var V={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[D];if(V===void 0)throw new Error(`Unknown file open mode: ${D}`);return V}(u):u)?4095&h|32768:0,typeof c=="object")E=c;else{c=me.normalize(c);try{E=_.lookupPath(c,{follow:!(131072&u)}).node}catch(D){}}var I=!1;if(64&u)if(E){if(128&u)throw new _.ErrnoError(20)}else E=_.mknod(c,h,0),I=!0;if(!E)throw new _.ErrnoError(44);if(_.isChrdev(E.mode)&&(u&=-513),65536&u&&!_.isDir(E.mode))throw new _.ErrnoError(54);if(!I){var b=_.mayOpen(E,u);if(b)throw new _.ErrnoError(b)}512&u&&!I&&_.truncate(E,0),u&=-131713;var v=_.createStream({node:E,path:_.getPath(E),flags:u,seekable:!0,position:0,stream_ops:E.stream_ops,ungotten:[],error:!1});return v.stream_ops.open&&v.stream_ops.open(v),!o.logReadFiles||1&u||(_.readFiles||(_.readFiles={}),c in _.readFiles||(_.readFiles[c]=1)),v},close:c=>{if(_.isClosed(c))throw new _.ErrnoError(8);c.getdents&&(c.getdents=null);try{c.stream_ops.close&&c.stream_ops.close(c)}catch(u){throw u}finally{_.closeStream(c.fd)}c.fd=null},isClosed:c=>c.fd===null,llseek:(c,u,h)=>{if(_.isClosed(c))throw new _.ErrnoError(8);if(!c.seekable||!c.stream_ops.llseek)throw new _.ErrnoError(70);if(h!=0&&h!=1&&h!=2)throw new _.ErrnoError(28);return c.position=c.stream_ops.llseek(c,u,h),c.ungotten=[],c.position},read:(c,u,h,E,I)=>{if(E<0||I<0)throw new _.ErrnoError(28);if(_.isClosed(c))throw new _.ErrnoError(8);if((2097155&c.flags)==1)throw new _.ErrnoError(8);if(_.isDir(c.node.mode))throw new _.ErrnoError(31);if(!c.stream_ops.read)throw new _.ErrnoError(28);var b=I!==void 0;if(b){if(!c.seekable)throw new _.ErrnoError(70)}else I=c.position;var v=c.stream_ops.read(c,u,h,E,I);return b||(c.position+=v),v},write:(c,u,h,E,I,b)=>{if(E<0||I<0)throw new _.ErrnoError(28);if(_.isClosed(c))throw new _.ErrnoError(8);if(!(2097155&c.flags))throw new _.ErrnoError(8);if(_.isDir(c.node.mode))throw new _.ErrnoError(31);if(!c.stream_ops.write)throw new _.ErrnoError(28);c.seekable&&1024&c.flags&&_.llseek(c,0,2);var v=I!==void 0;if(v){if(!c.seekable)throw new _.ErrnoError(70)}else I=c.position;var D=c.stream_ops.write(c,u,h,E,I,b);return v||(c.position+=D),D},allocate:(c,u,h)=>{if(_.isClosed(c))throw new _.ErrnoError(8);if(u<0||h<=0)throw new _.ErrnoError(28);if(!(2097155&c.flags))throw new _.ErrnoError(8);if(!_.isFile(c.node.mode)&&!_.isDir(c.node.mode))throw new _.ErrnoError(43);if(!c.stream_ops.allocate)throw new _.ErrnoError(138);c.stream_ops.allocate(c,u,h)},mmap:(c,u,h,E,I)=>{if(2&E&&!(2&I)&&(2097155&c.flags)!=2)throw new _.ErrnoError(2);if((2097155&c.flags)==1)throw new _.ErrnoError(2);if(!c.stream_ops.mmap)throw new _.ErrnoError(43);return c.stream_ops.mmap(c,u,h,E,I)},msync:(c,u,h,E,I)=>c.stream_ops.msync?c.stream_ops.msync(c,u,h,E,I):0,munmap:c=>0,ioctl:(c,u,h)=>{if(!c.stream_ops.ioctl)throw new _.ErrnoError(59);return c.stream_ops.ioctl(c,u,h)},readFile:(c,u={})=>{if(u.flags=u.flags||0,u.encoding=u.encoding||"binary",u.encoding!=="utf8"&&u.encoding!=="binary")throw new Error(`Invalid encoding type "${u.encoding}"`);var h,E=_.open(c,u.flags),I=_.stat(c).size,b=new Uint8Array(I);return _.read(E,b,0,I,0),u.encoding==="utf8"?h=jt(b,0):u.encoding==="binary"&&(h=b),_.close(E),h},writeFile:(c,u,h={})=>{h.flags=h.flags||577;var E=_.open(c,h.flags,h.mode);if(typeof u=="string"){var I=new Uint8Array(Wo(u)+1),b=Go(u,I,0,I.length);_.write(E,I,0,b,void 0,h.canOwn)}else{if(!ArrayBuffer.isView(u))throw new Error("Unsupported data type");_.write(E,u,0,u.byteLength,void 0,h.canOwn)}_.close(E)},cwd:()=>_.currentPath,chdir:c=>{var u=_.lookupPath(c,{follow:!0});if(u.node===null)throw new _.ErrnoError(44);if(!_.isDir(u.node.mode))throw new _.ErrnoError(54);var h=_.nodePermissions(u.node,"x");if(h)throw new _.ErrnoError(h);_.currentPath=u.path},createDefaultDirectories:()=>{_.mkdir("/tmp"),_.mkdir("/home"),_.mkdir("/home/web_user")},createDefaultDevices:()=>{_.mkdir("/dev"),_.registerDevice(_.makedev(1,3),{read:()=>0,write:(E,I,b,v,D)=>v}),_.mkdev("/dev/null",_.makedev(1,3)),Mr.register(_.makedev(5,0),Mr.default_tty_ops),Mr.register(_.makedev(6,0),Mr.default_tty1_ops),_.mkdev("/dev/tty",_.makedev(5,0)),_.mkdev("/dev/tty1",_.makedev(6,0));var c=new Uint8Array(1024),u=0,h=()=>(u===0&&(u=ra(c).byteLength),c[--u]);_.createDevice("/dev","random",h),_.createDevice("/dev","urandom",h),_.mkdir("/dev/shm"),_.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{_.mkdir("/proc");var c=_.mkdir("/proc/self");_.mkdir("/proc/self/fd"),_.mount({mount:()=>{var u=_.createNode(c,"fd",16895,73);return u.node_ops={lookup:(h,E)=>{var I=+E,b=_.getStreamChecked(I),v={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>b.path}};return v.parent=v,v}},u}},{},"/proc/self/fd")},createStandardStreams:()=>{o.stdin?_.createDevice("/dev","stdin",o.stdin):_.symlink("/dev/tty","/dev/stdin"),o.stdout?_.createDevice("/dev","stdout",null,o.stdout):_.symlink("/dev/tty","/dev/stdout"),o.stderr?_.createDevice("/dev","stderr",null,o.stderr):_.symlink("/dev/tty1","/dev/stderr"),_.open("/dev/stdin",0),_.open("/dev/stdout",1),_.open("/dev/stderr",1)},ensureErrnoError:()=>{_.ErrnoError||(_.ErrnoError=function(c,u){this.name="ErrnoError",this.node=u,this.setErrno=function(h){this.errno=h},this.setErrno(c),this.message="FS error"},_.ErrnoError.prototype=new Error,_.ErrnoError.prototype.constructor=_.ErrnoError,[44].forEach(c=>{_.genericErrors[c]=new _.ErrnoError(c),_.genericErrors[c].stack="<generic error, no stack>"}))},staticInit:()=>{_.ensureErrnoError(),_.nameTable=new Array(4096),_.mount(ve,{},"/"),_.createDefaultDirectories(),_.createDefaultDevices(),_.createSpecialDirectories(),_.filesystems={MEMFS:ve}},init:(c,u,h)=>{_.init.initialized=!0,_.ensureErrnoError(),o.stdin=c||o.stdin,o.stdout=u||o.stdout,o.stderr=h||o.stderr,_.createStandardStreams()},quit:()=>{_.init.initialized=!1;for(var c=0;c<_.streams.length;c++){var u=_.streams[c];u&&_.close(u)}},findObject:(c,u)=>{var h=_.analyzePath(c,u);return h.exists?h.object:null},analyzePath:(c,u)=>{try{c=(E=_.lookupPath(c,{follow:!u})).path}catch(I){}var h={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var E=_.lookupPath(c,{parent:!0});h.parentExists=!0,h.parentPath=E.path,h.parentObject=E.node,h.name=me.basename(c),E=_.lookupPath(c,{follow:!u}),h.exists=!0,h.path=E.path,h.object=E.node,h.name=E.node.name,h.isRoot=E.path==="/"}catch(I){h.error=I.errno}return h},createPath:(c,u,h,E)=>{c=typeof c=="string"?c:_.getPath(c);for(var I=u.split("/").reverse();I.length;){var b=I.pop();if(b){var v=me.join2(c,b);try{_.mkdir(v)}catch(D){}c=v}}return v},createFile:(c,u,h,E,I)=>{var b=me.join2(typeof c=="string"?c:_.getPath(c),u),v=Ii(E,I);return _.create(b,v)},createDataFile:(c,u,h,E,I,b)=>{var v=u;c&&(c=typeof c=="string"?c:_.getPath(c),v=u?me.join2(c,u):c);var D=Ii(E,I),V=_.create(v,D);if(h){if(typeof h=="string"){for(var L=new Array(h.length),te=0,ce=h.length;te<ce;++te)L[te]=h.charCodeAt(te);h=L}_.chmod(V,146|D);var de=_.open(V,577);_.write(de,h,0,h.length,0,b),_.close(de),_.chmod(V,D)}return V},createDevice:(c,u,h,E)=>{var I=me.join2(typeof c=="string"?c:_.getPath(c),u),b=Ii(!!h,!!E);_.createDevice.major||(_.createDevice.major=64);var v=_.makedev(_.createDevice.major++,0);return _.registerDevice(v,{open:D=>{D.seekable=!1},close:D=>{E&&E.buffer&&E.buffer.length&&E(10)},read:(D,V,L,te,ce)=>{for(var de=0,ne=0;ne<te;ne++){var De;try{De=h()}catch(Be){throw new _.ErrnoError(29)}if(De===void 0&&de===0)throw new _.ErrnoError(6);if(De==null)break;de++,V[L+ne]=De}return de&&(D.node.timestamp=Date.now()),de},write:(D,V,L,te,ce)=>{for(var de=0;de<te;de++)try{E(V[L+de])}catch(ne){throw new _.ErrnoError(29)}return te&&(D.node.timestamp=Date.now()),de}}),_.mkdev(I,b,v)},forceLoadFile:c=>{if(c.isDevice||c.isFolder||c.link||c.contents)return!0;if(typeof XMLHttpRequest!="undefined")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!s)throw new Error("Cannot load without read() or XMLHttpRequest.");try{c.contents=Ws(s(c.url),!0),c.usedBytes=c.contents.length}catch(u){throw new _.ErrnoError(29)}},createLazyFile:(c,u,h,E,I)=>{function b(){this.lengthKnown=!1,this.chunks=[]}if(b.prototype.get=function(ce){if(!(ce>this.length-1||ce<0)){var de=ce%this.chunkSize,ne=ce/this.chunkSize|0;return this.getter(ne)[de]}},b.prototype.setDataGetter=function(ce){this.getter=ce},b.prototype.cacheLength=function(){var ce=new XMLHttpRequest;if(ce.open("HEAD",h,!1),ce.send(null),!(ce.status>=200&&ce.status<300||ce.status===304))throw new Error("Couldn't load "+h+". Status: "+ce.status);var de,ne=Number(ce.getResponseHeader("Content-length")),De=(de=ce.getResponseHeader("Accept-Ranges"))&&de==="bytes",Be=(de=ce.getResponseHeader("Content-Encoding"))&&de==="gzip",Le=1048576;De||(Le=ne);var dt=this;dt.setDataGetter(it=>{var vt=it*Le,mo=(it+1)*Le-1;if(mo=Math.min(mo,ne-1),dt.chunks[it]===void 0&&(dt.chunks[it]=((yr,Zo)=>{if(yr>Zo)throw new Error("invalid range ("+yr+", "+Zo+") or no bytes requested!");if(Zo>ne-1)throw new Error("only "+ne+" bytes available! programmer error!");var Et=new XMLHttpRequest;if(Et.open("GET",h,!1),ne!==Le&&Et.setRequestHeader("Range","bytes="+yr+"-"+Zo),Et.responseType="arraybuffer",Et.overrideMimeType&&Et.overrideMimeType("text/plain; charset=x-user-defined"),Et.send(null),!(Et.status>=200&&Et.status<300||Et.status===304))throw new Error("Couldn't load "+h+". Status: "+Et.status);return Et.response!==void 0?new Uint8Array(Et.response||[]):Ws(Et.responseText||"",!0)})(vt,mo)),dt.chunks[it]===void 0)throw new Error("doXHR failed!");return dt.chunks[it]}),!Be&&ne||(Le=ne=1,ne=this.getter(0).length,Le=ne,R("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=ne,this._chunkSize=Le,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!f)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var v=new b;Object.defineProperties(v,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var D={isDevice:!1,contents:v}}else D={isDevice:!1,url:h};var V=_.createFile(c,u,D,E,I);D.contents?V.contents=D.contents:D.url&&(V.contents=null,V.url=D.url),Object.defineProperties(V,{usedBytes:{get:function(){return this.contents.length}}});var L={};function te(ce,de,ne,De,Be){var Le=ce.node.contents;if(Be>=Le.length)return 0;var dt=Math.min(Le.length-Be,De);if(Le.slice)for(var it=0;it<dt;it++)de[ne+it]=Le[Be+it];else for(it=0;it<dt;it++)de[ne+it]=Le.get(Be+it);return dt}return Object.keys(V.stream_ops).forEach(ce=>{var de=V.stream_ops[ce];L[ce]=function(){return _.forceLoadFile(V),de.apply(null,arguments)}}),L.read=(ce,de,ne,De,Be)=>(_.forceLoadFile(V),te(ce,de,ne,De,Be)),L.mmap=(ce,de,ne,De,Be)=>{_.forceLoadFile(V);var Le=oa();if(!Le)throw new _.ErrnoError(48);return te(ce,Q,Le,de,ne),{ptr:Le,allocated:!0}},V.stream_ops=L,V}},io=(c,u)=>c?jt(H,c,u):"",Dt={DEFAULT_POLLMASK:5,calculateAt:function(c,u,h){if(me.isAbs(u))return u;var E;if(c===-100?E=_.cwd():E=Dt.getStreamFromFD(c).path,u.length==0){if(!h)throw new _.ErrnoError(44);return E}return me.join2(E,u)},doStat:function(c,u,h){try{var E=c(u)}catch(D){if(D&&D.node&&me.normalize(u)!==me.normalize(_.getPath(D.node)))return-54;throw D}W[h>>2]=E.dev,W[h+4>>2]=E.mode,Ue[h+8>>2]=E.nlink,W[h+12>>2]=E.uid,W[h+16>>2]=E.gid,W[h+20>>2]=E.rdev,rt=[E.size>>>0,(Se=E.size,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+24>>2]=rt[0],W[h+28>>2]=rt[1],W[h+32>>2]=4096,W[h+36>>2]=E.blocks;var I=E.atime.getTime(),b=E.mtime.getTime(),v=E.ctime.getTime();return rt=[Math.floor(I/1e3)>>>0,(Se=Math.floor(I/1e3),+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+40>>2]=rt[0],W[h+44>>2]=rt[1],Ue[h+48>>2]=I%1e3*1e3,rt=[Math.floor(b/1e3)>>>0,(Se=Math.floor(b/1e3),+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+56>>2]=rt[0],W[h+60>>2]=rt[1],Ue[h+64>>2]=b%1e3*1e3,rt=[Math.floor(v/1e3)>>>0,(Se=Math.floor(v/1e3),+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+72>>2]=rt[0],W[h+76>>2]=rt[1],Ue[h+80>>2]=v%1e3*1e3,rt=[E.ino>>>0,(Se=E.ino,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+88>>2]=rt[0],W[h+92>>2]=rt[1],0},doMsync:function(c,u,h,E,I){if(!_.isFile(u.node.mode))throw new _.ErrnoError(43);if(2&E)return 0;var b=H.slice(c,c+h);_.msync(u,b,I,h,E)},varargs:void 0,get:()=>(Dt.varargs+=4,W[Dt.varargs-4>>2]),getStr:c=>io(c),getStreamFromFD:function(c){return _.getStreamChecked(c)}};function Si(c){switch(c){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${c}`)}}var Wc=void 0;function Mt(c){for(var u="",h=c;H[h];)u+=Wc[H[h++]];return u}var P={},Sr={},Gs={},oo=void 0;function Fe(c){throw new oo(c)}var Gc=void 0;function ur(c){throw new Gc(c)}function Kr(c,u,h){function E(D){var V=h(D);V.length!==c.length&&ur("Mismatched type converter count");for(var L=0;L<c.length;++L)lr(c[L],V[L])}c.forEach(function(D){Gs[D]=u});var I=new Array(u.length),b=[],v=0;u.forEach((D,V)=>{Sr.hasOwnProperty(D)?I[V]=Sr[D]:(b.push(D),P.hasOwnProperty(D)||(P[D]=[]),P[D].push(()=>{I[V]=Sr[D],++v===b.length&&E(I)}))}),b.length===0&&E(I)}function lr(c,u,h={}){if(!("argPackAdvance"in u))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(E,I,b={}){var v=I.name;if(E||Fe(`type "${v}" must have a positive integer typeid pointer`),Sr.hasOwnProperty(E)){if(b.ignoreDuplicateRegistrations)return;Fe(`Cannot register type '${v}' twice`)}if(Sr[E]=I,delete Gs[E],P.hasOwnProperty(E)){var D=P[E];delete P[E],D.forEach(V=>V())}}(c,u,h)}function jc(c){if(!(this instanceof xr)||!(c instanceof xr))return!1;for(var u=this.$$.ptrType.registeredClass,h=this.$$.ptr,E=c.$$.ptrType.registeredClass,I=c.$$.ptr;u.baseClass;)h=u.upcast(h),u=u.baseClass;for(;E.baseClass;)I=E.upcast(I),E=E.baseClass;return u===E&&h===I}function sa(c){Fe(c.$$.ptrType.registeredClass.name+" instance already deleted")}var jo=!1;function qc(c){}function zc(c){c.count.value-=1,c.count.value===0&&function(u){u.smartPtr?u.smartPtrType.rawDestructor(u.smartPtr):u.ptrType.registeredClass.rawDestructor(u.ptr)}(c)}function Jc(c,u,h){if(u===h)return c;if(h.baseClass===void 0)return null;var E=Jc(c,u,h.baseClass);return E===null?null:h.downcast(E)}var qo={};function zl(){return Object.keys(Jo).length}function Jl(){var c=[];for(var u in Jo)Jo.hasOwnProperty(u)&&c.push(Jo[u]);return c}var zo=[];function mr(){for(;zo.length;){var c=zo.pop();c.$$.deleteScheduled=!1,c.delete()}}var ei=void 0;function Xc(c){ei=c,zo.length&&ei&&ei(mr)}var Jo={};function so(c,u){return u=function(h,E){for(E===void 0&&Fe("ptr should not be undefined");h.baseClass;)E=h.upcast(E),h=h.baseClass;return E}(c,u),Jo[u]}function Xo(c,u){return u.ptrType&&u.ptr||ur("makeClassHandle requires ptr and ptrType"),!!u.smartPtrType!=!!u.smartPtr&&ur("Both smartPtrType and smartPtr must be specified"),u.count={value:1},no(Object.create(c,{$$:{value:u}}))}function Qc(c){var u=this.getPointee(c);if(!u)return this.destructor(c),null;var h=so(this.registeredClass,u);if(h!==void 0){if(h.$$.count.value===0)return h.$$.ptr=u,h.$$.smartPtr=c,h.clone();var E=h.clone();return this.destructor(c),E}function I(){return this.isSmartPointer?Xo(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:u,smartPtrType:this,smartPtr:c}):Xo(this.registeredClass.instancePrototype,{ptrType:this,ptr:c})}var b,v=this.registeredClass.getActualType(u),D=qo[v];if(!D)return I.call(this);b=this.isConst?D.constPointerType:D.pointerType;var V=Jc(u,this.registeredClass,b.registeredClass);return V===null?I.call(this):this.isSmartPointer?Xo(b.registeredClass.instancePrototype,{ptrType:b,ptr:V,smartPtrType:this,smartPtr:c}):Xo(b.registeredClass.instancePrototype,{ptrType:b,ptr:V})}var no=function(c){return typeof FinalizationRegistry=="undefined"?(no=u=>u,c):(jo=new FinalizationRegistry(u=>{zc(u.$$)}),qc=u=>jo.unregister(u),(no=u=>{var h=u.$$;if(h.smartPtr){var E={$$:h};jo.register(u,E,u)}return u})(c))};function Yc(){if(this.$$.ptr||sa(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var c,u=no(Object.create(Object.getPrototypeOf(this),{$$:{value:(c=this.$$,{count:c.count,deleteScheduled:c.deleteScheduled,preservePointerOnDelete:c.preservePointerOnDelete,ptr:c.ptr,ptrType:c.ptrType,smartPtr:c.smartPtr,smartPtrType:c.smartPtrType})}}));return u.$$.count.value+=1,u.$$.deleteScheduled=!1,u}function Xl(){this.$$.ptr||sa(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Fe("Object already scheduled for deletion"),qc(this),zc(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Zc(){return!this.$$.ptr}function Kc(){return this.$$.ptr||sa(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Fe("Object already scheduled for deletion"),zo.push(this),zo.length===1&&ei&&ei(mr),this.$$.deleteScheduled=!0,this}function xr(){}function qt(c){if(c===void 0)return"_unknown";var u=(c=c.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return u>=48&&u<=57?`_${c}`:c}function js(c,u){return c=qt(c),{[c]:function(){return u.apply(this,arguments)}}[c]}function ed(c,u,h){if(c[u].overloadTable===void 0){var E=c[u];c[u]=function(){return c[u].overloadTable.hasOwnProperty(arguments.length)||Fe(`Function '${h}' called with an invalid number of arguments (${arguments.length}) - expects one of (${c[u].overloadTable})!`),c[u].overloadTable[arguments.length].apply(this,arguments)},c[u].overloadTable=[],c[u].overloadTable[E.argCount]=E}}function qs(c,u,h,E,I,b,v,D){this.name=c,this.constructor=u,this.instancePrototype=h,this.rawDestructor=E,this.baseClass=I,this.getActualType=b,this.upcast=v,this.downcast=D,this.pureVirtualFunctions=[]}function Qo(c,u,h){for(;u!==h;)u.upcast||Fe(`Expected null or instance of ${h.name}, got an instance of ${u.name}`),c=u.upcast(c),u=u.baseClass;return c}function Ql(c,u){if(u===null)return this.isReference&&Fe(`null is not a valid ${this.name}`),0;u.$$||Fe(`Cannot pass "${Qs(u)}" as a ${this.name}`),u.$$.ptr||Fe(`Cannot pass deleted object as a pointer of type ${this.name}`);var h=u.$$.ptrType.registeredClass;return Qo(u.$$.ptr,h,this.registeredClass)}function Yl(c,u){var h;if(u===null)return this.isReference&&Fe(`null is not a valid ${this.name}`),this.isSmartPointer?(h=this.rawConstructor(),c!==null&&c.push(this.rawDestructor,h),h):0;u.$$||Fe(`Cannot pass "${Qs(u)}" as a ${this.name}`),u.$$.ptr||Fe(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&u.$$.ptrType.isConst&&Fe(`Cannot convert argument of type ${u.$$.smartPtrType?u.$$.smartPtrType.name:u.$$.ptrType.name} to parameter type ${this.name}`);var E=u.$$.ptrType.registeredClass;if(h=Qo(u.$$.ptr,E,this.registeredClass),this.isSmartPointer)switch(u.$$.smartPtr===void 0&&Fe("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:u.$$.smartPtrType===this?h=u.$$.smartPtr:Fe(`Cannot convert argument of type ${u.$$.smartPtrType?u.$$.smartPtrType.name:u.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:h=u.$$.smartPtr;break;case 2:if(u.$$.smartPtrType===this)h=u.$$.smartPtr;else{var I=u.clone();h=this.rawShare(h,uo.toHandle(function(){I.delete()})),c!==null&&c.push(this.rawDestructor,h)}break;default:Fe("Unsupporting sharing policy")}return h}function td(c,u){if(u===null)return this.isReference&&Fe(`null is not a valid ${this.name}`),0;u.$$||Fe(`Cannot pass "${Qs(u)}" as a ${this.name}`),u.$$.ptr||Fe(`Cannot pass deleted object as a pointer of type ${this.name}`),u.$$.ptrType.isConst&&Fe(`Cannot convert argument of type ${u.$$.ptrType.name} to parameter type ${this.name}`);var h=u.$$.ptrType.registeredClass;return Qo(u.$$.ptr,h,this.registeredClass)}function Yo(c){return this.fromWireType(W[c>>2])}function Zl(c){return this.rawGetPointee&&(c=this.rawGetPointee(c)),c}function rd(c){this.rawDestructor&&this.rawDestructor(c)}function Kl(c){c!==null&&c.delete()}function Pr(c,u,h,E,I,b,v,D,V,L,te){this.name=c,this.registeredClass=u,this.isReference=h,this.isConst=E,this.isSmartPointer=I,this.pointeeType=b,this.sharingPolicy=v,this.rawGetPointee=D,this.rawConstructor=V,this.rawShare=L,this.rawDestructor=te,I||u.baseClass!==void 0?this.toWireType=Yl:E?(this.toWireType=Ql,this.destructorFunction=null):(this.toWireType=td,this.destructorFunction=null)}var zs=[],id=c=>{var u=zs[c];return u||(c>=zs.length&&(zs.length=c+1),zs[c]=u=Kn.get(c)),u},em=(c,u,h)=>c.includes("j")?((E,I,b)=>{var v=o["dynCall_"+E];return b&&b.length?v.apply(null,[I].concat(b)):v.call(null,I)})(c,u,h):id(u).apply(null,h);function ao(c,u){var h,E,I,b=(c=Mt(c)).includes("j")?(h=c,E=u,I=[],function(){return I.length=0,Object.assign(I,arguments),em(h,E,I)}):id(u);return typeof b!="function"&&Fe(`unknown function pointer with signature ${c}: ${u}`),b}var od=void 0;function Js(c){var u=kr(c),h=Mt(u);return xt(u),h}function Xs(c,u){var h=[],E={};throw u.forEach(function I(b){E[b]||Sr[b]||(Gs[b]?Gs[b].forEach(I):(h.push(b),E[b]=!0))}),new od(`${c}: `+h.map(Js).join([", "]))}function na(c,u){for(var h=[],E=0;E<c;E++)h.push(Ue[u+4*E>>2]);return h}function sd(c){for(;c.length;){var u=c.pop();c.pop()(u)}}function aa(c,u){if(!(c instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof c} which is not a function`);var h=js(c.name||"unknownFunctionName",function(){});h.prototype=c.prototype;var E=new h,I=c.apply(E,u);return I instanceof Object?I:E}function co(c,u,h,E,I,b){var v=u.length;v<2&&Fe("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var D=u[1]!==null&&h!==null,V=!1,L=1;L<u.length;++L)if(u[L]!==null&&u[L].destructorFunction===void 0){V=!0;break}var te=u[0].name!=="void",ce="",de="";for(L=0;L<v-2;++L)ce+=(L!==0?", ":"")+"arg"+L,de+=(L!==0?", ":"")+"arg"+L+"Wired";var ne=`
52
+ `),!u)return null;ia=Ws(u,!0)}return ia.shift()})()},put_char:function(c,u){u===null||u===10?(R(jt(c.output,0)),c.output=[]):u!=0&&c.output.push(u)},fsync:function(c){c.output&&c.output.length>0&&(R(jt(c.output,0)),c.output=[])},ioctl_tcgets:function(c){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(c,u,h){return 0},ioctl_tiocgwinsz:function(c){return[24,80]}},default_tty1_ops:{put_char:function(c,u){u===null||u===10?(C(jt(c.output,0)),c.output=[]):u!=0&&c.output.push(u)},fsync:function(c){c.output&&c.output.length>0&&(C(jt(c.output,0)),c.output=[])}}},oa=c=>{Zr()},ve={ops_table:null,mount:c=>ve.createNode(null,"/",16895,0),createNode(c,u,h,E){if(_.isBlkdev(h)||_.isFIFO(h))throw new _.ErrnoError(63);ve.ops_table||(ve.ops_table={dir:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr,lookup:ve.node_ops.lookup,mknod:ve.node_ops.mknod,rename:ve.node_ops.rename,unlink:ve.node_ops.unlink,rmdir:ve.node_ops.rmdir,readdir:ve.node_ops.readdir,symlink:ve.node_ops.symlink},stream:{llseek:ve.stream_ops.llseek}},file:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr},stream:{llseek:ve.stream_ops.llseek,read:ve.stream_ops.read,write:ve.stream_ops.write,allocate:ve.stream_ops.allocate,mmap:ve.stream_ops.mmap,msync:ve.stream_ops.msync}},link:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr,readlink:ve.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr},stream:_.chrdev_stream_ops}});var I=_.createNode(c,u,h,E);return _.isDir(I.mode)?(I.node_ops=ve.ops_table.dir.node,I.stream_ops=ve.ops_table.dir.stream,I.contents={}):_.isFile(I.mode)?(I.node_ops=ve.ops_table.file.node,I.stream_ops=ve.ops_table.file.stream,I.usedBytes=0,I.contents=null):_.isLink(I.mode)?(I.node_ops=ve.ops_table.link.node,I.stream_ops=ve.ops_table.link.stream):_.isChrdev(I.mode)&&(I.node_ops=ve.ops_table.chrdev.node,I.stream_ops=ve.ops_table.chrdev.stream),I.timestamp=Date.now(),c&&(c.contents[u]=I,c.timestamp=I.timestamp),I},getFileDataAsTypedArray:c=>c.contents?c.contents.subarray?c.contents.subarray(0,c.usedBytes):new Uint8Array(c.contents):new Uint8Array(0),expandFileStorage(c,u){var h=c.contents?c.contents.length:0;if(!(h>=u)){u=Math.max(u,h*(h<1048576?2:1.125)>>>0),h!=0&&(u=Math.max(u,256));var E=c.contents;c.contents=new Uint8Array(u),c.usedBytes>0&&c.contents.set(E.subarray(0,c.usedBytes),0)}},resizeFileStorage(c,u){if(c.usedBytes!=u)if(u==0)c.contents=null,c.usedBytes=0;else{var h=c.contents;c.contents=new Uint8Array(u),h&&c.contents.set(h.subarray(0,Math.min(u,c.usedBytes))),c.usedBytes=u}},node_ops:{getattr(c){var u={};return u.dev=_.isChrdev(c.mode)?c.id:1,u.ino=c.id,u.mode=c.mode,u.nlink=1,u.uid=0,u.gid=0,u.rdev=c.rdev,_.isDir(c.mode)?u.size=4096:_.isFile(c.mode)?u.size=c.usedBytes:_.isLink(c.mode)?u.size=c.link.length:u.size=0,u.atime=new Date(c.timestamp),u.mtime=new Date(c.timestamp),u.ctime=new Date(c.timestamp),u.blksize=4096,u.blocks=Math.ceil(u.size/u.blksize),u},setattr(c,u){u.mode!==void 0&&(c.mode=u.mode),u.timestamp!==void 0&&(c.timestamp=u.timestamp),u.size!==void 0&&ve.resizeFileStorage(c,u.size)},lookup(c,u){throw _.genericErrors[44]},mknod:(c,u,h,E)=>ve.createNode(c,u,h,E),rename(c,u,h){if(_.isDir(c.mode)){var E;try{E=_.lookupNode(u,h)}catch(b){}if(E)for(var I in E.contents)throw new _.ErrnoError(55)}delete c.parent.contents[c.name],c.parent.timestamp=Date.now(),c.name=h,u.contents[h]=c,u.timestamp=c.parent.timestamp,c.parent=u},unlink(c,u){delete c.contents[u],c.timestamp=Date.now()},rmdir(c,u){var h=_.lookupNode(c,u);for(var E in h.contents)throw new _.ErrnoError(55);delete c.contents[u],c.timestamp=Date.now()},readdir(c){var u=[".",".."];for(var h in c.contents)c.contents.hasOwnProperty(h)&&u.push(h);return u},symlink(c,u,h){var E=ve.createNode(c,u,41471,0);return E.link=h,E},readlink(c){if(!_.isLink(c.mode))throw new _.ErrnoError(28);return c.link}},stream_ops:{read(c,u,h,E,I){var b=c.node.contents;if(I>=c.node.usedBytes)return 0;var v=Math.min(c.node.usedBytes-I,E);if(v>8&&b.subarray)u.set(b.subarray(I,I+v),h);else for(var D=0;D<v;D++)u[h+D]=b[I+D];return v},write(c,u,h,E,I,b){if(!E)return 0;var v=c.node;if(v.timestamp=Date.now(),u.subarray&&(!v.contents||v.contents.subarray)){if(b)return v.contents=u.subarray(h,h+E),v.usedBytes=E,E;if(v.usedBytes===0&&I===0)return v.contents=u.slice(h,h+E),v.usedBytes=E,E;if(I+E<=v.usedBytes)return v.contents.set(u.subarray(h,h+E),I),E}if(ve.expandFileStorage(v,I+E),v.contents.subarray&&u.subarray)v.contents.set(u.subarray(h,h+E),I);else for(var D=0;D<E;D++)v.contents[I+D]=u[h+D];return v.usedBytes=Math.max(v.usedBytes,I+E),E},llseek(c,u,h){var E=u;if(h===1?E+=c.position:h===2&&_.isFile(c.node.mode)&&(E+=c.node.usedBytes),E<0)throw new _.ErrnoError(28);return E},allocate(c,u,h){ve.expandFileStorage(c.node,u+h),c.node.usedBytes=Math.max(c.node.usedBytes,u+h)},mmap(c,u,h,E,I){if(!_.isFile(c.node.mode))throw new _.ErrnoError(43);var b,v,D=c.node.contents;if(2&I||D.buffer!==Q.buffer){if((h>0||h+u<D.length)&&(D=D.subarray?D.subarray(h,h+u):Array.prototype.slice.call(D,h,h+u)),v=!0,!(b=oa()))throw new _.ErrnoError(48);Q.set(D,b)}else v=!1,b=D.byteOffset;return{ptr:b,allocated:v}},msync:(c,u,h,E,I)=>(ve.stream_ops.write(c,u,0,E,h,!1),0)}},ql=(c,u,h,E)=>{var I=E?"":`al ${c}`;n(c,b=>{var v;v=`Loading data file "${c}" failed (no arrayBuffer).`,b||Zr(v),u(new Uint8Array(b)),I&&Ho()},b=>{if(!h)throw`Loading data file "${c}" failed.`;h()}),I&&ie()},le=o.preloadPlugins||[];function Si(c,u){var h=0;return c&&(h|=365),u&&(h|=146),h}var _={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(c,u={})=>{if(!(c=rr.resolve(c)))return{path:"",node:null};if((u=Object.assign({follow_mount:!0,recurse_count:0},u)).recurse_count>8)throw new _.ErrnoError(32);for(var h=c.split("/").filter(L=>!!L),E=_.root,I="/",b=0;b<h.length;b++){var v=b===h.length-1;if(v&&u.parent)break;if(E=_.lookupNode(E,h[b]),I=me.join2(I,h[b]),_.isMountpoint(E)&&(!v||v&&u.follow_mount)&&(E=E.mounted.root),!v||u.follow)for(var D=0;_.isLink(E.mode);){var V=_.readlink(I);if(I=rr.resolve(me.dirname(I),V),E=_.lookupPath(I,{recurse_count:u.recurse_count+1}).node,D++>40)throw new _.ErrnoError(32)}}return{path:I,node:E}},getPath:c=>{for(var u;;){if(_.isRoot(c)){var h=c.mount.mountpoint;return u?h[h.length-1]!=="/"?`${h}/${u}`:h+u:h}u=u?`${c.name}/${u}`:c.name,c=c.parent}},hashName:(c,u)=>{for(var h=0,E=0;E<u.length;E++)h=(h<<5)-h+u.charCodeAt(E)|0;return(c+h>>>0)%_.nameTable.length},hashAddNode:c=>{var u=_.hashName(c.parent.id,c.name);c.name_next=_.nameTable[u],_.nameTable[u]=c},hashRemoveNode:c=>{var u=_.hashName(c.parent.id,c.name);if(_.nameTable[u]===c)_.nameTable[u]=c.name_next;else for(var h=_.nameTable[u];h;){if(h.name_next===c){h.name_next=c.name_next;break}h=h.name_next}},lookupNode:(c,u)=>{var h=_.mayLookup(c);if(h)throw new _.ErrnoError(h,c);for(var E=_.hashName(c.id,u),I=_.nameTable[E];I;I=I.name_next){var b=I.name;if(I.parent.id===c.id&&b===u)return I}return _.lookup(c,u)},createNode:(c,u,h,E)=>{var I=new _.FSNode(c,u,h,E);return _.hashAddNode(I),I},destroyNode:c=>{_.hashRemoveNode(c)},isRoot:c=>c===c.parent,isMountpoint:c=>!!c.mounted,isFile:c=>(61440&c)==32768,isDir:c=>(61440&c)==16384,isLink:c=>(61440&c)==40960,isChrdev:c=>(61440&c)==8192,isBlkdev:c=>(61440&c)==24576,isFIFO:c=>(61440&c)==4096,isSocket:c=>!(49152&~c),flagsToPermissionString:c=>{var u=["r","w","rw"][3&c];return 512&c&&(u+="w"),u},nodePermissions:(c,u)=>_.ignorePermissions||(!u.includes("r")||292&c.mode)&&(!u.includes("w")||146&c.mode)&&(!u.includes("x")||73&c.mode)?0:2,mayLookup:c=>{var u=_.nodePermissions(c,"x");return u||(c.node_ops.lookup?0:2)},mayCreate:(c,u)=>{try{return _.lookupNode(c,u),20}catch(h){}return _.nodePermissions(c,"wx")},mayDelete:(c,u,h)=>{var E;try{E=_.lookupNode(c,u)}catch(b){return b.errno}var I=_.nodePermissions(c,"wx");if(I)return I;if(h){if(!_.isDir(E.mode))return 54;if(_.isRoot(E)||_.getPath(E)===_.cwd())return 10}else if(_.isDir(E.mode))return 31;return 0},mayOpen:(c,u)=>c?_.isLink(c.mode)?32:_.isDir(c.mode)&&(_.flagsToPermissionString(u)!=="r"||512&u)?31:_.nodePermissions(c,_.flagsToPermissionString(u)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var c=0;c<=_.MAX_OPEN_FDS;c++)if(!_.streams[c])return c;throw new _.ErrnoError(33)},getStreamChecked:c=>{var u=_.getStream(c);if(!u)throw new _.ErrnoError(8);return u},getStream:c=>_.streams[c],createStream:(c,u=-1)=>(_.FSStream||(_.FSStream=function(){this.shared={}},_.FSStream.prototype={},Object.defineProperties(_.FSStream.prototype,{object:{get(){return this.node},set(h){this.node=h}},isRead:{get(){return(2097155&this.flags)!=1}},isWrite:{get(){return!!(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(h){this.shared.flags=h}},position:{get(){return this.shared.position},set(h){this.shared.position=h}}})),c=Object.assign(new _.FSStream,c),u==-1&&(u=_.nextfd()),c.fd=u,_.streams[u]=c,c),closeStream:c=>{_.streams[c]=null},chrdev_stream_ops:{open:c=>{var u=_.getDevice(c.node.rdev);c.stream_ops=u.stream_ops,c.stream_ops.open&&c.stream_ops.open(c)},llseek:()=>{throw new _.ErrnoError(70)}},major:c=>c>>8,minor:c=>255&c,makedev:(c,u)=>c<<8|u,registerDevice:(c,u)=>{_.devices[c]={stream_ops:u}},getDevice:c=>_.devices[c],getMounts:c=>{for(var u=[],h=[c];h.length;){var E=h.pop();u.push(E),h.push.apply(h,E.mounts)}return u},syncfs:(c,u)=>{typeof c=="function"&&(u=c,c=!1),_.syncFSRequests++,_.syncFSRequests>1&&C(`warning: ${_.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var h=_.getMounts(_.root.mount),E=0;function I(v){return _.syncFSRequests--,u(v)}function b(v){if(v)return b.errored?void 0:(b.errored=!0,I(v));++E>=h.length&&I(null)}h.forEach(v=>{if(!v.type.syncfs)return b(null);v.type.syncfs(v,c,b)})},mount:(c,u,h)=>{var E,I=h==="/",b=!h;if(I&&_.root)throw new _.ErrnoError(10);if(!I&&!b){var v=_.lookupPath(h,{follow_mount:!1});if(h=v.path,E=v.node,_.isMountpoint(E))throw new _.ErrnoError(10);if(!_.isDir(E.mode))throw new _.ErrnoError(54)}var D={type:c,opts:u,mountpoint:h,mounts:[]},V=c.mount(D);return V.mount=D,D.root=V,I?_.root=V:E&&(E.mounted=D,E.mount&&E.mount.mounts.push(D)),V},unmount:c=>{var u=_.lookupPath(c,{follow_mount:!1});if(!_.isMountpoint(u.node))throw new _.ErrnoError(28);var h=u.node,E=h.mounted,I=_.getMounts(E);Object.keys(_.nameTable).forEach(v=>{for(var D=_.nameTable[v];D;){var V=D.name_next;I.includes(D.mount)&&_.destroyNode(D),D=V}}),h.mounted=null;var b=h.mount.mounts.indexOf(E);h.mount.mounts.splice(b,1)},lookup:(c,u)=>c.node_ops.lookup(c,u),mknod:(c,u,h)=>{var E=_.lookupPath(c,{parent:!0}).node,I=me.basename(c);if(!I||I==="."||I==="..")throw new _.ErrnoError(28);var b=_.mayCreate(E,I);if(b)throw new _.ErrnoError(b);if(!E.node_ops.mknod)throw new _.ErrnoError(63);return E.node_ops.mknod(E,I,u,h)},create:(c,u)=>(u=u!==void 0?u:438,u&=4095,u|=32768,_.mknod(c,u,0)),mkdir:(c,u)=>(u=u!==void 0?u:511,u&=1023,u|=16384,_.mknod(c,u,0)),mkdirTree:(c,u)=>{for(var h=c.split("/"),E="",I=0;I<h.length;++I)if(h[I]){E+="/"+h[I];try{_.mkdir(E,u)}catch(b){if(b.errno!=20)throw b}}},mkdev:(c,u,h)=>(h===void 0&&(h=u,u=438),u|=8192,_.mknod(c,u,h)),symlink:(c,u)=>{if(!rr.resolve(c))throw new _.ErrnoError(44);var h=_.lookupPath(u,{parent:!0}).node;if(!h)throw new _.ErrnoError(44);var E=me.basename(u),I=_.mayCreate(h,E);if(I)throw new _.ErrnoError(I);if(!h.node_ops.symlink)throw new _.ErrnoError(63);return h.node_ops.symlink(h,E,c)},rename:(c,u)=>{var h,E,I=me.dirname(c),b=me.dirname(u),v=me.basename(c),D=me.basename(u);if(h=_.lookupPath(c,{parent:!0}).node,E=_.lookupPath(u,{parent:!0}).node,!h||!E)throw new _.ErrnoError(44);if(h.mount!==E.mount)throw new _.ErrnoError(75);var V,L=_.lookupNode(h,v),te=rr.relative(c,b);if(te.charAt(0)!==".")throw new _.ErrnoError(28);if((te=rr.relative(u,I)).charAt(0)!==".")throw new _.ErrnoError(55);try{V=_.lookupNode(E,D)}catch(ne){}if(L!==V){var ce=_.isDir(L.mode),de=_.mayDelete(h,v,ce);if(de)throw new _.ErrnoError(de);if(de=V?_.mayDelete(E,D,ce):_.mayCreate(E,D))throw new _.ErrnoError(de);if(!h.node_ops.rename)throw new _.ErrnoError(63);if(_.isMountpoint(L)||V&&_.isMountpoint(V))throw new _.ErrnoError(10);if(E!==h&&(de=_.nodePermissions(h,"w")))throw new _.ErrnoError(de);_.hashRemoveNode(L);try{h.node_ops.rename(L,E,D)}catch(ne){throw ne}finally{_.hashAddNode(L)}}},rmdir:c=>{var u=_.lookupPath(c,{parent:!0}).node,h=me.basename(c),E=_.lookupNode(u,h),I=_.mayDelete(u,h,!0);if(I)throw new _.ErrnoError(I);if(!u.node_ops.rmdir)throw new _.ErrnoError(63);if(_.isMountpoint(E))throw new _.ErrnoError(10);u.node_ops.rmdir(u,h),_.destroyNode(E)},readdir:c=>{var u=_.lookupPath(c,{follow:!0}).node;if(!u.node_ops.readdir)throw new _.ErrnoError(54);return u.node_ops.readdir(u)},unlink:c=>{var u=_.lookupPath(c,{parent:!0}).node;if(!u)throw new _.ErrnoError(44);var h=me.basename(c),E=_.lookupNode(u,h),I=_.mayDelete(u,h,!1);if(I)throw new _.ErrnoError(I);if(!u.node_ops.unlink)throw new _.ErrnoError(63);if(_.isMountpoint(E))throw new _.ErrnoError(10);u.node_ops.unlink(u,h),_.destroyNode(E)},readlink:c=>{var u=_.lookupPath(c).node;if(!u)throw new _.ErrnoError(44);if(!u.node_ops.readlink)throw new _.ErrnoError(28);return rr.resolve(_.getPath(u.parent),u.node_ops.readlink(u))},stat:(c,u)=>{var h=_.lookupPath(c,{follow:!u}).node;if(!h)throw new _.ErrnoError(44);if(!h.node_ops.getattr)throw new _.ErrnoError(63);return h.node_ops.getattr(h)},lstat:c=>_.stat(c,!0),chmod:(c,u,h)=>{var E;if(typeof c=="string"?E=_.lookupPath(c,{follow:!h}).node:E=c,!E.node_ops.setattr)throw new _.ErrnoError(63);E.node_ops.setattr(E,{mode:4095&u|-4096&E.mode,timestamp:Date.now()})},lchmod:(c,u)=>{_.chmod(c,u,!0)},fchmod:(c,u)=>{var h=_.getStreamChecked(c);_.chmod(h.node,u)},chown:(c,u,h,E)=>{var I;if(typeof c=="string"?I=_.lookupPath(c,{follow:!E}).node:I=c,!I.node_ops.setattr)throw new _.ErrnoError(63);I.node_ops.setattr(I,{timestamp:Date.now()})},lchown:(c,u,h)=>{_.chown(c,u,h,!0)},fchown:(c,u,h)=>{var E=_.getStreamChecked(c);_.chown(E.node,u,h)},truncate:(c,u)=>{if(u<0)throw new _.ErrnoError(28);var h;if(typeof c=="string"?h=_.lookupPath(c,{follow:!0}).node:h=c,!h.node_ops.setattr)throw new _.ErrnoError(63);if(_.isDir(h.mode))throw new _.ErrnoError(31);if(!_.isFile(h.mode))throw new _.ErrnoError(28);var E=_.nodePermissions(h,"w");if(E)throw new _.ErrnoError(E);h.node_ops.setattr(h,{size:u,timestamp:Date.now()})},ftruncate:(c,u)=>{var h=_.getStreamChecked(c);if(!(2097155&h.flags))throw new _.ErrnoError(28);_.truncate(h.node,u)},utime:(c,u,h)=>{var E=_.lookupPath(c,{follow:!0}).node;E.node_ops.setattr(E,{timestamp:Math.max(u,h)})},open:(c,u,h)=>{if(c==="")throw new _.ErrnoError(44);var E;if(h=h===void 0?438:h,h=64&(u=typeof u=="string"?function(D){var V={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[D];if(V===void 0)throw new Error(`Unknown file open mode: ${D}`);return V}(u):u)?4095&h|32768:0,typeof c=="object")E=c;else{c=me.normalize(c);try{E=_.lookupPath(c,{follow:!(131072&u)}).node}catch(D){}}var I=!1;if(64&u)if(E){if(128&u)throw new _.ErrnoError(20)}else E=_.mknod(c,h,0),I=!0;if(!E)throw new _.ErrnoError(44);if(_.isChrdev(E.mode)&&(u&=-513),65536&u&&!_.isDir(E.mode))throw new _.ErrnoError(54);if(!I){var b=_.mayOpen(E,u);if(b)throw new _.ErrnoError(b)}512&u&&!I&&_.truncate(E,0),u&=-131713;var v=_.createStream({node:E,path:_.getPath(E),flags:u,seekable:!0,position:0,stream_ops:E.stream_ops,ungotten:[],error:!1});return v.stream_ops.open&&v.stream_ops.open(v),!o.logReadFiles||1&u||(_.readFiles||(_.readFiles={}),c in _.readFiles||(_.readFiles[c]=1)),v},close:c=>{if(_.isClosed(c))throw new _.ErrnoError(8);c.getdents&&(c.getdents=null);try{c.stream_ops.close&&c.stream_ops.close(c)}catch(u){throw u}finally{_.closeStream(c.fd)}c.fd=null},isClosed:c=>c.fd===null,llseek:(c,u,h)=>{if(_.isClosed(c))throw new _.ErrnoError(8);if(!c.seekable||!c.stream_ops.llseek)throw new _.ErrnoError(70);if(h!=0&&h!=1&&h!=2)throw new _.ErrnoError(28);return c.position=c.stream_ops.llseek(c,u,h),c.ungotten=[],c.position},read:(c,u,h,E,I)=>{if(E<0||I<0)throw new _.ErrnoError(28);if(_.isClosed(c))throw new _.ErrnoError(8);if((2097155&c.flags)==1)throw new _.ErrnoError(8);if(_.isDir(c.node.mode))throw new _.ErrnoError(31);if(!c.stream_ops.read)throw new _.ErrnoError(28);var b=I!==void 0;if(b){if(!c.seekable)throw new _.ErrnoError(70)}else I=c.position;var v=c.stream_ops.read(c,u,h,E,I);return b||(c.position+=v),v},write:(c,u,h,E,I,b)=>{if(E<0||I<0)throw new _.ErrnoError(28);if(_.isClosed(c))throw new _.ErrnoError(8);if(!(2097155&c.flags))throw new _.ErrnoError(8);if(_.isDir(c.node.mode))throw new _.ErrnoError(31);if(!c.stream_ops.write)throw new _.ErrnoError(28);c.seekable&&1024&c.flags&&_.llseek(c,0,2);var v=I!==void 0;if(v){if(!c.seekable)throw new _.ErrnoError(70)}else I=c.position;var D=c.stream_ops.write(c,u,h,E,I,b);return v||(c.position+=D),D},allocate:(c,u,h)=>{if(_.isClosed(c))throw new _.ErrnoError(8);if(u<0||h<=0)throw new _.ErrnoError(28);if(!(2097155&c.flags))throw new _.ErrnoError(8);if(!_.isFile(c.node.mode)&&!_.isDir(c.node.mode))throw new _.ErrnoError(43);if(!c.stream_ops.allocate)throw new _.ErrnoError(138);c.stream_ops.allocate(c,u,h)},mmap:(c,u,h,E,I)=>{if(2&E&&!(2&I)&&(2097155&c.flags)!=2)throw new _.ErrnoError(2);if((2097155&c.flags)==1)throw new _.ErrnoError(2);if(!c.stream_ops.mmap)throw new _.ErrnoError(43);return c.stream_ops.mmap(c,u,h,E,I)},msync:(c,u,h,E,I)=>c.stream_ops.msync?c.stream_ops.msync(c,u,h,E,I):0,munmap:c=>0,ioctl:(c,u,h)=>{if(!c.stream_ops.ioctl)throw new _.ErrnoError(59);return c.stream_ops.ioctl(c,u,h)},readFile:(c,u={})=>{if(u.flags=u.flags||0,u.encoding=u.encoding||"binary",u.encoding!=="utf8"&&u.encoding!=="binary")throw new Error(`Invalid encoding type "${u.encoding}"`);var h,E=_.open(c,u.flags),I=_.stat(c).size,b=new Uint8Array(I);return _.read(E,b,0,I,0),u.encoding==="utf8"?h=jt(b,0):u.encoding==="binary"&&(h=b),_.close(E),h},writeFile:(c,u,h={})=>{h.flags=h.flags||577;var E=_.open(c,h.flags,h.mode);if(typeof u=="string"){var I=new Uint8Array(Wo(u)+1),b=Go(u,I,0,I.length);_.write(E,I,0,b,void 0,h.canOwn)}else{if(!ArrayBuffer.isView(u))throw new Error("Unsupported data type");_.write(E,u,0,u.byteLength,void 0,h.canOwn)}_.close(E)},cwd:()=>_.currentPath,chdir:c=>{var u=_.lookupPath(c,{follow:!0});if(u.node===null)throw new _.ErrnoError(44);if(!_.isDir(u.node.mode))throw new _.ErrnoError(54);var h=_.nodePermissions(u.node,"x");if(h)throw new _.ErrnoError(h);_.currentPath=u.path},createDefaultDirectories:()=>{_.mkdir("/tmp"),_.mkdir("/home"),_.mkdir("/home/web_user")},createDefaultDevices:()=>{_.mkdir("/dev"),_.registerDevice(_.makedev(1,3),{read:()=>0,write:(E,I,b,v,D)=>v}),_.mkdev("/dev/null",_.makedev(1,3)),Mr.register(_.makedev(5,0),Mr.default_tty_ops),Mr.register(_.makedev(6,0),Mr.default_tty1_ops),_.mkdev("/dev/tty",_.makedev(5,0)),_.mkdev("/dev/tty1",_.makedev(6,0));var c=new Uint8Array(1024),u=0,h=()=>(u===0&&(u=ra(c).byteLength),c[--u]);_.createDevice("/dev","random",h),_.createDevice("/dev","urandom",h),_.mkdir("/dev/shm"),_.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{_.mkdir("/proc");var c=_.mkdir("/proc/self");_.mkdir("/proc/self/fd"),_.mount({mount:()=>{var u=_.createNode(c,"fd",16895,73);return u.node_ops={lookup:(h,E)=>{var I=+E,b=_.getStreamChecked(I),v={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>b.path}};return v.parent=v,v}},u}},{},"/proc/self/fd")},createStandardStreams:()=>{o.stdin?_.createDevice("/dev","stdin",o.stdin):_.symlink("/dev/tty","/dev/stdin"),o.stdout?_.createDevice("/dev","stdout",null,o.stdout):_.symlink("/dev/tty","/dev/stdout"),o.stderr?_.createDevice("/dev","stderr",null,o.stderr):_.symlink("/dev/tty1","/dev/stderr"),_.open("/dev/stdin",0),_.open("/dev/stdout",1),_.open("/dev/stderr",1)},ensureErrnoError:()=>{_.ErrnoError||(_.ErrnoError=function(c,u){this.name="ErrnoError",this.node=u,this.setErrno=function(h){this.errno=h},this.setErrno(c),this.message="FS error"},_.ErrnoError.prototype=new Error,_.ErrnoError.prototype.constructor=_.ErrnoError,[44].forEach(c=>{_.genericErrors[c]=new _.ErrnoError(c),_.genericErrors[c].stack="<generic error, no stack>"}))},staticInit:()=>{_.ensureErrnoError(),_.nameTable=new Array(4096),_.mount(ve,{},"/"),_.createDefaultDirectories(),_.createDefaultDevices(),_.createSpecialDirectories(),_.filesystems={MEMFS:ve}},init:(c,u,h)=>{_.init.initialized=!0,_.ensureErrnoError(),o.stdin=c||o.stdin,o.stdout=u||o.stdout,o.stderr=h||o.stderr,_.createStandardStreams()},quit:()=>{_.init.initialized=!1;for(var c=0;c<_.streams.length;c++){var u=_.streams[c];u&&_.close(u)}},findObject:(c,u)=>{var h=_.analyzePath(c,u);return h.exists?h.object:null},analyzePath:(c,u)=>{try{c=(E=_.lookupPath(c,{follow:!u})).path}catch(I){}var h={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var E=_.lookupPath(c,{parent:!0});h.parentExists=!0,h.parentPath=E.path,h.parentObject=E.node,h.name=me.basename(c),E=_.lookupPath(c,{follow:!u}),h.exists=!0,h.path=E.path,h.object=E.node,h.name=E.node.name,h.isRoot=E.path==="/"}catch(I){h.error=I.errno}return h},createPath:(c,u,h,E)=>{c=typeof c=="string"?c:_.getPath(c);for(var I=u.split("/").reverse();I.length;){var b=I.pop();if(b){var v=me.join2(c,b);try{_.mkdir(v)}catch(D){}c=v}}return v},createFile:(c,u,h,E,I)=>{var b=me.join2(typeof c=="string"?c:_.getPath(c),u),v=Si(E,I);return _.create(b,v)},createDataFile:(c,u,h,E,I,b)=>{var v=u;c&&(c=typeof c=="string"?c:_.getPath(c),v=u?me.join2(c,u):c);var D=Si(E,I),V=_.create(v,D);if(h){if(typeof h=="string"){for(var L=new Array(h.length),te=0,ce=h.length;te<ce;++te)L[te]=h.charCodeAt(te);h=L}_.chmod(V,146|D);var de=_.open(V,577);_.write(de,h,0,h.length,0,b),_.close(de),_.chmod(V,D)}return V},createDevice:(c,u,h,E)=>{var I=me.join2(typeof c=="string"?c:_.getPath(c),u),b=Si(!!h,!!E);_.createDevice.major||(_.createDevice.major=64);var v=_.makedev(_.createDevice.major++,0);return _.registerDevice(v,{open:D=>{D.seekable=!1},close:D=>{E&&E.buffer&&E.buffer.length&&E(10)},read:(D,V,L,te,ce)=>{for(var de=0,ne=0;ne<te;ne++){var De;try{De=h()}catch(Be){throw new _.ErrnoError(29)}if(De===void 0&&de===0)throw new _.ErrnoError(6);if(De==null)break;de++,V[L+ne]=De}return de&&(D.node.timestamp=Date.now()),de},write:(D,V,L,te,ce)=>{for(var de=0;de<te;de++)try{E(V[L+de])}catch(ne){throw new _.ErrnoError(29)}return te&&(D.node.timestamp=Date.now()),de}}),_.mkdev(I,b,v)},forceLoadFile:c=>{if(c.isDevice||c.isFolder||c.link||c.contents)return!0;if(typeof XMLHttpRequest!="undefined")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!s)throw new Error("Cannot load without read() or XMLHttpRequest.");try{c.contents=Ws(s(c.url),!0),c.usedBytes=c.contents.length}catch(u){throw new _.ErrnoError(29)}},createLazyFile:(c,u,h,E,I)=>{function b(){this.lengthKnown=!1,this.chunks=[]}if(b.prototype.get=function(ce){if(!(ce>this.length-1||ce<0)){var de=ce%this.chunkSize,ne=ce/this.chunkSize|0;return this.getter(ne)[de]}},b.prototype.setDataGetter=function(ce){this.getter=ce},b.prototype.cacheLength=function(){var ce=new XMLHttpRequest;if(ce.open("HEAD",h,!1),ce.send(null),!(ce.status>=200&&ce.status<300||ce.status===304))throw new Error("Couldn't load "+h+". Status: "+ce.status);var de,ne=Number(ce.getResponseHeader("Content-length")),De=(de=ce.getResponseHeader("Accept-Ranges"))&&de==="bytes",Be=(de=ce.getResponseHeader("Content-Encoding"))&&de==="gzip",Le=1048576;De||(Le=ne);var dt=this;dt.setDataGetter(it=>{var vt=it*Le,mo=(it+1)*Le-1;if(mo=Math.min(mo,ne-1),dt.chunks[it]===void 0&&(dt.chunks[it]=((yr,Zo)=>{if(yr>Zo)throw new Error("invalid range ("+yr+", "+Zo+") or no bytes requested!");if(Zo>ne-1)throw new Error("only "+ne+" bytes available! programmer error!");var Et=new XMLHttpRequest;if(Et.open("GET",h,!1),ne!==Le&&Et.setRequestHeader("Range","bytes="+yr+"-"+Zo),Et.responseType="arraybuffer",Et.overrideMimeType&&Et.overrideMimeType("text/plain; charset=x-user-defined"),Et.send(null),!(Et.status>=200&&Et.status<300||Et.status===304))throw new Error("Couldn't load "+h+". Status: "+Et.status);return Et.response!==void 0?new Uint8Array(Et.response||[]):Ws(Et.responseText||"",!0)})(vt,mo)),dt.chunks[it]===void 0)throw new Error("doXHR failed!");return dt.chunks[it]}),!Be&&ne||(Le=ne=1,ne=this.getter(0).length,Le=ne,R("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=ne,this._chunkSize=Le,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!f)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var v=new b;Object.defineProperties(v,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var D={isDevice:!1,contents:v}}else D={isDevice:!1,url:h};var V=_.createFile(c,u,D,E,I);D.contents?V.contents=D.contents:D.url&&(V.contents=null,V.url=D.url),Object.defineProperties(V,{usedBytes:{get:function(){return this.contents.length}}});var L={};function te(ce,de,ne,De,Be){var Le=ce.node.contents;if(Be>=Le.length)return 0;var dt=Math.min(Le.length-Be,De);if(Le.slice)for(var it=0;it<dt;it++)de[ne+it]=Le[Be+it];else for(it=0;it<dt;it++)de[ne+it]=Le.get(Be+it);return dt}return Object.keys(V.stream_ops).forEach(ce=>{var de=V.stream_ops[ce];L[ce]=function(){return _.forceLoadFile(V),de.apply(null,arguments)}}),L.read=(ce,de,ne,De,Be)=>(_.forceLoadFile(V),te(ce,de,ne,De,Be)),L.mmap=(ce,de,ne,De,Be)=>{_.forceLoadFile(V);var Le=oa();if(!Le)throw new _.ErrnoError(48);return te(ce,Q,Le,de,ne),{ptr:Le,allocated:!0}},V.stream_ops=L,V}},io=(c,u)=>c?jt(H,c,u):"",Dt={DEFAULT_POLLMASK:5,calculateAt:function(c,u,h){if(me.isAbs(u))return u;var E;if(c===-100?E=_.cwd():E=Dt.getStreamFromFD(c).path,u.length==0){if(!h)throw new _.ErrnoError(44);return E}return me.join2(E,u)},doStat:function(c,u,h){try{var E=c(u)}catch(D){if(D&&D.node&&me.normalize(u)!==me.normalize(_.getPath(D.node)))return-54;throw D}W[h>>2]=E.dev,W[h+4>>2]=E.mode,Ue[h+8>>2]=E.nlink,W[h+12>>2]=E.uid,W[h+16>>2]=E.gid,W[h+20>>2]=E.rdev,rt=[E.size>>>0,(Se=E.size,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+24>>2]=rt[0],W[h+28>>2]=rt[1],W[h+32>>2]=4096,W[h+36>>2]=E.blocks;var I=E.atime.getTime(),b=E.mtime.getTime(),v=E.ctime.getTime();return rt=[Math.floor(I/1e3)>>>0,(Se=Math.floor(I/1e3),+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+40>>2]=rt[0],W[h+44>>2]=rt[1],Ue[h+48>>2]=I%1e3*1e3,rt=[Math.floor(b/1e3)>>>0,(Se=Math.floor(b/1e3),+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+56>>2]=rt[0],W[h+60>>2]=rt[1],Ue[h+64>>2]=b%1e3*1e3,rt=[Math.floor(v/1e3)>>>0,(Se=Math.floor(v/1e3),+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+72>>2]=rt[0],W[h+76>>2]=rt[1],Ue[h+80>>2]=v%1e3*1e3,rt=[E.ino>>>0,(Se=E.ino,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+88>>2]=rt[0],W[h+92>>2]=rt[1],0},doMsync:function(c,u,h,E,I){if(!_.isFile(u.node.mode))throw new _.ErrnoError(43);if(2&E)return 0;var b=H.slice(c,c+h);_.msync(u,b,I,h,E)},varargs:void 0,get:()=>(Dt.varargs+=4,W[Dt.varargs-4>>2]),getStr:c=>io(c),getStreamFromFD:function(c){return _.getStreamChecked(c)}};function yi(c){switch(c){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${c}`)}}var Gc=void 0;function Mt(c){for(var u="",h=c;H[h];)u+=Gc[H[h++]];return u}var P={},Sr={},Gs={},oo=void 0;function Fe(c){throw new oo(c)}var jc=void 0;function ur(c){throw new jc(c)}function ei(c,u,h){function E(D){var V=h(D);V.length!==c.length&&ur("Mismatched type converter count");for(var L=0;L<c.length;++L)lr(c[L],V[L])}c.forEach(function(D){Gs[D]=u});var I=new Array(u.length),b=[],v=0;u.forEach((D,V)=>{Sr.hasOwnProperty(D)?I[V]=Sr[D]:(b.push(D),P.hasOwnProperty(D)||(P[D]=[]),P[D].push(()=>{I[V]=Sr[D],++v===b.length&&E(I)}))}),b.length===0&&E(I)}function lr(c,u,h={}){if(!("argPackAdvance"in u))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(E,I,b={}){var v=I.name;if(E||Fe(`type "${v}" must have a positive integer typeid pointer`),Sr.hasOwnProperty(E)){if(b.ignoreDuplicateRegistrations)return;Fe(`Cannot register type '${v}' twice`)}if(Sr[E]=I,delete Gs[E],P.hasOwnProperty(E)){var D=P[E];delete P[E],D.forEach(V=>V())}}(c,u,h)}function qc(c){if(!(this instanceof xr)||!(c instanceof xr))return!1;for(var u=this.$$.ptrType.registeredClass,h=this.$$.ptr,E=c.$$.ptrType.registeredClass,I=c.$$.ptr;u.baseClass;)h=u.upcast(h),u=u.baseClass;for(;E.baseClass;)I=E.upcast(I),E=E.baseClass;return u===E&&h===I}function sa(c){Fe(c.$$.ptrType.registeredClass.name+" instance already deleted")}var jo=!1;function zc(c){}function Jc(c){c.count.value-=1,c.count.value===0&&function(u){u.smartPtr?u.smartPtrType.rawDestructor(u.smartPtr):u.ptrType.registeredClass.rawDestructor(u.ptr)}(c)}function Xc(c,u,h){if(u===h)return c;if(h.baseClass===void 0)return null;var E=Xc(c,u,h.baseClass);return E===null?null:h.downcast(E)}var qo={};function zl(){return Object.keys(Jo).length}function Jl(){var c=[];for(var u in Jo)Jo.hasOwnProperty(u)&&c.push(Jo[u]);return c}var zo=[];function mr(){for(;zo.length;){var c=zo.pop();c.$$.deleteScheduled=!1,c.delete()}}var ti=void 0;function Qc(c){ti=c,zo.length&&ti&&ti(mr)}var Jo={};function so(c,u){return u=function(h,E){for(E===void 0&&Fe("ptr should not be undefined");h.baseClass;)E=h.upcast(E),h=h.baseClass;return E}(c,u),Jo[u]}function Xo(c,u){return u.ptrType&&u.ptr||ur("makeClassHandle requires ptr and ptrType"),!!u.smartPtrType!=!!u.smartPtr&&ur("Both smartPtrType and smartPtr must be specified"),u.count={value:1},no(Object.create(c,{$$:{value:u}}))}function Yc(c){var u=this.getPointee(c);if(!u)return this.destructor(c),null;var h=so(this.registeredClass,u);if(h!==void 0){if(h.$$.count.value===0)return h.$$.ptr=u,h.$$.smartPtr=c,h.clone();var E=h.clone();return this.destructor(c),E}function I(){return this.isSmartPointer?Xo(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:u,smartPtrType:this,smartPtr:c}):Xo(this.registeredClass.instancePrototype,{ptrType:this,ptr:c})}var b,v=this.registeredClass.getActualType(u),D=qo[v];if(!D)return I.call(this);b=this.isConst?D.constPointerType:D.pointerType;var V=Xc(u,this.registeredClass,b.registeredClass);return V===null?I.call(this):this.isSmartPointer?Xo(b.registeredClass.instancePrototype,{ptrType:b,ptr:V,smartPtrType:this,smartPtr:c}):Xo(b.registeredClass.instancePrototype,{ptrType:b,ptr:V})}var no=function(c){return typeof FinalizationRegistry=="undefined"?(no=u=>u,c):(jo=new FinalizationRegistry(u=>{Jc(u.$$)}),zc=u=>jo.unregister(u),(no=u=>{var h=u.$$;if(h.smartPtr){var E={$$:h};jo.register(u,E,u)}return u})(c))};function Zc(){if(this.$$.ptr||sa(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var c,u=no(Object.create(Object.getPrototypeOf(this),{$$:{value:(c=this.$$,{count:c.count,deleteScheduled:c.deleteScheduled,preservePointerOnDelete:c.preservePointerOnDelete,ptr:c.ptr,ptrType:c.ptrType,smartPtr:c.smartPtr,smartPtrType:c.smartPtrType})}}));return u.$$.count.value+=1,u.$$.deleteScheduled=!1,u}function Xl(){this.$$.ptr||sa(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Fe("Object already scheduled for deletion"),zc(this),Jc(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Kc(){return!this.$$.ptr}function ed(){return this.$$.ptr||sa(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Fe("Object already scheduled for deletion"),zo.push(this),zo.length===1&&ti&&ti(mr),this.$$.deleteScheduled=!0,this}function xr(){}function qt(c){if(c===void 0)return"_unknown";var u=(c=c.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return u>=48&&u<=57?`_${c}`:c}function js(c,u){return c=qt(c),{[c]:function(){return u.apply(this,arguments)}}[c]}function td(c,u,h){if(c[u].overloadTable===void 0){var E=c[u];c[u]=function(){return c[u].overloadTable.hasOwnProperty(arguments.length)||Fe(`Function '${h}' called with an invalid number of arguments (${arguments.length}) - expects one of (${c[u].overloadTable})!`),c[u].overloadTable[arguments.length].apply(this,arguments)},c[u].overloadTable=[],c[u].overloadTable[E.argCount]=E}}function qs(c,u,h,E,I,b,v,D){this.name=c,this.constructor=u,this.instancePrototype=h,this.rawDestructor=E,this.baseClass=I,this.getActualType=b,this.upcast=v,this.downcast=D,this.pureVirtualFunctions=[]}function Qo(c,u,h){for(;u!==h;)u.upcast||Fe(`Expected null or instance of ${h.name}, got an instance of ${u.name}`),c=u.upcast(c),u=u.baseClass;return c}function Ql(c,u){if(u===null)return this.isReference&&Fe(`null is not a valid ${this.name}`),0;u.$$||Fe(`Cannot pass "${Qs(u)}" as a ${this.name}`),u.$$.ptr||Fe(`Cannot pass deleted object as a pointer of type ${this.name}`);var h=u.$$.ptrType.registeredClass;return Qo(u.$$.ptr,h,this.registeredClass)}function Yl(c,u){var h;if(u===null)return this.isReference&&Fe(`null is not a valid ${this.name}`),this.isSmartPointer?(h=this.rawConstructor(),c!==null&&c.push(this.rawDestructor,h),h):0;u.$$||Fe(`Cannot pass "${Qs(u)}" as a ${this.name}`),u.$$.ptr||Fe(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&u.$$.ptrType.isConst&&Fe(`Cannot convert argument of type ${u.$$.smartPtrType?u.$$.smartPtrType.name:u.$$.ptrType.name} to parameter type ${this.name}`);var E=u.$$.ptrType.registeredClass;if(h=Qo(u.$$.ptr,E,this.registeredClass),this.isSmartPointer)switch(u.$$.smartPtr===void 0&&Fe("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:u.$$.smartPtrType===this?h=u.$$.smartPtr:Fe(`Cannot convert argument of type ${u.$$.smartPtrType?u.$$.smartPtrType.name:u.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:h=u.$$.smartPtr;break;case 2:if(u.$$.smartPtrType===this)h=u.$$.smartPtr;else{var I=u.clone();h=this.rawShare(h,uo.toHandle(function(){I.delete()})),c!==null&&c.push(this.rawDestructor,h)}break;default:Fe("Unsupporting sharing policy")}return h}function rd(c,u){if(u===null)return this.isReference&&Fe(`null is not a valid ${this.name}`),0;u.$$||Fe(`Cannot pass "${Qs(u)}" as a ${this.name}`),u.$$.ptr||Fe(`Cannot pass deleted object as a pointer of type ${this.name}`),u.$$.ptrType.isConst&&Fe(`Cannot convert argument of type ${u.$$.ptrType.name} to parameter type ${this.name}`);var h=u.$$.ptrType.registeredClass;return Qo(u.$$.ptr,h,this.registeredClass)}function Yo(c){return this.fromWireType(W[c>>2])}function Zl(c){return this.rawGetPointee&&(c=this.rawGetPointee(c)),c}function id(c){this.rawDestructor&&this.rawDestructor(c)}function Kl(c){c!==null&&c.delete()}function Pr(c,u,h,E,I,b,v,D,V,L,te){this.name=c,this.registeredClass=u,this.isReference=h,this.isConst=E,this.isSmartPointer=I,this.pointeeType=b,this.sharingPolicy=v,this.rawGetPointee=D,this.rawConstructor=V,this.rawShare=L,this.rawDestructor=te,I||u.baseClass!==void 0?this.toWireType=Yl:E?(this.toWireType=Ql,this.destructorFunction=null):(this.toWireType=rd,this.destructorFunction=null)}var zs=[],od=c=>{var u=zs[c];return u||(c>=zs.length&&(zs.length=c+1),zs[c]=u=Kn.get(c)),u},em=(c,u,h)=>c.includes("j")?((E,I,b)=>{var v=o["dynCall_"+E];return b&&b.length?v.apply(null,[I].concat(b)):v.call(null,I)})(c,u,h):od(u).apply(null,h);function ao(c,u){var h,E,I,b=(c=Mt(c)).includes("j")?(h=c,E=u,I=[],function(){return I.length=0,Object.assign(I,arguments),em(h,E,I)}):od(u);return typeof b!="function"&&Fe(`unknown function pointer with signature ${c}: ${u}`),b}var sd=void 0;function Js(c){var u=kr(c),h=Mt(u);return xt(u),h}function Xs(c,u){var h=[],E={};throw u.forEach(function I(b){E[b]||Sr[b]||(Gs[b]?Gs[b].forEach(I):(h.push(b),E[b]=!0))}),new sd(`${c}: `+h.map(Js).join([", "]))}function na(c,u){for(var h=[],E=0;E<c;E++)h.push(Ue[u+4*E>>2]);return h}function nd(c){for(;c.length;){var u=c.pop();c.pop()(u)}}function aa(c,u){if(!(c instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof c} which is not a function`);var h=js(c.name||"unknownFunctionName",function(){});h.prototype=c.prototype;var E=new h,I=c.apply(E,u);return I instanceof Object?I:E}function co(c,u,h,E,I,b){var v=u.length;v<2&&Fe("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var D=u[1]!==null&&h!==null,V=!1,L=1;L<u.length;++L)if(u[L]!==null&&u[L].destructorFunction===void 0){V=!0;break}var te=u[0].name!=="void",ce="",de="";for(L=0;L<v-2;++L)ce+=(L!==0?", ":"")+"arg"+L,de+=(L!==0?", ":"")+"arg"+L+"Wired";var ne=`
53
53
  return function ${qt(c)}(${ce}) {
54
54
  if (arguments.length !== ${v-2}) {
55
55
  throwBindingError('function ${c} called with ${arguments.length} arguments, expected ${v-2} args!');
56
56
  }`;V&&(ne+=`var destructors = [];
57
- `);var De=V?"destructors":"null",Be=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Le=[Fe,E,I,sd,u[0],u[1]];for(D&&(ne+="var thisWired = classParam.toWireType("+De+`, this);
57
+ `);var De=V?"destructors":"null",Be=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Le=[Fe,E,I,nd,u[0],u[1]];for(D&&(ne+="var thisWired = classParam.toWireType("+De+`, this);
58
58
  `),L=0;L<v-2;++L)ne+="var arg"+L+"Wired = argType"+L+".toWireType("+De+", arg"+L+"); // "+u[L+2].name+`
59
59
  `,Be.push("argType"+L),Le.push(u[L+2]);if(D&&(de="thisWired"+(de.length>0?", ":"")+de),ne+=(te||b?"var rv = ":"")+"invoker(fn"+(de.length>0?", ":"")+de+`);
60
60
  `,V)ne+=`runDestructors(destructors);
@@ -62,45 +62,45 @@ void main() {
62
62
  `,Be.push(dt+"_dtor"),Le.push(u[L].destructorFunction))}return te&&(ne+=`var ret = retType.fromWireType(rv);
63
63
  return ret;
64
64
  `),ne+=`}
65
- `,Be.push(ne),aa(Function,Be).apply(null,Le)}function nd(){this.allocated=[void 0],this.freelist=[]}var zt=new nd;function ad(c){c>=zt.reserved&&--zt.get(c).refcount==0&&zt.free(c)}function Lr(){for(var c=0,u=zt.reserved;u<zt.allocated.length;++u)zt.allocated[u]!==void 0&&++c;return c}var uo={toValue:c=>(c||Fe("Cannot use deleted val. handle = "+c),zt.get(c).value),toHandle:c=>{switch(c){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return zt.allocate({refcount:1,value:c})}}};function Qs(c){if(c===null)return"null";var u=typeof c;return u==="object"||u==="array"||u==="function"?c.toString():""+c}function cd(c,u){switch(u){case 2:return function(h){return this.fromWireType(Yn[h>>2])};case 3:return function(h){return this.fromWireType(Zn[h>>3])};default:throw new TypeError("Unknown float type: "+c)}}function dd(c,u,h){switch(u){case 0:return h?function(E){return Q[E]}:function(E){return H[E]};case 1:return h?function(E){return Ie[E>>1]}:function(E){return Je[E>>1]};case 2:return h?function(E){return W[E>>2]}:function(E){return Ue[E>>2]};default:throw new TypeError("Unknown integer type: "+c)}}var S=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,T=(c,u)=>{for(var h=c,E=h>>1,I=E+u/2;!(E>=I)&&Je[E];)++E;if((h=E<<1)-c>32&&S)return S.decode(H.subarray(c,h));for(var b="",v=0;!(v>=u/2);++v){var D=Ie[c+2*v>>1];if(D==0)break;b+=String.fromCharCode(D)}return b},w=(c,u,h)=>{if(h===void 0&&(h=2147483647),h<2)return 0;for(var E=u,I=(h-=2)<2*c.length?h/2:c.length,b=0;b<I;++b){var v=c.charCodeAt(b);Ie[u>>1]=v,u+=2}return Ie[u>>1]=0,u-E},x=c=>2*c.length,$=(c,u)=>{for(var h=0,E="";!(h>=u/4);){var I=W[c+4*h>>2];if(I==0)break;if(++h,I>=65536){var b=I-65536;E+=String.fromCharCode(55296|b>>10,56320|1023&b)}else E+=String.fromCharCode(I)}return E},G=(c,u,h)=>{if(h===void 0&&(h=2147483647),h<4)return 0;for(var E=u,I=E+h-4,b=0;b<c.length;++b){var v=c.charCodeAt(b);if(v>=55296&&v<=57343&&(v=65536+((1023&v)<<10)|1023&c.charCodeAt(++b)),W[u>>2]=v,(u+=4)+4>I)break}return W[u>>2]=0,u-E},z=c=>{for(var u=0,h=0;h<c.length;++h){var E=c.charCodeAt(h);E>=55296&&E<=57343&&++h,u+=4}return u},K={},re=[],j=[],he={},Oe=()=>{if(!Oe.strings){var c={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:l||"./this.program"};for(var u in he)he[u]===void 0?delete c[u]:c[u]=he[u];var h=[];for(var u in c)h.push(`${u}=${c[u]}`);Oe.strings=h}return Oe.strings},Ne,ge,Me,ct=function(c,u,h,E){c||(c=this),this.parent=c,this.mount=c.mount,this.mounted=null,this.id=_.nextInode++,this.name=u,this.mode=h,this.node_ops={},this.stream_ops={},this.rdev=E},Ye=365,Tt=146;Object.defineProperties(ct.prototype,{read:{get:function(){return(this.mode&Ye)===Ye},set:function(c){c?this.mode|=Ye:this.mode&=-366}},write:{get:function(){return(this.mode&Tt)===Tt},set:function(c){c?this.mode|=Tt:this.mode&=-147}},isFolder:{get:function(){return _.isDir(this.mode)}},isDevice:{get:function(){return _.isChrdev(this.mode)}}}),_.FSNode=ct,_.createPreloadedFile=function(c,u,h,E,I,b,v,D,V,L){var te=u?rr.resolve(me.join2(c,u)):c;function ce(de){function ne(De){L&&L(),D||_.createDataFile(c,u,De,E,I,V),b&&b(),Ho()}(function(De,Be,Le,dt){typeof Browser!="undefined"&&Browser.init();var it=!1;return le.forEach(function(vt){it||vt.canHandle(Be)&&(vt.handle(De,Be,Le,dt),it=!0)}),it})(de,te,ne,()=>{v&&v(),Ho()})||ne(de)}ie(),typeof h=="string"?ql(h,de=>ce(de),v):ce(h)},_.staticInit(),function(){for(var c=new Array(256),u=0;u<256;++u)c[u]=String.fromCharCode(u);Wc=c}(),oo=o.BindingError=class extends Error{constructor(c){super(c),this.name="BindingError"}},Gc=o.InternalError=class extends Error{constructor(c){super(c),this.name="InternalError"}},xr.prototype.isAliasOf=jc,xr.prototype.clone=Yc,xr.prototype.delete=Xl,xr.prototype.isDeleted=Zc,xr.prototype.deleteLater=Kc,o.getInheritedInstanceCount=zl,o.getLiveInheritedInstances=Jl,o.flushPendingDeletes=mr,o.setDelayFunction=Xc,Pr.prototype.getPointee=Zl,Pr.prototype.destructor=rd,Pr.prototype.argPackAdvance=8,Pr.prototype.readValueFromPointer=Yo,Pr.prototype.deleteObject=Kl,Pr.prototype.fromWireType=Qc,od=o.UnboundTypeError=(Ne=Error,(Me=js(ge="UnboundTypeError",function(c){this.name=ge,this.message=c;var u=new Error(c).stack;u!==void 0&&(this.stack=this.toString()+`
66
- `+u.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(Ne.prototype),Me.prototype.constructor=Me,Me.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},Me),Object.assign(nd.prototype,{get(c){return this.allocated[c]},has(c){return this.allocated[c]!==void 0},allocate(c){var u=this.freelist.pop()||this.allocated.length;return this.allocated[u]=c,u},free(c){this.allocated[c]=void 0,this.freelist.push(c)}}),zt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),zt.reserved=zt.allocated.length,o.count_emval_handles=Lr;var Ze,kt={p:function(c,u,h){throw new to(c).init(u,h),c},C:function(c,u,h){Dt.varargs=h;try{var E=Dt.getStreamFromFD(c);switch(u){case 0:return(I=Dt.get())<0?-28:_.createStream(E,I).fd;case 1:case 2:case 6:case 7:return 0;case 3:return E.flags;case 4:var I=Dt.get();return E.flags|=I,0;case 5:return I=Dt.get(),Ie[I+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return b=28,W[ca()>>2]=b,-1}}catch(v){if(_===void 0||v.name!=="ErrnoError")throw v;return-v.errno}var b},w:function(c,u,h,E){Dt.varargs=E;try{u=Dt.getStr(u),u=Dt.calculateAt(c,u);var I=E?Dt.get():0;return _.open(u,h,I).fd}catch(b){if(_===void 0||b.name!=="ErrnoError")throw b;return-b.errno}},t:function(c,u,h,E,I){},n:function(c,u,h,E,I){var b=Si(h);lr(c,{name:u=Mt(u),fromWireType:function(v){return!!v},toWireType:function(v,D){return D?E:I},argPackAdvance:8,readValueFromPointer:function(v){var D;if(h===1)D=Q;else if(h===2)D=Ie;else{if(h!==4)throw new TypeError("Unknown boolean type size: "+u);D=W}return this.fromWireType(D[v>>b])},destructorFunction:null})},r:function(c,u,h,E,I,b,v,D,V,L,te,ce,de){te=Mt(te),b=ao(I,b),D&&(D=ao(v,D)),L&&(L=ao(V,L)),de=ao(ce,de);var ne=qt(te);(function(De,Be,Le){o.hasOwnProperty(De)?((Le===void 0||o[De].overloadTable!==void 0&&o[De].overloadTable[Le]!==void 0)&&Fe(`Cannot register public name '${De}' twice`),ed(o,De,De),o.hasOwnProperty(Le)&&Fe(`Cannot register multiple overloads of a function with the same number of arguments (${Le})!`),o[De].overloadTable[Le]=Be):(o[De]=Be,Le!==void 0&&(o[De].numArguments=Le))})(ne,function(){Xs(`Cannot construct ${te} due to unbound types`,[E])}),Kr([c,u,h],E?[E]:[],function(De){var Be,Le;De=De[0],Le=E?(Be=De.registeredClass).instancePrototype:xr.prototype;var dt=js(ne,function(){if(Object.getPrototypeOf(this)!==it)throw new oo("Use 'new' to construct "+te);if(vt.constructor_body===void 0)throw new oo(te+" has no accessible constructor");var Et=vt.constructor_body[arguments.length];if(Et===void 0)throw new oo(`Tried to invoke ctor of ${te} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(vt.constructor_body).toString()}) parameters instead!`);return Et.apply(this,arguments)}),it=Object.create(Le,{constructor:{value:dt}});dt.prototype=it;var vt=new qs(te,dt,it,de,Be,b,D,L);vt.baseClass&&(vt.baseClass.__derivedClasses===void 0&&(vt.baseClass.__derivedClasses=[]),vt.baseClass.__derivedClasses.push(vt));var mo=new Pr(te,vt,!0,!1,!1),yr=new Pr(te+"*",vt,!1,!1,!1),Zo=new Pr(te+" const*",vt,!1,!0,!1);return qo[c]={pointerType:yr,constPointerType:Zo},function(Et,Lf,tm){o.hasOwnProperty(Et)||ur("Replacing nonexistant public symbol"),o[Et].overloadTable!==void 0&&tm!==void 0?o[Et].overloadTable[tm]=Lf:(o[Et]=Lf,o[Et].argCount=tm)}(ne,dt),[mo,yr,Zo]})},q:function(c,u,h,E,I,b){var v=na(u,h);I=ao(E,I),Kr([],[c],function(D){var V=`constructor ${(D=D[0]).name}`;if(D.registeredClass.constructor_body===void 0&&(D.registeredClass.constructor_body=[]),D.registeredClass.constructor_body[u-1]!==void 0)throw new oo(`Cannot register multiple constructors with identical number of parameters (${u-1}) for class '${D.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return D.registeredClass.constructor_body[u-1]=()=>{Xs(`Cannot construct ${D.name} due to unbound types`,v)},Kr([],v,function(L){return L.splice(1,0,null),D.registeredClass.constructor_body[u-1]=co(V,L,null,I,b),[]}),[]})},d:function(c,u,h,E,I,b,v,D,V){var L=na(h,E);u=Mt(u),b=ao(I,b),Kr([],[c],function(te){var ce=`${(te=te[0]).name}.${u}`;function de(){Xs(`Cannot call ${ce} due to unbound types`,L)}u.startsWith("@@")&&(u=Symbol[u.substring(2)]),D&&te.registeredClass.pureVirtualFunctions.push(u);var ne=te.registeredClass.instancePrototype,De=ne[u];return De===void 0||De.overloadTable===void 0&&De.className!==te.name&&De.argCount===h-2?(de.argCount=h-2,de.className=te.name,ne[u]=de):(ed(ne,u,ce),ne[u].overloadTable[h-2]=de),Kr([],L,function(Be){var Le=co(ce,Be,te,b,v,V);return ne[u].overloadTable===void 0?(Le.argCount=h-2,ne[u]=Le):ne[u].overloadTable[h-2]=Le,[]}),[]})},D:function(c,u){lr(c,{name:u=Mt(u),fromWireType:function(h){var E=uo.toValue(h);return ad(h),E},toWireType:function(h,E){return uo.toHandle(E)},argPackAdvance:8,readValueFromPointer:Yo,destructorFunction:null})},k:function(c,u,h){var E=Si(h);lr(c,{name:u=Mt(u),fromWireType:function(I){return I},toWireType:function(I,b){return b},argPackAdvance:8,readValueFromPointer:cd(u,E),destructorFunction:null})},c:function(c,u,h,E,I){u=Mt(u),I===-1&&(I=4294967295);var b=Si(h),v=L=>L;if(E===0){var D=32-8*h;v=L=>L<<D>>>D}var V=u.includes("unsigned");lr(c,{name:u,fromWireType:v,toWireType:V?function(L,te){return this.name,te>>>0}:function(L,te){return this.name,te},argPackAdvance:8,readValueFromPointer:dd(u,b,E!==0),destructorFunction:null})},b:function(c,u,h){var E=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][u];function I(b){var v=Ue,D=v[b>>=2],V=v[b+1];return new E(v.buffer,V,D)}lr(c,{name:h=Mt(h),fromWireType:I,argPackAdvance:8,readValueFromPointer:I},{ignoreDuplicateRegistrations:!0})},j:function(c,u){var h=(u=Mt(u))==="std::string";lr(c,{name:u,fromWireType:function(E){var I,b=Ue[E>>2],v=E+4;if(h)for(var D=v,V=0;V<=b;++V){var L=v+V;if(V==b||H[L]==0){var te=io(D,L-D);I===void 0?I=te:(I+="\0",I+=te),D=L+1}}else{var ce=new Array(b);for(V=0;V<b;++V)ce[V]=String.fromCharCode(H[v+V]);I=ce.join("")}return xt(E),I},toWireType:function(E,I){var b;I instanceof ArrayBuffer&&(I=new Uint8Array(I));var v=typeof I=="string";v||I instanceof Uint8Array||I instanceof Uint8ClampedArray||I instanceof Int8Array||Fe("Cannot pass non-string to std::string"),b=h&&v?Wo(I):I.length;var D=lo(4+b+1),V=D+4;if(Ue[D>>2]=b,h&&v)Go(I,H,V,b+1);else if(v)for(var L=0;L<b;++L){var te=I.charCodeAt(L);te>255&&(xt(V),Fe("String has UTF-16 code units that do not fit in 8 bits")),H[V+L]=te}else for(L=0;L<b;++L)H[V+L]=I[L];return E!==null&&E.push(xt,D),D},argPackAdvance:8,readValueFromPointer:Yo,destructorFunction:function(E){xt(E)}})},f:function(c,u,h){var E,I,b,v,D;h=Mt(h),u===2?(E=T,I=w,v=x,b=()=>Je,D=1):u===4&&(E=$,I=G,v=z,b=()=>Ue,D=2),lr(c,{name:h,fromWireType:function(V){for(var L,te=Ue[V>>2],ce=b(),de=V+4,ne=0;ne<=te;++ne){var De=V+4+ne*u;if(ne==te||ce[De>>D]==0){var Be=E(de,De-de);L===void 0?L=Be:(L+="\0",L+=Be),de=De+u}}return xt(V),L},toWireType:function(V,L){typeof L!="string"&&Fe(`Cannot pass non-string to C++ string type ${h}`);var te=v(L),ce=lo(4+te+u);return Ue[ce>>2]=te>>D,I(L,ce+4,te+u),V!==null&&V.push(xt,ce),ce},argPackAdvance:8,readValueFromPointer:Yo,destructorFunction:function(V){xt(V)}})},o:function(c,u){lr(c,{isVoid:!0,name:u=Mt(u),argPackAdvance:0,fromWireType:function(){},toWireType:function(h,E){}})},g:function(c,u,h,E){var I,b;(c=re[c])(u=uo.toValue(u),h=(b=K[I=h])===void 0?Mt(I):b,null,E)},m:ad,l:function(c,u){var h=function(Be,Le){for(var dt,it,vt,mo=new Array(Be),yr=0;yr<Be;++yr)mo[yr]=(dt=Ue[Le+4*yr>>2],it="parameter "+yr,vt=void 0,(vt=Sr[dt])===void 0&&Fe(it+" has unknown type "+Js(dt)),vt);return mo}(c,u),E=h[0],I=E.name+"_$"+h.slice(1).map(function(Be){return Be.name}).join("_")+"$",b=j[I];if(b!==void 0)return b;for(var v=["retType"],D=[E],V="",L=0;L<c-1;++L)V+=(L!==0?", ":"")+"arg"+L,v.push("argType"+L),D.push(h[1+L]);var te="return function "+qt("methodCaller_"+I)+`(handle, name, destructors, args) {
65
+ `,Be.push(ne),aa(Function,Be).apply(null,Le)}function ad(){this.allocated=[void 0],this.freelist=[]}var zt=new ad;function cd(c){c>=zt.reserved&&--zt.get(c).refcount==0&&zt.free(c)}function Lr(){for(var c=0,u=zt.reserved;u<zt.allocated.length;++u)zt.allocated[u]!==void 0&&++c;return c}var uo={toValue:c=>(c||Fe("Cannot use deleted val. handle = "+c),zt.get(c).value),toHandle:c=>{switch(c){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return zt.allocate({refcount:1,value:c})}}};function Qs(c){if(c===null)return"null";var u=typeof c;return u==="object"||u==="array"||u==="function"?c.toString():""+c}function dd(c,u){switch(u){case 2:return function(h){return this.fromWireType(Yn[h>>2])};case 3:return function(h){return this.fromWireType(Zn[h>>3])};default:throw new TypeError("Unknown float type: "+c)}}function ud(c,u,h){switch(u){case 0:return h?function(E){return Q[E]}:function(E){return H[E]};case 1:return h?function(E){return Ie[E>>1]}:function(E){return Je[E>>1]};case 2:return h?function(E){return W[E>>2]}:function(E){return Ue[E>>2]};default:throw new TypeError("Unknown integer type: "+c)}}var S=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,T=(c,u)=>{for(var h=c,E=h>>1,I=E+u/2;!(E>=I)&&Je[E];)++E;if((h=E<<1)-c>32&&S)return S.decode(H.subarray(c,h));for(var b="",v=0;!(v>=u/2);++v){var D=Ie[c+2*v>>1];if(D==0)break;b+=String.fromCharCode(D)}return b},w=(c,u,h)=>{if(h===void 0&&(h=2147483647),h<2)return 0;for(var E=u,I=(h-=2)<2*c.length?h/2:c.length,b=0;b<I;++b){var v=c.charCodeAt(b);Ie[u>>1]=v,u+=2}return Ie[u>>1]=0,u-E},x=c=>2*c.length,$=(c,u)=>{for(var h=0,E="";!(h>=u/4);){var I=W[c+4*h>>2];if(I==0)break;if(++h,I>=65536){var b=I-65536;E+=String.fromCharCode(55296|b>>10,56320|1023&b)}else E+=String.fromCharCode(I)}return E},G=(c,u,h)=>{if(h===void 0&&(h=2147483647),h<4)return 0;for(var E=u,I=E+h-4,b=0;b<c.length;++b){var v=c.charCodeAt(b);if(v>=55296&&v<=57343&&(v=65536+((1023&v)<<10)|1023&c.charCodeAt(++b)),W[u>>2]=v,(u+=4)+4>I)break}return W[u>>2]=0,u-E},z=c=>{for(var u=0,h=0;h<c.length;++h){var E=c.charCodeAt(h);E>=55296&&E<=57343&&++h,u+=4}return u},K={},re=[],j=[],he={},Oe=()=>{if(!Oe.strings){var c={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:l||"./this.program"};for(var u in he)he[u]===void 0?delete c[u]:c[u]=he[u];var h=[];for(var u in c)h.push(`${u}=${c[u]}`);Oe.strings=h}return Oe.strings},Ne,ge,Me,ct=function(c,u,h,E){c||(c=this),this.parent=c,this.mount=c.mount,this.mounted=null,this.id=_.nextInode++,this.name=u,this.mode=h,this.node_ops={},this.stream_ops={},this.rdev=E},Ze=365,Tt=146;Object.defineProperties(ct.prototype,{read:{get:function(){return(this.mode&Ze)===Ze},set:function(c){c?this.mode|=Ze:this.mode&=-366}},write:{get:function(){return(this.mode&Tt)===Tt},set:function(c){c?this.mode|=Tt:this.mode&=-147}},isFolder:{get:function(){return _.isDir(this.mode)}},isDevice:{get:function(){return _.isChrdev(this.mode)}}}),_.FSNode=ct,_.createPreloadedFile=function(c,u,h,E,I,b,v,D,V,L){var te=u?rr.resolve(me.join2(c,u)):c;function ce(de){function ne(De){L&&L(),D||_.createDataFile(c,u,De,E,I,V),b&&b(),Ho()}(function(De,Be,Le,dt){typeof Browser!="undefined"&&Browser.init();var it=!1;return le.forEach(function(vt){it||vt.canHandle(Be)&&(vt.handle(De,Be,Le,dt),it=!0)}),it})(de,te,ne,()=>{v&&v(),Ho()})||ne(de)}ie(),typeof h=="string"?ql(h,de=>ce(de),v):ce(h)},_.staticInit(),function(){for(var c=new Array(256),u=0;u<256;++u)c[u]=String.fromCharCode(u);Gc=c}(),oo=o.BindingError=class extends Error{constructor(c){super(c),this.name="BindingError"}},jc=o.InternalError=class extends Error{constructor(c){super(c),this.name="InternalError"}},xr.prototype.isAliasOf=qc,xr.prototype.clone=Zc,xr.prototype.delete=Xl,xr.prototype.isDeleted=Kc,xr.prototype.deleteLater=ed,o.getInheritedInstanceCount=zl,o.getLiveInheritedInstances=Jl,o.flushPendingDeletes=mr,o.setDelayFunction=Qc,Pr.prototype.getPointee=Zl,Pr.prototype.destructor=id,Pr.prototype.argPackAdvance=8,Pr.prototype.readValueFromPointer=Yo,Pr.prototype.deleteObject=Kl,Pr.prototype.fromWireType=Yc,sd=o.UnboundTypeError=(Ne=Error,(Me=js(ge="UnboundTypeError",function(c){this.name=ge,this.message=c;var u=new Error(c).stack;u!==void 0&&(this.stack=this.toString()+`
66
+ `+u.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(Ne.prototype),Me.prototype.constructor=Me,Me.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},Me),Object.assign(ad.prototype,{get(c){return this.allocated[c]},has(c){return this.allocated[c]!==void 0},allocate(c){var u=this.freelist.pop()||this.allocated.length;return this.allocated[u]=c,u},free(c){this.allocated[c]=void 0,this.freelist.push(c)}}),zt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),zt.reserved=zt.allocated.length,o.count_emval_handles=Lr;var Ke,kt={p:function(c,u,h){throw new to(c).init(u,h),c},C:function(c,u,h){Dt.varargs=h;try{var E=Dt.getStreamFromFD(c);switch(u){case 0:return(I=Dt.get())<0?-28:_.createStream(E,I).fd;case 1:case 2:case 6:case 7:return 0;case 3:return E.flags;case 4:var I=Dt.get();return E.flags|=I,0;case 5:return I=Dt.get(),Ie[I+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return b=28,W[ca()>>2]=b,-1}}catch(v){if(_===void 0||v.name!=="ErrnoError")throw v;return-v.errno}var b},w:function(c,u,h,E){Dt.varargs=E;try{u=Dt.getStr(u),u=Dt.calculateAt(c,u);var I=E?Dt.get():0;return _.open(u,h,I).fd}catch(b){if(_===void 0||b.name!=="ErrnoError")throw b;return-b.errno}},t:function(c,u,h,E,I){},n:function(c,u,h,E,I){var b=yi(h);lr(c,{name:u=Mt(u),fromWireType:function(v){return!!v},toWireType:function(v,D){return D?E:I},argPackAdvance:8,readValueFromPointer:function(v){var D;if(h===1)D=Q;else if(h===2)D=Ie;else{if(h!==4)throw new TypeError("Unknown boolean type size: "+u);D=W}return this.fromWireType(D[v>>b])},destructorFunction:null})},r:function(c,u,h,E,I,b,v,D,V,L,te,ce,de){te=Mt(te),b=ao(I,b),D&&(D=ao(v,D)),L&&(L=ao(V,L)),de=ao(ce,de);var ne=qt(te);(function(De,Be,Le){o.hasOwnProperty(De)?((Le===void 0||o[De].overloadTable!==void 0&&o[De].overloadTable[Le]!==void 0)&&Fe(`Cannot register public name '${De}' twice`),td(o,De,De),o.hasOwnProperty(Le)&&Fe(`Cannot register multiple overloads of a function with the same number of arguments (${Le})!`),o[De].overloadTable[Le]=Be):(o[De]=Be,Le!==void 0&&(o[De].numArguments=Le))})(ne,function(){Xs(`Cannot construct ${te} due to unbound types`,[E])}),ei([c,u,h],E?[E]:[],function(De){var Be,Le;De=De[0],Le=E?(Be=De.registeredClass).instancePrototype:xr.prototype;var dt=js(ne,function(){if(Object.getPrototypeOf(this)!==it)throw new oo("Use 'new' to construct "+te);if(vt.constructor_body===void 0)throw new oo(te+" has no accessible constructor");var Et=vt.constructor_body[arguments.length];if(Et===void 0)throw new oo(`Tried to invoke ctor of ${te} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(vt.constructor_body).toString()}) parameters instead!`);return Et.apply(this,arguments)}),it=Object.create(Le,{constructor:{value:dt}});dt.prototype=it;var vt=new qs(te,dt,it,de,Be,b,D,L);vt.baseClass&&(vt.baseClass.__derivedClasses===void 0&&(vt.baseClass.__derivedClasses=[]),vt.baseClass.__derivedClasses.push(vt));var mo=new Pr(te,vt,!0,!1,!1),yr=new Pr(te+"*",vt,!1,!1,!1),Zo=new Pr(te+" const*",vt,!1,!0,!1);return qo[c]={pointerType:yr,constPointerType:Zo},function(Et,Lf,tm){o.hasOwnProperty(Et)||ur("Replacing nonexistant public symbol"),o[Et].overloadTable!==void 0&&tm!==void 0?o[Et].overloadTable[tm]=Lf:(o[Et]=Lf,o[Et].argCount=tm)}(ne,dt),[mo,yr,Zo]})},q:function(c,u,h,E,I,b){var v=na(u,h);I=ao(E,I),ei([],[c],function(D){var V=`constructor ${(D=D[0]).name}`;if(D.registeredClass.constructor_body===void 0&&(D.registeredClass.constructor_body=[]),D.registeredClass.constructor_body[u-1]!==void 0)throw new oo(`Cannot register multiple constructors with identical number of parameters (${u-1}) for class '${D.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return D.registeredClass.constructor_body[u-1]=()=>{Xs(`Cannot construct ${D.name} due to unbound types`,v)},ei([],v,function(L){return L.splice(1,0,null),D.registeredClass.constructor_body[u-1]=co(V,L,null,I,b),[]}),[]})},d:function(c,u,h,E,I,b,v,D,V){var L=na(h,E);u=Mt(u),b=ao(I,b),ei([],[c],function(te){var ce=`${(te=te[0]).name}.${u}`;function de(){Xs(`Cannot call ${ce} due to unbound types`,L)}u.startsWith("@@")&&(u=Symbol[u.substring(2)]),D&&te.registeredClass.pureVirtualFunctions.push(u);var ne=te.registeredClass.instancePrototype,De=ne[u];return De===void 0||De.overloadTable===void 0&&De.className!==te.name&&De.argCount===h-2?(de.argCount=h-2,de.className=te.name,ne[u]=de):(td(ne,u,ce),ne[u].overloadTable[h-2]=de),ei([],L,function(Be){var Le=co(ce,Be,te,b,v,V);return ne[u].overloadTable===void 0?(Le.argCount=h-2,ne[u]=Le):ne[u].overloadTable[h-2]=Le,[]}),[]})},D:function(c,u){lr(c,{name:u=Mt(u),fromWireType:function(h){var E=uo.toValue(h);return cd(h),E},toWireType:function(h,E){return uo.toHandle(E)},argPackAdvance:8,readValueFromPointer:Yo,destructorFunction:null})},k:function(c,u,h){var E=yi(h);lr(c,{name:u=Mt(u),fromWireType:function(I){return I},toWireType:function(I,b){return b},argPackAdvance:8,readValueFromPointer:dd(u,E),destructorFunction:null})},c:function(c,u,h,E,I){u=Mt(u),I===-1&&(I=4294967295);var b=yi(h),v=L=>L;if(E===0){var D=32-8*h;v=L=>L<<D>>>D}var V=u.includes("unsigned");lr(c,{name:u,fromWireType:v,toWireType:V?function(L,te){return this.name,te>>>0}:function(L,te){return this.name,te},argPackAdvance:8,readValueFromPointer:ud(u,b,E!==0),destructorFunction:null})},b:function(c,u,h){var E=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][u];function I(b){var v=Ue,D=v[b>>=2],V=v[b+1];return new E(v.buffer,V,D)}lr(c,{name:h=Mt(h),fromWireType:I,argPackAdvance:8,readValueFromPointer:I},{ignoreDuplicateRegistrations:!0})},j:function(c,u){var h=(u=Mt(u))==="std::string";lr(c,{name:u,fromWireType:function(E){var I,b=Ue[E>>2],v=E+4;if(h)for(var D=v,V=0;V<=b;++V){var L=v+V;if(V==b||H[L]==0){var te=io(D,L-D);I===void 0?I=te:(I+="\0",I+=te),D=L+1}}else{var ce=new Array(b);for(V=0;V<b;++V)ce[V]=String.fromCharCode(H[v+V]);I=ce.join("")}return xt(E),I},toWireType:function(E,I){var b;I instanceof ArrayBuffer&&(I=new Uint8Array(I));var v=typeof I=="string";v||I instanceof Uint8Array||I instanceof Uint8ClampedArray||I instanceof Int8Array||Fe("Cannot pass non-string to std::string"),b=h&&v?Wo(I):I.length;var D=lo(4+b+1),V=D+4;if(Ue[D>>2]=b,h&&v)Go(I,H,V,b+1);else if(v)for(var L=0;L<b;++L){var te=I.charCodeAt(L);te>255&&(xt(V),Fe("String has UTF-16 code units that do not fit in 8 bits")),H[V+L]=te}else for(L=0;L<b;++L)H[V+L]=I[L];return E!==null&&E.push(xt,D),D},argPackAdvance:8,readValueFromPointer:Yo,destructorFunction:function(E){xt(E)}})},f:function(c,u,h){var E,I,b,v,D;h=Mt(h),u===2?(E=T,I=w,v=x,b=()=>Je,D=1):u===4&&(E=$,I=G,v=z,b=()=>Ue,D=2),lr(c,{name:h,fromWireType:function(V){for(var L,te=Ue[V>>2],ce=b(),de=V+4,ne=0;ne<=te;++ne){var De=V+4+ne*u;if(ne==te||ce[De>>D]==0){var Be=E(de,De-de);L===void 0?L=Be:(L+="\0",L+=Be),de=De+u}}return xt(V),L},toWireType:function(V,L){typeof L!="string"&&Fe(`Cannot pass non-string to C++ string type ${h}`);var te=v(L),ce=lo(4+te+u);return Ue[ce>>2]=te>>D,I(L,ce+4,te+u),V!==null&&V.push(xt,ce),ce},argPackAdvance:8,readValueFromPointer:Yo,destructorFunction:function(V){xt(V)}})},o:function(c,u){lr(c,{isVoid:!0,name:u=Mt(u),argPackAdvance:0,fromWireType:function(){},toWireType:function(h,E){}})},g:function(c,u,h,E){var I,b;(c=re[c])(u=uo.toValue(u),h=(b=K[I=h])===void 0?Mt(I):b,null,E)},m:cd,l:function(c,u){var h=function(Be,Le){for(var dt,it,vt,mo=new Array(Be),yr=0;yr<Be;++yr)mo[yr]=(dt=Ue[Le+4*yr>>2],it="parameter "+yr,vt=void 0,(vt=Sr[dt])===void 0&&Fe(it+" has unknown type "+Js(dt)),vt);return mo}(c,u),E=h[0],I=E.name+"_$"+h.slice(1).map(function(Be){return Be.name}).join("_")+"$",b=j[I];if(b!==void 0)return b;for(var v=["retType"],D=[E],V="",L=0;L<c-1;++L)V+=(L!==0?", ":"")+"arg"+L,v.push("argType"+L),D.push(h[1+L]);var te="return function "+qt("methodCaller_"+I)+`(handle, name, destructors, args) {
67
67
  `,ce=0;for(L=0;L<c-1;++L)te+=" var arg"+L+" = argType"+L+".readValueFromPointer(args"+(ce?"+"+ce:"")+`);
68
68
  `,ce+=h[L+1].argPackAdvance;for(te+=" var rv = handle[name]("+V+`);
69
69
  `,L=0;L<c-1;++L)h[L+1].deleteObject&&(te+=" argType"+L+".deleteObject(arg"+L+`);
70
70
  `);E.isVoid||(te+=` return retType.toWireType(destructors, rv);
71
71
  `),te+=`};
72
- `,v.push(te);var de,ne,De=aa(Function,v).apply(null,D);return de=De,ne=re.length,re.push(de),b=ne,j[I]=b,b},a:()=>{Yr("")},e:function(){return Date.now()},v:()=>H.length,A:(c,u,h)=>H.copyWithin(c,u,u+h),u:c=>{H.length,Yr("OOM")},y:(c,u)=>{var h=0;return Oe().forEach(function(E,I){var b=u+h;Ue[c+4*I>>2]=b,((v,D)=>{for(var V=0;V<v.length;++V)Q[0|D++]=v.charCodeAt(V);Q[0|D]=0})(E,b),h+=E.length+1}),0},z:(c,u)=>{var h=Oe();Ue[c>>2]=h.length;var E=0;return h.forEach(function(I){E+=I.length+1}),Ue[u>>2]=E,0},i:function(c){try{var u=Dt.getStreamFromFD(c);return _.close(u),0}catch(h){if(_===void 0||h.name!=="ErrnoError")throw h;return h.errno}},x:function(c,u){try{var h=Dt.getStreamFromFD(c),E=h.tty?2:_.isDir(h.mode)?3:_.isLink(h.mode)?7:4;return Q[u|0]=E,Ie[u+2>>1]=0,rt=[0,(Se=0,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[u+8>>2]=rt[0],W[u+12>>2]=rt[1],rt=[0,(Se=0,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[u+16>>2]=rt[0],W[u+20>>2]=rt[1],0}catch(I){if(_===void 0||I.name!=="ErrnoError")throw I;return I.errno}},B:function(c,u,h,E){try{var I=((b,v,D,V)=>{for(var L=0,te=0;te<D;te++){var ce=Ue[v>>2],de=Ue[v+4>>2];v+=8;var ne=_.read(b,Q,ce,de,V);if(ne<0)return-1;if(L+=ne,ne<de)break;V!==void 0&&(V+=ne)}return L})(Dt.getStreamFromFD(c),u,h);return Ue[E>>2]=I,0}catch(b){if(_===void 0||b.name!=="ErrnoError")throw b;return b.errno}},s:function(c,u,h,E,I){var b,v,D=(v=h)+2097152>>>0<4194305-!!(b=u)?(b>>>0)+4294967296*v:NaN;try{if(isNaN(D))return 61;var V=Dt.getStreamFromFD(c);return _.llseek(V,D,E),rt=[V.position>>>0,(Se=V.position,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[I>>2]=rt[0],W[I+4>>2]=rt[1],V.getdents&&D===0&&E===0&&(V.getdents=null),0}catch(L){if(_===void 0||L.name!=="ErrnoError")throw L;return L.errno}},h:function(c,u,h,E){try{var I=((b,v,D,V)=>{for(var L=0,te=0;te<D;te++){var ce=Ue[v>>2],de=Ue[v+4>>2];v+=8;var ne=_.write(b,Q,ce,de,V);if(ne<0)return-1;L+=ne,V!==void 0&&(V+=ne)}return L})(Dt.getStreamFromFD(c),u,h);return Ue[E>>2]=I,0}catch(b){if(_===void 0||b.name!=="ErrnoError")throw b;return b.errno}}},lo=(function(){var c,u,h,E,I={a:kt};function b(v,D){var V,L,te=v.exports;return N=(k=te).E,V=N.buffer,o.HEAP8=Q=new Int8Array(V),o.HEAP16=Ie=new Int16Array(V),o.HEAP32=W=new Int32Array(V),o.HEAPU8=H=new Uint8Array(V),o.HEAPU16=Je=new Uint16Array(V),o.HEAPU32=Ue=new Uint32Array(V),o.HEAPF32=Yn=new Float32Array(V),o.HEAPF64=Zn=new Float64Array(V),Kn=k.H,L=k.F,Hs.unshift(L),Ho(),te}if(ie(),o.instantiateWasm)try{return o.instantiateWasm(I,b)}catch(v){C("Module.instantiateWasm callback failed with error: "+v),r(v)}(c=y,u=Ti,h=I,E=function(v){b(v.instance)},c||typeof WebAssembly.instantiateStreaming!="function"||Gt(u)||typeof fetch!="function"?Zr(u,h,E):fetch(u,{credentials:"same-origin"}).then(v=>WebAssembly.instantiateStreaming(v,h).then(E,function(D){return C("wasm streaming compile failed: "+D),C("falling back to ArrayBuffer instantiation"),Zr(u,h,E)}))).catch(r)}(),c=>(lo=k.G)(c)),xt=c=>(xt=k.I)(c),ca=()=>(ca=k.J)(),kr=c=>(kr=k.K)(c),da=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=k.L)(),c=>(da=k.M)(c));o.dynCall_jiji=(c,u,h,E,I)=>(o.dynCall_jiji=k.N)(c,u,h,E,I),o._ff_h264_cabac_tables=67061;function Ys(){function c(){Ze||(Ze=!0,o.calledRun=!0,ea||(o.noFSInit||_.init.initialized||_.init(),_.ignorePermissions=!1,Mr.init(),eo(Hs),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)u=o.postRun.shift(),Ki.unshift(u);var u;eo(Ki)}()))}Ir>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)u=o.preRun.shift(),Qr.unshift(u);var u;eo(Qr)}(),Ir>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),c()},1)):c()))}if(_i=function c(){Ze||Ys(),Ze||(_i=c)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Ys(),t.ready}})(),ab=nb,cb=class extends yc{constructor(i){super(ab,i!=null&&i.wasmPath?fetch(i==null?void 0:i.wasmPath).then(t=>t.arrayBuffer()):void 0,i==null?void 0:i.workerMode,i==null?void 0:i.canvas,i==null?void 0:i.yuvMode)}},_U=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((S,T)=>{e=S,r=T});var s,n=Object.assign({},o),a=typeof window=="object",d=typeof importScripts=="function",l=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(a||d)&&(d?l=self.location.href:typeof document!="undefined"&&document.currentScript&&(l=document.currentScript.src),i&&(l=i),l=l.indexOf("blob:")!==0?l.substr(0,l.replace(/[?#].*/,"").lastIndexOf("/")+1):"",d&&(s=S=>{var T=new XMLHttpRequest;return T.open("GET",S,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}));var p,f=o.print||console.log.bind(console),g=o.printErr||console.error.bind(console);Object.assign(o,n),n=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(p=o.wasmBinary);var y,R;o.noExitRuntime,typeof WebAssembly!="object"&&Ir("no native wasm support detected");var C,N,k,Q,H,Ie,Je,W,Ue,Yn=!1,Zn=[],Kn=[],ea=[],Qr=0,Hs=null,Ki=null;function Ir(S){o.onAbort&&o.onAbort(S),g(S="Aborted("+S+")"),Yn=!0,S+=". Build with -sASSERTIONS for more info.";var T=new WebAssembly.RuntimeError(S);throw r(T),T}var Ei,_i;function ie(S){return S.startsWith("data:application/octet-stream;base64,")}function Ho(S){if(S==Ei&&p)return new Uint8Array(p);if(s)return s(S);throw"both async and sync fetching of the wasm failed"}function Yr(S,T,w){return function(x){return p||!a&&!d||typeof fetch!="function"?Promise.resolve().then(()=>Ho(x)):fetch(x,{credentials:"same-origin"}).then($=>{if(!$.ok)throw"failed to load wasm binary file at '"+x+"'";return $.arrayBuffer()}).catch(()=>Ho(x))}(S).then(x=>WebAssembly.instantiate(x,T)).then(x=>x).then(w,x=>{g("failed to asynchronously prepare wasm: "+x),Ir(x)})}ie(Ei="videodec_simd.wasm")||(_i=Ei,Ei=o.locateFile?o.locateFile(_i,l):l+_i);var Ti=S=>{for(;S.length>0;)S.shift()(o)};function ta(S){this.excPtr=S,this.ptr=S-24,this.set_type=function(T){Ie[this.ptr+4>>2]=T},this.get_type=function(){return Ie[this.ptr+4>>2]},this.set_destructor=function(T){Ie[this.ptr+8>>2]=T},this.get_destructor=function(){return Ie[this.ptr+8>>2]},this.set_caught=function(T){T=T?1:0,C[this.ptr+12|0]=T},this.get_caught=function(){return C[this.ptr+12|0]!=0},this.set_rethrown=function(T){T=T?1:0,C[this.ptr+13|0]=T},this.get_rethrown=function(){return C[this.ptr+13|0]!=0},this.init=function(T,w){this.set_adjusted_ptr(0),this.set_type(T),this.set_destructor(w)},this.set_adjusted_ptr=function(T){Ie[this.ptr+16>>2]=T},this.get_adjusted_ptr=function(){return Ie[this.ptr+16>>2]},this.get_exception_ptr=function(){if(cd(this.get_type()))return Ie[this.excPtr>>2];var T=this.get_adjusted_ptr();return T!==0?T:this.excPtr}}function Se(S){switch(S){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${S}`)}}var rt=void 0;function Gt(S){for(var T="",w=S;N[w];)T+=rt[N[w++]];return T}var X={},Zr={},eo={},to=void 0;function me(S){throw new to(S)}var ra=void 0;function rr(S){throw new ra(S)}function ro(S,T,w){function x(K){var re=w(K);re.length!==S.length&&rr("Mismatched type converter count");for(var j=0;j<S.length;++j)jt(S[j],re[j])}S.forEach(function(K){eo[K]=T});var $=new Array(T.length),G=[],z=0;T.forEach((K,re)=>{Zr.hasOwnProperty(K)?$[re]=Zr[K]:(G.push(K),X.hasOwnProperty(K)||(X[K]=[]),X[K].push(()=>{$[re]=Zr[K],++z===G.length&&x($)}))}),G.length===0&&x($)}function jt(S,T,w={}){if(!("argPackAdvance"in T))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(x,$,G={}){var z=$.name;if(x||me(`type "${z}" must have a positive integer typeid pointer`),Zr.hasOwnProperty(x)){if(G.ignoreDuplicateRegistrations)return;me(`Cannot register type '${z}' twice`)}if(Zr[x]=$,delete eo[x],X.hasOwnProperty(x)){var K=X[x];delete X[x],K.forEach(re=>re())}}(S,T,w)}function ia(S){if(!(this instanceof ur)||!(S instanceof ur))return!1;for(var T=this.$$.ptrType.registeredClass,w=this.$$.ptr,x=S.$$.ptrType.registeredClass,$=S.$$.ptr;T.baseClass;)w=T.upcast(w),T=T.baseClass;for(;x.baseClass;)$=x.upcast($),x=x.baseClass;return T===x&&w===$}function Wo(S){me(S.$$.ptrType.registeredClass.name+" instance already deleted")}var Go=!1;function Ws(S){}function Mr(S){S.count.value-=1,S.count.value===0&&function(T){T.smartPtr?T.smartPtrType.rawDestructor(T.smartPtr):T.ptrType.registeredClass.rawDestructor(T.ptr)}(S)}function oa(S,T,w){if(T===w)return S;if(w.baseClass===void 0)return null;var x=oa(S,T,w.baseClass);return x===null?null:w.downcast(x)}var ve={};function ql(){return Object.keys(Si).length}function le(){var S=[];for(var T in Si)Si.hasOwnProperty(T)&&S.push(Si[T]);return S}var Ii=[];function _(){for(;Ii.length;){var S=Ii.pop();S.$$.deleteScheduled=!1,S.delete()}}var io=void 0;function Dt(S){io=S,Ii.length&&io&&io(_)}var Si={};function Wc(S,T){return T=function(w,x){for(x===void 0&&me("ptr should not be undefined");w.baseClass;)x=w.upcast(x),w=w.baseClass;return x}(S,T),Si[T]}function Mt(S,T){return T.ptrType&&T.ptr||rr("makeClassHandle requires ptr and ptrType"),!!T.smartPtrType!=!!T.smartPtr&&rr("Both smartPtrType and smartPtr must be specified"),T.count={value:1},Sr(Object.create(S,{$$:{value:T}}))}function P(S){var T=this.getPointee(S);if(!T)return this.destructor(S),null;var w=Wc(this.registeredClass,T);if(w!==void 0){if(w.$$.count.value===0)return w.$$.ptr=T,w.$$.smartPtr=S,w.clone();var x=w.clone();return this.destructor(S),x}function $(){return this.isSmartPointer?Mt(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:T,smartPtrType:this,smartPtr:S}):Mt(this.registeredClass.instancePrototype,{ptrType:this,ptr:S})}var G,z=this.registeredClass.getActualType(T),K=ve[z];if(!K)return $.call(this);G=this.isConst?K.constPointerType:K.pointerType;var re=oa(T,this.registeredClass,G.registeredClass);return re===null?$.call(this):this.isSmartPointer?Mt(G.registeredClass.instancePrototype,{ptrType:G,ptr:re,smartPtrType:this,smartPtr:S}):Mt(G.registeredClass.instancePrototype,{ptrType:G,ptr:re})}var Sr=function(S){return typeof FinalizationRegistry=="undefined"?(Sr=T=>T,S):(Go=new FinalizationRegistry(T=>{Mr(T.$$)}),Ws=T=>Go.unregister(T),(Sr=T=>{var w=T.$$;if(w.smartPtr){var x={$$:w};Go.register(T,x,T)}return T})(S))};function Gs(){if(this.$$.ptr||Wo(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var S,T=Sr(Object.create(Object.getPrototypeOf(this),{$$:{value:(S=this.$$,{count:S.count,deleteScheduled:S.deleteScheduled,preservePointerOnDelete:S.preservePointerOnDelete,ptr:S.ptr,ptrType:S.ptrType,smartPtr:S.smartPtr,smartPtrType:S.smartPtrType})}}));return T.$$.count.value+=1,T.$$.deleteScheduled=!1,T}function oo(){this.$$.ptr||Wo(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),Ws(this),Mr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Fe(){return!this.$$.ptr}function Gc(){return this.$$.ptr||Wo(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),Ii.push(this),Ii.length===1&&io&&io(_),this.$$.deleteScheduled=!0,this}function ur(){}function Kr(S){if(S===void 0)return"_unknown";var T=(S=S.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return T>=48&&T<=57?`_${S}`:S}function lr(S,T){return S=Kr(S),{[S]:function(){return T.apply(this,arguments)}}[S]}function jc(S,T,w){if(S[T].overloadTable===void 0){var x=S[T];S[T]=function(){return S[T].overloadTable.hasOwnProperty(arguments.length)||me(`Function '${w}' called with an invalid number of arguments (${arguments.length}) - expects one of (${S[T].overloadTable})!`),S[T].overloadTable[arguments.length].apply(this,arguments)},S[T].overloadTable=[],S[T].overloadTable[x.argCount]=x}}function sa(S,T,w,x,$,G,z,K){this.name=S,this.constructor=T,this.instancePrototype=w,this.rawDestructor=x,this.baseClass=$,this.getActualType=G,this.upcast=z,this.downcast=K,this.pureVirtualFunctions=[]}function jo(S,T,w){for(;T!==w;)T.upcast||me(`Expected null or instance of ${w.name}, got an instance of ${T.name}`),S=T.upcast(S),T=T.baseClass;return S}function qc(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Qo(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`);var w=T.$$.ptrType.registeredClass;return jo(T.$$.ptr,w,this.registeredClass)}function zc(S,T){var w;if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),this.isSmartPointer?(w=this.rawConstructor(),S!==null&&S.push(this.rawDestructor,w),w):0;T.$$||me(`Cannot pass "${Qo(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&T.$$.ptrType.isConst&&me(`Cannot convert argument of type ${T.$$.smartPtrType?T.$$.smartPtrType.name:T.$$.ptrType.name} to parameter type ${this.name}`);var x=T.$$.ptrType.registeredClass;if(w=jo(T.$$.ptr,x,this.registeredClass),this.isSmartPointer)switch(T.$$.smartPtr===void 0&&me("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:T.$$.smartPtrType===this?w=T.$$.smartPtr:me(`Cannot convert argument of type ${T.$$.smartPtrType?T.$$.smartPtrType.name:T.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:w=T.$$.smartPtr;break;case 2:if(T.$$.smartPtrType===this)w=T.$$.smartPtr;else{var $=T.clone();w=this.rawShare(w,qs.toHandle(function(){$.delete()})),S!==null&&S.push(this.rawDestructor,w)}break;default:me("Unsupporting sharing policy")}return w}function Jc(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Qo(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`),T.$$.ptrType.isConst&&me(`Cannot convert argument of type ${T.$$.ptrType.name} to parameter type ${this.name}`);var w=T.$$.ptrType.registeredClass;return jo(T.$$.ptr,w,this.registeredClass)}function qo(S){return this.fromWireType(H[S>>2])}function zl(S){return this.rawGetPointee&&(S=this.rawGetPointee(S)),S}function Jl(S){this.rawDestructor&&this.rawDestructor(S)}function zo(S){S!==null&&S.delete()}function mr(S,T,w,x,$,G,z,K,re,j,he){this.name=S,this.registeredClass=T,this.isReference=w,this.isConst=x,this.isSmartPointer=$,this.pointeeType=G,this.sharingPolicy=z,this.rawGetPointee=K,this.rawConstructor=re,this.rawShare=j,this.rawDestructor=he,$||T.baseClass!==void 0?this.toWireType=zc:x?(this.toWireType=qc,this.destructorFunction=null):(this.toWireType=Jc,this.destructorFunction=null)}var ei=[],Xc=S=>{var T=ei[S];return T||(S>=ei.length&&(ei.length=S+1),ei[S]=T=Ue.get(S)),T},Jo=(S,T,w)=>S.includes("j")?((x,$,G)=>{var z=o["dynCall_"+x];return G&&G.length?z.apply(null,[$].concat(G)):z.call(null,$)})(S,T,w):Xc(T).apply(null,w);function so(S,T){var w,x,$,G=(S=Gt(S)).includes("j")?(w=S,x=T,$=[],function(){return $.length=0,Object.assign($,arguments),Jo(w,x,$)}):Xc(T);return typeof G!="function"&&me(`unknown function pointer with signature ${S}: ${T}`),G}var Xo=void 0;function Qc(S){var T=Qs(S),w=Gt(T);return Lr(T),w}function no(S,T){var w=[],x={};throw T.forEach(function $(G){x[G]||Zr[G]||(eo[G]?eo[G].forEach($):(w.push(G),x[G]=!0))}),new Xo(`${S}: `+w.map(Qc).join([", "]))}function Yc(S,T){for(var w=[],x=0;x<S;x++)w.push(Ie[T+4*x>>2]);return w}function Xl(S){for(;S.length;){var T=S.pop();S.pop()(T)}}function Zc(S,T){if(!(S instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof S} which is not a function`);var w=lr(S.name||"unknownFunctionName",function(){});w.prototype=S.prototype;var x=new w,$=S.apply(x,T);return $ instanceof Object?$:x}function Kc(S,T,w,x,$,G){var z=T.length;z<2&&me("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var K=T[1]!==null&&w!==null,re=!1,j=1;j<T.length;++j)if(T[j]!==null&&T[j].destructorFunction===void 0){re=!0;break}var he=T[0].name!=="void",Oe="",Ne="";for(j=0;j<z-2;++j)Oe+=(j!==0?", ":"")+"arg"+j,Ne+=(j!==0?", ":"")+"arg"+j+"Wired";var ge=`
73
- return function ${Kr(S)}(${Oe}) {
72
+ `,v.push(te);var de,ne,De=aa(Function,v).apply(null,D);return de=De,ne=re.length,re.push(de),b=ne,j[I]=b,b},a:()=>{Zr("")},e:function(){return Date.now()},v:()=>H.length,A:(c,u,h)=>H.copyWithin(c,u,u+h),u:c=>{H.length,Zr("OOM")},y:(c,u)=>{var h=0;return Oe().forEach(function(E,I){var b=u+h;Ue[c+4*I>>2]=b,((v,D)=>{for(var V=0;V<v.length;++V)Q[0|D++]=v.charCodeAt(V);Q[0|D]=0})(E,b),h+=E.length+1}),0},z:(c,u)=>{var h=Oe();Ue[c>>2]=h.length;var E=0;return h.forEach(function(I){E+=I.length+1}),Ue[u>>2]=E,0},i:function(c){try{var u=Dt.getStreamFromFD(c);return _.close(u),0}catch(h){if(_===void 0||h.name!=="ErrnoError")throw h;return h.errno}},x:function(c,u){try{var h=Dt.getStreamFromFD(c),E=h.tty?2:_.isDir(h.mode)?3:_.isLink(h.mode)?7:4;return Q[u|0]=E,Ie[u+2>>1]=0,rt=[0,(Se=0,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[u+8>>2]=rt[0],W[u+12>>2]=rt[1],rt=[0,(Se=0,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[u+16>>2]=rt[0],W[u+20>>2]=rt[1],0}catch(I){if(_===void 0||I.name!=="ErrnoError")throw I;return I.errno}},B:function(c,u,h,E){try{var I=((b,v,D,V)=>{for(var L=0,te=0;te<D;te++){var ce=Ue[v>>2],de=Ue[v+4>>2];v+=8;var ne=_.read(b,Q,ce,de,V);if(ne<0)return-1;if(L+=ne,ne<de)break;V!==void 0&&(V+=ne)}return L})(Dt.getStreamFromFD(c),u,h);return Ue[E>>2]=I,0}catch(b){if(_===void 0||b.name!=="ErrnoError")throw b;return b.errno}},s:function(c,u,h,E,I){var b,v,D=(v=h)+2097152>>>0<4194305-!!(b=u)?(b>>>0)+4294967296*v:NaN;try{if(isNaN(D))return 61;var V=Dt.getStreamFromFD(c);return _.llseek(V,D,E),rt=[V.position>>>0,(Se=V.position,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[I>>2]=rt[0],W[I+4>>2]=rt[1],V.getdents&&D===0&&E===0&&(V.getdents=null),0}catch(L){if(_===void 0||L.name!=="ErrnoError")throw L;return L.errno}},h:function(c,u,h,E){try{var I=((b,v,D,V)=>{for(var L=0,te=0;te<D;te++){var ce=Ue[v>>2],de=Ue[v+4>>2];v+=8;var ne=_.write(b,Q,ce,de,V);if(ne<0)return-1;L+=ne,V!==void 0&&(V+=ne)}return L})(Dt.getStreamFromFD(c),u,h);return Ue[E>>2]=I,0}catch(b){if(_===void 0||b.name!=="ErrnoError")throw b;return b.errno}}},lo=(function(){var c,u,h,E,I={a:kt};function b(v,D){var V,L,te=v.exports;return N=(k=te).E,V=N.buffer,o.HEAP8=Q=new Int8Array(V),o.HEAP16=Ie=new Int16Array(V),o.HEAP32=W=new Int32Array(V),o.HEAPU8=H=new Uint8Array(V),o.HEAPU16=Je=new Uint16Array(V),o.HEAPU32=Ue=new Uint32Array(V),o.HEAPF32=Yn=new Float32Array(V),o.HEAPF64=Zn=new Float64Array(V),Kn=k.H,L=k.F,Hs.unshift(L),Ho(),te}if(ie(),o.instantiateWasm)try{return o.instantiateWasm(I,b)}catch(v){C("Module.instantiateWasm callback failed with error: "+v),r(v)}(c=y,u=Ii,h=I,E=function(v){b(v.instance)},c||typeof WebAssembly.instantiateStreaming!="function"||Gt(u)||typeof fetch!="function"?Kr(u,h,E):fetch(u,{credentials:"same-origin"}).then(v=>WebAssembly.instantiateStreaming(v,h).then(E,function(D){return C("wasm streaming compile failed: "+D),C("falling back to ArrayBuffer instantiation"),Kr(u,h,E)}))).catch(r)}(),c=>(lo=k.G)(c)),xt=c=>(xt=k.I)(c),ca=()=>(ca=k.J)(),kr=c=>(kr=k.K)(c),da=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=k.L)(),c=>(da=k.M)(c));o.dynCall_jiji=(c,u,h,E,I)=>(o.dynCall_jiji=k.N)(c,u,h,E,I),o._ff_h264_cabac_tables=67061;function Ys(){function c(){Ke||(Ke=!0,o.calledRun=!0,ea||(o.noFSInit||_.init.initialized||_.init(),_.ignorePermissions=!1,Mr.init(),eo(Hs),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)u=o.postRun.shift(),Ki.unshift(u);var u;eo(Ki)}()))}Ir>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)u=o.preRun.shift(),Yr.unshift(u);var u;eo(Yr)}(),Ir>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),c()},1)):c()))}if(Ti=function c(){Ke||Ys(),Ke||(Ti=c)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Ys(),t.ready}})(),nb=sb,ab=class extends yc{constructor(i){super(nb,i!=null&&i.wasmPath?fetch(i==null?void 0:i.wasmPath).then(t=>t.arrayBuffer()):void 0,i==null?void 0:i.workerMode,i==null?void 0:i.canvas,i==null?void 0:i.yuvMode)}},_U=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((S,T)=>{e=S,r=T});var s,n=Object.assign({},o),a=typeof window=="object",d=typeof importScripts=="function",l=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(a||d)&&(d?l=self.location.href:typeof document!="undefined"&&document.currentScript&&(l=document.currentScript.src),i&&(l=i),l=l.indexOf("blob:")!==0?l.substr(0,l.replace(/[?#].*/,"").lastIndexOf("/")+1):"",d&&(s=S=>{var T=new XMLHttpRequest;return T.open("GET",S,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}));var p,f=o.print||console.log.bind(console),g=o.printErr||console.error.bind(console);Object.assign(o,n),n=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(p=o.wasmBinary);var y,R;o.noExitRuntime,typeof WebAssembly!="object"&&Ir("no native wasm support detected");var C,N,k,Q,H,Ie,Je,W,Ue,Yn=!1,Zn=[],Kn=[],ea=[],Yr=0,Hs=null,Ki=null;function Ir(S){o.onAbort&&o.onAbort(S),g(S="Aborted("+S+")"),Yn=!0,S+=". Build with -sASSERTIONS for more info.";var T=new WebAssembly.RuntimeError(S);throw r(T),T}var _i,Ti;function ie(S){return S.startsWith("data:application/octet-stream;base64,")}function Ho(S){if(S==_i&&p)return new Uint8Array(p);if(s)return s(S);throw"both async and sync fetching of the wasm failed"}function Zr(S,T,w){return function(x){return p||!a&&!d||typeof fetch!="function"?Promise.resolve().then(()=>Ho(x)):fetch(x,{credentials:"same-origin"}).then($=>{if(!$.ok)throw"failed to load wasm binary file at '"+x+"'";return $.arrayBuffer()}).catch(()=>Ho(x))}(S).then(x=>WebAssembly.instantiate(x,T)).then(x=>x).then(w,x=>{g("failed to asynchronously prepare wasm: "+x),Ir(x)})}ie(_i="videodec_simd.wasm")||(Ti=_i,_i=o.locateFile?o.locateFile(Ti,l):l+Ti);var Ii=S=>{for(;S.length>0;)S.shift()(o)};function ta(S){this.excPtr=S,this.ptr=S-24,this.set_type=function(T){Ie[this.ptr+4>>2]=T},this.get_type=function(){return Ie[this.ptr+4>>2]},this.set_destructor=function(T){Ie[this.ptr+8>>2]=T},this.get_destructor=function(){return Ie[this.ptr+8>>2]},this.set_caught=function(T){T=T?1:0,C[this.ptr+12|0]=T},this.get_caught=function(){return C[this.ptr+12|0]!=0},this.set_rethrown=function(T){T=T?1:0,C[this.ptr+13|0]=T},this.get_rethrown=function(){return C[this.ptr+13|0]!=0},this.init=function(T,w){this.set_adjusted_ptr(0),this.set_type(T),this.set_destructor(w)},this.set_adjusted_ptr=function(T){Ie[this.ptr+16>>2]=T},this.get_adjusted_ptr=function(){return Ie[this.ptr+16>>2]},this.get_exception_ptr=function(){if(dd(this.get_type()))return Ie[this.excPtr>>2];var T=this.get_adjusted_ptr();return T!==0?T:this.excPtr}}function Se(S){switch(S){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${S}`)}}var rt=void 0;function Gt(S){for(var T="",w=S;N[w];)T+=rt[N[w++]];return T}var X={},Kr={},eo={},to=void 0;function me(S){throw new to(S)}var ra=void 0;function rr(S){throw new ra(S)}function ro(S,T,w){function x(K){var re=w(K);re.length!==S.length&&rr("Mismatched type converter count");for(var j=0;j<S.length;++j)jt(S[j],re[j])}S.forEach(function(K){eo[K]=T});var $=new Array(T.length),G=[],z=0;T.forEach((K,re)=>{Kr.hasOwnProperty(K)?$[re]=Kr[K]:(G.push(K),X.hasOwnProperty(K)||(X[K]=[]),X[K].push(()=>{$[re]=Kr[K],++z===G.length&&x($)}))}),G.length===0&&x($)}function jt(S,T,w={}){if(!("argPackAdvance"in T))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(x,$,G={}){var z=$.name;if(x||me(`type "${z}" must have a positive integer typeid pointer`),Kr.hasOwnProperty(x)){if(G.ignoreDuplicateRegistrations)return;me(`Cannot register type '${z}' twice`)}if(Kr[x]=$,delete eo[x],X.hasOwnProperty(x)){var K=X[x];delete X[x],K.forEach(re=>re())}}(S,T,w)}function ia(S){if(!(this instanceof ur)||!(S instanceof ur))return!1;for(var T=this.$$.ptrType.registeredClass,w=this.$$.ptr,x=S.$$.ptrType.registeredClass,$=S.$$.ptr;T.baseClass;)w=T.upcast(w),T=T.baseClass;for(;x.baseClass;)$=x.upcast($),x=x.baseClass;return T===x&&w===$}function Wo(S){me(S.$$.ptrType.registeredClass.name+" instance already deleted")}var Go=!1;function Ws(S){}function Mr(S){S.count.value-=1,S.count.value===0&&function(T){T.smartPtr?T.smartPtrType.rawDestructor(T.smartPtr):T.ptrType.registeredClass.rawDestructor(T.ptr)}(S)}function oa(S,T,w){if(T===w)return S;if(w.baseClass===void 0)return null;var x=oa(S,T,w.baseClass);return x===null?null:w.downcast(x)}var ve={};function ql(){return Object.keys(yi).length}function le(){var S=[];for(var T in yi)yi.hasOwnProperty(T)&&S.push(yi[T]);return S}var Si=[];function _(){for(;Si.length;){var S=Si.pop();S.$$.deleteScheduled=!1,S.delete()}}var io=void 0;function Dt(S){io=S,Si.length&&io&&io(_)}var yi={};function Gc(S,T){return T=function(w,x){for(x===void 0&&me("ptr should not be undefined");w.baseClass;)x=w.upcast(x),w=w.baseClass;return x}(S,T),yi[T]}function Mt(S,T){return T.ptrType&&T.ptr||rr("makeClassHandle requires ptr and ptrType"),!!T.smartPtrType!=!!T.smartPtr&&rr("Both smartPtrType and smartPtr must be specified"),T.count={value:1},Sr(Object.create(S,{$$:{value:T}}))}function P(S){var T=this.getPointee(S);if(!T)return this.destructor(S),null;var w=Gc(this.registeredClass,T);if(w!==void 0){if(w.$$.count.value===0)return w.$$.ptr=T,w.$$.smartPtr=S,w.clone();var x=w.clone();return this.destructor(S),x}function $(){return this.isSmartPointer?Mt(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:T,smartPtrType:this,smartPtr:S}):Mt(this.registeredClass.instancePrototype,{ptrType:this,ptr:S})}var G,z=this.registeredClass.getActualType(T),K=ve[z];if(!K)return $.call(this);G=this.isConst?K.constPointerType:K.pointerType;var re=oa(T,this.registeredClass,G.registeredClass);return re===null?$.call(this):this.isSmartPointer?Mt(G.registeredClass.instancePrototype,{ptrType:G,ptr:re,smartPtrType:this,smartPtr:S}):Mt(G.registeredClass.instancePrototype,{ptrType:G,ptr:re})}var Sr=function(S){return typeof FinalizationRegistry=="undefined"?(Sr=T=>T,S):(Go=new FinalizationRegistry(T=>{Mr(T.$$)}),Ws=T=>Go.unregister(T),(Sr=T=>{var w=T.$$;if(w.smartPtr){var x={$$:w};Go.register(T,x,T)}return T})(S))};function Gs(){if(this.$$.ptr||Wo(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var S,T=Sr(Object.create(Object.getPrototypeOf(this),{$$:{value:(S=this.$$,{count:S.count,deleteScheduled:S.deleteScheduled,preservePointerOnDelete:S.preservePointerOnDelete,ptr:S.ptr,ptrType:S.ptrType,smartPtr:S.smartPtr,smartPtrType:S.smartPtrType})}}));return T.$$.count.value+=1,T.$$.deleteScheduled=!1,T}function oo(){this.$$.ptr||Wo(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),Ws(this),Mr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Fe(){return!this.$$.ptr}function jc(){return this.$$.ptr||Wo(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),Si.push(this),Si.length===1&&io&&io(_),this.$$.deleteScheduled=!0,this}function ur(){}function ei(S){if(S===void 0)return"_unknown";var T=(S=S.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return T>=48&&T<=57?`_${S}`:S}function lr(S,T){return S=ei(S),{[S]:function(){return T.apply(this,arguments)}}[S]}function qc(S,T,w){if(S[T].overloadTable===void 0){var x=S[T];S[T]=function(){return S[T].overloadTable.hasOwnProperty(arguments.length)||me(`Function '${w}' called with an invalid number of arguments (${arguments.length}) - expects one of (${S[T].overloadTable})!`),S[T].overloadTable[arguments.length].apply(this,arguments)},S[T].overloadTable=[],S[T].overloadTable[x.argCount]=x}}function sa(S,T,w,x,$,G,z,K){this.name=S,this.constructor=T,this.instancePrototype=w,this.rawDestructor=x,this.baseClass=$,this.getActualType=G,this.upcast=z,this.downcast=K,this.pureVirtualFunctions=[]}function jo(S,T,w){for(;T!==w;)T.upcast||me(`Expected null or instance of ${w.name}, got an instance of ${T.name}`),S=T.upcast(S),T=T.baseClass;return S}function zc(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Qo(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`);var w=T.$$.ptrType.registeredClass;return jo(T.$$.ptr,w,this.registeredClass)}function Jc(S,T){var w;if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),this.isSmartPointer?(w=this.rawConstructor(),S!==null&&S.push(this.rawDestructor,w),w):0;T.$$||me(`Cannot pass "${Qo(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&T.$$.ptrType.isConst&&me(`Cannot convert argument of type ${T.$$.smartPtrType?T.$$.smartPtrType.name:T.$$.ptrType.name} to parameter type ${this.name}`);var x=T.$$.ptrType.registeredClass;if(w=jo(T.$$.ptr,x,this.registeredClass),this.isSmartPointer)switch(T.$$.smartPtr===void 0&&me("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:T.$$.smartPtrType===this?w=T.$$.smartPtr:me(`Cannot convert argument of type ${T.$$.smartPtrType?T.$$.smartPtrType.name:T.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:w=T.$$.smartPtr;break;case 2:if(T.$$.smartPtrType===this)w=T.$$.smartPtr;else{var $=T.clone();w=this.rawShare(w,qs.toHandle(function(){$.delete()})),S!==null&&S.push(this.rawDestructor,w)}break;default:me("Unsupporting sharing policy")}return w}function Xc(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Qo(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`),T.$$.ptrType.isConst&&me(`Cannot convert argument of type ${T.$$.ptrType.name} to parameter type ${this.name}`);var w=T.$$.ptrType.registeredClass;return jo(T.$$.ptr,w,this.registeredClass)}function qo(S){return this.fromWireType(H[S>>2])}function zl(S){return this.rawGetPointee&&(S=this.rawGetPointee(S)),S}function Jl(S){this.rawDestructor&&this.rawDestructor(S)}function zo(S){S!==null&&S.delete()}function mr(S,T,w,x,$,G,z,K,re,j,he){this.name=S,this.registeredClass=T,this.isReference=w,this.isConst=x,this.isSmartPointer=$,this.pointeeType=G,this.sharingPolicy=z,this.rawGetPointee=K,this.rawConstructor=re,this.rawShare=j,this.rawDestructor=he,$||T.baseClass!==void 0?this.toWireType=Jc:x?(this.toWireType=zc,this.destructorFunction=null):(this.toWireType=Xc,this.destructorFunction=null)}var ti=[],Qc=S=>{var T=ti[S];return T||(S>=ti.length&&(ti.length=S+1),ti[S]=T=Ue.get(S)),T},Jo=(S,T,w)=>S.includes("j")?((x,$,G)=>{var z=o["dynCall_"+x];return G&&G.length?z.apply(null,[$].concat(G)):z.call(null,$)})(S,T,w):Qc(T).apply(null,w);function so(S,T){var w,x,$,G=(S=Gt(S)).includes("j")?(w=S,x=T,$=[],function(){return $.length=0,Object.assign($,arguments),Jo(w,x,$)}):Qc(T);return typeof G!="function"&&me(`unknown function pointer with signature ${S}: ${T}`),G}var Xo=void 0;function Yc(S){var T=Qs(S),w=Gt(T);return Lr(T),w}function no(S,T){var w=[],x={};throw T.forEach(function $(G){x[G]||Kr[G]||(eo[G]?eo[G].forEach($):(w.push(G),x[G]=!0))}),new Xo(`${S}: `+w.map(Yc).join([", "]))}function Zc(S,T){for(var w=[],x=0;x<S;x++)w.push(Ie[T+4*x>>2]);return w}function Xl(S){for(;S.length;){var T=S.pop();S.pop()(T)}}function Kc(S,T){if(!(S instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof S} which is not a function`);var w=lr(S.name||"unknownFunctionName",function(){});w.prototype=S.prototype;var x=new w,$=S.apply(x,T);return $ instanceof Object?$:x}function ed(S,T,w,x,$,G){var z=T.length;z<2&&me("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var K=T[1]!==null&&w!==null,re=!1,j=1;j<T.length;++j)if(T[j]!==null&&T[j].destructorFunction===void 0){re=!0;break}var he=T[0].name!=="void",Oe="",Ne="";for(j=0;j<z-2;++j)Oe+=(j!==0?", ":"")+"arg"+j,Ne+=(j!==0?", ":"")+"arg"+j+"Wired";var ge=`
73
+ return function ${ei(S)}(${Oe}) {
74
74
  if (arguments.length !== ${z-2}) {
75
75
  throwBindingError('function ${S} called with ${arguments.length} arguments, expected ${z-2} args!');
76
76
  }`;re&&(ge+=`var destructors = [];
77
- `);var Me=re?"destructors":"null",ct=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Ye=[me,x,$,Xl,T[0],T[1]];for(K&&(ge+="var thisWired = classParam.toWireType("+Me+`, this);
77
+ `);var Me=re?"destructors":"null",ct=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Ze=[me,x,$,Xl,T[0],T[1]];for(K&&(ge+="var thisWired = classParam.toWireType("+Me+`, this);
78
78
  `),j=0;j<z-2;++j)ge+="var arg"+j+"Wired = argType"+j+".toWireType("+Me+", arg"+j+"); // "+T[j+2].name+`
79
- `,ct.push("argType"+j),Ye.push(T[j+2]);if(K&&(Ne="thisWired"+(Ne.length>0?", ":"")+Ne),ge+=(he||G?"var rv = ":"")+"invoker(fn"+(Ne.length>0?", ":"")+Ne+`);
79
+ `,ct.push("argType"+j),Ze.push(T[j+2]);if(K&&(Ne="thisWired"+(Ne.length>0?", ":"")+Ne),ge+=(he||G?"var rv = ":"")+"invoker(fn"+(Ne.length>0?", ":"")+Ne+`);
80
80
  `,re)ge+=`runDestructors(destructors);
81
81
  `;else for(j=K?1:2;j<T.length;++j){var Tt=j===1?"thisWired":"arg"+(j-2)+"Wired";T[j].destructorFunction!==null&&(ge+=Tt+"_dtor("+Tt+"); // "+T[j].name+`
82
- `,ct.push(Tt+"_dtor"),Ye.push(T[j].destructorFunction))}return he&&(ge+=`var ret = retType.fromWireType(rv);
82
+ `,ct.push(Tt+"_dtor"),Ze.push(T[j].destructorFunction))}return he&&(ge+=`var ret = retType.fromWireType(rv);
83
83
  return ret;
84
84
  `),ge+=`}
85
- `,ct.push(ge),Zc(Function,ct).apply(null,Ye)}function xr(){this.allocated=[void 0],this.freelist=[]}var qt=new xr;function js(S){S>=qt.reserved&&--qt.get(S).refcount==0&&qt.free(S)}function ed(){for(var S=0,T=qt.reserved;T<qt.allocated.length;++T)qt.allocated[T]!==void 0&&++S;return S}var qs={toValue:S=>(S||me("Cannot use deleted val. handle = "+S),qt.get(S).value),toHandle:S=>{switch(S){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return qt.allocate({refcount:1,value:S})}}};function Qo(S){if(S===null)return"null";var T=typeof S;return T==="object"||T==="array"||T==="function"?S.toString():""+S}function Ql(S,T){switch(T){case 2:return function(w){return this.fromWireType(Je[w>>2])};case 3:return function(w){return this.fromWireType(W[w>>3])};default:throw new TypeError("Unknown float type: "+S)}}function Yl(S,T,w){switch(T){case 0:return w?function(x){return C[x]}:function(x){return N[x]};case 1:return w?function(x){return k[x>>1]}:function(x){return Q[x>>1]};case 2:return w?function(x){return H[x>>2]}:function(x){return Ie[x>>2]};default:throw new TypeError("Unknown integer type: "+S)}}var td=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Yo=(S,T,w)=>{for(var x=T+w,$=T;S[$]&&!($>=x);)++$;if($-T>16&&S.buffer&&td)return td.decode(S.subarray(T,$));for(var G="";T<$;){var z=S[T++];if(128&z){var K=63&S[T++];if((224&z)!=192){var re=63&S[T++];if((z=(240&z)==224?(15&z)<<12|K<<6|re:(7&z)<<18|K<<12|re<<6|63&S[T++])<65536)G+=String.fromCharCode(z);else{var j=z-65536;G+=String.fromCharCode(55296|j>>10,56320|1023&j)}}else G+=String.fromCharCode((31&z)<<6|K)}else G+=String.fromCharCode(z)}return G},Zl=(S,T)=>S?Yo(N,S,T):"",rd=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,Kl=(S,T)=>{for(var w=S,x=w>>1,$=x+T/2;!(x>=$)&&Q[x];)++x;if((w=x<<1)-S>32&&rd)return rd.decode(N.subarray(S,w));for(var G="",z=0;!(z>=T/2);++z){var K=k[S+2*z>>1];if(K==0)break;G+=String.fromCharCode(K)}return G},Pr=(S,T,w)=>{if(w===void 0&&(w=2147483647),w<2)return 0;for(var x=T,$=(w-=2)<2*S.length?w/2:S.length,G=0;G<$;++G){var z=S.charCodeAt(G);k[T>>1]=z,T+=2}return k[T>>1]=0,T-x},zs=S=>2*S.length,id=(S,T)=>{for(var w=0,x="";!(w>=T/4);){var $=H[S+4*w>>2];if($==0)break;if(++w,$>=65536){var G=$-65536;x+=String.fromCharCode(55296|G>>10,56320|1023&G)}else x+=String.fromCharCode($)}return x},em=(S,T,w)=>{if(w===void 0&&(w=2147483647),w<4)return 0;for(var x=T,$=x+w-4,G=0;G<S.length;++G){var z=S.charCodeAt(G);if(z>=55296&&z<=57343&&(z=65536+((1023&z)<<10)|1023&S.charCodeAt(++G)),H[T>>2]=z,(T+=4)+4>$)break}return H[T>>2]=0,T-x},ao=S=>{for(var T=0,w=0;w<S.length;++w){var x=S.charCodeAt(w);x>=55296&&x<=57343&&++w,T+=4}return T},od={},Js=[],Xs=[],na;na=()=>performance.now();var sd,aa,co,nd=[null,[],[]];(function(){for(var S=new Array(256),T=0;T<256;++T)S[T]=String.fromCharCode(T);rt=S})(),to=o.BindingError=class extends Error{constructor(S){super(S),this.name="BindingError"}},ra=o.InternalError=class extends Error{constructor(S){super(S),this.name="InternalError"}},ur.prototype.isAliasOf=ia,ur.prototype.clone=Gs,ur.prototype.delete=oo,ur.prototype.isDeleted=Fe,ur.prototype.deleteLater=Gc,o.getInheritedInstanceCount=ql,o.getLiveInheritedInstances=le,o.flushPendingDeletes=_,o.setDelayFunction=Dt,mr.prototype.getPointee=zl,mr.prototype.destructor=Jl,mr.prototype.argPackAdvance=8,mr.prototype.readValueFromPointer=qo,mr.prototype.deleteObject=zo,mr.prototype.fromWireType=P,Xo=o.UnboundTypeError=(sd=Error,(co=lr(aa="UnboundTypeError",function(S){this.name=aa,this.message=S;var T=new Error(S).stack;T!==void 0&&(this.stack=this.toString()+`
86
- `+T.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(sd.prototype),co.prototype.constructor=co,co.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},co),Object.assign(xr.prototype,{get(S){return this.allocated[S]},has(S){return this.allocated[S]!==void 0},allocate(S){var T=this.freelist.pop()||this.allocated.length;return this.allocated[T]=S,T},free(S){this.allocated[S]=void 0,this.freelist.push(S)}}),qt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),qt.reserved=qt.allocated.length,o.count_emval_handles=ed;var zt,ad={o:function(S,T,w){throw new ta(S).init(T,w),S},r:function(S,T,w,x,$){},m:function(S,T,w,x,$){var G=Se(w);jt(S,{name:T=Gt(T),fromWireType:function(z){return!!z},toWireType:function(z,K){return K?x:$},argPackAdvance:8,readValueFromPointer:function(z){var K;if(w===1)K=C;else if(w===2)K=k;else{if(w!==4)throw new TypeError("Unknown boolean type size: "+T);K=H}return this.fromWireType(K[z>>G])},destructorFunction:null})},q:function(S,T,w,x,$,G,z,K,re,j,he,Oe,Ne){he=Gt(he),G=so($,G),K&&(K=so(z,K)),j&&(j=so(re,j)),Ne=so(Oe,Ne);var ge=Kr(he);(function(Me,ct,Ye){o.hasOwnProperty(Me)?((Ye===void 0||o[Me].overloadTable!==void 0&&o[Me].overloadTable[Ye]!==void 0)&&me(`Cannot register public name '${Me}' twice`),jc(o,Me,Me),o.hasOwnProperty(Ye)&&me(`Cannot register multiple overloads of a function with the same number of arguments (${Ye})!`),o[Me].overloadTable[Ye]=ct):(o[Me]=ct,Ye!==void 0&&(o[Me].numArguments=Ye))})(ge,function(){no(`Cannot construct ${he} due to unbound types`,[x])}),ro([S,T,w],x?[x]:[],function(Me){var ct,Ye;Me=Me[0],Ye=x?(ct=Me.registeredClass).instancePrototype:ur.prototype;var Tt=lr(ge,function(){if(Object.getPrototypeOf(this)!==Ze)throw new to("Use 'new' to construct "+he);if(kt.constructor_body===void 0)throw new to(he+" has no accessible constructor");var kr=kt.constructor_body[arguments.length];if(kr===void 0)throw new to(`Tried to invoke ctor of ${he} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(kt.constructor_body).toString()}) parameters instead!`);return kr.apply(this,arguments)}),Ze=Object.create(Ye,{constructor:{value:Tt}});Tt.prototype=Ze;var kt=new sa(he,Tt,Ze,Ne,ct,G,K,j);kt.baseClass&&(kt.baseClass.__derivedClasses===void 0&&(kt.baseClass.__derivedClasses=[]),kt.baseClass.__derivedClasses.push(kt));var lo=new mr(he,kt,!0,!1,!1),xt=new mr(he+"*",kt,!1,!1,!1),ca=new mr(he+" const*",kt,!1,!0,!1);return ve[S]={pointerType:xt,constPointerType:ca},function(kr,da,Ys){o.hasOwnProperty(kr)||rr("Replacing nonexistant public symbol"),o[kr].overloadTable!==void 0&&Ys!==void 0?o[kr].overloadTable[Ys]=da:(o[kr]=da,o[kr].argCount=Ys)}(ge,Tt),[lo,xt,ca]})},p:function(S,T,w,x,$,G){var z=Yc(T,w);$=so(x,$),ro([],[S],function(K){var re=`constructor ${(K=K[0]).name}`;if(K.registeredClass.constructor_body===void 0&&(K.registeredClass.constructor_body=[]),K.registeredClass.constructor_body[T-1]!==void 0)throw new to(`Cannot register multiple constructors with identical number of parameters (${T-1}) for class '${K.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return K.registeredClass.constructor_body[T-1]=()=>{no(`Cannot construct ${K.name} due to unbound types`,z)},ro([],z,function(j){return j.splice(1,0,null),K.registeredClass.constructor_body[T-1]=Kc(re,j,null,$,G),[]}),[]})},d:function(S,T,w,x,$,G,z,K,re){var j=Yc(w,x);T=Gt(T),G=so($,G),ro([],[S],function(he){var Oe=`${(he=he[0]).name}.${T}`;function Ne(){no(`Cannot call ${Oe} due to unbound types`,j)}T.startsWith("@@")&&(T=Symbol[T.substring(2)]),K&&he.registeredClass.pureVirtualFunctions.push(T);var ge=he.registeredClass.instancePrototype,Me=ge[T];return Me===void 0||Me.overloadTable===void 0&&Me.className!==he.name&&Me.argCount===w-2?(Ne.argCount=w-2,Ne.className=he.name,ge[T]=Ne):(jc(ge,T,Oe),ge[T].overloadTable[w-2]=Ne),ro([],j,function(ct){var Ye=Kc(Oe,ct,he,G,z,re);return ge[T].overloadTable===void 0?(Ye.argCount=w-2,ge[T]=Ye):ge[T].overloadTable[w-2]=Ye,[]}),[]})},u:function(S,T){jt(S,{name:T=Gt(T),fromWireType:function(w){var x=qs.toValue(w);return js(w),x},toWireType:function(w,x){return qs.toHandle(x)},argPackAdvance:8,readValueFromPointer:qo,destructorFunction:null})},k:function(S,T,w){var x=Se(w);jt(S,{name:T=Gt(T),fromWireType:function($){return $},toWireType:function($,G){return G},argPackAdvance:8,readValueFromPointer:Ql(T,x),destructorFunction:null})},b:function(S,T,w,x,$){T=Gt(T),$===-1&&($=4294967295);var G=Se(w),z=j=>j;if(x===0){var K=32-8*w;z=j=>j<<K>>>K}var re=T.includes("unsigned");jt(S,{name:T,fromWireType:z,toWireType:re?function(j,he){return this.name,he>>>0}:function(j,he){return this.name,he},argPackAdvance:8,readValueFromPointer:Yl(T,G,x!==0),destructorFunction:null})},a:function(S,T,w){var x=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][T];function $(G){var z=Ie,K=z[G>>=2],re=z[G+1];return new x(z.buffer,re,K)}jt(S,{name:w=Gt(w),fromWireType:$,argPackAdvance:8,readValueFromPointer:$},{ignoreDuplicateRegistrations:!0})},j:function(S,T){var w=(T=Gt(T))==="std::string";jt(S,{name:T,fromWireType:function(x){var $,G=Ie[x>>2],z=x+4;if(w)for(var K=z,re=0;re<=G;++re){var j=z+re;if(re==G||N[j]==0){var he=Zl(K,j-K);$===void 0?$=he:($+="\0",$+=he),K=j+1}}else{var Oe=new Array(G);for(re=0;re<G;++re)Oe[re]=String.fromCharCode(N[z+re]);$=Oe.join("")}return Lr(x),$},toWireType:function(x,$){var G;$ instanceof ArrayBuffer&&($=new Uint8Array($));var z=typeof $=="string";z||$ instanceof Uint8Array||$ instanceof Uint8ClampedArray||$ instanceof Int8Array||me("Cannot pass non-string to std::string"),G=w&&z?(Oe=>{for(var Ne=0,ge=0;ge<Oe.length;++ge){var Me=Oe.charCodeAt(ge);Me<=127?Ne++:Me<=2047?Ne+=2:Me>=55296&&Me<=57343?(Ne+=4,++ge):Ne+=3}return Ne})($):$.length;var K=uo(4+G+1),re=K+4;if(Ie[K>>2]=G,w&&z)((Oe,Ne,ge,Me)=>{if(!(Me>0))return 0;for(var ct=ge,Ye=ge+Me-1,Tt=0;Tt<Oe.length;++Tt){var Ze=Oe.charCodeAt(Tt);if(Ze>=55296&&Ze<=57343&&(Ze=65536+((1023&Ze)<<10)|1023&Oe.charCodeAt(++Tt)),Ze<=127){if(ge>=Ye)break;Ne[ge++]=Ze}else if(Ze<=2047){if(ge+1>=Ye)break;Ne[ge++]=192|Ze>>6,Ne[ge++]=128|63&Ze}else if(Ze<=65535){if(ge+2>=Ye)break;Ne[ge++]=224|Ze>>12,Ne[ge++]=128|Ze>>6&63,Ne[ge++]=128|63&Ze}else{if(ge+3>=Ye)break;Ne[ge++]=240|Ze>>18,Ne[ge++]=128|Ze>>12&63,Ne[ge++]=128|Ze>>6&63,Ne[ge++]=128|63&Ze}}Ne[ge]=0})($,N,re,G+1);else if(z)for(var j=0;j<G;++j){var he=$.charCodeAt(j);he>255&&(Lr(re),me("String has UTF-16 code units that do not fit in 8 bits")),N[re+j]=he}else for(j=0;j<G;++j)N[re+j]=$[j];return x!==null&&x.push(Lr,K),K},argPackAdvance:8,readValueFromPointer:qo,destructorFunction:function(x){Lr(x)}})},g:function(S,T,w){var x,$,G,z,K;w=Gt(w),T===2?(x=Kl,$=Pr,z=zs,G=()=>Q,K=1):T===4&&(x=id,$=em,z=ao,G=()=>Ie,K=2),jt(S,{name:w,fromWireType:function(re){for(var j,he=Ie[re>>2],Oe=G(),Ne=re+4,ge=0;ge<=he;++ge){var Me=re+4+ge*T;if(ge==he||Oe[Me>>K]==0){var ct=x(Ne,Me-Ne);j===void 0?j=ct:(j+="\0",j+=ct),Ne=Me+T}}return Lr(re),j},toWireType:function(re,j){typeof j!="string"&&me(`Cannot pass non-string to C++ string type ${w}`);var he=z(j),Oe=uo(4+he+T);return Ie[Oe>>2]=he>>K,$(j,Oe+4,he+T),re!==null&&re.push(Lr,Oe),Oe},argPackAdvance:8,readValueFromPointer:qo,destructorFunction:function(re){Lr(re)}})},n:function(S,T){jt(S,{isVoid:!0,name:T=Gt(T),argPackAdvance:0,fromWireType:function(){},toWireType:function(w,x){}})},e:function(S,T,w,x){var $,G;(S=Js[S])(T=qs.toValue(T),w=(G=od[$=w])===void 0?Gt($):G,null,x)},l:js,h:function(S,T){var w=function(ct,Ye){for(var Tt,Ze,kt,lo=new Array(ct),xt=0;xt<ct;++xt)lo[xt]=(Tt=Ie[Ye+4*xt>>2],Ze="parameter "+xt,kt=void 0,(kt=Zr[Tt])===void 0&&me(Ze+" has unknown type "+Qc(Tt)),kt);return lo}(S,T),x=w[0],$=x.name+"_$"+w.slice(1).map(function(ct){return ct.name}).join("_")+"$",G=Xs[$];if(G!==void 0)return G;for(var z=["retType"],K=[x],re="",j=0;j<S-1;++j)re+=(j!==0?", ":"")+"arg"+j,z.push("argType"+j),K.push(w[1+j]);var he="return function "+Kr("methodCaller_"+$)+`(handle, name, destructors, args) {
85
+ `,ct.push(ge),Kc(Function,ct).apply(null,Ze)}function xr(){this.allocated=[void 0],this.freelist=[]}var qt=new xr;function js(S){S>=qt.reserved&&--qt.get(S).refcount==0&&qt.free(S)}function td(){for(var S=0,T=qt.reserved;T<qt.allocated.length;++T)qt.allocated[T]!==void 0&&++S;return S}var qs={toValue:S=>(S||me("Cannot use deleted val. handle = "+S),qt.get(S).value),toHandle:S=>{switch(S){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return qt.allocate({refcount:1,value:S})}}};function Qo(S){if(S===null)return"null";var T=typeof S;return T==="object"||T==="array"||T==="function"?S.toString():""+S}function Ql(S,T){switch(T){case 2:return function(w){return this.fromWireType(Je[w>>2])};case 3:return function(w){return this.fromWireType(W[w>>3])};default:throw new TypeError("Unknown float type: "+S)}}function Yl(S,T,w){switch(T){case 0:return w?function(x){return C[x]}:function(x){return N[x]};case 1:return w?function(x){return k[x>>1]}:function(x){return Q[x>>1]};case 2:return w?function(x){return H[x>>2]}:function(x){return Ie[x>>2]};default:throw new TypeError("Unknown integer type: "+S)}}var rd=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Yo=(S,T,w)=>{for(var x=T+w,$=T;S[$]&&!($>=x);)++$;if($-T>16&&S.buffer&&rd)return rd.decode(S.subarray(T,$));for(var G="";T<$;){var z=S[T++];if(128&z){var K=63&S[T++];if((224&z)!=192){var re=63&S[T++];if((z=(240&z)==224?(15&z)<<12|K<<6|re:(7&z)<<18|K<<12|re<<6|63&S[T++])<65536)G+=String.fromCharCode(z);else{var j=z-65536;G+=String.fromCharCode(55296|j>>10,56320|1023&j)}}else G+=String.fromCharCode((31&z)<<6|K)}else G+=String.fromCharCode(z)}return G},Zl=(S,T)=>S?Yo(N,S,T):"",id=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,Kl=(S,T)=>{for(var w=S,x=w>>1,$=x+T/2;!(x>=$)&&Q[x];)++x;if((w=x<<1)-S>32&&id)return id.decode(N.subarray(S,w));for(var G="",z=0;!(z>=T/2);++z){var K=k[S+2*z>>1];if(K==0)break;G+=String.fromCharCode(K)}return G},Pr=(S,T,w)=>{if(w===void 0&&(w=2147483647),w<2)return 0;for(var x=T,$=(w-=2)<2*S.length?w/2:S.length,G=0;G<$;++G){var z=S.charCodeAt(G);k[T>>1]=z,T+=2}return k[T>>1]=0,T-x},zs=S=>2*S.length,od=(S,T)=>{for(var w=0,x="";!(w>=T/4);){var $=H[S+4*w>>2];if($==0)break;if(++w,$>=65536){var G=$-65536;x+=String.fromCharCode(55296|G>>10,56320|1023&G)}else x+=String.fromCharCode($)}return x},em=(S,T,w)=>{if(w===void 0&&(w=2147483647),w<4)return 0;for(var x=T,$=x+w-4,G=0;G<S.length;++G){var z=S.charCodeAt(G);if(z>=55296&&z<=57343&&(z=65536+((1023&z)<<10)|1023&S.charCodeAt(++G)),H[T>>2]=z,(T+=4)+4>$)break}return H[T>>2]=0,T-x},ao=S=>{for(var T=0,w=0;w<S.length;++w){var x=S.charCodeAt(w);x>=55296&&x<=57343&&++w,T+=4}return T},sd={},Js=[],Xs=[],na;na=()=>performance.now();var nd,aa,co,ad=[null,[],[]];(function(){for(var S=new Array(256),T=0;T<256;++T)S[T]=String.fromCharCode(T);rt=S})(),to=o.BindingError=class extends Error{constructor(S){super(S),this.name="BindingError"}},ra=o.InternalError=class extends Error{constructor(S){super(S),this.name="InternalError"}},ur.prototype.isAliasOf=ia,ur.prototype.clone=Gs,ur.prototype.delete=oo,ur.prototype.isDeleted=Fe,ur.prototype.deleteLater=jc,o.getInheritedInstanceCount=ql,o.getLiveInheritedInstances=le,o.flushPendingDeletes=_,o.setDelayFunction=Dt,mr.prototype.getPointee=zl,mr.prototype.destructor=Jl,mr.prototype.argPackAdvance=8,mr.prototype.readValueFromPointer=qo,mr.prototype.deleteObject=zo,mr.prototype.fromWireType=P,Xo=o.UnboundTypeError=(nd=Error,(co=lr(aa="UnboundTypeError",function(S){this.name=aa,this.message=S;var T=new Error(S).stack;T!==void 0&&(this.stack=this.toString()+`
86
+ `+T.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(nd.prototype),co.prototype.constructor=co,co.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},co),Object.assign(xr.prototype,{get(S){return this.allocated[S]},has(S){return this.allocated[S]!==void 0},allocate(S){var T=this.freelist.pop()||this.allocated.length;return this.allocated[T]=S,T},free(S){this.allocated[S]=void 0,this.freelist.push(S)}}),qt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),qt.reserved=qt.allocated.length,o.count_emval_handles=td;var zt,cd={o:function(S,T,w){throw new ta(S).init(T,w),S},r:function(S,T,w,x,$){},m:function(S,T,w,x,$){var G=Se(w);jt(S,{name:T=Gt(T),fromWireType:function(z){return!!z},toWireType:function(z,K){return K?x:$},argPackAdvance:8,readValueFromPointer:function(z){var K;if(w===1)K=C;else if(w===2)K=k;else{if(w!==4)throw new TypeError("Unknown boolean type size: "+T);K=H}return this.fromWireType(K[z>>G])},destructorFunction:null})},q:function(S,T,w,x,$,G,z,K,re,j,he,Oe,Ne){he=Gt(he),G=so($,G),K&&(K=so(z,K)),j&&(j=so(re,j)),Ne=so(Oe,Ne);var ge=ei(he);(function(Me,ct,Ze){o.hasOwnProperty(Me)?((Ze===void 0||o[Me].overloadTable!==void 0&&o[Me].overloadTable[Ze]!==void 0)&&me(`Cannot register public name '${Me}' twice`),qc(o,Me,Me),o.hasOwnProperty(Ze)&&me(`Cannot register multiple overloads of a function with the same number of arguments (${Ze})!`),o[Me].overloadTable[Ze]=ct):(o[Me]=ct,Ze!==void 0&&(o[Me].numArguments=Ze))})(ge,function(){no(`Cannot construct ${he} due to unbound types`,[x])}),ro([S,T,w],x?[x]:[],function(Me){var ct,Ze;Me=Me[0],Ze=x?(ct=Me.registeredClass).instancePrototype:ur.prototype;var Tt=lr(ge,function(){if(Object.getPrototypeOf(this)!==Ke)throw new to("Use 'new' to construct "+he);if(kt.constructor_body===void 0)throw new to(he+" has no accessible constructor");var kr=kt.constructor_body[arguments.length];if(kr===void 0)throw new to(`Tried to invoke ctor of ${he} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(kt.constructor_body).toString()}) parameters instead!`);return kr.apply(this,arguments)}),Ke=Object.create(Ze,{constructor:{value:Tt}});Tt.prototype=Ke;var kt=new sa(he,Tt,Ke,Ne,ct,G,K,j);kt.baseClass&&(kt.baseClass.__derivedClasses===void 0&&(kt.baseClass.__derivedClasses=[]),kt.baseClass.__derivedClasses.push(kt));var lo=new mr(he,kt,!0,!1,!1),xt=new mr(he+"*",kt,!1,!1,!1),ca=new mr(he+" const*",kt,!1,!0,!1);return ve[S]={pointerType:xt,constPointerType:ca},function(kr,da,Ys){o.hasOwnProperty(kr)||rr("Replacing nonexistant public symbol"),o[kr].overloadTable!==void 0&&Ys!==void 0?o[kr].overloadTable[Ys]=da:(o[kr]=da,o[kr].argCount=Ys)}(ge,Tt),[lo,xt,ca]})},p:function(S,T,w,x,$,G){var z=Zc(T,w);$=so(x,$),ro([],[S],function(K){var re=`constructor ${(K=K[0]).name}`;if(K.registeredClass.constructor_body===void 0&&(K.registeredClass.constructor_body=[]),K.registeredClass.constructor_body[T-1]!==void 0)throw new to(`Cannot register multiple constructors with identical number of parameters (${T-1}) for class '${K.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return K.registeredClass.constructor_body[T-1]=()=>{no(`Cannot construct ${K.name} due to unbound types`,z)},ro([],z,function(j){return j.splice(1,0,null),K.registeredClass.constructor_body[T-1]=ed(re,j,null,$,G),[]}),[]})},d:function(S,T,w,x,$,G,z,K,re){var j=Zc(w,x);T=Gt(T),G=so($,G),ro([],[S],function(he){var Oe=`${(he=he[0]).name}.${T}`;function Ne(){no(`Cannot call ${Oe} due to unbound types`,j)}T.startsWith("@@")&&(T=Symbol[T.substring(2)]),K&&he.registeredClass.pureVirtualFunctions.push(T);var ge=he.registeredClass.instancePrototype,Me=ge[T];return Me===void 0||Me.overloadTable===void 0&&Me.className!==he.name&&Me.argCount===w-2?(Ne.argCount=w-2,Ne.className=he.name,ge[T]=Ne):(qc(ge,T,Oe),ge[T].overloadTable[w-2]=Ne),ro([],j,function(ct){var Ze=ed(Oe,ct,he,G,z,re);return ge[T].overloadTable===void 0?(Ze.argCount=w-2,ge[T]=Ze):ge[T].overloadTable[w-2]=Ze,[]}),[]})},u:function(S,T){jt(S,{name:T=Gt(T),fromWireType:function(w){var x=qs.toValue(w);return js(w),x},toWireType:function(w,x){return qs.toHandle(x)},argPackAdvance:8,readValueFromPointer:qo,destructorFunction:null})},k:function(S,T,w){var x=Se(w);jt(S,{name:T=Gt(T),fromWireType:function($){return $},toWireType:function($,G){return G},argPackAdvance:8,readValueFromPointer:Ql(T,x),destructorFunction:null})},b:function(S,T,w,x,$){T=Gt(T),$===-1&&($=4294967295);var G=Se(w),z=j=>j;if(x===0){var K=32-8*w;z=j=>j<<K>>>K}var re=T.includes("unsigned");jt(S,{name:T,fromWireType:z,toWireType:re?function(j,he){return this.name,he>>>0}:function(j,he){return this.name,he},argPackAdvance:8,readValueFromPointer:Yl(T,G,x!==0),destructorFunction:null})},a:function(S,T,w){var x=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][T];function $(G){var z=Ie,K=z[G>>=2],re=z[G+1];return new x(z.buffer,re,K)}jt(S,{name:w=Gt(w),fromWireType:$,argPackAdvance:8,readValueFromPointer:$},{ignoreDuplicateRegistrations:!0})},j:function(S,T){var w=(T=Gt(T))==="std::string";jt(S,{name:T,fromWireType:function(x){var $,G=Ie[x>>2],z=x+4;if(w)for(var K=z,re=0;re<=G;++re){var j=z+re;if(re==G||N[j]==0){var he=Zl(K,j-K);$===void 0?$=he:($+="\0",$+=he),K=j+1}}else{var Oe=new Array(G);for(re=0;re<G;++re)Oe[re]=String.fromCharCode(N[z+re]);$=Oe.join("")}return Lr(x),$},toWireType:function(x,$){var G;$ instanceof ArrayBuffer&&($=new Uint8Array($));var z=typeof $=="string";z||$ instanceof Uint8Array||$ instanceof Uint8ClampedArray||$ instanceof Int8Array||me("Cannot pass non-string to std::string"),G=w&&z?(Oe=>{for(var Ne=0,ge=0;ge<Oe.length;++ge){var Me=Oe.charCodeAt(ge);Me<=127?Ne++:Me<=2047?Ne+=2:Me>=55296&&Me<=57343?(Ne+=4,++ge):Ne+=3}return Ne})($):$.length;var K=uo(4+G+1),re=K+4;if(Ie[K>>2]=G,w&&z)((Oe,Ne,ge,Me)=>{if(!(Me>0))return 0;for(var ct=ge,Ze=ge+Me-1,Tt=0;Tt<Oe.length;++Tt){var Ke=Oe.charCodeAt(Tt);if(Ke>=55296&&Ke<=57343&&(Ke=65536+((1023&Ke)<<10)|1023&Oe.charCodeAt(++Tt)),Ke<=127){if(ge>=Ze)break;Ne[ge++]=Ke}else if(Ke<=2047){if(ge+1>=Ze)break;Ne[ge++]=192|Ke>>6,Ne[ge++]=128|63&Ke}else if(Ke<=65535){if(ge+2>=Ze)break;Ne[ge++]=224|Ke>>12,Ne[ge++]=128|Ke>>6&63,Ne[ge++]=128|63&Ke}else{if(ge+3>=Ze)break;Ne[ge++]=240|Ke>>18,Ne[ge++]=128|Ke>>12&63,Ne[ge++]=128|Ke>>6&63,Ne[ge++]=128|63&Ke}}Ne[ge]=0})($,N,re,G+1);else if(z)for(var j=0;j<G;++j){var he=$.charCodeAt(j);he>255&&(Lr(re),me("String has UTF-16 code units that do not fit in 8 bits")),N[re+j]=he}else for(j=0;j<G;++j)N[re+j]=$[j];return x!==null&&x.push(Lr,K),K},argPackAdvance:8,readValueFromPointer:qo,destructorFunction:function(x){Lr(x)}})},g:function(S,T,w){var x,$,G,z,K;w=Gt(w),T===2?(x=Kl,$=Pr,z=zs,G=()=>Q,K=1):T===4&&(x=od,$=em,z=ao,G=()=>Ie,K=2),jt(S,{name:w,fromWireType:function(re){for(var j,he=Ie[re>>2],Oe=G(),Ne=re+4,ge=0;ge<=he;++ge){var Me=re+4+ge*T;if(ge==he||Oe[Me>>K]==0){var ct=x(Ne,Me-Ne);j===void 0?j=ct:(j+="\0",j+=ct),Ne=Me+T}}return Lr(re),j},toWireType:function(re,j){typeof j!="string"&&me(`Cannot pass non-string to C++ string type ${w}`);var he=z(j),Oe=uo(4+he+T);return Ie[Oe>>2]=he>>K,$(j,Oe+4,he+T),re!==null&&re.push(Lr,Oe),Oe},argPackAdvance:8,readValueFromPointer:qo,destructorFunction:function(re){Lr(re)}})},n:function(S,T){jt(S,{isVoid:!0,name:T=Gt(T),argPackAdvance:0,fromWireType:function(){},toWireType:function(w,x){}})},e:function(S,T,w,x){var $,G;(S=Js[S])(T=qs.toValue(T),w=(G=sd[$=w])===void 0?Gt($):G,null,x)},l:js,h:function(S,T){var w=function(ct,Ze){for(var Tt,Ke,kt,lo=new Array(ct),xt=0;xt<ct;++xt)lo[xt]=(Tt=Ie[Ze+4*xt>>2],Ke="parameter "+xt,kt=void 0,(kt=Kr[Tt])===void 0&&me(Ke+" has unknown type "+Yc(Tt)),kt);return lo}(S,T),x=w[0],$=x.name+"_$"+w.slice(1).map(function(ct){return ct.name}).join("_")+"$",G=Xs[$];if(G!==void 0)return G;for(var z=["retType"],K=[x],re="",j=0;j<S-1;++j)re+=(j!==0?", ":"")+"arg"+j,z.push("argType"+j),K.push(w[1+j]);var he="return function "+ei("methodCaller_"+$)+`(handle, name, destructors, args) {
87
87
  `,Oe=0;for(j=0;j<S-1;++j)he+=" var arg"+j+" = argType"+j+".readValueFromPointer(args"+(Oe?"+"+Oe:"")+`);
88
88
  `,Oe+=w[j+1].argPackAdvance;for(he+=" var rv = handle[name]("+re+`);
89
89
  `,j=0;j<S-1;++j)w[j+1].deleteObject&&(he+=" argType"+j+".deleteObject(arg"+j+`);
90
90
  `);x.isVoid||(he+=` return retType.toWireType(destructors, rv);
91
91
  `),he+=`};
92
- `,z.push(he);var Ne,ge,Me=Zc(Function,z).apply(null,K);return Ne=Me,ge=Js.length,Js.push(Ne),G=ge,Xs[$]=G,G},f:()=>{Ir("")},c:na,t:(S,T,w)=>N.copyWithin(S,T,T+w),s:S=>{N.length,Ir("OOM")},i:(S,T,w,x)=>{for(var $,G,z,K=0,re=0;re<w;re++){var j=Ie[T>>2],he=Ie[T+4>>2];T+=8;for(var Oe=0;Oe<he;Oe++)$=S,G=N[j+Oe],z=void 0,z=nd[$],G===0||G===10?(($===1?f:g)(Yo(z,0)),z.length=0):z.push(G);K+=he}return Ie[x>>2]=K,0}},Lr=(function(){var S,T,w,x,$={a:ad};function G(z,K){var re,j,he=z.exports;return y=(R=he).v,re=y.buffer,o.HEAP8=C=new Int8Array(re),o.HEAP16=k=new Int16Array(re),o.HEAP32=H=new Int32Array(re),o.HEAPU8=N=new Uint8Array(re),o.HEAPU16=Q=new Uint16Array(re),o.HEAPU32=Ie=new Uint32Array(re),o.HEAPF32=Je=new Float32Array(re),o.HEAPF64=W=new Float64Array(re),Ue=R.z,j=R.w,Kn.unshift(j),function(){if(Qr--,o.monitorRunDependencies&&o.monitorRunDependencies(Qr),Qr==0&&(Hs!==null&&(clearInterval(Hs),Hs=null),Ki)){var Oe=Ki;Ki=null,Oe()}}(),he}if(Qr++,o.monitorRunDependencies&&o.monitorRunDependencies(Qr),o.instantiateWasm)try{return o.instantiateWasm($,G)}catch(z){g("Module.instantiateWasm callback failed with error: "+z),r(z)}(S=p,T=Ei,w=$,x=function(z){G(z.instance)},S||typeof WebAssembly.instantiateStreaming!="function"||ie(T)||typeof fetch!="function"?Yr(T,w,x):fetch(T,{credentials:"same-origin"}).then(z=>WebAssembly.instantiateStreaming(z,w).then(x,function(K){return g("wasm streaming compile failed: "+K),g("falling back to ArrayBuffer instantiation"),Yr(T,w,x)}))).catch(r)}(),S=>(Lr=R.x)(S)),uo=S=>(uo=R.y)(S),Qs=S=>(Qs=R.A)(S),cd=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=R.B)(),S=>(cd=R.C)(S));o.dynCall_jiji=(S,T,w,x,$)=>(o.dynCall_jiji=R.D)(S,T,w,x,$);function dd(){function S(){zt||(zt=!0,o.calledRun=!0,Yn||(Ti(Kn),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)T=o.postRun.shift(),ea.unshift(T);var T;Ti(ea)}()))}Qr>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)T=o.preRun.shift(),Zn.unshift(T);var T;Ti(Zn)}(),Qr>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),S()},1)):S()))}if(Ki=function S(){zt||dd(),zt||(Ki=S)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return dd(),t.ready}})();var y_=(i=>(i.ROOM_DESTROY="1",i.JOIN_START="21",i.JOIN_SCHEDULE_SUCCESS="22",i.JOIN_SIGNAL_CONNECTION_START="23",i.JOIN_SIGNAL_CONNECTION_END="24",i.JOIN_SEND_CMD="25",i.JOIN_RECEIVED_CMD_RES="26",i.JOIN_SUCCESS="27",i.JOIN_FAILED="28",i.LEAVE_START="51",i.LEAVE_SEND_CMD="52",i.LEAVE_SUCCESS="53",i.PUBLISH_START="61",i.SEND_FIRST_VIDEO_FRAME="62",i.PUBLISH_FAILED="63",i.SUBSCRIBE_START="81",i.SUBSCRIBE_SUCCESS="82",i.SUBSCRIBE_FAILED="84",i.UNSUBSCRIBE_SUCCESS="83",i.LOCAL_TRACK_CAPTURE_START="101",i.LOCAL_TRACK_CAPTURE_SUCCESS="102",i.LOCAL_TRACK_CAPTURE_FAILED="103",i.LOCAL_TRACK_PUBLISHED="104",i.LOCAL_TRACK_UNPUBLISHED="105",i.LOCAL_TRACK_REPLACED="106",i.SWITCH_DEVICE_SUCCESS="107",i.TRACK_MUTED="108",i.TRACK_UNMUTED="109",i.REMOTE_TRACK_SUBSCRIBED="110",i.REMOTE_TRACK_UNSUBSCRIBED="111",i.LOCAL_TRACK_RECAPTURE="112",i.LOCAL_AUDIO_STARTED="113",i.LOCAL_AUDIO_STOPPED="114",i.REMOTE_AUDIO_STARTED="115",i.REMOTE_AUDIO_STOPPED="116",i.PLAY_TRACK_START="151",i.PLAYER_STATE_CHANGED="152",i.VIDEO_LOADED_DATA="153",i.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",i.AUDIO_CONTEXT_LONG_SUSPENDED="155",i.REMOTE_VIDEO_PLAY_START="156",i.REMOTE_VIDEO_PLAY_FINISH="157",i.SIGNAL_CONNECTION_STATE_CHANGED="201",i.PEER_CONNECTION_STATE_CHANGED="202",i.SINGLE_CONNECTION_STAT="203",i.SPC_RECONNECTED="204",i.HEARTBEAT_REPORT="251",i.RECEIVED_PUBLISHED_USER_LIST="252",i.REMOTE_PUBLISH_STATE_CHANGED="253",i.AUDIO_LEVEL_INTERVAL="260",i.NETWORK_QUALITY="261",i.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",i.QUALITY_LIMITATION_CHANGED="263",i.LOG="264",i.AUDIO_PROCESSOR_DEBUG="265",i.SSO_SWITCH="266",i.SWITCH_ROOM_START="401",i.SWITCH_ROOM_SUCCESS="407",i.SWITCH_ROOM_FAILED="408",i))(y_||{}),db="5.0.0",ub=typeof importScripts!="undefined",lb=typeof registerProcessor!="undefined",mb="",hb="web.sdk.qcloud.com",pb=`https://${hb}/trtc/webrtc/doc`,TU=`${pb}/zh-cn/`,fb="https://yun.tim.qq.com",gb="https://apisgp.my-imcloud.com",Eb={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},Ps=(i=>(i[i.TRACE=0]="TRACE",i[i.DEBUG=1]="DEBUG",i[i.INFO=2]="INFO",i[i.WARN=3]="WARN",i[i.ERROR=4]="ERROR",i[i.NONE=5]="NONE",i))(Ps||{});var A_={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},IU=A_["480p_2"],SU=A_["120p_2"],cl={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture",RESIZE:"resize",TIME_UPDATE:"timeupdate"},yU=cl.MAIN,AU=cl.AUXILIARY,bU=cl.BIG,RU=cl.SMALL;var vU=Object.keys(Ps);var _b=function(i,t,e,r){return new(e||(e=Promise))(function(o,s){function n(l){try{d(r.next(l))}catch(p){s(p)}}function a(l){try{d(r.throw(l))}catch(p){s(p)}}function d(l){var p;l.done?o(l.value):(p=l.value,p instanceof e?p:new e(function(f){f(p)})).then(n,a)}d((r=r.apply(i,t||[])).next())})},Hp=Symbol(32),Wp=Symbol(16),Gp=Symbol(8),Gn=class{constructor(i){this.g=i,this.consumed=0,i&&(this.need=i.next().value)}setG(i){this.g=i,this.demand(i.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(i,t){return t&&this.consume(),this.need=i,this.flush()}read(i){return _b(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((t,e)=>{var r;this.reject=e,this.resolve=o=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(o)},this.demand(i,!0)||(r=this.pull)===null||r===void 0||r.call(this,i)})})}readU32(){return this.read(Hp)}readU16(){return this.read(Wp)}readU8(){return this.read(Gp)}close(){var i;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(i=this.reject)===null||i===void 0||i.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let i=null,t=this.buffer.subarray(this.consumed),e=0,r=o=>t.length<(e=o);if(typeof this.need=="number"){if(r(this.need))return;i=t.subarray(0,e)}else if(this.need===Hp){if(r(4))return;i=t[0]<<24|t[1]<<16|t[2]<<8|t[3]}else if(this.need===Wp){if(r(2))return;i=t[0]<<8|t[1]}else if(this.need===Gp){if(r(1))return;i=t[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(r(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(t.subarray(0,e)),i=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(r(this.need.byteLength))return;new Uint8Array(this.need).set(t.subarray(0,e)),i=this.need}return this.consumed+=e,this.g?this.demand(this.g.next(i).value,!0):this.resolve&&this.resolve(i),i}write(i){if(i instanceof Uint8Array?this.malloc(i.length).set(i):"buffer"in i?this.malloc(i.byteLength).set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength)):this.malloc(i.byteLength).set(new Uint8Array(i)),!this.g&&!this.resolve)return new Promise(t=>this.pull=t);this.flush()}writeU32(i){this.malloc(4).set([i>>24&255,i>>16&255,i>>8&255,255&i]),this.flush()}writeU16(i){this.malloc(2).set([i>>8&255,255&i]),this.flush()}writeU8(i){this.malloc(1)[0]=i,this.flush()}malloc(i){if(this.buffer){let t=this.buffer.length,e=t+i;if(e<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,e);else{let r=new Uint8Array(e);r.set(this.buffer),this.buffer=r}return this.buffer.subarray(t,e)}return this.buffer=new Uint8Array(i),this.buffer}};Gn.U32=Hp,Gn.U16=Wp,Gn.U8=Gp;var Tb=128,Ib=127,CU=~Ib,NU=Math.pow(2,31);function kp(i){let t=new Gn;for(;i>=128;)t.malloc(1)[0]=255&i|Tb,i>>>=7;return t.malloc(1)[0]=255&i,t.buffer||new Uint8Array(0)}function jp(i,t=0){let e=new Gn,r=t<<3;switch(typeof i){case"boolean":let o=e.malloc(2);o[0]=r,o[1]=i?1:0;break;case"number":e.malloc(1)[0]=r,e.write(kp(i));break;case"string":e.malloc(1)[0]=2|r;let s=new TextEncoder().encode(i);e.write(kp(s.length));let n=e.malloc(s.length);for(let d=0;d<s.length;d++)n[d]=s[d];break;case"object":let a=new Gn;if(Array.isArray(i))for(let d=0;d<i.length;d++){let l=jp(i[d],d+1);l&&a.write(l)}else{let d=1;for(let l in i){let p=jp(i[l],d++);p&&a.write(p)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=2|r,a.buffer&&(e.write(kp(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var n_=class{constructor(){tt(this,"buffer"),this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(i){this.buffer.push(i>>>24&255),this.buffer.push(i>>>16&255),this.buffer.push(i>>>8&255),this.buffer.push(255&i)}writeInt16(i){this.buffer.push(i>>>8&255),this.buffer.push(255&i)}writeByte(i){this.buffer.push(255&i)}writeBytes(i){for(let t=0;t<i.length;t++)this.buffer.push(i[t])}};function a_(i,t,e){i[e]=t>>>24&255,i[e+1]=t>>>16&255,i[e+2]=t>>>8&255,i[e+3]=255&t}function dr(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function c_(i,t){return i[t]}function Tc(i,t,e){return new TextDecoder().decode(Sb(i,t,e))}function Sb(i,t,e){return i.slice(t,t+e)}var Up=0,qp=2654435769,zp=16,d_=4,Cc=2,Nc=7;function yb(i,t,e,r="AVQualityReportSvc.C2S",o=2e3,s=2,n=30){return{version:o,encryption:s,d2:"",d2Len:0,uinType:n,uin:"",uinLen:0,reqHead:{seqNumber:e,appId:i,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:r,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:t}}function Ab(i,t){let e=new n_,r=yb(t,i,Up);Up=Up+1&2147483647,e.writeInt32(0),e.writeInt32(r.version),e.writeByte(r.encryption);let o=new TextEncoder().encode(r.d2);e.writeInt32(o.length+4),o&&e.writeBytes(o),e.writeByte(r.uinType);let s=new TextEncoder().encode(r.uin);e.writeInt32(s.length+4),s.length&&e.writeBytes(s);let n=new n_;n.writeInt32(0),n.writeInt32(r.reqHead.seqNumber),n.writeInt32(r.reqHead.appId),n.writeByte(r.reqHead.appId>>>24&255),n.writeByte(r.reqHead.appId>>>16&255),n.writeByte(r.reqHead.appId>>>8&255),n.writeByte(255&r.reqHead.appId);for(let Q=4;Q<16;Q++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let d=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(d.length+4),d.length&&n.writeBytes(d);let l=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(l.length+4),l.length&&n.writeBytes(l);let p=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(p.length+4),p.length&&n.writeBytes(p);let f=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(f.length+4),f.length&&n.writeBytes(f);let g=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(g.length+2),g.length&&n.writeBytes(g);let y=n.length;n.data[0]=y>>>24&255,n.data[1]=y>>>16&255,n.data[2]=y>>>8&255,n.data[3]=255&y,Jp(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let R=new Uint8Array(n.data),C=null;r.encryption===1?C=new TextEncoder().encode(r.uin):r.encryption===2&&(C=new Uint8Array(16)),C&&(R=bb(R,C)),e.writeBytes(R);let N=new Uint8Array(e.data),k=N.length;return N[0]=k>>>24&255,N[1]=k>>>16&255,N[2]=k>>>8&255,N[3]=255&k,N}function bb(i,t){let e=i.length,r=(e+1+Cc+Nc)%8;r&&(r=8-r);let o=new Uint8Array(e+1+Cc+Nc+r),s=0,n=new Uint8Array(8),a=new Uint8Array(8),d=new Uint8Array(8),l=0;n[0]=248&Math.floor(256*Math.random())|r,l=1;for(let f=0;f<r;f++)n[l]=255&Math.floor(256*Math.random()),l+=1;for(let f=0;f<Cc;)if(l<8&&(n[l]=255&Math.floor(256*Math.random()),l+=1,f+=1),l===8){Vp(n,t,a,d,o,s),s+=8,l=0;for(let g=0;g<8;g++)d[g]=o[s-8+g]}let p=0;for(;p<e;)if(l<8&&(n[l]=i[p],l+=1,p+=1),l===8){Vp(n,t,a,d,o,s),s+=8,l=0;for(let f=0;f<8;f++)d[f]=o[s-8+f]}for(let f=0;f<Nc;)if(l<8&&(n[l]=0,l+=1,f+=1),l===8){Vp(n,t,a,d,o,s),s+=8,l=0;for(let g=0;g<8;g++)d[g]=o[s-8+g]}return o}function Vp(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];Rb(i,t,o,s);for(let n=0;n<8;n++)o[s+n]^=e[n];for(let n=0;n<8;n++)e[n]=i[n]}function Rb(i,t,e,r){let o=dr(i,0),s=dr(i,4),n=[];for(let d=0;d<4;d++)n[d]=dr(t,4*d);let a=0;for(let d=0;d<zp;d++)a+=qp,a>>>=0,o+=(s<<4)+n[0]^s+a^(s>>>5)+n[1],o>>>=0,s+=(o<<4)+n[2]^o+a^(o>>>5)+n[3],s>>>=0;a_(e,o,r),a_(e,s,r+4)}var vb=0,b_=function(){return Date.now()+vb},Cb=function(){let i=new Date;return i.setTime(b_()),i.toLocaleString()},Nb=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};function Db(i){let t=wb(i);return t==null?void 0:t.busiBuff}function wb(i){try{let t={},e=0;t.totalLength=dr(i,e),e+=4,t.version=dr(i,e),e+=4,t.encryption=c_(i,e),e+=1,t.uinType=c_(i,e),e+=1,t.uinLength=dr(i,e),e+=4,t.uin=t.uinLength>4?Tc(i,e,t.uinLength-4):"",e+=t.uinLength-4;let r=i.slice(e);if(t.encryption===2){let o=new Uint8Array(16).fill(0);i=Ob(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=dr(i,e),e+=4,t.seqNo=dr(i,e),e+=4,t.retCode=dr(i,e),e+=4,t.retStrLength=dr(i,e),e+=4,t.retStr=t.retStrLength?Tc(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=dr(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?Tc(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=dr(i,e),e+=4,t.cookie=t.cookieLength?Tc(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=dr(i,e),e+=4,t.busiBuffLength=dr(i,e),e+=4,t.busiBuff=t.busiBuffLength?Tc(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function R_(i,t){let e=i[0]<<24|i[1]<<16|i[2]<<8|i[3],r=i[4]<<24|i[5]<<16|i[6]<<8|i[7];e>>>=0,r>>>=0;let o=qp*zp>>>0;for(let s=0;s<zp;s++)r-=(e<<d_)+t[2]^e+o^(e>>>5)+t[3],r>>>=0,e-=(r<<d_)+t[0]^r+o^(r>>>5)+t[1],e>>>=0,o-=qp,o>>>=0;return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,255&e,r>>>24&255,r>>>16&255,r>>>8&255,255&r])}function Ob(i,t){let e=0,r=new Uint8Array(8).fill(0),o=R_(new Uint8Array(i.slice(0,8)),t),s=7&o[0],n=i.length-1-s-Cc-Nc,a=new Uint8Array(n),d=0,l=r,p=i.slice(0,8);e=8;let f=1;f+=s;for(let y=1;y<=Cc;)if(f<8)f++,y++;else if(f===8){let R=Fp(i,e,l,p,o,t);l=R.ivPreCrypt,p=R.ivCurCrypt,o=R.debiBuf,e=R.bufPos,f=0}let g=n;for(;g>0;)if(f<8)a[d++]=o[f]^l[f],f++,g--;else if(f===8){let y=Fp(i,e,l,p,o,t);l=y.ivPreCrypt,p=y.ivCurCrypt,o=y.debiBuf,e=y.bufPos,f=0}for(let y=1;y<=Nc;)if(f<8)o[f],l[f],f++,y++;else if(f===8){if(e>=i.length)break;let R=Fp(i,e,l,p,o,t);if(!R.success)break;l=R.ivPreCrypt,p=R.ivCurCrypt,o=R.debiBuf,e=R.bufPos,f=0}return a}function Fp(i,t,e,r,o,s){if(t+8>i.length)return{success:!1};let n=new Uint8Array(r),a=i.slice(t,t+8),d=new Uint8Array(8);for(let l=0;l<8;l++)d[l]=o[l]^a[l];return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:R_(d,s),bufPos:t+8}}var u_=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function Mb({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(d=>d.clone().json().then(l=>({data:l}),()=>d.arrayBuffer().then(l=>({data:Db(new Uint8Array(l))||(u_?u_.decode(l):l)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let d=JSON.parse(a.response);s({data:d})}catch(d){s({data:a.response})}else n({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=r||5e3,a.open(e,i,!0),a.send(t)})}var xb=Object.prototype.hasOwnProperty,Ic=i=>typeof i=="function",Hn=i=>i===void 0,Pb=i=>typeof i=="boolean",Lb=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function kb(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Lb(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":for(let t in i)if(xb.call(i,t))return!1;return!0}return!1}var Ub=0,Vb=1,l_=2;function Fb({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:d=5,timeout:l=1e3}=t,p=0,f=-1,g=Ub,y=(R,C)=>A(this,null,function*(){let N=n||this;try{let k=yield i.apply(N,a);p>0&&s&&s.call(this,p),p=0,R(k)}catch(k){let Q=()=>{clearTimeout(f),p=0,g=l_,C(k)},H=()=>{g!==l_&&p<(Ic(d)?d():d)?(p++,g=Vb,Ic(r)&&r.call(this,p,Q),f=window.setTimeout(()=>{f=-1,y(R,C)},Ic(l)?l(p):l)):(Q(),Ic(o)&&o.call(this,k))};Ic(e)?e.call(this,{error:k,retry:H,reject:C,retryFuncArgs:a,retriedCount:p}):H()}});return new Promise(y)}}var Bb=Fb,Bp=class v_{constructor(t){tt(this,"_parentPath"),tt(this,"userId"),tt(this,"remoteUserId"),tt(this,"id"),tt(this,"sdkAppId"),tt(this,"type"),tt(this,"isLocal"),this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=!Pb(t.isLocal)||t.isLocal,this.type=this.isLocal?"":t.type}getFullId(){return this._parentPath&&this.id?`${this._parentPath}-${this.id}`:this._parentPath?this._parentPath:this.id}createChild(t){let e=new v_({id:t.id,userId:Hn(t.userId)?this.userId:t.userId,sdkAppId:Hn(t.sdkAppId)?this.sdkAppId:t.sdkAppId,type:Hn(t.type)?this.type:t.type,isLocal:Hn(t.isLocal)?this.isLocal:t.isLocal,remoteUserId:Hn(t.remoteUserId)?this.remoteUserId:t.remoteUserId});return e.bindParent(this),e}bindParent(t){let e=t.getFullId();this._parentPath!==e&&(this.debug(`bind logger parent: ${t.id}`),this._parentPath=e,this.userId=t.userId||this.userId,this.sdkAppId=t.sdkAppId||this.sdkAppId)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId,o=this.getFullId();e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${o}${r?`|${r}`:""}]`),SR.log(t,e,Hn(this.userId)||kb(this.userId),this.userId,this.sdkAppId)}info(...t){this.log(2,t)}debug(...t){this.log(1,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}},hi=typeof navigator=="undefined"?"":navigator.userAgent,Re=i=>new RegExp(i,"i").test(hi),Rt=i=>{if(Re(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=hi.match(t);if(e&&e[1])return e[1]}return""},dl=i=>{if(Re(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=hi.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},m_=/AppleWebKit\/([\d.]+)/i.exec(hi),$b=m_?parseFloat(m_[1]):NaN,C_=Re("iPad"),N_=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&Re("Macintosh"),D_=Re("iPhone")&&!C_,Hb=Re("iPod"),Qp=D_||C_||Hb||N_,Dc=Re("Android"),w_=function(){if(Dc){let i=hi.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(i){let t=i[1]&&parseFloat(i[1]),e=i[2]&&parseFloat(i[2]);if(t&&e)return parseFloat(`${i[1]}.${i[2]}`);if(t)return t}}return NaN}(),DU=Dc&&Re("webkit")&&w_<2.3,wU=Dc&&w_<5&&$b<537,Wb=Re("Firefox"),Gb=Rt("Firefox"),OU=dl("Firefox"),O_=Re("Edge"),jb=Rt("Edge"),M_=Re("Edg"),qb=Rt("Edg"),MU=dl("Edg"),x_=Re("SogouMobileBrowser"),zb=Rt("SogouMobileBrowser"),P_=Re("MetaSr\\s"),Jb=Rt("MetaSr\\s"),Ls=Re("TBS"),Xb=Rt("TBS"),L_=Re("XWEB"),Qb=Rt("XWEB"),xU=Re("MSIE\\s8\\.0"),Yb=Re("MSIE\\/\\d+"),PU=function(){if(Yb){let i=/MSIE\s(\d+)\.\d/.exec(hi),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(hi)&&/rv:11.0/.test(hi)&&(t=11),t}return NaN}(),Zb=Re("(micromessenger|webbrowser)"),Kb=Rt("MicroMessenger"),Yp=!Ls&&Re("MQQBrowser")&&Re("COVC"),Zp=!Ls&&Re("MQQBrowser")&&!Re("COVC"),h_=Zp||Yp?Rt("MQQBrowser"):"",k_=!Ls&&Re(" QQBrowser"),eR=Rt(" QQBrowser"),U_=!Ls&&Re("QQBrowserLite"),tR=Rt("QQBrowserLite"),V_=!Ls&&Re("MQBHD"),rR=Rt("MQBHD"),LU=Re("Windows"),kU=!Qp&&Re("MAC OS X"),UU=!Dc&&Re("Linux"),VU=Re("CrOS"),FU=Re("MicroMessenger"),BU=Re("UCBrowser"),$U=Re("Electron"),F_=Re("MiuiBrowser"),iR=Rt("MiuiBrowser"),B_=Re("HuaweiBrowser"),HU=Re("Huawei")||Re("HUAWEI"),WU=Re("Honor")||Re("HONOR"),oR=Rt("HuaweiBrowser"),$_=Re("SamsungBrowser"),sR=Rt("SamsungBrowser"),H_=Re("HeyTapBrowser"),nR=Rt("HeyTapBrowser"),W_=Re("VivoBrowser"),aR=Rt("VivoBrowser"),GU=Re("OpenHarmony"),jU=Rt("OpenHarmony"),cR=()=>dl("Chrome"),p_=Re("CriOS"),G_=Re("Chrome"),dR=!O_&&!P_&&!x_&&!Ls&&!L_&&!M_&&!k_&&!F_&&!B_&&!$_&&!H_&&!W_&&G_,uR=Re("HeadlessChrome"),qU=cR(),lR=Rt("Chrome"),zU=dl("Electron"),mR=!G_&&!Zp&&!Yp&&!U_&&!V_&&Re("Safari"),j_=Rt("Version"),JU=/Android.*(wv|.0.0.0)/.test(hi),q_=(()=>{if(N_)return j_;if(Qp){let i=hi.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})(),XU=Number(q_.split(".")[0]),QU=(()=>{let i=Number(q_.split(".")[0]);return i===14||i===13})(),YU=typeof location!="undefined"&&(location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"),ZU=hR();function hR(){let i=new Map([[Wb,["Firefox",Gb]],[M_,["Edg",qb]],[dR,["Chrome",lR]],[p_,["ChiOS",Rt("CriOS")]],[mR&&!p_,["Safari",j_]],[Ls,["TBS",Xb]],[L_,["XWEB",Qb]],[Zb&&D_,["WeChat",Kb]],[k_,["QQ(Win)",eR]],[Zp,["QQ(Mobile)",h_]],[Yp,["QQ(Mobile X5)",h_]],[U_,["QQ(Mac)",tR]],[V_,["QQ(iPad)",rR]],[F_,["MI",iR]],[B_,["HW",oR]],[$_,["Samsung",sR]],[H_,["OPPO",nR]],[W_,["VIVO",aR]],[O_,["EDGE",jb]],[x_,["SogouMobile",zb]],[P_,["Sogou",Jb]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var pR=I_(S_(),1),fR=new pR.default,Xi=fR,Sc=y_,gR=class{constructor(){tt(this,"enable",!1),tt(this,"ssoFailCount",0),Xi.on("22",({schedule:i})=>{var t;(t=i==null?void 0:i.config)!=null&&t.sso&&Xi.emit("266",{enable:!0})}),Xi.on("266",({enable:i})=>{this.enable=i})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&Xi.emit("266",{enable:!1})}},f_=new gR,ER="%cTRTC%c%s",_R="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",TR="display: inline",z_=class J_{constructor(){tt(this,"_isEnableUploadLog",!0),tt(this,"_localJoinedUser",new Map),tt(this,"_queue",[]),tt(this,"_timeoutId",-1),tt(this,"_logLevel",1),tt(this,"_logLevelToUpload",2),ub||lb||(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){Xi.on(Sc.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&Ps[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),Xi.on(Sc.JOIN_SUCCESS,({room:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),Xi.once(Sc.JOIN_FAILED,()=>{this.startUpload()}),Xi.on(Sc.LEAVE_SUCCESS,({room:t})=>{this.deleteJoinedUser(t.userId)})}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(t){this._localJoinedUser.set(t.userId,t),this.startUpload()}deleteJoinedUser(t){this._localJoinedUser.delete(t)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){let t={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return t;let e=0;for(;e<this._queue.length&&e!==50;e++){let r=this._queue[e];if(r.forAllJoinedClients)this._localJoinedUser.forEach(({userId:o,sdkAppId:s})=>{t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})});else if(Jp(r.userId)&&bR(r.sdkAppId)){let{userId:o,sdkAppId:s}=r;t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})}}return t.map.size>0&&(t.splicedQueue=this._queue.splice(0,e)),t}upload(){return A(this,null,function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:t,splicedQueue:e}=this.getLogsToUpload();if(t.size===0)return;try{let o=[...t.values()];for(let s=0;s<o.length;s++){let{userId:n,sdkAppId:a,logs:d}=o[s],l={timestamp:Cb(),sdkAppId:String(a),userId:n,version:db,log:d.map(g=>g.log).join(`
93
- `)},p=JSON.stringify(l),f=f_.enable?vR(l,2002,a):p;yield this.uploadLogWithRetry(f,a,f instanceof Uint8Array,p),d.forEach(g=>g.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e,r,o){return Bb({retryFunction:()=>Mb({url:AR(e,Eb.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(f_.handleUploadFailed(),this.uploadLogWithRetry(o,e,!1,o))}),settings:{retries:3,timeout:2e3},onError:({retry:s})=>{s()}})()}getPrefix(t){let e=new Date;return e.setTime(b_()),`[${Nb(e)}] <${Ps[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){X_(Ps[t])||(this._logLevel!==t&&this.info("setLogLevel",t),this._logLevel=t)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(t){if(Jp(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}addLogToQueue(t,e,r=!0,o,s){let n={log:e.reduce((a,d)=>`${a} ${this.logChunkToString(d)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};Xi.emit(Sc.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n)}log(t,e,r=!0,o,s){var n;if(e.unshift(this.getPrefix(t)),this.addLogToQueue(t,e,r,o,s),t<this._logLevel)return;let a=((n=Ps[t])==null?void 0:n.toLowerCase())||"info";J_.PRINT_LOG_TAG?console[a](ER,_R,TR,...e):console[a](...e)}debug(...t){this.log(1,t)}info(...t){this.log(2,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}createLogger(t){if(t.parent instanceof Bp){let e=t,{parent:r}=e,o=ZA(e,["parent"]),s=new Bp(o);return s.bindParent(r),s}return new Bp(t)}checkURLParam(){let t=new URLSearchParams(location.search).get("logLevelToUpload"),e=t?Number(t):-1;Ps[e]&&(this._logLevelToUpload=e)}getQueue(){return this._queue}};tt(z_,"PRINT_LOG_TAG",!(Qp||Dc||uR));var IR=z_,SR=new IR,yR=i=>Number(i)<14e8,AR=function(i,t){let e;return e=mb||(yR(i)?gb:fb),`${e}/v5/AVQualityReportSvc/C2S?random=${Math.floor(Math.random()*ti(2,31))}&sdkappid=${i}&cmdtype=${t}`},KU=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},X_=i=>i===void 0,Jp=i=>typeof i=="string",bR=i=>typeof i=="number",eV=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function g_(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var{toString:tV}=Object.prototype;function RR(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return X_(r)||(o=bc(Ac({},o),{gzip:+r})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:t,bytes_report_data:JSON.stringify(o)}}}function vR(i,t,e,r){try{let o=RR(i,t,e,r);return Ab(jp(o),e)}catch(o){return JSON.stringify(i)}}var Q_=class Y_{constructor(t){this.core=t,tt(this,"contextMap",new Map),tt(this,"decodeProcessorMap",new WeakMap),this.addKVReportBeforeExitRoom=this.addKVReportBeforeExitRoom.bind(this),this.createDecoder=this.createDecoder.bind(this),this.core.innerEmitter.on("51",this.addKVReportBeforeExitRoom)}getAlias(){return"videoDecoder"}getGroup(t){return t!=null&&t.track?`${t.track.userId}${t.track.streamType}`:"*"}getName(){return Y_.Name}getValidateRule(t){return{type:this.core.enums.BASIC_TYPE.Object}}createDecoder(t,e){var r;switch(t){case"wasm":let s=((r=this.core.assetsPath)==null?void 0:r.replace(/\/+$/,""))||".";return new cb(bc(Ac({},e),{wasmPath:`${s}/videodec.wasm`}));case"webCodecs":return new Wn;case"mse":throw new Error("mse decoder not supported yet");default:throw new Error("Unsupported decoder type")}}start(t){this.decodeProcessorMap.set(t.track,this.decode(t)),this.core.room.videoManager.addDecodeProcessor({processor:({frame:e,track:r})=>{var o;return((o=this.decodeProcessorMap.get(r))==null?void 0:o({frame:e,track:r}))||e},type:3})}decode(t){let{pipe:e,take:r,subscribe:o}=this.core.rx;return({frame:s,track:n})=>{if(n!==t.track||s.type==="empty")return s;if(this.contextMap.has(n))return this.contextMap.get(n).decode(s);let a=this.core.room.videoManager.createDecodeContext(bc(Ac({},t),{createDecoder:this.createDecoder}));return e(a.trackDoneOB,r(1),o(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:n})})),this.contextMap.set(n,a),a.decode(s)}}stop(t){if(t!=null&&t.track){let e=this.contextMap.get(t.track);e&&(e.close("stop"),this.report(e,t.track),this.contextMap.delete(t.track))}else this.contextMap.forEach((e,r)=>{e.close("stop"),this.contextMap.delete(r)});this.contextMap.size===0&&this.core.room.videoManager.removeDecodeProcessor({type:3})}report(t,e){if(t.isReported)return;t.isReported=!0;let r=g_()-t.startPerformanceTime,{renderFreezeTotal:o,dataFreezeTotal:s}=this.getRemoteTrackFreezeDuration(e,t),n=`report health data: ${t.track.userId} ${t.track.streamType} ${t.type}+${t.renderer} goodType\uFF1A${t.goodType} ${t.failedReason?`failedReason: ${t.failedReason}`:""}`;r&&(this.core.kvStatManager.addNumber({key:514850,value:Math.floor(o/r*100),split:1,max:100}),n+=` RENDER_FREEZE_RATE: ${Math.floor(o/r*100)}%`),r&&(this.core.kvStatManager.addNumber({key:514851,value:Math.floor(s/r*100),split:1,max:100}),n+=` DATA_FREEZE_RATE: ${Math.floor(s/r*100)}%`),t.inputFrameCount&&(this.core.kvStatManager.addNumber({key:514852,value:Math.floor(t.decodedFrameCount/t.inputFrameCount*100),split:1,max:100}),n+=` VIDEO_CONSUME_RENDER_RATE: ${Math.floor(t.decodedFrameCount/t.inputFrameCount*100)}%`),this.core.log.info(n)}addKVReportBeforeExitRoom({room:t}){t===this.core.room&&this.contextMap.forEach((e,r)=>{this.report(e,r)})}update(t){let e=this.contextMap.get(t.track);e&&(t.type!=="mock"?(e.close("update"),this.contextMap.set(t.track,this.core.room.videoManager.createDecodeContext(bc(Ac({},t),{createDecoder:this.createDecoder})))):e.mock(this.core.enums.DECODE_FAILED_ERROR_CODE.TEST))}getRemoteTrackFreezeDuration(t,e){let r=this.core.room.badCaseDetector.getRenderFreezeMap().get(`${t.userId}_${t.streamType}`),o=this.core.room.badCaseDetector.getDataFreezeMap().get(`${t.userId}_${t.streamType}`),s=0;r&&r.freezeTimeline.forEach(({startTime:a,endTime:d})=>{a>e.startPerformanceTime&&(s+=d===0?g_()-a:d-a)});let n=0;return o&&o.durationItemList.forEach(a=>{a.startTime>e.startPerformanceTime&&(n+=a.getDuration())}),{renderFreezeTotal:s,dataFreezeTotal:n}}destroy(){this.core.innerEmitter.off("51",this.addKVReportBeforeExitRoom)}};tt(Q_,"Name","TRTCVideoDecoder");var Kp=Q_;var vT=Ai(ki());function ef({timesInSecond:i,maxSizeInSecond:t,getSize:e}){return xe((r,o)=>{let s=new WeakMap;return U.on(B.ROOM_DESTROY,({room:n})=>s.delete(n)),function(...n){let a=s.get(this);if(a||(a={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},s.set(this,a)),a.timestamp===0?a.timestamp=Date.now():Date.now()-a.timestamp>1e3&&(a.timestamp=Date.now(),a.callCountInSecond=0,a.totalSizeInSecond=0),e&&(a.totalSizeInSecond+=e(...n)),a.timestamp!==0&&Date.now()-a.timestamp<1e3&&(a.callCountInSecond>=i||a.totalSizeInSecond>t))throw new ae({code:q.INVALID_OPERATION,message:He({key:$e.CALL_FREQUENCY_LIMIT,data:{isTimes:a.callCountInSecond>=i,isSize:a.totalSizeInSecond>t,name:o,timesInSecond:i,maxSizeInSecond:t}})});a.callCountInSecond++,r.call(this,...n)}})}var CR="2025-11-04 16:53:45",Z_=!0,K_=function(){var i;if(Z_){Z_=!1,F.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info(`* API Document: ${ir}/en/index.html`),console.info(`* Changelog: ${ir}/en/tutorial-01-info-changelog.html`),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),F.info("TRTC Web SDK Version:",ht),Gr||F.debug("Build Time:",CR);let t=`UA: ${navigator.userAgent}
94
- CPU core: ${navigator.hardwareConcurrency}, GPU: ${Hm()}`,e=navigator.deviceMemory;e&&(t+=`, minRAM: ${e}GB`),F.info(t),F.info(`URL: ${location.href}${((i=self.frameElement)==null?void 0:i.tagName)==="IFRAME"?" in iframe":""}`),ls().then(r=>{r&&F.info($r)})}};var ks={SCENE_LIVE:"live",SCENE_RTC:"rtc",ROLE_ANCHOR:"anchor",ROLE_AUDIENCE:"audience",STREAM_TYPE_MAIN:"main",STREAM_TYPE_SUB:"sub",AUDIO_PROFILE_STANDARD:"standard",AUDIO_PROFILE_STANDARD_STEREO:"standard-stereo",AUDIO_PROFILE_HIGH:"high",AUDIO_PROFILE_HIGH_STEREO:"high-stereo",QOS_PREFERENCE_SMOOTH:"smooth",QOS_PREFERENCE_CLEAR:"clear",SPEAKER:"Speakerphone",HEADSET:"Headset earpiece"};var se={INVALID_PARAMETER:5e3,INVALID_OPERATION:5100,ENV_NOT_SUPPORTED:5200,DEVICE_ERROR:5300,SERVER_ERROR:5400,OPERATION_FAILED:5500,OPERATION_ABORT:5998,UNKNOWN_ERROR:5999},Tr=(P=>(P[P.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",P[P.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",P[P.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",P[P.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",P[P.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",P[P.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",P[P.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",P[P.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",P[P.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",P[P.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",P[P.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",P[P.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",P[P.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",P[P.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",P[P.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",P[P.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",P[P.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",P[P.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",P[P.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",P[P.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",P[P.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",P[P.INVALID_OPERATION=5100]="INVALID_OPERATION",P[P.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",P[P.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",P[P.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",P[P.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",P[P.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",P[P.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",P[P.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",P[P.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",P[P.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",P[P.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",P[P.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",P[P.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",P[P.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",P[P.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",P[P.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",P[P.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",P[P.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",P[P.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",P[P.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",P[P.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",P[P.DEVICE_ERROR=5300]="DEVICE_ERROR",P[P.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",P[P.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",P[P.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",P[P.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",P[P.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",P[P.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",P[P.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",P[P.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",P[P.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",P[P.NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX=5310]="NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX",P[P.SERVER_ERROR=5400]="SERVER_ERROR",P[P.NEED_TO_BUY=5401]="NEED_TO_BUY",P[P.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",P[P.OPERATION_FAILED=5500]="OPERATION_FAILED",P[P.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",P[P.REJOIN_FAILED=5502]="REJOIN_FAILED",P[P.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",P[P.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",P[P.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",P[P.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",P[P.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",P[P.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",P[P.OPERATION_ABORT=5998]="OPERATION_ABORT",P[P.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",P))(Tr||{});function tT({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=Tr[i];try{o=eT[s]}catch(n){o=eT.UNKNOWN_ERROR}return Xe(o)?r=o(t):we(o)&&(r=o),t.fnName&&!r.includes(t.fnName)&&(r[r.length-1]!=="."&&(r+="."),r+=` thrown from ${t.fnName}()`),e&&(r+=" doc:"),r}var eT=Ee(Y({},nr),{INVALID_PARAMETER({fnName:i}){return`the parameters of the '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${pt(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${pt(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_LESS_THAN_ZERO({key:i,rule:t,fnName:e}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},INVALID_PARAMETER_MIN({key:i,rule:t,value:e}){return`the min value of ${i||t.name} is ${t.min}, received: ${e}.`},INVALID_PARAMETER_MAX({key:i,rule:t,value:e}){return`the max value of ${i||t.name} is ${t.max}, received: ${e}.`},INVALID_ELEMENT_ID({key:i,fnName:t}){return`'${i}' is not found in the document object when calling ${t}().`},INVALID_ELEMENT_ID_TYPE({key:i,fnName:t,type:e}){return`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`},INVALID_STREAM_ID({key:i}){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},INVALID_ROOM_ID_STRING({key:i}){return`'${i}' must be a valid string.`},INVALID_ROOM_ID_INTEGER({key:i}){return`'${i}' must be an integer between [1, 4294967294].`},INVALID_ROOM_ID_INTEGER_STRING({key:i}){return`'${i}' must be an integer but go a string, use 'parseInt' to convert it or use 'strRoomId' instead.`},INVALID_ROOM_ID_REQUIRED(){return"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required."},INVALID_ROOM_ID_TYPE_MISMATCH({key:i}){return`The type of target roomId must match the current roomId. Current room is using '${i}', but received '${i==="strRoomId"?"roomId":"strRoomId"}'.`},INVALID_ROOM_ID_DUPLICATE({key:i}){return`the target '${i}' must not be the same as the current '${i}'.`},INVALID_STREAM_TYPE:({fnName:i})=>`'streamType' is required when 'userId' is not '*', calling ${i}()`,INVALID_IMAGE_URL:"The 'src' param must be filled in when the background type is image.",INVALID_OPERATION({fnName:i}){return`the API '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_OPERATION_NOT_JOINED({fnName:i}){return`cannot ${i} because you are not enter room yet.`},INVALID_OPERATION_REMOTE_USER_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing stream.`},INVALID_OPERATION_STREAM_TYPE_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing ${t.streamType} video.`},INVALID_OPERATION_REPEAT_CALL({fnName:i}){return`you are already ${i}(), cannot repeated call '${i}'.`},INVALID_OPERATION_NEED_VIDEO({fnName:i}){return`cannot call '${i}' because the camera is not turned on.`},INVALID_OPERATION_NEED_AUDIO({fnName:i}){return`cannot call '${i}' because the microphone or screen share is not turned on.`},INVALID_BUFFER_EMPTY:({key:i})=>`the buffer size of paramerter '${i}' cannot be empty`,INVALID_BUFFER_OVERSIZE:()=>"buffer size is over 1000 Bytes",INVALID_ROLE_AUDIENCE:()=>"role: 'audience' cannot call this api.",INVALID_NOT_ENABLE_SEI:()=>"you need to enable SEI in TRTC.create({ enableSEI: true })",INVALID_NEED_CALL_PUBLISHED:({fnName:i})=>`you need to call ${i}() after publish stream.`,ENV_NOT_SUPPORTED({fnName:i}){return`the current browser does not support the capability of the function '${i}' you are calling, please check the API documentation.`},NOT_SUPPORTED_WEBRTC:"the current browser does not support WebRTC capability, please check the SDK documentation.",NOT_SUPPORTED_H264_ENCODE:"this browser does not support H264 encode.",NOT_SUPPORTED_H264_DECODE:"this browser does not support H264 decode.",NOT_SUPPORTED_SCREEN_SHARE:"this browser does not support screen share, please check the browser version.",NOT_SUPPORTED_SMALL_VIDEO:"this browser does not support small video, please check the browser version.",NOT_SUPPORTED_SEI:"this browser does not support SEI, please check the browser version.",NOT_SUPPORTED_WEBGL:"this browser does not support WebGL, please check the browser version.",NOT_SUPPORTED_CHROME_VERSION({fnName:i}){return`cannot call ${i} because the browser version is too low, please upgrade to the latest version`},DEVICE_ERROR({fnName:i,error:t}){return`'${i}' got device exception${t?`, error: ${t.toString()}.`:"."}`},DEVICE_NOT_FOUND_ERROR({fnName:i,deviceType:t=Us(i),error:e}){return`NotFoundError, no ${t} detected, please check your device and the configuration on '${i}'${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_ALLOWED_ERROR({fnName:i,deviceType:t=Us(i),error:e}){return`NotAllowedError, you have disabled ${t} access, please allow the current application to use the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_READABLE_ERROR({fnName:i,deviceType:t=Us(i),error:e}){return`NotReadableError, the ${t} maybe in use by another APP, please check if the device is pre-occupied by another APP.`},DEVICE_OVERCONSTRAINED_ERROR({fnName:i,deviceType:t=Us(i),error:e}){return`OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct${e?`, error: ${e.toString()}.`:"."}`},DEVICE_INVALID_STATE_ERROR({fnName:i,deviceType:t=Us(i),error:e}){return`InvalidStateError, after the user clicks and interacts with the page, turn on the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_SECURITY_ERROR({fnName:i,deviceType:t=Us(i),error:e}){return`SecurityError, check whether the system security policy restricts the use of the ${t}, and it is recommended to turn on the ${t} after the user interacts with the page${e?`, error: ${e.toString()}.`:"."}`},DEVICE_ABORT_ERROR({fnName:i,deviceType:t=Us(i),error:e}){return`AbortError, an unknown exception in the system makes the device unusable, recommended to change the device or browser and re-check whether the device is normal${e?` error: ${e.toString()}.`:"."}`},CAMERA_RECOVER_FAILED({error:i}){return`camera recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},MICROPHONE_RECOVER_FAILED({error:i}){return`microphone recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},OPERATION_FAILED({fnName:i,error:t}){return`'${i}' failed, reason: ${t==null?void 0:t.toString()}`},FIREWALL_RESTRICTION(){return"media connection failure due to firewall restrictions, please try to change your network."},EVENT_HANDLER_ERROR({eventName:i}){return`an error was caught on trtc.on('${i}', handler), please check your code on 'handler'.`},VIDEO_CONTEXT_ERROR({reason:i,error:t}){return`video context error ${i} ${(t==null?void 0:t.name)||""} ${(t==null?void 0:t.message)||""}`},SERVER_ERROR({fnName:i,error:t}){return`'${i}' got server error: ${t==null?void 0:t.toString()}, please check the SDK documentation.`},NEED_TO_BUY({value:i,url:t}){return`You need to buy packages for ${i}. Refer to: ${t}`},ACCOUNT_NO_MONEY:({fnParams:i})=>`your TRTC account run out of credit, please recharge.${i.sdkAppId?` SDKAppId: ${i.sdkAppId}`:""}`,OPERATION_ABORT({fnName:i}){return`'${i}' abort`},UNKNOWN_ERROR({fnName:i,error:t}){return`'${i}' throw unknown exception${t?`, error: ${t.toString()}.`:"."}`}});function Us(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var tf=class i extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:n="",originError:a,data:d}){var p;let l;o?l=o:l=tT({code:e===se.SERVER_ERROR?e:r||e,params:Y({fnName:n,error:a},s)});super(l);m(this,"name","RtcError");m(this,"code");m(this,"extraCode");m(this,"functionName");m(this,"message");m(this,"data");m(this,"handler");m(this,"originError");this.name=Tr[e],this.code=e,this.extraCode=r,this.functionName=n,this.originError=a,this.message=l,this.data=d,this.extraCode===5302&&((p=this.originError)!=null&&p.message.includes("system"))&&(this.handler=()=>{let f={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},g={startLocalVideo:"webcam",startLocalAudio:"microphone"},y=document.createElement("a");us?y.href=`ms-settings:privacy-${g[this.functionName]}`:Wr&&(y.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${f[this.functionName]}`),y.href.length>0&&y.click()})}static convertFrom(e,r,o){let s=e;if(e instanceof ae){let{stack:n}=e,a={code:se.UNKNOWN_ERROR,fnName:r,originError:e};switch(e.getCode()){case q.INVALID_PARAMETER:a.code=se.INVALID_PARAMETER,a.message=e.message;break;case q.INVALID_OPERATION:a.code=se.INVALID_OPERATION;break;case q.NOT_SUPPORTED:case q.NOT_SUPPORTED_H264:a.code=se.ENV_NOT_SUPPORTED,e.getCode()===q.NOT_SUPPORTED_H264&&(a.extraCode=e.message.includes(nr.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case q.JOIN_ROOM_FAILED:a.messageParams={fnParams:o};case q.SERVER_TIMEOUT:case q.SWITCH_ROLE_FAILED:case q.SWITCH_ROOM_FAILED:a.code=se.SERVER_ERROR,a.extraCode=e.getExtraCode();break;case q.API_CALL_ABORTED:a.code=se.OPERATION_ABORT;break;case q.DEVICE_NOT_FOUND:case q.DEVICE_AUTO_RECOVER_FAILED:case q.INITIALIZE_FAILED:a.code=5300,e.name&&(a.extraCode=NR(e.name));break;case q.VIDEO_ENCODE_FAILED:a.extraCode=5505;case q.AUDIO_ENCODE_FAILED:a.extraCode=5506,a.code=se.OPERATION_FAILED;break;case q.UNKNOWN:break;default:a.code=se.OPERATION_FAILED}s=new i(a),n&&(s.stack+=n.substr(n.indexOf(`
95
- `)))}else{if(e instanceof i)return e;s=new i({code:se.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function NR(i){let t;switch(i){case"NotFoundError":t=5301;break;case"NotAllowedError":t=5302;break;case"NotReadableError":t=5303;break;case"OverconstrainedError":t=5304;break;case"InvalidStateError":t=5305;break;case"SecurityError":t=5306;break;case"AbortError":t=5307;break;default:t=5300}return t}var oe=tf;function pi(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function wc(i){return i===ks.QOS_PREFERENCE_CLEAR?"detail":i===ks.QOS_PREFERENCE_SMOOTH?"motion":""}function jn(i,t){let e=t?dm:fa;return Dm(i)?Y(Y({},e),i):Vr[i]?Vr[i]:e}var rT={type:"object",properties:{cameraId:{type:"string"},useFrontCamera:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:["string","boolean"],values:[!0,!1,"view","publish","both"]},small:{type:["string","object","boolean"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},iT={type:"object",properties:{systemAudio:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},profile:{type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack},audioTrack:{instanceOf:MediaStreamTrack}}},qn={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(we(i)&&!document.getElementById(i))throw new oe({code:se.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},oT={name:"userId",required:!0,type:"string"},sT={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{type:["string","object"],properties:{bitrate:{type:"number"},channelCount:{type:"number"}}},echoCancellation:{values:[!0,!1,"remote-only","all"]},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function zn(i,t){if(!i)throw new oe({code:se.INVALID_OPERATION,extraCode:5101,fnName:t})}function nT(i,t,e){if(!i)throw new oe({code:se.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}function aT(i,t,e){if(!(/^[1-9]\d*$/.test(String(i))&&i<4294967295))throw new oe({code:se.INVALID_PARAMETER,extraCode:5013,fnName:t,messageParams:{key:e}})}function cT(i,t,e){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(i))throw new oe({code:se.INVALID_PARAMETER,extraCode:5012,fnName:t,messageParams:{key:e}})}var C2={type:"number",notLessThanZero:!0},DR=(i,t)=>i.width*i.height>=t.width*t.height&&i.frameRate>=t.frameRate&&i.bitrate>=t.bitrate;function dT(i){var r;if(!((r=i==null?void 0:i.option)!=null&&r.small))return;if(!gu()){F.warn("small stream is not supported"),delete i.option.small;return}let t=jn(i.option.profile),e=jn(i.option.small,!0);if(!DR(t,e)){F.warn(`small stream profile must be less than big stream profile. Big: ${JSON.stringify(t)}, Small: ${JSON.stringify(e)}`),delete i.option.small;return}}var wR={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(i,t,e){if(this._room.isJoined)throw new oe({code:se.INVALID_OPERATION,extraCode:5104,fnName:e});if(i.roomId){if(we(i.roomId))throw new oe({code:se.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});aT(i.roomId,e,t)}else if(i.strRoomId)cT(i.strRoomId,e,t);else throw new oe({code:se.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{sdkAppId:{required:!0,type:"number",allowEmpty:!1},userId:{required:!0,type:"string",allowEmpty:!1},userSig:{required:!0,type:"string",allowEmpty:!1},scene:{type:"string",values:["live","rtc"]},role:{type:"string",values:["audience","anchor"]},roomId:{type:["string","number"]},strRoomId:{type:"string"},proxy:{type:["object","string"],properties:{websocketProxy:{type:"string"},turnServer:{type:["object","array"],properties:{url:{required:!0,type:"string"},username:{type:"string"},credential:{type:"string"},credentialType:{type:"string",values:["password"]}}},loggerProxy:{type:"string"},webtransportProxy:{type:"string"}}},enableAutoPlayDialog:{type:"boolean"},userDefineRecordId:{type:"string"},latencyLevel:{type:"number"},playoutDelay:{type:"object",properties:{min:{type:"number",min:0,max:1e3},max:{type:"number",min:0,max:1e4}}}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:qn,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:rT},validate(i){var t,e;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&Hi())throw new oe({code:se.ENV_NOT_SUPPORTED,extraCode:5201});(e=i==null?void 0:i.option)!=null&&e.small&&dT(i)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:Ee(Y({},qn),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:rT},validate(i){var t;(t=i==null?void 0:i.option)!=null&&t.small&&dT(i)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:sT},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.audioTrack)&&Hi())throw new oe({code:se.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:sT}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:qn,publish:{type:"boolean"},option:iT},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)){if(Hi())throw new oe({code:se.ENV_NOT_SUPPORTED,extraCode:5201});if(!za())throw new oe({code:se.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:qn,publish:{type:"boolean"},option:iT}},muteRemoteAudio:[oT,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[oT,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:qn,userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){zn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(nT(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:se.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:Ee(Y({},qn),{required:!1}),userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){zn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(nT(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:se.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(i,t,e){if(i.userId!=="*"&&O(i.streamType))throw new oe({code:se.INVALID_PARAMETER,extraCode:5014,fnName:e})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(i,t,e){zn(this._room.isJoining||this._room.isJoined,e)}},enableAudioVolumeEvaluation:[{name:"interval",type:"number"},{name:"enableInBackground",type:"boolean"}],sendSEIMessage:[{name:"buffer",required:!0,instanceOf:ArrayBuffer,validate(i,t,e,r){if(!Xa)throw new oe({code:se.ENV_NOT_SUPPORTED,fnName:e,extraCode:5207});if(!this._room.enableSEI)throw new oe({code:se.INVALID_OPERATION,fnName:e,extraCode:5108});if(i.byteLength>1e3)throw new oe({code:se.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:se.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:e});zn(this._room.isJoined,e)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(i,t,e){if(!i&&!this._room.isMainStreamPublished||i&&!this._room.isAuxStreamPublished)throw new oe({code:se.INVALID_OPERATION,extraCode:5109,messageParams:{key:t},fnName:e})}}}}],sendCustomMessage:{name:"message",required:!0,type:"object",properties:{cmdId:{type:"number",required:!0,min:1,max:10},data:{instanceOf:ArrayBuffer,required:!0,validate(i,t,e,r){if(i.byteLength>1e3)throw new oe({code:se.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:se.INVALID_PARAMETER,extraCode:5017,fnName:e,messageParams:{key:t}})}}},validate(i,t,e){if(zn(this._room.isJoined,e),this._room.scene==="live"&&this._room.role==="audience")throw new oe({code:se.INVALID_OPERATION,extraCode:5107,fnName:e,messageParams:{key:t}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(i,t,e){if(zn(this._room.isJoined,e),this._room.useStringRoomId&&i.strRoomId===this._room.roomId||!this._room.useStringRoomId&&i.roomId===Number(this._room.roomId))throw new oe({code:se.INVALID_PARAMETER,extraCode:5020,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId&&this._room.useStringRoomId||!i.roomId&&i.strRoomId&&!this._room.useStringRoomId)throw new oe({code:se.INVALID_PARAMETER,extraCode:5019,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId)aT(i.roomId,e,t);else if(i.strRoomId)cT(i.strRoomId,e,t);else throw new oe({code:se.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{roomId:{type:"number"},strRoomId:{type:"string"},privateMapKey:{type:"string"},userSig:{type:"string",required:!0},autoSubscribeCount:{type:"number",min:0,max:50}}}},Ot={TRTC:wR};var Yt=class extends Error{};function OR(i,t){let e=is(i);for(let r=0;r<t.length;r++)Br(e[r],t[r]);return e}function MR(i){this._resolve=Promise.resolve(i)}function xR(i){this._reject=Promise.reject(i)}var Po=class Po{constructor(t,e){this.instance=t;this.group=e;m(this,"started",!1);m(this,"ops",[]);m(this,"startSame",()=>!0);m(this,"mergeUpdate",OR);let r=Po.instances.get(t);r?r.set(e,this):Po.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=Po.instances.get(t);return r&&r.get(e)||new Po(t,e)}static gets(t,e){let r=Po.instances.get(t),o=[];return r&&r.forEach((s,n)=>{e.test(n)&&o.push(s)}),o}action(t,e,r){let o=a=>{var d;return t===0?this.started=!0:t===3&&(this.started=!1),this.ops.shift(),(d=this.currentOp)==null||d.action(),a},s=a=>{var d,l;throw this.ops.shift(),t===0&&((d=this.currentOp)==null?void 0:d.type)===2&&this.ops.shift().reject(new Yt("start failed")),(l=this.currentOp)==null||l.action(),a},n={type:t,action:()=>e(...n.args).then(o,s),args:r,resolve:MR,reject:xR};try{switch(this.state){case 1:if(t===0)throw new Yt("already started");break;case 4:if(t===2)throw new Yt("not started");break;default:return this.cacheOp(n)}}catch(a){return Promise.reject(a)}return this.ops.push(n),n.promise=e(...n.args).then(o,s)}cacheOp(t){if(this.ops.length===1)switch(this.state){case 0:case 2:if(t.type===0)throw new Yt("already start");break;case 3:switch(t.type){case 2:throw new Yt("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Yt("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new Yt("keep stop");if(this.ops.slice(1).forEach(o=>o.reject(r)),this.ops=this.ops.slice(0,1),this.state===3)return this.currentOp.promise}break;case 2:switch(this.lastOpType){case 2:return this.lastOp.args=this.mergeUpdate(this.lastOp.args,t.args),this.lastOp.promise;case 3:throw new Yt("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Yt("start not allowed after update");case 0:throw new Yt("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new Yt("keep start")),new Yt("already start")}}t.promise=new Promise((r,o)=>{t._resolve?t._resolve.then(r):t.resolve=r,t._reject?t._reject.catch(o):t.reject=o});let{action:e}=t;return t.action=()=>e().then(t.resolve,t.reject),this.ops.push(t),t.promise}get lastOp(){return this.ops[this.ops.length-1]}get lastOpType(){return this.lastOp.type}get currentOp(){return this.ops[0]}get state(){return this.currentOp?this.currentOp.type:this.started?1:4}};m(Po,"instances",new WeakMap);var Qi=Po;var ll=new WeakMap,ml=(i,t)=>{if(t instanceof Yt){let{stack:e}=t;t=new oe({code:se.OPERATION_ABORT,message:`${i} abort: ${t.message}`,fnName:i}),e&&(t.stack+=e.substr(e.indexOf(`
96
- `)))}throw t};function Lo(i,t){return xe((e,r)=>function(...o){let s=Qi.get(this,typeof i=="string"?i:i.call(this,...o));return s?(t&&(s.startSame=t.bind(this)),s.action(0,e.bind(this),o).catch(ml.bind(null,r))):e.apply(this,o)})}function Vs(i,t){let{merge:e,debounce:r}=t||{};return xe((o,s)=>function(...n){let a=Qi.get(this,typeof i=="string"?i:i.call(this,...n));if(!a)return o.apply(this,n);if(e&&(a.mergeUpdate=e.bind(this)),r&&r.isNeedToDebounce.apply(this,n)){let{delay:d,getKey:l}=r;return new Promise((p,f)=>{var R,C;let g=(R=ll.get(this))==null?void 0:R.get(l(...n));if(g){let{timeoutId:N,resolve:k}=g;clearTimeout(N),k()}let y=setTimeout(()=>{if(a.state===3||a.state===4)return p();a.action(2,o.bind(this),n).catch(ml.bind(null,s)).then(p,f)},d);ll.has(this)?(C=ll.get(this))==null||C.set(l(...n),{timeoutId:y,resolve:p}):ll.set(this,new Map([[l(...n),{timeoutId:y,resolve:p}]]))})}return a.action(2,o.bind(this),n).catch(ml.bind(null,s))})}function ko(i){return xe((t,e)=>function(...r){let o=typeof i=="function"?i.call(this,...r):i;if(o instanceof RegExp)return Promise.all(Qi.gets(this,o).map(n=>n.action(3,()=>Promise.resolve(),r))).then(()=>t.call(this,...r));let s=Qi.get(this,o);return s?s.action(3,t.bind(this),r).catch(ml.bind(null,e)):t.apply(this,r)})}function Uo(){return function(i,t,e){return i.prototype[t]=function(){let r=this._log||console,o=`"${t}" is a static method. Use TRTC.${t}() instead. See: ${ir}/en/TRTC.html#.${t}`;r.warn(o)},e}}var ee={ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",KICKED_OUT:"kicked-out",REMOTE_USER_ENTER:"remote-user-enter",REMOTE_USER_EXIT:"remote-user-exit",REMOTE_AUDIO_AVAILABLE:"remote-audio-available",REMOTE_AUDIO_UNAVAILABLE:"remote-audio-unavailable",REMOTE_VIDEO_AVAILABLE:"remote-video-available",REMOTE_VIDEO_UNAVAILABLE:"remote-video-unavailable",AUDIO_VOLUME:"audio-volume",AUDIO_FRAME:"audio-frame",NETWORK_QUALITY:"network-quality",CONNECTION_STATE_CHANGED:"connection-state-changed",AUDIO_PLAY_STATE_CHANGED:"audio-play-state-changed",VIDEO_PLAY_STATE_CHANGED:"video-play-state-changed",SCREEN_SHARE_STOPPED:"screen-share-stopped",DEVICE_CHANGED:"device-changed",PUBLISH_STATE_CHANGED:"publish-state-changed",TRACK:"track",STATISTICS:"statistics",SEI_MESSAGE:"sei-message",CUSTOM_MESSAGE:"custom-message",VIDEO_DECODE_DOWNGRADE_STATE_CHANGED:"video-decode-downgrade-state-changed",LAYER_DATA:"layerData",FIRST_VIDEO_FRAME:"first-video-frame",PERMISSION_STATE_CHANGE:"permission-state-change",VIDEO_SIZE_CHANGED:"video-size-changed"},uT=new Set([ee.ERROR,ee.AUTOPLAY_FAILED,ee.KICKED_OUT,ee.REMOTE_USER_ENTER,ee.REMOTE_USER_EXIT,ee.REMOTE_AUDIO_AVAILABLE,ee.REMOTE_AUDIO_UNAVAILABLE,ee.REMOTE_VIDEO_AVAILABLE,ee.REMOTE_VIDEO_UNAVAILABLE,ee.CONNECTION_STATE_CHANGED,ee.PUBLISH_STATE_CHANGED,ee.SCREEN_SHARE_STOPPED,ee.DEVICE_CHANGED,ee.FIRST_VIDEO_FRAME,ee.PERMISSION_STATE_CHANGE,ee.VIDEO_SIZE_CHANGED]);var sf={};yi(sf,{ScheduleRequestType:()=>mT,getAbilityConfig:()=>LR,getScheduleDomain:()=>fl,isNeedToSchedule:()=>hl,scheduleProxy:()=>fi,sendScheduleRequest:()=>of,setIsNeedToSchedule:()=>Fs,setScheduleProxy:()=>pl});var rf=null,hl=!0;typeof document!="undefined"&&document.head.insertAdjacentHTML("beforeend",Object.values(vi).map(i=>`<link rel="dns-prefetch" href="https://${i}">`).join(`\r
97
- `));function Fs(i){Ke(i)&&i!==hl&&(hl=i,F.info(`setIsNeedToSchedule ${i}`))}U.on("28",()=>Fs(!0));U.on("63",()=>Fs(!0));U.on("84",()=>Fs(!0));U.on("201",i=>{i.state==="RECONNECTING"&&Fs(!0)});U.on("202",i=>{i.state==="RECONNECTING"&&Fs(!0)});function PR(i,t,e){let r={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let o=performance.getEntriesByType("resource"),s=Vo(i,"config",M.MAIN),n=Vo(i,"config",M.BACKUP);for(let a of o)if(a.startTime>=e&&(a.name===s||a.name===n)&&a.transferSize>0){let d=a.name===s?M.MAIN:M.BACKUP,l=Math.round(a.duration),p=Math.round(a.domainLookupStart-a.startTime),f=a.redirectStart>0?Math.round(a.redirectEnd-a.redirectStart):0,g=a.fetchStart>0?Math.round(a.domainLookupStart-a.fetchStart):0,y=Math.round(a.domainLookupEnd-a.domainLookupStart),R=Math.round(a.requestStart-a.secureConnectionStart),C=Math.round(a.secureConnectionStart-a.connectStart),N=Math.round(a.responseStart-a.requestStart),k=Math.round(a.responseEnd-a.responseStart),Q=[y,R,C,N,k];je.uploadEvent({log:`stat-schedule-net:${l}(${p}(${f}->${g})->${Q.join("->")}) ${d}`,userId:t}),r=Ee(Y({},r),{totalCost:l,local:p,dns:y,tcp:C,tls:R,request:N,response:k});break}}catch(o){F.error("getScheduleDetailCost error",o)}return r}function of(l){return A(this,arguments,function*({userId:i,sdkAppId:t,useStringRoomId:e,roomId:r,userSig:o,version:s,frameWorkType:n,role:a,latencyLevel:d}){var f;if(!hl&&rf)return{isCached:!0,result:rf};let p={delta:0,count:[1,1],msg:[],detail:[]};try{let g=new FormData;g.append("userId",String(i)),g.append("sdkAppId",String(t)),g.append("isStrGroupId",String(e)),g.append("groupId",String(r)),g.append("sdkVersion",s),g.append("userSig",String(o));let y=((f=yield ls())==null?void 0:f.model)||Kd();y&&g.append("model",y);let R=Li();R&&g.append("osString",R),a&&g.append("role",String(a)),d&&g.append("latencyLevel",String(d)),n&&g.append("frameWorkType",String(n));let C=_e(),N=yield UR(g,p,t);N.config&&(N.config.loggerDomain&&Ko(N.config.loggerDomain),Ke(N.config.scheduleCache)&&Fs(!N.config.scheduleCache)),p.delta=_e()-C;let k=PR(Number(t),i,C);return rf=N,{isCached:!1,result:N,detailCost:k}}catch(g){let y=ut(g)?g[0]:g,R=Ve(y.code)?y.code:0,C=`schedule failed${y.message?`: ${y.message}`:""}`,N=new ae({code:q.SCHEDULE_FAILED,extraCode:R,message:He({key:$e.JOIN_ROOM_FAILED,data:{error:C,code:R}})});throw F.error(C,R),N}})}var fi={main:"",backup:""};function pl(i){ut(i)?(fi.main=i[0],fi.backup=i[1]):fi.main=i}var mT=(r=>(r.CONFIG="config",r.TRTC_AUTO_CONF="trtcAutoConf",r.AUDIO_AI_AUTH="audioAiAuth",r))(mT||{});function Vo(i,t,e=M.MAIN,r=!1){return`https://${fi[e]||fl(i,e,r)}/api/v1/${t}`}function LR(i,t,e){let r=Vo(i,t),o=Vo(i,t,M.BACKUP),s=new URLSearchParams(e).toString(),n=fetch(`${r}?${s}`).then(d=>d.json()),a=fetch(`${o}?${s}`).then(d=>d.json());return Sa([n,a])}function fl(i,t=M.MAIN,e=!1){let r;return Rr(i)?e?r=t===M.MAIN?vi.MAIN_OVERSEA_BACKUP:vi.BACKUP_OVERSEA:r=t===M.MAIN?vi.MAIN_OVERSEA:vi.BACKUP_OVERSEA:r=t===M.MAIN?vi.MAIN:vi.BACKUP,r}function kR(i,t,e){return new Promise((r,o)=>{wi({url:i,body:t,timeout:e.timeout,priority:"high"}).then(s=>{s.data.code===0?r(s.data.data):o({code:s.data.code,message:s.data.msg})}).catch(o)})}var lT=(i,t)=>go({retryFunction:kR,settings:{retries:3,timeout:0},onError:t,onRetrying:i});function UR(i,t,e){return new Promise((r,o)=>{let s=null;Sa([lT(n=>t.count[0]=n+1,({error:n,retry:a,retriedCount:d,retryFuncArgs:l})=>{t.msg[0]=n.message,s||(d>=1&&(l[0]=Vo(e,"config",M.MAIN,!0)),a())})(Vo(e,"config",M.MAIN),i,{get timeout(){return os(2+t.count[0])*1e3}}),lT(n=>t.count[1]=n+1,({error:n,retry:a,retriedCount:d,retryFuncArgs:l})=>{t.msg[1]=n.message,s||(d>=2&&(l[0]=Vo(e,"config",M.BACKUP,!0)),a())})(Vo(e,"config",M.BACKUP),i,{get timeout(){return os(2+t.count[1])*1e3}})]).then(n=>{s=n,r(s)}).catch(o)})}var VR=i=>i.startsWith("data:application/octet-stream;base64,"),FR=i=>i.startsWith("file://"),Oc=class{constructor(){m(this,"_log");this._log=F.createLogger({id:"fd"})}download(t,e){return A(this,null,function*(){let{type:r="blob"}=e||{};t=as(t);try{let o=_e(),s;if(Xe(fetch)?s=yield this.downloadWithFetch(t,r):s=yield this.downloadWithXHR(t,r),!s||!s.data)throw new Error("data is empty");let n=_e()-o;return this._log.info(`downloaded: ${t}, return type: ${r}, cost: ${n}ms`),J.addSuccessEvent({key:522700,cost:_e()-o}),s.data}catch(o){throw this._log.error(`failed to download: ${t}, error: ${o}`),J.addFailedEvent({key:522700,error:o}),o}})}downloadWithFetch(t,e){return A(this,null,function*(){this._log.info(`download with fetch: ${t}, return type: ${e}`);try{let r=yield fetch(t);if(!r.ok){let s=new Error(`network response was not ok: ${r.status}`);throw s.status=r.status,s}let o;return e==="arraybuffer"?o=yield r.arrayBuffer():o=yield r.blob(),{data:o}}catch(r){throw r}})}downloadWithXHR(t,e){return this._log.info(`download with xhr: ${t}, return type: ${e}`),new Promise((r,o)=>{let s=new XMLHttpRequest;s.open("GET",t,!0),s.responseType=e,s.onload=()=>{if(s.status===200||s.status===0&&s.response)r({data:s.response});else{let n=new Error(`XHR failed, status: ${s.status}`);n.status=s.status,o(n)}},s.onerror=o,s.send(null)})}loadWasm(t,e){return A(this,null,function*(){this._log.info(`loadWasm ${t}, importObject: ${JSON.stringify(e)}`);let r=_e(),o=null,s=null;if(Xe(WebAssembly.instantiateStreaming)&&!VR(t)&&!FR(t)&&Xe(fetch))try{let n=fetch(t);o=(yield WebAssembly.instantiateStreaming(n,e)).instance}catch(n){s=n}if(!o)try{let n=yield this.download(t,{type:"arraybuffer"});o=(yield WebAssembly.instantiate(n,e)).instance}catch(n){s=n}if(o){let n=_e()-r;return this._log.info(`loadedWasm ${t}, cost: ${n}ms`),J.addSuccessEvent({key:522701,cost:n}),o}throw this._log.error(`failed to loadWasm ${t}, error: ${s}`),J.addFailedEvent({key:522701,error:s}),s})}loadScript(t){this._log.info(`loadScript ${t}`);let e=_e();return new Promise((r,o)=>{let s=document.createElement("script");s.type="text/javascript",s.onload=()=>{this._log.info(`loadedScript ${t}, cost: ${_e()-e}ms`),J.addSuccessEvent({key:522702,cost:_e()-e,split:1e3}),r(s)},s.onerror=n=>{this._log.error(`failed to loadScript ${t}, error: ${(n==null?void 0:n.message)||JSON.stringify(n)}`),J.addFailedEvent({key:522702}),o(n)},s.crossOrigin="anonymous",s.src=t,document.head.append?document.head.append(s):document.getElementsByTagName("head")[0].appendChild(s)})}};Z([Is({settings:{timeout:0,retries:3},onError(t,e,r){var o;(t==null?void 0:t.status)===404||(o=t==null?void 0:t.message)!=null&&o.includes("404")?(this._log.warn("download 404, stop retry"),r(t)):e()},onRetrying(t){this._log.warn(`download retrying: ${t}`)}})],Oc.prototype,"download",1),Z([Is({settings:{timeout:3e3,retries:3},onRetrying(t){this._log.warn(`loadScript retrying: ${t}`)}})],Oc.prototype,"loadScript",1);var Mc=new Oc;function hT({TRTC:i,room:t,errorModule:e,assetsPath:r}){return{TRTC:i,LocalMixVideoTrack:Ms,LocalVideoTrack:_r,LocalScreenTrack:li,room:t,assetsPath:r,fileDownloader:Mc,innerEmitter:U,INNER_EVENT:B,constants:hm,environment:An,utils:Op,eventLogger:je,log:this.room.getLogger(),loggerManager:F,errorModule:e,kvStatManager:J,rtcDectection:Ao,trtc:this,rx:Np,enums:ch,schedule:sf,getDevices:Mn,initVisionTaskRegistry:(o,s="/mediapipe/vision.js")=>A(this,null,function*(){window.VisionTaskRegistry||(yield Mc.loadScript(`${o}/${s}`.replace(/([^:]\/)\/+/g,"$1"))),yield(yield window.VisionTaskRegistry.getInstance(o)).preloadModels([window.VisionTaskType.ImageSegmenter])}),audioContext:qe(),deviceDetector:at,AudioPlayer:Pn,showAutoPlayDialog:Dn,Timer:ft,clearStarted:(o,s)=>{let n=o.getAlias(),a=Qi.instances.get(this);if(a)if(s){let d=a.get(n+s);if(!d)return;d.started=!1}else a.forEach((d,l)=>{l.startsWith(n)&&(d.started=!1)})},startGetPCM:_c,createAudioNode:nc,getNetworkTimeOffset:Hf,validateSourceNode:()=>{var o;if(lt&&!((o=this.room.audioManager._localAudioPipline)!=null&&o.source.node))throw new oe({code:se.DEVICE_ERROR,extraCode:5310,message:"The audio processing plugin cannot be used due to the microphone's sampling rate is not 48KHz in Firefox. Please switch to another browser such as Chrome."})}}}var pT=(i,t)=>{let{emit:e}=i;return i.emit=(...r)=>{try{return e.apply(i,r)}catch(o){let s=He({key:$e.CATCH_HANDLER_ERROR,data:{name:t,event:r[0]},addDocLink:!1});return F.warn(`${s}
92
+ `,z.push(he);var Ne,ge,Me=Kc(Function,z).apply(null,K);return Ne=Me,ge=Js.length,Js.push(Ne),G=ge,Xs[$]=G,G},f:()=>{Ir("")},c:na,t:(S,T,w)=>N.copyWithin(S,T,T+w),s:S=>{N.length,Ir("OOM")},i:(S,T,w,x)=>{for(var $,G,z,K=0,re=0;re<w;re++){var j=Ie[T>>2],he=Ie[T+4>>2];T+=8;for(var Oe=0;Oe<he;Oe++)$=S,G=N[j+Oe],z=void 0,z=ad[$],G===0||G===10?(($===1?f:g)(Yo(z,0)),z.length=0):z.push(G);K+=he}return Ie[x>>2]=K,0}},Lr=(function(){var S,T,w,x,$={a:cd};function G(z,K){var re,j,he=z.exports;return y=(R=he).v,re=y.buffer,o.HEAP8=C=new Int8Array(re),o.HEAP16=k=new Int16Array(re),o.HEAP32=H=new Int32Array(re),o.HEAPU8=N=new Uint8Array(re),o.HEAPU16=Q=new Uint16Array(re),o.HEAPU32=Ie=new Uint32Array(re),o.HEAPF32=Je=new Float32Array(re),o.HEAPF64=W=new Float64Array(re),Ue=R.z,j=R.w,Kn.unshift(j),function(){if(Yr--,o.monitorRunDependencies&&o.monitorRunDependencies(Yr),Yr==0&&(Hs!==null&&(clearInterval(Hs),Hs=null),Ki)){var Oe=Ki;Ki=null,Oe()}}(),he}if(Yr++,o.monitorRunDependencies&&o.monitorRunDependencies(Yr),o.instantiateWasm)try{return o.instantiateWasm($,G)}catch(z){g("Module.instantiateWasm callback failed with error: "+z),r(z)}(S=p,T=_i,w=$,x=function(z){G(z.instance)},S||typeof WebAssembly.instantiateStreaming!="function"||ie(T)||typeof fetch!="function"?Zr(T,w,x):fetch(T,{credentials:"same-origin"}).then(z=>WebAssembly.instantiateStreaming(z,w).then(x,function(K){return g("wasm streaming compile failed: "+K),g("falling back to ArrayBuffer instantiation"),Zr(T,w,x)}))).catch(r)}(),S=>(Lr=R.x)(S)),uo=S=>(uo=R.y)(S),Qs=S=>(Qs=R.A)(S),dd=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=R.B)(),S=>(dd=R.C)(S));o.dynCall_jiji=(S,T,w,x,$)=>(o.dynCall_jiji=R.D)(S,T,w,x,$);function ud(){function S(){zt||(zt=!0,o.calledRun=!0,Yn||(Ii(Kn),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)T=o.postRun.shift(),ea.unshift(T);var T;Ii(ea)}()))}Yr>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)T=o.preRun.shift(),Zn.unshift(T);var T;Ii(Zn)}(),Yr>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),S()},1)):S()))}if(Ki=function S(){zt||ud(),zt||(Ki=S)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return ud(),t.ready}})();var S_=(i=>(i.ROOM_DESTROY="1",i.JOIN_START="21",i.JOIN_SCHEDULE_SUCCESS="22",i.JOIN_SIGNAL_CONNECTION_START="23",i.JOIN_SIGNAL_CONNECTION_END="24",i.JOIN_SEND_CMD="25",i.JOIN_RECEIVED_CMD_RES="26",i.JOIN_SUCCESS="27",i.JOIN_FAILED="28",i.LEAVE_START="51",i.LEAVE_SEND_CMD="52",i.LEAVE_SUCCESS="53",i.PUBLISH_START="61",i.SEND_FIRST_VIDEO_FRAME="62",i.PUBLISH_FAILED="63",i.SUBSCRIBE_START="81",i.SUBSCRIBE_SUCCESS="82",i.SUBSCRIBE_FAILED="84",i.UNSUBSCRIBE_SUCCESS="83",i.LOCAL_TRACK_CAPTURE_START="101",i.LOCAL_TRACK_CAPTURE_SUCCESS="102",i.LOCAL_TRACK_CAPTURE_FAILED="103",i.LOCAL_TRACK_PUBLISHED="104",i.LOCAL_TRACK_UNPUBLISHED="105",i.LOCAL_TRACK_REPLACED="106",i.SWITCH_DEVICE_SUCCESS="107",i.TRACK_MUTED="108",i.TRACK_UNMUTED="109",i.REMOTE_TRACK_SUBSCRIBED="110",i.REMOTE_TRACK_UNSUBSCRIBED="111",i.LOCAL_TRACK_RECAPTURE="112",i.LOCAL_AUDIO_STARTED="113",i.LOCAL_AUDIO_STOPPED="114",i.REMOTE_AUDIO_STARTED="115",i.REMOTE_AUDIO_STOPPED="116",i.PLAY_TRACK_START="151",i.PLAYER_STATE_CHANGED="152",i.VIDEO_LOADED_DATA="153",i.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",i.AUDIO_CONTEXT_LONG_SUSPENDED="155",i.REMOTE_VIDEO_PLAY_START="156",i.REMOTE_VIDEO_PLAY_FINISH="157",i.SIGNAL_CONNECTION_STATE_CHANGED="201",i.PEER_CONNECTION_STATE_CHANGED="202",i.SINGLE_CONNECTION_STAT="203",i.SPC_RECONNECTED="204",i.HEARTBEAT_REPORT="251",i.RECEIVED_PUBLISHED_USER_LIST="252",i.REMOTE_PUBLISH_STATE_CHANGED="253",i.AUDIO_LEVEL_INTERVAL="260",i.NETWORK_QUALITY="261",i.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",i.QUALITY_LIMITATION_CHANGED="263",i.LOG="264",i.AUDIO_PROCESSOR_DEBUG="265",i.SSO_SWITCH="266",i.SWITCH_ROOM_START="401",i.SWITCH_ROOM_SUCCESS="407",i.SWITCH_ROOM_FAILED="408",i))(S_||{}),cb="5.0.0",db=typeof importScripts!="undefined",ub=typeof registerProcessor!="undefined",lb="",mb="web.sdk.qcloud.com",hb=`https://${mb}/trtc/webrtc/doc`,TU=`${hb}/zh-cn/`,pb="https://yun.tim.qq.com",fb="https://apisgp.my-imcloud.com",gb={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},Ps=(i=>(i[i.TRACE=0]="TRACE",i[i.DEBUG=1]="DEBUG",i[i.INFO=2]="INFO",i[i.WARN=3]="WARN",i[i.ERROR=4]="ERROR",i[i.NONE=5]="NONE",i))(Ps||{});var y_={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},IU=y_["480p_2"],SU=y_["120p_2"],dl={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture",RESIZE:"resize",TIME_UPDATE:"timeupdate"},yU=dl.MAIN,AU=dl.AUXILIARY,bU=dl.BIG,RU=dl.SMALL;var vU=Object.keys(Ps);var Eb=function(i,t,e,r){return new(e||(e=Promise))(function(o,s){function n(l){try{d(r.next(l))}catch(p){s(p)}}function a(l){try{d(r.throw(l))}catch(p){s(p)}}function d(l){var p;l.done?o(l.value):(p=l.value,p instanceof e?p:new e(function(f){f(p)})).then(n,a)}d((r=r.apply(i,t||[])).next())})},Hp=Symbol(32),Wp=Symbol(16),Gp=Symbol(8),Gn=class{constructor(i){this.g=i,this.consumed=0,i&&(this.need=i.next().value)}setG(i){this.g=i,this.demand(i.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(i,t){return t&&this.consume(),this.need=i,this.flush()}read(i){return Eb(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((t,e)=>{var r;this.reject=e,this.resolve=o=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(o)},this.demand(i,!0)||(r=this.pull)===null||r===void 0||r.call(this,i)})})}readU32(){return this.read(Hp)}readU16(){return this.read(Wp)}readU8(){return this.read(Gp)}close(){var i;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(i=this.reject)===null||i===void 0||i.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let i=null,t=this.buffer.subarray(this.consumed),e=0,r=o=>t.length<(e=o);if(typeof this.need=="number"){if(r(this.need))return;i=t.subarray(0,e)}else if(this.need===Hp){if(r(4))return;i=t[0]<<24|t[1]<<16|t[2]<<8|t[3]}else if(this.need===Wp){if(r(2))return;i=t[0]<<8|t[1]}else if(this.need===Gp){if(r(1))return;i=t[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(r(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(t.subarray(0,e)),i=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(r(this.need.byteLength))return;new Uint8Array(this.need).set(t.subarray(0,e)),i=this.need}return this.consumed+=e,this.g?this.demand(this.g.next(i).value,!0):this.resolve&&this.resolve(i),i}write(i){if(i instanceof Uint8Array?this.malloc(i.length).set(i):"buffer"in i?this.malloc(i.byteLength).set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength)):this.malloc(i.byteLength).set(new Uint8Array(i)),!this.g&&!this.resolve)return new Promise(t=>this.pull=t);this.flush()}writeU32(i){this.malloc(4).set([i>>24&255,i>>16&255,i>>8&255,255&i]),this.flush()}writeU16(i){this.malloc(2).set([i>>8&255,255&i]),this.flush()}writeU8(i){this.malloc(1)[0]=i,this.flush()}malloc(i){if(this.buffer){let t=this.buffer.length,e=t+i;if(e<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,e);else{let r=new Uint8Array(e);r.set(this.buffer),this.buffer=r}return this.buffer.subarray(t,e)}return this.buffer=new Uint8Array(i),this.buffer}};Gn.U32=Hp,Gn.U16=Wp,Gn.U8=Gp;var _b=128,Tb=127,CU=~Tb,NU=Math.pow(2,31);function kp(i){let t=new Gn;for(;i>=128;)t.malloc(1)[0]=255&i|_b,i>>>=7;return t.malloc(1)[0]=255&i,t.buffer||new Uint8Array(0)}function jp(i,t=0){let e=new Gn,r=t<<3;switch(typeof i){case"boolean":let o=e.malloc(2);o[0]=r,o[1]=i?1:0;break;case"number":e.malloc(1)[0]=r,e.write(kp(i));break;case"string":e.malloc(1)[0]=2|r;let s=new TextEncoder().encode(i);e.write(kp(s.length));let n=e.malloc(s.length);for(let d=0;d<s.length;d++)n[d]=s[d];break;case"object":let a=new Gn;if(Array.isArray(i))for(let d=0;d<i.length;d++){let l=jp(i[d],d+1);l&&a.write(l)}else{let d=1;for(let l in i){let p=jp(i[l],d++);p&&a.write(p)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=2|r,a.buffer&&(e.write(kp(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var n_=class{constructor(){tt(this,"buffer"),this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(i){this.buffer.push(i>>>24&255),this.buffer.push(i>>>16&255),this.buffer.push(i>>>8&255),this.buffer.push(255&i)}writeInt16(i){this.buffer.push(i>>>8&255),this.buffer.push(255&i)}writeByte(i){this.buffer.push(255&i)}writeBytes(i){for(let t=0;t<i.length;t++)this.buffer.push(i[t])}};function a_(i,t,e){i[e]=t>>>24&255,i[e+1]=t>>>16&255,i[e+2]=t>>>8&255,i[e+3]=255&t}function dr(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function c_(i,t){return i[t]}function Tc(i,t,e){return new TextDecoder().decode(Ib(i,t,e))}function Ib(i,t,e){return i.slice(t,t+e)}var Up=0,qp=2654435769,zp=16,d_=4,Cc=2,Nc=7;function Sb(i,t,e,r="AVQualityReportSvc.C2S",o=2e3,s=2,n=30){return{version:o,encryption:s,d2:"",d2Len:0,uinType:n,uin:"",uinLen:0,reqHead:{seqNumber:e,appId:i,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:r,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:t}}function yb(i,t){let e=new n_,r=Sb(t,i,Up);Up=Up+1&2147483647,e.writeInt32(0),e.writeInt32(r.version),e.writeByte(r.encryption);let o=new TextEncoder().encode(r.d2);e.writeInt32(o.length+4),o&&e.writeBytes(o),e.writeByte(r.uinType);let s=new TextEncoder().encode(r.uin);e.writeInt32(s.length+4),s.length&&e.writeBytes(s);let n=new n_;n.writeInt32(0),n.writeInt32(r.reqHead.seqNumber),n.writeInt32(r.reqHead.appId),n.writeByte(r.reqHead.appId>>>24&255),n.writeByte(r.reqHead.appId>>>16&255),n.writeByte(r.reqHead.appId>>>8&255),n.writeByte(255&r.reqHead.appId);for(let Q=4;Q<16;Q++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let d=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(d.length+4),d.length&&n.writeBytes(d);let l=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(l.length+4),l.length&&n.writeBytes(l);let p=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(p.length+4),p.length&&n.writeBytes(p);let f=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(f.length+4),f.length&&n.writeBytes(f);let g=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(g.length+2),g.length&&n.writeBytes(g);let y=n.length;n.data[0]=y>>>24&255,n.data[1]=y>>>16&255,n.data[2]=y>>>8&255,n.data[3]=255&y,Jp(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let R=new Uint8Array(n.data),C=null;r.encryption===1?C=new TextEncoder().encode(r.uin):r.encryption===2&&(C=new Uint8Array(16)),C&&(R=Ab(R,C)),e.writeBytes(R);let N=new Uint8Array(e.data),k=N.length;return N[0]=k>>>24&255,N[1]=k>>>16&255,N[2]=k>>>8&255,N[3]=255&k,N}function Ab(i,t){let e=i.length,r=(e+1+Cc+Nc)%8;r&&(r=8-r);let o=new Uint8Array(e+1+Cc+Nc+r),s=0,n=new Uint8Array(8),a=new Uint8Array(8),d=new Uint8Array(8),l=0;n[0]=248&Math.floor(256*Math.random())|r,l=1;for(let f=0;f<r;f++)n[l]=255&Math.floor(256*Math.random()),l+=1;for(let f=0;f<Cc;)if(l<8&&(n[l]=255&Math.floor(256*Math.random()),l+=1,f+=1),l===8){Vp(n,t,a,d,o,s),s+=8,l=0;for(let g=0;g<8;g++)d[g]=o[s-8+g]}let p=0;for(;p<e;)if(l<8&&(n[l]=i[p],l+=1,p+=1),l===8){Vp(n,t,a,d,o,s),s+=8,l=0;for(let f=0;f<8;f++)d[f]=o[s-8+f]}for(let f=0;f<Nc;)if(l<8&&(n[l]=0,l+=1,f+=1),l===8){Vp(n,t,a,d,o,s),s+=8,l=0;for(let g=0;g<8;g++)d[g]=o[s-8+g]}return o}function Vp(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];bb(i,t,o,s);for(let n=0;n<8;n++)o[s+n]^=e[n];for(let n=0;n<8;n++)e[n]=i[n]}function bb(i,t,e,r){let o=dr(i,0),s=dr(i,4),n=[];for(let d=0;d<4;d++)n[d]=dr(t,4*d);let a=0;for(let d=0;d<zp;d++)a+=qp,a>>>=0,o+=(s<<4)+n[0]^s+a^(s>>>5)+n[1],o>>>=0,s+=(o<<4)+n[2]^o+a^(o>>>5)+n[3],s>>>=0;a_(e,o,r),a_(e,s,r+4)}var Rb=0,A_=function(){return Date.now()+Rb},vb=function(){let i=new Date;return i.setTime(A_()),i.toLocaleString()},Cb=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};function Nb(i){let t=Db(i);return t==null?void 0:t.busiBuff}function Db(i){try{let t={},e=0;t.totalLength=dr(i,e),e+=4,t.version=dr(i,e),e+=4,t.encryption=c_(i,e),e+=1,t.uinType=c_(i,e),e+=1,t.uinLength=dr(i,e),e+=4,t.uin=t.uinLength>4?Tc(i,e,t.uinLength-4):"",e+=t.uinLength-4;let r=i.slice(e);if(t.encryption===2){let o=new Uint8Array(16).fill(0);i=wb(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=dr(i,e),e+=4,t.seqNo=dr(i,e),e+=4,t.retCode=dr(i,e),e+=4,t.retStrLength=dr(i,e),e+=4,t.retStr=t.retStrLength?Tc(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=dr(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?Tc(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=dr(i,e),e+=4,t.cookie=t.cookieLength?Tc(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=dr(i,e),e+=4,t.busiBuffLength=dr(i,e),e+=4,t.busiBuff=t.busiBuffLength?Tc(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function b_(i,t){let e=i[0]<<24|i[1]<<16|i[2]<<8|i[3],r=i[4]<<24|i[5]<<16|i[6]<<8|i[7];e>>>=0,r>>>=0;let o=qp*zp>>>0;for(let s=0;s<zp;s++)r-=(e<<d_)+t[2]^e+o^(e>>>5)+t[3],r>>>=0,e-=(r<<d_)+t[0]^r+o^(r>>>5)+t[1],e>>>=0,o-=qp,o>>>=0;return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,255&e,r>>>24&255,r>>>16&255,r>>>8&255,255&r])}function wb(i,t){let e=0,r=new Uint8Array(8).fill(0),o=b_(new Uint8Array(i.slice(0,8)),t),s=7&o[0],n=i.length-1-s-Cc-Nc,a=new Uint8Array(n),d=0,l=r,p=i.slice(0,8);e=8;let f=1;f+=s;for(let y=1;y<=Cc;)if(f<8)f++,y++;else if(f===8){let R=Fp(i,e,l,p,o,t);l=R.ivPreCrypt,p=R.ivCurCrypt,o=R.debiBuf,e=R.bufPos,f=0}let g=n;for(;g>0;)if(f<8)a[d++]=o[f]^l[f],f++,g--;else if(f===8){let y=Fp(i,e,l,p,o,t);l=y.ivPreCrypt,p=y.ivCurCrypt,o=y.debiBuf,e=y.bufPos,f=0}for(let y=1;y<=Nc;)if(f<8)o[f],l[f],f++,y++;else if(f===8){if(e>=i.length)break;let R=Fp(i,e,l,p,o,t);if(!R.success)break;l=R.ivPreCrypt,p=R.ivCurCrypt,o=R.debiBuf,e=R.bufPos,f=0}return a}function Fp(i,t,e,r,o,s){if(t+8>i.length)return{success:!1};let n=new Uint8Array(r),a=i.slice(t,t+8),d=new Uint8Array(8);for(let l=0;l<8;l++)d[l]=o[l]^a[l];return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:b_(d,s),bufPos:t+8}}var u_=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function Ob({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(d=>d.clone().json().then(l=>({data:l}),()=>d.arrayBuffer().then(l=>({data:Nb(new Uint8Array(l))||(u_?u_.decode(l):l)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let d=JSON.parse(a.response);s({data:d})}catch(d){s({data:a.response})}else n({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=r||5e3,a.open(e,i,!0),a.send(t)})}var Mb=Object.prototype.hasOwnProperty,Ic=i=>typeof i=="function",Hn=i=>i===void 0,xb=i=>typeof i=="boolean",Pb=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function Lb(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Pb(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":for(let t in i)if(Mb.call(i,t))return!1;return!0}return!1}var kb=0,Ub=1,l_=2;function Vb({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:d=5,timeout:l=1e3}=t,p=0,f=-1,g=kb,y=(R,C)=>A(this,null,function*(){let N=n||this;try{let k=yield i.apply(N,a);p>0&&s&&s.call(this,p),p=0,R(k)}catch(k){let Q=()=>{clearTimeout(f),p=0,g=l_,C(k)},H=()=>{g!==l_&&p<(Ic(d)?d():d)?(p++,g=Ub,Ic(r)&&r.call(this,p,Q),f=window.setTimeout(()=>{f=-1,y(R,C)},Ic(l)?l(p):l)):(Q(),Ic(o)&&o.call(this,k))};Ic(e)?e.call(this,{error:k,retry:H,reject:C,retryFuncArgs:a,retriedCount:p}):H()}});return new Promise(y)}}var Fb=Vb,Bp=class R_{constructor(t){tt(this,"_parentPath"),tt(this,"userId"),tt(this,"remoteUserId"),tt(this,"id"),tt(this,"sdkAppId"),tt(this,"type"),tt(this,"isLocal"),this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=!xb(t.isLocal)||t.isLocal,this.type=this.isLocal?"":t.type}getFullId(){return this._parentPath&&this.id?`${this._parentPath}-${this.id}`:this._parentPath?this._parentPath:this.id}createChild(t){let e=new R_({id:t.id,userId:Hn(t.userId)?this.userId:t.userId,sdkAppId:Hn(t.sdkAppId)?this.sdkAppId:t.sdkAppId,type:Hn(t.type)?this.type:t.type,isLocal:Hn(t.isLocal)?this.isLocal:t.isLocal,remoteUserId:Hn(t.remoteUserId)?this.remoteUserId:t.remoteUserId});return e.bindParent(this),e}bindParent(t){let e=t.getFullId();this._parentPath!==e&&(this.debug(`bind logger parent: ${t.id}`),this._parentPath=e,this.userId=t.userId||this.userId,this.sdkAppId=t.sdkAppId||this.sdkAppId)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId,o=this.getFullId();e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${o}${r?`|${r}`:""}]`),IR.log(t,e,Hn(this.userId)||Lb(this.userId),this.userId,this.sdkAppId)}info(...t){this.log(2,t)}debug(...t){this.log(1,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}},pi=typeof navigator=="undefined"?"":navigator.userAgent,Re=i=>new RegExp(i,"i").test(pi),Rt=i=>{if(Re(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=pi.match(t);if(e&&e[1])return e[1]}return""},ul=i=>{if(Re(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=pi.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},m_=/AppleWebKit\/([\d.]+)/i.exec(pi),Bb=m_?parseFloat(m_[1]):NaN,v_=Re("iPad"),C_=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&Re("Macintosh"),N_=Re("iPhone")&&!v_,$b=Re("iPod"),Qp=N_||v_||$b||C_,Dc=Re("Android"),D_=function(){if(Dc){let i=pi.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(i){let t=i[1]&&parseFloat(i[1]),e=i[2]&&parseFloat(i[2]);if(t&&e)return parseFloat(`${i[1]}.${i[2]}`);if(t)return t}}return NaN}(),DU=Dc&&Re("webkit")&&D_<2.3,wU=Dc&&D_<5&&Bb<537,Hb=Re("Firefox"),Wb=Rt("Firefox"),OU=ul("Firefox"),w_=Re("Edge"),Gb=Rt("Edge"),O_=Re("Edg"),jb=Rt("Edg"),MU=ul("Edg"),M_=Re("SogouMobileBrowser"),qb=Rt("SogouMobileBrowser"),x_=Re("MetaSr\\s"),zb=Rt("MetaSr\\s"),Ls=Re("TBS"),Jb=Rt("TBS"),P_=Re("XWEB"),Xb=Rt("XWEB"),xU=Re("MSIE\\s8\\.0"),Qb=Re("MSIE\\/\\d+"),PU=function(){if(Qb){let i=/MSIE\s(\d+)\.\d/.exec(pi),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(pi)&&/rv:11.0/.test(pi)&&(t=11),t}return NaN}(),Yb=Re("(micromessenger|webbrowser)"),Zb=Rt("MicroMessenger"),Yp=!Ls&&Re("MQQBrowser")&&Re("COVC"),Zp=!Ls&&Re("MQQBrowser")&&!Re("COVC"),h_=Zp||Yp?Rt("MQQBrowser"):"",L_=!Ls&&Re(" QQBrowser"),Kb=Rt(" QQBrowser"),k_=!Ls&&Re("QQBrowserLite"),eR=Rt("QQBrowserLite"),U_=!Ls&&Re("MQBHD"),tR=Rt("MQBHD"),LU=Re("Windows"),kU=!Qp&&Re("MAC OS X"),UU=!Dc&&Re("Linux"),VU=Re("CrOS"),FU=Re("MicroMessenger"),BU=Re("UCBrowser"),$U=Re("Electron"),V_=Re("MiuiBrowser"),rR=Rt("MiuiBrowser"),F_=Re("HuaweiBrowser"),HU=Re("Huawei")||Re("HUAWEI"),WU=Re("Honor")||Re("HONOR"),iR=Rt("HuaweiBrowser"),B_=Re("SamsungBrowser"),oR=Rt("SamsungBrowser"),$_=Re("HeyTapBrowser"),sR=Rt("HeyTapBrowser"),H_=Re("VivoBrowser"),nR=Rt("VivoBrowser"),GU=Re("OpenHarmony"),jU=Rt("OpenHarmony"),aR=()=>ul("Chrome"),p_=Re("CriOS"),W_=Re("Chrome"),cR=!w_&&!x_&&!M_&&!Ls&&!P_&&!O_&&!L_&&!V_&&!F_&&!B_&&!$_&&!H_&&W_,dR=Re("HeadlessChrome"),qU=aR(),uR=Rt("Chrome"),zU=ul("Electron"),lR=!W_&&!Zp&&!Yp&&!k_&&!U_&&Re("Safari"),G_=Rt("Version"),JU=/Android.*(wv|.0.0.0)/.test(pi),j_=(()=>{if(C_)return G_;if(Qp){let i=pi.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})(),XU=Number(j_.split(".")[0]),QU=(()=>{let i=Number(j_.split(".")[0]);return i===14||i===13})(),YU=typeof location!="undefined"&&(location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"),ZU=mR();function mR(){let i=new Map([[Hb,["Firefox",Wb]],[O_,["Edg",jb]],[cR,["Chrome",uR]],[p_,["ChiOS",Rt("CriOS")]],[lR&&!p_,["Safari",G_]],[Ls,["TBS",Jb]],[P_,["XWEB",Xb]],[Yb&&N_,["WeChat",Zb]],[L_,["QQ(Win)",Kb]],[Zp,["QQ(Mobile)",h_]],[Yp,["QQ(Mobile X5)",h_]],[k_,["QQ(Mac)",eR]],[U_,["QQ(iPad)",tR]],[V_,["MI",rR]],[F_,["HW",iR]],[B_,["Samsung",oR]],[$_,["OPPO",sR]],[H_,["VIVO",nR]],[w_,["EDGE",Gb]],[M_,["SogouMobile",qb]],[x_,["Sogou",zb]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var hR=T_(I_(),1),pR=new hR.default,Xi=pR,Sc=S_,fR=class{constructor(){tt(this,"enable",!1),tt(this,"ssoFailCount",0),Xi.on("22",({schedule:i})=>{var t;(t=i==null?void 0:i.config)!=null&&t.sso&&Xi.emit("266",{enable:!0})}),Xi.on("266",({enable:i})=>{this.enable=i})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&Xi.emit("266",{enable:!1})}},f_=new fR,gR="%cTRTC%c%s",ER="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",_R="display: inline",q_=class z_{constructor(){tt(this,"_isEnableUploadLog",!0),tt(this,"_localJoinedUser",new Map),tt(this,"_queue",[]),tt(this,"_timeoutId",-1),tt(this,"_logLevel",1),tt(this,"_logLevelToUpload",2),db||ub||(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){Xi.on(Sc.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&Ps[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),Xi.on(Sc.JOIN_SUCCESS,({room:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),Xi.once(Sc.JOIN_FAILED,()=>{this.startUpload()}),Xi.on(Sc.LEAVE_SUCCESS,({room:t})=>{this.deleteJoinedUser(t.userId)})}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(t){this._localJoinedUser.set(t.userId,t),this.startUpload()}deleteJoinedUser(t){this._localJoinedUser.delete(t)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){let t={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return t;let e=0;for(;e<this._queue.length&&e!==50;e++){let r=this._queue[e];if(r.forAllJoinedClients)this._localJoinedUser.forEach(({userId:o,sdkAppId:s})=>{t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})});else if(Jp(r.userId)&&AR(r.sdkAppId)){let{userId:o,sdkAppId:s}=r;t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})}}return t.map.size>0&&(t.splicedQueue=this._queue.splice(0,e)),t}upload(){return A(this,null,function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:t,splicedQueue:e}=this.getLogsToUpload();if(t.size===0)return;try{let o=[...t.values()];for(let s=0;s<o.length;s++){let{userId:n,sdkAppId:a,logs:d}=o[s],l={timestamp:vb(),sdkAppId:String(a),userId:n,version:cb,log:d.map(g=>g.log).join(`
93
+ `)},p=JSON.stringify(l),f=f_.enable?vR(l,2002,a):p;yield this.uploadLogWithRetry(f,a,f instanceof Uint8Array,p),d.forEach(g=>g.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e,r,o){return Fb({retryFunction:()=>Ob({url:yR(e,gb.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(f_.handleUploadFailed(),this.uploadLogWithRetry(o,e,!1,o))}),settings:{retries:3,timeout:2e3},onError:({retry:s})=>{s()}})()}getPrefix(t){let e=new Date;return e.setTime(A_()),`[${Cb(e)}] <${Ps[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){J_(Ps[t])||(this._logLevel!==t&&this.info("setLogLevel",t),this._logLevel=t)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(t){if(Jp(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}addLogToQueue(t,e,r=!0,o,s){let n={log:e.reduce((a,d)=>`${a} ${this.logChunkToString(d)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};Xi.emit(Sc.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n)}log(t,e,r=!0,o,s){var n;if(e.unshift(this.getPrefix(t)),this.addLogToQueue(t,e,r,o,s),t<this._logLevel)return;let a=((n=Ps[t])==null?void 0:n.toLowerCase())||"info";z_.PRINT_LOG_TAG?console[a](gR,ER,_R,...e):console[a](...e)}debug(...t){this.log(1,t)}info(...t){this.log(2,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}createLogger(t){if(t.parent instanceof Bp){let e=t,{parent:r}=e,o=YA(e,["parent"]),s=new Bp(o);return s.bindParent(r),s}return new Bp(t)}checkURLParam(){let t=new URLSearchParams(location.search).get("logLevelToUpload"),e=t?Number(t):-1;Ps[e]&&(this._logLevelToUpload=e)}getQueue(){return this._queue}};tt(q_,"PRINT_LOG_TAG",!(Qp||Dc||dR));var TR=q_,IR=new TR,SR=i=>Number(i)<14e8,yR=function(i,t){let e;return e=lb||(SR(i)?fb:pb),`${e}/v5/AVQualityReportSvc/C2S?random=${Math.floor(Math.random()*ri(2,31))}&sdkappid=${i}&cmdtype=${t}`},KU=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},J_=i=>i===void 0,Jp=i=>typeof i=="string",AR=i=>typeof i=="number",eV=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function bR(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var{toString:tV}=Object.prototype;function RR(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return J_(r)||(o=bc(Ac({},o),{gzip:+r})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:t,bytes_report_data:JSON.stringify(o)}}}function vR(i,t,e,r){try{let o=RR(i,t,e,r);return yb(jp(o),e)}catch(o){return JSON.stringify(i)}}var X_=class Q_{constructor(t){this.core=t,tt(this,"contextMap",new Map),tt(this,"decodeProcessorMap",new WeakMap),this.addKVReportBeforeExitRoom=this.addKVReportBeforeExitRoom.bind(this),this.createDecoder=this.createDecoder.bind(this),this.core.innerEmitter.on("51",this.addKVReportBeforeExitRoom)}getAlias(){return"videoDecoder"}getGroup(t){return t!=null&&t.track?`${t.track.userId}${t.track.streamType}`:"*"}getName(){return Q_.Name}getValidateRule(t){return{type:this.core.enums.BASIC_TYPE.Object}}createDecoder(t,e){var r;switch(t){case"wasm":let s=((r=this.core.assetsPath)==null?void 0:r.replace(/\/+$/,""))||".";return new ab(bc(Ac({},e),{wasmPath:`${s}/videodec.wasm`}));case"webCodecs":return new Wn;case"mse":throw new Error("mse decoder not supported yet");default:throw new Error("Unsupported decoder type")}}start(t){this.decodeProcessorMap.set(t.track,this.decode(t)),this.core.room.videoManager.addDecodeProcessor({processor:({frame:e,track:r})=>{var o;return((o=this.decodeProcessorMap.get(r))==null?void 0:o({frame:e,track:r}))||e},type:3})}decode(t){let{pipe:e,take:r,subscribe:o}=this.core.rx;return({frame:s,track:n})=>{if(n!==t.track||s.type==="empty")return s;if(this.contextMap.has(n))return this.contextMap.get(n).decode(s);let a=this.core.room.videoManager.createDecodeContext(bc(Ac({},t),{createDecoder:this.createDecoder}));return e(a.trackDoneOB,r(1),o(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:n})})),this.contextMap.set(n,a),a.decode(s)}}stop(t){if(t!=null&&t.track){let e=this.contextMap.get(t.track);e&&(e.close("stop"),this.report(e,t.track),this.contextMap.delete(t.track))}else this.contextMap.forEach((e,r)=>{e.close("stop"),this.contextMap.delete(r)});this.contextMap.size===0&&this.core.room.videoManager.removeDecodeProcessor({type:3})}report(t,e){if(t.isReported)return;t.isReported=!0;let r=bR()-t.startPerformanceTime,{renderFreezeTotal:o,dataFreezeTotal:s}=this.getRemoteTrackFreezeDuration(e,t),n=`report health data: ${t.track.userId} ${t.track.streamType} ${t.type}+${t.renderer} goodType\uFF1A${t.goodType} ${t.failedReason?`failedReason: ${t.failedReason}`:""}`;r&&(this.core.kvStatManager.addNumber({key:514850,value:Math.floor(o/r*100),split:1,max:100}),n+=` RENDER_FREEZE_RATE: ${Math.floor(o/r*100)}%`),r&&(this.core.kvStatManager.addNumber({key:514851,value:Math.floor(s/r*100),split:1,max:100}),n+=` DATA_FREEZE_RATE: ${Math.floor(s/r*100)}%`),t.inputFrameCount&&(this.core.kvStatManager.addNumber({key:514852,value:Math.floor(t.decodedFrameCount/t.inputFrameCount*100),split:1,max:100}),n+=` VIDEO_CONSUME_RENDER_RATE: ${Math.floor(t.decodedFrameCount/t.inputFrameCount*100)}%`),this.core.log.info(n)}addKVReportBeforeExitRoom({room:t}){t===this.core.room&&this.contextMap.forEach((e,r)=>{this.report(e,r)})}update(t){let e=this.contextMap.get(t.track);e&&(t.type!=="mock"?(e.close("update"),this.contextMap.set(t.track,this.core.room.videoManager.createDecodeContext(bc(Ac({},t),{createDecoder:this.createDecoder})))):e.mock(this.core.enums.DECODE_FAILED_ERROR_CODE.TEST))}getRemoteTrackFreezeDuration(t,e){let r=this.core.room.badCaseDetector.getDataFreezeMap().get(`${t.userId}_${t.streamType}`),o=this.core.room.badCaseDetector.getRenderFreezeDuration(`${t.userId}_${t.streamType}`),s=0;return r&&r.durationItemList.forEach(n=>{n.startTime>e.startPerformanceTime&&(s+=n.getDuration())}),{renderFreezeTotal:o,dataFreezeTotal:s}}destroy(){this.core.innerEmitter.off("51",this.addKVReportBeforeExitRoom)}};tt(X_,"Name","TRTCVideoDecoder");var Kp=X_;var RT=bi(ki());function ef({timesInSecond:i,maxSizeInSecond:t,getSize:e}){return xe((r,o)=>{let s=new WeakMap;return U.on(B.ROOM_DESTROY,({room:n})=>s.delete(n)),function(...n){let a=s.get(this);if(a||(a={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},s.set(this,a)),a.timestamp===0?a.timestamp=Date.now():Date.now()-a.timestamp>1e3&&(a.timestamp=Date.now(),a.callCountInSecond=0,a.totalSizeInSecond=0),e&&(a.totalSizeInSecond+=e(...n)),a.timestamp!==0&&Date.now()-a.timestamp<1e3&&(a.callCountInSecond>=i||a.totalSizeInSecond>t))throw new ae({code:q.INVALID_OPERATION,message:He({key:$e.CALL_FREQUENCY_LIMIT,data:{isTimes:a.callCountInSecond>=i,isSize:a.totalSizeInSecond>t,name:o,timesInSecond:i,maxSizeInSecond:t}})});a.callCountInSecond++,r.call(this,...n)}})}var CR="2025-11-06 11:15:37",Y_=!0,Z_=function(){var i;if(Y_){Y_=!1,F.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info(`* API Document: ${ir}/en/index.html`),console.info(`* Changelog: ${ir}/en/tutorial-01-info-changelog.html`),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),F.info("TRTC Web SDK Version:",ht),jr||F.debug("Build Time:",CR);let t=`UA: ${navigator.userAgent}
94
+ CPU core: ${navigator.hardwareConcurrency}, GPU: ${Hm()}`,e=navigator.deviceMemory;e&&(t+=`, minRAM: ${e}GB`),F.info(t),F.info(`URL: ${location.href}${((i=self.frameElement)==null?void 0:i.tagName)==="IFRAME"?" in iframe":""}`),ls().then(r=>{r&&F.info(Hr)})}};var ks={SCENE_LIVE:"live",SCENE_RTC:"rtc",ROLE_ANCHOR:"anchor",ROLE_AUDIENCE:"audience",STREAM_TYPE_MAIN:"main",STREAM_TYPE_SUB:"sub",AUDIO_PROFILE_STANDARD:"standard",AUDIO_PROFILE_STANDARD_STEREO:"standard-stereo",AUDIO_PROFILE_HIGH:"high",AUDIO_PROFILE_HIGH_STEREO:"high-stereo",QOS_PREFERENCE_SMOOTH:"smooth",QOS_PREFERENCE_CLEAR:"clear",SPEAKER:"Speakerphone",HEADSET:"Headset earpiece"};var se={INVALID_PARAMETER:5e3,INVALID_OPERATION:5100,ENV_NOT_SUPPORTED:5200,DEVICE_ERROR:5300,SERVER_ERROR:5400,OPERATION_FAILED:5500,OPERATION_ABORT:5998,UNKNOWN_ERROR:5999},Tr=(P=>(P[P.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",P[P.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",P[P.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",P[P.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",P[P.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",P[P.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",P[P.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",P[P.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",P[P.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",P[P.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",P[P.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",P[P.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",P[P.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",P[P.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",P[P.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",P[P.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",P[P.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",P[P.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",P[P.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",P[P.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",P[P.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",P[P.INVALID_OPERATION=5100]="INVALID_OPERATION",P[P.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",P[P.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",P[P.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",P[P.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",P[P.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",P[P.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",P[P.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",P[P.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",P[P.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",P[P.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",P[P.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",P[P.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",P[P.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",P[P.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",P[P.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",P[P.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",P[P.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",P[P.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",P[P.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",P[P.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",P[P.DEVICE_ERROR=5300]="DEVICE_ERROR",P[P.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",P[P.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",P[P.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",P[P.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",P[P.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",P[P.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",P[P.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",P[P.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",P[P.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",P[P.NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX=5310]="NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX",P[P.SERVER_ERROR=5400]="SERVER_ERROR",P[P.NEED_TO_BUY=5401]="NEED_TO_BUY",P[P.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",P[P.OPERATION_FAILED=5500]="OPERATION_FAILED",P[P.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",P[P.REJOIN_FAILED=5502]="REJOIN_FAILED",P[P.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",P[P.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",P[P.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",P[P.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",P[P.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",P[P.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",P[P.OPERATION_ABORT=5998]="OPERATION_ABORT",P[P.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",P))(Tr||{});function eT({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=Tr[i];try{o=K_[s]}catch(n){o=K_.UNKNOWN_ERROR}return Xe(o)?r=o(t):we(o)&&(r=o),t.fnName&&!r.includes(t.fnName)&&(r[r.length-1]!=="."&&(r+="."),r+=` thrown from ${t.fnName}()`),e&&(r+=" doc:"),r}var K_=Ee(Y({},nr),{INVALID_PARAMETER({fnName:i}){return`the parameters of the '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${pt(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${pt(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_LESS_THAN_ZERO({key:i,rule:t,fnName:e}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},INVALID_PARAMETER_MIN({key:i,rule:t,value:e}){return`the min value of ${i||t.name} is ${t.min}, received: ${e}.`},INVALID_PARAMETER_MAX({key:i,rule:t,value:e}){return`the max value of ${i||t.name} is ${t.max}, received: ${e}.`},INVALID_ELEMENT_ID({key:i,fnName:t}){return`'${i}' is not found in the document object when calling ${t}().`},INVALID_ELEMENT_ID_TYPE({key:i,fnName:t,type:e}){return`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`},INVALID_STREAM_ID({key:i}){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},INVALID_ROOM_ID_STRING({key:i}){return`'${i}' must be a valid string.`},INVALID_ROOM_ID_INTEGER({key:i}){return`'${i}' must be an integer between [1, 4294967294].`},INVALID_ROOM_ID_INTEGER_STRING({key:i}){return`'${i}' must be an integer but go a string, use 'parseInt' to convert it or use 'strRoomId' instead.`},INVALID_ROOM_ID_REQUIRED(){return"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required."},INVALID_ROOM_ID_TYPE_MISMATCH({key:i}){return`The type of target roomId must match the current roomId. Current room is using '${i}', but received '${i==="strRoomId"?"roomId":"strRoomId"}'.`},INVALID_ROOM_ID_DUPLICATE({key:i}){return`the target '${i}' must not be the same as the current '${i}'.`},INVALID_STREAM_TYPE:({fnName:i})=>`'streamType' is required when 'userId' is not '*', calling ${i}()`,INVALID_IMAGE_URL:"The 'src' param must be filled in when the background type is image.",INVALID_OPERATION({fnName:i}){return`the API '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_OPERATION_NOT_JOINED({fnName:i}){return`cannot ${i} because you are not enter room yet.`},INVALID_OPERATION_REMOTE_USER_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing stream.`},INVALID_OPERATION_STREAM_TYPE_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing ${t.streamType} video.`},INVALID_OPERATION_REPEAT_CALL({fnName:i}){return`you are already ${i}(), cannot repeated call '${i}'.`},INVALID_OPERATION_NEED_VIDEO({fnName:i}){return`cannot call '${i}' because the camera is not turned on.`},INVALID_OPERATION_NEED_AUDIO({fnName:i}){return`cannot call '${i}' because the microphone or screen share is not turned on.`},INVALID_BUFFER_EMPTY:({key:i})=>`the buffer size of paramerter '${i}' cannot be empty`,INVALID_BUFFER_OVERSIZE:()=>"buffer size is over 1000 Bytes",INVALID_ROLE_AUDIENCE:()=>"role: 'audience' cannot call this api.",INVALID_NOT_ENABLE_SEI:()=>"you need to enable SEI in TRTC.create({ enableSEI: true })",INVALID_NEED_CALL_PUBLISHED:({fnName:i})=>`you need to call ${i}() after publish stream.`,ENV_NOT_SUPPORTED({fnName:i}){return`the current browser does not support the capability of the function '${i}' you are calling, please check the API documentation.`},NOT_SUPPORTED_WEBRTC:"the current browser does not support WebRTC capability, please check the SDK documentation.",NOT_SUPPORTED_H264_ENCODE:"this browser does not support H264 encode.",NOT_SUPPORTED_H264_DECODE:"this browser does not support H264 decode.",NOT_SUPPORTED_SCREEN_SHARE:"this browser does not support screen share, please check the browser version.",NOT_SUPPORTED_SMALL_VIDEO:"this browser does not support small video, please check the browser version.",NOT_SUPPORTED_SEI:"this browser does not support SEI, please check the browser version.",NOT_SUPPORTED_WEBGL:"this browser does not support WebGL, please check the browser version.",NOT_SUPPORTED_CHROME_VERSION({fnName:i}){return`cannot call ${i} because the browser version is too low, please upgrade to the latest version`},DEVICE_ERROR({fnName:i,error:t}){return`'${i}' got device exception${t?`, error: ${t.toString()}.`:"."}`},DEVICE_NOT_FOUND_ERROR({fnName:i,deviceType:t=Us(i),error:e}){return`NotFoundError, no ${t} detected, please check your device and the configuration on '${i}'${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_ALLOWED_ERROR({fnName:i,deviceType:t=Us(i),error:e}){return`NotAllowedError, you have disabled ${t} access, please allow the current application to use the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_READABLE_ERROR({fnName:i,deviceType:t=Us(i),error:e}){return`NotReadableError, the ${t} maybe in use by another APP, please check if the device is pre-occupied by another APP.`},DEVICE_OVERCONSTRAINED_ERROR({fnName:i,deviceType:t=Us(i),error:e}){return`OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct${e?`, error: ${e.toString()}.`:"."}`},DEVICE_INVALID_STATE_ERROR({fnName:i,deviceType:t=Us(i),error:e}){return`InvalidStateError, after the user clicks and interacts with the page, turn on the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_SECURITY_ERROR({fnName:i,deviceType:t=Us(i),error:e}){return`SecurityError, check whether the system security policy restricts the use of the ${t}, and it is recommended to turn on the ${t} after the user interacts with the page${e?`, error: ${e.toString()}.`:"."}`},DEVICE_ABORT_ERROR({fnName:i,deviceType:t=Us(i),error:e}){return`AbortError, an unknown exception in the system makes the device unusable, recommended to change the device or browser and re-check whether the device is normal${e?` error: ${e.toString()}.`:"."}`},CAMERA_RECOVER_FAILED({error:i}){return`camera recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},MICROPHONE_RECOVER_FAILED({error:i}){return`microphone recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},OPERATION_FAILED({fnName:i,error:t}){return`'${i}' failed, reason: ${t==null?void 0:t.toString()}`},FIREWALL_RESTRICTION(){return"media connection failure due to firewall restrictions, please try to change your network."},EVENT_HANDLER_ERROR({eventName:i}){return`an error was caught on trtc.on('${i}', handler), please check your code on 'handler'.`},VIDEO_CONTEXT_ERROR({reason:i,error:t}){return`video context error ${i} ${(t==null?void 0:t.name)||""} ${(t==null?void 0:t.message)||""}`},SERVER_ERROR({fnName:i,error:t}){return`'${i}' got server error: ${t==null?void 0:t.toString()}, please check the SDK documentation.`},NEED_TO_BUY({value:i,url:t}){return`You need to buy packages for ${i}. Refer to: ${t}`},ACCOUNT_NO_MONEY:({fnParams:i})=>`your TRTC account run out of credit, please recharge.${i.sdkAppId?` SDKAppId: ${i.sdkAppId}`:""}`,OPERATION_ABORT({fnName:i}){return`'${i}' abort`},UNKNOWN_ERROR({fnName:i,error:t}){return`'${i}' throw unknown exception${t?`, error: ${t.toString()}.`:"."}`}});function Us(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var tf=class i extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:n="",originError:a,data:d}){var p;let l;o?l=o:l=eT({code:e===se.SERVER_ERROR?e:r||e,params:Y({fnName:n,error:a},s)});super(l);m(this,"name","RtcError");m(this,"code");m(this,"extraCode");m(this,"functionName");m(this,"message");m(this,"data");m(this,"handler");m(this,"originError");this.name=Tr[e],this.code=e,this.extraCode=r,this.functionName=n,this.originError=a,this.message=l,this.data=d,this.extraCode===5302&&((p=this.originError)!=null&&p.message.includes("system"))&&(this.handler=()=>{let f={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},g={startLocalVideo:"webcam",startLocalAudio:"microphone"},y=document.createElement("a");us?y.href=`ms-settings:privacy-${g[this.functionName]}`:Gr&&(y.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${f[this.functionName]}`),y.href.length>0&&y.click()})}static convertFrom(e,r,o){let s=e;if(e instanceof ae){let{stack:n}=e,a={code:se.UNKNOWN_ERROR,fnName:r,originError:e};switch(e.getCode()){case q.INVALID_PARAMETER:a.code=se.INVALID_PARAMETER,a.message=e.message;break;case q.INVALID_OPERATION:a.code=se.INVALID_OPERATION;break;case q.NOT_SUPPORTED:case q.NOT_SUPPORTED_H264:a.code=se.ENV_NOT_SUPPORTED,e.getCode()===q.NOT_SUPPORTED_H264&&(a.extraCode=e.message.includes(nr.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case q.JOIN_ROOM_FAILED:a.messageParams={fnParams:o};case q.SERVER_TIMEOUT:case q.SWITCH_ROLE_FAILED:case q.SWITCH_ROOM_FAILED:a.code=se.SERVER_ERROR,a.extraCode=e.getExtraCode();break;case q.API_CALL_ABORTED:a.code=se.OPERATION_ABORT;break;case q.DEVICE_NOT_FOUND:case q.DEVICE_AUTO_RECOVER_FAILED:case q.INITIALIZE_FAILED:a.code=5300,e.name&&(a.extraCode=NR(e.name));break;case q.VIDEO_ENCODE_FAILED:a.extraCode=5505;case q.AUDIO_ENCODE_FAILED:a.extraCode=5506,a.code=se.OPERATION_FAILED;break;case q.UNKNOWN:break;default:a.code=se.OPERATION_FAILED}s=new i(a),n&&(s.stack+=n.substr(n.indexOf(`
95
+ `)))}else{if(e instanceof i)return e;s=new i({code:se.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function NR(i){let t;switch(i){case"NotFoundError":t=5301;break;case"NotAllowedError":t=5302;break;case"NotReadableError":t=5303;break;case"OverconstrainedError":t=5304;break;case"InvalidStateError":t=5305;break;case"SecurityError":t=5306;break;case"AbortError":t=5307;break;default:t=5300}return t}var oe=tf;function fi(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function wc(i){return i===ks.QOS_PREFERENCE_CLEAR?"detail":i===ks.QOS_PREFERENCE_SMOOTH?"motion":""}function jn(i,t){let e=t?dm:fa;return Dm(i)?Y(Y({},e),i):Vr[i]?Vr[i]:e}var tT={type:"object",properties:{cameraId:{type:"string"},useFrontCamera:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:["string","boolean"],values:[!0,!1,"view","publish","both"]},small:{type:["string","object","boolean"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},rT={type:"object",properties:{systemAudio:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},profile:{type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack},audioTrack:{instanceOf:MediaStreamTrack}}},qn={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(we(i)&&!document.getElementById(i))throw new oe({code:se.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},iT={name:"userId",required:!0,type:"string"},oT={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{type:["string","object"],properties:{bitrate:{type:"number"},channelCount:{type:"number"}}},echoCancellation:{values:[!0,!1,"remote-only","all"]},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function zn(i,t){if(!i)throw new oe({code:se.INVALID_OPERATION,extraCode:5101,fnName:t})}function sT(i,t,e){if(!i)throw new oe({code:se.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}function nT(i,t,e){if(!(/^[1-9]\d*$/.test(String(i))&&i<4294967295))throw new oe({code:se.INVALID_PARAMETER,extraCode:5013,fnName:t,messageParams:{key:e}})}function aT(i,t,e){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(i))throw new oe({code:se.INVALID_PARAMETER,extraCode:5012,fnName:t,messageParams:{key:e}})}var C2={type:"number",notLessThanZero:!0},DR=(i,t)=>i.width*i.height>=t.width*t.height&&i.frameRate>=t.frameRate&&i.bitrate>=t.bitrate;function cT(i){var r;if(!((r=i==null?void 0:i.option)!=null&&r.small))return;if(!Eu()){F.warn("small stream is not supported"),delete i.option.small;return}let t=jn(i.option.profile),e=jn(i.option.small,!0);if(!DR(t,e)){F.warn(`small stream profile must be less than big stream profile. Big: ${JSON.stringify(t)}, Small: ${JSON.stringify(e)}`),delete i.option.small;return}}var wR={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(i,t,e){if(this._room.isJoined)throw new oe({code:se.INVALID_OPERATION,extraCode:5104,fnName:e});if(i.roomId){if(we(i.roomId))throw new oe({code:se.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});nT(i.roomId,e,t)}else if(i.strRoomId)aT(i.strRoomId,e,t);else throw new oe({code:se.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{sdkAppId:{required:!0,type:"number",allowEmpty:!1},userId:{required:!0,type:"string",allowEmpty:!1},userSig:{required:!0,type:"string",allowEmpty:!1},scene:{type:"string",values:["live","rtc"]},role:{type:"string",values:["audience","anchor"]},roomId:{type:["string","number"]},strRoomId:{type:"string"},proxy:{type:["object","string"],properties:{websocketProxy:{type:"string"},turnServer:{type:["object","array"],properties:{url:{required:!0,type:"string"},username:{type:"string"},credential:{type:"string"},credentialType:{type:"string",values:["password"]}}},loggerProxy:{type:"string"},webtransportProxy:{type:"string"}}},enableAutoPlayDialog:{type:"boolean"},userDefineRecordId:{type:"string"},latencyLevel:{type:"number"},playoutDelay:{type:"object",properties:{min:{type:"number",min:0,max:1e3},max:{type:"number",min:0,max:1e4}}}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:qn,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:tT},validate(i){var t,e;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&Hi())throw new oe({code:se.ENV_NOT_SUPPORTED,extraCode:5201});(e=i==null?void 0:i.option)!=null&&e.small&&cT(i)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:Ee(Y({},qn),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:tT},validate(i){var t;(t=i==null?void 0:i.option)!=null&&t.small&&cT(i)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:oT},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.audioTrack)&&Hi())throw new oe({code:se.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:oT}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:qn,publish:{type:"boolean"},option:rT},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)){if(Hi())throw new oe({code:se.ENV_NOT_SUPPORTED,extraCode:5201});if(!za())throw new oe({code:se.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:qn,publish:{type:"boolean"},option:rT}},muteRemoteAudio:[iT,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[iT,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:qn,userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){zn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(sT(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:se.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:Ee(Y({},qn),{required:!1}),userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){zn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(sT(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:se.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(i,t,e){if(i.userId!=="*"&&O(i.streamType))throw new oe({code:se.INVALID_PARAMETER,extraCode:5014,fnName:e})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(i,t,e){zn(this._room.isJoining||this._room.isJoined,e)}},enableAudioVolumeEvaluation:[{name:"interval",type:"number"},{name:"enableInBackground",type:"boolean"}],sendSEIMessage:[{name:"buffer",required:!0,instanceOf:ArrayBuffer,validate(i,t,e,r){if(!Xa)throw new oe({code:se.ENV_NOT_SUPPORTED,fnName:e,extraCode:5207});if(!this._room.enableSEI)throw new oe({code:se.INVALID_OPERATION,fnName:e,extraCode:5108});if(i.byteLength>1e3)throw new oe({code:se.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:se.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:e});zn(this._room.isJoined,e)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(i,t,e){if(!i&&!this._room.isMainStreamPublished||i&&!this._room.isAuxStreamPublished)throw new oe({code:se.INVALID_OPERATION,extraCode:5109,messageParams:{key:t},fnName:e})}}}}],sendCustomMessage:{name:"message",required:!0,type:"object",properties:{cmdId:{type:"number",required:!0,min:1,max:10},data:{instanceOf:ArrayBuffer,required:!0,validate(i,t,e,r){if(i.byteLength>1e3)throw new oe({code:se.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:se.INVALID_PARAMETER,extraCode:5017,fnName:e,messageParams:{key:t}})}}},validate(i,t,e){if(zn(this._room.isJoined,e),this._room.scene==="live"&&this._room.role==="audience")throw new oe({code:se.INVALID_OPERATION,extraCode:5107,fnName:e,messageParams:{key:t}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(i,t,e){if(zn(this._room.isJoined,e),this._room.useStringRoomId&&i.strRoomId===this._room.roomId||!this._room.useStringRoomId&&i.roomId===Number(this._room.roomId))throw new oe({code:se.INVALID_PARAMETER,extraCode:5020,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId&&this._room.useStringRoomId||!i.roomId&&i.strRoomId&&!this._room.useStringRoomId)throw new oe({code:se.INVALID_PARAMETER,extraCode:5019,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId)nT(i.roomId,e,t);else if(i.strRoomId)aT(i.strRoomId,e,t);else throw new oe({code:se.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{roomId:{type:"number"},strRoomId:{type:"string"},privateMapKey:{type:"string"},userSig:{type:"string",required:!0},autoSubscribeCount:{type:"number",min:0,max:50}}}},Ot={TRTC:wR};var Yt=class extends Error{};function OR(i,t){let e=is(i);for(let r=0;r<t.length;r++)Br(e[r],t[r]);return e}function MR(i){this._resolve=Promise.resolve(i)}function xR(i){this._reject=Promise.reject(i)}var Po=class Po{constructor(t,e){this.instance=t;this.group=e;m(this,"started",!1);m(this,"ops",[]);m(this,"startSame",()=>!0);m(this,"mergeUpdate",OR);let r=Po.instances.get(t);r?r.set(e,this):Po.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=Po.instances.get(t);return r&&r.get(e)||new Po(t,e)}static gets(t,e){let r=Po.instances.get(t),o=[];return r&&r.forEach((s,n)=>{e.test(n)&&o.push(s)}),o}action(t,e,r){let o=a=>{var d;return t===0?this.started=!0:t===3&&(this.started=!1),this.ops.shift(),(d=this.currentOp)==null||d.action(),a},s=a=>{var d,l;throw this.ops.shift(),t===0&&((d=this.currentOp)==null?void 0:d.type)===2&&this.ops.shift().reject(new Yt("start failed")),(l=this.currentOp)==null||l.action(),a},n={type:t,action:()=>e(...n.args).then(o,s),args:r,resolve:MR,reject:xR};try{switch(this.state){case 1:if(t===0)throw new Yt("already started");break;case 4:if(t===2)throw new Yt("not started");break;default:return this.cacheOp(n)}}catch(a){return Promise.reject(a)}return this.ops.push(n),n.promise=e(...n.args).then(o,s)}cacheOp(t){if(this.ops.length===1)switch(this.state){case 0:case 2:if(t.type===0)throw new Yt("already start");break;case 3:switch(t.type){case 2:throw new Yt("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Yt("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new Yt("keep stop");if(this.ops.slice(1).forEach(o=>o.reject(r)),this.ops=this.ops.slice(0,1),this.state===3)return this.currentOp.promise}break;case 2:switch(this.lastOpType){case 2:return this.lastOp.args=this.mergeUpdate(this.lastOp.args,t.args),this.lastOp.promise;case 3:throw new Yt("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Yt("start not allowed after update");case 0:throw new Yt("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new Yt("keep start")),new Yt("already start")}}t.promise=new Promise((r,o)=>{t._resolve?t._resolve.then(r):t.resolve=r,t._reject?t._reject.catch(o):t.reject=o});let{action:e}=t;return t.action=()=>e().then(t.resolve,t.reject),this.ops.push(t),t.promise}get lastOp(){return this.ops[this.ops.length-1]}get lastOpType(){return this.lastOp.type}get currentOp(){return this.ops[0]}get state(){return this.currentOp?this.currentOp.type:this.started?1:4}};m(Po,"instances",new WeakMap);var Qi=Po;var ml=new WeakMap,hl=(i,t)=>{if(t instanceof Yt){let{stack:e}=t;t=new oe({code:se.OPERATION_ABORT,message:`${i} abort: ${t.message}`,fnName:i}),e&&(t.stack+=e.substr(e.indexOf(`
96
+ `)))}throw t};function Lo(i,t){return xe((e,r)=>function(...o){let s=Qi.get(this,typeof i=="string"?i:i.call(this,...o));return s?(t&&(s.startSame=t.bind(this)),s.action(0,e.bind(this),o).catch(hl.bind(null,r))):e.apply(this,o)})}function Vs(i,t){let{merge:e,debounce:r}=t||{};return xe((o,s)=>function(...n){let a=Qi.get(this,typeof i=="string"?i:i.call(this,...n));if(!a)return o.apply(this,n);if(e&&(a.mergeUpdate=e.bind(this)),r&&r.isNeedToDebounce.apply(this,n)){let{delay:d,getKey:l}=r;return new Promise((p,f)=>{var R,C;let g=(R=ml.get(this))==null?void 0:R.get(l(...n));if(g){let{timeoutId:N,resolve:k}=g;clearTimeout(N),k()}let y=setTimeout(()=>{if(a.state===3||a.state===4)return p();a.action(2,o.bind(this),n).catch(hl.bind(null,s)).then(p,f)},d);ml.has(this)?(C=ml.get(this))==null||C.set(l(...n),{timeoutId:y,resolve:p}):ml.set(this,new Map([[l(...n),{timeoutId:y,resolve:p}]]))})}return a.action(2,o.bind(this),n).catch(hl.bind(null,s))})}function ko(i){return xe((t,e)=>function(...r){let o=typeof i=="function"?i.call(this,...r):i;if(o instanceof RegExp)return Promise.all(Qi.gets(this,o).map(n=>n.action(3,()=>Promise.resolve(),r))).then(()=>t.call(this,...r));let s=Qi.get(this,o);return s?s.action(3,t.bind(this),r).catch(hl.bind(null,e)):t.apply(this,r)})}function Uo(){return function(i,t,e){return i.prototype[t]=function(){let r=this._log||console,o=`"${t}" is a static method. Use TRTC.${t}() instead. See: ${ir}/en/TRTC.html#.${t}`;r.warn(o)},e}}var ee={ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",KICKED_OUT:"kicked-out",REMOTE_USER_ENTER:"remote-user-enter",REMOTE_USER_EXIT:"remote-user-exit",REMOTE_AUDIO_AVAILABLE:"remote-audio-available",REMOTE_AUDIO_UNAVAILABLE:"remote-audio-unavailable",REMOTE_VIDEO_AVAILABLE:"remote-video-available",REMOTE_VIDEO_UNAVAILABLE:"remote-video-unavailable",AUDIO_VOLUME:"audio-volume",AUDIO_FRAME:"audio-frame",NETWORK_QUALITY:"network-quality",CONNECTION_STATE_CHANGED:"connection-state-changed",AUDIO_PLAY_STATE_CHANGED:"audio-play-state-changed",VIDEO_PLAY_STATE_CHANGED:"video-play-state-changed",SCREEN_SHARE_STOPPED:"screen-share-stopped",DEVICE_CHANGED:"device-changed",PUBLISH_STATE_CHANGED:"publish-state-changed",TRACK:"track",STATISTICS:"statistics",SEI_MESSAGE:"sei-message",CUSTOM_MESSAGE:"custom-message",VIDEO_DECODE_DOWNGRADE_STATE_CHANGED:"video-decode-downgrade-state-changed",LAYER_DATA:"layerData",FIRST_VIDEO_FRAME:"first-video-frame",PERMISSION_STATE_CHANGE:"permission-state-change",VIDEO_SIZE_CHANGED:"video-size-changed"},dT=new Set([ee.ERROR,ee.AUTOPLAY_FAILED,ee.KICKED_OUT,ee.REMOTE_USER_ENTER,ee.REMOTE_USER_EXIT,ee.REMOTE_AUDIO_AVAILABLE,ee.REMOTE_AUDIO_UNAVAILABLE,ee.REMOTE_VIDEO_AVAILABLE,ee.REMOTE_VIDEO_UNAVAILABLE,ee.CONNECTION_STATE_CHANGED,ee.PUBLISH_STATE_CHANGED,ee.SCREEN_SHARE_STOPPED,ee.DEVICE_CHANGED,ee.FIRST_VIDEO_FRAME,ee.PERMISSION_STATE_CHANGE,ee.VIDEO_SIZE_CHANGED]);var sf={};Ai(sf,{ScheduleRequestType:()=>lT,getAbilityConfig:()=>LR,getScheduleDomain:()=>gl,isNeedToSchedule:()=>pl,scheduleProxy:()=>gi,sendScheduleRequest:()=>of,setIsNeedToSchedule:()=>Fs,setScheduleProxy:()=>fl});var rf=null,pl=!0;typeof document!="undefined"&&document.head.insertAdjacentHTML("beforeend",Object.values(Ci).map(i=>`<link rel="dns-prefetch" href="https://${i}">`).join(`\r
97
+ `));function Fs(i){Ye(i)&&i!==pl&&(pl=i,F.info(`setIsNeedToSchedule ${i}`))}U.on("28",()=>Fs(!0));U.on("63",()=>Fs(!0));U.on("84",()=>Fs(!0));U.on("201",i=>{i.state==="RECONNECTING"&&Fs(!0)});U.on("202",i=>{i.state==="RECONNECTING"&&Fs(!0)});function PR(i,t,e){let r={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let o=performance.getEntriesByType("resource"),s=Vo(i,"config",M.MAIN),n=Vo(i,"config",M.BACKUP);for(let a of o)if(a.startTime>=e&&(a.name===s||a.name===n)&&a.transferSize>0){let d=a.name===s?M.MAIN:M.BACKUP,l=Math.round(a.duration),p=Math.round(a.domainLookupStart-a.startTime),f=a.redirectStart>0?Math.round(a.redirectEnd-a.redirectStart):0,g=a.fetchStart>0?Math.round(a.domainLookupStart-a.fetchStart):0,y=Math.round(a.domainLookupEnd-a.domainLookupStart),R=Math.round(a.requestStart-a.secureConnectionStart),C=Math.round(a.secureConnectionStart-a.connectStart),N=Math.round(a.responseStart-a.requestStart),k=Math.round(a.responseEnd-a.responseStart),Q=[y,R,C,N,k];je.uploadEvent({log:`stat-schedule-net:${l}(${p}(${f}->${g})->${Q.join("->")}) ${d}`,userId:t}),r=Ee(Y({},r),{totalCost:l,local:p,dns:y,tcp:C,tls:R,request:N,response:k});break}}catch(o){F.error("getScheduleDetailCost error",o)}return r}function of(l){return A(this,arguments,function*({userId:i,sdkAppId:t,useStringRoomId:e,roomId:r,userSig:o,version:s,frameWorkType:n,role:a,latencyLevel:d}){var f;if(!pl&&rf)return{isCached:!0,result:rf};let p={delta:0,count:[1,1],msg:[],detail:[]};try{let g=new FormData;g.append("userId",String(i)),g.append("sdkAppId",String(t)),g.append("isStrGroupId",String(e)),g.append("groupId",String(r)),g.append("sdkVersion",s),g.append("userSig",String(o));let y=((f=yield ls())==null?void 0:f.model)||eu();y&&g.append("model",y);let R=Li();R&&g.append("osString",R),a&&g.append("role",String(a)),d&&g.append("latencyLevel",String(d)),n&&g.append("frameWorkType",String(n));let C=_e(),N=yield UR(g,p,t);N.config&&(N.config.loggerDomain&&Ko(N.config.loggerDomain),Ye(N.config.scheduleCache)&&Fs(!N.config.scheduleCache)),p.delta=_e()-C;let k=PR(Number(t),i,C);return rf=N,{isCached:!1,result:N,detailCost:k}}catch(g){let y=ut(g)?g[0]:g,R=Ve(y.code)?y.code:0,C=`schedule failed${y.message?`: ${y.message}`:""}`,N=new ae({code:q.SCHEDULE_FAILED,extraCode:R,message:He({key:$e.JOIN_ROOM_FAILED,data:{error:C,code:R}})});throw F.error(C,R),N}})}var gi={main:"",backup:""};function fl(i){ut(i)?(gi.main=i[0],gi.backup=i[1]):gi.main=i}var lT=(r=>(r.CONFIG="config",r.TRTC_AUTO_CONF="trtcAutoConf",r.AUDIO_AI_AUTH="audioAiAuth",r))(lT||{});function Vo(i,t,e=M.MAIN,r=!1){return`https://${gi[e]||gl(i,e,r)}/api/v1/${t}`}function LR(i,t,e){let r=Vo(i,t),o=Vo(i,t,M.BACKUP),s=new URLSearchParams(e).toString(),n=fetch(`${r}?${s}`).then(d=>d.json()),a=fetch(`${o}?${s}`).then(d=>d.json());return Sa([n,a])}function gl(i,t=M.MAIN,e=!1){let r;return Rr(i)?e?r=t===M.MAIN?Ci.MAIN_OVERSEA_BACKUP:Ci.BACKUP_OVERSEA:r=t===M.MAIN?Ci.MAIN_OVERSEA:Ci.BACKUP_OVERSEA:r=t===M.MAIN?Ci.MAIN:Ci.BACKUP,r}function kR(i,t,e){return new Promise((r,o)=>{wi({url:i,body:t,timeout:e.timeout,priority:"high"}).then(s=>{s.data.code===0?r(s.data.data):o({code:s.data.code,message:s.data.msg})}).catch(o)})}var uT=(i,t)=>go({retryFunction:kR,settings:{retries:3,timeout:0},onError:t,onRetrying:i});function UR(i,t,e){return new Promise((r,o)=>{let s=null;Sa([uT(n=>t.count[0]=n+1,({error:n,retry:a,retriedCount:d,retryFuncArgs:l})=>{t.msg[0]=n.message,s||(d>=1&&(l[0]=Vo(e,"config",M.MAIN,!0)),a())})(Vo(e,"config",M.MAIN),i,{get timeout(){return os(2+t.count[0])*1e3}}),uT(n=>t.count[1]=n+1,({error:n,retry:a,retriedCount:d,retryFuncArgs:l})=>{t.msg[1]=n.message,s||(d>=2&&(l[0]=Vo(e,"config",M.BACKUP,!0)),a())})(Vo(e,"config",M.BACKUP),i,{get timeout(){return os(2+t.count[1])*1e3}})]).then(n=>{s=n,r(s)}).catch(o)})}var VR=i=>i.startsWith("data:application/octet-stream;base64,"),FR=i=>i.startsWith("file://"),Oc=class{constructor(){m(this,"_log");this._log=F.createLogger({id:"fd"})}download(t,e){return A(this,null,function*(){let{type:r="blob"}=e||{};t=as(t);try{let o=_e(),s;if(Xe(fetch)?s=yield this.downloadWithFetch(t,r):s=yield this.downloadWithXHR(t,r),!s||!s.data)throw new Error("data is empty");let n=_e()-o;return this._log.info(`downloaded: ${t}, return type: ${r}, cost: ${n}ms`),J.addSuccessEvent({key:522700,cost:_e()-o}),s.data}catch(o){throw this._log.error(`failed to download: ${t}, error: ${o}`),J.addFailedEvent({key:522700,error:o}),o}})}downloadWithFetch(t,e){return A(this,null,function*(){this._log.info(`download with fetch: ${t}, return type: ${e}`);try{let r=yield fetch(t);if(!r.ok){let s=new Error(`network response was not ok: ${r.status}`);throw s.status=r.status,s}let o;return e==="arraybuffer"?o=yield r.arrayBuffer():o=yield r.blob(),{data:o}}catch(r){throw r}})}downloadWithXHR(t,e){return this._log.info(`download with xhr: ${t}, return type: ${e}`),new Promise((r,o)=>{let s=new XMLHttpRequest;s.open("GET",t,!0),s.responseType=e,s.onload=()=>{if(s.status===200||s.status===0&&s.response)r({data:s.response});else{let n=new Error(`XHR failed, status: ${s.status}`);n.status=s.status,o(n)}},s.onerror=o,s.send(null)})}loadWasm(t,e){return A(this,null,function*(){this._log.info(`loadWasm ${t}, importObject: ${JSON.stringify(e)}`);let r=_e(),o=null,s=null;if(Xe(WebAssembly.instantiateStreaming)&&!VR(t)&&!FR(t)&&Xe(fetch))try{let n=fetch(t);o=(yield WebAssembly.instantiateStreaming(n,e)).instance}catch(n){s=n}if(!o)try{let n=yield this.download(t,{type:"arraybuffer"});o=(yield WebAssembly.instantiate(n,e)).instance}catch(n){s=n}if(o){let n=_e()-r;return this._log.info(`loadedWasm ${t}, cost: ${n}ms`),J.addSuccessEvent({key:522701,cost:n}),o}throw this._log.error(`failed to loadWasm ${t}, error: ${s}`),J.addFailedEvent({key:522701,error:s}),s})}loadScript(t){this._log.info(`loadScript ${t}`);let e=_e();return new Promise((r,o)=>{let s=document.createElement("script");s.type="text/javascript",s.onload=()=>{this._log.info(`loadedScript ${t}, cost: ${_e()-e}ms`),J.addSuccessEvent({key:522702,cost:_e()-e,split:1e3}),r(s)},s.onerror=n=>{this._log.error(`failed to loadScript ${t}, error: ${(n==null?void 0:n.message)||JSON.stringify(n)}`),J.addFailedEvent({key:522702}),o(n)},s.crossOrigin="anonymous",s.src=t,document.head.append?document.head.append(s):document.getElementsByTagName("head")[0].appendChild(s)})}};Z([Is({settings:{timeout:0,retries:3},onError(t,e,r){var o;(t==null?void 0:t.status)===404||(o=t==null?void 0:t.message)!=null&&o.includes("404")?(this._log.warn("download 404, stop retry"),r(t)):e()},onRetrying(t){this._log.warn(`download retrying: ${t}`)}})],Oc.prototype,"download",1),Z([Is({settings:{timeout:3e3,retries:3},onRetrying(t){this._log.warn(`loadScript retrying: ${t}`)}})],Oc.prototype,"loadScript",1);var Mc=new Oc;function mT({TRTC:i,room:t,errorModule:e,assetsPath:r}){return{TRTC:i,LocalMixVideoTrack:Ms,LocalVideoTrack:_r,LocalScreenTrack:mi,room:t,assetsPath:r,fileDownloader:Mc,innerEmitter:U,INNER_EVENT:B,constants:hm,environment:An,utils:Op,eventLogger:je,log:this.room.getLogger(),loggerManager:F,errorModule:e,kvStatManager:J,rtcDectection:Ao,trtc:this,rx:Np,enums:ch,schedule:sf,getDevices:Mn,initVisionTaskRegistry:(o,s="/mediapipe/vision.js")=>A(this,null,function*(){window.VisionTaskRegistry||(yield Mc.loadScript(`${o}/${s}`.replace(/([^:]\/)\/+/g,"$1"))),yield(yield window.VisionTaskRegistry.getInstance(o)).preloadModels([window.VisionTaskType.ImageSegmenter])}),audioContext:qe(),deviceDetector:at,AudioPlayer:Pn,showAutoPlayDialog:Dn,Timer:ft,clearStarted:(o,s)=>{let n=o.getAlias(),a=Qi.instances.get(this);if(a)if(s){let d=a.get(n+s);if(!d)return;d.started=!1}else a.forEach((d,l)=>{l.startsWith(n)&&(d.started=!1)})},startGetPCM:_c,createAudioNode:nc,getNetworkTimeOffset:Hf,validateSourceNode:()=>{var o;if(lt&&!((o=this.room.audioManager._localAudioPipline)!=null&&o.source.node))throw new oe({code:se.DEVICE_ERROR,extraCode:5310,message:"The audio processing plugin cannot be used due to the microphone's sampling rate is not 48KHz in Firefox. Please switch to another browser such as Chrome."})}}}var hT=(i,t)=>{let{emit:e}=i;return i.emit=(...r)=>{try{return e.apply(i,r)}catch(o){let s=He({key:$e.CATCH_HANDLER_ERROR,data:{name:t,event:r[0]},addDocLink:!1});return F.warn(`${s}
98
98
 
99
- ${o.stack}`),!1}},i};var Jn=new WeakMap;function fT(i){let t=Jn.get(i);t&&(t.forEach(e=>clearTimeout(e)),Jn.delete(i))}function gT(i,t){return xe((e,r)=>function(...o){let s=Jn.get(this);s||(s=new Map,Jn.set(this,s));let n=t(...o),a=s.get(n);if(!a||a<=0){e.apply(this,o);let d=setTimeout(()=>{var l;(l=Jn.get(this))==null||l.delete(n)},i);s.set(n,d)}else{clearTimeout(a);let d=window.setTimeout(()=>{var l;e.apply(this,o),(l=Jn.get(this))==null||l.delete(n)},i);s.set(n,d)}})}var _T="trtc-sdk-v5",nf="5.14.0-wasm.5";function Ht(...i){return xe((t,e)=>function(...r){try{El.call(this,i,r,e,this._name)}catch(o){return Promise.reject(o)}return t.apply(this,r)})}function af(...i){return xe((t,e)=>function(...r){try{El.call(this,i,r,e,this._name)}catch(o){throw o}return t.apply(this,r)})}function El(i,t,e,r){if(ut(i))for(let o=0;o<i.length;o++)gl.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else gl.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function gl({rule:i,value:t,key:e,fnName:r,className:o}){function s(d){return{code:se.INVALID_PARAMETER,extraCode:d,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(O(t)){if(i.required)throw new oe(s(5001));if(O(i.defaultValue)){Xe(i.validate)&&i.validate.call(this,t,e,r,o,this);return}t=i.defaultValue}if(Array.isArray(i.type)){let d=!1;for(let l=0;l<i.type.length;l++)i.type[l]===null&&t===null&&(d=!0),Xe(i.type[l])&&t instanceof i.type[l]&&(d=!0),we(i.type[l])&&pt(t)===i.type[l].toLowerCase()&&(d=!0);if(!d)throw new oe({code:se.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(l=>ss(l)?cn(l):we(l)?l:pt(l))},value:t}})}else if(!O(i.type)&&pt(t)!==i.type)throw new oe(s(5002));if(i.allowEmpty===!1){let d=Ve(t)&&(t===0||Number.isNaN(t)),l=we(t)&&t.trim()==="";if(d||l)throw new oe(s(5003))}if(i.notLessThanZero&&Ve(t)&&t<0)throw new oe(s(5006));if(!O(i.min)&&Ve(t)&&t<i.min)throw new oe(s(5007));if(!O(i.max)&&Ve(t)&&t>i.max)throw new oe(s(5008));if(we(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new oe(s(5004))}else if(Xe(i.instanceOf)&&!(t instanceof i.instanceOf))throw new oe(s(5004));if(Array.isArray(i.values)&&!i.values.includes(t))throw new oe(s(5005));let{properties:n}=i;Xt(n)&&hr(t)&&Object.keys(n).forEach(d=>{gl.call(this,{rule:n[d],value:t&&t[d],key:`${d}`,fnName:r,className:o})});let{arrayItem:a}=i;Xt(a)&&ut(t)&&t.forEach((d,l)=>{gl.call(this,{rule:a,value:d,key:`${e}[${l}]`,fnName:r,className:o})}),Xe(i.validate)&&i.validate.call(this,t,e,r,o,this)}function st(i={}){let{getRemoteId:t=()=>"",replaceArg:e,getKVReportKey:r,ignoreLog:o,ignoreErrorLog:s}=i;return xe((n,a)=>function(...d){var y,R,C;function l(N,k,Q){if(Q&&Q.includes(N))return"hided";if(e){let H=e(...d);if(d[H.argIndex]===k)return H.value}if(k===d||N in d)return k;try{return k instanceof HTMLElement?`id: ${k.id} type:${pt(k)}`:k instanceof MediaStreamTrack?wd(k):(JSON.stringify(k),k)}catch(H){return`type:${pt(k)}`}}let p=this._log||F;if(o!=null&&o(...d))return n.apply(this,d);d.length>0?p.info(`${a}() ${JSON.stringify(d,(N,k)=>l(N,k,["userSig","privateMapKey"]))}`):p.info(`${a}()`);let f=r?r(...d):uu[a],g=(s==null?void 0:s(...d))||!1;try{let N=n.apply(this,d),k=_e();if(po(N)){let Q=`${a.includes("Plugin")?`${((R=(y=d[0]).getName)==null?void 0:R.call(y))||""} `:" "}`;return N.then(H=>(p.info(`${a}() success ${Q}${t.call(this,...d)}`),J.addSuccessEvent({key:f,cost:_e()-k}),H)).catch(H=>{var W;H=oe.convertFrom.call(this,H,a,d.length===1?d[0]:d);let Ie=H.extraCode||H.code,Je=(W=H.message)!=null&&W.includes(Ie)?"":` code:${Ie}`;throw g||p.error(`${a}() failed ${Q}${t.call(this,...d)} ${H}${Je} params: ${JSON.stringify(d,l)}`),J.addFailedEvent({key:f,error:H}),H})}return J.addSuccessEvent({key:f}),N}catch(N){N=oe.convertFrom.call(this,N,a);let k=N.extraCode||N.code,Q=(C=N.message)!=null&&C.includes(k)?"":` code:${k}`;throw g||p.error(`${a}() failed ${N}${Q} params: ${JSON.stringify(d,l)}`),J.addFailedEvent({key:f,error:N}),N}})}var _l=i=>xe((t,e)=>function(r,o){return A(this,null,function*(){let s=this._plugins.get(r);if(!s)throw this._log.error(`plugin ${String(r)} is not found`),new oe({code:se.OPERATION_ABORT,message:`plugin ${String(r)} is not found`,fnName:e});if(Xe(s.constructor.isSupported)&&!s.constructor.isSupported())throw this._log.error(`plugin ${String(r)} is not supported`),new oe({code:se.ENV_NOT_SUPPORTED,message:`plugin ${String(r)} is not supported`,extraCode:5210,fnName:e});return El.call(this,s.getValidateRule(i),[o],e,"TRTC"),t.call(this,s,o)})});var Tl=0,cf,Yi=class Yi{constructor(t){this.core=t;m(this,"log");m(this,"customAudioReferenceMap",new Map);m(this,"audioRefId",0);m(this,"audioContext",qe());m(this,"localAudioWorkletNode");m(this,"screenAudioWorkletNode");m(this,"mixNode");m(this,"silentNode");Tl=Tl+1,this.log=t.log.createChild({id:`${this.getAlias()}${Tl}`}),this.log.info(`created id=${this.getAlias()}${Tl}`),this.installEvent()}static getStartValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack&&!t.room.audioManager.hasScreenAudioTrack)throw new oe({code:se.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return cf||(cf=this.doPreload(t)),cf}doPreload(t){return A(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield Gi(this.audioContext,r)}catch(o){this.log.error(`preload audioProcessor failed. ${o}`)}finally{URL.revokeObjectURL(r)}})}getName(){return Yi.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(t){switch(t){case"start":return Yi.getStartValidateRule(this.core);case"update":return Yi.updateValidateRule;case"stop":return Yi.stopValidateRule}}start(t){return A(this,null,function*(){var g,y,R,C;let{room:e}=this.core,{sdkAppId:r,userId:o,userSig:s,assetsPath:n=this.core.assetsPath,audioReference:a,processLevel:d,enableDump:l,isLocalAudioNeedAudioProcess:p=!0,isScreenAudioNeedAudioProcess:f=!1}=t;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=p,this.core.room.audioManager.isScreenAudioNeedAudioProcess=f,!n)throw new oe({code:se.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload(`${n}/audioProcessor-wasm.js`),p&&!this.localAudioWorkletNode){let{sign:N,status:k,timestamp:Q}=yield this.getAuthData(r,o,s);this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",r,o,Q,N,k,e)}if(f&&!this.screenAudioWorkletNode){let{sign:N,status:k,timestamp:Q}=yield this.getAuthData(r,o,s);this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",r,o,Q,N,k,e)}this.mixNode||(this.mixNode=this.audioContext.createGain(),this.mixNode.gain.value=1),this.silentNode||(this.silentNode=this.audioContext.createConstantSource(),this.silentNode.offset.setValueAtTime(0,this.audioContext.currentTime),this.silentNode.start()),(g=this.localAudioWorkletNode)==null||g.port.postMessage({type:"enable"}),(y=this.screenAudioWorkletNode)==null||y.port.postMessage({type:"enable"}),e.audioManager.addAudioProcessor(this.mixNode,this.silentNode,this.localAudioWorkletNode,this.screenAudioWorkletNode),O(a)||a.forEach(N=>{this.customAudioReferenceMap.set(N,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:N,refId:`o-${this.audioRefId++}`})}),O(d)||(R=this.localAudioWorkletNode)==null||R.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:d}}),O(l)||(C=this.localAudioWorkletNode)==null||C.port.postMessage({type:"dump",data:{enable:l}})})}update(t){return A(this,null,function*(){var s,n,a;let{audioReference:e,enableDump:r,processLevel:o}=t;O(e)||(this.customAudioReferenceMap.forEach((d,l)=>{this.customAudioReferenceMap.delete(l),this.core.room.audioManager.updateAudioReference({type:"remove",refId:d})}),e.forEach(d=>{this.customAudioReferenceMap.set(d,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:d,refId:`o-${this.audioRefId++}`})})),O(o)||(s=this.localAudioWorkletNode)==null||s.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:o}}),O(r)||((n=this.localAudioWorkletNode)==null||n.port.postMessage({type:"dump",data:{enable:r}}),(a=this.screenAudioWorkletNode)==null||a.port.postMessage({type:"dump",data:{enable:r}}))})}stop(){return A(this,null,function*(){var e,r;let{room:t}=this.core;(e=this.localAudioWorkletNode)==null||e.port.postMessage({type:"disable"}),(r=this.screenAudioWorkletNode)==null||r.port.postMessage({type:"disable"}),yield t.audioManager.removeAudioProcessor(this.localAudioWorkletNode,this.screenAudioWorkletNode)})}destroy(){this.localAudioWorkletNode&&(this.localAudioWorkletNode.port.onmessage=null),this.screenAudioWorkletNode&&(this.screenAudioWorkletNode.port.onmessage=null),this.uninstallEvent()}getAuthData(t,e,r){return A(this,null,function*(){let o=String(Date.now()).slice(0,-3),{auth:s,sign:n,status:a,message:d}=yield $R({sdkAppId:t,userSig:r,userId:e,timestamp:o});if(!s)throw this.log.info(`audioProcessor: ${e} auth result: ${s}. Message: ${d}`),new oe({code:se.INVALID_PARAMETER,message:d});return{sign:n,status:a,timestamp:o}})}initWorkletNode(t,e,r,o,s,n,a,d){t.port.postMessage({type:"init",data:{sdkAppId:String(r),userId:o,timestamp:s,sign:n,status:a}}),t.port.onmessage=l=>{var f;let{data:p}=l;switch(p.type){case"cost":let g=(p==null?void 0:p.value)>10?"info":"debug";this.log[g](`${e==="localAudio"?"":`[${e}] `}avg cost: ${p.value} max: ${p==null?void 0:p.max}(${Zs(new Date(p==null?void 0:p.maxCostTimestamp))}) hist: ${(f=p==null?void 0:p.hist)==null?void 0:f.join(" ")}`);return;case"log":this.log[p.logLevel](`${e==="localAudio"?"":`[${e}] `}${p.value}`);return;case"dump":U.emit("265",{room:d,data:p.value,type:e==="localAudio"?"dump":"dump-screen-audio"});return}}}handleLocalAudioStarted(t){return A(this,null,function*(){var e;if(!(!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0))try{yield this.core.trtc.startPlugin("AudioProcessor",{sdkAppId:this.core.room.sdkAppId,userId:this.core.room.userId,userSig:this.core.room.userSig}),this.log.warn("audio processor auto start success")}catch(r){this.log.warn(`audio processor auto start failed, error: ${r}`)}})}handleLocalAudioStopped(t){return A(this,null,function*(){var e;!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0||(yield this.core.trtc.stopPlugin("AudioProcessor"))})}installEvent(){this.core.innerEmitter.on("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.on("114",this.handleLocalAudioStopped,this)}uninstallEvent(){this.core.innerEmitter.off("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.off("114",this.handleLocalAudioStopped,this)}hitTest(t){return t===this.core.room}};m(Yi,"updateValidateRule",{type:"object"}),m(Yi,"stopValidateRule",{type:"object"}),m(Yi,"Name","AudioProcessor");var Il=Yi;function BR(i,t=M.MAIN){return`https://${fi[t]||fl(i,t)}/api/v1/audioAiAuth`}function $R(o){return A(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let n=`${BR(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}&timestamp=${r}`,a=yield fetch(n),{data:{errCode:d,errMsg:l,sign:p,status:f}}=yield a.json();if(f==="1")return{auth:!0,sign:p,status:f,message:l};let g=Rr(i)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",y="Init RTCAudioProcessor failed.",R="";switch(d){case 1:R="Please check your params.";break;case 2:R=`You need to buy packages. Refer to: ${g}`;break;case 3:R="Server is invalid. Please contact our engineer. ";break;case 4:R=`Your packages is not active. Refer to: ${g}`;break;case 5:R=`Your packages is expired. Refer to: ${g}`;break;case 6:R="Your version is not supported.";break}return{auth:!1,status:f,message:l?`${y} Reason: ${l}. ${R}`:`${y}, ${R}`}})}var Sl=0,df=class{constructor(t,e){m(this,"audioObjectURL");m(this,"player");m(this,"publisher");m(this,"mixInput");this.mixInput=new On(e),t.url?(this.player=new Audio(t.url),this.player.crossOrigin="anonymous",this.publisher=new Audio(t.url),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher)):this.mixInput.replaceSource(t.track),this.mixInput.connect()}updateSettings(t){this.player&&(O(t.volume)||(this.volume=t.volume),O(t.loop)||(this.loop=t.loop),O(t.playbackRate)||(this.playbackRate=t.playbackRate))}updateListener(t){if(this.player){if(t.onDurationChange){let{onDurationChange:e}=t;this.player.ondurationchange=r=>{e(r.target.duration)}}if(t.onTimeUpdate){let e=t.onTimeUpdate,{player:r}=this;r.ontimeupdate=()=>{e(r.currentTime,r.duration)}}t.onEnded&&(this.player.onended=t.onEnded)}}reload(t){return A(this,null,function*(){if(t.url){let e=yield Mc.download(t.url,{retries:3,type:"blob"});this.audioObjectURL&&URL.revokeObjectURL(this.audioObjectURL),this.audioObjectURL=URL.createObjectURL(e),this.player&&this.publisher?(this.player.src=this.audioObjectURL,this.publisher.src=this.audioObjectURL):(this.player=new Audio(this.audioObjectURL),this.player.crossOrigin="anonymous",this.publisher=new Audio(this.audioObjectURL),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher),this.updateListener(t),this.updateSettings(t))}else this.mixInput.replaceSource(t.track)})}reset(){this.seek(0),this.mixInput.connect()}seek(t){this.player&&(t<0&&t>this.player.duration||(this.player.currentTime=t,this.publisher.currentTime=t))}play(){var t,e;return Promise.all([(t=this.player)==null?void 0:t.play(),(e=this.publisher)==null?void 0:e.play()])}pause(){var t,e;(t=this.player)==null||t.pause(),(e=this.publisher)==null||e.pause()}stop(){var t;(t=this.player)==null||t.pause(),this.mixInput.disconnect()}setOperation(t){t==="pause"&&this.pause(),t==="resume"&&(this.pause(),this.play()),t==="stop"&&(this.pause(),this.seek(0))}set volume(t){!this.player||!this.publisher||(this.player.volume=t,this.publisher.volume=t)}set loop(t){!this.player||!this.publisher||(this.player.loop=t,this.publisher.loop=t)}set playbackRate(t){!this.player||!this.publisher||(this.player.playbackRate=t,this.publisher.playbackRate=t)}};function Xn(i,t){if(t&&typeof t!="function")throw new oe({code:se.INVALID_PARAMETER,message:`start audioMixer plugin: param ${i} should be a function.`})}var gi=class gi{constructor(t){this.core=t;m(this,"log");m(this,"mixedMusicMap",new Map);m(this,"cacheMusicMap",new Map);Sl=Sl+1,this.log=t.log.createChild({id:`${this.getAlias()}${Sl}`}),this.log.info(`created id=${this.getAlias()}${Sl}`)}getName(){return gi.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return gi.startValidateRule;case"update":return gi.updateValidateRule;case"stop":return gi.stopValidateRule}}start(t){return A(this,null,function*(){let{room:e}=this.core;this.core.validateSourceNode(),this.log.info(`add music source, id: ${t.id} url: ${t.url}, track: ${t.track}`);let{id:r,url:o}=t;if(this.mixedMusicMap.has(r))return;let s=this.cacheMusicMap.get(r);s?t.url?s.reset():(s.mixInput.replaceSource(t.track),s.mixInput.connect()):(s=new df(t,e.audioManager),this.cacheMusicMap.set(r,s)),s.updateListener(t),s.updateSettings(t);try{yield s.play()}catch(n){yield this.handleAutoPlayFailed(s,t,n)}this.mixedMusicMap.set(r,s),s.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"add",audioReference:s.mixInput.source.node,refId:`ax-${r}`}),this.log.info(`start mix audio track ${r} success.`),J.addEnum({key:502700,value:3}),this.kvUpload(t)})}handleAutoPlayFailed(t,e,r){return A(this,null,function*(){if(r.name==="NotSupportedError")this.log.error(`play failed, try to reload source. error: ${r}`),yield t.reload(e),yield t.play();else if(r.name==="NotAllowedError")if(this.core.room.enableAutoPlayDialog){let o=()=>{var s;(s=t.play())==null||s.finally(()=>{U.off("154",o,this)})};U.on("154",o,this),Dn()}else this.core.trtc.emit(ee.AUTOPLAY_FAILED,{userId:"",mediaType:"audio",resume:()=>A(this,null,function*(){return t.play()})});else throw r})}update(t){return A(this,null,function*(){let{id:e,operation:r,seekFrom:o,playbackRate:s}=t;this.log.info(`update music source, ${JSON.stringify(t)}`);let n=this.mixedMusicMap.get(e);if(!n){this.log.warn(`update music source failed, music id: ${e} not found.`);return}n.updateSettings(t),n.updateListener(t),O(r)||n.setOperation(r),O(o)||n.seek(o),this.kvUpload(t)})}stop(e){return A(this,arguments,function*({id:t}){if(this.mixedMusicMap.has(t)){this.log.info(`remove music source, music id: ${t}`);let r=this.mixedMusicMap.get(t);r!=null&&r.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:r.mixInput.source.node,refId:`ax-${t}`}),r==null||r.stop(),this.mixedMusicMap.delete(t)}t==="*"&&this.destroyAllMusic()})}kvUpload(t){let{track:e,loop:r,volume:o,playbackRate:s,operation:n,seekFrom:a,onTimeUpdate:d,onDurationChange:l,onEnded:p}=t;e&&J.addCount({key:502009}),r&&J.addCount({key:502001}),o&&J.addCount({key:502002}),s&&J.addCount({key:502003}),n&&J.addCount({key:502004}),a&&J.addCount({key:502005}),typeof d!="function"&&J.addCount({key:502007}),typeof p!="function"&&J.addCount({key:502008}),typeof l!="function"&&J.addCount({key:502006})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((t,e)=>{t!=null&&t.mixInput.track&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:t.mixInput.track,refId:e}),this.stop({id:e})})}destroyAllCache(){this.log.info("destroy all music cache."),this.cacheMusicMap.clear()}destroy(){this.log.info("destroy audio mixer plugin."),this.destroyAllMusic(),this.destroyAllCache()}};m(gi,"startValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},url:{type:"string",required:!1},track:{required:!1},loop:{type:"boolean"},volume:{type:"number"}},validate(t,e,r){if(t.url&&t.url!=="*"){let o=t.url.split("?")[0],s=["mp3","ogg","wav","flac"],n=o.split(".").pop(),a=s.indexOf(n)>=0,d=o.startsWith("blob"),l=o.startsWith("data");if(!(a||d||l))throw new oe({code:se.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:r})}if(!t.url&&!t.track)throw new oe({code:se.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:r});Xn("onTimeUpdate",t.onTimeUpdate),Xn("onEnded",t.onEnded),Xn("onDurationChange",t.onDurationChange)}}),m(gi,"updateValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},loop:{type:"boolean"},volume:{type:"number"},seekFrom:{type:"number"},operation:{type:"string",values:["pause","resume","stop"]}},validate(t,e,r){Xn("onTimeUpdate",t.onTimeUpdate),Xn("onEnded",t.onEnded),Xn("onDurationChange",t.onDurationChange)}}),m(gi,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),m(gi,"Name","AudioMixer");var yl=gi;var Al=0,uf,Zi=class Zi{constructor(t){this.core=t;m(this,"log");m(this,"audioContext",qe("denoiser"));m(this,"workletNode");m(this,"config",{enableFarFieldReduce:!1,farFieldReduceThreshold:.5});Al=Al+1,this.log=t.log.createChild({id:`${this.getAlias()}${Al}`}),this.log.info(`created id=${this.getAlias()}${Al}`)}static startValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0},mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack)throw new oe({code:se.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return uf||(uf=this.doPreload(t)),uf}doPreload(t){return A(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield Gi(this.audioContext,r)}catch(o){throw this.log.error("load worklet failed",o),o}finally{URL.revokeObjectURL(r)}})}getName(){return Zi.Name}getAlias(){return"ad"}getGroup(){return"AIDenoiser"}getValidateRule(t){switch(t){case"start":return Zi.startValidateRule(this.core);case"update":return Zi.updateValidateRule;case"stop":return Zi.stopValidateRule}}start(t){return A(this,null,function*(){let{room:e,schedule:r}=this.core,{assetsPath:o=this.core.assetsPath}=t;if(!o)throw new oe({code:se.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload(`${o}/denoiser-wasm${Sh()?"":"-nosimd"}.js`),!this.workletNode){let s=String(Date.now()).slice(0,-3),{auth:n,sign:a,status:d,message:l}=yield WR(r,Ee(Y({},t),{timestamp:s}));if(!n)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${n}. Message: ${l}`),new oe({code:se.INVALID_PARAMETER,message:l});this.workletNode=new AudioWorkletNode(this.audioContext,"trtc-denoiser-processor",{numberOfInputs:1,numberOfOutputs:1}),this.workletNode.port.postMessage({type:"init",data:{sdkAppId:String(t.sdkAppId),userId:t.userId,timestamp:s,sign:a,status:d}}),this.workletNode.port.onmessage=p=>{var g;let{data:f}=p;if(f.type==="cost"){let y=(f==null?void 0:f.max)>20?"warn":(f==null?void 0:f.max)>10?"info":"debug";this.log[y](`avg cost: ${f.value} max: ${f==null?void 0:f.max}(${Zs(new Date(f==null?void 0:f.maxCostTimestamp))}) hist: ${(g=f==null?void 0:f.hist)==null?void 0:g.join(" ")}`)}else f.type==="log"&&this.log[f.logLevel](`${f.value}`)}}this.updateConfig(t),this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(t){return A(this,null,function*(){this.updateConfig(t)})}stop(){return A(this,null,function*(){if(!this.workletNode)return;let{room:t}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield t.audioManager.removeDenoiser(this.workletNode)})}updateConfig(t){if(!this.workletNode)return;let e=!1;O(t.mode)||(t.mode===0?this.config.enableFarFieldReduce=!1:t.mode===1&&(this.config.enableFarFieldReduce=!0),e=!0),O(t.farFieldReduceThreshold)||(this.config.farFieldReduceThreshold=t.farFieldReduceThreshold,e=!0),e&&this.workletNode.port.postMessage({type:"setConfig",data:this.config})}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};m(Zi,"updateValidateRule",{type:"object",properties:{mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}}}),m(Zi,"stopValidateRule",{type:"object"}),m(Zi,"Name","AIDenoiser");var bl=Zi;function WR(s,n){return A(this,arguments,function*(i,{sdkAppId:t,userId:e,userSig:r,timestamp:o}){try{let{data:{errCode:a,errMsg:d,sign:l,status:p}}=yield i.getAbilityConfig(t,i.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:t,userId:e,userSig:r,timestamp:o});if(p==="1")return{auth:!0,sign:l,status:p,message:d};let f=Rr(t)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",g="Init RTCAIDenoiser failed.",y="";switch(a){case 1:y="Please check your params.";break;case 2:y=`You need to buy packages. Refer to: ${f}`;break;case 3:y="Server is invalid. Please contact our engineer. ";break;case 4:y=`Your packages is not active. Refer to: ${f}`;break;case 5:y=`Your packages is expired. Refer to: ${f}`;break;case 6:y="Your version is not supported.";break}return{auth:!1,status:p,message:d?`${g} Reason: ${d}. ${y}`:`${g}, ${y}`}}catch(a){return{auth:!1,status:"0",message:`Init RTCAIDenoiser failed. All requests failed. ${a}`}}})}var IT=Ai(ki(),1);var lf=class extends IT.EventEmitter{constructor(){super();m(this,"observer");m(this,"state","nominal");this.onPressureChange=this.onPressureChange.bind(this)}get stateNum(){switch(this.state){case"nominal":return 1;case"fair":return 2;case"serious":return 3;case"critical":return 4}}start(){return A(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!nt&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){je.uploadEvent({log:"stat-pressure-detector-start-failed",error:e})}})}onPressureChange(e){let r=this.stateNum,o=e[e.length-1];this.state=o.state,(this.stateNum>3||r>3)&&F.info(`${o.source}: ${o.state}`),this.emit("state-changed",{type:o.source,state:this.state})}destroy(){var e;try{(e=this.observer)==null||e.disconnect(),this.observer=null}catch(r){je.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:r})}}},GR=new lf,mf=GR;function jR([i,t]){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,i);for(let a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new Ds(new DataView(new Uint8Array(s).buffer),!0)}function qR(i){return i.type==="empty"||i.data.byteLength===0}function zR(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function JR(i){let t=0,e=0,r=new DataView(i);for(let o=0;o<i.byteLength;o++)switch(r.getUint8(o)){case 0:t++;break;case 1:(t===2||t===3)&&e++,t=0;break;default:t=0;break}return e}function hf({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let r=9-JR(i.data);if(r<=0)return i;let o=t.splice(0,r).reverse().map(jR),s=o.reduce((p,f)=>p+f.dataView.byteLength,0),n=new ArrayBuffer(s+i.data.byteLength),a=new DataView(n),d=new DataView(i.data),l=0;for(let p=0;p<o.length;p++)for(let f=0;f<o[p].dataView.byteLength;f++)a.setInt8(l++,o[p].dataView.getInt8(f));for(let p=0;p<i.data.byteLength;p++)a.setInt8(l++,d.getInt8(p));return i.data=n,i}function pf({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(qR(i)||!zR(e))return i;let r=[],o=0,s=-1,n=-1;for(let a=0;a<i.data.byteLength;a++){let d=e.getUint8(a);if(d===0)o++;else if(d===1){if(o===2||o===3){let l=a-o;if(s===-1?s=l:n===-1&&(n=l,r.push(new Ds(new DataView(e.buffer.slice(s,n)))),s=l,n=-1),!(e.getUint8(a+1)===6)){i.data=e.buffer.slice(l);break}}o=0}else o=0}t==null||t(r.reverse())}catch(e){}return i}var ff=0,xc=class xc{constructor(t){this.core=t;m(this,"log");m(this,"_seiMessageList",[]);m(this,"_smallSeiMessageList",[]);m(this,"_subStreamSeiMessageList",[]);ff++,this.log=t.log.createChild({id:`${this.getAlias()}${ff}`}),this.log.info(`[sei] created id=${this.getAlias()}${ff}`),this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode({frame:t,mediaType:e}){try{let r=e===8?this._smallSeiMessageList:e===2?this._subStreamSeiMessageList:this._seiMessageList;return hf({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return pf({frame:t,onSEI:r=>{r.forEach(o=>{this.core.trtc.emit(ee.SEI_MESSAGE,{seiPayloadType:o.seiPayloadType,data:o.seiPayload.buffer,userId:e.userId,streamType:e.mediaType===2?"sub":"main"})})}})}destroy(){this.log.debug("destory"),this.stop(),delete this.core}getValidateRule(t){switch(t){case"start":return{type:"object"};case"update":return{type:"object"};case"stop":return{type:"object"}}}start(){this.core.room.videoManager.addEncodeProcessor({processor:_s?this.encode:hf,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:_s?this.decode:pf,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update({buffer:t,options:e}){var s;let r=[e.seiPayloadType,t],o=!!e.small;e.toSubStream?this._subStreamSeiMessageList.push(r):(this._seiMessageList.push(r),o&&this._smallSeiMessageList.push(r)),(s=this.core.room.scriptTransformWorker)==null||s.postMessage({type:"sei",data:r,isMain:!e.toSubStream,small:o})}getName(){return xc.Name}getAlias(){return"sei"}getGroup(){return"sei"}};m(xc,"autoStart",!0),m(xc,"Name","SEI");var Rl=xc;function gf({frame:i,onDump:t}){return t==null||t(),i}function Ef({frame:i,onDump:t}){return t==null||t(),i}var ST={"play() error: NotAllowedError:":{tips:i=>i.includes("main <video>")||i.includes("main <audio>")?"Remote stream auto play is restricted and playback fails":"Local stream playback failure, generally only occurs in Android WeChat devices, no need to handle",color:"red",class:"red"},"updateStream() try to recover local stream":{tips:"Device acquisition exception, automatic recovery is in progress"},"updateStream() recover local stream successfully":{tips:"Device acquisition exception, automatic recovery is successful"},"updateStream() failed to recover local stream":{tips:"Device acquisition exception, automatic recovery failed"},"main stream - video track is muted":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is muted":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is muted":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unable to provide media output":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is unable to provide media output":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is unable to provide media output":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unmuted":{tips:"Received enough playback video data"},"main stream - audio track is unmuted":{tips:"Received enough playback audio data"},"auxiliary stream - video track is unmuted":{tips:"Received enough playback screen sharing data"},"main stream - audio player track is ended":{tips:"Remote audio track stopped"},"main stream - video player track is ended":{tips:"Remote video track stopped"},"auxiliary stream - video player track is ended":{tips:"Received enough playback screen sharing data"},"stream - video track is muted":{tips:"Camera capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"stream - video track is unable to provide media output":{tips:"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked, and the customer needs to re-acquire. SDK v4.11.4+ will automatically resume acquisition without customer intervention",color:"orange"},"video track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"stream - audio track is muted":{tips:"Microphone capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"audio track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"Microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio track is unable to provide media output":{tips:"The microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"is adding audio track to current published local stream":{tips:"add audio track",color:"orange"},"is removing audio track from current published local stream":{tips:"remove audio track",color:"orange"},"is removing video track from current published local stream":{tips:"remove video track",color:"orange"},"is adding video track to current published local stream":{tips:"add video track",color:"orange"},"is replacing audio track to current published local main stream":{tips:"replace audio track",color:"orange"},"is replacing video track to current published local main stream":{tips:"replace video track",color:"orange"},"downlink network quality change":{tips:"Downstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"uplink network quality change":{tips:"Upstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"localStream mute video":{tips:"mute upstream video stream",color:"orange"},"localStream unmute video":{tips:"unmute upstream video stream",color:"orange"},"localStream mute audio":{tips:"mute upstream audio stream",color:"orange"},"localStream unmute audio":{tips:"unmute upstream audio stream",color:"orange"},"black detected":{tips:"Detect black screen, which means fps = 0. It is usually caused by network, and the network will be recovered after a while. If the network is normal but has not been restored, it is an abnormal situation."},'main stream start to play with options: {"muted":true}':{tips:"Play the remote stream in silent mode. Generally, the remote stream does not need to be played in silent mode. You need to confirm whether the parameters passed in the client stream.play API call are correct.",color:"orange"},"main stream - audio player is starting playing":{tips:"Remote stream audio playback success",color:"#0dd90d",class:"success"},"main stream - video player is starting playing":{tips:"Remote stream video playback success",color:"#0dd90d",class:"success"},"video player is playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"audio player is playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"stream - video player is starting playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"stream - audio player is starting playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"switch camera success":{tips:"Switch camera success",color:"#0dd90d",class:"success"},"switch microphone success":{tips:"Switch microphone success",color:"#0dd90d",class:"success"},gotStream:{tips:"Local stream capture success"},"local stream is published successfully":{tips:"Publish success",color:"#0dd90d",class:"success"},"encoderImplementation change to OpenH264":{tips:"Use software encoding"},"encoderImplementation change to ExternalEncoder":{tips:"Use hardware encoding"},"getUserMedia with constraints":{tips:"Start media (camera/microphone) capture"},"getDisplayMedia with constraints":{tips:"Start screen sharing capture"},"client-banned":{tips:"Kicked out of the room",color:"red",class:"red",textColor:"#fff"},user_timeout:{tips:"The backend is too long without receiving SDK heartbeat, which is usually caused by the JS thread being blocked for a long time. If the reproduction probability is high, the application browser Performance tool analyzes where the JS thread is blocked.",color:"red",class:"red",textColor:"#fff"},"schedule failed":{tips:"Signaling request failed, does not affect the normal room entry process, SDK will connect to the default signaling domain."},"updateStream() video flag is true, but no camera detected, set video to false":{tips:"When trying to resume camera acquisition, the camera acquisition is not resumed because it is detected that there is no camera.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to bandwidth":{tips:"bandwidth estimation is not enough to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to cpu":{tips:"cpu load is too high to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: hidden":{tips:"User page switched to backend, in mobile devices, this will cause the device to pause the capture, and it will be restored when the user switches backend to the frontend.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: visible":{tips:"User page switched to frontend",color:"orange",class:"orange",textColor:"#fff"},"main stream - audio player is paused":{tips:`The remote stream audio playback is paused, which usually has two possibilities:
99
+ ${o.stack}`),!1}},i};var Jn=new WeakMap;function pT(i){let t=Jn.get(i);t&&(t.forEach(e=>clearTimeout(e)),Jn.delete(i))}function fT(i,t){return xe((e,r)=>function(...o){let s=Jn.get(this);s||(s=new Map,Jn.set(this,s));let n=t(...o),a=s.get(n);if(!a||a<=0){e.apply(this,o);let d=setTimeout(()=>{var l;(l=Jn.get(this))==null||l.delete(n)},i);s.set(n,d)}else{clearTimeout(a);let d=window.setTimeout(()=>{var l;e.apply(this,o),(l=Jn.get(this))==null||l.delete(n)},i);s.set(n,d)}})}var ET="trtc-sdk-v5",nf="5.14.0-wasm.7";function Ht(...i){return xe((t,e)=>function(...r){try{_l.call(this,i,r,e,this._name)}catch(o){return Promise.reject(o)}return t.apply(this,r)})}function af(...i){return xe((t,e)=>function(...r){try{_l.call(this,i,r,e,this._name)}catch(o){throw o}return t.apply(this,r)})}function _l(i,t,e,r){if(ut(i))for(let o=0;o<i.length;o++)El.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else El.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function El({rule:i,value:t,key:e,fnName:r,className:o}){function s(d){return{code:se.INVALID_PARAMETER,extraCode:d,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(O(t)){if(i.required)throw new oe(s(5001));if(O(i.defaultValue)){Xe(i.validate)&&i.validate.call(this,t,e,r,o,this);return}t=i.defaultValue}if(Array.isArray(i.type)){let d=!1;for(let l=0;l<i.type.length;l++)i.type[l]===null&&t===null&&(d=!0),Xe(i.type[l])&&t instanceof i.type[l]&&(d=!0),we(i.type[l])&&pt(t)===i.type[l].toLowerCase()&&(d=!0);if(!d)throw new oe({code:se.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(l=>ss(l)?cn(l):we(l)?l:pt(l))},value:t}})}else if(!O(i.type)&&pt(t)!==i.type)throw new oe(s(5002));if(i.allowEmpty===!1){let d=Ve(t)&&(t===0||Number.isNaN(t)),l=we(t)&&t.trim()==="";if(d||l)throw new oe(s(5003))}if(i.notLessThanZero&&Ve(t)&&t<0)throw new oe(s(5006));if(!O(i.min)&&Ve(t)&&t<i.min)throw new oe(s(5007));if(!O(i.max)&&Ve(t)&&t>i.max)throw new oe(s(5008));if(we(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new oe(s(5004))}else if(Xe(i.instanceOf)&&!(t instanceof i.instanceOf))throw new oe(s(5004));if(Array.isArray(i.values)&&!i.values.includes(t))throw new oe(s(5005));let{properties:n}=i;Xt(n)&&hr(t)&&Object.keys(n).forEach(d=>{El.call(this,{rule:n[d],value:t&&t[d],key:`${d}`,fnName:r,className:o})});let{arrayItem:a}=i;Xt(a)&&ut(t)&&t.forEach((d,l)=>{El.call(this,{rule:a,value:d,key:`${e}[${l}]`,fnName:r,className:o})}),Xe(i.validate)&&i.validate.call(this,t,e,r,o,this)}function st(i={}){let{getRemoteId:t=()=>"",replaceArg:e,getKVReportKey:r,ignoreLog:o,ignoreErrorLog:s}=i;return xe((n,a)=>function(...d){var y,R,C;function l(N,k,Q){if(Q&&Q.includes(N))return"hided";if(e){let H=e(...d);if(d[H.argIndex]===k)return H.value}if(k===d||N in d)return k;try{return k instanceof HTMLElement?`id: ${k.id} type:${pt(k)}`:k instanceof MediaStreamTrack?Od(k):(JSON.stringify(k),k)}catch(H){return`type:${pt(k)}`}}let p=this._log||F;if(o!=null&&o(...d))return n.apply(this,d);d.length>0?p.info(`${a}() ${JSON.stringify(d,(N,k)=>l(N,k,["userSig","privateMapKey"]))}`):p.info(`${a}()`);let f=r?r(...d):lu[a],g=(s==null?void 0:s(...d))||!1;try{let N=n.apply(this,d),k=_e();if(po(N)){let Q=`${a.includes("Plugin")?`${((R=(y=d[0]).getName)==null?void 0:R.call(y))||""} `:" "}`;return N.then(H=>(p.info(`${a}() success ${Q}${t.call(this,...d)}`),J.addSuccessEvent({key:f,cost:_e()-k}),H)).catch(H=>{var W;H=oe.convertFrom.call(this,H,a,d.length===1?d[0]:d);let Ie=H.extraCode||H.code,Je=(W=H.message)!=null&&W.includes(Ie)?"":` code:${Ie}`;throw g||p.error(`${a}() failed ${Q}${t.call(this,...d)} ${H}${Je} params: ${JSON.stringify(d,l)}`),J.addFailedEvent({key:f,error:H}),H})}return J.addSuccessEvent({key:f}),N}catch(N){N=oe.convertFrom.call(this,N,a);let k=N.extraCode||N.code,Q=(C=N.message)!=null&&C.includes(k)?"":` code:${k}`;throw g||p.error(`${a}() failed ${N}${Q} params: ${JSON.stringify(d,l)}`),J.addFailedEvent({key:f,error:N}),N}})}var Tl=i=>xe((t,e)=>function(r,o){return A(this,null,function*(){let s=this._plugins.get(r);if(!s)throw this._log.error(`plugin ${String(r)} is not found`),new oe({code:se.OPERATION_ABORT,message:`plugin ${String(r)} is not found`,fnName:e});if(Xe(s.constructor.isSupported)&&!s.constructor.isSupported())throw this._log.error(`plugin ${String(r)} is not supported`),new oe({code:se.ENV_NOT_SUPPORTED,message:`plugin ${String(r)} is not supported`,extraCode:5210,fnName:e});return _l.call(this,s.getValidateRule(i),[o],e,"TRTC"),t.call(this,s,o)})});var Il=0,cf,Yi=class Yi{constructor(t){this.core=t;m(this,"log");m(this,"customAudioReferenceMap",new Map);m(this,"audioRefId",0);m(this,"audioContext",qe());m(this,"localAudioWorkletNode");m(this,"screenAudioWorkletNode");m(this,"mixNode");m(this,"silentNode");Il=Il+1,this.log=t.log.createChild({id:`${this.getAlias()}${Il}`}),this.log.info(`created id=${this.getAlias()}${Il}`),this.installEvent()}static getStartValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack&&!t.room.audioManager.hasScreenAudioTrack)throw new oe({code:se.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return cf||(cf=this.doPreload(t)),cf}doPreload(t){return A(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield Gi(this.audioContext,r)}catch(o){this.log.error(`preload audioProcessor failed. ${o}`)}finally{URL.revokeObjectURL(r)}})}getName(){return Yi.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(t){switch(t){case"start":return Yi.getStartValidateRule(this.core);case"update":return Yi.updateValidateRule;case"stop":return Yi.stopValidateRule}}start(t){return A(this,null,function*(){var g,y,R,C;let{room:e}=this.core,{sdkAppId:r,userId:o,userSig:s,assetsPath:n=this.core.assetsPath,audioReference:a,processLevel:d,enableDump:l,isLocalAudioNeedAudioProcess:p=!0,isScreenAudioNeedAudioProcess:f=!1}=t;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=p,this.core.room.audioManager.isScreenAudioNeedAudioProcess=f,!n)throw new oe({code:se.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload(`${n}/audioProcessor-wasm.js`),p&&!this.localAudioWorkletNode){let{sign:N,status:k,timestamp:Q}=yield this.getAuthData(r,o,s);this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",r,o,Q,N,k,e)}if(f&&!this.screenAudioWorkletNode){let{sign:N,status:k,timestamp:Q}=yield this.getAuthData(r,o,s);this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",r,o,Q,N,k,e)}this.mixNode||(this.mixNode=this.audioContext.createGain(),this.mixNode.gain.value=1),this.silentNode||(this.silentNode=this.audioContext.createConstantSource(),this.silentNode.offset.setValueAtTime(0,this.audioContext.currentTime),this.silentNode.start()),(g=this.localAudioWorkletNode)==null||g.port.postMessage({type:"enable"}),(y=this.screenAudioWorkletNode)==null||y.port.postMessage({type:"enable"}),e.audioManager.addAudioProcessor(this.mixNode,this.silentNode,this.localAudioWorkletNode,this.screenAudioWorkletNode),O(a)||a.forEach(N=>{this.customAudioReferenceMap.set(N,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:N,refId:`o-${this.audioRefId++}`})}),O(d)||(R=this.localAudioWorkletNode)==null||R.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:d}}),O(l)||(C=this.localAudioWorkletNode)==null||C.port.postMessage({type:"dump",data:{enable:l}})})}update(t){return A(this,null,function*(){var s,n,a;let{audioReference:e,enableDump:r,processLevel:o}=t;O(e)||(this.customAudioReferenceMap.forEach((d,l)=>{this.customAudioReferenceMap.delete(l),this.core.room.audioManager.updateAudioReference({type:"remove",refId:d})}),e.forEach(d=>{this.customAudioReferenceMap.set(d,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:d,refId:`o-${this.audioRefId++}`})})),O(o)||(s=this.localAudioWorkletNode)==null||s.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:o}}),O(r)||((n=this.localAudioWorkletNode)==null||n.port.postMessage({type:"dump",data:{enable:r}}),(a=this.screenAudioWorkletNode)==null||a.port.postMessage({type:"dump",data:{enable:r}}))})}stop(){return A(this,null,function*(){var e,r;let{room:t}=this.core;(e=this.localAudioWorkletNode)==null||e.port.postMessage({type:"disable"}),(r=this.screenAudioWorkletNode)==null||r.port.postMessage({type:"disable"}),yield t.audioManager.removeAudioProcessor(this.localAudioWorkletNode,this.screenAudioWorkletNode)})}destroy(){this.localAudioWorkletNode&&(this.localAudioWorkletNode.port.onmessage=null),this.screenAudioWorkletNode&&(this.screenAudioWorkletNode.port.onmessage=null),this.uninstallEvent()}getAuthData(t,e,r){return A(this,null,function*(){let o=String(Date.now()).slice(0,-3),{auth:s,sign:n,status:a,message:d}=yield $R({sdkAppId:t,userSig:r,userId:e,timestamp:o});if(!s)throw this.log.info(`audioProcessor: ${e} auth result: ${s}. Message: ${d}`),new oe({code:se.INVALID_PARAMETER,message:d});return{sign:n,status:a,timestamp:o}})}initWorkletNode(t,e,r,o,s,n,a,d){t.port.postMessage({type:"init",data:{sdkAppId:String(r),userId:o,timestamp:s,sign:n,status:a}}),t.port.onmessage=l=>{var f;let{data:p}=l;switch(p.type){case"cost":let g=(p==null?void 0:p.value)>10?"info":"debug";this.log[g](`${e==="localAudio"?"":`[${e}] `}avg cost: ${p.value} max: ${p==null?void 0:p.max}(${Zs(new Date(p==null?void 0:p.maxCostTimestamp))}) hist: ${(f=p==null?void 0:p.hist)==null?void 0:f.join(" ")}`);return;case"log":this.log[p.logLevel](`${e==="localAudio"?"":`[${e}] `}${p.value}`);return;case"dump":U.emit("265",{room:d,data:p.value,type:e==="localAudio"?"dump":"dump-screen-audio"});return}}}handleLocalAudioStarted(t){return A(this,null,function*(){var e;if(!(!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0))try{yield this.core.trtc.startPlugin("AudioProcessor",{sdkAppId:this.core.room.sdkAppId,userId:this.core.room.userId,userSig:this.core.room.userSig}),this.log.warn("audio processor auto start success")}catch(r){this.log.warn(`audio processor auto start failed, error: ${r}`)}})}handleLocalAudioStopped(t){return A(this,null,function*(){var e;!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0||(yield this.core.trtc.stopPlugin("AudioProcessor"))})}installEvent(){this.core.innerEmitter.on("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.on("114",this.handleLocalAudioStopped,this)}uninstallEvent(){this.core.innerEmitter.off("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.off("114",this.handleLocalAudioStopped,this)}hitTest(t){return t===this.core.room}};m(Yi,"updateValidateRule",{type:"object"}),m(Yi,"stopValidateRule",{type:"object"}),m(Yi,"Name","AudioProcessor");var Sl=Yi;function BR(i,t=M.MAIN){return`https://${gi[t]||gl(i,t)}/api/v1/audioAiAuth`}function $R(o){return A(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let n=`${BR(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}&timestamp=${r}`,a=yield fetch(n),{data:{errCode:d,errMsg:l,sign:p,status:f}}=yield a.json();if(f==="1")return{auth:!0,sign:p,status:f,message:l};let g=Rr(i)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",y="Init RTCAudioProcessor failed.",R="";switch(d){case 1:R="Please check your params.";break;case 2:R=`You need to buy packages. Refer to: ${g}`;break;case 3:R="Server is invalid. Please contact our engineer. ";break;case 4:R=`Your packages is not active. Refer to: ${g}`;break;case 5:R=`Your packages is expired. Refer to: ${g}`;break;case 6:R="Your version is not supported.";break}return{auth:!1,status:f,message:l?`${y} Reason: ${l}. ${R}`:`${y}, ${R}`}})}var yl=0,df=class{constructor(t,e){m(this,"audioObjectURL");m(this,"player");m(this,"publisher");m(this,"mixInput");this.mixInput=new On(e),t.url?(this.player=new Audio(t.url),this.player.crossOrigin="anonymous",this.publisher=new Audio(t.url),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher)):this.mixInput.replaceSource(t.track),this.mixInput.connect()}updateSettings(t){this.player&&(O(t.volume)||(this.volume=t.volume),O(t.loop)||(this.loop=t.loop),O(t.playbackRate)||(this.playbackRate=t.playbackRate))}updateListener(t){if(this.player){if(t.onDurationChange){let{onDurationChange:e}=t;this.player.ondurationchange=r=>{e(r.target.duration)}}if(t.onTimeUpdate){let e=t.onTimeUpdate,{player:r}=this;r.ontimeupdate=()=>{e(r.currentTime,r.duration)}}t.onEnded&&(this.player.onended=t.onEnded)}}reload(t){return A(this,null,function*(){if(t.url){let e=yield Mc.download(t.url,{retries:3,type:"blob"});this.audioObjectURL&&URL.revokeObjectURL(this.audioObjectURL),this.audioObjectURL=URL.createObjectURL(e),this.player&&this.publisher?(this.player.src=this.audioObjectURL,this.publisher.src=this.audioObjectURL):(this.player=new Audio(this.audioObjectURL),this.player.crossOrigin="anonymous",this.publisher=new Audio(this.audioObjectURL),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher),this.updateListener(t),this.updateSettings(t))}else this.mixInput.replaceSource(t.track)})}reset(){this.seek(0),this.mixInput.connect()}seek(t){this.player&&(t<0&&t>this.player.duration||(this.player.currentTime=t,this.publisher.currentTime=t))}play(){var t,e;return Promise.all([(t=this.player)==null?void 0:t.play(),(e=this.publisher)==null?void 0:e.play()])}pause(){var t,e;(t=this.player)==null||t.pause(),(e=this.publisher)==null||e.pause()}stop(){var t;(t=this.player)==null||t.pause(),this.mixInput.disconnect()}setOperation(t){t==="pause"&&this.pause(),t==="resume"&&(this.pause(),this.play()),t==="stop"&&(this.pause(),this.seek(0))}set volume(t){!this.player||!this.publisher||(this.player.volume=t,this.publisher.volume=t)}set loop(t){!this.player||!this.publisher||(this.player.loop=t,this.publisher.loop=t)}set playbackRate(t){!this.player||!this.publisher||(this.player.playbackRate=t,this.publisher.playbackRate=t)}};function Xn(i,t){if(t&&typeof t!="function")throw new oe({code:se.INVALID_PARAMETER,message:`start audioMixer plugin: param ${i} should be a function.`})}var Ei=class Ei{constructor(t){this.core=t;m(this,"log");m(this,"mixedMusicMap",new Map);m(this,"cacheMusicMap",new Map);yl=yl+1,this.log=t.log.createChild({id:`${this.getAlias()}${yl}`}),this.log.info(`created id=${this.getAlias()}${yl}`)}getName(){return Ei.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return Ei.startValidateRule;case"update":return Ei.updateValidateRule;case"stop":return Ei.stopValidateRule}}start(t){return A(this,null,function*(){let{room:e}=this.core;this.core.validateSourceNode(),this.log.info(`add music source, id: ${t.id} url: ${t.url}, track: ${t.track}`);let{id:r,url:o}=t;if(this.mixedMusicMap.has(r))return;let s=this.cacheMusicMap.get(r);s?t.url?s.reset():(s.mixInput.replaceSource(t.track),s.mixInput.connect()):(s=new df(t,e.audioManager),this.cacheMusicMap.set(r,s)),s.updateListener(t),s.updateSettings(t);try{yield s.play()}catch(n){yield this.handleAutoPlayFailed(s,t,n)}this.mixedMusicMap.set(r,s),s.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"add",audioReference:s.mixInput.source.node,refId:`ax-${r}`}),this.log.info(`start mix audio track ${r} success.`),J.addEnum({key:502700,value:3}),this.kvUpload(t)})}handleAutoPlayFailed(t,e,r){return A(this,null,function*(){if(r.name==="NotSupportedError")this.log.error(`play failed, try to reload source. error: ${r}`),yield t.reload(e),yield t.play();else if(r.name==="NotAllowedError")if(this.core.room.enableAutoPlayDialog){let o=()=>{var s;(s=t.play())==null||s.finally(()=>{U.off("154",o,this)})};U.on("154",o,this),Dn()}else this.core.trtc.emit(ee.AUTOPLAY_FAILED,{userId:"",mediaType:"audio",resume:()=>A(this,null,function*(){return t.play()})});else throw r})}update(t){return A(this,null,function*(){let{id:e,operation:r,seekFrom:o,playbackRate:s}=t;this.log.info(`update music source, ${JSON.stringify(t)}`);let n=this.mixedMusicMap.get(e);if(!n){this.log.warn(`update music source failed, music id: ${e} not found.`);return}n.updateSettings(t),n.updateListener(t),O(r)||n.setOperation(r),O(o)||n.seek(o),this.kvUpload(t)})}stop(e){return A(this,arguments,function*({id:t}){if(this.mixedMusicMap.has(t)){this.log.info(`remove music source, music id: ${t}`);let r=this.mixedMusicMap.get(t);r!=null&&r.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:r.mixInput.source.node,refId:`ax-${t}`}),r==null||r.stop(),this.mixedMusicMap.delete(t)}t==="*"&&this.destroyAllMusic()})}kvUpload(t){let{track:e,loop:r,volume:o,playbackRate:s,operation:n,seekFrom:a,onTimeUpdate:d,onDurationChange:l,onEnded:p}=t;e&&J.addCount({key:502009}),r&&J.addCount({key:502001}),o&&J.addCount({key:502002}),s&&J.addCount({key:502003}),n&&J.addCount({key:502004}),a&&J.addCount({key:502005}),typeof d!="function"&&J.addCount({key:502007}),typeof p!="function"&&J.addCount({key:502008}),typeof l!="function"&&J.addCount({key:502006})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((t,e)=>{t!=null&&t.mixInput.track&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:t.mixInput.track,refId:e}),this.stop({id:e})})}destroyAllCache(){this.log.info("destroy all music cache."),this.cacheMusicMap.clear()}destroy(){this.log.info("destroy audio mixer plugin."),this.destroyAllMusic(),this.destroyAllCache()}};m(Ei,"startValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},url:{type:"string",required:!1},track:{required:!1},loop:{type:"boolean"},volume:{type:"number"}},validate(t,e,r){if(t.url&&t.url!=="*"){let o=t.url.split("?")[0],s=["mp3","ogg","wav","flac"],n=o.split(".").pop(),a=s.indexOf(n)>=0,d=o.startsWith("blob"),l=o.startsWith("data");if(!(a||d||l))throw new oe({code:se.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:r})}if(!t.url&&!t.track)throw new oe({code:se.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:r});Xn("onTimeUpdate",t.onTimeUpdate),Xn("onEnded",t.onEnded),Xn("onDurationChange",t.onDurationChange)}}),m(Ei,"updateValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},loop:{type:"boolean"},volume:{type:"number"},seekFrom:{type:"number"},operation:{type:"string",values:["pause","resume","stop"]}},validate(t,e,r){Xn("onTimeUpdate",t.onTimeUpdate),Xn("onEnded",t.onEnded),Xn("onDurationChange",t.onDurationChange)}}),m(Ei,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),m(Ei,"Name","AudioMixer");var Al=Ei;var bl=0,uf,Zi=class Zi{constructor(t){this.core=t;m(this,"log");m(this,"audioContext",qe("denoiser"));m(this,"workletNode");m(this,"config",{enableFarFieldReduce:!1,farFieldReduceThreshold:.5});bl=bl+1,this.log=t.log.createChild({id:`${this.getAlias()}${bl}`}),this.log.info(`created id=${this.getAlias()}${bl}`)}static startValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0},mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack)throw new oe({code:se.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return uf||(uf=this.doPreload(t)),uf}doPreload(t){return A(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield Gi(this.audioContext,r)}catch(o){throw this.log.error("load worklet failed",o),o}finally{URL.revokeObjectURL(r)}})}getName(){return Zi.Name}getAlias(){return"ad"}getGroup(){return"AIDenoiser"}getValidateRule(t){switch(t){case"start":return Zi.startValidateRule(this.core);case"update":return Zi.updateValidateRule;case"stop":return Zi.stopValidateRule}}start(t){return A(this,null,function*(){let{room:e,schedule:r}=this.core,{assetsPath:o=this.core.assetsPath}=t;if(!o)throw new oe({code:se.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload(`${o}/denoiser-wasm${Sh()?"":"-nosimd"}.js`),!this.workletNode){let s=String(Date.now()).slice(0,-3),{auth:n,sign:a,status:d,message:l}=yield WR(r,Ee(Y({},t),{timestamp:s}));if(!n)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${n}. Message: ${l}`),new oe({code:se.INVALID_PARAMETER,message:l});this.workletNode=new AudioWorkletNode(this.audioContext,"trtc-denoiser-processor",{numberOfInputs:1,numberOfOutputs:1}),this.workletNode.port.postMessage({type:"init",data:{sdkAppId:String(t.sdkAppId),userId:t.userId,timestamp:s,sign:a,status:d}}),this.workletNode.port.onmessage=p=>{var g;let{data:f}=p;if(f.type==="cost"){let y=(f==null?void 0:f.max)>20?"warn":(f==null?void 0:f.max)>10?"info":"debug";this.log[y](`avg cost: ${f.value} max: ${f==null?void 0:f.max}(${Zs(new Date(f==null?void 0:f.maxCostTimestamp))}) hist: ${(g=f==null?void 0:f.hist)==null?void 0:g.join(" ")}`)}else f.type==="log"&&this.log[f.logLevel](`${f.value}`)}}this.updateConfig(t),this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(t){return A(this,null,function*(){this.updateConfig(t)})}stop(){return A(this,null,function*(){if(!this.workletNode)return;let{room:t}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield t.audioManager.removeDenoiser(this.workletNode)})}updateConfig(t){if(!this.workletNode)return;let e=!1;O(t.mode)||(t.mode===0?this.config.enableFarFieldReduce=!1:t.mode===1&&(this.config.enableFarFieldReduce=!0),e=!0),O(t.farFieldReduceThreshold)||(this.config.farFieldReduceThreshold=t.farFieldReduceThreshold,e=!0),e&&this.workletNode.port.postMessage({type:"setConfig",data:this.config})}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};m(Zi,"updateValidateRule",{type:"object",properties:{mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}}}),m(Zi,"stopValidateRule",{type:"object"}),m(Zi,"Name","AIDenoiser");var Rl=Zi;function WR(s,n){return A(this,arguments,function*(i,{sdkAppId:t,userId:e,userSig:r,timestamp:o}){try{let{data:{errCode:a,errMsg:d,sign:l,status:p}}=yield i.getAbilityConfig(t,i.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:t,userId:e,userSig:r,timestamp:o});if(p==="1")return{auth:!0,sign:l,status:p,message:d};let f=Rr(t)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",g="Init RTCAIDenoiser failed.",y="";switch(a){case 1:y="Please check your params.";break;case 2:y=`You need to buy packages. Refer to: ${f}`;break;case 3:y="Server is invalid. Please contact our engineer. ";break;case 4:y=`Your packages is not active. Refer to: ${f}`;break;case 5:y=`Your packages is expired. Refer to: ${f}`;break;case 6:y="Your version is not supported.";break}return{auth:!1,status:p,message:d?`${g} Reason: ${d}. ${y}`:`${g}, ${y}`}}catch(a){return{auth:!1,status:"0",message:`Init RTCAIDenoiser failed. All requests failed. ${a}`}}})}var TT=bi(ki(),1);var lf=class extends TT.EventEmitter{constructor(){super();m(this,"observer");m(this,"state","nominal");this.onPressureChange=this.onPressureChange.bind(this)}get stateNum(){switch(this.state){case"nominal":return 1;case"fair":return 2;case"serious":return 3;case"critical":return 4}}start(){return A(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!nt&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){je.uploadEvent({log:"stat-pressure-detector-start-failed",error:e})}})}onPressureChange(e){let r=this.stateNum,o=e[e.length-1];this.state=o.state,(this.stateNum>3||r>3)&&F.info(`${o.source}: ${o.state}`),this.emit("state-changed",{type:o.source,state:this.state})}destroy(){var e;try{(e=this.observer)==null||e.disconnect(),this.observer=null}catch(r){je.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:r})}}},GR=new lf,mf=GR;function jR([i,t]){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,i);for(let a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new Ds(new DataView(new Uint8Array(s).buffer),!0)}function qR(i){return i.type==="empty"||i.data.byteLength===0}function zR(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function JR(i){let t=0,e=0,r=new DataView(i);for(let o=0;o<i.byteLength;o++)switch(r.getUint8(o)){case 0:t++;break;case 1:(t===2||t===3)&&e++,t=0;break;default:t=0;break}return e}function hf({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let r=9-JR(i.data);if(r<=0)return i;let o=t.splice(0,r).reverse().map(jR),s=o.reduce((p,f)=>p+f.dataView.byteLength,0),n=new ArrayBuffer(s+i.data.byteLength),a=new DataView(n),d=new DataView(i.data),l=0;for(let p=0;p<o.length;p++)for(let f=0;f<o[p].dataView.byteLength;f++)a.setInt8(l++,o[p].dataView.getInt8(f));for(let p=0;p<i.data.byteLength;p++)a.setInt8(l++,d.getInt8(p));return i.data=n,i}function pf({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(qR(i)||!zR(e))return i;let r=[],o=0,s=-1,n=-1;for(let a=0;a<i.data.byteLength;a++){let d=e.getUint8(a);if(d===0)o++;else if(d===1){if(o===2||o===3){let l=a-o;if(s===-1?s=l:n===-1&&(n=l,r.push(new Ds(new DataView(e.buffer.slice(s,n)))),s=l,n=-1),!(e.getUint8(a+1)===6)){i.data=e.buffer.slice(l);break}}o=0}else o=0}t==null||t(r.reverse())}catch(e){}return i}var ff=0,xc=class xc{constructor(t){this.core=t;m(this,"log");m(this,"_seiMessageList",[]);m(this,"_smallSeiMessageList",[]);m(this,"_subStreamSeiMessageList",[]);ff++,this.log=t.log.createChild({id:`${this.getAlias()}${ff}`}),this.log.info(`[sei] created id=${this.getAlias()}${ff}`),this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode({frame:t,mediaType:e}){try{let r=e===8?this._smallSeiMessageList:e===2?this._subStreamSeiMessageList:this._seiMessageList;return hf({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return pf({frame:t,onSEI:r=>{r.forEach(o=>{this.core.trtc.emit(ee.SEI_MESSAGE,{seiPayloadType:o.seiPayloadType,data:o.seiPayload.buffer,userId:e.userId,streamType:e.mediaType===2?"sub":"main"})})}})}destroy(){this.log.debug("destory"),this.stop(),delete this.core}getValidateRule(t){switch(t){case"start":return{type:"object"};case"update":return{type:"object"};case"stop":return{type:"object"}}}start(){this.core.room.videoManager.addEncodeProcessor({processor:_s?this.encode:hf,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:_s?this.decode:pf,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update({buffer:t,options:e}){var s;let r=[e.seiPayloadType,t],o=!!e.small;e.toSubStream?this._subStreamSeiMessageList.push(r):(this._seiMessageList.push(r),o&&this._smallSeiMessageList.push(r)),(s=this.core.room.scriptTransformWorker)==null||s.postMessage({type:"sei",data:r,isMain:!e.toSubStream,small:o})}getName(){return xc.Name}getAlias(){return"sei"}getGroup(){return"sei"}};m(xc,"autoStart",!0),m(xc,"Name","SEI");var vl=xc;function gf({frame:i,onDump:t}){return t==null||t(),i}function Ef({frame:i,onDump:t}){return t==null||t(),i}var IT={"play() error: NotAllowedError:":{tips:i=>i.includes("main <video>")||i.includes("main <audio>")?"Remote stream auto play is restricted and playback fails":"Local stream playback failure, generally only occurs in Android WeChat devices, no need to handle",color:"red",class:"red"},"updateStream() try to recover local stream":{tips:"Device acquisition exception, automatic recovery is in progress"},"updateStream() recover local stream successfully":{tips:"Device acquisition exception, automatic recovery is successful"},"updateStream() failed to recover local stream":{tips:"Device acquisition exception, automatic recovery failed"},"main stream - video track is muted":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is muted":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is muted":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unable to provide media output":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is unable to provide media output":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is unable to provide media output":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unmuted":{tips:"Received enough playback video data"},"main stream - audio track is unmuted":{tips:"Received enough playback audio data"},"auxiliary stream - video track is unmuted":{tips:"Received enough playback screen sharing data"},"main stream - audio player track is ended":{tips:"Remote audio track stopped"},"main stream - video player track is ended":{tips:"Remote video track stopped"},"auxiliary stream - video player track is ended":{tips:"Received enough playback screen sharing data"},"stream - video track is muted":{tips:"Camera capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"stream - video track is unable to provide media output":{tips:"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked, and the customer needs to re-acquire. SDK v4.11.4+ will automatically resume acquisition without customer intervention",color:"orange"},"video track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"stream - audio track is muted":{tips:"Microphone capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"audio track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"Microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio track is unable to provide media output":{tips:"The microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"is adding audio track to current published local stream":{tips:"add audio track",color:"orange"},"is removing audio track from current published local stream":{tips:"remove audio track",color:"orange"},"is removing video track from current published local stream":{tips:"remove video track",color:"orange"},"is adding video track to current published local stream":{tips:"add video track",color:"orange"},"is replacing audio track to current published local main stream":{tips:"replace audio track",color:"orange"},"is replacing video track to current published local main stream":{tips:"replace video track",color:"orange"},"downlink network quality change":{tips:"Downstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"uplink network quality change":{tips:"Upstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"localStream mute video":{tips:"mute upstream video stream",color:"orange"},"localStream unmute video":{tips:"unmute upstream video stream",color:"orange"},"localStream mute audio":{tips:"mute upstream audio stream",color:"orange"},"localStream unmute audio":{tips:"unmute upstream audio stream",color:"orange"},"black detected":{tips:"Detect black screen, which means fps = 0. It is usually caused by network, and the network will be recovered after a while. If the network is normal but has not been restored, it is an abnormal situation."},'main stream start to play with options: {"muted":true}':{tips:"Play the remote stream in silent mode. Generally, the remote stream does not need to be played in silent mode. You need to confirm whether the parameters passed in the client stream.play API call are correct.",color:"orange"},"main stream - audio player is starting playing":{tips:"Remote stream audio playback success",color:"#0dd90d",class:"success"},"main stream - video player is starting playing":{tips:"Remote stream video playback success",color:"#0dd90d",class:"success"},"video player is playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"audio player is playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"stream - video player is starting playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"stream - audio player is starting playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"switch camera success":{tips:"Switch camera success",color:"#0dd90d",class:"success"},"switch microphone success":{tips:"Switch microphone success",color:"#0dd90d",class:"success"},gotStream:{tips:"Local stream capture success"},"local stream is published successfully":{tips:"Publish success",color:"#0dd90d",class:"success"},"encoderImplementation change to OpenH264":{tips:"Use software encoding"},"encoderImplementation change to ExternalEncoder":{tips:"Use hardware encoding"},"getUserMedia with constraints":{tips:"Start media (camera/microphone) capture"},"getDisplayMedia with constraints":{tips:"Start screen sharing capture"},"client-banned":{tips:"Kicked out of the room",color:"red",class:"red",textColor:"#fff"},user_timeout:{tips:"The backend is too long without receiving SDK heartbeat, which is usually caused by the JS thread being blocked for a long time. If the reproduction probability is high, the application browser Performance tool analyzes where the JS thread is blocked.",color:"red",class:"red",textColor:"#fff"},"schedule failed":{tips:"Signaling request failed, does not affect the normal room entry process, SDK will connect to the default signaling domain."},"updateStream() video flag is true, but no camera detected, set video to false":{tips:"When trying to resume camera acquisition, the camera acquisition is not resumed because it is detected that there is no camera.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to bandwidth":{tips:"bandwidth estimation is not enough to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to cpu":{tips:"cpu load is too high to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: hidden":{tips:"User page switched to backend, in mobile devices, this will cause the device to pause the capture, and it will be restored when the user switches backend to the frontend.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: visible":{tips:"User page switched to frontend",color:"orange",class:"orange",textColor:"#fff"},"main stream - audio player is paused":{tips:`The remote stream audio playback is paused, which usually has two possibilities:
100
100
  1. The business side passes in the div tag container for playing audio and video to be removed by the business side from the DOM.
101
101
  2. If the user is in Chrome 70 and below, when the div container is moved, the playback will be paused.`,color:"orange",class:"orange",textColor:"#fff"},"main stream - video player is paused":{tips:`The remote stream video playback is paused, which usually has two possibilities:
102
102
  1. The business side passes in the div tag container for playing audio and video to be removed by the business side from the DOM.
103
- 2. If the user is in Chrome 70 and below, when the div container is moved, the playback will be paused.`,color:"orange",class:"orange",textColor:"#fff"},'"displaySurface":"window"':{tips:"Screen sharing captures the application window",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"monitor"':{tips:"Screen sharing captures the entire screen",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"browser"':{tips:"Screen sharing captures a certain tab page",color:"blue",class:"blue",textColor:"#fff"},updateMediaSettings:{tips:"The resolution and frame rate below are the actual resolution and frame rate captured",color:"blue",class:"blue",textColor:"#fff"},"main stream start to play with":{tips:"Call remoteStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"stream start to play with":{tips:"Call localStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"main setAudioVolume to 0":{tips:"Business side calls remoteStream.setAudioVolume(0) interface to set the playback volume to 0, which will cause the playback to be silent",color:"orange",class:"orange",textColor:"#fff"},"screen sharing was stopped because the video track is ended":{tips:"Screen sharing capture stopped, possible reasons: user clicks the stop button, the window/page shared by the user is closed, etc.",color:"orange",class:"orange",textColor:"#fff"},"Join() => joining room":{tips:"Call client.join interface",color:"blue",class:"blue",textColor:"#fff"},"publish() => publishing local stream":{tips:"Call client.publish interface",color:"blue",class:"blue",textColor:"#fff"},"subscribe() => subscribe to":{tips:"Call client.subscribe interface",color:"blue",class:"blue",textColor:"#fff"},"switchRole() => switch role":{tips:"Call client.switchRole interface",color:"blue",class:"blue",textColor:"#fff"}};["enterRoom","exitRoom","switchRole","destroy","startLocalAudio","updateLocalAudio","stopLocalAudio","startLocalVideo","updateLocalVideo","stopLocalVideo","startScreenShare","updateScreenShare","stopScreenShare","startRemoteVideo","updateRemoteVideo","stopRemoteVideo","muteRemoteAudio","setRemoteAudioVolume"].forEach(i=>{ST[`${i}()`]={tips:`Call trtc.${i}`,color:"blue",class:"blue",textColor:"#fff"}});var IB=Object.keys(ST);var XR=0,vl,Pc=class Pc{constructor(t){this.core=t;m(this,"_core");m(this,"log");m(this,"dumpLocalVideoMap",{});m(this,"dumpRemoteVideoMap",{});m(this,"dialog");this._core=t,this.log=t.log.createChild({id:`${this.getAlias()}${++XR}`}),this.log.info("created")}getName(){return Pc.Name}getAlias(){return"dm"}getGroup(){return"dm"}getValidateRule(t){switch(t){case"start":return{name:"StartDebugOptions",required:!1};case"update":return{name:"UpdateDebugOptions",required:!1};case"stop":return{name:"StopDebugOptions",required:!1}}}start(){return A(this,null,function*(){var e;!new URLSearchParams(location.search).has("trtcDebug")&&((e=window.sessionStorage)==null?void 0:e.getItem("TRTC_ENABLE_DEBUG_PLUGIN"))!=="true"||(yield this.openDebugDiaLog(),this.addVideoProcessor())})}update(e){return A(this,arguments,function*({visible:t}){t?(yield this.openDebugDiaLog(),this.addVideoProcessor()):(this.closeDebugDiaLog(),this.removeVideoProcessor())})}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return A(this,null,function*(){var t;if(!this.dialog)try{if(vl)yield vl;else{let e=new URLSearchParams(location.search).get("trtcDebugDialogPath")||((t=window.sessionStorage)==null?void 0:t.getItem("TRTC_DEBUG_DIALOG_PATH"))||`https://unpkg.com/${_T}@${ht}/assets/debug-dialog.js`;vl=this._core.fileDownloader.loadScript(e),yield vl}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(e){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(e))}})}closeDebugDiaLog(){this.dialog&&(this.dialog.closeDialog(),this.dialog=null)}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):gf,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):Ef,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo({frame:t,mediaType:e}){return gf({frame:t,onDump:()=>{if(!e)return;let r=e===2?"sub":"main",o=this.dumpLocalVideoMap[r];o&&(o.data.push(t.data.slice(0)),o.duration>0&&Date.now()-o.startTimestamp>o.duration*1e3&&o.onDumpEnd())}})}decodeVideo({frame:t,track:e}){return Ef({frame:t,onDump:()=>{if(!e)return;let r=this.dumpRemoteVideoMap[`${e.userId}-${e.streamType}`];r&&(r.data.push(t.data.slice(0)),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}})}};m(Pc,"Name","Debug"),m(Pc,"autoStart",!0);var Cl=Pc;var yT=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},Nl=class{constructor(t,e,r){m(this,"trackDoneOB");m(this,"startOB");m(this,"stopOB");m(this,"inputFrameCount",0);m(this,"decodedFrameCount",0);m(this,"type","auto");m(this,"config");m(this,"decoder");m(this,"_decodeSink");let{kvStatManager:o,trtc:s}=t;this.config=r.config,this.trackDoneOB=ye(e,ue.INIT),this.stopOB=At(),this.startOB=At(),r.type==="auto"?this.type="webCodecs":this.type=r.type;let n=At(),a=d=>{let l=this.pipe(e);return n.next("STARTING"),e.log.info(`decoder type: ${this.type}`),Ae(l,ze(this.stopOB),Pe(()=>{},p=>{e.log.error(p),o.addFailedEvent({key:yT(this.type),error:p}),d>4?this.startOB.error(p):this.startOB.next(d+1)})),Ae(l,Xr(1),bp(pc))};Ae(this.startOB,mc(0),di(a),ze(this.stopOB),Pe(()=>{e.player.setOutput(),n.next("STARTED")},d=>{n.next("FAILED")},()=>{o.addSuccessEvent({key:yT(this.type)}),o.addSuccessEvent({key:504702})}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.startOB.next(0)}close(t){this.stopOB.next(t)}pipe(t){return ji()(e=>A(this,null,function*(){this._decodeSink=e,e.defer(()=>{var o;(o=this.decoder)==null||o.close()});let{type:r}=this;try{switch(r){case"webCodecs":this.decoder=new AudioDecoder({error:o=>{t.log.error(o),e.error(4)},output:o=>{this.decodedFrameCount++,e.next(o),t.player.write(o)}});break;case"wasm":break}this.decoder.configure(this.config)}catch(o){t.log.error(o),e.error(r==="webCodecs"?2:6)}}))}decodeFrame(t){var e;this.inputFrameCount++,((e=this.decoder)==null?void 0:e.state)==="configured"&&this.decoder.decode(new EncodedAudioChunk({data:t.data,timestamp:t.timestamp,type:"key"}))}},QR={type:"object"},Lc=class Lc{constructor(t){this.core=t;m(this,"log");m(this,"contextMap",new Map);m(this,"decodeProcessorMap",new WeakMap);this.log=t.log.createChild({id:`${this.getAlias()}`})}getAlias(){return Lc.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return Lc.Name}getValidateRule(t){return QR}start(t){let{track:e}=t;this.decodeProcessorMap.set(e,this.decode(t)),this.core.room.audioManager.addDecodeProcessor({processor:({frame:r,track:o})=>this.decodeProcessorMap.has(o)?this.decodeProcessorMap.get(o)({frame:r,track:o}):r,type:3})}decode(t){return({frame:e,track:r})=>{if(r!==t.track)return e;if(this.contextMap.has(r))return this.contextMap.get(r).decodeFrame(e);let o=new Nl(this.core,r,t);return Ae(o.trackDoneOB,Xr(1),Pe(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:r})})),this.contextMap.set(r,o),o.decodeFrame(e)}}stop({track:t}){let e=this.contextMap.get(t);e&&(e.close("stop"),this.contextMap.delete(t),this.contextMap.size===0&&this.core.room.audioManager.removeDecodeProcessor({type:3}))}update(t){let e=this.contextMap.get(t.track);if(e){if(t.type==="mock"){e.mock(10);return}e.close("update"),this.contextMap.set(t.track,new Nl(this.core,t.track,t))}}};m(Lc,"Name","TRTCAudioDecoder");var kc=Lc;var Dl=class{constructor(){m(this,"log");this.log=F.createLogger({id:"exp"})}call(t,e){return A(this,null,function*(){return Xe(this[t])?this[t](e):Promise.reject(new ae({code:q.INVALID_PARAMETER,message:He({key:$e.API_NOT_EXIST,data:{name:t}})}))})}enableAudioFrameEvent(t){return A(this,null,function*(){let{trtcInstance:e,enable:r,userId:o,sampleRate:s=48e3,channelCount:n=1,port:a}=t,{audioManager:d}=e.room,{getPCMAbortCtrlMap:l,audioFrameEventConfigMap:p}=d;if(p.set(o,{enable:r,sampleRate:s,channelCount:n,port:a}),r)if(o==="*")e.room.remotePublishedUserMap.forEach(f=>{if(f.remoteAudioTrack.isAvailable){if(l.get(f.userId))return;let g=d.getPCM(y=>{e.emit(ee.AUDIO_FRAME,y)},f.userId);l.set(f.userId,g)}});else{if(l.get(o))return;let f=d.getPCM(g=>{e.emit(ee.AUDIO_FRAME,g)},o);l.set(o,f)}else if(o==="*")e.room.remotePublishedUserMap.forEach(f=>{if(f.remoteAudioTrack.isSubscribed){let{userId:g}=f,y=l.get(g);y==null||y.abort("disable"),l.delete(g)}});else{let f=l.get(o);f==null||f.abort("disable"),l.delete(o)}})}resumeRemotePlayer(t){return A(this,null,function*(){if(t.userId==="*"){let r=[];return t.trtcInstance.room.remotePublishedUserMap.forEach(o=>{let{remoteAudioTrack:s,remoteVideoTrack:n,remoteAuxiliaryTrack:a}=o;t.streamType?t.streamType==="main"?(s.isAvailable&&r.push(s.player.resume()),n.isAvailable&&r.push(n.player.resume())):a.isAvailable&&r.push(a.player.resume()):(s.isAvailable&&r.push(s.player.resume()),n.isAvailable&&r.push(n.player.resume()),a.isAvailable&&r.push(a.player.resume()))}),Promise.all(r)}let e=t.trtcInstance.room.remotePublishedUserMap.get(t.userId);if(e)return t.streamType==="main"?Promise.all([e.remoteAudioTrack.player.resume(),e.remoteVideoTrack.player.resume()]):e.remoteAuxiliaryTrack.player.resume()})}pauseRemotePlayer(t){if(t.userId==="*")t.trtcInstance.room.remotePublishedUserMap.forEach(e=>{let{remoteAudioTrack:r,remoteVideoTrack:o,remoteAuxiliaryTrack:s}=e;t.streamType?t.streamType==="main"?(r.isAvailable&&r.player.pause(),o.isAvailable&&o.player.pause()):s.isAvailable&&s.player.pause():(r.isAvailable&&r.player.pause(),o.isAvailable&&o.player.pause(),s.isAvailable&&s.player.pause())});else{let e=t.trtcInstance.room.remotePublishedUserMap.get(t.userId);e&&(t.streamType==="main"?(e.remoteAudioTrack.player.pause(),e.remoteVideoTrack.player.pause()):e.remoteAuxiliaryTrack.player.pause())}}};Z([o_({name:"options",type:"object",required:!0,properties:{enable:{required:!0,type:"boolean"},userId:{required:!0,type:"string"},sampleRate:{type:"number",values:[8e3,16e3,32e3,44100,48e3]},channelCount:{type:"number",values:[1,2]},port:{type:"messageport"}}})],Dl.prototype,"enableAudioFrameEvent",1);var AT=new Dl;var bT=Ai(ki(),1);var _f=class extends bT.EventEmitter{constructor(){super();m(this,"states",{});m(this,"permissionChangeHandler");m(this,"log");this.log=F.createLogger({id:"pm"}),this.permissionChangeHandler=()=>{var e,r;this.emit("permission-state-change",{camera:(e=this.states.camera)==null?void 0:e.state,microphone:(r=this.states.microphone)==null?void 0:r.state})}}request(e){return A(this,null,function*(){if(this.log.info(`request ${e.join(", ")}`),e.length===0)return Promise.resolve();(yield navigator.mediaDevices.getUserMedia({video:e.includes("camera"),audio:e.includes("microphone")})).getTracks().forEach(o=>o.stop())})}get(e){return A(this,null,function*(){try{return this.states[e]||(this.states[e]=yield navigator.permissions.query({name:e}),this.states[e].addEventListener("change",this.permissionChangeHandler)),this.log.info(`get ${e} permission state: ${this.states[e].state}`),this.states[e].state}catch(r){return this.log.error(`get ${e} permission failed, error: ${r instanceof Error?r.message:r}`),null}})}destroy(){Object.values(this.states).forEach(e=>{e==null||e.removeEventListener("change",this.permissionChangeHandler)}),this.states={}}},Uc=new _f;var RT=0,Vc=new Set,Lt=null;sm(nf);bn.checkStorage();var pe=class pe extends vT.EventEmitter{constructor(e,r){super();m(this,"_room");m(this,"_eventListened",new Set);m(this,"_localVideoTrack",null);m(this,"_localAudioTrack",null);m(this,"_localScreenTrack",null);m(this,"_localScreenAudioTrack",null);m(this,"_localVideoConfig",null);m(this,"_localScreenConfig",null);m(this,"_localAudioConfig",null);m(this,"_remoteVideoConfigMap",new Map);m(this,"_remoteAudioConfigMap",new Map);m(this,"_remoteAudioVolumeMap",new Map);m(this,"_remoteAudioMuteMap",new Map);m(this,"_mediaTrackMap",new WeakMap);m(this,"_log",F.createLogger({id:`t${++RT}`}));m(this,"_plugins",new Map);m(this,"_networkQuality",null);m(this,"_speakerId");m(this,"enterRoomParams");m(this,"_enableAutoSwitchWhenRecapturing",!0);this._room=new e(Y({logger:this._log,frameWorkType:pe.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,Ke(r.enableAutoSwitchWhenRecapturing)&&(this._enableAutoSwitchWhenRecapturing=r.enableAutoSwitchWhenRecapturing),this._log.info(`create() ${JSON.stringify(r,(o,s)=>o==="plugins"?s.map(n=>n.Name):s)}`),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(o){return this._room.audioManager.dump(o)}}}),r.plugins&&r.plugins.forEach(o=>{this._use(o,r.assetsPath)}),this._use(yl,r.assetsPath),this._use(Il,r.assetsPath),this._use(bl,r.assetsPath),this._use(kc,r.assetsPath),this._use(Cl),r.enableSEI&&Xa&&this._use(Rl),this._room.on("audio-volume",o=>{var s,n;!o.find(a=>a.userId==="")&&this._localAudioTrack&&o.push({userId:"",volume:Math.floor(((s=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?s:this._localAudioTrack.getAudioLevel())*100),floatVolume:(n=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?n:this._localAudioTrack.getInternalAudioLevel()}),r.volumeType===1&&o.forEach(a=>{var l;let d=a.userId===""?this._localAudioTrack:(l=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:l.remoteAudioTrack;d&&(a.volume=d.dbVolume)}),r.enableDbVolume&&o.forEach(a=>{var l;let d=a.userId===""?this._localAudioTrack:(l=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:l.remoteAudioTrack;d&&(a.volume=d.dbVolume)}),this.emit(ee.AUDIO_VOLUME,{result:o.sort((a,d)=>d.volume-a.volume)})}),this._room.videoManager.on("error",o=>{this._log.error(new oe({code:se.OPERATION_FAILED,extraCode:5504,message:o.message,originError:o}))}),this._listenEvents(),this._initActiveSpeaker(),pT(this,"trtc")}static create(e){}static _create(e,r){K_();let o=new pe(e,r||{});return Vc.add(o),o.__v_skip=!0,o}get room(){return this._room}_listenEvents(){Ft(this,this._room).add("peer-join",e=>{let{userId:r}=e;this.emit(ee.REMOTE_USER_ENTER,{userId:r})}).add("peer-leave",e=>{this.emit(ee.REMOTE_USER_EXIT,{userId:e})}).add("banned",e=>{this._exitRoom().finally(()=>{this.emit(ee.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().finally(()=>{this.emit(ee.ERROR,oe.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(ee.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=Ee(Y({},e),{uplinkRTT:Math.min(e.uplinkRTT,_a),downlinkRTT:Math.min(e.downlinkRTT,_a)});this.emit(ee.NETWORK_QUALITY,r)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{Ft(o,o).add("player-state-changed",s=>{let n=Ee(Y({},s),{userId:e.userId});o.kind===M.VIDEO&&(n.streamType=pi(o.streamType)),this.emit(o.kind===M.AUDIO?ee.AUDIO_PLAY_STATE_CHANGED:ee.VIDEO_PLAY_STATE_CHANGED,n)}).add("error",s=>{s.getCode()===q.PLAY_NOT_ALLOWED&&this.emit(ee.AUTOPLAY_FAILED,{userId:o.userId,mediaType:o.strMediaType,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{St(o)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:r})=>{let{userId:o}=r,s=e.audioAvailable,n=e.videoAvailable,{audioAvailable:a,videoAvailable:d}=r;a||this._remoteAudioConfigMap.delete(o),d||this._removeRemoteVideoConfig(o,"main"),r.hasAuxiliary||this._removeRemoteVideoConfig(o,"sub"),n!==d&&(d?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(d?ee.REMOTE_VIDEO_AVAILABLE:ee.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),s!==a&&(a?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:r}),this.emit(a?ee.REMOTE_AUDIO_AVAILABLE:ee.REMOTE_AUDIO_UNAVAILABLE,{userId:o})),e.hasAuxiliary!==r.hasAuxiliary&&(r.hasAuxiliary?this._onVideoAvailable({userId:o,streamType:"sub"}):this._onVideoUnavailable({userId:o,streamType:"sub"}),this.emit(r.hasAuxiliary?ee.REMOTE_VIDEO_AVAILABLE:ee.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))}).add("sei-message",e=>{this.emit(ee.SEI_MESSAGE,Ee(Y({},e),{streamType:pi(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(ee.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,n,a,d,l,p,f;let r={2:"big",3:"small",7:"sub"},o={rtt:Math.min(e.msg_up_stream_info.msg_network_status.uint32_rtt||((s=e.msg_down_stream_info[0])==null?void 0:s.msg_network_status.uint32_rtt)||((n=this._networkQuality)==null?void 0:n.uplinkRTT)||((a=this._networkQuality)==null?void 0:a.downlinkRTT)||0,_a),upLoss:((d=this._networkQuality)==null?void 0:d.uplinkLoss)||0,downLoss:((l=this._networkQuality)==null?void 0:l.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((p=e.msg_up_stream_info.msg_audio_status)==null?void 0:p.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((f=e.msg_up_stream_info.msg_audio_status)==null?void 0:f.uint32_audio_level)||0)/Fi},video:e.msg_up_stream_info.msg_video_status.filter(g=>r[g.uint32_video_stream_type]).map(g=>({bitrate:(g.uint32_video_codec_bitrate||0)/1e3,width:g.uint32_video_width,height:g.uint32_video_height,frameRate:g.uint32_video_enc_fps,videoType:r[g.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(g=>({userId:g.msg_user_info.str_identifier,audio:{bitrate:(g.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(g.msg_audio_status.uint32_audio_level||0)/Fi,point2pointDelay:(g.msg_audio_status.uint32_audio_p2p_delay||0)+(g.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:g.msg_audio_status.uint32_audio_cache_ms||0},video:g.msg_video_status.map(y=>({bitrate:(y.uint32_video_codec_bitrate||0)/1e3,width:y.uint32_video_width,height:y.uint32_video_height,frameRate:y.uint32_video_dec_fps,videoType:r[y.uint32_video_stream_type],point2pointDelay:(y.uint32_video_p2p_delay||0)+(y.uint32_video_cache_ms||0),jitterBufferDelay:y.uint32_video_cache_ms||0,codec:y.uint32_video_codec}))}))};this.emit(ee.STATISTICS,o)}).add("custom-message",e=>{this.emit(ee.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(ee.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(ee.FIRST_VIDEO_FRAME,Ee(Y({},e),{streamType:pi(e.streamType)}))}).add("audio-frame",e=>{this.emit(ee.AUDIO_FRAME,e)}),Ft(this,at).add("audioInputAdded",e=>{this.emit(ee.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(ee.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(ee.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(ee.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>A(this,null,function*(){if(this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),Lt&&Lt.deviceId===Ea){let r=(yield vo()).find(o=>o.deviceId===Ea);r&&Lt.groupId!==r.groupId&&(Lt=r,this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}})).add("audioOutputRemoved",e=>A(this,null,function*(){this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let r=(yield vo())[0];if(!r||!Lt||Lt.groupId===r.groupId)return;let o=Lt.deviceId===e.deviceId,s=Lt.deviceId===Ea&&Lt.deviceId===r.deviceId;(o||s)&&(Lt=r,this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))})),Ft(this,Uc).add("permission-state-change",e=>{this.emit(ee.PERMISSION_STATE_CHANGE,e)}),this.room.enableSEI&&this.on(ee.SEI_MESSAGE,e=>{var o;let r=(o=this.room.remotePublishedUserMap.get(e.userId))==null?void 0:o.remoteVideoTrack;r&&r.updateAlphaRenderInfo(e)})}getNetworkTime(){return bi()}use(e){let r,o;return"plugin"in e?(r=e.plugin,o=e.assetsPath):r=e,r.Name==="Chorus"&&(this.room.enableChorus=!0),this._use(r,o)}_use(e,r){let o=this._plugins.get(e.Name);if(o)return this._log.warn("duplicate install plugin",e.Name),o;let s=new e(hT.call(this,{TRTC:pe,room:this._room,assetsPath:r,errorModule:{RtcError:oe,ErrorCode:se,CoreErrorCode:q,ErrorCodeDictionary:Tr}}));return this._plugins.set(e.Name,s),s.__v_skip=!0,e.autoStart&&this.startPlugin(e.Name),s}enterRoom(e){return A(this,null,function*(){var d,l;this.enterRoomParams=e;let{scene:r="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:n=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!we(e.proxy)&&e.proxy.turnServer&&((l=(d=this._room).setTurnServer)==null||l.call(d,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=n,Ke(e.preferHW)&&(this._room.preferHW=e.preferHW),e.playoutDelay&&(this._room.playoutDelay=e.playoutDelay),e.jitterBufferDelay&&(this._room.jitterBufferDelay=e.jitterBufferDelay);let a={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,privateMapKey:e.privateMapKey||null,latencyLevel:e.latencyLevel,role:e.role==="audience"?21:20,roomId:e.roomId||0,strRoomId:e.strRoomId||"",businessInfo:e.businessInfo||null,streamId:null,userDefineRecordId:e.userDefineRecordId||null,frameWorkType:e.frameWorkType,component:e.component,language:e.language,priority:e.priority,useVp8:e.useVp8,useH265:e.useH265,keepAlive:e.keepAlive};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(a,r,pe.frameWorkType),this._checkTrackToPublish(),mf.start()})}exitRoom(){return A(this,null,function*(){return yield this._exitRoom()})}switchRoom(e){return A(this,null,function*(){if(this.room.isSwitchRoomSupported())try{this._clearRemoteTracks(),yield this._room.switchRoom(e)}catch(r){if(r instanceof ma&&(r.code===q.API_CALL_TIMEOUT||r.code===q.SWITCH_ROOM_FAILED))this._log.warn(`switchRoom ${r.code===q.API_CALL_TIMEOUT?"timeout":"failed"}, fallback to exitRoom() and enterRoom()`),yield this._rejoinRoom(e);else throw r}else yield this._rejoinRoom(e)})}_rejoinRoom(e){return A(this,null,function*(){yield this.exitRoom();let r=Y(Y({},this.enterRoomParams),e);yield this.enterRoom(r)})}_clearRemoteTracks(){new Set([...this._remoteAudioConfigMap.keys(),...this._remoteAudioMuteMap.keys()]).forEach(e=>{this._stopRemoteAudio({userId:e}).catch(()=>{})}),[...this._remoteVideoConfigMap.keys()].forEach(e=>{let r=e.includes("main")?"main":"sub",o=e.split(`_${r}`)[0];o&&this._stopRemoteVideo({userId:o,streamType:r}).catch(()=>{})}),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),fT(this),this._room.remotePublishedUserMap.forEach(e=>{St(e.remoteAudioTrack),St(e.remoteVideoTrack),St(e.remoteAuxiliaryTrack)})}switchRole(e,r){return A(this,null,function*(){r!=null&&r.privateMapKey&&(this._room.privateMapKey=r.privateMapKey),r!=null&&r.latencyLevel&&(this._room.latencyLevel=r.latencyLevel),yield this._room.switchRole(e),e==="anchor"&&this._checkTrackToPublish()})}destroy(){this._plugins.forEach(e=>{var r;return(r=e.destroy)==null?void 0:r.call(e)}),this._plugins.clear(),St(this),this.removeAllListeners(),this._room.destroy(),Vc.delete(this),Vc.size===0&&mf.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),U.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return A(this,arguments,function*(e={publish:!0}){if(this._localAudioTrack){this._log.warn("local audio is already started");return}let{publish:r=!0,mute:o,option:s}=e,n=new ui(this._room.audioManager),a={},d={muted:!0};s&&(O(s.microphoneId)?O(s.audioTrack)||(a.customSource=s.audioTrack):a.deviceId=s.microphoneId,s&&Ve(s.captureVolume)&&n.setCaptureVolume(s.captureVolume),O(s.profile)||(we(s.profile)?fd[s.profile]&&n.setProfile(fd[s.profile]):n.setProfile(s.profile)),Ve(s.earMonitorVolume)&&(d.muted=!(s.earMonitorVolume>0),d.volume=s.earMonitorVolume),O(s.echoCancellation)||(n.profile.echoCancellation=s.echoCancellation),O(s.noiseSuppression)||(n.profile.noiseSuppression=s.noiseSuppression),O(s.autoGainControl)||(n.profile.autoGainControl=s.autoGainControl),Ke(this._enableAutoSwitchWhenRecapturing)&&(n.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),n.on("5",l=>{this.emit(ee.ERROR,new oe({code:se.DEVICE_ERROR,extraCode:5309,messageParams:{error:l}}))}),n.on("2",l=>{this.emit(ee.DEVICE_CHANGED,{type:"microphone",action:"active",device:l})}),n.on("4",l=>{let p;l.error&&(p=oe.convertFrom(l.error)),this.emit(ee.PUBLISH_STATE_CHANGED,Ee(Y({},l),{error:p}))}),n.on("6",()=>{this.emit(ee.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5506,message:"audio encode failed"}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId),yield n.capture(a),O(o)||n.setMute(o),Ft(n,n).add("player-state-changed",l=>{this.emit(ee.AUDIO_PLAY_STATE_CHANGED,Ee(Y({},l),{userId:""}))}),r&&this._room.isJoined&&this._room.publish(n).catch(()=>{}),this._localAudioTrack=n,this._localAudioConfig=Ee(Y({},e),{publish:r}),yield this._updateAudioPlayOption({playOption:d,track:n}),U.emit("113",{userId:"",room:this.room})})}updateLocalAudio(e){return A(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:r,mute:o,option:s}=e,n={};s&&(s.microphoneId?yield this._localAudioTrack.switchDevice(s.microphoneId):O(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),O(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),O(s.earMonitorVolume)||(n.muted=!(s.earMonitorVolume>0),n.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!O(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),O(o)||this._localAudioTrack.setMute(o),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),Br(this._localAudioConfig,e)})}stopLocalAudio(){return A(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),U.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),St(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)})}startLocalVideo(){return A(this,arguments,function*(e={publish:!0,view:null,capture:!0}){var f;if(this._localVideoTrack){this._log.warn("local video is already started");return}let{view:r,publish:o=!0,capture:s=!0,mute:n,option:a}=e,d=new _r(this._room.videoManager),l={},p={};a&&(Ke(a.avoidCropping)&&(d.avoidCropping=a.avoidCropping),a.cameraId?l.deviceId=a.cameraId:O(a.useFrontCamera)?O(a.videoTrack)||(l.customSource=a.videoTrack):l.facingMode=a.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,O(a.retryWhenExactFailed)||(l.retryWhenExactFailed=a.retryWhenExactFailed),a.qosPreference&&(l.contentHint=wc(a.qosPreference)),O(a.profile)||(we(a.profile)?Vr[a.profile]&&d.setProfile(Vr[a.profile]):d.setProfile(a.profile)),O(a.fillMode)||(p.objectFit=a.fillMode),O(a.mirror)||(p.mirror=a.mirror),O(a.small)||(O(a.smallMode)||(this._room.smallMode=a.smallMode),Ke(a.small)&&a.small===!1?d.stopSmall():d.updateSmallConfig(jn(a.small,!0))),O(a.rotation)||d.setRotation(a.rotation),Ke(this._enableAutoSwitchWhenRecapturing)&&(d.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),d.once("first-video-frame",g=>{this.emit(ee.FIRST_VIDEO_FRAME,Ee(Y({},g),{streamType:pi(g.streamType)}))}),d.on("5",g=>{this.emit(ee.ERROR,new oe({code:se.DEVICE_ERROR,extraCode:5308,messageParams:{error:g}}))}),d.on("2",g=>{this.emit(ee.DEVICE_CHANGED,{type:"camera",action:"active",device:g})}),d.on("4",g=>{let y;g.error&&(y=oe.convertFrom(g.error)),this.emit(ee.PUBLISH_STATE_CHANGED,Ee(Y({},g),{error:y}))}),d.on("6",()=>{this.emit(ee.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5505,message:"video encode failed"}))}),this._listenOutputTrackChanged(d),s?yield d.capture(l):(f=d.manager)==null||f.changeInput(d),O(n)||(yield d.setMute(n)),Ft(d,d).add("player-state-changed",g=>{this.emit(ee.VIDEO_PLAY_STATE_CHANGED,Ee(Y({},g),{userId:"",streamType:"main"}))}).add("video-size-changed",g=>{this.emit(ee.VIDEO_SIZE_CHANGED,Ee(Y({},g),{streamType:pi(g.streamType)}))}),o&&this._room.isJoined&&this._room.publish(d).catch(()=>{}),this._localVideoTrack=d,this._localVideoConfig=Ee(Y({},e),{view:r,publish:o,capture:s}),yield this._updateVideoPlayOption({view:r,playOption:p,track:d})})}updateLocalVideo(e){return A(this,null,function*(){var l,p,f;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:r,publish:o,mute:s,capture:n,option:a}=e,d={};if(this._localVideoConfig.capture)n!==!1?a!=null&&a.cameraId?yield this._localVideoTrack.switchDevice(a==null?void 0:a.cameraId):O(a==null?void 0:a.useFrontCamera)?O(a==null?void 0:a.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(a==null?void 0:a.videoTrack)):yield this._localVideoTrack.switchDevice(a!=null&&a.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT):this._localVideoTrack.stopCapture();else if(n){let g={};g.deviceId=(a==null?void 0:a.cameraId)||((l=this._localVideoConfig.option)==null?void 0:l.cameraId),g.facingMode=a!=null&&a.useFrontCamera||(p=this._localVideoConfig.option)!=null&&p.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,g.customSource=(a==null?void 0:a.videoTrack)||((f=this._localVideoConfig.option)==null?void 0:f.videoTrack),yield this._localVideoTrack.capture(g)}a&&(O(a.profile)||(we(a.profile)?Vr[a.profile]&&this._localVideoTrack.setProfile(Vr[a.profile]):this._localVideoTrack.setProfile(a.profile),(!a.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(a.cameraId))&&O(a.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),O(a.fillMode)||(d.objectFit=a.fillMode),O(a.mirror)||(d.mirror=a.mirror),O(a.rotation)||this._localVideoTrack.setRotation(a.rotation),a.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(wc(a.qosPreference)),O(a.small)||(Ke(a.small)&&!a.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(jn(a.small,!0)))),this._room.isJoined&&O(o)&&this._localVideoConfig.publish&&n&&!this._localVideoConfig.capture&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._room.isJoined&&((o!=null?o:this._localVideoConfig.publish)?this._room.publish(this._localVideoTrack).catch(()=>{}):this._room.unpublish(this._localVideoTrack).catch(()=>{})),O(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:r,playOption:d,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),Br(this._localVideoConfig,e)})}stopLocalVideo(){return A(this,null,function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),St(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return A(this,arguments,function*(e={publish:!0,view:null}){var g,y;if(this._localScreenTrack){this._log.warn("screen share is already started");return}let{view:r=null,publish:o=!0,muteSystemAudio:s,option:n}=e,a=new li(this._room.videoManager);a.on("4",R=>{let C;R.error&&(C=oe.convertFrom(R.error)),this.emit(ee.PUBLISH_STATE_CHANGED,Ee(Y({},R),{error:C}))}),a.once("first-video-frame",R=>{this.emit(ee.FIRST_VIDEO_FRAME,Ee(Y({},R),{streamType:pi(R.streamType)}))}),this._listenOutputTrackChanged(a),e.streamType==="main"&&(a.mediaType=4);let d=null,l={},p={};n&&(O(n.profile)||(we(n.profile)?gd[n.profile]&&a.setProfile(gd[n.profile]):a.setProfile(n.profile)),n.systemAudio&&(l.systemAudio=!0,l.echoCancellation=n.echoCancellation,l.noiseSuppression=n.noiseSuppression,l.autoGainControl=n.autoGainControl),O(n.fillMode)||(p.objectFit=n.fillMode),n.videoTrack&&(l.videoTrack=n.videoTrack),n.audioTrack&&(l.audioTrack=n.audioTrack),n.captureElement&&(l.captureElement=n.captureElement),n.preferDisplaySurface&&(l.preferDisplaySurface=n.preferDisplaySurface),n.qosPreference&&(l.contentHint=wc(n.qosPreference)));let f=yield a.capture(l);if(a.mediaTrack.addEventListener(M.ENDED,()=>{this._stopScreenShare(),this.emit(ee.SCREEN_SHARE_STOPPED)}),f.getAudioTracks()[0]){d=new xs(this._room.audioManager);let R=f.getAudioTracks()[0];(g=e.option)!=null&&g.systemAudio&&!((y=e.option)!=null&&y.audioTrack)&&(d.sourceTrack=R),yield d.setInputMediaStreamTrack(R),Ke(s)&&d.mediaTrack&&(d.mediaTrack.enabled=!s),this._speakerId&&d.setAudioOutput(this._speakerId)}if(Ft(a,a).add("player-state-changed",R=>{this.emit(ee.VIDEO_PLAY_STATE_CHANGED,Ee(Y({},R),{userId:"",streamType:"sub"}))}),o&&this._room.isJoined){let R=[a];d&&(R.push(d),this._checkScreenAudioEchoCancellation(a,d)),R.forEach(C=>this._room.publish(C).catch(()=>{}))}this._localScreenTrack=a,this._localScreenAudioTrack=d,this._localScreenConfig=Ee(Y({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:p,track:a})})}updateScreenShare(e){return A(this,null,function*(){var d;if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:r,publish:o,muteSystemAudio:s,option:n}=e,a={};if(n&&(O(n.fillMode)||(a.objectFit=n.fillMode),n.qosPreference)){let l=wc(n.qosPreference);this._localScreenTrack.setContentHint(l)}if(this._room.isJoined&&!O(o)){if(o&&!this._localScreenConfig.publish){let l=[this._localScreenTrack];this._localScreenAudioTrack&&l.push(this._localScreenAudioTrack),l.forEach(p=>this._room.publish(p).catch(()=>{}))}if(this._localScreenConfig.publish&&!o){let l=[this._localScreenTrack];this._localScreenAudioTrack&&l.push(this._localScreenAudioTrack),l.forEach(p=>this._room.unpublish(p).catch(()=>{}))}}(d=this._localScreenAudioTrack)!=null&&d.mediaTrack&&Ke(s)&&(this._localScreenAudioTrack.mediaTrack.enabled=!s),yield this._updateVideoPlayOption({view:r,playOption:a,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),Br(this._localScreenConfig,e)})}stopScreenShare(){return A(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return A(this,null,function*(){let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`;if(this._remoteVideoConfigMap.has(a)){this._log.warn(`remote video has already started. userId:${o}, streamType:${s}`);return}let d=this._room.remotePublishedUserMap.get(o);if(!d)return;let l={},p=s==="main"?d.remoteVideoTrack:d.remoteAuxiliaryTrack;p.on("decode-failed",f=>{this.emit(ee.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))}),p.on("video-size-changed",f=>{this.emit(ee.VIDEO_SIZE_CHANGED,Ee(Y({},f),{streamType:pi(f.streamType)}))}),this._listenOutputTrackChanged(p),n&&(O(n.fillMode)||(l.objectFit=n.fillMode),O(n.mirror)||(l.mirror=n.mirror),O(n.poster)||(l.poster=n.poster),l.canvasRender=n.canvasRender,s==="main"&&!O(n.small)&&(!d.remoteVideoTrack.isSubscribing&&!d.remoteVideoTrack.isSubscribed&&d.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,p.user)),O(n.draggable)||p.setDraggable(n.draggable)),yield this._room.subscribe(p),yield this._enableVideoDecodeFallback(p,s),yield this._updateVideoPlayOption({view:r,playOption:l,track:p}),this._emitTrackEvent(p),this._remoteVideoConfigMap.set(a,{config:e}),n&&!O(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:p,view:r,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:n==null?void 0:n.viewRoot})})}updateRemoteVideo(e){return A(this,null,function*(){var N,k;let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`,d=this._remoteVideoConfigMap.get(a);if(!d||!this._room.remotePublishedUserMap.has(o))return;let l={};n&&(O(n.fillMode)||(l.objectFit=n.fillMode),O(n.mirror)||(l.mirror=n.mirror));let p=null,f=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(f!=null&&f.muteState.hasVideo)&&(p=f.remoteVideoTrack),s==="sub"&&(f!=null&&f.muteState.hasAuxiliary)&&(p=f.remoteAuxiliaryTrack),!p)return;let{config:g}=d;s==="main"&&n&&!O(n.small)&&this._room.changeType(n.small,p.user),n&&!O(n.draggable)&&p.setDraggable(n.draggable),yield this._updateVideoPlayOption({view:r,playOption:l,track:p,prevConfig:g}),Br(g,e);let y=O(n==null?void 0:n.receiveWhenViewVisible)?(N=g.option)==null?void 0:N.receiveWhenViewVisible:n.receiveWhenViewVisible,R=O(r)?g.view:r,C=O(n==null?void 0:n.viewRoot)?(k=g.option)==null?void 0:k.viewRoot:n.viewRoot;this._observeView({remoteTrack:p,view:R,receiveWhenViewVisible:y,viewRoot:C})})}stopRemoteVideo(e){return A(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e,r=!0){return A(this,null,function*(){let o=[],s=this._room.remotePublishedUserMap.get(e.userId);if(s){let{muteState:n,remoteVideoTrack:a,remoteAuxiliaryTrack:d}=s;e.streamType==="main"&&(a.stop(),n.hasVideo&&o.push(a)),e.streamType==="sub"&&(d.stop(),n.hasAuxiliary&&o.push(d))}for(let n of o)r&&(yield this._room.unsubscribe(n),this._mediaTrackMap.delete(n.outMediaTrack));this._removeRemoteVideoConfig(e.userId,e.streamType)})}_removeRemoteVideoConfig(e,r){let o=`${e}_${r}`,s=this._remoteVideoConfigMap.get(o);s&&s.observer&&s.observer.disconnect(),this._remoteVideoConfigMap.delete(o)}muteRemoteAudio(e,r){return A(this,null,function*(){this._remoteAudioMuteMap.set(e,r);try{if(e==="*")if(r)yield this._stopRemoteAudio({userId:e});else{let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)s.muteState.hasAudio&&!this._remoteAudioConfigMap.has(s.userId)&&(yield this._startRemoteAudio({userId:s.userId}))}else r?yield this._stopRemoteAudio({userId:e}):this._remoteAudioConfigMap.has(e)||(yield this._startRemoteAudio({userId:e}))}catch(o){throw o.code!==se.OPERATION_ABORT&&this._remoteAudioMuteMap.delete(e),o}})}setRemoteAudioVolume(e,r){if(e==="*"){this._remoteAudioVolumeMap.set("*",r),this._remoteAudioVolumeMap.forEach((s,n)=>this._remoteAudioVolumeMap.set(n,r));let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)this._remoteAudioVolumeMap.set(s.userId,r),s.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:s.remoteAudioTrack})}else if(e){let o=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,r),o&&o.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:o.remoteAudioTrack})}}startPlugin(e,r){return A(this,null,function*(){return e.start(r)})}updatePlugin(e,r){return A(this,null,function*(){return e.update(r)})}stopPlugin(e,r){return A(this,null,function*(){return e.stop(r)})}enableAudioVolumeEvaluation(e=2e3,r=!1){this._room.enableAudioVolumeEvaluation(e,r)}on(e,r,o){if(this.listeners(e).includes(r))return this;if(this._log.debug("on",e),super.on(e,r,o),this._eventListened.add(e),this.listeners(ee.AUDIO_FRAME).length>0){let{audioFrameEventConfigMap:s}=this.room.audioManager;s.get("")||s.set("",{enable:!0}),this._localAudioTrack&&this.room.audioManager.handleLocalTrackStarted({userId:"",room:this.room})}return this}emit(e,...r){try{uT.has(e)&&this._log.debug(`emit ${e} ${JSON.stringify(r)}`)}catch(o){}return super.emit(e,...r)}off(e,r,o){if(this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners()):super.off(e,r,o),(e===pe.EVENT.AUDIO_FRAME||e==="*")&&this.listeners(pe.EVENT.AUDIO_FRAME).length===0){let{getPCMAbortCtrlMap:s}=this.room.audioManager;s.forEach(n=>{n==null||n.abort("off")}),s.clear()}return this}getAudioTrack(e={userId:"",streamType:"main"}){let r,o=null,s="main",n=!1;if(we(e)?r=e:(r=e.userId,n=e.processed===!0,e.streamType&&(s=e.streamType)),r){let a=this._room.remotePublishedUserMap.get(r);a&&(o=a.remoteAudioTrack)}else o=s==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return o?n&&o.outMediaTrack&&o.outMediaTrack!==o.mediaTrack?o.outMediaTrack.clone():o.mediaTrack:null}getVideoTrack(e={userId:"",streamType:"main"}){let{userId:r="",streamType:o="main",processed:s=!1}=e,n=null;if(r==="")o==="main"&&this._localVideoTrack&&(n=this._localVideoTrack),o==="sub"&&this._localScreenTrack&&(n=this._localScreenTrack);else{let a=this._room.remotePublishedUserMap.get(r);a&&(n=o==="main"?a.remoteVideoTrack:a.remoteAuxiliaryTrack)}return n?s&&n.outMediaTrack&&n.outMediaTrack!==n.mediaTrack?n.outMediaTrack.clone():n.mediaTrack:null}getVideoSnapshot(e={}){let{userId:r,streamType:o="main"}=e;if(r){let s=this._room.remotePublishedUserMap.get(r);if(o==="main"&&(s!=null&&s.muteState.hasVideo))return s.remoteVideoTrack.getVideoFrame();if(o==="sub"&&(s!=null&&s.muteState.hasAuxiliary))return s.remoteAuxiliaryTrack.getVideoFrame()}else{if(o==="main"&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if(o==="sub"&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var r,o;this._speakerId=e,(r=this._localAudioTrack)==null||r.setAudioOutput(e),(o=this._localScreenAudioTrack)==null||o.setAudioOutput(e),this._room.remotePublishedUserMap.forEach(s=>s.remoteAudioTrack.setAudioOutput(e))}setCurrentSpeaker(e){return A(this,null,function*(){(yield vo()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),Lt=o)}),this._log.warn(`the "setCurrentSpeaker" method of the instance will be deprecated in the future, please use "TRTC.setCurrentSpeaker" instead. For more information, please visit: ${ir}/en/TRTC.html#.setCurrentSpeaker`)})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return A(this,null,function*(){var a;let{userId:r}=e;if(this._remoteAudioConfigMap.has(r)){this._log.warn(`remote audio has already started. userId:${r}`);return}let o=this._room.remotePublishedUserMap.get(r);if(!o)return;let s={},n=o.remoteAudioTrack;n.on("decode-failed",d=>{this.emit(ee.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5508,message:"audio decode failed"}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId);try{let d=(a=this._remoteAudioVolumeMap.get(r))!=null?a:this._remoteAudioVolumeMap.get("*"),l=Ve(d)?d:100;s.volume=l,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(n),Ae(ye(n,"decode-failed"),ze(ye(n,ue.INIT)),Pe(()=>{this.startPlugin(kc.Name,{track:n,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:s,track:n}),U.emit("115",{userId:r,room:this.room}),n.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:n.outMediaTrack,refId:`ra-${r}`})}catch(d){throw this._remoteAudioConfigMap.delete(r),d}this._emitTrackEvent(n)})}_stopRemoteAudio(e,r=!0){return A(this,null,function*(){let o=this._room.remotePublishedUserMap.get(e.userId);o&&(o.remoteAudioTrack.stop(),o.muteState.hasAudio&&r&&(yield this._room.unsubscribe(o.remoteAudioTrack)),this._mediaTrackMap.delete(o.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete(`${e.userId}`),U.emit("116",{userId:e.userId,room:this.room}),this.room.audioManager.updateAudioReference({type:"remove",refId:`ra-${e.userId}`})})}_enableVideoDecodeFallback(e,r){let o=this._room.videoDecodeFallbackType;if(!o||!this._plugins.has("TRTCVideoDecoder"))return;e.log.debug("remote video will fall back when decode failed",e.id);let s;Ae(ye(e,"decode-failed"),ze(ye(e,ue.INIT)),Cs(()=>{this._room.downlinkVideoCodec!=="h265"&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),qi(ye(e,"decode-downgrade-state-changed")),Pe(n=>{s=n.state,this.emit(ee.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,Ee(Y({},n),{streamType:r,userId:e.userId}))},n=>{e.log.error("fallback",n)},()=>{s==="STARTED"&&e.log.info("fallback complete")}))}_updateVideoPlayOption(n){return A(this,arguments,function*({view:e,playOption:r,track:o,prevConfig:s}){if(o.setMirror(r.mirror),O(e)&&s&&s.view&&!dn(r)){let a=ln(s.view);a.length>0&&(yield o.play(a,r))}if(!O(e)){let a=ln(e);a.length>0?yield o.play(a,r):o.stop()}})}_updateAudioPlayOption(s){return A(this,arguments,function*({playOption:e={},track:r,prevConfig:o}){if(!r.isPlayCalled)try{yield r.play(null,e)}catch(n){}if(O(e.muted)||r.setPlayerMute(e.muted),O(e.volume)||r.setAudioVolume(e.volume/100),r instanceof ui&&r.mediaTrack){let n=e.muted===!1&&!O(e.volume)&&e.volume>0?"add":"remove";this.room.audioManager.updateAudioReference({type:n,audioReference:r.mediaTrack,refId:"em"})}else if(r instanceof zi){let n=e.muted?0:e.volume;if(O(n))return;this.room.audioManager.updateAudioReference({type:"updateVolume",refId:`ra-${r.userId}`,volume:e.volume})}})}_listenOutputTrackChanged(e){e.listeners("output-media-track-changed").length===0&&e.on("output-media-track-changed",()=>this._emitTrackEvent(e,!1))}_emitTrackEvent(e,r=!0){let o=e.isRemote?e.userId:"";e.outMediaTrack&&(r&&this._mediaTrackMap.get(e.outMediaTrack)===o||(this._mediaTrackMap.set(e.outMediaTrack,o),this.emit(ee.TRACK,{userId:o,streamType:pi(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_checkTrackToPublish(){var r,o,s;let e=[];if((r=this._localAudioConfig)!=null&&r.publish&&this._localAudioTrack&&e.push(this._localAudioTrack),(o=this._localVideoConfig)!=null&&o.publish&&this._localVideoTrack&&e.push(this._localVideoTrack),(s=this._localScreenConfig)!=null&&s.publish&&(this._localScreenTrack&&e.push(this._localScreenTrack),this._localScreenAudioTrack&&e.push(this._localScreenAudioTrack),this._checkScreenAudioEchoCancellation(this._localScreenTrack,this._localScreenAudioTrack)),e.length!==0)return Promise.all(e.map(n=>this._room.publish(n).catch(()=>{})))}_observeView({remoteTrack:e,view:r,receiveWhenViewVisible:o=!1,viewRoot:s}){if(O(r))return;let n=this._remoteVideoConfigMap.get(`${e.userId}_${pi(e.streamType)}`);if(!n)return;let a=n.observer||void 0;if(r===null||ut(r)&&r.length===0||!o){a==null||a.disconnect(),e.isSubscribed||this._room.subscribe(e).catch(()=>{});return}let l=n.visibleViewMap||new Map,p=-1;(!a||a.root!==s)&&(a==null||a.disconnect(),l.clear(),a=new IntersectionObserver(g=>{g.forEach(y=>{l.set(y.target,y.isIntersecting),e.log.info(`view ${y.target.id} is${y.isIntersecting?"":" not"} visible`)}),clearTimeout(p),p=window.setTimeout(()=>{[...l.values()].find(R=>R)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:s}));let f=new Set(ln(r));l.forEach((g,y)=>{f.has(y)||(a.unobserve(y),l.delete(y))}),f.forEach(g=>{l.set(g,!0),a.observe(g)}),a.takeRecords().forEach(g=>{l.set(g.target,g.isIntersecting)}),n.visibleViewMap=l,n.observer=a}_exitRoom(){return A(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),this._clearRemoteTracks()})}_stopScreenShare(){return A(this,null,function*(){var e;if(this._localScreenTrack){if(this._room.isJoined){let r=[this._localScreenTrack];this._localScreenAudioTrack&&r.push(this._localScreenAudioTrack),yield Promise.all(r.map(o=>this._room.unpublish(o).catch(()=>{})))}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(((e=this._localScreenAudioTrack.trackSettings)==null?void 0:e.echoCancellation)===!1&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),St(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_checkScreenAudioEchoCancellation(e,r){return A(this,null,function*(){var s,n;if(!e||!r)return;let o=(s=e.trackSettings)==null?void 0:s.displaySurface;if(((n=r.trackSettings)==null?void 0:n.echoCancellation)===!1&&(o==="monitor"||o==="browser"&&e.isShareCurrentTab)){this._log.warn("echoCancellation of screen audio track is disable. Try starting audioProcessor plugin");try{yield this.startPlugin("AudioProcessor",{sdkAppId:Number(this.room.sdkAppId),userId:this._room.userId,userSig:this.room.userSig,isScreenAudioNeedAudioProcess:!0,isLocalAudioNeedAudioProcess:!1})}catch(a){this._log.warn("start audioProcessor plugin failed: ",a)}}})}_onLocalTrackCaptured({track:e}){e.kind==="audio"&&(!Lt||xn(Lt))&&(this._initActiveSpeaker(),U.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return A(this,null,function*(){if(Lt&&!xn(Lt))this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:Lt});else{let e=yield vo();e[0]&&!xn(e[0])?(Lt=e[0],this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):U.on("102",this._onLocalTrackCaptured,this)}})}_onAudioAvailable({userId:e}){let r=this._remoteAudioMuteMap.has(e)?this._remoteAudioMuteMap.get(e):this._remoteAudioMuteMap.get("*");(r===!1||this._room.autoReceiveAudio&&!r)&&this._doStartRemoteAudio({userId:e}).catch(()=>{})}_onVideoAvailable({userId:e,streamType:r}){if(!this._room.autoReceiveVideo)return;let o=this._room.remotePublishedUserMap.get(e);if(o){let s=r==="main"?o.remoteVideoTrack:o.remoteAuxiliaryTrack,n=[s];this._room.autoReceiveAudio&&o.remoteAudioTrack.isAvailable&&n.push(o.remoteAudioTrack),this._room.subscribe(...n).then(()=>{this._emitTrackEvent(s)}).catch(()=>{})}}_onAudioUnavailable({userId:e,muteState:r}){r.hasAudio&&r.audioMuted||this._stopRemoteAudio({userId:e},!1).catch(()=>{})}_onVideoUnavailable({userId:e,streamType:r}){this._stopRemoteVideo({userId:e,streamType:r},!1).catch(()=>{})}sendSEIMessage(e,r){var s;let o=this._plugins.get("SEI");o&&(o.update({buffer:e,options:Ee(Y({seiPayloadType:243},r),{small:!!((s=this._localVideoTrack)!=null&&s.small)})}),J.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var r,o;(o=(r=this._room).sendCustomMessage)==null||o.call(r,e),J.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,r){return A(this,null,function*(){return this._log.info(`callExperimentalAPI(${e}, ${JSON.stringify(r)})`),AT.call(e,Y({trtcInstance:this},r))})}static setLogLevel(e,r){F.setLogLevel(e),O(r)||(r?F.enableUploadLog():F.disableUploadLog())}static isSupported(){return fu(pe.frameWorkType)}static getPermissions(o){return A(this,arguments,function*({request:e=!0,types:r=["camera","microphone"]}){e&&(yield Uc.request(r).catch(a=>{var d;return F.error(`getPermissions request failed, error: ${(d=a==null?void 0:a.message)!=null?d:a}`)}));let[s,n]=yield Promise.all([Uc.get("camera"),Uc.get("microphone")]);return{camera:s,microphone:n}})}static getCameraList(e=!0){return cr(e)}static getMicrophoneList(e=!0){return ar(e)}static getSpeakerList(e=!0){return vo(e)}static setCurrentSpeaker(e){return A(this,null,function*(){if(nt&&(e===ks.SPEAKER||e===ks.HEADSET)){let o=yield pe.getMicrophoneList(),s="";if(o.forEach(n=>{n.label===e&&(s=n.deviceId)}),!s)return;Vc.forEach(n=>A(this,null,function*(){n._localAudioTrack&&(yield n.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield vo()).forEach(o=>{o.deviceId===e&&(Vc.forEach(s=>{s._setCurrentSpeaker(e),s.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),Lt=o)})})}static _addKVStat({type:e,key:r,value:o,base:s,useUV:n,version:a,max:d}){switch(a&&(Es.version=a),e){case"count":Es.addCount({key:r,useUV:n});break;case"enum":Es.addEnum({key:r,value:o,useUV:n});break;case"number":Es.addNumber({key:r,value:o,split:s,max:d});break}}};m(pe,"VERSION",nf),m(pe,"_loggerManager",F),m(pe,"EVENT",ee),m(pe,"ERROR_CODE",se),m(pe,"TYPE",ks),m(pe,"frameWorkType",30),Z([st({replaceArg:e=>({argIndex:0,value:{name:"plugin"in e?e.plugin.Name:e.Name,assetsPath:"assetsPath"in e?e==null?void 0:e.assetsPath:"default"}})})],pe.prototype,"use",1),Z([Ht(Ot.TRTC.enterRoom),Lo("room",([e],[r])=>(e.roomId||e.strRoomId)===(r.roomId||r.strRoomId)&&e.userId===r.userId&&e.sdkAppId===r.sdkAppId),xe(e=>function(r){return this._log.setUserId(r.userId),this._log.setSdkAppId(r.sdkAppId),e.call(this,r)}),st()],pe.prototype,"enterRoom",1),Z([st()],pe.prototype,"exitRoom",1),Z([Ht(Ot.TRTC.switchRoom),st(),Ou()],pe.prototype,"switchRoom",1),Z([Ht(Ot.TRTC.switchRole),Vs("room",{merge:(e,r)=>r}),st()],pe.prototype,"switchRole",1),Z([st()],pe.prototype,"destroy",1),Z([Ht(Ot.TRTC.startLocalAudio),Lo("audio",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.microphoneId)===((s=r==null?void 0:r.option)==null?void 0:s.microphoneId)}),st()],pe.prototype,"startLocalAudio",1),Z([Ht(Ot.TRTC.updateLocalAudio),Vs("audio",{debounce:{delay:200,getKey:()=>`${RT}-localAudio`,isNeedToDebounce:e=>{var r;return!O((r=e.option)==null?void 0:r.captureVolume)}}}),st()],pe.prototype,"updateLocalAudio",1),Z([ko("audio"),st()],pe.prototype,"stopLocalAudio",1),Z([Ht(Ot.TRTC.startLocalVideo),Lo("video",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.cameraId)===((s=r==null?void 0:r.option)==null?void 0:s.cameraId)}),st()],pe.prototype,"startLocalVideo",1),Z([Ht(Ot.TRTC.updateLocalVideo),Vs("video"),st()],pe.prototype,"updateLocalVideo",1),Z([ko("video"),st()],pe.prototype,"stopLocalVideo",1),Z([Ht(Ot.TRTC.startScreenShare),Lo("screen",()=>!0),st()],pe.prototype,"startScreenShare",1),Z([Ht(Ot.TRTC.updateScreenShare),Vs("screen"),st()],pe.prototype,"updateScreenShare",1),Z([st()],pe.prototype,"stopScreenShare",1),Z([Ht(Ot.TRTC.startRemoteVideo),Lo(e=>`v${e.userId}${e.streamType}`,()=>!0),st({getRemoteId:e=>`${e.userId}_${e.streamType}`})],pe.prototype,"startRemoteVideo",1),Z([Ht(Ot.TRTC.updateRemoteVideo),Vs(e=>`v${e.userId}${e.streamType}`),st({getRemoteId:e=>`${e.userId}_${e.streamType}`})],pe.prototype,"updateRemoteVideo",1),Z([Ht(Ot.TRTC.stopRemoteVideo),xe(e=>function(r){return A(this,null,function*(){if(r.userId==="*"){let o=[];return this._room.remotePublishedUserMap.forEach(s=>{this._remoteVideoConfigMap.has(`${s.userId}_main`)&&o.push(this.stopRemoteVideo({streamType:"main",userId:s.userId}).catch(()=>{})),this._remoteVideoConfigMap.has(`${s.userId}_sub`)&&o.push(this.stopRemoteVideo({streamType:"sub",userId:s.userId}).catch(()=>{}))}),Promise.all(o)}return e.call(this,r)})}),st({getRemoteId:e=>`${e.userId}_${e.streamType}`})],pe.prototype,"stopRemoteVideo",1),Z([ko(e=>`v${e.userId}${e.streamType}`)],pe.prototype,"_stopRemoteVideo",1),Z([Ht(...Ot.TRTC.muteRemoteAudio),st({getRemoteId:e=>e})],pe.prototype,"muteRemoteAudio",1),Z([af(...Ot.TRTC.setRemoteAudioVolume),gT(200,e=>e),st({getRemoteId:e=>e})],pe.prototype,"setRemoteAudioVolume",1),Z([_l("start"),Co(e=>{var r;return(r=e.afterStart)==null?void 0:r.call(e)}),Lo((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),st({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>uh[e.getName()],ignoreLog:e=>e.getName()==="Debug",ignoreErrorLog:e=>e.getName()==="AudioProcessor"})],pe.prototype,"startPlugin",1),Z([_l("update"),Vs((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r),{merge:(e,r)=>(Br(e[1],r[1]),e)}),st({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>lh[e.getName()]})],pe.prototype,"updatePlugin",1),Z([_l("stop"),ko((e,r)=>{if(e.disableRandomCall)return null;let o=e.getGroup(r),s=e.getAlias();return o==="*"?new RegExp(`${s}.*`):s+o}),st({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>mh[e.getName()]})],pe.prototype,"stopPlugin",1),Z([af(...Ot.TRTC.enableAudioVolumeEvaluation)],pe.prototype,"enableAudioVolumeEvaluation",1),Z([st()],pe.prototype,"getVideoSnapshot",1),Z([st()],pe.prototype,"_setCurrentSpeaker",1),Z([Lo(e=>`a${e.userId}`,()=>!0)],pe.prototype,"_startRemoteAudio",1),Z([xe(e=>function(r){return A(this,null,function*(){return r.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(Ee(Y({},r),{userId:o.userId})).catch(()=>{}))):e.call(this,r)})}),ko(e=>`a${e.userId}`)],pe.prototype,"_stopRemoteAudio",1),Z([ko("room")],pe.prototype,"_exitRoom",1),Z([ko("screen")],pe.prototype,"_stopScreenShare",1),Z([Ht(...Ot.TRTC.sendSEIMessage),ef({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],pe.prototype,"sendSEIMessage",1),Z([Ht(Ot.TRTC.sendCustomMessage),ef({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],pe.prototype,"sendCustomMessage",1),Z([Uo()],pe,"create",1),Z([Ht(Ot.TRTC.create)],pe,"_create",1),Z([Uo()],pe,"setLogLevel",1),Z([Uo()],pe,"isSupported",1),Z([Uo()],pe,"getPermissions",1),Z([Uo()],pe,"getCameraList",1),Z([Uo()],pe,"getMicrophoneList",1),Z([Uo()],pe,"getSpeakerList",1);var Tf=pe,Qn=Tf;var wl=class{constructor(t,e){m(this,"_flag");m(this,"terminalType");m(this,"userId");m(this,"tinyId");m(this,"role");m(this,"remoteAudioTrack");m(this,"remoteVideoTrack");m(this,"remoteAuxiliaryTrack");this.userId=e.userId||"",this.tinyId=e.tinyId||"",this.role=e.role||"audience",this.terminalType=e.terminalType,this.remoteAudioTrack=new zi(t,this),this.remoteVideoTrack=new Mo(t,this),this.remoteAuxiliaryTrack=new rl(t,this),this.flag=e.flag||0}get subscribeState(){let t={audio:!1,video:!1,auxiliary:!1,smallVideo:!1};return this.remoteVideoTrack.isSubscribed&&(this.remoteVideoTrack.mediaType&8?t.smallVideo=!0:t.video=!0),this.remoteAudioTrack.isSubscribed&&(t.audio=!0),this.remoteAuxiliaryTrack.isSubscribed&&(t.auxiliary=!0),t}get muteState(){return ns(this.flag,this.userId)}get flag(){return this._flag}set flag(t){if(t===this._flag)return;let e,r=this.muteState;this._flag=t;let o=this.muteState;for(e in o)r[e]!=o[e]&&console.log(this.userId,e,r[e],"->",o[e]);this.remoteAudioTrack.onFlagChanged(),this.remoteVideoTrack.onFlagChanged(),this.remoteAuxiliaryTrack.onFlagChanged()}};var If=class{constructor(){m(this,"_set",new Set);U.on(B.LEAVE_SUCCESS,this.delete,this),U.on(B.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess,this)}add({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,e||t.roomId,t.sdkAppId,t.useStringRoomId);this._set.add(r)}delete({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,t.roomId||e,t.sdkAppId,t.useStringRoomId);this._set.delete(r)}getKey(t,e,r,o){return`${r}_${e}_${t}_${o}`}isJoined({userId:t,roomId:e,sdkAppId:r,room:o}){return o.scene==="rtc"?!1:this._set.has(this.getKey(t,e,r,o.useStringRoomId))}handleSwitchRoomSuccess({room:t,currentRoomId:e,targetRoomId:r}){t.scene!=="rtc"&&(this._set.delete(this.getKey(t.userId,e,t.sdkAppId,t.useStringRoomId)),this._set.add(this.getKey(t.userId,r,t.sdkAppId,t.useStringRoomId)))}};function YR(){return A(this,null,function*(){let i,t;try{let y=yield ar();i=y&&y.length}catch(y){}try{let y=yield cr();t=y&&y.length}catch(y){}let e={microphone:i,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:o,isH264DecodeSupported:s,isVp8DecodeSupported:n,isH265EncodeSupported:a,isH265DecodeSupported:d}=this.checkSystemResult.detail,l=Ao.basis(),p={webRTC:l.isWebRTCSupported,getUserMedia:l.isGetUserMediaSupported,webSocket:l.isWebSocketsSupported,screenShare:l.isScreenShareSupported,webAudio:l.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:o,vp8Decode:n,h265Encode:a,h265Decode:d},f={browser:l.browser,os:l.os,trtc:p,devices:e},g={isWebCodecSupported:l.isWebCodecSupported,isMediaSessionSupported:l.isMediaSessionSupported,isWebTransportSupported:l.isWebTransportSupported};je.uploadEvent({log:`trtcstats-${JSON.stringify(f)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(f)}`),je.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(g)}`,userId:this.userId}),Ah()})}function CT(){return xe(i=>{let t=new If;return function(e,r,o){return A(this,null,function*(){let s=String(e.roomId||e.strRoomId);if(this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.userSig=e.userSig,this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.scene=r,e.privateMapKey=e.privateMapKey||"",this.isJoined)throw new ae({code:q.INVALID_OPERATION,message:He({key:$e.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new ae({code:q.INVALID_OPERATION,message:He({key:$e.REPEAT_JOIN,data:this.userId})});t.add({room:this,roomId:s}),this.role=e.role===21?"audience":"anchor",this._log.info(`Join() => joining room: ${s} useStringRoomId: ${this.useStringRoomId} scene: ${this.scene} role: ${this.role}`),U.emit(B.JOIN_START,{room:this,roomId:s,params:e});let n=oi.getEnv();n||(n=Ri.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(Ed.OLD_CLOUD_LADDER)?n=Ri.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(Ed.WEBRTC)&&(n=Ri.WEBRTC))),je.setConfig({env:n,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),Ao.checkSystemRequirementsInternal(o).then(a=>{this.checkSystemResult=a,YR.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!oi.getEnv()&&(yield this.schedule(e,o));let a=yield i.call(this,e,r,o);return this.roomId=s,this._joinedTimestamp=oi.performanceNow(),U.emit(B.JOIN_SUCCESS,{room:this}),o===30&&!e.component&&je.uploadEvent({log:`stat-conv-${Number(Gr)}-${location.hostname}`,userId:this.userId}),a}catch(a){throw t.delete({room:this,roomId:s}),U.emit(B.JOIN_FAILED,{room:this,error:a}),a}})}})}var NT=()=>xe(i=>function(...t){return A(this,null,function*(){U.emit(B.LEAVE_START,{room:this}),yield i.call(this,...t),U.emit(B.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function DT(){return xe(i=>function(...t){return A(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(t=t.filter(r=>r.outMediaTrack&&r.state==="ready"),!t.length))return;U.emit("61",{room:this});let e=i.apply(this,t);return Promise.all(t.map(r=>r.publish(this,e)))})})}function wT(){return xe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function OT(){return xe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function ZR({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return po(r)?r.catch(o=>F.error(`${i.name}() error observed ${o}`)):r}catch(r){F.error(`${i.name}() error observed ${r}`)}}}var Ol=class{constructor(t){m(this,"_frameWorkType");m(this,"_component");m(this,"_language");m(this,"connectionType");m(this,"_room");m(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0,reportToken:void 0});m(this,"_keyPrefix");m(this,"_log");m(this,"_intervalId");m(this,"_firstPublishedUserList");m(this,"_networkQuality");m(this,"_basicInfo");m(this,"_pathJoinRoom");m(this,"_pathLeaveRoom");m(this,"_pathMainVideoMap");m(this,"_pathMainAudioMap");m(this,"_pathAuxiliaryMap");m(this,"_remoteStreamStatMap");m(this,"_localStreamStat");m(this,"_eventMap",new Map);m(this,"_captureCostSum",0);m(this,"_captureCostCount",0);m(this,"isDestroyed",!1);this._frameWorkType=t.frameWorkType||30,this._component=t.component||0,this.connectionType=t.connectionType||1,this._language=t.language||0,this._room=t.room,this._keyPrefix="key_point",this._log=F.createLogger({parent:this._room.getLogger(),id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&Xe(this[e])&&(this[e]=ZR({fn:this[e],context:this}))}),this.initData(),this.installEvents()}initData(){this._firstPublishedUserList=[],this._networkQuality={totalUplinkRTT:0,totalUplinkLoss:0,count:0,totalDownlinkRTTAndLossMap:new Map},this._basicInfo={string_sdk_version:ht,uint32_os_type:15,string_device_name:"",string_http_user_agent:navigator.userAgent,string_os_version:"",uint32_avg_rtt:0,uint32_avg_up_loss:0,uint32_scene:this._room.scene==="live"?1:0,uint32_joining_duration:0,uint32_networkType:0,uint32_framework:this._frameWorkType,uint32_component:this._component,uint32_connection_type:this.connectionType,uint32_caller_coding_language:this._language,string_domain:location.hostname},this._pathJoinRoom={uint64_start_time:0,uint64_send_request_acc_ip_cmd_start_time:0,uint64_send_request_acc_ip_cmd_end_time:0,uint64_send_request_enter_room_cmd_start_time:0,uint64_send_request_enter_room_cmd_end_time:0,uint64_send_first_video_frame_time:0,uint64_recv_userlist_time:0,uint64_end_time:0,int32_send_request_acc_ip_cmd_ret:0,int32_send_request_enter_room_cmd_ret:0,int32_end_ret:0},this._pathLeaveRoom={uint64_start_time:0,uint64_send_request_exit_room_cmd_start_time:0,uint64_send_request_exit_room_cmd_end_time:0,uint64_end_time:0,int32_send_request_exit_room_cmd_ret:0,int32_end_ret:0},this._localStreamStat={totalVideoBitrate:0,totalVideoFPS:0,totalVideoHeight:0,totalVideoWidth:0,totalAudioLevel:0,videoCount:0,audioLevelCount:0,publishStartTime:0,statsToReport:{uint32_audio_capture_db:0,uint32_video_big_capture_fps:0,uint32_video_big_bitrate:0,uint32_video_big_resolution:0,uint32_audio_capture_thread_health_zero_cnt:0,uint32_after3a_silence_duration:0}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,ls().then(()=>{this._basicInfo.string_os_version=Li(),this._basicInfo.string_device_name=ms()||this._basicInfo.string_os_version})}addEvent(t,e){return this._eventMap.set(t,e),U.on(t,e),this}installEvents(){this.handleUnload=this.handleUnload.bind(this),window.addEventListener("pagehide",this.handleUnload),this._room.once("banned",()=>this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})),this.addEvent(B.JOIN_START,this.handleJoinStart).addEvent(B.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(B.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(B.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(B.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(B.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(B.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(B.JOIN_FAILED,this.handleJoinFailed).addEvent(B.LEAVE_START,this.handleLeaveStart).addEvent(B.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(B.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(B.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(B.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(B.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(B.PUBLISH_START,this.handlePublishStart).addEvent(B.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(B.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(B.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(B.PLAY_TRACK_START,this.handlePlayStart).addEvent(B.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(B.PLAYER_STATE_CHANGED,({track:t,state:e,type:r})=>{!t.isRemote||!this.hitTest(t.room)||e==="PLAYING"&&(r===M.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))}).addEvent(B.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(B.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(B.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(B.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(B.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(B.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(B.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let o=e.hasAudio||e.hasVideo||e.hasSmall,s=e.hasAuxiliary,n=r.hasAudio||r.hasVideo||r.hasSmall,a=r.hasAuxiliary;!o&&n&&this.handleRemoteStreamAdded(r.userId,"main"),!s&&a&&this.handleRemoteStreamAdded(r.userId,"auxiliary")}).addEvent(B.SINGLE_CONNECTION_STAT,({room:t,stat:e})=>{this.hitTest(t)&&(this._pathJoinRoom.int32_ice_cost=e.ice,this._pathJoinRoom.int32_dtls_cost=e.dtls,this._pathJoinRoom.int32_peer_connection_cost=e.peerConnection)})}uninstallEvents(){window.removeEventListener("pagehide",this.handleUnload),this._eventMap.forEach((t,e)=>U.off(e,t)),this._eventMap.clear()}destroy(){this.uninstallEvents(),ft.clearTask(this._intervalId),this._pathJoinRoom.uint64_start_time===0&&(this._room=null),this.isDestroyed=!0}handleUnload(){this._room.isJoined&&this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})}handleJoinStart(t){this.hitTest(t.room)&&(this._pathJoinRoom.uint64_start_time===0&&(this._pathJoinRoom.uint64_start_time=Date.now()),t.params&&(O(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),O(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),O(t.params.language)||(this._language=t.params.language,this._basicInfo.uint32_caller_coding_language=this._language)))}handleJoinScheduleSuccess({room:t,detailCost:e}){if(this.hitTest(t)&&e){let{totalCost:r,local:o,dns:s,tcp:n,tls:a,request:d,response:l}=e;this._pathJoinRoom.int32_schedule_cost=r,this._pathJoinRoom.int32_schedule_local=o,this._pathJoinRoom.int32_schedule_dns=s,this._pathJoinRoom.int32_schedule_tcp=n,this._pathJoinRoom.int32_schedule_tls=a,this._pathJoinRoom.int32_schedule_request=d,this._pathJoinRoom.int32_schedule_response=l}}handleSignalConnectionStart({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time=Date.now())}handleSignalConnectionEnd({room:t,error:e}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time=Date.now(),e&&(this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret=e instanceof ae?Number(e.getExtraCode()||e.getCode()):q.UNKNOWN,this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret))}handleJoinSendCMD(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=Date.now())}handleJoinReceivedCMDResponce(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=Date.now(),this._pathJoinRoom.int32_send_request_enter_room_cmd_ret=t.code,t.code!==0&&(this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_enter_room_cmd_ret))}handleJoinSuccess(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_end_time===0&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret=0,this._signalInfo=t.room.getSignalInfo())}handleJoinFailed({room:t,error:e}){this.hitTest(t)&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret===0&&(this._pathJoinRoom.int32_end_ret=e.code||this._pathJoinRoom.int32_send_request_enter_room_cmd_ret||this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret),setTimeout(()=>{this.report()}))}handleReceivedPublishUserList(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_recv_userlist_time===0&&(this._pathJoinRoom.uint64_recv_userlist_time=Date.now(),this._firstPublishedUserList=t.publishedUserList||[])}handleSendFirstVideoFrame({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_first_video_frame_time===0&&this._pathJoinRoom.uint64_start_time!==0&&(this._pathJoinRoom.uint64_send_first_video_frame_time=Date.now())}handleLeaveStart(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_start_time=Date.now())}handleLeaveSuccess(t){var e;if(this.hitTest(t.room)&&this._pathLeaveRoom.uint64_end_time===0){if(this._pathLeaveRoom.uint64_end_time=Date.now(),this._pathJoinRoom.uint64_end_time!==0){this._basicInfo.uint32_joining_duration=this._pathLeaveRoom.uint64_end_time-this._pathJoinRoom.uint64_end_time;let r=(e=this._room.audioManager.localAudioTrack)==null?void 0:e.after3aSilenceStartTime;r&&(this._localStreamStat.statsToReport.uint32_after3a_silence_duration=_e()-r)}else this._log.warn("pathJoinRoom endTime is 0");this.report()}}handleLeaveSendCMD(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_send_request_exit_room_cmd_start_time=Date.now(),this._pathLeaveRoom.uint64_send_request_exit_room_cmd_end_time=Date.now())}handleSwitchRoomStart(t){if(this.hitTest(t.room)){let e=Date.now();this.report().then(()=>{this._pathJoinRoom.uint64_start_time=e,this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=e})}}handleSwitchRoomSuccess({room:t}){if(this.hitTest(t)&&this._pathJoinRoom.uint64_end_time===0){let e=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=e,this._pathJoinRoom.uint64_end_time=e,this._pathJoinRoom.int32_end_ret}}handleSwitchRoomFailed({room:t,error:e}){if(this.hitTest(t)){let r=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=r,this._pathJoinRoom.uint64_end_time=r,e&&(this._pathJoinRoom.int32_end_ret=e instanceof ae?Number(e.getExtraCode()||e.getCode()):q.UNKNOWN)}}handleRemoteStreamAdded(t,e){var o;let r=`${t}_${e}`;if(!this._remoteStreamStatMap.has(r)){let s={userId:t,totalVideoFPS:0,totalVideoBitrate:0,totalAudioLevel:0,totalAudioBitrate:0,totalLoss:0,audioCount:0,audioLevelCount:0,videoCount:0,networkQualityCount:0,streamAddedTime:Date.now(),subscribeStartTime:0,subscribedTime:0,playStreamTime:0,statsToReport:Ee(Y({},KR),{msg_user_info:new Fc({userId:t,tinyId:(o=this._room.remotePublishedUserMap.get(t))==null?void 0:o.tinyId,role:20})})};s.statsToReport.uint32_stream_type=e==="main"?2:7,this._remoteStreamStatMap.set(r,s)}}handleSubscribeStart({room:t,remotePublishedUser:e,streamType:r,subscribeState:o}){if(!this.hitTest(t))return;let{userId:s,tinyId:n,role:a}=e,d=new Fc({userId:s,tinyId:n,role:a==="anchor"?20:21}),l=Date.now(),p=`${s}_${r}`,f=this._remoteStreamStatMap.get(p);f&&f.subscribeStartTime===0&&(f.subscribeStartTime=l),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(p)&&this._pathMainVideoMap.set(p,{statsToReport:{msg_user_info:d,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:s,sendSubscribeCMDTime:l}),e.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(p)&&this._pathMainAudioMap.set(p,{statsToReport:{msg_user_info:d,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:s,sendSubscribeCMDTime:l})):e.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(p)&&this._pathAuxiliaryMap.set(p,{sendSubscribeCMDTime:l})}handleSubscribed({room:t,remotePublishedUser:e,streamType:r}){if(this.hitTest(t)){let o=`${e.userId}_${r}`,s=this._remoteStreamStatMap.get(o);s&&s.subscribedTime===0&&(s.subscribedTime=Date.now())}}handlePlayStart({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._remoteStreamStatMap.get(e);(r==null?void 0:r.playStreamTime)===0&&(r.playStreamTime=Date.now())}handleVideoLoadedData({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._pathMainVideoMap.get(e);r&&r.statsToReport.uint64_combine_first_frame_time===0&&(r.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(t){let e=`${t.userId}_${t.streamType}`,r=Date.now(),o=this._pathMainVideoMap.get(e),s=this._remoteStreamStatMap.get(e);if(s){let{statsToReport:n}=s;if(!n.uint32_video_render_first&&t.streamType==="main"?this.hasVideoFlag(t.userId):this.hasAuxFlag(t.userId)){let a=r-this._pathJoinRoom.uint64_start_time;n.uint32_video_render_first=a,J.addNumber({key:516820,value:a})}}(o==null?void 0:o.statsToReport.uint64_render_first_frame_time)===0&&(o.statsToReport.uint64_render_first_frame_time=r)}handleAudioPlaying(t){let e=`${t.userId}_${t.streamType}`,r=this._pathMainAudioMap.get(e);r&&r.statsToReport.uint64_play_first_frame_time===0&&(r.statsToReport.uint64_play_first_frame_time=Date.now())}handleNetworkQuality(t){this.hitTest(t.room)&&(this._networkQuality.totalUplinkLoss+=t.uplink.loss,this._networkQuality.totalUplinkRTT+=t.uplink.rtt,this._networkQuality.count++,t.downlinks.forEach(({rtt:e,loss:r,userId:o,videoDelay:s,audioDelay:n})=>{let a=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(a)a.totalRTT+=e,a.totalLoss+=r,s&&(a.totalVideoDelay=(a.totalVideoDelay||0)+s,a.videoDelayCount=(a.videoDelayCount||0)+1),n&&(a.totalAudioDelay=(a.totalAudioDelay||0)+n,a.audioDelayCount=(a.audioDelayCount||0)+1),a.count++;else{let d,l,p,f;s&&(l=s,p=1),n&&(d=n,f=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:d,totalVideoDelay:l,audioDelayCount:f,videoDelayCount:p})}}))}handleHeartbeatStats(t){if(this.hitTest(t.room)){let{msg_device_info:e,msg_up_stream_info:r,msg_down_stream_info:o}=t.report;if(r.msg_video_status[0]){let{uint32_video_codec_bitrate:s,uint32_video_enc_fps:n,uint32_video_width:a,uint32_video_height:d}=r.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=s,this._localStreamStat.totalVideoFPS+=n,this._localStreamStat.totalVideoWidth+=a,this._localStreamStat.totalVideoHeight+=d,this._localStreamStat.videoCount++}if(r.msg_audio_status){let{uint32_audio_level:s}=r.msg_audio_status;Math.floor(s/Fi*100)>0&&(this._localStreamStat.totalAudioLevel+=s/Fi,this._localStreamStat.audioLevelCount++)}o.forEach(s=>{let{msg_user_info:n,msg_audio_status:a,msg_video_status:d}=s,l=n.str_identifier,p=this._room.remotePublishedUserMap.get(l);if(d.forEach(f=>{let g=f.uint32_video_stream_type===2,y=f.uint32_video_stream_type===7,R=`${l}_${g?"main":"auxiliary"}`,C=this._remoteStreamStatMap.get(R);if(C&&(g&&(p!=null&&p.remoteVideoTrack.isSubscribed)||y&&(p!=null&&p.remoteAuxiliaryTrack))){C.totalVideoFPS+=f.uint32_video_receive_fps,C.totalVideoBitrate+=f.uint32_video_codec_bitrate,C.videoCount++,C.statsToReport.uint32_video_width===0&&(C.statsToReport.uint32_video_width=f.uint32_video_width),C.statsToReport.uint32_video_height===0&&(C.statsToReport.uint32_video_height=f.uint32_video_height);let N=g?p.remoteVideoTrack:p.remoteAuxiliaryTrack;N.stat.jitterBufferDelay&&(C.videoJitterBufferDelay=N.stat.jitterBufferDelay),N.stat.framesReceived&&(C.statsToReport.uint32_video_consume_render_rate=Math.floor(N.stat.framesDecoded/N.stat.framesReceived*ti(10,6)))}}),!dn(a)){let f=`${l}_main`,g=this._remoteStreamStatMap.get(f);this._remoteStreamStatMap.has(f)&&g&&p!=null&&p.remoteAudioTrack.isSubscribed&&(g.totalAudioBitrate+=a.uint32_audio_codec_bitrate,g.audioCount++,p.remoteAudioTrack.stat.jitterBufferDelay&&(g.audioJitterBufferDelay=p.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(a.uint32_audio_level/Fi*100)>0&&(g.totalAudioLevel+=a.uint32_audio_level/Fi,g.audioLevelCount++),a.uint32_audio_block_time&&(g.statsToReport.uint32_audio_block_time+=a.uint32_audio_block_time))}}),e.uint32_audio_capture_cost&&(this._captureCostSum+=e.uint32_audio_capture_cost,this._captureCostCount+=1,this._captureCostCount>=100&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0)),e.uint32_audio_capture_cost===0&&(this._localStreamStat.statsToReport.uint32_audio_capture_thread_health_zero_cnt+=1)}}handlePublishStart({room:t}){this.hitTest(t)&&this._localStreamStat.publishStartTime===0&&(this._localStreamStat.publishStartTime=Date.now())}handleTrackCaptureStart({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_start_time&&(this._pathJoinRoom.uint64_init_audio_start_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_start_time&&(this._pathJoinRoom.uint64_init_camera_start_time=Date.now())}handleTrackCaptureSuccess({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=0,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=0,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}handleTrackCaptureFailed({track:t,error:e}){let o={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[e.name]||(e instanceof ae?e.getExtraCode()||e.getCode():q.UNKNOWN);t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=o,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=o,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&en)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&tn)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&ga)>=0}hitTest(t){return t===this._room}prepareReport(){if(this._captureCostCount>0&&!this._basicInfo.uint32_audio_capture_cost&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0),this._networkQuality.count>0&&(this._basicInfo.uint32_avg_rtt=Math.floor(this._networkQuality.totalUplinkRTT/this._networkQuality.count),this._basicInfo.uint32_avg_up_loss=Math.floor(this._networkQuality.totalUplinkLoss/this._networkQuality.count)),this._localStreamStat.videoCount>0){this._localStreamStat.statsToReport.uint32_video_big_capture_fps=Math.floor(this._localStreamStat.totalVideoFPS/this._localStreamStat.videoCount),this._localStreamStat.statsToReport.uint32_video_big_bitrate=Math.floor(this._localStreamStat.totalVideoBitrate/this._localStreamStat.videoCount);let t=Math.floor(this._localStreamStat.totalVideoWidth/this._localStreamStat.videoCount),e=Math.floor(this._localStreamStat.totalVideoHeight/this._localStreamStat.videoCount);this._localStreamStat.statsToReport.uint32_video_big_resolution=t<<16|e}this._localStreamStat.audioLevelCount>0&&(this._localStreamStat.statsToReport.uint32_audio_capture_db=Math.floor(this._localStreamStat.totalAudioLevel/this._localStreamStat.audioLevelCount*100)),this._remoteStreamStatMap.forEach((t,e)=>{let{userId:r}=t,o=this._networkQuality.totalDownlinkRTTAndLossMap.get(r);if(o){let{totalLoss:p,count:f,audioDelayCount:g,videoDelayCount:y,totalAudioDelay:R,totalVideoDelay:C}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(p/f),g&&R&&(t.statsToReport.uint32_audio_network_p2p_delay=Math.floor(R/g),t.audioJitterBufferDelay&&(t.statsToReport.uint32_p2p_delay=Math.floor(t.statsToReport.uint32_audio_network_p2p_delay+t.audioJitterBufferDelay))),y&&C&&(t.statsToReport.uint32_video_network_p2p_delay=Math.floor(C/y))}t.videoCount>0&&(t.statsToReport.uint32_video_avg_fps=Math.floor(t.totalVideoFPS/t.videoCount),t.statsToReport.uint32_video_avg_bitrate=Math.floor(t.totalVideoBitrate/t.videoCount)),t.audioCount>0&&(t.statsToReport.uint32_audio_recv_bitrate=t.statsToReport.uint32_audio_bitrate=Math.floor(t.totalAudioBitrate/t.audioCount)),t.audioLevelCount>0&&(t.statsToReport.uint32_audio_play_db=Math.floor(t.totalAudioLevel/t.audioLevelCount*100));let{callDurationCalculator:s}=this._room;s&&(t.statsToReport.uint32_audio_play_time=s.getDuration(e,M.AUDIO),t.statsToReport.uint32_video_play_time=s.getDuration(e,M.VIDEO)),t.statsToReport.uint32_video_render_first&&(t.statsToReport.uint32_video_render_first=Math.min(t.statsToReport.uint32_video_render_first,Bs));let{badCaseDetector:n}=this._room,{dataFreeze:a,count:d}=n.getDataFreezeDuration(e),{renderFreeze:l}=n.getRenderFreezeDuration(e);t.statsToReport.uint32_video_block_count=d,t.statsToReport.uint32_video_block_time=Math.min(a,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_video_external_block_time=Math.min(l,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_audio_block_time=Math.min(t.statsToReport.uint32_audio_block_time,t.statsToReport.uint32_audio_play_time),n.isBlackStream(e)&&t.statsToReport.uint32_video_avg_fps===0?t.statsToReport.uint32_video_black_screen_subjective=1:t.statsToReport.uint32_video_black_screen_subjective=0}),this._pathMainAudioMap.forEach((t,e)=>{if(!this.hasAudioFlag(t.userId)){this._pathMainAudioMap.delete(e);return}t.statsToReport.uint64_play_first_frame_time-t.statsToReport.uint64_start_enter_time>Bs&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+Bs)}),this._pathMainVideoMap.forEach((t,e)=>{if(!this.hasVideoFlag(t.userId)){this._pathMainVideoMap.delete(e);return}t.statsToReport.uint64_render_first_frame_time-t.statsToReport.uint64_start_enter_time>Bs&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+Bs)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>Bs&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+Bs)}getReportData(){this._basicInfo.uint32_networkType=vd();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new Fc({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:un(this._signalInfo.relayIp),uint32_client_ip:un(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*ti(2,31)),msg_path_enter_room:this._pathJoinRoom,msg_path_exit_room:this._pathLeaveRoom,msg_path_recv_video:[...this._pathMainVideoMap.values()].map(e=>e.statsToReport),msg_quality_statistics:[...this._remoteStreamStatMap.values()].map(e=>e.statsToReport),str_room_name:String(this._room.roomId||0),msg_path_recv_audio:[...this._pathMainAudioMap.values()].map(e=>e.statsToReport),uint32_info_client_ip:un(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend,str_user_sig:this._room.userSig,bytes_report_token:this._signalInfo.reportToken};return Aa(t),t}report(){return A(this,null,function*(){try{this.prepareReport();let t=this.getReportData();yield this.upload(t),this.initData()}catch(t){this._log.warn(t)}finally{this.isDestroyed&&(this._room=null)}})}upload(t){return A(this,null,function*(){if(t.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),r=To.enable?Di(t,2001,e):yield Cm(t),o=r instanceof ArrayBuffer,s=`${Ci(e,ho.KEY_POINT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r));let a=[this.uploadKVStat(J),this.uploadKVStat(Es)];n||a.push(wi({url:s,body:r,priority:"low"})),yield Promise.all(a)})}setConnectionType(t){this.connectionType=t,this._basicInfo.uint32_connection_type=t}uploadKVStat(t){return A(this,null,function*(){let e=t.getReportData(this._room.userSig,this._signalInfo.reportToken);if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=Ee(Y({},e.msg_sdk_basic_info),{bytes_device_name:this._basicInfo.string_device_name||"",bytes_os_version:this._basicInfo.string_os_version||"",uint32_framework:this._frameWorkType,uint32_network_type:this._basicInfo.uint32_networkType||0}),this._log.debug(e);let r=To.enable?Di(e,2003,this._room.sdkAppId):yield Cm(e),o=r instanceof ArrayBuffer,s=`${Ci(+this._room.sdkAppId,ho.KV_STAT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r)),n||wi({url:s,body:r})})}};Z([Is({settings:{timeout:500,retries:3}})],Ol.prototype,"upload",1);var Bs=5e3,KR={msg_user_info:null,uint32_video_avg_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_avg_bitrate:0,uint32_video_block_time:0,uint32_video_play_time:0,uint32_audio_block_time:0,uint32_audio_play_time:0,uint32_audio_play_db:0,uint32_avg_down_loss:0,uint32_stream_type:0,uint32_video_block_count:0,uint32_audio_block_count:0,uint32_audio_bitrate:0,uint32_video_black_screen_subjective:0,uint32_audio_recv_bitrate:0,uint32_video_external_block_time:0,uint32_video_consume_render_rate:0},Fc=class{constructor(t){m(this,"str_identifier");m(this,"str_tinyid");m(this,"uint32_role");this.str_identifier=String(t.userId),this.str_tinyid=String(t.tinyId||0),this.uint32_role=t.role}},MT=Ol;var Sf=class{constructor(){m(this,"_startTime");m(this,"_endTime");this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=_e())}stop(){this._endTime===0&&(this._endTime=_e())}getDuration(){return this._endTime===0?_e()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},Ml=Sf;var yf=class{constructor(t){m(this,"_room",null);m(this,"_durationMap");m(this,"_eventMap",new Map);this._room=t.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(B.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(B.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(B.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{var n;let{userId:o}=r;if(!this.hitTest(t))return;e.hasAudio&&!r.hasAudio&&this.stopDurationItem(`${o}_main`,M.AUDIO),e.hasVideo&&!r.hasVideo&&this.stopDurationItem(`${o}_main`,M.VIDEO),e.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem(`${o}_auxiliary`,M.VIDEO);let s=(n=this._room)==null?void 0:n.remotePublishedUserMap.get(o);s&&(!e.hasAudio&&r.hasAudio&&s.remoteAudioTrack.isSubscribed&&this.addDuractionItem(o,M.AUDIO,"main"),!e.hasVideo&&r.hasVideo&&s.remoteVideoTrack.isSubscribed&&this.addDuractionItem(o,M.VIDEO,"main"),!e.hasAuxiliary&&r.hasAuxiliary&&s.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(o,M.VIDEO,"auxiliary"))}),this._eventMap.forEach((t,e)=>U.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>U.off(e,t,this)),this._eventMap.clear()}handleSubscribed({track:t}){if(!this.hitTest(t.room))return;let{userId:e,streamType:r,kind:o}=t;t.isSubscribed?this.addDuractionItem(e,o,r):this.stopDurationItem(`${e}_${r}`,o)}handleUnsubscribed({track:t}){this.hitTest(t.room)&&this.stopDurationItem(`${t.userId}_${t.streamType}`,t.kind)}isRecording(t){return t.findIndex(e=>e.endTime===0)>=0}addDuractionItem(t,e,r){let o=`${t}_${r}`,s=new Ml,n=this._durationMap.get(o);n?this.isRecording(n[e])||n[e].push(s):this._durationMap.set(o,{userId:t,type:r,audio:e===M.AUDIO?[s]:[],video:e===M.AUDIO?[]:[s]})}stopDurationItem(t,e){if(this._durationMap.has(t)){let o=this._durationMap.get(t)[e].find(s=>s.endTime===0);o&&o.stop()}}hitTest(t){return this._room===t}getDuration(t,e){return this._durationMap.has(t)?this._durationMap.get(t)[e].reduce((o,s)=>o+s.getDuration(),0):0}getDurationMap(){return this._durationMap}reset(){this._durationMap.clear()}destroy(){this._room=null,this.uninstallEvents()}},xT=yf;var Af=class{constructor(){m(this,"renderFreezeMap",new Map);m(this,"dataFreezeMap",new Map)}get(t,e){let r=this.renderFreezeMap.get(t),o=this.dataFreezeMap.get(t);return e?e==="data"?o:r:(_t||lt)&&r&&o&&r.duration>o.duration?r:o}set(t,e,r){r==="data"?this.dataFreezeMap.set(t,e):this.renderFreezeMap.set(t,e)}clear(){this.renderFreezeMap.clear(),this.dataFreezeMap.clear()}},bf=class{constructor(t){m(this,"_room");m(this,"_renderFreezeMap",new Map);m(this,"_isVideoPlayingEventFiredMap",new Map);m(this,"_dataFreezeMap",new Map);m(this,"_monitorFreezeData",new Af);m(this,"_eventMap",new Map);m(this,"_videoEncodeFailedCount",0);m(this,"_audioEncodeFailedCount",0);m(this,"_encodeFailedThreshold",3);m(this,"eventListenerMap",new Map);this._room=t.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(B.LEAVE_SUCCESS,({room:t})=>{this.hitTest(t)&&this.stop()}).set(B.PLAY_TRACK_START,this.onPlayTrackStart).set(B.UNSUBSCRIBE_SUCCESS,({room:t,streamType:e,remotePublishedUser:r})=>{if(!this.hitTest(t))return;let{userId:o}=r,s=`${o}_${e}`;this.stopDataFreeze({key:s,userId:o,type:e})}).set(B.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let{userId:o}=r;if(e.hasVideo&&!r.hasVideo){let s="main",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}if(e.hasAuxiliary&&!r.hasAuxiliary){let s="auxiliary",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}}).set(B.PLAYER_STATE_CHANGED,({track:t,state:e,reason:r,type:o})=>{if(!(!t.isRemote||!t.room||!this.hitTest(t.room)||o!==M.VIDEO)){if(e==="PLAYING"){let s=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.set(s,!0)}r===M.MUTE?this.onVideoTrackMuted(t):r===M.UNMUTE&&this.onVideoTrackUnmuted(t)}}).set(B.HEARTBEAT_REPORT,this.onHearBeatReport).set(B.REMOTE_VIDEO_PLAY_START,this.onRemoteVideoPlayStart).set(B.REMOTE_VIDEO_PLAY_FINISH,this.onRemoteVideoPlayEnd),this._eventMap.forEach((t,e)=>U.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>U.off(e,t,this)),this._eventMap.clear()}stop(){this._renderFreezeMap.clear(),this._dataFreezeMap.clear(),this._isVideoPlayingEventFiredMap.clear()}onVideoTrackMuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`,s=this._dataFreezeMap.get(o),n=new Ml;s?s.durationItemList.push(n):this._dataFreezeMap.set(o,{userId:e,type:r,durationItemList:[n],isFreezing(){let a=this.durationItemList[this.durationItemList.length-1];return a&&a.endTime===0}})}onVideoTrackUnmuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`;this.stopDataFreeze({key:o,userId:e,type:r})}onHearBeatReport({room:t,report:e}){if(this.hitTest(t)){if(e.msg_up_stream_info.msg_video_status){let r=e.msg_up_stream_info.msg_video_status,o=Array.from(this._room.localTracks).find(n=>n.kind==="video"&&!n.isScreen),s=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||s<=0||o!=null&&o.isUseCustomSource)return;r.forEach(n=>{n.uint32_video_stream_type===2&&(n.uint32_video_capture_fps!==0&&n.uint32_video_codec_bitrate===0&&n.uint32_video_enc_fps===0&&(o!=null&&o.isPublished)?(this._videoEncodeFailedCount+=1,this._videoEncodeFailedCount===this._encodeFailedThreshold&&je.uploadEvent({userId:this._room.userId,log:`stat-${Ar.VIDEO_ENCODE_FAILED_DURING_CALL}`})):this._videoEncodeFailedCount=0)})}if(e.msg_up_stream_info.msg_audio_status){let r=e.msg_up_stream_info.msg_audio_status,o=Array.from(this._room.localTracks).find(n=>n.kind==="audio"),s=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||s<=0)return;r.uint32_audio_codec_bitrate===0&&(o!=null&&o.isPublished)?(this._audioEncodeFailedCount+=1,this._audioEncodeFailedCount===this._encodeFailedThreshold&&je.uploadEvent({userId:this._room.userId,log:`stat-${Ar.AUDIO_ENCODE_FAILED_DURING_CALL}`})):this._audioEncodeFailedCount=0}}}stopDataFreeze({key:t,userId:e,type:r}){let o=this._dataFreezeMap.get(t);if(!o||!o.isFreezing())return;let s=o.durationItemList[o.durationItemList.length-1];s.stop();let n=s.getDuration();if(n>Id){let a=this._monitorFreezeData.get(t,"data");this._monitorFreezeData.set(t,{userId:e,type:r,duration:a?a.duration+n:n},"data")}else o.durationItemList.pop()}getTotalDuration(t){return t.reduce((e,r)=>{let o=r.getDuration();return e+Math.min(o,5e3)},0)}onPlayTrackStart({track:t}){if(!t.isRemote||!this.hitTest(t.room)||t.kind!==M.VIDEO||!t.isRemotePublished)return;let e=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.has(e)||this._isVideoPlayingEventFiredMap.set(e,!1)}getDataFreezeDuration(t){let e={dataFreeze:0,count:0},r=this._dataFreezeMap.get(t);if(r){if(r.isFreezing()){let o=r.durationItemList[r.durationItemList.length-1];o.stop(),o.getDuration()<Id&&r.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(r.durationItemList),e.count=r.durationItemList.length}return e}getRenderFreezeDuration(t){let e={renderFreeze:0,count:0},r=this._renderFreezeMap.get(t);return r&&(e.renderFreeze=r.totalDuration,e.count=r.count),e}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(t){return this._isVideoPlayingEventFiredMap.has(t)?!this._isVideoPlayingEventFiredMap.get(t):!1}onRemoteVideoPlayStart({track:t,player:e}){var n;if(!qr())return;let r=0,o=()=>{document.hidden||(r=0)};document.addEventListener("visibilitychange",o);let s=(a,d)=>{var l;if(r){let p=t.decodeFPS,f=p>0&&p<=5?600+1e3/p:600,g=d.presentationTime-r;if(g>f){g=Math.min(g,5e3);let y=`${t.userId}_${t.streamType}`,R=this._monitorFreezeData.get(y,"render");R?R.duration+=g:this._monitorFreezeData.set(y,{userId:t.userId,type:t.streamType,duration:g},"render");let C=this._renderFreezeMap.get(y);C?(C.totalDuration+=g,C.count+=1):this._renderFreezeMap.set(y,{userId:t.userId,type:t.streamType,totalDuration:g,count:1})}}r=d.presentationTime,(l=e.element)==null||l.requestVideoFrameCallback(s)};(n=e.element)==null||n.requestVideoFrameCallback(s),this.eventListenerMap.set(`${t.userId}_${t.streamType}`,{onVisibilityChange:o})}onRemoteVideoPlayEnd({track:t,player:e}){let r=`${t.userId}_${t.streamType}`,o=this.eventListenerMap.get(r);o&&document.removeEventListener("visibilitychange",o.onVisibilityChange)}resetMonitor(){this._monitorFreezeData.clear()}hitTest(t){return t===this._room}destroy(){this.uninstallEvents()}},PT=bf;var UT=Ai(ki(),1);var xl=class{constructor(t,e,r,o,s,n=4/3){this.vbMode=t;this.faceDetectorHash=r;this.visionTaskRegistry=o;this.logger=s;m(this,"animationState");m(this,"originalAspect");m(this,"totalOffsetX",0);m(this,"totalOffsetY",0);m(this,"defaultScaleRatio",.1);m(this,"isRecovering",!1);m(this,"boundaryY",280);m(this,"lastActionTime",0);m(this,"restTime",400);this.animationState={current:null,target:null,animating:!1,debounceTimer:null,startTime:0,duration:3e3,debounceTime:150,movementThreshold:30,debounceThreshold:15},this.addEvent(this.vbMode,!!this.faceDetectorHash),this.originalAspect=n||4/3,this.visionTaskRegistry.setVideo(this.faceDetectorHash,e)}addEvent(t,e,r){let s=[{key:570704,error:r!=null?r:e?void 0:11},{key:570705,error:r!=null?r:e?void 0:22}][t-1];s&&(e?J.addSuccessEvent({key:s.key}):J.addFailedEvent({key:s.key,error:s.error}))}actionCentering(t){let e=Date.now();if(this.animation(),!this.faceDetectorHash||e-this.lastActionTime<this.restTime||this.animationState.animating)return;let{videoWidth:r,videoHeight:o}=t;this.animationState.debounceThreshold=r/30,this.animationState.movementThreshold=r/20,this.boundaryY=o*.6;try{let s=this.visionTaskRegistry.getResult(this.faceDetectorHash);if(s.detections.length<=0){this.vbMode===1&&this.recoverOriginal(r,o);return}let n=s.detections[0].boundingBox,a=n.originX,d=n.originY,l=n.width,p=n.height;this.vbMode===1?this.dualStageCropping(r,o,a,d,l,p):this.vbMode===2&&this.movingPortrait(r,o,a,d,l,p)}catch(s){this.logger.error(s)}this.lastActionTime=e}calculateBoundary(t,e,r,o){let s,n;return t>e/2?(s=e-r-o,n=r-s):(s=r,n=0),{min:s,offset:n}}calculateTargetPosition(t,e,r,o,s,n,a=.4){let d=t+r/2,l=e+o/2,p,f,{min:g,offset:y}=this.calculateBoundary(d,s,t,r),{min:R,offset:C}=this.calculateBoundary(l,n,e,o);return p=2*g+r,f=2*R+o,p/f>this.originalAspect?(p=f*this.originalAspect,y=d-p/2):(f=p/this.originalAspect,C=l-f/2),r/s>a&&(y=0,C=0,p=s,f=n),y=Math.max(0,Math.min(y,s-p)),C=Math.max(0,Math.min(C,n-f)),{sx:y,sy:C,cropWidth:p,cropHeight:f,timestamp:Date.now()}}processFacePositionCrop(t,e,r){if(!this.animationState.current||!this.animationState.target){let a={sx:0,sy:0,cropWidth:e,cropHeight:r,timestamp:Date.now()};this.animationState.current=a,this.animationState.target=a;return}let o=this.positionDistance(this.animationState.target,t),s=this.positionDistance(this.animationState.current,t),n=this.animationState.current.cropWidth/e;o>this.animationState.debounceThreshold*n&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&s>this.animationState.movementThreshold*n&&(this.animationState.target=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}processFacePositionPortrait(t){if(!this.animationState.current||!this.animationState.target){this.animationState.current=Y({},t),this.animationState.target=Y({},t);return}let e=this.positionDistance(this.animationState.current,t),r=this.positionDistance(this.animationState.target,t);e>this.animationState.debounceThreshold&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&r>this.animationState.movementThreshold&&(this.animationState.current=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}animation(){if(!this.animationState.animating)return;let t=Date.now()-this.animationState.startTime,e=Math.min(t/this.animationState.duration,1),r=o=>o<.5?2*o*o:-1+(4-2*o)*o;if(this.animationState.current&&this.animationState.target){let o=(this.animationState.target.sx-this.animationState.current.sx)*r(e);this.animationState.current.sx+=o,this.totalOffsetX+=o;let s=(this.animationState.target.sy-this.animationState.current.sy)*r(e);if(this.animationState.current.sy+=s,this.totalOffsetY+=s,this.animationState.current.cropWidth+=(this.animationState.target.cropWidth-this.animationState.current.cropWidth)*r(e),this.animationState.current.cropHeight+=(this.animationState.target.cropHeight-this.animationState.current.cropHeight)*r(e),this.animationState.current.scaleRatio&&this.animationState.target.scaleRatio&&(this.animationState.current.scaleRatio+=(this.animationState.target.scaleRatio-this.animationState.current.scaleRatio)*r(e)),Ve(this.animationState.current.scaleOffsetX)&&Ve(this.animationState.target.scaleOffsetX)&&Ve(this.animationState.current.scaleOffsetY)&&Ve(this.animationState.target.scaleOffsetY)){let n=(this.animationState.target.scaleOffsetX-this.animationState.current.scaleOffsetX)*r(e);this.animationState.current.scaleOffsetX+=n;let a=(this.animationState.target.scaleOffsetY-this.animationState.current.scaleOffsetY)*r(e);this.animationState.current.scaleOffsetY+=a}}e>=1&&(this.animationState.animating=!1,this.animationState.current=this.animationState.target,this.isRecovering=!1)}positionDistance(t,e){return Math.sqrt(ti(t.sx-e.sx,2)+ti(t.sy-e.sy,2))}recoverOriginal(t,e){this.animationState.target={sx:0,sy:0,cropWidth:t,cropHeight:e,timestamp:Date.now()},this.animationState.animating=!0,this.animationState.startTime=Date.now(),this.isRecovering=!0}dualStageCropping(t,e,r,o,s,n,a=.3){if(this.isRecovering)return;let d=this.calculateTargetPosition(r,o,s,n,t,e);this.processFacePositionCrop(d,t,e),s*n/d.cropWidth/d.cropHeight>a&&this.recoverOriginal(t,e)}movingPortrait(t,e,r,o,s,n){var d,l,p,f,g,y,R,C,N,k,Q,H;let a={sx:r+s/2+this.totalOffsetX,sy:o+n/2+this.totalOffsetY,cropWidth:t,cropHeight:e,scaleRatio:(l=(d=this.animationState.current)==null?void 0:d.scaleRatio)!=null?l:1,scaleOffsetX:(f=(p=this.animationState.current)==null?void 0:p.scaleOffsetX)!=null?f:0,scaleOffsetY:(y=(g=this.animationState.current)==null?void 0:g.scaleOffsetY)!=null?y:0,timestamp:Date.now()};this.animationState.target={sx:t/2,sy:o+n/2,cropWidth:t,cropHeight:e,scaleRatio:(C=(R=this.animationState.target)==null?void 0:R.scaleRatio)!=null?C:1,scaleOffsetX:(k=(N=this.animationState.target)==null?void 0:N.scaleOffsetX)!=null?k:0,scaleOffsetY:(H=(Q=this.animationState.target)==null?void 0:Q.scaleOffsetY)!=null?H:0,timestamp:Date.now()},this.animationState.animating||(this.animationState.target.scaleRatio=Math.sqrt(s*n/t/e/this.defaultScaleRatio),this.animationState.target.scaleOffsetX=-this.animationState.target.scaleRatio/2+.5,this.animationState.target.scaleOffsetY=-this.animationState.target.scaleRatio+1,(this.animationState.target.sy-this.animationState.target.scaleOffsetY*this.animationState.target.cropHeight)/this.animationState.target.scaleRatio<this.boundaryY&&(this.animationState.target.scaleOffsetY=(this.animationState.target.sy-this.boundaryY*this.animationState.target.scaleRatio)/this.animationState.target.cropHeight)),this.processFacePositionPortrait(a)}set aspectRatio(t){this.originalAspect=t}get current(){return this.animationState.current}get offset(){return{offsetX:this.totalOffsetX,offsetY:this.totalOffsetY}}get targetCrop(){return this.animationState.target}};var ev=`#version 300 es
103
+ 2. If the user is in Chrome 70 and below, when the div container is moved, the playback will be paused.`,color:"orange",class:"orange",textColor:"#fff"},'"displaySurface":"window"':{tips:"Screen sharing captures the application window",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"monitor"':{tips:"Screen sharing captures the entire screen",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"browser"':{tips:"Screen sharing captures a certain tab page",color:"blue",class:"blue",textColor:"#fff"},updateMediaSettings:{tips:"The resolution and frame rate below are the actual resolution and frame rate captured",color:"blue",class:"blue",textColor:"#fff"},"main stream start to play with":{tips:"Call remoteStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"stream start to play with":{tips:"Call localStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"main setAudioVolume to 0":{tips:"Business side calls remoteStream.setAudioVolume(0) interface to set the playback volume to 0, which will cause the playback to be silent",color:"orange",class:"orange",textColor:"#fff"},"screen sharing was stopped because the video track is ended":{tips:"Screen sharing capture stopped, possible reasons: user clicks the stop button, the window/page shared by the user is closed, etc.",color:"orange",class:"orange",textColor:"#fff"},"Join() => joining room":{tips:"Call client.join interface",color:"blue",class:"blue",textColor:"#fff"},"publish() => publishing local stream":{tips:"Call client.publish interface",color:"blue",class:"blue",textColor:"#fff"},"subscribe() => subscribe to":{tips:"Call client.subscribe interface",color:"blue",class:"blue",textColor:"#fff"},"switchRole() => switch role":{tips:"Call client.switchRole interface",color:"blue",class:"blue",textColor:"#fff"}};["enterRoom","exitRoom","switchRole","destroy","startLocalAudio","updateLocalAudio","stopLocalAudio","startLocalVideo","updateLocalVideo","stopLocalVideo","startScreenShare","updateScreenShare","stopScreenShare","startRemoteVideo","updateRemoteVideo","stopRemoteVideo","muteRemoteAudio","setRemoteAudioVolume"].forEach(i=>{IT[`${i}()`]={tips:`Call trtc.${i}`,color:"blue",class:"blue",textColor:"#fff"}});var IB=Object.keys(IT);var XR=0,Cl,Pc=class Pc{constructor(t){this.core=t;m(this,"_core");m(this,"log");m(this,"dumpLocalVideoMap",{});m(this,"dumpRemoteVideoMap",{});m(this,"dialog");this._core=t,this.log=t.log.createChild({id:`${this.getAlias()}${++XR}`}),this.log.info("created")}getName(){return Pc.Name}getAlias(){return"dm"}getGroup(){return"dm"}getValidateRule(t){switch(t){case"start":return{name:"StartDebugOptions",required:!1};case"update":return{name:"UpdateDebugOptions",required:!1};case"stop":return{name:"StopDebugOptions",required:!1}}}start(){return A(this,null,function*(){var e;!new URLSearchParams(location.search).has("trtcDebug")&&((e=window.sessionStorage)==null?void 0:e.getItem("TRTC_ENABLE_DEBUG_PLUGIN"))!=="true"||(yield this.openDebugDiaLog(),this.addVideoProcessor())})}update(e){return A(this,arguments,function*({visible:t}){t?(yield this.openDebugDiaLog(),this.addVideoProcessor()):(this.closeDebugDiaLog(),this.removeVideoProcessor())})}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return A(this,null,function*(){var t;if(!this.dialog)try{if(Cl)yield Cl;else{let e=new URLSearchParams(location.search).get("trtcDebugDialogPath")||((t=window.sessionStorage)==null?void 0:t.getItem("TRTC_DEBUG_DIALOG_PATH"))||`https://unpkg.com/${ET}@${ht}/assets/debug-dialog.js`;Cl=this._core.fileDownloader.loadScript(e),yield Cl}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(e){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(e))}})}closeDebugDiaLog(){this.dialog&&(this.dialog.closeDialog(),this.dialog=null)}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):gf,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):Ef,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo({frame:t,mediaType:e}){return gf({frame:t,onDump:()=>{if(!e)return;let r=e===2?"sub":"main",o=this.dumpLocalVideoMap[r];o&&(o.data.push(t.data.slice(0)),o.duration>0&&Date.now()-o.startTimestamp>o.duration*1e3&&o.onDumpEnd())}})}decodeVideo({frame:t,track:e}){return Ef({frame:t,onDump:()=>{if(!e)return;let r=this.dumpRemoteVideoMap[`${e.userId}-${e.streamType}`];r&&(r.data.push(t.data.slice(0)),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}})}};m(Pc,"Name","Debug"),m(Pc,"autoStart",!0);var Nl=Pc;var ST=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},Dl=class{constructor(t,e,r){m(this,"trackDoneOB");m(this,"startOB");m(this,"stopOB");m(this,"inputFrameCount",0);m(this,"decodedFrameCount",0);m(this,"type","auto");m(this,"config");m(this,"decoder");m(this,"_decodeSink");let{kvStatManager:o,trtc:s}=t;this.config=r.config,this.trackDoneOB=ye(e,ue.INIT),this.stopOB=At(),this.startOB=At(),r.type==="auto"?this.type="webCodecs":this.type=r.type;let n=At(),a=d=>{let l=this.pipe(e);return n.next("STARTING"),e.log.info(`decoder type: ${this.type}`),Ae(l,ze(this.stopOB),Pe(()=>{},p=>{e.log.error(p),o.addFailedEvent({key:ST(this.type),error:p}),d>4?this.startOB.error(p):this.startOB.next(d+1)})),Ae(l,Qr(1),bp(pc))};Ae(this.startOB,mc(0),ui(a),ze(this.stopOB),Pe(()=>{e.player.setOutput(),n.next("STARTED")},d=>{n.next("FAILED")},()=>{o.addSuccessEvent({key:ST(this.type)}),o.addSuccessEvent({key:504702})}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.startOB.next(0)}close(t){this.stopOB.next(t)}pipe(t){return ji()(e=>A(this,null,function*(){this._decodeSink=e,e.defer(()=>{var o;(o=this.decoder)==null||o.close()});let{type:r}=this;try{switch(r){case"webCodecs":this.decoder=new AudioDecoder({error:o=>{t.log.error(o),e.error(4)},output:o=>{this.decodedFrameCount++,e.next(o),t.player.write(o)}});break;case"wasm":break}this.decoder.configure(this.config)}catch(o){t.log.error(o),e.error(r==="webCodecs"?2:6)}}))}decodeFrame(t){var e;this.inputFrameCount++,((e=this.decoder)==null?void 0:e.state)==="configured"&&this.decoder.decode(new EncodedAudioChunk({data:t.data,timestamp:t.timestamp,type:"key"}))}},QR={type:"object"},Lc=class Lc{constructor(t){this.core=t;m(this,"log");m(this,"contextMap",new Map);m(this,"decodeProcessorMap",new WeakMap);this.log=t.log.createChild({id:`${this.getAlias()}`})}getAlias(){return Lc.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return Lc.Name}getValidateRule(t){return QR}start(t){let{track:e}=t;this.decodeProcessorMap.set(e,this.decode(t)),this.core.room.audioManager.addDecodeProcessor({processor:({frame:r,track:o})=>this.decodeProcessorMap.has(o)?this.decodeProcessorMap.get(o)({frame:r,track:o}):r,type:3})}decode(t){return({frame:e,track:r})=>{if(r!==t.track)return e;if(this.contextMap.has(r))return this.contextMap.get(r).decodeFrame(e);let o=new Dl(this.core,r,t);return Ae(o.trackDoneOB,Qr(1),Pe(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:r})})),this.contextMap.set(r,o),o.decodeFrame(e)}}stop({track:t}){let e=this.contextMap.get(t);e&&(e.close("stop"),this.contextMap.delete(t),this.contextMap.size===0&&this.core.room.audioManager.removeDecodeProcessor({type:3}))}update(t){let e=this.contextMap.get(t.track);if(e){if(t.type==="mock"){e.mock(10);return}e.close("update"),this.contextMap.set(t.track,new Dl(this.core,t.track,t))}}};m(Lc,"Name","TRTCAudioDecoder");var kc=Lc;var wl=class{constructor(){m(this,"log");this.log=F.createLogger({id:"exp"})}call(t,e){return A(this,null,function*(){return Xe(this[t])?this[t](e):Promise.reject(new ae({code:q.INVALID_PARAMETER,message:He({key:$e.API_NOT_EXIST,data:{name:t}})}))})}enableAudioFrameEvent(t){return A(this,null,function*(){let{trtcInstance:e,enable:r,userId:o,sampleRate:s=48e3,channelCount:n=1,port:a}=t,{audioManager:d}=e.room,{getPCMAbortCtrlMap:l,audioFrameEventConfigMap:p}=d;if(p.set(o,{enable:r,sampleRate:s,channelCount:n,port:a}),r)if(o==="*")e.room.remotePublishedUserMap.forEach(f=>{if(f.remoteAudioTrack.isAvailable){if(l.get(f.userId))return;let g=d.getPCM(y=>{e.emit(ee.AUDIO_FRAME,y)},f.userId);l.set(f.userId,g)}});else{if(l.get(o))return;let f=d.getPCM(g=>{e.emit(ee.AUDIO_FRAME,g)},o);l.set(o,f)}else if(o==="*")e.room.remotePublishedUserMap.forEach(f=>{if(f.remoteAudioTrack.isSubscribed){let{userId:g}=f,y=l.get(g);y==null||y.abort("disable"),l.delete(g)}});else{let f=l.get(o);f==null||f.abort("disable"),l.delete(o)}})}resumeRemotePlayer(t){return A(this,null,function*(){if(t.userId==="*"){let r=[];return t.trtcInstance.room.remotePublishedUserMap.forEach(o=>{let{remoteAudioTrack:s,remoteVideoTrack:n,remoteAuxiliaryTrack:a}=o;t.streamType?t.streamType==="main"?(s.isAvailable&&r.push(s.player.resume()),n.isAvailable&&r.push(n.player.resume())):a.isAvailable&&r.push(a.player.resume()):(s.isAvailable&&r.push(s.player.resume()),n.isAvailable&&r.push(n.player.resume()),a.isAvailable&&r.push(a.player.resume()))}),Promise.all(r)}let e=t.trtcInstance.room.remotePublishedUserMap.get(t.userId);if(e)return t.streamType==="main"?Promise.all([e.remoteAudioTrack.player.resume(),e.remoteVideoTrack.player.resume()]):e.remoteAuxiliaryTrack.player.resume()})}pauseRemotePlayer(t){if(t.userId==="*")t.trtcInstance.room.remotePublishedUserMap.forEach(e=>{let{remoteAudioTrack:r,remoteVideoTrack:o,remoteAuxiliaryTrack:s}=e;t.streamType?t.streamType==="main"?(r.isAvailable&&r.player.pause(),o.isAvailable&&o.player.pause()):s.isAvailable&&s.player.pause():(r.isAvailable&&r.player.pause(),o.isAvailable&&o.player.pause(),s.isAvailable&&s.player.pause())});else{let e=t.trtcInstance.room.remotePublishedUserMap.get(t.userId);e&&(t.streamType==="main"?(e.remoteAudioTrack.player.pause(),e.remoteVideoTrack.player.pause()):e.remoteAuxiliaryTrack.player.pause())}}};Z([o_({name:"options",type:"object",required:!0,properties:{enable:{required:!0,type:"boolean"},userId:{required:!0,type:"string"},sampleRate:{type:"number",values:[8e3,16e3,32e3,44100,48e3]},channelCount:{type:"number",values:[1,2]},port:{type:"messageport"}}})],wl.prototype,"enableAudioFrameEvent",1);var yT=new wl;var AT=bi(ki(),1);var _f=class extends AT.EventEmitter{constructor(){super();m(this,"states",{});m(this,"permissionChangeHandler");m(this,"log");this.log=F.createLogger({id:"pm"}),this.permissionChangeHandler=()=>{var e,r;this.emit("permission-state-change",{camera:(e=this.states.camera)==null?void 0:e.state,microphone:(r=this.states.microphone)==null?void 0:r.state})}}request(e){return A(this,null,function*(){if(this.log.info(`request ${e.join(", ")}`),e.length===0)return Promise.resolve();(yield navigator.mediaDevices.getUserMedia({video:e.includes("camera"),audio:e.includes("microphone")})).getTracks().forEach(o=>o.stop())})}get(e){return A(this,null,function*(){try{return this.states[e]||(this.states[e]=yield navigator.permissions.query({name:e}),this.states[e].addEventListener("change",this.permissionChangeHandler)),this.log.info(`get ${e} permission state: ${this.states[e].state}`),this.states[e].state}catch(r){return this.log.error(`get ${e} permission failed, error: ${r instanceof Error?r.message:r}`),null}})}destroy(){Object.values(this.states).forEach(e=>{e==null||e.removeEventListener("change",this.permissionChangeHandler)}),this.states={}}},Uc=new _f;var bT=0,Vc=new Set,Lt=null;sm(nf);bn.checkStorage();var pe=class pe extends RT.EventEmitter{constructor(e,r){super();m(this,"_room");m(this,"_eventListened",new Set);m(this,"_localVideoTrack",null);m(this,"_localAudioTrack",null);m(this,"_localScreenTrack",null);m(this,"_localScreenAudioTrack",null);m(this,"_localVideoConfig",null);m(this,"_localScreenConfig",null);m(this,"_localAudioConfig",null);m(this,"_remoteVideoConfigMap",new Map);m(this,"_remoteAudioConfigMap",new Map);m(this,"_remoteAudioVolumeMap",new Map);m(this,"_remoteAudioMuteMap",new Map);m(this,"_mediaTrackMap",new WeakMap);m(this,"_log",F.createLogger({id:`t${++bT}`}));m(this,"_plugins",new Map);m(this,"_networkQuality",null);m(this,"_speakerId");m(this,"enterRoomParams");m(this,"_enableAutoSwitchWhenRecapturing",!0);this._room=new e(Y({logger:this._log,frameWorkType:pe.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,Ye(r.enableAutoSwitchWhenRecapturing)&&(this._enableAutoSwitchWhenRecapturing=r.enableAutoSwitchWhenRecapturing),this._log.info(`create() ${JSON.stringify(r,(o,s)=>o==="plugins"?s.map(n=>n.Name):s)}`),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(o){return this._room.audioManager.dump(o)}}}),r.plugins&&r.plugins.forEach(o=>{this._use(o,r.assetsPath)}),this._use(Al,r.assetsPath),this._use(Sl,r.assetsPath),this._use(Rl,r.assetsPath),this._use(kc,r.assetsPath),this._use(Nl),r.enableSEI&&Xa&&this._use(vl),this._room.on("audio-volume",o=>{var s,n;!o.find(a=>a.userId==="")&&this._localAudioTrack&&o.push({userId:"",volume:Math.floor(((s=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?s:this._localAudioTrack.getAudioLevel())*100),floatVolume:(n=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?n:this._localAudioTrack.getInternalAudioLevel()}),r.volumeType===1&&o.forEach(a=>{var l;let d=a.userId===""?this._localAudioTrack:(l=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:l.remoteAudioTrack;d&&(a.volume=d.dbVolume)}),r.enableDbVolume&&o.forEach(a=>{var l;let d=a.userId===""?this._localAudioTrack:(l=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:l.remoteAudioTrack;d&&(a.volume=d.dbVolume)}),this.emit(ee.AUDIO_VOLUME,{result:o.sort((a,d)=>d.volume-a.volume)})}),this._room.videoManager.on("error",o=>{this._log.error(new oe({code:se.OPERATION_FAILED,extraCode:5504,message:o.message,originError:o}))}),this._listenEvents(),this._initActiveSpeaker(),hT(this,"trtc")}static create(e){}static _create(e,r){Z_();let o=new pe(e,r||{});return Vc.add(o),o.__v_skip=!0,o}get room(){return this._room}_listenEvents(){Ft(this,this._room).add("peer-join",e=>{let{userId:r}=e;this.emit(ee.REMOTE_USER_ENTER,{userId:r})}).add("peer-leave",e=>{this.emit(ee.REMOTE_USER_EXIT,{userId:e})}).add("banned",e=>{this._exitRoom().finally(()=>{this.emit(ee.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().finally(()=>{this.emit(ee.ERROR,oe.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(ee.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=Ee(Y({},e),{uplinkRTT:Math.min(e.uplinkRTT,_a),downlinkRTT:Math.min(e.downlinkRTT,_a)});this.emit(ee.NETWORK_QUALITY,r)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{Ft(o,o).add("player-state-changed",s=>{let n=Ee(Y({},s),{userId:e.userId});o.kind===M.VIDEO&&(n.streamType=fi(o.streamType)),this.emit(o.kind===M.AUDIO?ee.AUDIO_PLAY_STATE_CHANGED:ee.VIDEO_PLAY_STATE_CHANGED,n)}).add("error",s=>{s.getCode()===q.PLAY_NOT_ALLOWED&&this.emit(ee.AUTOPLAY_FAILED,{userId:o.userId,mediaType:o.strMediaType,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{St(o)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:r})=>{let{userId:o}=r,s=e.audioAvailable,n=e.videoAvailable,{audioAvailable:a,videoAvailable:d}=r;a||this._remoteAudioConfigMap.delete(o),d||this._removeRemoteVideoConfig(o,"main"),r.hasAuxiliary||this._removeRemoteVideoConfig(o,"sub"),n!==d&&(d?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(d?ee.REMOTE_VIDEO_AVAILABLE:ee.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),s!==a&&(a?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:r}),this.emit(a?ee.REMOTE_AUDIO_AVAILABLE:ee.REMOTE_AUDIO_UNAVAILABLE,{userId:o})),e.hasAuxiliary!==r.hasAuxiliary&&(r.hasAuxiliary?this._onVideoAvailable({userId:o,streamType:"sub"}):this._onVideoUnavailable({userId:o,streamType:"sub"}),this.emit(r.hasAuxiliary?ee.REMOTE_VIDEO_AVAILABLE:ee.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))}).add("sei-message",e=>{this.emit(ee.SEI_MESSAGE,Ee(Y({},e),{streamType:fi(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(ee.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,n,a,d,l,p,f;let r={2:"big",3:"small",7:"sub"},o={rtt:Math.min(e.msg_up_stream_info.msg_network_status.uint32_rtt||((s=e.msg_down_stream_info[0])==null?void 0:s.msg_network_status.uint32_rtt)||((n=this._networkQuality)==null?void 0:n.uplinkRTT)||((a=this._networkQuality)==null?void 0:a.downlinkRTT)||0,_a),upLoss:((d=this._networkQuality)==null?void 0:d.uplinkLoss)||0,downLoss:((l=this._networkQuality)==null?void 0:l.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((p=e.msg_up_stream_info.msg_audio_status)==null?void 0:p.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((f=e.msg_up_stream_info.msg_audio_status)==null?void 0:f.uint32_audio_level)||0)/Fi},video:e.msg_up_stream_info.msg_video_status.filter(g=>r[g.uint32_video_stream_type]).map(g=>({bitrate:(g.uint32_video_codec_bitrate||0)/1e3,width:g.uint32_video_width,height:g.uint32_video_height,frameRate:g.uint32_video_enc_fps,videoType:r[g.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(g=>({userId:g.msg_user_info.str_identifier,audio:{bitrate:(g.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(g.msg_audio_status.uint32_audio_level||0)/Fi,point2pointDelay:(g.msg_audio_status.uint32_audio_p2p_delay||0)+(g.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:g.msg_audio_status.uint32_audio_cache_ms||0},video:g.msg_video_status.map(y=>({bitrate:(y.uint32_video_codec_bitrate||0)/1e3,width:y.uint32_video_width,height:y.uint32_video_height,frameRate:y.uint32_video_dec_fps,videoType:r[y.uint32_video_stream_type],point2pointDelay:(y.uint32_video_p2p_delay||0)+(y.uint32_video_cache_ms||0),jitterBufferDelay:y.uint32_video_cache_ms||0,codec:y.uint32_video_codec}))}))};this.emit(ee.STATISTICS,o)}).add("custom-message",e=>{this.emit(ee.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(ee.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(ee.FIRST_VIDEO_FRAME,Ee(Y({},e),{streamType:fi(e.streamType)}))}).add("audio-frame",e=>{this.emit(ee.AUDIO_FRAME,e)}),Ft(this,at).add("audioInputAdded",e=>{this.emit(ee.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(ee.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(ee.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(ee.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>A(this,null,function*(){if(this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),Lt&&Lt.deviceId===Ea){let r=(yield vo()).find(o=>o.deviceId===Ea);r&&Lt.groupId!==r.groupId&&(Lt=r,this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}})).add("audioOutputRemoved",e=>A(this,null,function*(){this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let r=(yield vo())[0];if(!r||!Lt||Lt.groupId===r.groupId)return;let o=Lt.deviceId===e.deviceId,s=Lt.deviceId===Ea&&Lt.deviceId===r.deviceId;(o||s)&&(Lt=r,this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))})),Ft(this,Uc).add("permission-state-change",e=>{this.emit(ee.PERMISSION_STATE_CHANGE,e)}),this.room.enableSEI&&this.on(ee.SEI_MESSAGE,e=>{var o;let r=(o=this.room.remotePublishedUserMap.get(e.userId))==null?void 0:o.remoteVideoTrack;r&&r.updateAlphaRenderInfo(e)})}getNetworkTime(){return Ri()}use(e){let r,o;return"plugin"in e?(r=e.plugin,o=e.assetsPath):r=e,r.Name==="Chorus"&&(this.room.enableChorus=!0),this._use(r,o)}_use(e,r){let o=this._plugins.get(e.Name);if(o)return this._log.warn("duplicate install plugin",e.Name),o;let s=new e(mT.call(this,{TRTC:pe,room:this._room,assetsPath:r,errorModule:{RtcError:oe,ErrorCode:se,CoreErrorCode:q,ErrorCodeDictionary:Tr}}));return this._plugins.set(e.Name,s),s.__v_skip=!0,e.autoStart&&this.startPlugin(e.Name),s}enterRoom(e){return A(this,null,function*(){var d,l;this.enterRoomParams=e;let{scene:r="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:n=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!we(e.proxy)&&e.proxy.turnServer&&((l=(d=this._room).setTurnServer)==null||l.call(d,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=n,Ye(e.preferHW)&&(this._room.preferHW=e.preferHW),e.playoutDelay&&(this._room.playoutDelay=e.playoutDelay),e.jitterBufferDelay&&(this._room.jitterBufferDelay=e.jitterBufferDelay);let a={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,privateMapKey:e.privateMapKey||null,latencyLevel:e.latencyLevel,role:e.role==="audience"?21:20,roomId:e.roomId||0,strRoomId:e.strRoomId||"",businessInfo:e.businessInfo||null,streamId:null,userDefineRecordId:e.userDefineRecordId||null,frameWorkType:e.frameWorkType,component:e.component,language:e.language,priority:e.priority,useVp8:e.useVp8,useH265:e.useH265,keepAlive:e.keepAlive};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(a,r,pe.frameWorkType),this._checkTrackToPublish(),mf.start()})}exitRoom(){return A(this,null,function*(){return yield this._exitRoom()})}switchRoom(e){return A(this,null,function*(){if(this.room.isSwitchRoomSupported())try{this._clearRemoteTracks(),yield this._room.switchRoom(e)}catch(r){if(r instanceof ma&&(r.code===q.API_CALL_TIMEOUT||r.code===q.SWITCH_ROOM_FAILED))this._log.warn(`switchRoom ${r.code===q.API_CALL_TIMEOUT?"timeout":"failed"}, fallback to exitRoom() and enterRoom()`),yield this._rejoinRoom(e);else throw r}else yield this._rejoinRoom(e)})}_rejoinRoom(e){return A(this,null,function*(){yield this.exitRoom();let r=Y(Y({},this.enterRoomParams),e);yield this.enterRoom(r)})}_clearRemoteTracks(){new Set([...this._remoteAudioConfigMap.keys(),...this._remoteAudioMuteMap.keys()]).forEach(e=>{this._stopRemoteAudio({userId:e}).catch(()=>{})}),[...this._remoteVideoConfigMap.keys()].forEach(e=>{let r=e.includes("main")?"main":"sub",o=e.split(`_${r}`)[0];o&&this._stopRemoteVideo({userId:o,streamType:r}).catch(()=>{})}),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),pT(this),this._room.remotePublishedUserMap.forEach(e=>{St(e.remoteAudioTrack),St(e.remoteVideoTrack),St(e.remoteAuxiliaryTrack)})}switchRole(e,r){return A(this,null,function*(){r!=null&&r.privateMapKey&&(this._room.privateMapKey=r.privateMapKey),r!=null&&r.latencyLevel&&(this._room.latencyLevel=r.latencyLevel),yield this._room.switchRole(e),e==="anchor"&&this._checkTrackToPublish()})}destroy(){this._plugins.forEach(e=>{var r;return(r=e.destroy)==null?void 0:r.call(e)}),this._plugins.clear(),St(this),this.removeAllListeners(),this._room.destroy(),Vc.delete(this),Vc.size===0&&mf.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),U.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return A(this,arguments,function*(e={publish:!0}){if(this._localAudioTrack){this._log.warn("local audio is already started");return}let{publish:r=!0,mute:o,option:s}=e,n=new li(this._room.audioManager),a={},d={muted:!0};s&&(O(s.microphoneId)?O(s.audioTrack)||(a.customSource=s.audioTrack):a.deviceId=s.microphoneId,s&&Ve(s.captureVolume)&&n.setCaptureVolume(s.captureVolume),O(s.profile)||(we(s.profile)?gd[s.profile]&&n.setProfile(gd[s.profile]):n.setProfile(s.profile)),Ve(s.earMonitorVolume)&&(d.muted=!(s.earMonitorVolume>0),d.volume=s.earMonitorVolume),O(s.echoCancellation)||(n.profile.echoCancellation=s.echoCancellation),O(s.noiseSuppression)||(n.profile.noiseSuppression=s.noiseSuppression),O(s.autoGainControl)||(n.profile.autoGainControl=s.autoGainControl),Ye(this._enableAutoSwitchWhenRecapturing)&&(n.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),n.on("5",l=>{this.emit(ee.ERROR,new oe({code:se.DEVICE_ERROR,extraCode:5309,messageParams:{error:l}}))}),n.on("2",l=>{this.emit(ee.DEVICE_CHANGED,{type:"microphone",action:"active",device:l})}),n.on("4",l=>{let p;l.error&&(p=oe.convertFrom(l.error)),this.emit(ee.PUBLISH_STATE_CHANGED,Ee(Y({},l),{error:p}))}),n.on("6",()=>{this.emit(ee.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5506,message:"audio encode failed"}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId),yield n.capture(a),O(o)||n.setMute(o),Ft(n,n).add("player-state-changed",l=>{this.emit(ee.AUDIO_PLAY_STATE_CHANGED,Ee(Y({},l),{userId:""}))}),r&&this._room.isJoined&&this._room.publish(n).catch(()=>{}),this._localAudioTrack=n,this._localAudioConfig=Ee(Y({},e),{publish:r}),yield this._updateAudioPlayOption({playOption:d,track:n}),U.emit("113",{userId:"",room:this.room})})}updateLocalAudio(e){return A(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:r,mute:o,option:s}=e,n={};s&&(s.microphoneId?yield this._localAudioTrack.switchDevice(s.microphoneId):O(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),O(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),O(s.earMonitorVolume)||(n.muted=!(s.earMonitorVolume>0),n.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!O(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),O(o)||this._localAudioTrack.setMute(o),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),Br(this._localAudioConfig,e)})}stopLocalAudio(){return A(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),U.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),St(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)})}startLocalVideo(){return A(this,arguments,function*(e={publish:!0,view:null,capture:!0}){var f;if(this._localVideoTrack){this._log.warn("local video is already started");return}let{view:r,publish:o=!0,capture:s=!0,mute:n,option:a}=e,d=new _r(this._room.videoManager),l={},p={};a&&(Ye(a.avoidCropping)&&(d.avoidCropping=a.avoidCropping),a.cameraId?l.deviceId=a.cameraId:O(a.useFrontCamera)?O(a.videoTrack)||(l.customSource=a.videoTrack):l.facingMode=a.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,O(a.retryWhenExactFailed)||(l.retryWhenExactFailed=a.retryWhenExactFailed),a.qosPreference&&(l.contentHint=wc(a.qosPreference)),O(a.profile)||(we(a.profile)?Vr[a.profile]&&d.setProfile(Vr[a.profile]):d.setProfile(a.profile)),O(a.fillMode)||(p.objectFit=a.fillMode),O(a.mirror)||(p.mirror=a.mirror),O(a.small)||(O(a.smallMode)||(this._room.smallMode=a.smallMode),Ye(a.small)&&a.small===!1?d.stopSmall():d.updateSmallConfig(jn(a.small,!0))),O(a.rotation)||d.setRotation(a.rotation),Ye(this._enableAutoSwitchWhenRecapturing)&&(d.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),d.once("first-video-frame",g=>{this.emit(ee.FIRST_VIDEO_FRAME,Ee(Y({},g),{streamType:fi(g.streamType)}))}),d.on("5",g=>{this.emit(ee.ERROR,new oe({code:se.DEVICE_ERROR,extraCode:5308,messageParams:{error:g}}))}),d.on("2",g=>{this.emit(ee.DEVICE_CHANGED,{type:"camera",action:"active",device:g})}),d.on("4",g=>{let y;g.error&&(y=oe.convertFrom(g.error)),this.emit(ee.PUBLISH_STATE_CHANGED,Ee(Y({},g),{error:y}))}),d.on("6",()=>{this.emit(ee.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5505,message:"video encode failed"}))}),this._listenOutputTrackChanged(d),s?yield d.capture(l):(f=d.manager)==null||f.changeInput(d),O(n)||(yield d.setMute(n)),Ft(d,d).add("player-state-changed",g=>{this.emit(ee.VIDEO_PLAY_STATE_CHANGED,Ee(Y({},g),{userId:"",streamType:"main"}))}).add("video-size-changed",g=>{this.emit(ee.VIDEO_SIZE_CHANGED,Ee(Y({},g),{streamType:fi(g.streamType)}))}),o&&this._room.isJoined&&this._room.publish(d).catch(()=>{}),this._localVideoTrack=d,this._localVideoConfig=Ee(Y({},e),{view:r,publish:o,capture:s}),yield this._updateVideoPlayOption({view:r,playOption:p,track:d})})}updateLocalVideo(e){return A(this,null,function*(){var l,p,f;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:r,publish:o,mute:s,capture:n,option:a}=e,d={};if(this._localVideoConfig.capture)n!==!1?a!=null&&a.cameraId?yield this._localVideoTrack.switchDevice(a==null?void 0:a.cameraId):O(a==null?void 0:a.useFrontCamera)?O(a==null?void 0:a.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(a==null?void 0:a.videoTrack)):yield this._localVideoTrack.switchDevice(a!=null&&a.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT):this._localVideoTrack.stopCapture();else if(n){let g={};g.deviceId=(a==null?void 0:a.cameraId)||((l=this._localVideoConfig.option)==null?void 0:l.cameraId),g.facingMode=a!=null&&a.useFrontCamera||(p=this._localVideoConfig.option)!=null&&p.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,g.customSource=(a==null?void 0:a.videoTrack)||((f=this._localVideoConfig.option)==null?void 0:f.videoTrack),yield this._localVideoTrack.capture(g)}a&&(O(a.profile)||(we(a.profile)?Vr[a.profile]&&this._localVideoTrack.setProfile(Vr[a.profile]):this._localVideoTrack.setProfile(a.profile),(!a.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(a.cameraId))&&O(a.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),O(a.fillMode)||(d.objectFit=a.fillMode),O(a.mirror)||(d.mirror=a.mirror),O(a.rotation)||this._localVideoTrack.setRotation(a.rotation),a.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(wc(a.qosPreference)),O(a.small)||(Ye(a.small)&&!a.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(jn(a.small,!0)))),this._room.isJoined&&O(o)&&this._localVideoConfig.publish&&n&&!this._localVideoConfig.capture&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._room.isJoined&&((o!=null?o:this._localVideoConfig.publish)?this._room.publish(this._localVideoTrack).catch(()=>{}):this._room.unpublish(this._localVideoTrack).catch(()=>{})),O(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:r,playOption:d,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),Br(this._localVideoConfig,e)})}stopLocalVideo(){return A(this,null,function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),St(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return A(this,arguments,function*(e={publish:!0,view:null}){var g,y;if(this._localScreenTrack){this._log.warn("screen share is already started");return}let{view:r=null,publish:o=!0,muteSystemAudio:s,option:n}=e,a=new mi(this._room.videoManager);a.on("4",R=>{let C;R.error&&(C=oe.convertFrom(R.error)),this.emit(ee.PUBLISH_STATE_CHANGED,Ee(Y({},R),{error:C}))}),a.once("first-video-frame",R=>{this.emit(ee.FIRST_VIDEO_FRAME,Ee(Y({},R),{streamType:fi(R.streamType)}))}),this._listenOutputTrackChanged(a),e.streamType==="main"&&(a.mediaType=4);let d=null,l={},p={};n&&(O(n.profile)||(we(n.profile)?Ed[n.profile]&&a.setProfile(Ed[n.profile]):a.setProfile(n.profile)),n.systemAudio&&(l.systemAudio=!0,l.echoCancellation=n.echoCancellation,l.noiseSuppression=n.noiseSuppression,l.autoGainControl=n.autoGainControl),O(n.fillMode)||(p.objectFit=n.fillMode),n.videoTrack&&(l.videoTrack=n.videoTrack),n.audioTrack&&(l.audioTrack=n.audioTrack),n.captureElement&&(l.captureElement=n.captureElement),n.preferDisplaySurface&&(l.preferDisplaySurface=n.preferDisplaySurface),n.qosPreference&&(l.contentHint=wc(n.qosPreference)));let f=yield a.capture(l);if(a.mediaTrack.addEventListener(M.ENDED,()=>{this._stopScreenShare(),this.emit(ee.SCREEN_SHARE_STOPPED)}),f.getAudioTracks()[0]){d=new xs(this._room.audioManager);let R=f.getAudioTracks()[0];(g=e.option)!=null&&g.systemAudio&&!((y=e.option)!=null&&y.audioTrack)&&(d.sourceTrack=R),yield d.setInputMediaStreamTrack(R),Ye(s)&&d.mediaTrack&&(d.mediaTrack.enabled=!s),this._speakerId&&d.setAudioOutput(this._speakerId)}if(Ft(a,a).add("player-state-changed",R=>{this.emit(ee.VIDEO_PLAY_STATE_CHANGED,Ee(Y({},R),{userId:"",streamType:"sub"}))}),o&&this._room.isJoined){let R=[a];d&&(R.push(d),this._checkScreenAudioEchoCancellation(a,d)),R.forEach(C=>this._room.publish(C).catch(()=>{}))}this._localScreenTrack=a,this._localScreenAudioTrack=d,this._localScreenConfig=Ee(Y({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:p,track:a})})}updateScreenShare(e){return A(this,null,function*(){var d;if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:r,publish:o,muteSystemAudio:s,option:n}=e,a={};if(n&&(O(n.fillMode)||(a.objectFit=n.fillMode),n.qosPreference)){let l=wc(n.qosPreference);this._localScreenTrack.setContentHint(l)}if(this._room.isJoined&&!O(o)){if(o&&!this._localScreenConfig.publish){let l=[this._localScreenTrack];this._localScreenAudioTrack&&l.push(this._localScreenAudioTrack),l.forEach(p=>this._room.publish(p).catch(()=>{}))}if(this._localScreenConfig.publish&&!o){let l=[this._localScreenTrack];this._localScreenAudioTrack&&l.push(this._localScreenAudioTrack),l.forEach(p=>this._room.unpublish(p).catch(()=>{}))}}(d=this._localScreenAudioTrack)!=null&&d.mediaTrack&&Ye(s)&&(this._localScreenAudioTrack.mediaTrack.enabled=!s),yield this._updateVideoPlayOption({view:r,playOption:a,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),Br(this._localScreenConfig,e)})}stopScreenShare(){return A(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return A(this,null,function*(){let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`;if(this._remoteVideoConfigMap.has(a)){this._log.warn(`remote video has already started. userId:${o}, streamType:${s}`);return}let d=this._room.remotePublishedUserMap.get(o);if(!d)return;let l={},p=s==="main"?d.remoteVideoTrack:d.remoteAuxiliaryTrack;p.on("decode-failed",f=>{this.emit(ee.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))}),p.on("video-size-changed",f=>{this.emit(ee.VIDEO_SIZE_CHANGED,Ee(Y({},f),{streamType:fi(f.streamType)}))}),this._listenOutputTrackChanged(p),n&&(O(n.fillMode)||(l.objectFit=n.fillMode),O(n.mirror)||(l.mirror=n.mirror),O(n.poster)||(l.poster=n.poster),l.canvasRender=n.canvasRender,s==="main"&&!O(n.small)&&(!d.remoteVideoTrack.isSubscribing&&!d.remoteVideoTrack.isSubscribed&&d.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,p.user)),O(n.draggable)||p.setDraggable(n.draggable)),yield this._room.subscribe(p),yield this._enableVideoDecodeFallback(p,s),yield this._updateVideoPlayOption({view:r,playOption:l,track:p}),this._emitTrackEvent(p),this._remoteVideoConfigMap.set(a,{config:e}),n&&!O(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:p,view:r,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:n==null?void 0:n.viewRoot})})}updateRemoteVideo(e){return A(this,null,function*(){var N,k;let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`,d=this._remoteVideoConfigMap.get(a);if(!d||!this._room.remotePublishedUserMap.has(o))return;let l={};n&&(O(n.fillMode)||(l.objectFit=n.fillMode),O(n.mirror)||(l.mirror=n.mirror));let p=null,f=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(f!=null&&f.muteState.hasVideo)&&(p=f.remoteVideoTrack),s==="sub"&&(f!=null&&f.muteState.hasAuxiliary)&&(p=f.remoteAuxiliaryTrack),!p)return;let{config:g}=d;s==="main"&&n&&!O(n.small)&&this._room.changeType(n.small,p.user),n&&!O(n.draggable)&&p.setDraggable(n.draggable),yield this._updateVideoPlayOption({view:r,playOption:l,track:p,prevConfig:g}),Br(g,e);let y=O(n==null?void 0:n.receiveWhenViewVisible)?(N=g.option)==null?void 0:N.receiveWhenViewVisible:n.receiveWhenViewVisible,R=O(r)?g.view:r,C=O(n==null?void 0:n.viewRoot)?(k=g.option)==null?void 0:k.viewRoot:n.viewRoot;this._observeView({remoteTrack:p,view:R,receiveWhenViewVisible:y,viewRoot:C})})}stopRemoteVideo(e){return A(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e,r=!0){return A(this,null,function*(){let o=[],s=this._room.remotePublishedUserMap.get(e.userId);if(s){let{muteState:n,remoteVideoTrack:a,remoteAuxiliaryTrack:d}=s;e.streamType==="main"&&(a.stop(),n.hasVideo&&o.push(a)),e.streamType==="sub"&&(d.stop(),n.hasAuxiliary&&o.push(d))}for(let n of o)r&&(yield this._room.unsubscribe(n),this._mediaTrackMap.delete(n.outMediaTrack));this._removeRemoteVideoConfig(e.userId,e.streamType)})}_removeRemoteVideoConfig(e,r){let o=`${e}_${r}`,s=this._remoteVideoConfigMap.get(o);s&&s.observer&&s.observer.disconnect(),this._remoteVideoConfigMap.delete(o)}muteRemoteAudio(e,r){return A(this,null,function*(){this._remoteAudioMuteMap.set(e,r);try{if(e==="*")if(r)yield this._stopRemoteAudio({userId:e});else{let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)s.muteState.hasAudio&&!this._remoteAudioConfigMap.has(s.userId)&&(yield this._startRemoteAudio({userId:s.userId}))}else r?yield this._stopRemoteAudio({userId:e}):this._remoteAudioConfigMap.has(e)||(yield this._startRemoteAudio({userId:e}))}catch(o){throw o.code!==se.OPERATION_ABORT&&this._remoteAudioMuteMap.delete(e),o}})}setRemoteAudioVolume(e,r){if(e==="*"){this._remoteAudioVolumeMap.set("*",r),this._remoteAudioVolumeMap.forEach((s,n)=>this._remoteAudioVolumeMap.set(n,r));let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)this._remoteAudioVolumeMap.set(s.userId,r),s.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:s.remoteAudioTrack})}else if(e){let o=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,r),o&&o.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:o.remoteAudioTrack})}}startPlugin(e,r){return A(this,null,function*(){return e.start(r)})}updatePlugin(e,r){return A(this,null,function*(){return e.update(r)})}stopPlugin(e,r){return A(this,null,function*(){return e.stop(r)})}enableAudioVolumeEvaluation(e=2e3,r=!1){this._room.enableAudioVolumeEvaluation(e,r)}on(e,r,o){if(this.listeners(e).includes(r))return this;if(this._log.debug("on",e),super.on(e,r,o),this._eventListened.add(e),this.listeners(ee.AUDIO_FRAME).length>0){let{audioFrameEventConfigMap:s}=this.room.audioManager;s.get("")||s.set("",{enable:!0}),this._localAudioTrack&&this.room.audioManager.handleLocalTrackStarted({userId:"",room:this.room})}return this}emit(e,...r){try{dT.has(e)&&this._log.debug(`emit ${e} ${JSON.stringify(r)}`)}catch(o){}return super.emit(e,...r)}off(e,r,o){if(this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners()):super.off(e,r,o),(e===pe.EVENT.AUDIO_FRAME||e==="*")&&this.listeners(pe.EVENT.AUDIO_FRAME).length===0){let{getPCMAbortCtrlMap:s}=this.room.audioManager;s.forEach(n=>{n==null||n.abort("off")}),s.clear()}return this}getAudioTrack(e={userId:"",streamType:"main"}){let r,o=null,s="main",n=!1;if(we(e)?r=e:(r=e.userId,n=e.processed===!0,e.streamType&&(s=e.streamType)),r){let a=this._room.remotePublishedUserMap.get(r);a&&(o=a.remoteAudioTrack)}else o=s==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return o?n&&o.outMediaTrack&&o.outMediaTrack!==o.mediaTrack?o.outMediaTrack.clone():o.mediaTrack:null}getVideoTrack(e={userId:"",streamType:"main"}){let{userId:r="",streamType:o="main",processed:s=!1}=e,n=null;if(r==="")o==="main"&&this._localVideoTrack&&(n=this._localVideoTrack),o==="sub"&&this._localScreenTrack&&(n=this._localScreenTrack);else{let a=this._room.remotePublishedUserMap.get(r);a&&(n=o==="main"?a.remoteVideoTrack:a.remoteAuxiliaryTrack)}return n?s&&n.outMediaTrack&&n.outMediaTrack!==n.mediaTrack?n.outMediaTrack.clone():n.mediaTrack:null}getVideoSnapshot(e={}){let{userId:r,streamType:o="main"}=e;if(r){let s=this._room.remotePublishedUserMap.get(r);if(o==="main"&&(s!=null&&s.muteState.hasVideo))return s.remoteVideoTrack.getVideoFrame();if(o==="sub"&&(s!=null&&s.muteState.hasAuxiliary))return s.remoteAuxiliaryTrack.getVideoFrame()}else{if(o==="main"&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if(o==="sub"&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var r,o;this._speakerId=e,(r=this._localAudioTrack)==null||r.setAudioOutput(e),(o=this._localScreenAudioTrack)==null||o.setAudioOutput(e),this._room.remotePublishedUserMap.forEach(s=>s.remoteAudioTrack.setAudioOutput(e))}setCurrentSpeaker(e){return A(this,null,function*(){(yield vo()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),Lt=o)}),this._log.warn(`the "setCurrentSpeaker" method of the instance will be deprecated in the future, please use "TRTC.setCurrentSpeaker" instead. For more information, please visit: ${ir}/en/TRTC.html#.setCurrentSpeaker`)})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return A(this,null,function*(){var a;let{userId:r}=e;if(this._remoteAudioConfigMap.has(r)){this._log.warn(`remote audio has already started. userId:${r}`);return}let o=this._room.remotePublishedUserMap.get(r);if(!o)return;let s={},n=o.remoteAudioTrack;n.on("decode-failed",d=>{this.emit(ee.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5508,message:"audio decode failed"}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId);try{let d=(a=this._remoteAudioVolumeMap.get(r))!=null?a:this._remoteAudioVolumeMap.get("*"),l=Ve(d)?d:100;s.volume=l,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(n),Ae(ye(n,"decode-failed"),ze(ye(n,ue.INIT)),Pe(()=>{this.startPlugin(kc.Name,{track:n,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:s,track:n}),U.emit("115",{userId:r,room:this.room}),n.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:n.outMediaTrack,refId:`ra-${r}`})}catch(d){throw this._remoteAudioConfigMap.delete(r),d}this._emitTrackEvent(n)})}_stopRemoteAudio(e,r=!0){return A(this,null,function*(){let o=this._room.remotePublishedUserMap.get(e.userId);o&&(o.remoteAudioTrack.stop(),o.muteState.hasAudio&&r&&(yield this._room.unsubscribe(o.remoteAudioTrack)),this._mediaTrackMap.delete(o.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete(`${e.userId}`),U.emit("116",{userId:e.userId,room:this.room}),this.room.audioManager.updateAudioReference({type:"remove",refId:`ra-${e.userId}`})})}_enableVideoDecodeFallback(e,r){let o=this._room.videoDecodeFallbackType;if(!o||!this._plugins.has("TRTCVideoDecoder"))return;e.log.debug("remote video will fall back when decode failed",e.id);let s;Ae(ye(e,"decode-failed"),ze(ye(e,ue.INIT)),Cs(()=>{this._room.downlinkVideoCodec!=="h265"&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),qi(ye(e,"decode-downgrade-state-changed")),Pe(n=>{s=n.state,this.emit(ee.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,Ee(Y({},n),{streamType:r,userId:e.userId}))},n=>{e.log.error("fallback",n)},()=>{s==="STARTED"&&e.log.info("fallback complete")}))}_updateVideoPlayOption(n){return A(this,arguments,function*({view:e,playOption:r,track:o,prevConfig:s}){if(o.setMirror(r.mirror),O(e)&&s&&s.view&&!dn(r)){let a=ln(s.view);a.length>0&&(yield o.play(a,r))}if(!O(e)){let a=ln(e);a.length>0?yield o.play(a,r):o.stop()}})}_updateAudioPlayOption(s){return A(this,arguments,function*({playOption:e={},track:r,prevConfig:o}){if(!r.isPlayCalled)try{yield r.play(null,e)}catch(n){}if(O(e.muted)||r.setPlayerMute(e.muted),O(e.volume)||r.setAudioVolume(e.volume/100),r instanceof li&&r.mediaTrack){let n=e.muted===!1&&!O(e.volume)&&e.volume>0?"add":"remove";this.room.audioManager.updateAudioReference({type:n,audioReference:r.mediaTrack,refId:"em"})}else if(r instanceof zi){let n=e.muted?0:e.volume;if(O(n))return;this.room.audioManager.updateAudioReference({type:"updateVolume",refId:`ra-${r.userId}`,volume:e.volume})}})}_listenOutputTrackChanged(e){e.listeners("output-media-track-changed").length===0&&e.on("output-media-track-changed",()=>this._emitTrackEvent(e,!1))}_emitTrackEvent(e,r=!0){let o=e.isRemote?e.userId:"";e.outMediaTrack&&(r&&this._mediaTrackMap.get(e.outMediaTrack)===o||(this._mediaTrackMap.set(e.outMediaTrack,o),this.emit(ee.TRACK,{userId:o,streamType:fi(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_checkTrackToPublish(){var r,o,s;let e=[];if((r=this._localAudioConfig)!=null&&r.publish&&this._localAudioTrack&&e.push(this._localAudioTrack),(o=this._localVideoConfig)!=null&&o.publish&&this._localVideoTrack&&e.push(this._localVideoTrack),(s=this._localScreenConfig)!=null&&s.publish&&(this._localScreenTrack&&e.push(this._localScreenTrack),this._localScreenAudioTrack&&e.push(this._localScreenAudioTrack),this._checkScreenAudioEchoCancellation(this._localScreenTrack,this._localScreenAudioTrack)),e.length!==0)return Promise.all(e.map(n=>this._room.publish(n).catch(()=>{})))}_observeView({remoteTrack:e,view:r,receiveWhenViewVisible:o=!1,viewRoot:s}){if(O(r))return;let n=this._remoteVideoConfigMap.get(`${e.userId}_${fi(e.streamType)}`);if(!n)return;let a=n.observer||void 0;if(r===null||ut(r)&&r.length===0||!o){a==null||a.disconnect(),e.isSubscribed||this._room.subscribe(e).catch(()=>{});return}let l=n.visibleViewMap||new Map,p=-1;(!a||a.root!==s)&&(a==null||a.disconnect(),l.clear(),a=new IntersectionObserver(g=>{g.forEach(y=>{l.set(y.target,y.isIntersecting),e.log.info(`view ${y.target.id} is${y.isIntersecting?"":" not"} visible`)}),clearTimeout(p),p=window.setTimeout(()=>{[...l.values()].find(R=>R)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:s}));let f=new Set(ln(r));l.forEach((g,y)=>{f.has(y)||(a.unobserve(y),l.delete(y))}),f.forEach(g=>{l.set(g,!0),a.observe(g)}),a.takeRecords().forEach(g=>{l.set(g.target,g.isIntersecting)}),n.visibleViewMap=l,n.observer=a}_exitRoom(){return A(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),this._clearRemoteTracks()})}_stopScreenShare(){return A(this,null,function*(){var e;if(this._localScreenTrack){if(this._room.isJoined){let r=[this._localScreenTrack];this._localScreenAudioTrack&&r.push(this._localScreenAudioTrack),yield Promise.all(r.map(o=>this._room.unpublish(o).catch(()=>{})))}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(((e=this._localScreenAudioTrack.trackSettings)==null?void 0:e.echoCancellation)===!1&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),St(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_checkScreenAudioEchoCancellation(e,r){return A(this,null,function*(){var s,n;if(!e||!r)return;let o=(s=e.trackSettings)==null?void 0:s.displaySurface;if(((n=r.trackSettings)==null?void 0:n.echoCancellation)===!1&&(o==="monitor"||o==="browser"&&e.isShareCurrentTab)){this._log.warn("echoCancellation of screen audio track is disable. Try starting audioProcessor plugin");try{yield this.startPlugin("AudioProcessor",{sdkAppId:Number(this.room.sdkAppId),userId:this._room.userId,userSig:this.room.userSig,isScreenAudioNeedAudioProcess:!0,isLocalAudioNeedAudioProcess:!1})}catch(a){this._log.warn("start audioProcessor plugin failed: ",a)}}})}_onLocalTrackCaptured({track:e}){e.kind==="audio"&&(!Lt||xn(Lt))&&(this._initActiveSpeaker(),U.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return A(this,null,function*(){if(Lt&&!xn(Lt))this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:Lt});else{let e=yield vo();e[0]&&!xn(e[0])?(Lt=e[0],this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):U.on("102",this._onLocalTrackCaptured,this)}})}_onAudioAvailable({userId:e}){let r=this._remoteAudioMuteMap.has(e)?this._remoteAudioMuteMap.get(e):this._remoteAudioMuteMap.get("*");(r===!1||this._room.autoReceiveAudio&&!r)&&this._doStartRemoteAudio({userId:e}).catch(()=>{})}_onVideoAvailable({userId:e,streamType:r}){if(!this._room.autoReceiveVideo)return;let o=this._room.remotePublishedUserMap.get(e);if(o){let s=r==="main"?o.remoteVideoTrack:o.remoteAuxiliaryTrack,n=[s];this._room.autoReceiveAudio&&o.remoteAudioTrack.isAvailable&&n.push(o.remoteAudioTrack),this._room.subscribe(...n).then(()=>{this._emitTrackEvent(s)}).catch(()=>{})}}_onAudioUnavailable({userId:e,muteState:r}){r.hasAudio&&r.audioMuted||this._stopRemoteAudio({userId:e},!1).catch(()=>{})}_onVideoUnavailable({userId:e,streamType:r}){this._stopRemoteVideo({userId:e,streamType:r},!1).catch(()=>{})}sendSEIMessage(e,r){var s;let o=this._plugins.get("SEI");o&&(o.update({buffer:e,options:Ee(Y({seiPayloadType:243},r),{small:!!((s=this._localVideoTrack)!=null&&s.small)})}),J.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var r,o;(o=(r=this._room).sendCustomMessage)==null||o.call(r,e),J.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,r){return A(this,null,function*(){return this._log.info(`callExperimentalAPI(${e}, ${JSON.stringify(r)})`),yT.call(e,Y({trtcInstance:this},r))})}static setLogLevel(e,r){F.setLogLevel(e),O(r)||(r?F.enableUploadLog():F.disableUploadLog())}static isSupported(){return gu(pe.frameWorkType)}static getPermissions(o){return A(this,arguments,function*({request:e=!0,types:r=["camera","microphone"]}){e&&(yield Uc.request(r).catch(a=>{var d;return F.error(`getPermissions request failed, error: ${(d=a==null?void 0:a.message)!=null?d:a}`)}));let[s,n]=yield Promise.all([Uc.get("camera"),Uc.get("microphone")]);return{camera:s,microphone:n}})}static getCameraList(e=!0){return cr(e)}static getMicrophoneList(e=!0){return ar(e)}static getSpeakerList(e=!0){return vo(e)}static setCurrentSpeaker(e){return A(this,null,function*(){if(nt&&(e===ks.SPEAKER||e===ks.HEADSET)){let o=yield pe.getMicrophoneList(),s="";if(o.forEach(n=>{n.label===e&&(s=n.deviceId)}),!s)return;Vc.forEach(n=>A(this,null,function*(){n._localAudioTrack&&(yield n.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield vo()).forEach(o=>{o.deviceId===e&&(Vc.forEach(s=>{s._setCurrentSpeaker(e),s.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),Lt=o)})})}static _addKVStat({type:e,key:r,value:o,base:s,useUV:n,version:a,max:d}){switch(a&&(Es.version=a),e){case"count":Es.addCount({key:r,useUV:n});break;case"enum":Es.addEnum({key:r,value:o,useUV:n});break;case"number":Es.addNumber({key:r,value:o,split:s,max:d});break}}};m(pe,"VERSION",nf),m(pe,"_loggerManager",F),m(pe,"EVENT",ee),m(pe,"ERROR_CODE",se),m(pe,"TYPE",ks),m(pe,"frameWorkType",30),Z([st({replaceArg:e=>({argIndex:0,value:{name:"plugin"in e?e.plugin.Name:e.Name,assetsPath:"assetsPath"in e?e==null?void 0:e.assetsPath:"default"}})})],pe.prototype,"use",1),Z([Ht(Ot.TRTC.enterRoom),Lo("room",([e],[r])=>(e.roomId||e.strRoomId)===(r.roomId||r.strRoomId)&&e.userId===r.userId&&e.sdkAppId===r.sdkAppId),xe(e=>function(r){return this._log.setUserId(r.userId),this._log.setSdkAppId(r.sdkAppId),e.call(this,r)}),st()],pe.prototype,"enterRoom",1),Z([st()],pe.prototype,"exitRoom",1),Z([Ht(Ot.TRTC.switchRoom),st(),Mu()],pe.prototype,"switchRoom",1),Z([Ht(Ot.TRTC.switchRole),Vs("room",{merge:(e,r)=>r}),st()],pe.prototype,"switchRole",1),Z([st()],pe.prototype,"destroy",1),Z([Ht(Ot.TRTC.startLocalAudio),Lo("audio",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.microphoneId)===((s=r==null?void 0:r.option)==null?void 0:s.microphoneId)}),st()],pe.prototype,"startLocalAudio",1),Z([Ht(Ot.TRTC.updateLocalAudio),Vs("audio",{debounce:{delay:200,getKey:()=>`${bT}-localAudio`,isNeedToDebounce:e=>{var r;return!O((r=e.option)==null?void 0:r.captureVolume)}}}),st()],pe.prototype,"updateLocalAudio",1),Z([ko("audio"),st()],pe.prototype,"stopLocalAudio",1),Z([Ht(Ot.TRTC.startLocalVideo),Lo("video",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.cameraId)===((s=r==null?void 0:r.option)==null?void 0:s.cameraId)}),st()],pe.prototype,"startLocalVideo",1),Z([Ht(Ot.TRTC.updateLocalVideo),Vs("video"),st()],pe.prototype,"updateLocalVideo",1),Z([ko("video"),st()],pe.prototype,"stopLocalVideo",1),Z([Ht(Ot.TRTC.startScreenShare),Lo("screen",()=>!0),st()],pe.prototype,"startScreenShare",1),Z([Ht(Ot.TRTC.updateScreenShare),Vs("screen"),st()],pe.prototype,"updateScreenShare",1),Z([st()],pe.prototype,"stopScreenShare",1),Z([Ht(Ot.TRTC.startRemoteVideo),Lo(e=>`v${e.userId}${e.streamType}`,()=>!0),st({getRemoteId:e=>`${e.userId}_${e.streamType}`})],pe.prototype,"startRemoteVideo",1),Z([Ht(Ot.TRTC.updateRemoteVideo),Vs(e=>`v${e.userId}${e.streamType}`),st({getRemoteId:e=>`${e.userId}_${e.streamType}`})],pe.prototype,"updateRemoteVideo",1),Z([Ht(Ot.TRTC.stopRemoteVideo),xe(e=>function(r){return A(this,null,function*(){if(r.userId==="*"){let o=[];return this._room.remotePublishedUserMap.forEach(s=>{this._remoteVideoConfigMap.has(`${s.userId}_main`)&&o.push(this.stopRemoteVideo({streamType:"main",userId:s.userId}).catch(()=>{})),this._remoteVideoConfigMap.has(`${s.userId}_sub`)&&o.push(this.stopRemoteVideo({streamType:"sub",userId:s.userId}).catch(()=>{}))}),Promise.all(o)}return e.call(this,r)})}),st({getRemoteId:e=>`${e.userId}_${e.streamType}`})],pe.prototype,"stopRemoteVideo",1),Z([ko(e=>`v${e.userId}${e.streamType}`)],pe.prototype,"_stopRemoteVideo",1),Z([Ht(...Ot.TRTC.muteRemoteAudio),st({getRemoteId:e=>e})],pe.prototype,"muteRemoteAudio",1),Z([af(...Ot.TRTC.setRemoteAudioVolume),fT(200,e=>e),st({getRemoteId:e=>e})],pe.prototype,"setRemoteAudioVolume",1),Z([Tl("start"),Co(e=>{var r;return(r=e.afterStart)==null?void 0:r.call(e)}),Lo((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),st({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>uh[e.getName()],ignoreLog:e=>e.getName()==="Debug",ignoreErrorLog:e=>e.getName()==="AudioProcessor"})],pe.prototype,"startPlugin",1),Z([Tl("update"),Vs((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r),{merge:(e,r)=>(Br(e[1],r[1]),e)}),st({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>lh[e.getName()]})],pe.prototype,"updatePlugin",1),Z([Tl("stop"),ko((e,r)=>{if(e.disableRandomCall)return null;let o=e.getGroup(r),s=e.getAlias();return o==="*"?new RegExp(`${s}.*`):s+o}),st({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>mh[e.getName()]})],pe.prototype,"stopPlugin",1),Z([af(...Ot.TRTC.enableAudioVolumeEvaluation)],pe.prototype,"enableAudioVolumeEvaluation",1),Z([st()],pe.prototype,"getVideoSnapshot",1),Z([st()],pe.prototype,"_setCurrentSpeaker",1),Z([Lo(e=>`a${e.userId}`,()=>!0)],pe.prototype,"_startRemoteAudio",1),Z([xe(e=>function(r){return A(this,null,function*(){return r.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(Ee(Y({},r),{userId:o.userId})).catch(()=>{}))):e.call(this,r)})}),ko(e=>`a${e.userId}`)],pe.prototype,"_stopRemoteAudio",1),Z([ko("room")],pe.prototype,"_exitRoom",1),Z([ko("screen")],pe.prototype,"_stopScreenShare",1),Z([Ht(...Ot.TRTC.sendSEIMessage),ef({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],pe.prototype,"sendSEIMessage",1),Z([Ht(Ot.TRTC.sendCustomMessage),ef({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],pe.prototype,"sendCustomMessage",1),Z([Uo()],pe,"create",1),Z([Ht(Ot.TRTC.create)],pe,"_create",1),Z([Uo()],pe,"setLogLevel",1),Z([Uo()],pe,"isSupported",1),Z([Uo()],pe,"getPermissions",1),Z([Uo()],pe,"getCameraList",1),Z([Uo()],pe,"getMicrophoneList",1),Z([Uo()],pe,"getSpeakerList",1);var Tf=pe,Qn=Tf;var Ol=class{constructor(t,e){m(this,"_flag");m(this,"terminalType");m(this,"userId");m(this,"tinyId");m(this,"role");m(this,"remoteAudioTrack");m(this,"remoteVideoTrack");m(this,"remoteAuxiliaryTrack");this.userId=e.userId||"",this.tinyId=e.tinyId||"",this.role=e.role||"audience",this.terminalType=e.terminalType,this.remoteAudioTrack=new zi(t,this),this.remoteVideoTrack=new Mo(t,this),this.remoteAuxiliaryTrack=new il(t,this),this.flag=e.flag||0}get subscribeState(){let t={audio:!1,video:!1,auxiliary:!1,smallVideo:!1};return this.remoteVideoTrack.isSubscribed&&(this.remoteVideoTrack.mediaType&8?t.smallVideo=!0:t.video=!0),this.remoteAudioTrack.isSubscribed&&(t.audio=!0),this.remoteAuxiliaryTrack.isSubscribed&&(t.auxiliary=!0),t}get muteState(){return ns(this.flag,this.userId)}get flag(){return this._flag}set flag(t){if(t===this._flag)return;let e,r=this.muteState;this._flag=t;let o=this.muteState;for(e in o)r[e]!=o[e]&&console.log(this.userId,e,r[e],"->",o[e]);this.remoteAudioTrack.onFlagChanged(),this.remoteVideoTrack.onFlagChanged(),this.remoteAuxiliaryTrack.onFlagChanged()}};var If=class{constructor(){m(this,"_set",new Set);U.on(B.LEAVE_SUCCESS,this.delete,this),U.on(B.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess,this)}add({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,e||t.roomId,t.sdkAppId,t.useStringRoomId);this._set.add(r)}delete({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,t.roomId||e,t.sdkAppId,t.useStringRoomId);this._set.delete(r)}getKey(t,e,r,o){return`${r}_${e}_${t}_${o}`}isJoined({userId:t,roomId:e,sdkAppId:r,room:o}){return o.scene==="rtc"?!1:this._set.has(this.getKey(t,e,r,o.useStringRoomId))}handleSwitchRoomSuccess({room:t,currentRoomId:e,targetRoomId:r}){t.scene!=="rtc"&&(this._set.delete(this.getKey(t.userId,e,t.sdkAppId,t.useStringRoomId)),this._set.add(this.getKey(t.userId,r,t.sdkAppId,t.useStringRoomId)))}};function YR(){return A(this,null,function*(){let i,t;try{let y=yield ar();i=y&&y.length}catch(y){}try{let y=yield cr();t=y&&y.length}catch(y){}let e={microphone:i,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:o,isH264DecodeSupported:s,isVp8DecodeSupported:n,isH265EncodeSupported:a,isH265DecodeSupported:d}=this.checkSystemResult.detail,l=Ao.basis(),p={webRTC:l.isWebRTCSupported,getUserMedia:l.isGetUserMediaSupported,webSocket:l.isWebSocketsSupported,screenShare:l.isScreenShareSupported,webAudio:l.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:o,vp8Decode:n,h265Encode:a,h265Decode:d},f={browser:l.browser,os:l.os,trtc:p,devices:e},g={isWebCodecSupported:l.isWebCodecSupported,isMediaSessionSupported:l.isMediaSessionSupported,isWebTransportSupported:l.isWebTransportSupported};je.uploadEvent({log:`trtcstats-${JSON.stringify(f)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(f)}`),je.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(g)}`,userId:this.userId}),Ah()})}function vT(){return xe(i=>{let t=new If;return function(e,r,o){return A(this,null,function*(){let s=String(e.roomId||e.strRoomId);if(this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.userSig=e.userSig,this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.scene=r,e.privateMapKey=e.privateMapKey||"",this.isJoined)throw new ae({code:q.INVALID_OPERATION,message:He({key:$e.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new ae({code:q.INVALID_OPERATION,message:He({key:$e.REPEAT_JOIN,data:this.userId})});t.add({room:this,roomId:s}),this.role=e.role===21?"audience":"anchor",this._log.info(`Join() => joining room: ${s} useStringRoomId: ${this.useStringRoomId} scene: ${this.scene} role: ${this.role}`),U.emit(B.JOIN_START,{room:this,roomId:s,params:e});let n=si.getEnv();n||(n=vi.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(_d.OLD_CLOUD_LADDER)?n=vi.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(_d.WEBRTC)&&(n=vi.WEBRTC))),je.setConfig({env:n,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),Ao.checkSystemRequirementsInternal(o).then(a=>{this.checkSystemResult=a,YR.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!si.getEnv()&&(yield this.schedule(e,o));let a=yield i.call(this,e,r,o);return this.roomId=s,this._joinedTimestamp=si.performanceNow(),U.emit(B.JOIN_SUCCESS,{room:this}),o===30&&!e.component&&je.uploadEvent({log:`stat-conv-${Number(jr)}-${location.hostname}`,userId:this.userId}),a}catch(a){throw t.delete({room:this,roomId:s}),U.emit(B.JOIN_FAILED,{room:this,error:a}),a}})}})}var CT=()=>xe(i=>function(...t){return A(this,null,function*(){U.emit(B.LEAVE_START,{room:this}),yield i.call(this,...t),U.emit(B.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function NT(){return xe(i=>function(...t){return A(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(t=t.filter(r=>r.outMediaTrack&&r.state==="ready"),!t.length))return;U.emit("61",{room:this});let e=i.apply(this,t);return Promise.all(t.map(r=>r.publish(this,e)))})})}function DT(){return xe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function wT(){return xe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function ZR({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return po(r)?r.catch(o=>F.error(`${i.name}() error observed ${o}`)):r}catch(r){F.error(`${i.name}() error observed ${r}`)}}}var Ml=class{constructor(t){m(this,"_frameWorkType");m(this,"_component");m(this,"_language");m(this,"connectionType");m(this,"_room");m(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0,reportToken:void 0});m(this,"_keyPrefix");m(this,"_log");m(this,"_intervalId");m(this,"_firstPublishedUserList");m(this,"_networkQuality");m(this,"_basicInfo");m(this,"_pathJoinRoom");m(this,"_pathLeaveRoom");m(this,"_pathMainVideoMap");m(this,"_pathMainAudioMap");m(this,"_pathAuxiliaryMap");m(this,"_remoteStreamStatMap");m(this,"_localStreamStat");m(this,"_eventMap",new Map);m(this,"_captureCostSum",0);m(this,"_captureCostCount",0);m(this,"isDestroyed",!1);this._frameWorkType=t.frameWorkType||30,this._component=t.component||0,this.connectionType=t.connectionType||1,this._language=t.language||0,this._room=t.room,this._keyPrefix="key_point",this._log=F.createLogger({parent:this._room.getLogger(),id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&Xe(this[e])&&(this[e]=ZR({fn:this[e],context:this}))}),this.initData(),this.installEvents()}initData(){this._firstPublishedUserList=[],this._networkQuality={totalUplinkRTT:0,totalUplinkLoss:0,count:0,totalDownlinkRTTAndLossMap:new Map},this._basicInfo={string_sdk_version:ht,uint32_os_type:15,string_device_name:"",string_http_user_agent:navigator.userAgent,string_os_version:"",uint32_avg_rtt:0,uint32_avg_up_loss:0,uint32_scene:this._room.scene==="live"?1:0,uint32_joining_duration:0,uint32_networkType:0,uint32_framework:this._frameWorkType,uint32_component:this._component,uint32_connection_type:this.connectionType,uint32_caller_coding_language:this._language,string_domain:location.hostname},this._pathJoinRoom={uint64_start_time:0,uint64_send_request_acc_ip_cmd_start_time:0,uint64_send_request_acc_ip_cmd_end_time:0,uint64_send_request_enter_room_cmd_start_time:0,uint64_send_request_enter_room_cmd_end_time:0,uint64_send_first_video_frame_time:0,uint64_recv_userlist_time:0,uint64_end_time:0,int32_send_request_acc_ip_cmd_ret:0,int32_send_request_enter_room_cmd_ret:0,int32_end_ret:0},this._pathLeaveRoom={uint64_start_time:0,uint64_send_request_exit_room_cmd_start_time:0,uint64_send_request_exit_room_cmd_end_time:0,uint64_end_time:0,int32_send_request_exit_room_cmd_ret:0,int32_end_ret:0},this._localStreamStat={totalVideoBitrate:0,totalVideoFPS:0,totalVideoHeight:0,totalVideoWidth:0,totalAudioLevel:0,videoCount:0,audioLevelCount:0,publishStartTime:0,statsToReport:{uint32_audio_capture_db:0,uint32_video_big_capture_fps:0,uint32_video_big_bitrate:0,uint32_video_big_resolution:0,uint32_audio_capture_thread_health_zero_cnt:0,uint32_after3a_silence_duration:0}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,ls().then(()=>{this._basicInfo.string_os_version=Li(),this._basicInfo.string_device_name=ms()||this._basicInfo.string_os_version})}addEvent(t,e){return this._eventMap.set(t,e),U.on(t,e),this}installEvents(){this.handleUnload=this.handleUnload.bind(this),window.addEventListener("pagehide",this.handleUnload),this._room.once("banned",()=>this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})),this.addEvent(B.JOIN_START,this.handleJoinStart).addEvent(B.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(B.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(B.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(B.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(B.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(B.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(B.JOIN_FAILED,this.handleJoinFailed).addEvent(B.LEAVE_START,this.handleLeaveStart).addEvent(B.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(B.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(B.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(B.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(B.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(B.PUBLISH_START,this.handlePublishStart).addEvent(B.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(B.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(B.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(B.PLAY_TRACK_START,this.handlePlayStart).addEvent(B.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(B.PLAYER_STATE_CHANGED,({track:t,state:e,type:r})=>{!t.isRemote||!this.hitTest(t.room)||e==="PLAYING"&&(r===M.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))}).addEvent(B.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(B.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(B.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(B.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(B.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(B.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(B.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let o=e.hasAudio||e.hasVideo||e.hasSmall,s=e.hasAuxiliary,n=r.hasAudio||r.hasVideo||r.hasSmall,a=r.hasAuxiliary;!o&&n&&this.handleRemoteStreamAdded(r.userId,"main"),!s&&a&&this.handleRemoteStreamAdded(r.userId,"auxiliary")}).addEvent(B.SINGLE_CONNECTION_STAT,({room:t,stat:e})=>{this.hitTest(t)&&(this._pathJoinRoom.int32_ice_cost=e.ice,this._pathJoinRoom.int32_dtls_cost=e.dtls,this._pathJoinRoom.int32_peer_connection_cost=e.peerConnection)})}uninstallEvents(){window.removeEventListener("pagehide",this.handleUnload),this._eventMap.forEach((t,e)=>U.off(e,t)),this._eventMap.clear()}destroy(){this.uninstallEvents(),ft.clearTask(this._intervalId),this._pathJoinRoom.uint64_start_time===0&&(this._room=null),this.isDestroyed=!0}handleUnload(){this._room.isJoined&&this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})}handleJoinStart(t){this.hitTest(t.room)&&(this._pathJoinRoom.uint64_start_time===0&&(this._pathJoinRoom.uint64_start_time=Date.now()),t.params&&(O(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),O(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),O(t.params.language)||(this._language=t.params.language,this._basicInfo.uint32_caller_coding_language=this._language)))}handleJoinScheduleSuccess({room:t,detailCost:e}){if(this.hitTest(t)&&e){let{totalCost:r,local:o,dns:s,tcp:n,tls:a,request:d,response:l}=e;this._pathJoinRoom.int32_schedule_cost=r,this._pathJoinRoom.int32_schedule_local=o,this._pathJoinRoom.int32_schedule_dns=s,this._pathJoinRoom.int32_schedule_tcp=n,this._pathJoinRoom.int32_schedule_tls=a,this._pathJoinRoom.int32_schedule_request=d,this._pathJoinRoom.int32_schedule_response=l}}handleSignalConnectionStart({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time=Date.now())}handleSignalConnectionEnd({room:t,error:e}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time=Date.now(),e&&(this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret=e instanceof ae?Number(e.getExtraCode()||e.getCode()):q.UNKNOWN,this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret))}handleJoinSendCMD(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=Date.now())}handleJoinReceivedCMDResponce(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=Date.now(),this._pathJoinRoom.int32_send_request_enter_room_cmd_ret=t.code,t.code!==0&&(this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_enter_room_cmd_ret))}handleJoinSuccess(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_end_time===0&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret=0,this._signalInfo=t.room.getSignalInfo())}handleJoinFailed({room:t,error:e}){this.hitTest(t)&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret===0&&(this._pathJoinRoom.int32_end_ret=e.code||this._pathJoinRoom.int32_send_request_enter_room_cmd_ret||this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret),setTimeout(()=>{this.report()}))}handleReceivedPublishUserList(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_recv_userlist_time===0&&(this._pathJoinRoom.uint64_recv_userlist_time=Date.now(),this._firstPublishedUserList=t.publishedUserList||[])}handleSendFirstVideoFrame({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_first_video_frame_time===0&&this._pathJoinRoom.uint64_start_time!==0&&(this._pathJoinRoom.uint64_send_first_video_frame_time=Date.now())}handleLeaveStart(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_start_time=Date.now())}handleLeaveSuccess(t){var e;if(this.hitTest(t.room)&&this._pathLeaveRoom.uint64_end_time===0){if(this._pathLeaveRoom.uint64_end_time=Date.now(),this._pathJoinRoom.uint64_end_time!==0){this._basicInfo.uint32_joining_duration=this._pathLeaveRoom.uint64_end_time-this._pathJoinRoom.uint64_end_time;let r=(e=this._room.audioManager.localAudioTrack)==null?void 0:e.after3aSilenceStartTime;r&&(this._localStreamStat.statsToReport.uint32_after3a_silence_duration=_e()-r)}else this._log.warn("pathJoinRoom endTime is 0");this.report()}}handleLeaveSendCMD(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_send_request_exit_room_cmd_start_time=Date.now(),this._pathLeaveRoom.uint64_send_request_exit_room_cmd_end_time=Date.now())}handleSwitchRoomStart(t){if(this.hitTest(t.room)){let e=Date.now();this.report().then(()=>{this._pathJoinRoom.uint64_start_time=e,this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=e})}}handleSwitchRoomSuccess({room:t}){if(this.hitTest(t)&&this._pathJoinRoom.uint64_end_time===0){let e=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=e,this._pathJoinRoom.uint64_end_time=e,this._pathJoinRoom.int32_end_ret}}handleSwitchRoomFailed({room:t,error:e}){if(this.hitTest(t)){let r=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=r,this._pathJoinRoom.uint64_end_time=r,e&&(this._pathJoinRoom.int32_end_ret=e instanceof ae?Number(e.getExtraCode()||e.getCode()):q.UNKNOWN)}}handleRemoteStreamAdded(t,e){var o;let r=`${t}_${e}`;if(!this._remoteStreamStatMap.has(r)){let s={userId:t,totalVideoFPS:0,totalVideoBitrate:0,totalAudioLevel:0,totalAudioBitrate:0,totalLoss:0,audioCount:0,audioLevelCount:0,videoCount:0,networkQualityCount:0,streamAddedTime:Date.now(),subscribeStartTime:0,subscribedTime:0,playStreamTime:0,statsToReport:Ee(Y({},KR),{msg_user_info:new Fc({userId:t,tinyId:(o=this._room.remotePublishedUserMap.get(t))==null?void 0:o.tinyId,role:20})})};s.statsToReport.uint32_stream_type=e==="main"?2:7,this._remoteStreamStatMap.set(r,s)}}handleSubscribeStart({room:t,remotePublishedUser:e,streamType:r,subscribeState:o}){if(!this.hitTest(t))return;let{userId:s,tinyId:n,role:a}=e,d=new Fc({userId:s,tinyId:n,role:a==="anchor"?20:21}),l=Date.now(),p=`${s}_${r}`,f=this._remoteStreamStatMap.get(p);f&&f.subscribeStartTime===0&&(f.subscribeStartTime=l),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(p)&&this._pathMainVideoMap.set(p,{statsToReport:{msg_user_info:d,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:s,sendSubscribeCMDTime:l}),e.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(p)&&this._pathMainAudioMap.set(p,{statsToReport:{msg_user_info:d,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:s,sendSubscribeCMDTime:l})):e.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(p)&&this._pathAuxiliaryMap.set(p,{sendSubscribeCMDTime:l})}handleSubscribed({room:t,remotePublishedUser:e,streamType:r}){if(this.hitTest(t)){let o=`${e.userId}_${r}`,s=this._remoteStreamStatMap.get(o);s&&s.subscribedTime===0&&(s.subscribedTime=Date.now())}}handlePlayStart({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._remoteStreamStatMap.get(e);(r==null?void 0:r.playStreamTime)===0&&(r.playStreamTime=Date.now())}handleVideoLoadedData({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._pathMainVideoMap.get(e);r&&r.statsToReport.uint64_combine_first_frame_time===0&&(r.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(t){let e=`${t.userId}_${t.streamType}`,r=Date.now(),o=this._pathMainVideoMap.get(e),s=this._remoteStreamStatMap.get(e);if(s){let{statsToReport:n}=s;if(!n.uint32_video_render_first&&t.streamType==="main"?this.hasVideoFlag(t.userId):this.hasAuxFlag(t.userId)){let a=r-this._pathJoinRoom.uint64_start_time;n.uint32_video_render_first=a,J.addNumber({key:516820,value:a})}}(o==null?void 0:o.statsToReport.uint64_render_first_frame_time)===0&&(o.statsToReport.uint64_render_first_frame_time=r)}handleAudioPlaying(t){let e=`${t.userId}_${t.streamType}`,r=this._pathMainAudioMap.get(e);r&&r.statsToReport.uint64_play_first_frame_time===0&&(r.statsToReport.uint64_play_first_frame_time=Date.now())}handleNetworkQuality(t){this.hitTest(t.room)&&(this._networkQuality.totalUplinkLoss+=t.uplink.loss,this._networkQuality.totalUplinkRTT+=t.uplink.rtt,this._networkQuality.count++,t.downlinks.forEach(({rtt:e,loss:r,userId:o,videoDelay:s,audioDelay:n})=>{let a=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(a)a.totalRTT+=e,a.totalLoss+=r,s&&(a.totalVideoDelay=(a.totalVideoDelay||0)+s,a.videoDelayCount=(a.videoDelayCount||0)+1),n&&(a.totalAudioDelay=(a.totalAudioDelay||0)+n,a.audioDelayCount=(a.audioDelayCount||0)+1),a.count++;else{let d,l,p,f;s&&(l=s,p=1),n&&(d=n,f=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:d,totalVideoDelay:l,audioDelayCount:f,videoDelayCount:p})}}))}handleHeartbeatStats(t){if(this.hitTest(t.room)){let{msg_device_info:e,msg_up_stream_info:r,msg_down_stream_info:o}=t.report;if(r.msg_video_status[0]){let{uint32_video_codec_bitrate:s,uint32_video_enc_fps:n,uint32_video_width:a,uint32_video_height:d}=r.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=s,this._localStreamStat.totalVideoFPS+=n,this._localStreamStat.totalVideoWidth+=a,this._localStreamStat.totalVideoHeight+=d,this._localStreamStat.videoCount++}if(r.msg_audio_status){let{uint32_audio_level:s}=r.msg_audio_status;Math.floor(s/Fi*100)>0&&(this._localStreamStat.totalAudioLevel+=s/Fi,this._localStreamStat.audioLevelCount++)}o.forEach(s=>{let{msg_user_info:n,msg_audio_status:a,msg_video_status:d}=s,l=n.str_identifier,p=this._room.remotePublishedUserMap.get(l);if(d.forEach(f=>{let g=f.uint32_video_stream_type===2,y=f.uint32_video_stream_type===7,R=`${l}_${g?"main":"auxiliary"}`,C=this._remoteStreamStatMap.get(R);if(C&&(g&&(p!=null&&p.remoteVideoTrack.isSubscribed)||y&&(p!=null&&p.remoteAuxiliaryTrack))){C.totalVideoFPS+=f.uint32_video_receive_fps,C.totalVideoBitrate+=f.uint32_video_codec_bitrate,C.videoCount++,C.statsToReport.uint32_video_width===0&&(C.statsToReport.uint32_video_width=f.uint32_video_width),C.statsToReport.uint32_video_height===0&&(C.statsToReport.uint32_video_height=f.uint32_video_height);let N=g?p.remoteVideoTrack:p.remoteAuxiliaryTrack;N.stat.jitterBufferDelay&&(C.videoJitterBufferDelay=N.stat.jitterBufferDelay),N.stat.framesReceived&&(C.statsToReport.uint32_video_consume_render_rate=Math.floor(N.stat.framesDecoded/N.stat.framesReceived*ri(10,6)))}}),!dn(a)){let f=`${l}_main`,g=this._remoteStreamStatMap.get(f);this._remoteStreamStatMap.has(f)&&g&&p!=null&&p.remoteAudioTrack.isSubscribed&&(g.totalAudioBitrate+=a.uint32_audio_codec_bitrate,g.audioCount++,p.remoteAudioTrack.stat.jitterBufferDelay&&(g.audioJitterBufferDelay=p.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(a.uint32_audio_level/Fi*100)>0&&(g.totalAudioLevel+=a.uint32_audio_level/Fi,g.audioLevelCount++),a.uint32_audio_block_time&&(g.statsToReport.uint32_audio_block_time+=a.uint32_audio_block_time))}}),e.uint32_audio_capture_cost&&(this._captureCostSum+=e.uint32_audio_capture_cost,this._captureCostCount+=1,this._captureCostCount>=100&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0)),e.uint32_audio_capture_cost===0&&(this._localStreamStat.statsToReport.uint32_audio_capture_thread_health_zero_cnt+=1)}}handlePublishStart({room:t}){this.hitTest(t)&&this._localStreamStat.publishStartTime===0&&(this._localStreamStat.publishStartTime=Date.now())}handleTrackCaptureStart({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_start_time&&(this._pathJoinRoom.uint64_init_audio_start_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_start_time&&(this._pathJoinRoom.uint64_init_camera_start_time=Date.now())}handleTrackCaptureSuccess({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=0,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=0,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}handleTrackCaptureFailed({track:t,error:e}){let o={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[e.name]||(e instanceof ae?e.getExtraCode()||e.getCode():q.UNKNOWN);t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=o,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=o,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&en)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&tn)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&ga)>=0}hitTest(t){return t===this._room}prepareReport(){if(this._captureCostCount>0&&!this._basicInfo.uint32_audio_capture_cost&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0),this._networkQuality.count>0&&(this._basicInfo.uint32_avg_rtt=Math.floor(this._networkQuality.totalUplinkRTT/this._networkQuality.count),this._basicInfo.uint32_avg_up_loss=Math.floor(this._networkQuality.totalUplinkLoss/this._networkQuality.count)),this._localStreamStat.videoCount>0){this._localStreamStat.statsToReport.uint32_video_big_capture_fps=Math.floor(this._localStreamStat.totalVideoFPS/this._localStreamStat.videoCount),this._localStreamStat.statsToReport.uint32_video_big_bitrate=Math.floor(this._localStreamStat.totalVideoBitrate/this._localStreamStat.videoCount);let t=Math.floor(this._localStreamStat.totalVideoWidth/this._localStreamStat.videoCount),e=Math.floor(this._localStreamStat.totalVideoHeight/this._localStreamStat.videoCount);this._localStreamStat.statsToReport.uint32_video_big_resolution=t<<16|e}this._localStreamStat.audioLevelCount>0&&(this._localStreamStat.statsToReport.uint32_audio_capture_db=Math.floor(this._localStreamStat.totalAudioLevel/this._localStreamStat.audioLevelCount*100)),this._remoteStreamStatMap.forEach((t,e)=>{let{userId:r}=t,o=this._networkQuality.totalDownlinkRTTAndLossMap.get(r);if(o){let{totalLoss:p,count:f,audioDelayCount:g,videoDelayCount:y,totalAudioDelay:R,totalVideoDelay:C}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(p/f),g&&R&&(t.statsToReport.uint32_audio_network_p2p_delay=Math.floor(R/g),t.audioJitterBufferDelay&&(t.statsToReport.uint32_p2p_delay=Math.floor(t.statsToReport.uint32_audio_network_p2p_delay+t.audioJitterBufferDelay))),y&&C&&(t.statsToReport.uint32_video_network_p2p_delay=Math.floor(C/y))}t.videoCount>0&&(t.statsToReport.uint32_video_avg_fps=Math.floor(t.totalVideoFPS/t.videoCount),t.statsToReport.uint32_video_avg_bitrate=Math.floor(t.totalVideoBitrate/t.videoCount)),t.audioCount>0&&(t.statsToReport.uint32_audio_recv_bitrate=t.statsToReport.uint32_audio_bitrate=Math.floor(t.totalAudioBitrate/t.audioCount)),t.audioLevelCount>0&&(t.statsToReport.uint32_audio_play_db=Math.floor(t.totalAudioLevel/t.audioLevelCount*100));let{callDurationCalculator:s}=this._room;s&&(t.statsToReport.uint32_audio_play_time=s.getDuration(e,M.AUDIO),t.statsToReport.uint32_video_play_time=s.getDuration(e,M.VIDEO)),t.statsToReport.uint32_video_render_first&&(t.statsToReport.uint32_video_render_first=Math.min(t.statsToReport.uint32_video_render_first,Bs));let{badCaseDetector:n}=this._room,{dataFreeze:a,count:d}=n.getDataFreezeDuration(e),{renderFreeze:l}=n.getRenderFreezeDuration(e);t.statsToReport.uint32_video_block_count=d,t.statsToReport.uint32_video_block_time=Math.min(a,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_video_external_block_time=Math.min(l,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_audio_block_time=Math.min(t.statsToReport.uint32_audio_block_time,t.statsToReport.uint32_audio_play_time),n.isBlackStream(e)&&t.statsToReport.uint32_video_avg_fps===0?t.statsToReport.uint32_video_black_screen_subjective=1:t.statsToReport.uint32_video_black_screen_subjective=0}),this._pathMainAudioMap.forEach((t,e)=>{if(!this.hasAudioFlag(t.userId)){this._pathMainAudioMap.delete(e);return}t.statsToReport.uint64_play_first_frame_time-t.statsToReport.uint64_start_enter_time>Bs&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+Bs)}),this._pathMainVideoMap.forEach((t,e)=>{if(!this.hasVideoFlag(t.userId)){this._pathMainVideoMap.delete(e);return}t.statsToReport.uint64_render_first_frame_time-t.statsToReport.uint64_start_enter_time>Bs&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+Bs)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>Bs&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+Bs)}getReportData(){this._basicInfo.uint32_networkType=Cd();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new Fc({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:un(this._signalInfo.relayIp),uint32_client_ip:un(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*ri(2,31)),msg_path_enter_room:this._pathJoinRoom,msg_path_exit_room:this._pathLeaveRoom,msg_path_recv_video:[...this._pathMainVideoMap.values()].map(e=>e.statsToReport),msg_quality_statistics:[...this._remoteStreamStatMap.values()].map(e=>e.statsToReport),str_room_name:String(this._room.roomId||0),msg_path_recv_audio:[...this._pathMainAudioMap.values()].map(e=>e.statsToReport),uint32_info_client_ip:un(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend,str_user_sig:this._room.userSig,bytes_report_token:this._signalInfo.reportToken};return Aa(t),t}report(){return A(this,null,function*(){try{this.prepareReport();let t=this.getReportData();yield this.upload(t),this.initData()}catch(t){this._log.warn(t)}finally{this.isDestroyed&&(this._room=null)}})}upload(t){return A(this,null,function*(){if(t.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),r=To.enable?Di(t,2001,e):yield Cm(t),o=r instanceof ArrayBuffer,s=`${Ni(e,ho.KEY_POINT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r));let a=[this.uploadKVStat(J),this.uploadKVStat(Es)];n||a.push(wi({url:s,body:r,priority:"low"})),yield Promise.all(a)})}setConnectionType(t){this.connectionType=t,this._basicInfo.uint32_connection_type=t}uploadKVStat(t){return A(this,null,function*(){let e=t.getReportData(this._room.userSig,this._signalInfo.reportToken);if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=Ee(Y({},e.msg_sdk_basic_info),{bytes_device_name:this._basicInfo.string_device_name||"",bytes_os_version:this._basicInfo.string_os_version||"",uint32_framework:this._frameWorkType,uint32_network_type:this._basicInfo.uint32_networkType||0}),this._log.debug(e);let r=To.enable?Di(e,2003,this._room.sdkAppId):yield Cm(e),o=r instanceof ArrayBuffer,s=`${Ni(+this._room.sdkAppId,ho.KV_STAT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r)),n||wi({url:s,body:r})})}};Z([Is({settings:{timeout:500,retries:3}})],Ml.prototype,"upload",1);var Bs=5e3,KR={msg_user_info:null,uint32_video_avg_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_avg_bitrate:0,uint32_video_block_time:0,uint32_video_play_time:0,uint32_audio_block_time:0,uint32_audio_play_time:0,uint32_audio_play_db:0,uint32_avg_down_loss:0,uint32_stream_type:0,uint32_video_block_count:0,uint32_audio_block_count:0,uint32_audio_bitrate:0,uint32_video_black_screen_subjective:0,uint32_audio_recv_bitrate:0,uint32_video_external_block_time:0,uint32_video_consume_render_rate:0},Fc=class{constructor(t){m(this,"str_identifier");m(this,"str_tinyid");m(this,"uint32_role");this.str_identifier=String(t.userId),this.str_tinyid=String(t.tinyId||0),this.uint32_role=t.role}},OT=Ml;var Sf=class{constructor(){m(this,"_startTime");m(this,"_endTime");this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=_e())}stop(){this._endTime===0&&(this._endTime=_e())}getDuration(){return this._endTime===0?_e()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},xl=Sf;var yf=class{constructor(t){m(this,"_room",null);m(this,"_durationMap");m(this,"_eventMap",new Map);this._room=t.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(B.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(B.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(B.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{var n;let{userId:o}=r;if(!this.hitTest(t))return;e.hasAudio&&!r.hasAudio&&this.stopDurationItem(`${o}_main`,M.AUDIO),e.hasVideo&&!r.hasVideo&&this.stopDurationItem(`${o}_main`,M.VIDEO),e.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem(`${o}_auxiliary`,M.VIDEO);let s=(n=this._room)==null?void 0:n.remotePublishedUserMap.get(o);s&&(!e.hasAudio&&r.hasAudio&&s.remoteAudioTrack.isSubscribed&&this.addDuractionItem(o,M.AUDIO,"main"),!e.hasVideo&&r.hasVideo&&s.remoteVideoTrack.isSubscribed&&this.addDuractionItem(o,M.VIDEO,"main"),!e.hasAuxiliary&&r.hasAuxiliary&&s.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(o,M.VIDEO,"auxiliary"))}),this._eventMap.forEach((t,e)=>U.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>U.off(e,t,this)),this._eventMap.clear()}handleSubscribed({track:t}){if(!this.hitTest(t.room))return;let{userId:e,streamType:r,kind:o}=t;t.isSubscribed?this.addDuractionItem(e,o,r):this.stopDurationItem(`${e}_${r}`,o)}handleUnsubscribed({track:t}){this.hitTest(t.room)&&this.stopDurationItem(`${t.userId}_${t.streamType}`,t.kind)}isRecording(t){return t.findIndex(e=>e.endTime===0)>=0}addDuractionItem(t,e,r){let o=`${t}_${r}`,s=new xl,n=this._durationMap.get(o);n?this.isRecording(n[e])||n[e].push(s):this._durationMap.set(o,{userId:t,type:r,audio:e===M.AUDIO?[s]:[],video:e===M.AUDIO?[]:[s]})}stopDurationItem(t,e){if(this._durationMap.has(t)){let o=this._durationMap.get(t)[e].find(s=>s.endTime===0);o&&o.stop()}}hitTest(t){return this._room===t}getDuration(t,e){return this._durationMap.has(t)?this._durationMap.get(t)[e].reduce((o,s)=>o+s.getDuration(),0):0}getDurationMap(){return this._durationMap}reset(){this._durationMap.clear()}destroy(){this._room=null,this.uninstallEvents()}},MT=yf;var Af=class{constructor(){m(this,"renderFreezeMap",new Map);m(this,"dataFreezeMap",new Map)}get(t,e){let r=this.renderFreezeMap.get(t),o=this.dataFreezeMap.get(t);return e?e==="data"?o:r:(_t||lt)&&r&&o&&r.duration>o.duration?r:o}set(t,e,r){r==="data"?this.dataFreezeMap.set(t,e):this.renderFreezeMap.set(t,e)}clear(){this.renderFreezeMap.clear(),this.dataFreezeMap.clear()}},bf=class{constructor(t){m(this,"_room");m(this,"_renderFreezeMap",new Map);m(this,"_isVideoPlayingEventFiredMap",new Map);m(this,"_dataFreezeMap",new Map);m(this,"_monitorFreezeData",new Af);m(this,"_eventMap",new Map);m(this,"_videoEncodeFailedCount",0);m(this,"_audioEncodeFailedCount",0);m(this,"_encodeFailedThreshold",3);m(this,"eventListenerMap",new Map);this._room=t.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(B.LEAVE_SUCCESS,({room:t})=>{this.hitTest(t)&&this.stop()}).set(B.PLAY_TRACK_START,this.onPlayTrackStart).set(B.UNSUBSCRIBE_SUCCESS,({room:t,streamType:e,remotePublishedUser:r})=>{if(!this.hitTest(t))return;let{userId:o}=r,s=`${o}_${e}`;this.stopDataFreeze({key:s,userId:o,type:e})}).set(B.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let{userId:o}=r;if(e.hasVideo&&!r.hasVideo){let s="main",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}if(e.hasAuxiliary&&!r.hasAuxiliary){let s="auxiliary",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}}).set(B.PLAYER_STATE_CHANGED,({track:t,state:e,reason:r,type:o})=>{if(!(!t.isRemote||!t.room||!this.hitTest(t.room)||o!==M.VIDEO)){if(e==="PLAYING"){let s=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.set(s,!0)}r===M.MUTE?this.onVideoTrackMuted(t):r===M.UNMUTE&&this.onVideoTrackUnmuted(t)}}).set(B.HEARTBEAT_REPORT,this.onHearBeatReport).set(B.REMOTE_VIDEO_PLAY_START,this.onRemoteVideoPlayStart).set(B.REMOTE_VIDEO_PLAY_FINISH,this.onRemoteVideoPlayEnd),this._eventMap.forEach((t,e)=>U.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>U.off(e,t,this)),this._eventMap.clear()}stop(){this._renderFreezeMap.clear(),this._dataFreezeMap.clear(),this._isVideoPlayingEventFiredMap.clear()}onVideoTrackMuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`,s=this._dataFreezeMap.get(o),n=new xl;s?s.durationItemList.push(n):this._dataFreezeMap.set(o,{userId:e,type:r,durationItemList:[n],isFreezing(){let a=this.durationItemList[this.durationItemList.length-1];return a&&a.endTime===0}})}onVideoTrackUnmuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`;this.stopDataFreeze({key:o,userId:e,type:r})}onHearBeatReport({room:t,report:e}){if(this.hitTest(t)){if(e.msg_up_stream_info.msg_video_status){let r=e.msg_up_stream_info.msg_video_status,o=Array.from(this._room.localTracks).find(n=>n.kind==="video"&&!n.isScreen),s=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||s<=0||o!=null&&o.isUseCustomSource)return;r.forEach(n=>{n.uint32_video_stream_type===2&&(n.uint32_video_capture_fps!==0&&n.uint32_video_codec_bitrate===0&&n.uint32_video_enc_fps===0&&(o!=null&&o.isPublished)?(this._videoEncodeFailedCount+=1,this._videoEncodeFailedCount===this._encodeFailedThreshold&&je.uploadEvent({userId:this._room.userId,log:`stat-${Ar.VIDEO_ENCODE_FAILED_DURING_CALL}`})):this._videoEncodeFailedCount=0)})}if(e.msg_up_stream_info.msg_audio_status){let r=e.msg_up_stream_info.msg_audio_status,o=Array.from(this._room.localTracks).find(n=>n.kind==="audio"),s=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||s<=0)return;r.uint32_audio_codec_bitrate===0&&(o!=null&&o.isPublished)?(this._audioEncodeFailedCount+=1,this._audioEncodeFailedCount===this._encodeFailedThreshold&&je.uploadEvent({userId:this._room.userId,log:`stat-${Ar.AUDIO_ENCODE_FAILED_DURING_CALL}`})):this._audioEncodeFailedCount=0}}}stopDataFreeze({key:t,userId:e,type:r}){let o=this._dataFreezeMap.get(t);if(!o||!o.isFreezing())return;let s=o.durationItemList[o.durationItemList.length-1];s.stop();let n=s.getDuration();if(n>Sd){let a=this._monitorFreezeData.get(t,"data");this._monitorFreezeData.set(t,{userId:e,type:r,duration:a?a.duration+n:n},"data")}else o.durationItemList.pop()}getTotalDuration(t){return t.reduce((e,r)=>{let o=r.getDuration();return e+Math.min(o,5e3)},0)}onPlayTrackStart({track:t}){if(!t.isRemote||!this.hitTest(t.room)||t.kind!==M.VIDEO||!t.isRemotePublished)return;let e=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.has(e)||this._isVideoPlayingEventFiredMap.set(e,!1)}getDataFreezeDuration(t){let e={dataFreeze:0,count:0},r=this._dataFreezeMap.get(t);if(r){if(r.isFreezing()){let o=r.durationItemList[r.durationItemList.length-1];o.stop(),o.getDuration()<Sd&&r.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(r.durationItemList),e.count=r.durationItemList.length}return e}getRenderFreezeDuration(t){let e={renderFreeze:0,count:0},r=this._renderFreezeMap.get(t);return r&&(e.renderFreeze=r.totalDuration,e.count=r.count),e}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(t){return this._isVideoPlayingEventFiredMap.has(t)?!this._isVideoPlayingEventFiredMap.get(t):!1}onRemoteVideoPlayStart({track:t,player:e}){var n;if(!zr())return;let r=0,o=()=>{document.hidden||(r=0)};document.addEventListener("visibilitychange",o);let s=(a,d)=>{var l;if(r){let p=t.decodeFPS,f=p>0&&p<=5?600+1e3/p:600,g=d.presentationTime-r;if(g>f){g=Math.min(g,5e3);let y=`${t.userId}_${t.streamType}`,R=this._monitorFreezeData.get(y,"render");R?R.duration+=g:this._monitorFreezeData.set(y,{userId:t.userId,type:t.streamType,duration:g},"render");let C=this._renderFreezeMap.get(y);C?(C.totalDuration+=g,C.count+=1):this._renderFreezeMap.set(y,{userId:t.userId,type:t.streamType,totalDuration:g,count:1})}}r=d.presentationTime,(l=e.element)==null||l.requestVideoFrameCallback(s)};(n=e.element)==null||n.requestVideoFrameCallback(s),this.eventListenerMap.set(`${t.userId}_${t.streamType}`,{onVisibilityChange:o})}onRemoteVideoPlayEnd({track:t,player:e}){let r=`${t.userId}_${t.streamType}`,o=this.eventListenerMap.get(r);o&&document.removeEventListener("visibilitychange",o.onVisibilityChange)}resetMonitor(){this._monitorFreezeData.clear()}hitTest(t){return t===this._room}destroy(){this.uninstallEvents()}},xT=bf;var kT=bi(ki(),1);var Pl=class{constructor(t,e,r,o,s,n=4/3){this.vbMode=t;this.faceDetectorHash=r;this.visionTaskRegistry=o;this.logger=s;m(this,"animationState");m(this,"originalAspect");m(this,"totalOffsetX",0);m(this,"totalOffsetY",0);m(this,"defaultScaleRatio",.1);m(this,"isRecovering",!1);m(this,"boundaryY",280);m(this,"lastActionTime",0);m(this,"restTime",400);this.animationState={current:null,target:null,animating:!1,debounceTimer:null,startTime:0,duration:3e3,debounceTime:150,movementThreshold:30,debounceThreshold:15},this.addEvent(this.vbMode,!!this.faceDetectorHash),this.originalAspect=n||4/3,this.visionTaskRegistry.setVideo(this.faceDetectorHash,e)}addEvent(t,e,r){let s=[{key:570704,error:r!=null?r:e?void 0:11},{key:570705,error:r!=null?r:e?void 0:22}][t-1];s&&(e?J.addSuccessEvent({key:s.key}):J.addFailedEvent({key:s.key,error:s.error}))}actionCentering(t){let e=Date.now();if(this.animation(),!this.faceDetectorHash||e-this.lastActionTime<this.restTime||this.animationState.animating)return;let{videoWidth:r,videoHeight:o}=t;this.animationState.debounceThreshold=r/30,this.animationState.movementThreshold=r/20,this.boundaryY=o*.6;try{let s=this.visionTaskRegistry.getResult(this.faceDetectorHash);if(s.detections.length<=0){this.vbMode===1&&this.recoverOriginal(r,o);return}let n=s.detections[0].boundingBox,a=n.originX,d=n.originY,l=n.width,p=n.height;this.vbMode===1?this.dualStageCropping(r,o,a,d,l,p):this.vbMode===2&&this.movingPortrait(r,o,a,d,l,p)}catch(s){this.logger.error(s)}this.lastActionTime=e}calculateBoundary(t,e,r,o){let s,n;return t>e/2?(s=e-r-o,n=r-s):(s=r,n=0),{min:s,offset:n}}calculateTargetPosition(t,e,r,o,s,n,a=.4){let d=t+r/2,l=e+o/2,p,f,{min:g,offset:y}=this.calculateBoundary(d,s,t,r),{min:R,offset:C}=this.calculateBoundary(l,n,e,o);return p=2*g+r,f=2*R+o,p/f>this.originalAspect?(p=f*this.originalAspect,y=d-p/2):(f=p/this.originalAspect,C=l-f/2),r/s>a&&(y=0,C=0,p=s,f=n),y=Math.max(0,Math.min(y,s-p)),C=Math.max(0,Math.min(C,n-f)),{sx:y,sy:C,cropWidth:p,cropHeight:f,timestamp:Date.now()}}processFacePositionCrop(t,e,r){if(!this.animationState.current||!this.animationState.target){let a={sx:0,sy:0,cropWidth:e,cropHeight:r,timestamp:Date.now()};this.animationState.current=a,this.animationState.target=a;return}let o=this.positionDistance(this.animationState.target,t),s=this.positionDistance(this.animationState.current,t),n=this.animationState.current.cropWidth/e;o>this.animationState.debounceThreshold*n&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&s>this.animationState.movementThreshold*n&&(this.animationState.target=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}processFacePositionPortrait(t){if(!this.animationState.current||!this.animationState.target){this.animationState.current=Y({},t),this.animationState.target=Y({},t);return}let e=this.positionDistance(this.animationState.current,t),r=this.positionDistance(this.animationState.target,t);e>this.animationState.debounceThreshold&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&r>this.animationState.movementThreshold&&(this.animationState.current=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}animation(){if(!this.animationState.animating)return;let t=Date.now()-this.animationState.startTime,e=Math.min(t/this.animationState.duration,1),r=o=>o<.5?2*o*o:-1+(4-2*o)*o;if(this.animationState.current&&this.animationState.target){let o=(this.animationState.target.sx-this.animationState.current.sx)*r(e);this.animationState.current.sx+=o,this.totalOffsetX+=o;let s=(this.animationState.target.sy-this.animationState.current.sy)*r(e);if(this.animationState.current.sy+=s,this.totalOffsetY+=s,this.animationState.current.cropWidth+=(this.animationState.target.cropWidth-this.animationState.current.cropWidth)*r(e),this.animationState.current.cropHeight+=(this.animationState.target.cropHeight-this.animationState.current.cropHeight)*r(e),this.animationState.current.scaleRatio&&this.animationState.target.scaleRatio&&(this.animationState.current.scaleRatio+=(this.animationState.target.scaleRatio-this.animationState.current.scaleRatio)*r(e)),Ve(this.animationState.current.scaleOffsetX)&&Ve(this.animationState.target.scaleOffsetX)&&Ve(this.animationState.current.scaleOffsetY)&&Ve(this.animationState.target.scaleOffsetY)){let n=(this.animationState.target.scaleOffsetX-this.animationState.current.scaleOffsetX)*r(e);this.animationState.current.scaleOffsetX+=n;let a=(this.animationState.target.scaleOffsetY-this.animationState.current.scaleOffsetY)*r(e);this.animationState.current.scaleOffsetY+=a}}e>=1&&(this.animationState.animating=!1,this.animationState.current=this.animationState.target,this.isRecovering=!1)}positionDistance(t,e){return Math.sqrt(ri(t.sx-e.sx,2)+ri(t.sy-e.sy,2))}recoverOriginal(t,e){this.animationState.target={sx:0,sy:0,cropWidth:t,cropHeight:e,timestamp:Date.now()},this.animationState.animating=!0,this.animationState.startTime=Date.now(),this.isRecovering=!0}dualStageCropping(t,e,r,o,s,n,a=.3){if(this.isRecovering)return;let d=this.calculateTargetPosition(r,o,s,n,t,e);this.processFacePositionCrop(d,t,e),s*n/d.cropWidth/d.cropHeight>a&&this.recoverOriginal(t,e)}movingPortrait(t,e,r,o,s,n){var d,l,p,f,g,y,R,C,N,k,Q,H;let a={sx:r+s/2+this.totalOffsetX,sy:o+n/2+this.totalOffsetY,cropWidth:t,cropHeight:e,scaleRatio:(l=(d=this.animationState.current)==null?void 0:d.scaleRatio)!=null?l:1,scaleOffsetX:(f=(p=this.animationState.current)==null?void 0:p.scaleOffsetX)!=null?f:0,scaleOffsetY:(y=(g=this.animationState.current)==null?void 0:g.scaleOffsetY)!=null?y:0,timestamp:Date.now()};this.animationState.target={sx:t/2,sy:o+n/2,cropWidth:t,cropHeight:e,scaleRatio:(C=(R=this.animationState.target)==null?void 0:R.scaleRatio)!=null?C:1,scaleOffsetX:(k=(N=this.animationState.target)==null?void 0:N.scaleOffsetX)!=null?k:0,scaleOffsetY:(H=(Q=this.animationState.target)==null?void 0:Q.scaleOffsetY)!=null?H:0,timestamp:Date.now()},this.animationState.animating||(this.animationState.target.scaleRatio=Math.sqrt(s*n/t/e/this.defaultScaleRatio),this.animationState.target.scaleOffsetX=-this.animationState.target.scaleRatio/2+.5,this.animationState.target.scaleOffsetY=-this.animationState.target.scaleRatio+1,(this.animationState.target.sy-this.animationState.target.scaleOffsetY*this.animationState.target.cropHeight)/this.animationState.target.scaleRatio<this.boundaryY&&(this.animationState.target.scaleOffsetY=(this.animationState.target.sy-this.boundaryY*this.animationState.target.scaleRatio)/this.animationState.target.cropHeight)),this.processFacePositionPortrait(a)}set aspectRatio(t){this.originalAspect=t}get current(){return this.animationState.current}get offset(){return{offsetX:this.totalOffsetX,offsetY:this.totalOffsetY}}get targetCrop(){return this.animationState.target}};var ev=`#version 300 es
104
104
  in vec2 a_position;
105
105
  in vec2 a_texCoord;
106
106
  out vec2 v_texCoord;
@@ -116,7 +116,7 @@ in vec2 v_texCoord;
116
116
  out vec4 outColor;
117
117
  void main() {
118
118
  outColor = vec4(texture(u_texture, v_texCoord).rgb, texture(mask, v_texCoord).a);
119
- }`,Pl=class extends Dr{constructor(e,r){super(e,r.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,width:r.width,height:r.height,logger:e.log});m(this,"_bgTexture");m(this,"_waterMarkTexture");m(this,"_lastMaskTexture");m(this,"_lastMaskFbo");m(this,"_textureValid",!1);m(this,"_selfieTextureValid",!1);m(this,"_selfieSegmentationHash");m(this,"wasm");m(this,"predictReady");m(this,"_color");m(this,"_prePrograme");m(this,"_segmentationMask");m(this,"_weixin",!1);m(this,"_centerFace");m(this,"_textureMatrixLocation");m(this,"_offsetMatrixLocation");m(this,"_colorLocation");m(this,"_enableFaceCentering",!1);m(this,"_enableEffectOptimization",!1);m(this,"_mat4");m(this,"_postProcessing");m(this,"_onAbort");m(this,"_visionTaskRegistry");m(this,"resolvePreditReady");this.init(r).catch(o=>{e.log.error(o),e.destroy(new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:6,message:`init vb node error ${o.message||o}`})),this.resolvePreditReady()})}init(e){return A(this,null,function*(){var n,a,d;this.predictReady=new Promise(l=>{this.resolvePreditReady=l});let r=e.Wasm,o=this.context.ctx;if(e.color&&(this._color=e.color),e.mat4&&(this._mat4=e.mat4),e.postProcessing&&(this._postProcessing=e.postProcessing),this._enableFaceCentering=(n=e.enableFaceCentering)!=null?n:!1,this._enableEffectOptimization=(a=e.enableEffectOptimization)!=null?a:!1,this.wasm=new r.AllIn1(o),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.rotation=e.rotation||0,this.wasm.vbMode=e.bg==="blur"?1:e.bg instanceof HTMLImageElement?2:e.bg==="color"?3:0,this._onAbort=e.onAbort,e.bg||this.resolvePreditReady(),e.waterMark){let{x:l,y:p,width:f,height:g}=e.waterMark;this.wasm.setWaterMark(l,p,f,g)}if(e.beautyParams){let{beauty:l,brightness:p,ruddy:f}=e.beautyParams;this.wasm.setBeauty(l,p,f,e==null?void 0:e.width,e==null?void 0:e.height)}this.program=this.wasm.init(),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this.program,"mask"),1),e.bg instanceof HTMLImageElement&&(o.uniform1i(o.getUniformLocation(this.program,"bg"),2),this._bgTexture=this.createTexture(e.bg)),e.waterMark&&(o.uniform1i(o.getUniformLocation(this.program,"waterMark"),3),this._waterMarkTexture=this.createTexture(e.waterMark.image));let s=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);if(this._textureMatrixLocation=o.getUniformLocation(this.program,"u_textureMatrix"),o.uniformMatrix4fv(this._textureMatrixLocation,!1,s),this._offsetMatrixLocation=o.getUniformLocation(this.program,"u_offsetMatrix"),o.uniformMatrix4fv(this._offsetMatrixLocation,!1,s),this._colorLocation=o.getUniformLocation(this.program,"u_color"),o.uniform1i(o.getUniformLocation(this.program,"lastMask"),4),this._weixin){let l=this.context.createShader(o.FRAGMENT_SHADER,tv),p=this.context.createShader(o.VERTEX_SHADER,ev);this._prePrograme=this.context.createProgram(p,l),o.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this._prePrograme,"mask"),1)}this._enableEffectOptimization&&(this.wasm.vbMode===2||this.wasm.vbMode===3)?ka()?(this._postProcessing=void 0,this.log.warn("Virtual background post-processing isn't allowed on mobile.")):(d=this._postProcessing)==null||d.init(o,this.positionBuffer,this.texCoordBuffer,4/3):this._postProcessing=void 0,yield this.initVisionTasks(e)})}initVisionTasks(e){return A(this,null,function*(){if(e.bg){if(this._visionTaskRegistry=yield window.VisionTaskRegistry.getInstance(),!window.VisionTaskRegistry||!this._visionTaskRegistry||!this._visionTaskRegistry.visionWasm)throw new Error("Virtual background assets not found. Please redeploy the assets of the npm package.");if(this._selfieSegmentationHash=yield this._visionTaskRegistry.register(window.VisionTaskType.ImageSegmenter,{canvas:this.context._canvas}),this._visionTaskRegistry.setVideo(this._selfieSegmentationHash,this.image),this._enableFaceCentering)try{this._visionTaskRegistry.models.has(window.VisionTaskType.FaceDetector)||(yield this._visionTaskRegistry.preloadModels([window.VisionTaskType.FaceDetector]));let r=yield this._visionTaskRegistry.register(window.VisionTaskType.FaceDetector);if(!r)return;this._centerFace=new xl(this.wasm.vbMode,this.image,r,this._visionTaskRegistry,this.context.log)}catch(r){this.log.error("Face detector model not found. Please redeploy the assets of the npm package.")}}})}onPredict(e){let r=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture)));let o=this.getMaskTexture(e);if(!o)return;let s=o;this._postProcessing&&(this._postProcessing.ratio=this.image.videoWidth/this.image.videoHeight,s=this._postProcessing.postProcessing(o)),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),this.useTexture(),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,s||null),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),this.wasm.vbMode===3&&r.uniform3fv(this._colorLocation,this._color),this.useBufferFrame(),this._segmentationMask=e,this.totalFrames++,this.centerFace(),pr(this.wasm.rotation)&&this.resize(this.image.height,this.image.width),r.viewport(0,0,r.canvas.width,r.canvas.height),r.drawArrays(r.TRIANGLE_STRIP,0,4),e.close()}getMaskTexture(e){return e.confidenceMasks?e.confidenceMasks[0].getAsWebGLTexture():void 0}onFirstFrame(){this.waitingFirstFrame=!1;let e=this.context.ctx;this.useTexture(),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,this.image)}render(e){let r=this.context.ctx,{image:o}=this;this.tryVideoFrameCallback();let{videoWidth:s,videoHeight:n}=o;if(pr(this.wasm.rotation)&&!this._visionTaskRegistry&&([s,n]=[n,s]),s===0||n===0||!this.available)return!1;o.width=s,o.height=n;let a=!1;if(this.totalFrames)this.useTexture(),a=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(this.program)this.useTexture();else return!1;a=this._textureValid,this._textureValid=!0}if(this.width!==s||this.height!==n||!a?(this.resize(s,n),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,o)):r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,o),this._weixin){if(r.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask){let d=this.getMaskTexture(this._segmentationMask);r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,d||null),r.bindFramebuffer(r.FRAMEBUFFER,this._lastMaskFbo||null)}r.drawArrays(r.TRIANGLE_STRIP,0,4),this.useTexture(),this._segmentationMask?r.copyTexSubImage2D(r.TEXTURE_2D,0,0,0,0,0,s,n):r.copyTexImage2D(r.TEXTURE_2D,0,r.RGBA,0,0,s,n,0)}try{if(this._selfieSegmentationHash&&this._visionTaskRegistry){let d=this._visionTaskRegistry.getResult(this._selfieSegmentationHash);this.totalFrames===1&&this.context._canvas&&this.resolvePreditReady(),this.onPredict(d)}}catch(d){this._onAbort&&this._onAbort(d)}return this.totalFrames||(r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),r.drawArrays(r.TRIANGLE_STRIP,0,4)),this._visionTaskRegistry&&this._visionTaskRegistry.resetHashResults(),!1}centerFace(){if(!this._centerFace||!this._enableFaceCentering)return;let e=this.context.ctx;this._centerFace.aspectRatio=e.canvas.width/e.canvas.height,this._centerFace.actionCentering(this.image);let{current:r,offset:o}=this._centerFace;if(r&&(this.wasm.vbMode===1&&this.drawImage(r.sx,r.sy,r.cropWidth,r.cropHeight),o&&this.wasm.vbMode===2)){if(!this._mat4)return;let s=this._mat4.create(),{scaleRatio:n=1,scaleOffsetX:a=0,scaleOffsetY:d=0}=r;this._mat4.fromTranslation(s,[-o.offsetX/e.canvas.width+a,d,0]),this._mat4.scale(s,s,[n,n,1]),e.uniformMatrix4fv(this._offsetMatrixLocation,!1,s)}}drawImage(e,r,o,s){let n=this.context.ctx;if(!this._mat4)return;let{width:a,height:d}=n.canvas,l=this._mat4.create();this._mat4.fromTranslation(l,[e/a,1-(r+s)/d,0]),this._mat4.scale(l,l,[o/a,s/d,1]),n.uniformMatrix4fv(this._textureMatrixLocation,!1,l)}close(){var r;super.close();let e=this.context.ctx;this._bgTexture&&e.deleteTexture(this._bgTexture),this._waterMarkTexture&&e.deleteTexture(this._waterMarkTexture),this._lastMaskTexture&&e.deleteTexture(this._lastMaskTexture),this._lastMaskFbo&&e.deleteFramebuffer(this._lastMaskFbo),this._prePrograme&&e.deleteProgram(this._prePrograme),this._postProcessing&&this._postProcessing.close(),(r=this.wasm)==null||r.close()}};var Ll=class extends bt{constructor(e){super(e,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:e.log,fragmentShaderSource:`
119
+ }`,Ll=class extends Dr{constructor(e,r){super(e,r.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,width:r.width,height:r.height,logger:e.log});m(this,"_bgTexture");m(this,"_waterMarkTexture");m(this,"_lastMaskTexture");m(this,"_lastMaskFbo");m(this,"_textureValid",!1);m(this,"_selfieTextureValid",!1);m(this,"_selfieSegmentationHash");m(this,"wasm");m(this,"predictReady");m(this,"_color");m(this,"_prePrograme");m(this,"_segmentationMask");m(this,"_weixin",!1);m(this,"_centerFace");m(this,"_textureMatrixLocation");m(this,"_offsetMatrixLocation");m(this,"_colorLocation");m(this,"_enableFaceCentering",!1);m(this,"_enableEffectOptimization",!1);m(this,"_mat4");m(this,"_postProcessing");m(this,"_onAbort");m(this,"_visionTaskRegistry");m(this,"resolvePreditReady");this.init(r).catch(o=>{e.log.error(o),e.destroy(new ae({code:q.VIDEO_MANAGER_ERROR,extraCode:6,message:`init vb node error ${o.message||o}`})),this.resolvePreditReady()})}init(e){return A(this,null,function*(){var n,a,d;this.predictReady=new Promise(l=>{this.resolvePreditReady=l});let r=e.Wasm,o=this.context.ctx;if(e.color&&(this._color=e.color),e.mat4&&(this._mat4=e.mat4),e.postProcessing&&(this._postProcessing=e.postProcessing),this._enableFaceCentering=(n=e.enableFaceCentering)!=null?n:!1,this._enableEffectOptimization=(a=e.enableEffectOptimization)!=null?a:!1,this.wasm=new r.AllIn1(o),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.rotation=e.rotation||0,this.wasm.vbMode=e.bg==="blur"?1:e.bg instanceof HTMLImageElement?2:e.bg==="color"?3:0,this._onAbort=e.onAbort,e.bg||this.resolvePreditReady(),e.waterMark){let{x:l,y:p,width:f,height:g}=e.waterMark;this.wasm.setWaterMark(l,p,f,g)}if(e.beautyParams){let{beauty:l,brightness:p,ruddy:f}=e.beautyParams;this.wasm.setBeauty(l,p,f,e==null?void 0:e.width,e==null?void 0:e.height)}this.program=this.wasm.init(),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this.program,"mask"),1),e.bg instanceof HTMLImageElement&&(o.uniform1i(o.getUniformLocation(this.program,"bg"),2),this._bgTexture=this.createTexture(e.bg)),e.waterMark&&(o.uniform1i(o.getUniformLocation(this.program,"waterMark"),3),this._waterMarkTexture=this.createTexture(e.waterMark.image));let s=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);if(this._textureMatrixLocation=o.getUniformLocation(this.program,"u_textureMatrix"),o.uniformMatrix4fv(this._textureMatrixLocation,!1,s),this._offsetMatrixLocation=o.getUniformLocation(this.program,"u_offsetMatrix"),o.uniformMatrix4fv(this._offsetMatrixLocation,!1,s),this._colorLocation=o.getUniformLocation(this.program,"u_color"),o.uniform1i(o.getUniformLocation(this.program,"lastMask"),4),this._weixin){let l=this.context.createShader(o.FRAGMENT_SHADER,tv),p=this.context.createShader(o.VERTEX_SHADER,ev);this._prePrograme=this.context.createProgram(p,l),o.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this._prePrograme,"mask"),1)}this._enableEffectOptimization&&(this.wasm.vbMode===2||this.wasm.vbMode===3)?ka()?(this._postProcessing=void 0,this.log.warn("Virtual background post-processing isn't allowed on mobile.")):(d=this._postProcessing)==null||d.init(o,this.positionBuffer,this.texCoordBuffer,4/3):this._postProcessing=void 0,yield this.initVisionTasks(e)})}initVisionTasks(e){return A(this,null,function*(){if(e.bg){if(this._visionTaskRegistry=yield window.VisionTaskRegistry.getInstance(),!window.VisionTaskRegistry||!this._visionTaskRegistry||!this._visionTaskRegistry.visionWasm)throw new Error("Virtual background assets not found. Please redeploy the assets of the npm package.");if(this._selfieSegmentationHash=yield this._visionTaskRegistry.register(window.VisionTaskType.ImageSegmenter,{canvas:this.context._canvas}),this._visionTaskRegistry.setVideo(this._selfieSegmentationHash,this.image),this._enableFaceCentering)try{this._visionTaskRegistry.models.has(window.VisionTaskType.FaceDetector)||(yield this._visionTaskRegistry.preloadModels([window.VisionTaskType.FaceDetector]));let r=yield this._visionTaskRegistry.register(window.VisionTaskType.FaceDetector);if(!r)return;this._centerFace=new Pl(this.wasm.vbMode,this.image,r,this._visionTaskRegistry,this.context.log)}catch(r){this.log.error("Face detector model not found. Please redeploy the assets of the npm package.")}}})}onPredict(e){let r=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture)));let o=this.getMaskTexture(e);if(!o)return;let s=o;this._postProcessing&&(this._postProcessing.ratio=this.image.videoWidth/this.image.videoHeight,s=this._postProcessing.postProcessing(o)),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),this.useTexture(),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,s||null),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),this.wasm.vbMode===3&&r.uniform3fv(this._colorLocation,this._color),this.useBufferFrame(),this._segmentationMask=e,this.totalFrames++,this.centerFace(),pr(this.wasm.rotation)&&this.resize(this.image.height,this.image.width),r.viewport(0,0,r.canvas.width,r.canvas.height),r.drawArrays(r.TRIANGLE_STRIP,0,4),e.close()}getMaskTexture(e){return e.confidenceMasks?e.confidenceMasks[0].getAsWebGLTexture():void 0}onFirstFrame(){this.waitingFirstFrame=!1;let e=this.context.ctx;this.useTexture(),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,this.image)}render(e){let r=this.context.ctx,{image:o}=this;this.tryVideoFrameCallback();let{videoWidth:s,videoHeight:n}=o;if(pr(this.wasm.rotation)&&!this._visionTaskRegistry&&([s,n]=[n,s]),s===0||n===0||!this.available)return!1;o.width=s,o.height=n;let a=!1;if(this.totalFrames)this.useTexture(),a=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(this.program)this.useTexture();else return!1;a=this._textureValid,this._textureValid=!0}if(this.width!==s||this.height!==n||!a?(this.resize(s,n),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,o)):r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,o),this._weixin){if(r.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask){let d=this.getMaskTexture(this._segmentationMask);r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,d||null),r.bindFramebuffer(r.FRAMEBUFFER,this._lastMaskFbo||null)}r.drawArrays(r.TRIANGLE_STRIP,0,4),this.useTexture(),this._segmentationMask?r.copyTexSubImage2D(r.TEXTURE_2D,0,0,0,0,0,s,n):r.copyTexImage2D(r.TEXTURE_2D,0,r.RGBA,0,0,s,n,0)}try{if(this._selfieSegmentationHash&&this._visionTaskRegistry){let d=this._visionTaskRegistry.getResult(this._selfieSegmentationHash);this.totalFrames===1&&this.context._canvas&&this.resolvePreditReady(),this.onPredict(d)}}catch(d){this._onAbort&&this._onAbort(d)}return this.totalFrames||(r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),r.drawArrays(r.TRIANGLE_STRIP,0,4)),this._visionTaskRegistry&&this._visionTaskRegistry.resetHashResults(),!1}centerFace(){if(!this._centerFace||!this._enableFaceCentering)return;let e=this.context.ctx;this._centerFace.aspectRatio=e.canvas.width/e.canvas.height,this._centerFace.actionCentering(this.image);let{current:r,offset:o}=this._centerFace;if(r&&(this.wasm.vbMode===1&&this.drawImage(r.sx,r.sy,r.cropWidth,r.cropHeight),o&&this.wasm.vbMode===2)){if(!this._mat4)return;let s=this._mat4.create(),{scaleRatio:n=1,scaleOffsetX:a=0,scaleOffsetY:d=0}=r;this._mat4.fromTranslation(s,[-o.offsetX/e.canvas.width+a,d,0]),this._mat4.scale(s,s,[n,n,1]),e.uniformMatrix4fv(this._offsetMatrixLocation,!1,s)}}drawImage(e,r,o,s){let n=this.context.ctx;if(!this._mat4)return;let{width:a,height:d}=n.canvas,l=this._mat4.create();this._mat4.fromTranslation(l,[e/a,1-(r+s)/d,0]),this._mat4.scale(l,l,[o/a,s/d,1]),n.uniformMatrix4fv(this._textureMatrixLocation,!1,l)}close(){var r;super.close();let e=this.context.ctx;this._bgTexture&&e.deleteTexture(this._bgTexture),this._waterMarkTexture&&e.deleteTexture(this._waterMarkTexture),this._lastMaskTexture&&e.deleteTexture(this._lastMaskTexture),this._lastMaskFbo&&e.deleteFramebuffer(this._lastMaskFbo),this._prePrograme&&e.deleteProgram(this._prePrograme),this._postProcessing&&this._postProcessing.close(),(r=this.wasm)==null||r.close()}};var kl=class extends bt{constructor(e){super(e,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:e.log,fragmentShaderSource:`
120
120
  precision highp float;
121
121
  uniform sampler2D ySampler;
122
122
  uniform sampler2D uSampler;
@@ -141,4 +141,4 @@ void main() {
141
141
  void main() {
142
142
  gl_Position = vertexPos;
143
143
  textureCoord = texturePos;
144
- }`});m(this,"yTextureRef");m(this,"uTextureRef");m(this,"vTextureRef");m(this,"Y");m(this,"U");m(this,"V");this.useProgram();let r=this.context.ctx;r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),this.setTexBuffer([0,1,1,1,0,0,1,0]),this.yTextureRef=this._initTexture("ySampler",0),this.uTextureRef=this._initTexture("uSampler",1),this.vTextureRef=this._initTexture("vSampler",2),this._canvas=e._canvas}_initTexture(e,r){let o=this.context.ctx,s=o.createTexture();return o.bindTexture(o.TEXTURE_2D,s),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.bindTexture(o.TEXTURE_2D,null),o.uniform1i(o.getUniformLocation(this.program,e),r),s}render(e){let r=this.context.ctx,o=this.width,s=this.height;return this.useProgram(),r.viewport(0,0,o,s),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.yTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o,s,r.LUMINANCE,r.UNSIGNED_BYTE,this.Y),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,this.uTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.U),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this.vTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.V),this.draw(),!0}resize(e,r){super.resize(e,r);let o=this.context.ctx;o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this.yTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e,r,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE1),o.bindTexture(o.TEXTURE_2D,this.uTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE2),o.bindTexture(o.TEXTURE_2D,this.vTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null)}};var LT=(i,t)=>{switch(i){case"webCodecs":return t==="videoFrame"?514705:514706;case"wasm":return t==="webgl"?514707:t==="videoFrame"?514708:514709}throw new Error("decoder type not supported")};function rv(i){return i[0]===0&&i[1]===0&&i[2]===0&&i[3]===1}var iv=0,kl=class{constructor(t){m(this,"id",iv++);m(this,"trackDoneOB");m(this,"startOB");m(this,"stopOB");m(this,"decoder");m(this,"videoContext");m(this,"gop",0);m(this,"gop_helper",0);m(this,"waitFirstKeyFrame",!0);m(this,"startTimestamp",0);m(this,"startTime",0);m(this,"startPerformanceTime",0);m(this,"inputFrameCount",0);m(this,"decodedFrameCount",0);m(this,"decodeFrameCount",0);m(this,"downgradeLevel",0);m(this,"lastDowngradeTime",0);m(this,"lastFrameDiff",0);m(this,"lastDecodeFrameTimestamp",0);m(this,"config");m(this,"gop_before_configure",[]);m(this,"videoElement");m(this,"type","wasm");m(this,"goodType");m(this,"renderer","2d");m(this,"wasmOption");m(this,"createDecoder");m(this,"_decodeSink");m(this,"isReported",!1);m(this,"track");m(this,"stateChangeOB");m(this,"failedReason");let{track:e,createDecoder:r}=t;if(this.stateChangeOB=At(),this.track=e,this.createDecoder=r,this.wasmOption={yuvMode:t.renderer==="webgl",wasmPath:t.wasmPath,workerMode:t.workerMode,canvas:t.canvas},this.config=t.config,this.videoElement=t.videoElement,this.renderer=t.renderer,this.trackDoneOB=ye(e.availableState,ue.OFF),this.stopOB=At(),t.type==="auto"){switch(t.fallback){case"wasm":this.type="wasm",this.renderer="webgl";break;case"wasm_2d":this.type="wasm",this.renderer="2d";break;case"wasm_video":this.type="wasm",this.renderer="videoFrame";break;default:this.type="webCodecs"}this.wasmOption.yuvMode=this.renderer==="webgl"}else this.type=t.type;this.changeRenderer(this.renderer),Ae(this.stateChangeOB,Ap((o,s)=>(o!==s&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:o,state:s}),s),"INITIALIZED"),ze(this.stopOB),Pe()),this.start()}start(t=0){this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=Ae(this.pipe(this.track),ze(this.stopOB),ji());Ae(e,Pe(()=>{this.track.stat.framesDecoded++},r=>{if(this.track.log.error(`${this.id} play failed: ${r} retryCount: ${t}`),J.addFailedEvent({key:LT(this.type,this.renderer),error:r}),t>4)this.failedReason=r,this.stateChangeOB.next("FAILED"),J.addFailedEvent({key:514704});else{if(this.goodType){this.start(t);return}switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":switch(this.renderer){case"webgl":this.changeRenderer("videoFrame");break}}this.start(t+1)}},()=>{this.track.log.warn(`${this.id} decoderOB completed`),J.addSuccessEvent({key:LT(this.type,this.renderer)}),J.addSuccessEvent({key:514704})})),Ae(e,Xr(1),Pe(()=>{this.track.player.handlePlaying("canvas"),this.goodType=this.type,this.stateChangeOB.next("STARTED")}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.start()}close(t){this.stopOB.next(t)}changeRenderer(t){this.renderer=t,this.renderer==="videoFrame"&&!gh()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(t,e=!1){var a,d;if(this.failedReason)return;this.inputFrameCount++;let r=new Uint8Array(t.data);if(!rv(r)||r.length<5)return this.stateChangeOB.next("FAILED"),this.close(`not h26x frame ${r.subarray(0,5)}`),t;let o=r[4]&31,s=!1;switch(o){case 5:case 7:s=!0;break}if(((a=this.decoder)==null?void 0:a.state)!=="configured")return this.track.log.debug(`not configured ${this.inputFrameCount}`),s&&(this.gop_before_configure=[]),this.gop_before_configure.push({data:t.data,timestamp:t.timestamp,type:t.type}),t;this.gop_before_configure.length>0&&!e&&(this.gop_before_configure.forEach(l=>this.decode(l,!0)),this.gop_before_configure=[]);let{timestamp:n}=t;if(s?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame)if(s)this.waitFirstKeyFrame=!1,this.startTimestamp=n,this.startTime=Date.now(),this.startPerformanceTime=_e();else{this.track.log.debug(`wait first key frame ${this.inputFrameCount} ${r.subarray(0,5).join(" ")}`);return}switch(this.downgradeLevel){case 0:break;case 1:break;case 2:if(this.gop_helper>this.gop>>1)return;break;case 3:if(this.gop_helper>0)return;break;default:return}(this.decodeFrameCount<10||this.decodeFrameCount%500===0)&&this.track.log.debug(`decode ${this.decodeFrameCount} gop: ${this.gop} ${n} ${(d=t.getMetadata)==null?void 0:d.call(t).rtpTimestamp}`),this.decodeFrameCount++,this.lastDecodeFrameTimestamp=n,this.decoder.decode({data:t.data,type:t.type,timestamp:this.lastDecodeFrameTimestamp});return}return t}checkDowngradeByFrameDiff(){let t=this.downgradeLevel,e=this.decodeFrameCount-this.decodedFrameCount;e>this.lastFrameDiff?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):e<=this.lastFrameDiff&&this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==t&&this.track.log.debug(`downgrade level ${t} to ${this.downgradeLevel} ${this.decodeFrameCount} frameDiff: ${e}, lastFrameDiff: ${this.lastFrameDiff}`),this.lastFrameDiff=e,this.lastDowngradeTime=Date.now()}checkDowngradeByTimestampDiff(t){let e=this.downgradeLevel;this.lastDecodeFrameTimestamp-t>9e4?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==e&&this.track.log.debug(`downgrade level ${e} to ${this.downgradeLevel}`)}pipe(t){return e=>A(this,null,function*(){this._decodeSink=e;let r,o=t.mediaTrack;e.defer(()=>{var a;o&&(t.player.setCanvas(),t.setInputMediaStreamTrack(o)),r==null||r.close(),(a=this.videoContext)==null||a.destroy(),delete this._decodeSink});let{renderer:s,type:n}=this;t.log.info(`decoder type: ${this.type} renderer: ${this.renderer}`);try{switch(n){case"wasm":r=this.createDecoder(n,this.wasmOption);break;case"webCodecs":r=this.createDecoder(n);break;default:throw new Error("not supported yet")}let a=0;if(r.on("videoFrame",d=>{this.decodedFrameCount++,a++,(a<=10||a%500===0)&&t.log.debug(`frame ${a} ${this.decodedFrameCount}/${this.decodeFrameCount} decoded ${d.timestamp}`),Date.now()-this.lastDowngradeTime>5e3&&(this.type==="webCodecs"?this.checkDowngradeByFrameDiff():this.type==="wasm"&&this.checkDowngradeByTimestampDiff(d.timestamp)),e.next(d)}),r.on("error",d=>{t.log.error(d),e.error(n==="webCodecs"?4:8)}),yield r.initialize(this.videoElement),!this._decodeSink)return;if(r.configure(this.config),n==="wasm"&&s==="webgl"){this.videoContext=new Nt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create(),this.videoContext.on(Nt.UNAVAILABLE,l=>{t.log.error(l),e.error(7)});let d=new Ll(this.videoContext);r.on("videoCodecInfo",l=>d.resize(l.width,l.height)),r.on("videoFrame",l=>{({y:d.Y,u:d.U,v:d.V}=l),this.downgradeLevel===1?this.decodedFrameCount%2===0&&d.render(this.decodedFrameCount):d.render(this.decodedFrameCount)}),t.source=d,t.player.setCanvas(this.videoContext._canvas,2)}else if(s==="videoFrame"){t.player.setCanvas();let d=new MediaStreamTrackGenerator({kind:"video"}),l=d.writable.getWriter();t.setInputMediaStreamTrack(d),r.on("videoFrame",p=>l.write(p))}else{this.videoContext=new Pt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create({alpha:!1});let d=this.videoContext.createVideoImageSource();r.on("videoFrame",p=>{try{d.image=p,d.update()}catch(f){delete this.goodType,t.log.error(f),e.error(11)}});let l=new ws(this.videoContext,{name:"remotePlayer",logger:t.log});d.connect(l),t.source=d,t.player.setCanvas(this.videoContext._canvas,2)}this.decoder=r}catch(a){t.log.error(a),e.error(n==="webCodecs"?2:6)}})}};var kT=Promise.resolve(),Bc=class extends UT.EventEmitter{constructor(e){super();this.room=e;m(this,"videoContext");m(this,"_glVideoContext");m(this,"_2dVideoContext");m(this,"destination");m(this,"smallVideoContext");m(this,"smallDestination");m(this,"smallTrackSource");m(this,"smallImageSource");m(this,"_isMirror",!1);m(this,"_rotation",0);m(this,"cameraTrack");m(this,"cameraNode");m(this,"transformNode");m(this,"mixNode");m(this,"screenTrack");m(this,"screenNode");m(this,"selfModel",!1);m(this,"blurRadius",3);m(this,"arTrack");m(this,"_enableFaceCentering",!1);m(this,"_enableEffectOptimization",!1);m(this,"onAbort");m(this,"_color");m(this,"Wasm");m(this,"waterMarkNode");m(this,"_waterMarkOption");m(this,"watermarkImageList",[]);m(this,"_beautyParams");m(this,"isUsingArTrack",!1);m(this,"mixTrack");m(this,"_isMixScreen",!1);m(this,"_virtualBackground");m(this,"_virtualBackgroundAbortCallback");m(this,"virtualBackgroundInstance");m(this,"_bgAssetPath");m(this,"log");m(this,"_mat4");m(this,"_postProcessing");m(this,"_checkId",0);m(this,"_use2d",!1);m(this,"_autoSwitchRenderMode",!0);m(this,"encodePipeline",[]);m(this,"decodePipeline",[]);m(this,"updated",kT);m(this,"_updateFlag",!1);this.log=F.createLogger({parent:e==null?void 0:e.getLogger(),id:"vm",userId:e==null?void 0:e.userId,sdkAppId:e==null?void 0:e.sdkAppId}),this.smallVideoContext=new Pt({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get smallMode(){var e;return((e=this.room)==null?void 0:e.smallMode)||"canvas"}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get _isRotate(){return this._rotation!==0}get _isTransform(){return this._isMirror||this._isRotate}get renderMode(){return this._autoSwitchRenderMode?"auto":this._use2d?"2d":"webgl"}set renderMode(e){if(this._autoSwitchRenderMode=e==="auto",this._autoSwitchRenderMode)return;let r=e==="2d";this._use2d!==r&&(this._use2d=r,this.clear(),this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.update())}get cameraResolution(){var o;let{width:e,height:r}=((o=this.cameraTrack)==null?void 0:o.settings)||{};return pr(this._rotation)?{width:r,height:e}:{width:e,height:r}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Pt({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(!this._glVideoContext)this._glVideoContext=new Nt({frameRate:15,logger:this.log,name:"m"});else if(this._glVideoContext.available)return this._glVideoContext;return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(km<=22),this._glVideoContext.on(Nt.UNAVAILABLE,e=>{var r;this.emit("error",e),this.log.warn("video context unavailable",e),(r=this._virtualBackgroundAbortCallback)==null||r.call(this,e),this.update().catch(o=>{this.log.error(o)})})}catch(e){this.emit("error",e)}}initVirtualBackground(e,r,o){this.onAbort=e,this._mat4=r,this._postProcessing=o}enablePrintDetail(e=2e3){this._checkId=ft.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}destroy(){var e,r;(e=this._2dVideoContext)==null||e.destroy(),(r=this._glVideoContext)==null||r.destroy(),this.smallVideoContext.destroy(),ft.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(vr||this._isMixScreen||this._isTransform||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(e="videoCtxGl",r){let o=e==="videoCtxGl"?512700:512701;r?J.addFailedEvent({key:o,error:r}):J.addSuccessEvent({key:o})}checkOrCreateVideoContext(){let e=this._use2d;if(this._autoSwitchRenderMode&&(this._use2d=!this._hasVirtualBg),this.videoContext)if(this.videoContext.available){let r=!this.videoContext.hasAlpha&&this.needAlpha;if(this._autoSwitchRenderMode&&e===this._hasVirtualBg)this.clear();else if(r)if(this._use2d)this.clear();else return!0;else return!0}else{if(this._glVideoContext=new Nt({frameRate:15,logger:this.log,name:"m"}),this.initializeGlVideoContext(),this._glVideoContext.available)return this.videoContext=this._glVideoContext,this.videoContext.available;this.log.warn("webgl is still not available"),this.clear(),this._use2d=!0}return this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.videoContext.available}get smallTrack(){var e;return(e=this.smallDestination)==null?void 0:e.videoTrack}get hasSmall(){return!!this.smallTrack}get initialTrack(){var e;return(e=this.cameraTrack)==null?void 0:e.mediaTrack}setSmallVideo(e,r){if(this.smallMode!=="api")if(e){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new Yu(this.smallVideoContext,e,this.log),this.smallVideoContext.on(Nt.UNAVAILABLE,o=>{this.log.warn("small video context lost",o)})}if(this.smallVideoContext.frameRate=e.frameRate,this.smallDestination.resolution=e,r)this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=r:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(r),this.smallImageSource.resize(r.width,r.height),this.smallImageSource.connect(this.smallDestination));else if(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource)this.smallTrackSource.replaceTrack(this.initialTrack);else{this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource");let{width:o,height:s}=this.cameraTrack.settings;this.smallTrackSource.resize(o,s),this.smallTrackSource.connect(this.smallDestination)}}else this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource)}_setMainOutput(e){var r;try{let o=this.cameraTrack,{small:s,player:n}=o;vr&&n.setCanvas(e);let a=e&&((r=this.destination)==null?void 0:r.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),a=this.arTrack),this.log.info(`set main output ${a?a.label:"no output track"}`),this.setSmallVideo(s,e),o.setOutputMediaStreamTrack(a)}catch(o){this.log.error("set main output failed",o)}}update(e=!1){return A(this,null,function*(){var s;if(!this.cameraTrack||!this.initialTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:r,profile:o}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams)this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(bt.RENDER,n=>{var a;(a=this.cameraTrack)==null||a.emit("render",n)})),Vt===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof Dr?(this.cameraNode.close(),delete this.cameraNode):this.cameraNode.image=this.initialTrack.canvas),this.cameraNode||(this.cameraNode=this.videoContext.createVideoImageSource(this.initialTrack.canvas,{name:"cameraCanvasSource",logger:this.log}))):(this.cameraNode&&(this.cameraNode instanceof Dr?this.cameraNode.replaceTrack(this.initialTrack):(this.cameraNode.close(),delete this.cameraNode)),this.cameraNode||(this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraTrackSource"))):this.cameraNode?this.cameraNode.replaceTrack(this.initialTrack):this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraNodeSource"),this.cameraNode.resize(r.width,r.height);else if(e&&this.cameraNode&&this.destination)this.cameraNode.replaceTrack(this.initialTrack);else{this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():(this.destination=new Qu(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on(bt.RENDER,l=>{var p;(p=this.cameraTrack)==null||p.emit("render",l)}));let{width:n,height:a}=this.cameraResolution,d=yield this.getWatermarkImage(n,a);this._waterMarkOption={x:0,y:0,width:d.width,height:d.height,image:d},this.cameraNode=new Pl(this.videoContext,{input:this.initialTrack,width:n,height:a,mirror:this._isMirror,rotation:this._rotation,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,Wasm:this.Wasm,enableFaceCentering:this._enableFaceCentering,enableEffectOptimization:this._enableEffectOptimization,onAbort:this.onAbort,mat4:this._mat4,postProcessing:this._postProcessing,color:this._color}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute(),yield this.cameraNode.predictReady}if(this.videoContext.frameRate=o.frameRate,this._use2d){let n=this.cameraNode;if(n.disconnect(),this._isTransform&&(this.transformNode?(this.transformNode.mirror=this._isMirror,this.transformNode.rotation=this._rotation):this.transformNode=new wr(this.videoContext,this.log,this._isMirror,this._rotation),n=n.connect(this.transformNode),n.disconnect(),this.log.info(`start mirror ${this._isMirror} rotate ${this.rotation}`)),this.mixNode&&this.mixNode.close(),delete this.mixNode,this._isMixScreen||this._hasWaterMark){if(this.mixNode=new Fn(this.videoContext,this.log),n.connect(this.mixNode,{zIndex:1}),this._hasWaterMark&&!this.waterMarkNode&&this._waterMarkOption)this.waterMarkNode=this.videoContext.createVideoImageSource(this._waterMarkOption.image,{autoResize:!1,logger:this.log}),this.waterMarkNode.resize(this._waterMarkOption.width,this._waterMarkOption.height),this.waterMarkNode.x=this._waterMarkOption.x,this.waterMarkNode.y=this._waterMarkOption.y;else if(this.waterMarkNode){let{width:d,height:l}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(d,l),d&&l&&this.waterMarkNode.resize(d,l)}(s=this.waterMarkNode)==null||s.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&(this.screenNode||(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource"),this.screenNode.resize(this.screenTrack.settings.width,this.screenTrack.settings.height)),this.screenNode.shouldUpdate=!1,this.screenNode.connect(this.mixNode,{zIndex:0})),n=this.mixNode,this.log.info("start mix",`${this.mixNode.width}x${this.mixNode.height}`)}n.connect(this.destination)}return this.log.info(`update ${this._use2d?"2d":"webgl"}`),this._setMainOutput(this.videoContext.canvas)})}clearLastFrame(){var e;this.destination&&((e=this.destination.ctx2d)==null||e.clearRect(0,0,this.destination.width,this.destination.height))}changeInput(e){var r,o,s,n,a;if(e instanceof li)return this.log.info("change screen input",(r=e.mediaTrack)==null?void 0:r.label),this.setScreenTrack(e);if(e instanceof _r)return this.log.info("change video input",(o=e.mediaTrack)==null?void 0:o.label),this.setCameraTrack(e);if(e instanceof Mo){this.log.info("change remote input",(s=e.mediaTrack)==null?void 0:s.label);let d=e.mediaTrack;return e.setOutputMediaStreamTrack(d)}if(e instanceof Ms)return this.log.info("change mix input",(n=e.outMediaTrack)==null?void 0:n.label),this.setMixTrack(e);this.log.warn("change unknown input",(a=e.mediaTrack)==null?void 0:a.label)}removeInput(e){var r;e instanceof li?((r=this.screenNode)==null||r.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof _r?this._isMixScreen?(delete this.cameraNode,this.cameraTrack._inputTrack=null,this.update()):(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof Mo?e.source&&e.source.context.destroy():e instanceof Ms&&(delete this.mixTrack,this.update())}setMixTrack(e){this.mixTrack=e}setCameraTrack(e){return this.cameraTrack=e,this.update(!0)}setScreenTrack(e){return A(this,null,function*(){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):yield this.update()),e.setOutputMediaStreamTrack(e.mediaTrack)})}getWatermarkImage(e,r){return A(this,null,function*(){let o=document.createElement("canvas");r&&e&&(o.height=r,o.width=e);let s=o.getContext("2d");if(!s)throw new ae({code:q.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort((n,a)=>n.zIndex-a.zIndex),this.watermarkImageList.forEach(({image:n,x:a,y:d,width:l,height:p,fillVideo:f})=>{let g=f&&e||l,y=f&&r||p,R=f?0:a,C=f?0:d;s.drawImage(n,R,C,g,y)}),mn(o.toDataURL())})}pushWaterMarkImageList(e){let{type:r}=e;this.watermarkImageList.some(s=>s.imageUrl===e.imageUrl&&s.height===e.height&&s.width===e.width&&s.x===e.x&&s.y===e.y&&s.type===e.type&&s.zIndex===e.zIndex&&s.fillVideo===e.fillVideo)||((r==="mute"||r==="watermark")&&(this.watermarkImageList=this.watermarkImageList.filter(s=>s.type!==r)),this.watermarkImageList.push(e))}setBeautyParams(e){return A(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return A(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(e){return A(this,null,function*(){let r;try{r=yield mn((e==null?void 0:e.imageElement)||e.imageUrl)}catch(g){throw new ae({code:q.INVALID_PARAMETER,message:`load image failed, url: ${e.imageUrl}`})}let{x:o=0,y:s=0,width:n=r.width,height:a=r.height,type:d="watermark",zIndex:l=2,fillVideo:p=!1}=e;this.watermarkImageList.some(g=>g.type===d)?(this.watermarkImageList=this.watermarkImageList.filter(g=>g.type!==d),this.pushWaterMarkImageList({x:o,y:s,width:n,height:a,image:r,zIndex:l,type:d,imageUrl:e.imageUrl,fillVideo:p}),r=yield this.getWatermarkImage(this.cameraResolution.width,this.cameraResolution.height),this._waterMarkOption={x:0,y:0,width:r.width,height:r.height,image:r},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(r.width,r.height),this.waterMarkNode.image=r):this.update()):(this.pushWaterMarkImageList({x:o,y:s,width:n,height:a,image:r,zIndex:l,type:d,imageUrl:e.imageUrl,fillVideo:p}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(g,y)=>g==="imageUrl"?void 0:y))})}deleteWatermark(e="watermark"){return A(this,null,function*(){this.watermarkImageList=this.watermarkImageList.filter(r=>r.type!==e),this.log.info("delete watermark",e,JSON.stringify(this.watermarkImageList,(r,o)=>r==="imageUrl"?void 0:o)),yield this.freshWatermark()})}freshWatermark(){return A(this,null,function*(){var s;(s=this.waterMarkNode)==null||s.close(),delete this.waterMarkNode,delete this._waterMarkOption;let{width:e,height:r}=this.cameraResolution,o=yield this.getWatermarkImage(e,r);this._waterMarkOption={x:0,y:0,width:o.width,height:o.height,image:o},this.update()})}setVirtualBackground(e){return A(this,null,function*(){var r,o,s;if(!e)delete this._virtualBackground,delete this._virtualBackgroundAbortCallback;else{if(e.onAbort&&(this._virtualBackgroundAbortCallback=e.onAbort),this._use2d&&!this._autoSwitchRenderMode)return Promise.reject(new Error("not support virtual background in 2d mode"));this._bgAssetPath=e.assetPath,e.type==="image"?this._virtualBackground=yield mn(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type),this._enableFaceCentering=(r=e.enableFaceCentering)!=null?r:this._enableFaceCentering,this._enableEffectOptimization=(o=e.enableEffectOptimization)!=null?o:this._enableEffectOptimization,this._color=(s=e.color)!=null?s:[0,1,0]}if(this.log.info(`${this._virtualBackground?"start":"stop"} virtual background, ${(e==null?void 0:e.type)||""}, ${this.blurRadius||""}`),yield this.update(),this._virtualBackground&&!this._glVideoContext.available)throw new ae({code:q.INVALID_OPERATION,message:`webgl context create failed, ${this._glVideoContext.error}`})})}get mixScreen(){return this._isMixScreen}set mixScreen(e){var r;this._isMixScreen=e,this._isMixScreen||((r=this.screenNode)==null||r.close(),delete this.screenNode),this.update()}set mirror(e){var r;this._isMirror!==e&&(this._isMirror=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get mirror(){return this._isMirror}set rotation(e){var r;this._rotation!==e&&(this._rotation=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get rotation(){return this._rotation}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return A(this,null,function*(){var e;(e=this.cameraTrack)!=null&&e.mediaTrack&&(yield this.virtualBackgroundInstance.ar.updateInputTrack(this.cameraTrack.mediaTrack.clone()))})}disableAr(){var e;this.isUsingArTrack=!1,(e=this.arTrack)==null||e.stop(),this.arTrack=void 0,this.update()}createDecodeContext(e){return new kl(e)}clear(){var e,r;(e=this.videoContext)==null||e.disconnect(),(r=this.destination)==null||r.removeAllListeners(),delete this.destination,delete this.cameraNode,delete this.transformNode,delete this.screenNode,delete this.waterMarkNode}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}};Z([$E(function(e){this.log.error("update failed",e)}),xe(e=>function(...r){return A(this,null,function*(){this._updateFlag||(this._updateFlag=!0,yield kT,this.updated=new Promise((o,s)=>{e.apply(this,r).then(o,s),setTimeout(s,5e3,new ae({code:q.API_CALL_TIMEOUT,message:"update timeout"}))}),this._updateFlag=!1,yield this.updated)})})],Bc.prototype,"update",1);var ov=0;var Ul=class extends ue{constructor(e){super("room");m(this,"seq",++ov);m(this,"sdkAppId");m(this,"userId");m(this,"userSig");m(this,"privateMapKey");m(this,"latencyLevel");m(this,"tinyId");m(this,"scene");m(this,"roomId");m(this,"useStringRoomId");m(this,"role","anchor");m(this,"joinParams",null);m(this,"localPublishFlag",0);m(this,"localTracks",new Set);m(this,"enableAutoPlayDialog",!0);m(this,"autoReceiveAudio",!0);m(this,"autoReceiveVideo",!0);m(this,"proxy_ws");m(this,"proxy_wt");m(this,"proxy_unified");m(this,"checkSystemResult",{result:!0,detail:{isBrowserSupported:!0,isWebRTCSupported:!0,isWebCodecsSupported:!0,isMediaDevicesSupported:!0,isScreenShareSupported:!0,isSmallStreamSupported:!0,isH264EncodeSupported:!0,isVp8EncodeSupported:!0,isH264DecodeSupported:!0,isVp8DecodeSupported:!0,isH265EncodeSupported:!0,isH265DecodeSupported:!0}});m(this,"keyPointManager");m(this,"audioManager");m(this,"videoManager");m(this,"callDurationCalculator");m(this,"badCaseDetector");m(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null});m(this,"videoDecodeFallbackType");m(this,"smallMode","canvas");m(this,"enableChorus",!1);m(this,"_isUsingCachedSchedule",!1);m(this,"_log");m(this,"_joinedTimestamp",0);m(this,"_sdkType");m(this,"heartbeatReport");m(this,"quality");m(this,"enableSEI");m(this,"isDestroyed",!1);this._log=F.createLogger({parent:e.logger,id:`r${this.seq}`}),this.useStringRoomId=!!e.useStringRoomId,Ke(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),Ke(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),Ke(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new MT({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new xT({room:this}),this.badCaseDetector=new PT({room:this}),this.audioManager=new el(this),this.videoManager=new Bc(this)}get videoCodec(){return"h264"}get scriptTransformWorker(){}get isMainStreamPublished(){for(let e of this.localTracks)if(e.mediaType&4)return!0;return!1}get isAuxStreamPublished(){for(let e of this.localTracks)if(e.mediaType&2)return!0;return!1}get hasAuxStream(){for(let e of this.remotePublishedUserMap.values())if(e.muteState.hasAuxiliary)return!0;return this.isAuxStreamPublished}get localMainAudioTrack(){for(let e of this.localTracks)if(e.mediaType&1)return e;return null}get localMainVideoTrack(){for(let e of this.localTracks)if(e.mediaType&4)return e;return null}get localAuxVideoTrack(){for(let e of this.localTracks)if(e.mediaType&2)return e;return null}get publishState(){let e={audio:!1,bigVideo:!1,smallVideo:!1,auxVideo:!1};return this.localTracks.forEach(r=>{if(r.isPublished||r.isPublishing)switch(r.mediaType){case 1:e.audio=!0;break;case 4:e.bigVideo=!0,e.smallVideo=r.hasSmall;break;case 2:e.auxVideo=!0;default:break}}),e}get muteState(){var e,r,o;return{audio:!!((e=this.localMainAudioTrack)!=null&&e.muted),bigVideo:!!((r=this.localMainVideoTrack)!=null&&r.muted),auxVideo:!!((o=this.localAuxVideoTrack)!=null&&o.muted)}}getLogger(){return this._log}get isJoining(){return this.state.toString()==="joining"}get isJoined(){return this.state==="joined"}get isLeft(){return this.state==="left"}addTrack(e){return A(this,null,function*(){return this.publish(e)})}removeTrack(e){return A(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return A(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(we(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Xt(e)){let{websocketProxy:r,webtransportProxy:o,loggerProxy:s,scheduleProxy:n,unifiedProxy:a}=e;this.proxy_ws=r,this.proxy_wt=o,this.proxy_unified=a,a?(pl([a,a]),Ko(`https://${a}`)):(s&&Ko(s),n&&pl(n))}U.once(B.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:fi.main,sched_back_domain:fi.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return A(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(r=>{e[r.userId]=r.remoteAudioTrack.stat}),e})}getTransportStats(){return A(this,null,function*(){var r;let e={rtt:((r=this.quality)==null?void 0:r.uplinkRTT)||0,downlinksRTT:{}};if(this.quality)for(let o of this.quality.downlinkInfo)e.downlinksRTT[o.userId]=o.rtt;return e})}getRemoteVideoStats(){return A(this,arguments,function*(e="main"){let r={};return this.remotePublishedUserMap.forEach(o=>{let s=e==="auxiliary"?o.remoteAuxiliaryTrack:o.remoteVideoTrack;r[o.userId]=s.stat}),r})}checkDestroy(){if(this.isDestroyed)throw new ae({code:q.INVALID_OPERATION,message:He({key:$e.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(nr.INVALID_DESTROY),new ae({code:q.INVALID_OPERATION,message:He({key:$e.INVALID_DESTROY})});this._log.info("destroy room"),this.audioManager.destroy(),this.videoManager.destroy(),this.keyPointManager.destroy(),this.callDurationCalculator.destroy(),this.badCaseDetector.destroy(),this.isDestroyed=!0,U.emit(B.ROOM_DESTROY,{room:this})}schedule(e,r){return A(this,null,function*(){var s,n,a,d;let o=_e();try{let{isCached:l,result:p,detailCost:f}=yield of({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:ht,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:r,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=l,this._log.info(`schedule cache:${+l} ${br(p,{keysToExclude:["username","credential"]})}`),l&&U.once(B.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=Y(Y({},this.scheduleResult),p),Ve((s=p.config)==null?void 0:s.retryCount)&&lm(p.config.retryCount),we((n=p.config)==null?void 0:n.loggerDomain)&&Ko(p.config.loggerDomain),this.videoDecodeFallbackType=((a=p.config)==null?void 0:a.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((d=p.config)==null?void 0:d.smallMode)||this.smallMode,U.emit(B.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:f}),J.addSuccessEvent({key:521700,cost:_e()-o})}catch(l){throw J.addFailedEvent({key:521700,error:l}),l}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}switchRoom(e){return Promise.reject()}isSwitchRoomSupported(){return!1}};function VT(i,t=!1){let e=Object.defineProperties(At(),{postMessage:{value:i.postMessage.bind(i)},port:{get(){return i},set(o){i.onmessage=We,i.onmessageerror=We,i=o,r()}}});function r(){i.onmessage=o=>{o.data?o.ports.length||t?e.next(o):e.next(o.data):(e.complete(),i.close())},i.onmessageerror=o=>{e.error(o),i.close()}}return r(),e}var Rf=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=We,e(r)}},jG=Te(Rf,"takeUntilComplete");var Wt={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},FT="__INLINE__WORKER__",BT="__INLINE__WASM__",{debug:$T}=console;Wt.debug||(console.debug=()=>{});var sv=!FT.startsWith("__"),nv=!BT.startsWith("__");function Vl(){let i=as(`${Wt.assetsPath?`${Wt.assetsPath}/`:""}worker.js`);return sv?URL.createObjectURL(new Blob([atob(FT)],{type:"application/javascript"})):i.startsWith("http")?fetch(i).then(t=>t.blob().then(e=>URL.createObjectURL(e))):i}var $c;function Fl(){return A(this,null,function*(){let i=Wt.assetsPath?`${Wt.assetsPath}/`:"";return $c||(nv?$c=new TextEncoder().encode(atob(BT)).buffer:$c=yield fetch(as(`${i}av_processing.wasm`)).then(t=>t.arrayBuffer()),$c)})}var vf=class{constructor(){m(this,"playPort");m(this,"playPortSent",!1);m(this,"worklet");m(this,"workletPromise")}init(){return this.workletPromise||(this.workletPromise=this._init()),this.workletPromise}_init(){return A(this,null,function*(){let t=qe("player"),e=Vl();try{yield t.audioWorklet.addModule(typeof e=="string"?e:yield e),F.info("global audio player worklet addModule success",e)}catch(r){throw F.error("global audio player worklet addModule failed:",r),r}return this.worklet=new AudioWorkletNode(t,"global-audio-player",{processorOptions:{wasm:yield Fl(),flag:Wt},numberOfInputs:2}),F.info("global audio player worklet created",t.state),this.worklet.connect(t.destination),this.playPort=this.worklet.port,this.playPort})}playAudio(t){return A(this,null,function*(){var r;yield this.init();let e=new MessageChannel;(r=this.playPort)==null||r.postMessage(null,[e.port1]),t(e.port2)})}},Bl=new vf;var Cf=(()=>{if(typeof self=="undefined")return!1;if(!("top"in self&&self!==top)){if("showOpenFilePicker"in self)return"showOpenFilePicker"}return!1})(),KG=Cf?Promise.resolve().then(function(){return uv}):Promise.resolve().then(function(){return gv});var e5=Cf?Promise.resolve().then(function(){return mv}):Promise.resolve().then(function(){return _v});var av=Cf?Promise.resolve().then(function(){return pv}):Promise.resolve().then(function(){return Iv});function Nf(...i){return A(this,null,function*(){return(yield av).default(...i)})}var cv=i=>A(void 0,null,function*(){let t=yield i.getFile();return t.handle=i,t}),dv=(...t)=>A(void 0,[...t],function*(i=[{}]){Array.isArray(i)||(i=[i]);let e=[];i.forEach((s,n)=>{e[n]={description:s.description||"Files",accept:{}},s.mimeTypes?s.mimeTypes.map(a=>{e[n].accept[a]=s.extensions||[]}):e[n].accept["*/*"]=s.extensions||[]});let r=yield window.showOpenFilePicker({id:i[0].id,startIn:i[0].startIn,types:e,multiple:i[0].multiple||!1,excludeAcceptAllOption:i[0].excludeAcceptAllOption||!1}),o=yield Promise.all(r.map(cv));return i[0].multiple?o:o[0]}),uv={__proto__:null,default:dv};function $l(i){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var r=e.done;return Promise.resolve(e.value).then(function(o){return{value:o,done:r}})}return $l=function(e){this.s=e,this.n=e.next},$l.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return r===void 0?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return r===void 0?Promise.reject(e):t(r.apply(this.s,arguments))}},new $l(i)}var HT=(o,s,...n)=>A(void 0,[o,s,...n],function*(i,t,e=i.name,r){let a=[],d=[];var l,p=!1,f=!1;try{for(var g,y=function(R){var C,N,k,Q=2;for(typeof Symbol!="undefined"&&(N=Symbol.asyncIterator,k=Symbol.iterator);Q--;){if(N&&(C=R[N])!=null)return C.call(R);if(k&&(C=R[k])!=null)return new $l(C.call(R));N="@@asyncIterator",k="@@iterator"}throw new TypeError("Object is not async iterable")}(i.values());p=!(g=yield y.next()).done;p=!1){let R=g.value,C=`${e}/${R.name}`;R.kind==="file"?d.push(R.getFile().then(N=>(N.directoryHandle=i,N.handle=R,Object.defineProperty(N,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>C})))):R.kind!=="directory"||!t||r&&r(R)||a.push(HT(R,t,C,r))}}catch(R){f=!0,l=R}finally{try{p&&y.return!=null&&(yield y.return())}finally{if(f)throw l}}return[...(yield Promise.all(a)).flat(),...yield Promise.all(d)]}),lv=(...t)=>A(void 0,[...t],function*(i={}){i.recursive=i.recursive||!1,i.mode=i.mode||"read";let e=yield window.showDirectoryPicker({id:i.id,startIn:i.startIn,mode:i.mode});return HT(e,i.recursive,void 0,i.skipDirectory)}),mv={__proto__:null,default:lv},hv=(s,...n)=>A(void 0,[s,...n],function*(i,t=[{}],e=null,r=!1,o=null){Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";let a=[],d=null;if(i instanceof Blob&&i.type?d=i.type:i.headers&&i.headers.get("content-type")&&(d=i.headers.get("content-type")),t.forEach((f,g)=>{a[g]={description:f.description||"Files",accept:{}},f.mimeTypes?(g===0&&d&&f.mimeTypes.push(d),f.mimeTypes.map(y=>{a[g].accept[y]=f.extensions||[]})):d?a[g].accept[d]=f.extensions||[]:a[g].accept["*/*"]=f.extensions||[]}),e)try{yield e.getFile()}catch(f){if(e=null,r)throw f}let l=e||(yield window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:a,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}));!e&&o&&o(l);let p=yield l.createWritable();return"stream"in i?(yield i.stream().pipeTo(p),l):"body"in i?(yield i.body.pipeTo(p),l):(yield p.write(yield i),yield p.close(),l)}),pv={__proto__:null,default:hv},fv=(...t)=>A(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),new Promise((e,r)=>{let o=document.createElement("input");o.type="file";let s=[...i.map(l=>l.mimeTypes||[]),...i.map(l=>l.extensions||[])].join();o.multiple=i[0].multiple||!1,o.accept=s||"",o.style.display="none",document.body.append(o);let n=l=>{typeof a=="function"&&a(),e(l)},a=i[0].legacySetup&&i[0].legacySetup(n,()=>a(r),o),d=()=>{window.removeEventListener("focus",d),o.remove()};o.addEventListener("click",()=>{window.addEventListener("focus",d)}),o.addEventListener("change",()=>{window.removeEventListener("focus",d),o.remove(),n(o.multiple?Array.from(o.files):o.files[0])}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),gv={__proto__:null,default:fv},Ev=(...t)=>A(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),i[0].recursive=i[0].recursive||!1,new Promise((e,r)=>{let o=document.createElement("input");o.type="file",o.webkitdirectory=!0;let s=a=>{typeof n=="function"&&n(),e(a)},n=i[0].legacySetup&&i[0].legacySetup(s,()=>n(r),o);o.addEventListener("change",()=>{let a=Array.from(o.files);i[0].recursive?i[0].recursive&&i[0].skipDirectory&&(a=a.filter(d=>d.webkitRelativePath.split("/").every(l=>!i[0].skipDirectory({name:l,kind:"directory"})))):a=a.filter(d=>d.webkitRelativePath.split("/").length===2),s(a)}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),_v={__proto__:null,default:Ev},Tv=(e,...r)=>A(void 0,[e,...r],function*(i,t={}){Array.isArray(t)&&(t=t[0]);let o=document.createElement("a"),s=i;"body"in i&&(s=yield function(d,l){return A(this,null,function*(){let p=d.getReader(),f=new ReadableStream({start:R=>function C(){return A(this,null,function*(){return p.read().then(({done:N,value:k})=>{if(!N)return R.enqueue(k),C();R.close()})})}()}),g=new Response(f),y=yield g.blob();return p.releaseLock(),new Blob([y],{type:l})})}(i.body,i.headers.get("content-type"))),o.download=t.fileName||"Untitled",o.href=URL.createObjectURL(yield s);let n=()=>{typeof a=="function"&&a()},a=t.legacySetup&&t.legacySetup(n,()=>a(),o);return o.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(o.href),3e4),n()}),o.click(),null}),Iv={__proto__:null,default:Tv};var Df=class{constructor(t){this.name=t;m(this,"ready");m(this,"worker");m(this,"ports");m(this,"ids",1);m(this,"transactions",new Map);m(this,"log");m(this,"addTransaction",t=>(this.transactions.set(++this.ids,t),this.ids))}postMessage(t,e){var r;(r=this.worker)==null||r.postMessage(t,e)}create(t){return A(this,null,function*(){if(this.ready)return this.ready;t||(t=this.name),console.time(`createWorker_${t}`);let e=Vl(),r=new Worker(typeof e=="string"?e:yield e,{name:t});return this.worker=r,this.ready=new Promise((o,s)=>A(this,null,function*(){r.onmessage=({data:{id:n,type:a,payload:d}})=>{var l;if(n)(l=this.transactions.get(n))==null||l(d),this.transactions.delete(n);else switch(a){case"error":console.timeEnd(`createWorker_${t}`),console.warn("worker error:",d),s(d);break;case"ready":console.timeEnd(`createWorker_${t}`),o(this);break;case"updateAFSM":if(d.value){let p=typeof d.old=="string"?d.old:`${d.old.action}ing`,f=typeof d.value=="string"?d.value:`${d.value.action}ing`;console.log(Cd(),d.group,d.name,p,"\u{1F449}",f)}break;case"log":console.log(d);break;case"glog":window.dispatchEvent(new CustomEvent(a,{detail:d}));break}},r.postMessage({wasm:yield Fl(),flag:Wt},this.ports)}))})}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},wf=class{constructor(t,e,r){this.worker=t;m(this,"channel",new MessageChannel);m(this,"ready");this.ready=new Promise((o,s)=>{this.worker.postMessage({id:this.worker.addTransaction(o),payload:e},[this.channel.port2])}).then(o=>(o.err===0&&(this.worker.sessionCount++,this.channel.port1.onmessage=r),o))}postMessage(...t){this.channel.port1.postMessage(...t)}destroy(){--this.worker.sessionCount===0&&this.worker.destroy()}},Of=class i extends Df{constructor(){super("main");m(this,"switchValue",new Map);m(this,"extendChannel");m(this,"sessionCount",0)}setSwitchValue(e,r){var o;this.switchValue.set(e,r),(o=this.extendChannel)==null||o.port1.postMessage([e,r])}create(){return A(this,null,function*(){return this.ready?this.ready:(this.extendChannel=new MessageChannel,this.ports=[this.extendChannel.port2],yield Ut(i.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},Fo=new Of,$s,Sv=-1;function WT(i){return console.log(i),$s.push(i.slice()),$s.length>1e3&&$s.shift(),i}function GT(i){return A(this,null,function*(){switch(Sv){case 0:this.edpl.willDecodeAudio=WT;break;case 2:this.edpl.didEncodeAudio=WT;break}yield Fo.create(),U.emit(B.JOIN_SEND_CMD,{room:this});let t=new wf(Fo,i,o=>{let s=o.data;if(typeof s=="string")this.onWorkerEvent(s);else if(s==null)this.onWorkerEvent("client-banned",0),t.destroy();else{let{cmd:n,payload:a}=s;this.onWorkerEvent(n,a)}}),{err:e,data:r}=yield t.ready;if(typeof e=="number"){if(U.emit(B.JOIN_RECEIVED_CMD_RES,{room:this,code:e}),e===0)return Object.assign(this,r,{session:t});throw new ae({code:q.JOIN_ROOM_FAILED,extraCode:Number(e),message:He({key:$e.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:e,errorMsg:""}})})}else throw e})}Object.defineProperties(window,{useAINS:{set:Mf},useWt:{set:yv},enableDebug:{set(i){console.debug=i?$T:()=>{},Fo.setSwitchValue("enableDebug",i)}},useV2:{set:xf},dump:{value(){if($s||(console.warn("dump audio will be activated at next time join room"),$s=[]),!$s.length){console.warn("no audio data to dump,try it later");return}let i=[];return $s.forEach(t=>{i.push(new Uint16Array([t.length])),i.push(t)}),Nf(new Blob(i),{fileName:"audio dump hex",extensions:[".hex"]})}},dumpAudio:{value(i="audio",t=2e3){let e=[],r=new Promise(o=>{let s=new MessageChannel;Fo.extendChannel.port1.postMessage(["dump",i],[s.port1]),s.port2.onmessage=({data:n})=>{console.log(n),e.push(n),e.length>t&&(s.port2.onmessage=null,Fo.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return Nf(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:Wt.useHardDecoder="prefer-hardware";break;case!1:Wt.useHardDecoder="prefer-software";break;default:Wt.useHardDecoder="no-preference"}}}});function Mf(i){return A(this,null,function*(){Fo.setSwitchValue("useAINS",i)})}function xf(i){return A(this,null,function*(){Fo.setSwitchValue("useV2",i)})}function yv(i){return A(this,null,function*(){Fo.setSwitchValue("useWt",i)})}function jT(i){let t=new MediaStreamTrackGenerator({kind:"audio"});i.setInputMediaStreamTrack(t),i.player.setVolume(0),this.postMessage({cmd:"pullAudio",payload:{tinyId:i.tinyId,writable:t.writable}},[t.writable])}function qT(i){return A(this,null,function*(){var o;this._log.info("pull video",i);let t=Date.now(),e=0,r=new MessageChannel;this.postMessage({cmd:"pullVideo",payload:{mediaType:i.mediaType,tinyId:i.tinyId}},[r.port1]),(o=i.stat).framesReceived||(o.framesReceived=0),Ae(VT(r.port2),ze(ye(i,ue.INIT)),Pe(s=>{let{data:n,packetsReceived:a}=s;i.stat.packetsReceived=a,i.stat.framesReceived++,e++;let d=n[4]&31;if(e<=10){let p=Array.from(n.slice(0,10)).map(f=>f.toString(16).padStart(2,"0")).join(" ");this._log.info(`Frame ${e} - Size: ${n.length} bytes, Type: ${d}, Timestamp: ${Date.now()-t}ms First 10 bytes: ${p}`)}let l;switch(d){case 5:case 7:l="key";break;default:l="delta";break}i.isAvailable?i.decodeFrame({data:n.buffer,type:l,timestamp:(Date.now()-t)*1e3}):console.warn("track is not available")},()=>{},()=>{r.port2.postMessage(null),r.port2.close()}))})}var Hl=[];function JT(i){var d;let t=At();if(this.state!=="joined")throw new Error("Room is not joined");if(i.state==="publish")return;for(let l=0;l<=Hl.length;l++)if(!Hl[l]){Hl[l]=this,this.index=l;break}let e=i.profile;this._log.info("start push audio",this.index,e);let r=new MessageChannel,o=i.enableEncryptFrame?new MessageChannel:null;(d=this.session)==null||d.postMessage({cmd:"pushAudio",payload:Y({index:this.index},e)},o?[r.port2,o.port2]:[r.port2]),r.port1.onmessage=l=>{l.data==null||(typeof l.data=="number"?t.next(l.data):o&&o.port1.postMessage(Ee(Y({},l.data),{data:new Uint8Array(i.encodeFrame({data:l.data.data.buffer,timestamp:l.data.timestamp}).data)})))};let s=new MediaStream,n,a=l=>{let p=s.getAudioTracks()[0];p&&(n.disconnect(),s.removeTrack(p)),s.addTrack(l),this._log.info("push audio track:",l.readyState,l.getSettings().deviceId),n=qe("player").createMediaStreamSource(s),n.connect(Bl.worklet,0,this.index)};Ae(ye(i,"output-media-track-changed"),ze(ye(i,"ready")),Pe(a,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,n.disconnect(),Hl[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),Ae(t,Cs(l=>i.volume=l),qi(Xu(1e3)),Pe(()=>{i.volume=0})),a(i.outMediaTrack)}var P5=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var Pf=class{constructor(t,e,r,o){this.localTrack=t;this.type=e;this.config=r;this.port=o;m(this,"track");m(this,"label");m(this,"insertKeyFrame",!0);m(this,"session");m(this,"tsMap",new Map);t._log.info("create Video Encoder",r)}trans(t,e,r){return A(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0,frameEncoded:0,selectConfigIndex:0});e.signal.addEventListener("abort",()=>{o.encoder.close()});let s=0;return t.pipeThrough(new TransformStream({transform:(n,a)=>{o.encoder.state==="configured"&&(this.tsMap.set(s,Date.now()),this.encode(n),s++,a.enqueue(n))}}),e)})}encode(t){var e,r;(r=(e=this.session)==null?void 0:e.encoder)==null||r.encode(t,{keyFrame:this.insertKeyFrame}),this.insertKeyFrame=!1}start(t,e,r){return A(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0,frameEncoded:0,selectConfigIndex:0});this.session=o;let s=0;t.pipeTo(new WritableStream({write:n=>{o.encoder.state==="configured"&&(s<10&&this.localTrack.log.info(`capture ${this.label} track frame:`,s,Date.now(),n.timestamp,n.displayWidth,n.displayHeight),(n.displayWidth!==this.config.width||n.displayHeight!==this.config.height)&&(this.localTrack.log.info("resize video track frame:",n.displayWidth,n.displayHeight,this.config.width,this.config.height),this.configure({width:n.displayWidth,height:n.displayHeight},o)),this.tsMap.set(s,Date.now()),this.encode(n),s<10&&this.localTrack.log.info(`encode ${this.label} track frame:`,s),s++,n.close())}}),e).catch(n=>{this.localTrack.log.warn(n),o.encoder.close()})})}recreate(t,e){return A(this,null,function*(){let r=0,o=new VideoEncoder({output:s=>{let n=this.tsMap.get(r);if(this.tsMap.delete(s.timestamp),r<10&&(r===0&&e.recreateCount===0&&U.emit(B.SEND_FIRST_VIDEO_FRAME,{room:t}),this.localTrack.log.info(`encoded ${this.label} track frame:`,r,Date.now(),s.timestamp)),r++,e.frameEncoded=r,this.track.enabled===!1)return;let a=null;if(this.localTrack.enableEncodeFrame){a=new Uint8Array(s.byteLength),s.copyTo(a);let d=this.localTrack.encodeFrame({data:a.buffer},this.type===3);a=new Uint8Array(d.data)}a?(this.localTrack.stat.bytesSent+=a.length,this.port.postMessage({chunk:{type:s.type,timestamp:s.timestamp,data:a,duration:s.duration},timestamp:n},[a.buffer])):(this.localTrack.stat.bytesSent+=s.byteLength,this.port.postMessage({chunk:s,timestamp:n}))},error:s=>{this.localTrack.log.warn(s,this.config),e.recreateCount++,setTimeout(()=>this.recreate(t,e),100)}});return e.encoder=o,yield this.configure(null,e),e})}configure(t,e){return A(this,null,function*(){var r;t&&Object.assign(this.config,t),(r=e.encoder)==null||r.configure(this.config)})}close(){this.port.postMessage(null),this.port.close()}};function Wl(i,t){return A(this,null,function*(){let e=i.mediaType===2,r=e?"screen":"video",o={codec:"avc1.420028",latencyMode:"realtime",avc:{format:"annexb"},hardwareAcceleration:Wt.useHardEncoder,width:t.profile.width,height:t.profile.height,framerate:t.profile.frameRate,bitrate:t.profile.bitrate*1e3},s=new MessageChannel;this.postMessage({cmd:"pushVideo",payload:t},[s.port1]);let n=new Pf(i,t.type,o,s.port2);return s.port2.onmessage=a=>{if(a.data===260)n.insertKeyFrame=!0;else if(!e){let{bitrate:d}=a.data;Ia({configureBr:[a.data.bitrate,d]}),n.session&&n.configure({bitrate:d},n.session)}},this._log.info("start push",r,t),n})}function XT(i){return A(this,null,function*(){var p;let t=i.mediaType===2,e=t?"screen":"video",r={type:t?7:2,profile:i.profile,trackType:t?"screen":"camera",crypto:!!((p=i.manager)!=null&&p.encodePipeline[0])};!t&&i.outMediaTrack instanceof CanvasCaptureMediaStreamTrack&&(r.trackType="canvas");let{trackType:o}=r,{width:s,height:n}=i.outMediaTrack.getSettings();r.profile.width=s,r.profile.height=n;let a=yield Wl.call(this,i,r);this._log.info("VideoEncoder created",r);let d,l=f=>A(this,null,function*(){if(d==null||d.abort("track changed"),!f)return;d=new AbortController;let{width:g,height:y,displaySurface:R}=f.getSettings();g&&(a.config.width=g),y&&(a.config.height=y);let C=or.match(/Chrome\/(\d+)/);(C==null?void 0:C[1])==="114"&&R==="browser"&&delete a.config.hardwareAcceleration,this._log.info("push",e,"track:",f.readyState,f.getSettings());let N;if(typeof MediaStreamTrackProcessor!="undefined"&&!(f instanceof CanvasCaptureMediaStreamTrack))N=new MediaStreamTrackProcessor({track:f}).readable;else{let Q;N=new ReadableStream({start(H){i.on("render",Ie=>{if(i.player.mode!==0)try{H.enqueue(new VideoFrame(Ie,{timestamp:performance.now()*1e3}))}catch(Je){console.warn(Je)}})},pull(H){return A(this,null,function*(){if(i.player.mode===0&&qr()&&i.player.element)return new Promise(Ie=>{i.player.element.requestVideoFrameCallback((Je,W)=>{try{let Ue=new VideoFrame(i.player.element);H.enqueue(Ue)}catch(Ue){console.warn(Ue)}Ie()})})})}})}let k="small"in i&&i.small;return k?(this.smallEncoder||(this.smallEncoder=yield Wl.call(this,i,{profile:k,type:3,trackType:o})),this.smallEncoder.track=f,this.smallEncoder.label="small",N=yield this.smallEncoder.trans(N,d,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),a.track=f,a.label=e,a.start(N,d,this)});return Ae(ye(i,"output-media-track-changed"),ze(ye(i,"ready")),Pe(l,console.error,()=>{var f;this._log.info("stop push",e,r),d.abort("unpublish"),a.close(),(f=this.smallEncoder)==null||f.close()})),l(i.outMediaTrack)})}var Bo=class Bo extends ue{constructor(e){var r,o;super((o=(r=e.roomid)==null?void 0:r.toString())!=null?o:e.name,"volumeEvaluation");this.room=e;m(this,"enableInBackground",!1);m(this,"interval",400);e.on("joined",()=>{this.emit(Bo.INTERVALCHANGED,this.interval)}),Ae(ye(this,Bo.INTERVALCHANGED),di(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):Ae(t_(s),Do(()=>[]))),Pe(s=>{s.forEach(n=>{this.room.remotePublishedUserMap.has(n.userId)&&(this.room.remotePublishedUserMap.get(n.userId).remoteAudioTrack.volume=n.volume)}),(!document.hidden||this.enableInBackground)&&this.state==ue.ON&&this.room.emit("audio-volume",s)}))}start(e,r){this.interval=e,this.enableInBackground=r,this.emit(Bo.INTERVALCHANGED,this.interval)}stop(){}};m(Bo,"INTERVALCHANGED","intervalChanged"),Z([et([ue.INIT,ue.OFF],ue.ON)],Bo.prototype,"start",1),Z([et([],ue.OFF)],Bo.prototype,"stop",1);var Gl=Bo;var $o=class $o extends Ul{constructor(e){super(e);m(this,"index",0);m(this,"session");m(this,"tinyid");m(this,"roomid");m(this,"openid");m(this,"socketid");m(this,"relayip");m(this,"clientip");m(this,"remotePublishedUserMap",new Map);m(this,"bussinessInfo");m(this,"token");m(this,"audioVolumeEvalution",new Gl(this));m(this,"enableAIVoice",Mf);m(this,"AbilityOption",{AVLimit:{EncVideoCodec:"H265",EncVideoWidth:0,EncVideoHeight:0,EncVideoBr:"0",EncVideoFps:0,EncAudioCodec:"opus",EncAudioFS:0,EncAudioCh:0,EncAudioBr:"0"},GeneralLimit:{CPULimit:{uint32_CPU_num:navigator.hardwareConcurrency||0,str_CPU_name:navigator.platform,uint32_CPU_maxfreq:0,model:"",uint32_total_memory:0},uint32_terminal_type:Gm(),uint32_device_type:0,str_os_verion:jm(),uint32_link_type:1,str_client_version:ht,uint32_net_type:es[oi.getNetworkType()],ua:navigator.userAgent,version:""}});m(this,"joinAbortController",new AbortController);m(this,"smallAbortCtrl");m(this,"smallEncoder");e.tinyId&&(this.tinyId=e.tinyId,xf(!0)),this._log||(this._log=e.logger),this.bussinessInfo=e.bussinessInfo,e.encodedDataProcessingListener&&this.setEncodedDataProcessingListener(e.encodedDataProcessingListener)}replaceTrack(e){return A(this,null,function*(){})}getLogger(){return this._log}postMessage(e,r){this.session&&(e?typeof e=="string"?this.session.postMessage({cmd:e,payload:r}):this.session.postMessage(e,r):this.session.postMessage(null))}sendMessage(e,r){return new Promise((o,s)=>{this.state!="joined"&&s("join room first");let n=new MessageChannel;this.postMessage({cmd:e,payload:r},[n.port1]),n.port2.onmessageerror=s,n.port2.onmessage=a=>{n.port2.close(),o(a.data)}})}fromWorker(e,r){if(this.state!="joined")throw"join room first";return o=>{var n;let s=new MessageChannel;s.port2.onmessage=a=>{a.data?o.next(a.data):o.complete()},s.port2.onmessageerror=a=>o.error(a),o.defer(()=>{s.port2.postMessage(null),s.port2.close()}),(n=this.session)==null||n.postMessage({cmd:e,payload:r},[s.port1])}}switchRole(e){return A(this,null,function*(){if(e!==this.role)return this._log.info(`switchRole() => switch role to: ${e}`),e=="audience"&&this.unpublish(...this.localTracks),this.sendMessage("switchRole",e=="audience"?21:20).then(r=>{this.role=e})})}join(e,r,o){return A(this,null,function*(){var d,l,p;let s=oi.getEnv(),n=hu(),a={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:o,params:e,proxy_wt:(d=this.proxy_wt)==null?void 0:d.replace("https://",""),proxy_ws:(l=this.proxy_ws)==null?void 0:l.replace("wss://",""),proxy_cloud:(p=this.scheduleResult.iceServers)!=null&&p.length?this.scheduleResult.iceServers[0].urls:[],proxy_unified:this.proxy_unified,domains:this.scheduleResult.domains,env:s,osName:yn(),browserInfo:hu(),tinyId:this.tinyId,joinReq:{useStrRoomid:!!this.useStringRoomId,roomid:String(e.roomId||e.strRoomId),sdkAppID:String(e.sdkAppId),userSig:e.userSig,privMapEncrypt:e.privateMapKey||"",privMap:"",pstnBizType:0,role:"user",jsSdkVersion:ht,browserVersion:n.browserName+n.browserVersion,closeLocalMedia:!0,trtcscene:r==="live"?2:1,trtcrole:e.role,bussinessInfo:e.businessInfo||this.bussinessInfo||"",isAuxUser:0,autoSubscribe:this.autoReceiveAudio&&this.autoReceiveVideo,AbilityOption:this.AbilityOption}};yield GT.call(this,a),console.log(this),Bl.playAudio(f=>this.postMessage({cmd:"setAudioWorkletPort"},[f])),this.checkDestroy()})}leave(){return A(this,null,function*(){this.remotePublishedUserMap.forEach(e=>{e.remoteAudioTrack.close(),e.remoteAuxiliaryTrack.close(),e.remoteVideoTrack.close()}),this.postMessage(null),this.remotePublishedUserMap.clear(),this.localTracks.forEach((e,r)=>r.unpublish()),this.localTracks.clear()})}getSignalInfo(){return{tinyId:this.tinyid,clientIp:this.clientip,signalIp:"",relayIp:this.relayip,relayInnerIp:"",relayPort:0}}enableAudioVolumeEvaluation(e=2e3,r=!1){e<=0?this.audioVolumeEvalution.stop():this.audioVolumeEvalution.start(e,r)}getLocalAudioStats(){return this.sendMessage("getLocalAudioStats")}getLocalVideoStats(){return this.sendMessage("getLocalVideoStats")}afterJoin(){return A(this,null,function*(){let e=ze(ye(this,"left"));Ae(r=>A(this,null,function*(){let o=new MessageChannel;o.port2.onmessage=s=>{s.data?r.next({data:s.data,port:o.port2}):r.complete()},o.port2.onmessageerror=s=>r.error(s),r.defer(()=>{o.port2.postMessage(null),o.port2.close()}),this.postMessage({cmd:"decodeAudio",payload:!!this.audioManager.decodePipeline[0]},[o.port1])}),e,Pe(({data:r,port:o})=>{let s=this.audioManager.decodePipeline[0]({frame:{data:r.data.buffer}});o.postMessage(Ee(Y({},r),{data:new Uint8Array(s.data)}),[s.data])}))})}onWorkerEvent(e,r){switch(e!=="network-quality"&&console.info(this.userId,"onWorkerEvent",e,JSON.stringify(r)),e){case B.RECEIVED_PUBLISHED_USER_LIST:U.emit(e,Y({room:this},r));return;case"1":if(r.userId===this.userId)return;this.emit("peer-join",r);return;case"2":this.emit("peer-leave",r);return;case"3":let o=new wl(this,r);this.remotePublishedUserMap.set(r.userId,o),this.emit("remote-published",o);return;case"5":{let f=r,g=this.remotePublishedUserMap.get(f);g&&(g.remoteVideoTrack.close(),g.remoteAuxiliaryTrack.close(),g.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(f),this.emit("remote-unpublished",g))}return;case"banned":switch(r){case 8:this.emit("banned",{reason:"kick",message:""});return;case 2:case 6:case 4:this.emit("banned",{reason:"banned",message:""});return;case 7:case 5:this.emit("banned",{reason:"room_disband",message:""});return}break;case"6":{let{prevMuteState:f,muteState:g,flag:y}=r,R=this.remotePublishedUserMap.get(g.userId);if(!R){this.emit("remote-publish-state-changed",r);return}R.flag=y}U.emit(B.REMOTE_PUBLISH_STATE_CHANGED,Y({room:this},r)),this.emit("remote-publish-state-changed",r);return;case"7":this.localPublishFlag!==r.flag&&(this.localPublishFlag=r.flag,this.emit("local-publish-flag-changed",r.flag));return;case"network-quality":this.quality=Y({},r);let{uplinkLoss:s,uplinkRTT:n,uplinkInfo:a,downlinkInfo:d,msg_down_stream_info:l}=r,p={str_sdk_version:ht,uint64_datetime:Date.now(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyid},msg_device_info:{uint32_terminal_type:15,str_device_name:navigator.platform,str_os_version:"",uint32_net_type:es[an()]},msg_event_msg:i_(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:a,msg_down_stream_info:l};U.emit(B.HEARTBEAT_REPORT,{room:this,report:p}),this.emit("heartbeat-report",p),U.emit(B.NETWORK_QUALITY,{room:this,uplink:{rtt:n,loss:s},downlinks:d}),delete r.downlinkInfo;break;case"signal-connection-state-changed":U.emit(B.SIGNAL_CONNECTION_STATE_CHANGED,Y({room:this},r));return}this.emit(e,r)}sendStartPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("publishCdn",e)}sendStopPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("stopPublishCdn",e)}sendStartMixTranscode(e){return this.sendMessage("startMcuMix",e)}sendStopMixTranscode(e){return this.sendMessage("stopMcuMix",e)}publish(e){return A(this,null,function*(){switch(yield this.sendMessage("publish",e.mediaType).then(r=>r.err!==0?Promise.reject(r.err):r),Ft(e,e).add("mute",()=>{this.postMessage("mute",{mediaType:e.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})}).add("unmute",()=>{this.postMessage("unmute",{mediaType:e.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})}),e.mediaType){case 1:JT.call(this,e);break;default:yield XT.call(this,e)}e.muted&&this.postMessage("mute",{mediaType:e.mediaType,srctinyid:this.tinyid,userId:this.openid,remove:!0})})}unpublish(e){return A(this,null,function*(){St(e)})}subscribe(...e){return A(this,null,function*(){let r=e.reduce((f,g)=>g.mediaType|f,0),{userId:o,tinyId:s,streamType:n}=e[0],a=this.remotePublishedUserMap.get(o),d=Y({},a.subscribeState),l=Object.assign(new Fa,d);l.mediaType|=r,U.emit(B.SUBSCRIBE_START,{room:this,streamType:n,remotePublishedUser:a,subscribeState:l});let p=yield this.sendMessage("subscribe",{mediaType:l.mediaType,userId:o,srctinyid:s,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter(f=>l.mediaType&f).map(f=>({mediaType:f,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",p),yield Promise.all(e.filter(f=>!f.isSubscribed).map(f=>{switch(f.mediaType){case 1:return jT.call(this,f);default:return qT.call(this,f)}})),U.emit(B.SUBSCRIBE_SUCCESS,{room:this,streamType:n,remotePublishedUser:a})})}unsubscribe(...e){return A(this,null,function*(){let r=0;for(let o of e)r|=o.mediaType;if(e.length){let{userId:o,streamType:s,tinyId:n}=e[0];yield this.sendMessage("unSubscribe",{mediaType:r,srctinyid:n,userId:o});for(let a of e)a.unsubscribe();U.emit(B.UNSUBSCRIBE_SUCCESS,{room:this,streamType:s,remotePublishedUser:this.remotePublishedUserMap.get(o)})}})}enableSmall(e){return A(this,null,function*(){var r;if(e){if(this.videoManager.smallTrack){let o=this.videoManager.cameraTrack;this.smallEncoder=yield Wl.call(this,o,{profile:o.small,type:3,trackType:"camera"});let s=new MediaStreamTrackProcessor({track:this.videoManager.smallTrack}).readable;this.smallEncoder.track=this.videoManager.smallTrack,this.smallEncoder.label="small",this.smallAbortCtrl=new AbortController,this.smallEncoder.start(s,this.smallAbortCtrl,this),this._log.info("push small")}}else(r=this.smallAbortCtrl)==null||r.abort("stop"),this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder)})}changeType(e,r){let o=this.remotePublishedUserMap.get(r.userId);if(!o)return;let s=e?8:4;if(o.remoteVideoTrack.mediaType===s)return;let n={srctinyid:o.tinyId,mediaType:s,userId:r.userId,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8].filter(a=>s&a).map(a=>({mediaType:a,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}};o.remoteVideoTrack.mediaType=n.mediaType,this.postMessage("changetype",n)}destroy(){this.isDestroyed||(super.destroy(),this.isDestroyed=!0,this.joinAbortController.abort("destroy"))}};Z([Co($o.prototype.afterJoin),et(["left",ue.INIT],"joined"),CT()],$o.prototype,"join",1),Z([et("joined","left",{ignoreError:!0}),NT()],$o.prototype,"leave",1),Z([Mu(e=>e.mediaType),DT()],$o.prototype,"publish",1),Z([Mu(e=>e.mediaType),wT()],$o.prototype,"unpublish",1),Z([Mu((...e)=>e[0].userId),OT()],$o.prototype,"subscribe",1);var jl=$o;Qn.frameWorkType=37;Qn.create=function(i){let t=Qn._create.call(this,jl,i);return t._use(Kp,i==null?void 0:i.assetsPath),i!=null&&i.assetsPath&&(Wt.assetsPath=i==null?void 0:i.assetsPath),console.log("trtc wasm sdk:",ht,"created",Wt),t};Object.assign(Qn.prototype,{_setCurrentSpeaker(i){let t=qe("player");return t!=null&&t.setSinkId?t.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return A(this,null,function*(){return this.startPlugin(Kp.Name,{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.640028",hardwareAcceleration:"prefer-software",optimizeForLatency:!0},fallback:"wasm"}),new Promise((e,r)=>{Ae(ye(i,"decode-downgrade-state-changed"),er(o=>o.state==="STARTED"),Xr(1),Cp(1e4),ze(ye(i,ue.INIT)),Pe(e,r))})})}});yh(37);var n6=Qn;export{n6 as default};
144
+ }`});m(this,"yTextureRef");m(this,"uTextureRef");m(this,"vTextureRef");m(this,"Y");m(this,"U");m(this,"V");this.useProgram();let r=this.context.ctx;r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),this.setTexBuffer([0,1,1,1,0,0,1,0]),this.yTextureRef=this._initTexture("ySampler",0),this.uTextureRef=this._initTexture("uSampler",1),this.vTextureRef=this._initTexture("vSampler",2),this._canvas=e._canvas}_initTexture(e,r){let o=this.context.ctx,s=o.createTexture();return o.bindTexture(o.TEXTURE_2D,s),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.bindTexture(o.TEXTURE_2D,null),o.uniform1i(o.getUniformLocation(this.program,e),r),s}render(e){let r=this.context.ctx,o=this.width,s=this.height;return this.useProgram(),r.viewport(0,0,o,s),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.yTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o,s,r.LUMINANCE,r.UNSIGNED_BYTE,this.Y),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,this.uTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.U),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this.vTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.V),this.draw(),!0}resize(e,r){super.resize(e,r);let o=this.context.ctx;o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this.yTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e,r,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE1),o.bindTexture(o.TEXTURE_2D,this.uTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE2),o.bindTexture(o.TEXTURE_2D,this.vTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null)}};var PT=(i,t)=>{switch(i){case"webCodecs":return t==="videoFrame"?514705:514706;case"wasm":return t==="webgl"?514707:t==="videoFrame"?514708:514709}throw new Error("decoder type not supported")};function rv(i){return i[0]===0&&i[1]===0&&i[2]===0&&i[3]===1}var iv=0,Ul=class{constructor(t){m(this,"id",iv++);m(this,"trackDoneOB");m(this,"startOB");m(this,"stopOB");m(this,"decoder");m(this,"videoContext");m(this,"gop",0);m(this,"gop_helper",0);m(this,"waitFirstKeyFrame",!0);m(this,"startTimestamp",0);m(this,"startTime",0);m(this,"startPerformanceTime",0);m(this,"inputFrameCount",0);m(this,"decodedFrameCount",0);m(this,"decodeFrameCount",0);m(this,"downgradeLevel",0);m(this,"lastDowngradeTime",0);m(this,"lastFrameDiff",0);m(this,"lastDecodeFrameTimestamp",0);m(this,"config");m(this,"gop_before_configure",[]);m(this,"videoElement");m(this,"type","wasm");m(this,"goodType");m(this,"renderer","2d");m(this,"wasmOption");m(this,"createDecoder");m(this,"_decodeSink");m(this,"isReported",!1);m(this,"track");m(this,"stateChangeOB");m(this,"failedReason");let{track:e,createDecoder:r}=t;if(this.stateChangeOB=At(),this.track=e,this.createDecoder=r,this.wasmOption={yuvMode:t.renderer==="webgl",wasmPath:t.wasmPath,workerMode:t.workerMode,canvas:t.canvas},this.config=t.config,this.videoElement=t.videoElement,this.renderer=t.renderer,this.trackDoneOB=ye(e.availableState,ue.OFF),this.stopOB=At(),t.type==="auto"){switch(t.fallback){case"wasm":this.type="wasm",this.renderer="webgl";break;case"wasm_2d":this.type="wasm",this.renderer="2d";break;case"wasm_video":this.type="wasm",this.renderer="videoFrame";break;default:this.type="webCodecs"}this.wasmOption.yuvMode=this.renderer==="webgl"}else this.type=t.type;this.changeRenderer(this.renderer),Ae(this.stateChangeOB,Ap((o,s)=>(o!==s&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:o,state:s}),s),"INITIALIZED"),ze(this.stopOB),Pe()),this.start()}start(t=0){this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=Ae(this.pipe(this.track),ze(this.stopOB),ji());Ae(e,Pe(()=>{this.track.stat.framesDecoded++},r=>{if(this.track.log.error(`${this.id} play failed: ${r} retryCount: ${t}`),J.addFailedEvent({key:PT(this.type,this.renderer),error:r}),t>4)this.failedReason=r,this.stateChangeOB.next("FAILED"),J.addFailedEvent({key:514704});else{if(this.goodType){this.start(t);return}switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":switch(this.renderer){case"webgl":this.changeRenderer("videoFrame");break}}this.start(t+1)}},()=>{this.track.log.warn(`${this.id} decoderOB completed`),J.addSuccessEvent({key:PT(this.type,this.renderer)}),J.addSuccessEvent({key:514704})})),Ae(e,Qr(1),Pe(()=>{this.track.player.handlePlaying("canvas"),this.goodType=this.type,this.stateChangeOB.next("STARTED")}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.start()}close(t){this.stopOB.next(t)}changeRenderer(t){this.renderer=t,this.renderer==="videoFrame"&&!gh()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(t,e=!1){var a,d;if(this.failedReason)return;this.inputFrameCount++;let r=new Uint8Array(t.data);if(!rv(r)||r.length<5)return this.stateChangeOB.next("FAILED"),this.close(`not h26x frame ${r.subarray(0,5)}`),t;let o=r[4]&31,s=!1;switch(o){case 5:case 7:s=!0;break}if(((a=this.decoder)==null?void 0:a.state)!=="configured")return this.track.log.debug(`not configured ${this.inputFrameCount}`),s&&(this.gop_before_configure=[]),this.gop_before_configure.push({data:t.data,timestamp:t.timestamp,type:t.type}),t;this.gop_before_configure.length>0&&!e&&(this.gop_before_configure.forEach(l=>this.decode(l,!0)),this.gop_before_configure=[]);let{timestamp:n}=t;if(s?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame)if(s)this.waitFirstKeyFrame=!1,this.startTimestamp=n,this.startTime=Date.now(),this.startPerformanceTime=_e();else{this.track.log.debug(`wait first key frame ${this.inputFrameCount} ${r.subarray(0,5).join(" ")}`);return}switch(this.downgradeLevel){case 0:break;case 1:break;case 2:if(this.gop_helper>this.gop>>1)return;break;case 3:if(this.gop_helper>0)return;break;default:return}(this.decodeFrameCount<10||this.decodeFrameCount%500===0)&&this.track.log.debug(`decode ${this.decodeFrameCount} gop: ${this.gop} ${n} ${(d=t.getMetadata)==null?void 0:d.call(t).rtpTimestamp}`),this.decodeFrameCount++,this.lastDecodeFrameTimestamp=n,this.decoder.decode({data:t.data,type:t.type,timestamp:this.lastDecodeFrameTimestamp});return}return t}checkDowngradeByFrameDiff(){let t=this.downgradeLevel,e=this.decodeFrameCount-this.decodedFrameCount;e>this.lastFrameDiff?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):e<=this.lastFrameDiff&&this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==t&&this.track.log.debug(`downgrade level ${t} to ${this.downgradeLevel} ${this.decodeFrameCount} frameDiff: ${e}, lastFrameDiff: ${this.lastFrameDiff}`),this.lastFrameDiff=e,this.lastDowngradeTime=Date.now()}checkDowngradeByTimestampDiff(t){let e=this.downgradeLevel;this.lastDecodeFrameTimestamp-t>9e4?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==e&&this.track.log.debug(`downgrade level ${e} to ${this.downgradeLevel}`)}pipe(t){return e=>A(this,null,function*(){this._decodeSink=e;let r,o=t.mediaTrack;e.defer(()=>{var a;o&&(t.player.setCanvas(),t.setInputMediaStreamTrack(o)),r==null||r.close(),(a=this.videoContext)==null||a.destroy(),delete this._decodeSink});let{renderer:s,type:n}=this;t.log.info(`decoder type: ${this.type} renderer: ${this.renderer}`);try{switch(n){case"wasm":r=this.createDecoder(n,this.wasmOption);break;case"webCodecs":r=this.createDecoder(n);break;default:throw new Error("not supported yet")}let a=0;if(r.on("videoFrame",d=>{this.decodedFrameCount++,a++,(a<=10||a%500===0)&&t.log.debug(`frame ${a} ${this.decodedFrameCount}/${this.decodeFrameCount} decoded ${d.timestamp}`),Date.now()-this.lastDowngradeTime>5e3&&(this.type==="webCodecs"?this.checkDowngradeByFrameDiff():this.type==="wasm"&&this.checkDowngradeByTimestampDiff(d.timestamp)),e.next(d)}),r.on("error",d=>{t.log.error(d),e.error(n==="webCodecs"?4:8)}),yield r.initialize(this.videoElement),!this._decodeSink)return;if(r.configure(this.config),n==="wasm"&&s==="webgl"){this.videoContext=new Nt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create(),this.videoContext.on(Nt.UNAVAILABLE,l=>{t.log.error(l),e.error(7)});let d=new kl(this.videoContext);r.on("videoCodecInfo",l=>d.resize(l.width,l.height)),r.on("videoFrame",l=>{({y:d.Y,u:d.U,v:d.V}=l),this.downgradeLevel===1?this.decodedFrameCount%2===0&&d.render(this.decodedFrameCount):d.render(this.decodedFrameCount)}),t.source=d,t.player.setCanvas(this.videoContext._canvas,2)}else if(s==="videoFrame"){t.player.setCanvas();let d=new MediaStreamTrackGenerator({kind:"video"}),l=d.writable.getWriter();t.setInputMediaStreamTrack(d),r.on("videoFrame",p=>l.write(p))}else{this.videoContext=new Pt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create({alpha:!1});let d=this.videoContext.createVideoImageSource();r.on("videoFrame",p=>{try{d.image=p,d.update()}catch(f){delete this.goodType,t.log.error(f),e.error(11)}});let l=new ws(this.videoContext,{name:"remotePlayer",logger:t.log});d.connect(l),t.source=d,t.player.setCanvas(this.videoContext._canvas,2)}this.decoder=r}catch(a){t.log.error(a),e.error(n==="webCodecs"?2:6)}})}};var LT=Promise.resolve(),Bc=class extends kT.EventEmitter{constructor(e){super();this.room=e;m(this,"videoContext");m(this,"_glVideoContext");m(this,"_2dVideoContext");m(this,"destination");m(this,"smallVideoContext");m(this,"smallDestination");m(this,"smallTrackSource");m(this,"smallImageSource");m(this,"_isMirror",!1);m(this,"_rotation",0);m(this,"cameraTrack");m(this,"cameraNode");m(this,"transformNode");m(this,"mixNode");m(this,"screenTrack");m(this,"screenNode");m(this,"selfModel",!1);m(this,"blurRadius",3);m(this,"arTrack");m(this,"_enableFaceCentering",!1);m(this,"_enableEffectOptimization",!1);m(this,"onAbort");m(this,"_color");m(this,"Wasm");m(this,"waterMarkNode");m(this,"_waterMarkOption");m(this,"watermarkImageList",[]);m(this,"_beautyParams");m(this,"isUsingArTrack",!1);m(this,"mixTrack");m(this,"_isMixScreen",!1);m(this,"_virtualBackground");m(this,"_virtualBackgroundAbortCallback");m(this,"virtualBackgroundInstance");m(this,"_bgAssetPath");m(this,"log");m(this,"_mat4");m(this,"_postProcessing");m(this,"_checkId",0);m(this,"_use2d",!1);m(this,"_autoSwitchRenderMode",!0);m(this,"encodePipeline",[]);m(this,"decodePipeline",[]);m(this,"updated",LT);m(this,"_updateFlag",!1);this.log=F.createLogger({parent:e==null?void 0:e.getLogger(),id:"vm",userId:e==null?void 0:e.userId,sdkAppId:e==null?void 0:e.sdkAppId}),this.smallVideoContext=new Pt({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get smallMode(){var e;return((e=this.room)==null?void 0:e.smallMode)||"canvas"}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get _isRotate(){return this._rotation!==0}get _isTransform(){return this._isMirror||this._isRotate}get renderMode(){return this._autoSwitchRenderMode?"auto":this._use2d?"2d":"webgl"}set renderMode(e){if(this._autoSwitchRenderMode=e==="auto",this._autoSwitchRenderMode)return;let r=e==="2d";this._use2d!==r&&(this._use2d=r,this.clear(),this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.update())}get cameraResolution(){var o;let{width:e,height:r}=((o=this.cameraTrack)==null?void 0:o.settings)||{};return pr(this._rotation)?{width:r,height:e}:{width:e,height:r}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Pt({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(!this._glVideoContext)this._glVideoContext=new Nt({frameRate:15,logger:this.log,name:"m"});else if(this._glVideoContext.available)return this._glVideoContext;return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(km<=22),this._glVideoContext.on(Nt.UNAVAILABLE,e=>{var r;this.emit("error",e),this.log.warn("video context unavailable",e),(r=this._virtualBackgroundAbortCallback)==null||r.call(this,e),this.update().catch(o=>{this.log.error(o)})})}catch(e){this.emit("error",e)}}initVirtualBackground(e,r,o){this.onAbort=e,this._mat4=r,this._postProcessing=o}enablePrintDetail(e=2e3){this._checkId=ft.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}destroy(){var e,r;(e=this._2dVideoContext)==null||e.destroy(),(r=this._glVideoContext)==null||r.destroy(),this.smallVideoContext.destroy(),ft.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(vr||this._isMixScreen||this._isTransform||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(e="videoCtxGl",r){let o=e==="videoCtxGl"?512700:512701;r?J.addFailedEvent({key:o,error:r}):J.addSuccessEvent({key:o})}checkOrCreateVideoContext(){let e=this._use2d;if(this._autoSwitchRenderMode&&(this._use2d=!this._hasVirtualBg),this.videoContext)if(this.videoContext.available){let r=!this.videoContext.hasAlpha&&this.needAlpha;if(this._autoSwitchRenderMode&&e===this._hasVirtualBg)this.clear();else if(r)if(this._use2d)this.clear();else return!0;else return!0}else{if(this._glVideoContext=new Nt({frameRate:15,logger:this.log,name:"m"}),this.initializeGlVideoContext(),this._glVideoContext.available)return this.videoContext=this._glVideoContext,this.videoContext.available;this.log.warn("webgl is still not available"),this.clear(),this._use2d=!0}return this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.videoContext.available}get smallTrack(){var e;return(e=this.smallDestination)==null?void 0:e.videoTrack}get hasSmall(){return!!this.smallTrack}get initialTrack(){var e;return(e=this.cameraTrack)==null?void 0:e.mediaTrack}setSmallVideo(e,r){if(this.smallMode!=="api")if(e){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new Zu(this.smallVideoContext,e,this.log),this.smallVideoContext.on(Nt.UNAVAILABLE,o=>{this.log.warn("small video context lost",o)})}if(this.smallVideoContext.frameRate=e.frameRate,this.smallDestination.resolution=e,r)this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=r:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(r),this.smallImageSource.resize(r.width,r.height),this.smallImageSource.connect(this.smallDestination));else if(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource)this.smallTrackSource.replaceTrack(this.initialTrack);else{this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource");let{width:o,height:s}=this.cameraTrack.settings;this.smallTrackSource.resize(o,s),this.smallTrackSource.connect(this.smallDestination)}}else this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource)}_setMainOutput(e){var r;try{let o=this.cameraTrack,{small:s,player:n}=o;vr&&n.setCanvas(e);let a=e&&((r=this.destination)==null?void 0:r.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),a=this.arTrack),this.log.info(`set main output ${a?a.label:"no output track"}`),this.setSmallVideo(s,e),o.setOutputMediaStreamTrack(a)}catch(o){this.log.error("set main output failed",o)}}update(e=!1){return A(this,null,function*(){var s;if(!this.cameraTrack||!this.initialTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:r,profile:o}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams)this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(bt.RENDER,n=>{var a;(a=this.cameraTrack)==null||a.emit("render",n)})),Vt===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof Dr?(this.cameraNode.close(),delete this.cameraNode):this.cameraNode.image=this.initialTrack.canvas),this.cameraNode||(this.cameraNode=this.videoContext.createVideoImageSource(this.initialTrack.canvas,{name:"cameraCanvasSource",logger:this.log}))):(this.cameraNode&&(this.cameraNode instanceof Dr?this.cameraNode.replaceTrack(this.initialTrack):(this.cameraNode.close(),delete this.cameraNode)),this.cameraNode||(this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraTrackSource"))):this.cameraNode?this.cameraNode.replaceTrack(this.initialTrack):this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraNodeSource"),this.cameraNode.resize(r.width,r.height);else if(e&&this.cameraNode&&this.destination)this.cameraNode.replaceTrack(this.initialTrack);else{this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():(this.destination=new Yu(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on(bt.RENDER,l=>{var p;(p=this.cameraTrack)==null||p.emit("render",l)}));let{width:n,height:a}=this.cameraResolution,d=yield this.getWatermarkImage(n,a);this._waterMarkOption={x:0,y:0,width:d.width,height:d.height,image:d},this.cameraNode=new Ll(this.videoContext,{input:this.initialTrack,width:n,height:a,mirror:this._isMirror,rotation:this._rotation,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,Wasm:this.Wasm,enableFaceCentering:this._enableFaceCentering,enableEffectOptimization:this._enableEffectOptimization,onAbort:this.onAbort,mat4:this._mat4,postProcessing:this._postProcessing,color:this._color}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute(),yield this.cameraNode.predictReady}if(this.videoContext.frameRate=o.frameRate,this._use2d){let n=this.cameraNode;if(n.disconnect(),this._isTransform&&(this.transformNode?(this.transformNode.mirror=this._isMirror,this.transformNode.rotation=this._rotation):this.transformNode=new wr(this.videoContext,this.log,this._isMirror,this._rotation),n=n.connect(this.transformNode),n.disconnect(),this.log.info(`start mirror ${this._isMirror} rotate ${this.rotation}`)),this.mixNode&&this.mixNode.close(),delete this.mixNode,this._isMixScreen||this._hasWaterMark){if(this.mixNode=new Fn(this.videoContext,this.log),n.connect(this.mixNode,{zIndex:1}),this._hasWaterMark&&!this.waterMarkNode&&this._waterMarkOption)this.waterMarkNode=this.videoContext.createVideoImageSource(this._waterMarkOption.image,{autoResize:!1,logger:this.log}),this.waterMarkNode.resize(this._waterMarkOption.width,this._waterMarkOption.height),this.waterMarkNode.x=this._waterMarkOption.x,this.waterMarkNode.y=this._waterMarkOption.y;else if(this.waterMarkNode){let{width:d,height:l}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(d,l),d&&l&&this.waterMarkNode.resize(d,l)}(s=this.waterMarkNode)==null||s.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&(this.screenNode||(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource"),this.screenNode.resize(this.screenTrack.settings.width,this.screenTrack.settings.height)),this.screenNode.shouldUpdate=!1,this.screenNode.connect(this.mixNode,{zIndex:0})),n=this.mixNode,this.log.info("start mix",`${this.mixNode.width}x${this.mixNode.height}`)}n.connect(this.destination)}return this.log.info(`update ${this._use2d?"2d":"webgl"}`),this._setMainOutput(this.videoContext.canvas)})}clearLastFrame(){var e;this.destination&&((e=this.destination.ctx2d)==null||e.clearRect(0,0,this.destination.width,this.destination.height))}changeInput(e){var r,o,s,n,a;if(e instanceof mi)return this.log.info("change screen input",(r=e.mediaTrack)==null?void 0:r.label),this.setScreenTrack(e);if(e instanceof _r)return this.log.info("change video input",(o=e.mediaTrack)==null?void 0:o.label),this.setCameraTrack(e);if(e instanceof Mo){this.log.info("change remote input",(s=e.mediaTrack)==null?void 0:s.label);let d=e.mediaTrack;return e.setOutputMediaStreamTrack(d)}if(e instanceof Ms)return this.log.info("change mix input",(n=e.outMediaTrack)==null?void 0:n.label),this.setMixTrack(e);this.log.warn("change unknown input",(a=e.mediaTrack)==null?void 0:a.label)}removeInput(e){var r;e instanceof mi?((r=this.screenNode)==null||r.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof _r?this._isMixScreen?(delete this.cameraNode,this.cameraTrack._inputTrack=null,this.update()):(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof Mo?e.source&&e.source.context.destroy():e instanceof Ms&&(delete this.mixTrack,this.update())}setMixTrack(e){this.mixTrack=e}setCameraTrack(e){return this.cameraTrack=e,this.update(!0)}setScreenTrack(e){return A(this,null,function*(){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):yield this.update()),e.setOutputMediaStreamTrack(e.mediaTrack)})}getWatermarkImage(e,r){return A(this,null,function*(){let o=document.createElement("canvas");r&&e&&(o.height=r,o.width=e);let s=o.getContext("2d");if(!s)throw new ae({code:q.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort((n,a)=>n.zIndex-a.zIndex),this.watermarkImageList.forEach(({image:n,x:a,y:d,width:l,height:p,fillVideo:f})=>{let g=f&&e||l,y=f&&r||p,R=f?0:a,C=f?0:d;s.drawImage(n,R,C,g,y)}),mn(o.toDataURL())})}pushWaterMarkImageList(e){let{type:r}=e;this.watermarkImageList.some(s=>s.imageUrl===e.imageUrl&&s.height===e.height&&s.width===e.width&&s.x===e.x&&s.y===e.y&&s.type===e.type&&s.zIndex===e.zIndex&&s.fillVideo===e.fillVideo)||((r==="mute"||r==="watermark")&&(this.watermarkImageList=this.watermarkImageList.filter(s=>s.type!==r)),this.watermarkImageList.push(e))}setBeautyParams(e){return A(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return A(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(e){return A(this,null,function*(){let r;try{r=yield mn((e==null?void 0:e.imageElement)||e.imageUrl)}catch(g){throw new ae({code:q.INVALID_PARAMETER,message:`load image failed, url: ${e.imageUrl}`})}let{x:o=0,y:s=0,width:n=r.width,height:a=r.height,type:d="watermark",zIndex:l=2,fillVideo:p=!1}=e;this.watermarkImageList.some(g=>g.type===d)?(this.watermarkImageList=this.watermarkImageList.filter(g=>g.type!==d),this.pushWaterMarkImageList({x:o,y:s,width:n,height:a,image:r,zIndex:l,type:d,imageUrl:e.imageUrl,fillVideo:p}),r=yield this.getWatermarkImage(this.cameraResolution.width,this.cameraResolution.height),this._waterMarkOption={x:0,y:0,width:r.width,height:r.height,image:r},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(r.width,r.height),this.waterMarkNode.image=r):this.update()):(this.pushWaterMarkImageList({x:o,y:s,width:n,height:a,image:r,zIndex:l,type:d,imageUrl:e.imageUrl,fillVideo:p}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(g,y)=>g==="imageUrl"?void 0:y))})}deleteWatermark(e="watermark"){return A(this,null,function*(){this.watermarkImageList=this.watermarkImageList.filter(r=>r.type!==e),this.log.info("delete watermark",e,JSON.stringify(this.watermarkImageList,(r,o)=>r==="imageUrl"?void 0:o)),yield this.freshWatermark()})}freshWatermark(){return A(this,null,function*(){var s;(s=this.waterMarkNode)==null||s.close(),delete this.waterMarkNode,delete this._waterMarkOption;let{width:e,height:r}=this.cameraResolution,o=yield this.getWatermarkImage(e,r);this._waterMarkOption={x:0,y:0,width:o.width,height:o.height,image:o},this.update()})}setVirtualBackground(e){return A(this,null,function*(){var r,o,s;if(!e)delete this._virtualBackground,delete this._virtualBackgroundAbortCallback;else{if(e.onAbort&&(this._virtualBackgroundAbortCallback=e.onAbort),this._use2d&&!this._autoSwitchRenderMode)return Promise.reject(new Error("not support virtual background in 2d mode"));this._bgAssetPath=e.assetPath,e.type==="image"?this._virtualBackground=yield mn(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type),this._enableFaceCentering=(r=e.enableFaceCentering)!=null?r:this._enableFaceCentering,this._enableEffectOptimization=(o=e.enableEffectOptimization)!=null?o:this._enableEffectOptimization,this._color=(s=e.color)!=null?s:[0,1,0]}if(this.log.info(`${this._virtualBackground?"start":"stop"} virtual background, ${(e==null?void 0:e.type)||""}, ${this.blurRadius||""}`),yield this.update(),this._virtualBackground&&!this._glVideoContext.available)throw new ae({code:q.INVALID_OPERATION,message:`webgl context create failed, ${this._glVideoContext.error}`})})}get mixScreen(){return this._isMixScreen}set mixScreen(e){var r;this._isMixScreen=e,this._isMixScreen||((r=this.screenNode)==null||r.close(),delete this.screenNode),this.update()}set mirror(e){var r;this._isMirror!==e&&(this._isMirror=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get mirror(){return this._isMirror}set rotation(e){var r;this._rotation!==e&&(this._rotation=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get rotation(){return this._rotation}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return A(this,null,function*(){var e;(e=this.cameraTrack)!=null&&e.mediaTrack&&(yield this.virtualBackgroundInstance.ar.updateInputTrack(this.cameraTrack.mediaTrack.clone()))})}disableAr(){var e;this.isUsingArTrack=!1,(e=this.arTrack)==null||e.stop(),this.arTrack=void 0,this.update()}createDecodeContext(e){return new Ul(e)}clear(){var e,r;(e=this.videoContext)==null||e.disconnect(),(r=this.destination)==null||r.removeAllListeners(),delete this.destination,delete this.cameraNode,delete this.transformNode,delete this.screenNode,delete this.waterMarkNode}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}};Z([$E(function(e){this.log.error("update failed",e)}),xe(e=>function(...r){return A(this,null,function*(){this._updateFlag||(this._updateFlag=!0,yield LT,this.updated=new Promise((o,s)=>{e.apply(this,r).then(o,s),setTimeout(s,5e3,new ae({code:q.API_CALL_TIMEOUT,message:"update timeout"}))}),this._updateFlag=!1,yield this.updated)})})],Bc.prototype,"update",1);var ov=0;var Vl=class extends ue{constructor(e){super("room");m(this,"seq",++ov);m(this,"sdkAppId");m(this,"userId");m(this,"userSig");m(this,"privateMapKey");m(this,"latencyLevel");m(this,"tinyId");m(this,"scene");m(this,"roomId");m(this,"useStringRoomId");m(this,"role","anchor");m(this,"joinParams",null);m(this,"localPublishFlag",0);m(this,"localTracks",new Set);m(this,"enableAutoPlayDialog",!0);m(this,"autoReceiveAudio",!0);m(this,"autoReceiveVideo",!0);m(this,"proxy_ws");m(this,"proxy_wt");m(this,"proxy_unified");m(this,"checkSystemResult",{result:!0,detail:{isBrowserSupported:!0,isWebRTCSupported:!0,isWebCodecsSupported:!0,isMediaDevicesSupported:!0,isScreenShareSupported:!0,isSmallStreamSupported:!0,isH264EncodeSupported:!0,isVp8EncodeSupported:!0,isH264DecodeSupported:!0,isVp8DecodeSupported:!0,isH265EncodeSupported:!0,isH265DecodeSupported:!0}});m(this,"keyPointManager");m(this,"audioManager");m(this,"videoManager");m(this,"callDurationCalculator");m(this,"badCaseDetector");m(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null});m(this,"videoDecodeFallbackType");m(this,"smallMode","canvas");m(this,"enableChorus",!1);m(this,"_isUsingCachedSchedule",!1);m(this,"_log");m(this,"_joinedTimestamp",0);m(this,"_sdkType");m(this,"heartbeatReport");m(this,"quality");m(this,"enableSEI");m(this,"isDestroyed",!1);this._log=F.createLogger({parent:e.logger,id:`r${this.seq}`}),this.useStringRoomId=!!e.useStringRoomId,Ye(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),Ye(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),Ye(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new OT({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new MT({room:this}),this.badCaseDetector=new xT({room:this}),this.audioManager=new tl(this),this.videoManager=new Bc(this)}get videoCodec(){return"h264"}get scriptTransformWorker(){}get isMainStreamPublished(){for(let e of this.localTracks)if(e.mediaType&4)return!0;return!1}get isAuxStreamPublished(){for(let e of this.localTracks)if(e.mediaType&2)return!0;return!1}get hasAuxStream(){for(let e of this.remotePublishedUserMap.values())if(e.muteState.hasAuxiliary)return!0;return this.isAuxStreamPublished}get localMainAudioTrack(){for(let e of this.localTracks)if(e.mediaType&1)return e;return null}get localMainVideoTrack(){for(let e of this.localTracks)if(e.mediaType&4)return e;return null}get localAuxVideoTrack(){for(let e of this.localTracks)if(e.mediaType&2)return e;return null}get publishState(){let e={audio:!1,bigVideo:!1,smallVideo:!1,auxVideo:!1};return this.localTracks.forEach(r=>{if(r.isPublished||r.isPublishing)switch(r.mediaType){case 1:e.audio=!0;break;case 4:e.bigVideo=!0,e.smallVideo=r.hasSmall;break;case 2:e.auxVideo=!0;default:break}}),e}get muteState(){var e,r,o;return{audio:!!((e=this.localMainAudioTrack)!=null&&e.muted),bigVideo:!!((r=this.localMainVideoTrack)!=null&&r.muted),auxVideo:!!((o=this.localAuxVideoTrack)!=null&&o.muted)}}getLogger(){return this._log}get isJoining(){return this.state.toString()==="joining"}get isJoined(){return this.state==="joined"}get isLeft(){return this.state==="left"}addTrack(e){return A(this,null,function*(){return this.publish(e)})}removeTrack(e){return A(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return A(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(we(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Xt(e)){let{websocketProxy:r,webtransportProxy:o,loggerProxy:s,scheduleProxy:n,unifiedProxy:a}=e;this.proxy_ws=r,this.proxy_wt=o,this.proxy_unified=a,a?(fl([a,a]),Ko(`https://${a}`)):(s&&Ko(s),n&&fl(n))}U.once(B.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:gi.main,sched_back_domain:gi.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return A(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(r=>{e[r.userId]=r.remoteAudioTrack.stat}),e})}getTransportStats(){return A(this,null,function*(){var r;let e={rtt:((r=this.quality)==null?void 0:r.uplinkRTT)||0,downlinksRTT:{}};if(this.quality)for(let o of this.quality.downlinkInfo)e.downlinksRTT[o.userId]=o.rtt;return e})}getRemoteVideoStats(){return A(this,arguments,function*(e="main"){let r={};return this.remotePublishedUserMap.forEach(o=>{let s=e==="auxiliary"?o.remoteAuxiliaryTrack:o.remoteVideoTrack;r[o.userId]=s.stat}),r})}checkDestroy(){if(this.isDestroyed)throw new ae({code:q.INVALID_OPERATION,message:He({key:$e.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(nr.INVALID_DESTROY),new ae({code:q.INVALID_OPERATION,message:He({key:$e.INVALID_DESTROY})});this._log.info("destroy room"),this.audioManager.destroy(),this.videoManager.destroy(),this.keyPointManager.destroy(),this.callDurationCalculator.destroy(),this.badCaseDetector.destroy(),this.isDestroyed=!0,U.emit(B.ROOM_DESTROY,{room:this})}schedule(e,r){return A(this,null,function*(){var s,n,a,d;let o=_e();try{let{isCached:l,result:p,detailCost:f}=yield of({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:ht,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:r,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=l,this._log.info(`schedule cache:${+l} ${br(p,{keysToExclude:["username","credential"]})}`),l&&U.once(B.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=Y(Y({},this.scheduleResult),p),Ve((s=p.config)==null?void 0:s.retryCount)&&lm(p.config.retryCount),we((n=p.config)==null?void 0:n.loggerDomain)&&Ko(p.config.loggerDomain),this.videoDecodeFallbackType=((a=p.config)==null?void 0:a.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((d=p.config)==null?void 0:d.smallMode)||this.smallMode,U.emit(B.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:f}),J.addSuccessEvent({key:521700,cost:_e()-o})}catch(l){throw J.addFailedEvent({key:521700,error:l}),l}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}switchRoom(e){return Promise.reject()}isSwitchRoomSupported(){return!1}};function UT(i,t=!1){let e=Object.defineProperties(At(),{postMessage:{value:i.postMessage.bind(i)},port:{get(){return i},set(o){i.onmessage=We,i.onmessageerror=We,i=o,r()}}});function r(){i.onmessage=o=>{o.data?o.ports.length||t?e.next(o):e.next(o.data):(e.complete(),i.close())},i.onmessageerror=o=>{e.error(o),i.close()}}return r(),e}var Rf=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=We,e(r)}},jG=Te(Rf,"takeUntilComplete");var Wt={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},VT="__INLINE__WORKER__",FT="__INLINE__WASM__",{debug:BT}=console;Wt.debug||(console.debug=()=>{});var sv=!VT.startsWith("__"),nv=!FT.startsWith("__");function Fl(){let i=as(`${Wt.assetsPath?`${Wt.assetsPath}/`:""}worker.js`);return sv?URL.createObjectURL(new Blob([atob(VT)],{type:"application/javascript"})):i.startsWith("http")?fetch(i).then(t=>t.blob().then(e=>URL.createObjectURL(e))):i}var $c;function Bl(){return A(this,null,function*(){let i=Wt.assetsPath?`${Wt.assetsPath}/`:"";return $c||(nv?$c=new TextEncoder().encode(atob(FT)).buffer:$c=yield fetch(as(`${i}av_processing.wasm`)).then(t=>t.arrayBuffer()),$c)})}var vf=class{constructor(){m(this,"playPort");m(this,"playPortSent",!1);m(this,"worklet");m(this,"workletPromise")}init(){return this.workletPromise||(this.workletPromise=this._init()),this.workletPromise}_init(){return A(this,null,function*(){let t=qe("player"),e=Fl();try{yield t.audioWorklet.addModule(typeof e=="string"?e:yield e),F.info("global audio player worklet addModule success",e)}catch(r){throw F.error("global audio player worklet addModule failed:",r),r}return this.worklet=new AudioWorkletNode(t,"global-audio-player",{processorOptions:{wasm:yield Bl(),flag:Wt},numberOfInputs:2}),F.info("global audio player worklet created",t.state),this.worklet.connect(t.destination),this.playPort=this.worklet.port,this.playPort})}playAudio(t){return A(this,null,function*(){var r;yield this.init();let e=new MessageChannel;(r=this.playPort)==null||r.postMessage(null,[e.port1]),t(e.port2)})}},Hc=new vf;var Cf=(()=>{if(typeof self=="undefined")return!1;if(!("top"in self&&self!==top)){if("showOpenFilePicker"in self)return"showOpenFilePicker"}return!1})(),KG=Cf?Promise.resolve().then(function(){return uv}):Promise.resolve().then(function(){return gv});var e5=Cf?Promise.resolve().then(function(){return mv}):Promise.resolve().then(function(){return _v});var av=Cf?Promise.resolve().then(function(){return pv}):Promise.resolve().then(function(){return Iv});function Nf(...i){return A(this,null,function*(){return(yield av).default(...i)})}var cv=i=>A(void 0,null,function*(){let t=yield i.getFile();return t.handle=i,t}),dv=(...t)=>A(void 0,[...t],function*(i=[{}]){Array.isArray(i)||(i=[i]);let e=[];i.forEach((s,n)=>{e[n]={description:s.description||"Files",accept:{}},s.mimeTypes?s.mimeTypes.map(a=>{e[n].accept[a]=s.extensions||[]}):e[n].accept["*/*"]=s.extensions||[]});let r=yield window.showOpenFilePicker({id:i[0].id,startIn:i[0].startIn,types:e,multiple:i[0].multiple||!1,excludeAcceptAllOption:i[0].excludeAcceptAllOption||!1}),o=yield Promise.all(r.map(cv));return i[0].multiple?o:o[0]}),uv={__proto__:null,default:dv};function $l(i){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var r=e.done;return Promise.resolve(e.value).then(function(o){return{value:o,done:r}})}return $l=function(e){this.s=e,this.n=e.next},$l.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return r===void 0?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return r===void 0?Promise.reject(e):t(r.apply(this.s,arguments))}},new $l(i)}var $T=(o,s,...n)=>A(void 0,[o,s,...n],function*(i,t,e=i.name,r){let a=[],d=[];var l,p=!1,f=!1;try{for(var g,y=function(R){var C,N,k,Q=2;for(typeof Symbol!="undefined"&&(N=Symbol.asyncIterator,k=Symbol.iterator);Q--;){if(N&&(C=R[N])!=null)return C.call(R);if(k&&(C=R[k])!=null)return new $l(C.call(R));N="@@asyncIterator",k="@@iterator"}throw new TypeError("Object is not async iterable")}(i.values());p=!(g=yield y.next()).done;p=!1){let R=g.value,C=`${e}/${R.name}`;R.kind==="file"?d.push(R.getFile().then(N=>(N.directoryHandle=i,N.handle=R,Object.defineProperty(N,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>C})))):R.kind!=="directory"||!t||r&&r(R)||a.push($T(R,t,C,r))}}catch(R){f=!0,l=R}finally{try{p&&y.return!=null&&(yield y.return())}finally{if(f)throw l}}return[...(yield Promise.all(a)).flat(),...yield Promise.all(d)]}),lv=(...t)=>A(void 0,[...t],function*(i={}){i.recursive=i.recursive||!1,i.mode=i.mode||"read";let e=yield window.showDirectoryPicker({id:i.id,startIn:i.startIn,mode:i.mode});return $T(e,i.recursive,void 0,i.skipDirectory)}),mv={__proto__:null,default:lv},hv=(s,...n)=>A(void 0,[s,...n],function*(i,t=[{}],e=null,r=!1,o=null){Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";let a=[],d=null;if(i instanceof Blob&&i.type?d=i.type:i.headers&&i.headers.get("content-type")&&(d=i.headers.get("content-type")),t.forEach((f,g)=>{a[g]={description:f.description||"Files",accept:{}},f.mimeTypes?(g===0&&d&&f.mimeTypes.push(d),f.mimeTypes.map(y=>{a[g].accept[y]=f.extensions||[]})):d?a[g].accept[d]=f.extensions||[]:a[g].accept["*/*"]=f.extensions||[]}),e)try{yield e.getFile()}catch(f){if(e=null,r)throw f}let l=e||(yield window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:a,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}));!e&&o&&o(l);let p=yield l.createWritable();return"stream"in i?(yield i.stream().pipeTo(p),l):"body"in i?(yield i.body.pipeTo(p),l):(yield p.write(yield i),yield p.close(),l)}),pv={__proto__:null,default:hv},fv=(...t)=>A(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),new Promise((e,r)=>{let o=document.createElement("input");o.type="file";let s=[...i.map(l=>l.mimeTypes||[]),...i.map(l=>l.extensions||[])].join();o.multiple=i[0].multiple||!1,o.accept=s||"",o.style.display="none",document.body.append(o);let n=l=>{typeof a=="function"&&a(),e(l)},a=i[0].legacySetup&&i[0].legacySetup(n,()=>a(r),o),d=()=>{window.removeEventListener("focus",d),o.remove()};o.addEventListener("click",()=>{window.addEventListener("focus",d)}),o.addEventListener("change",()=>{window.removeEventListener("focus",d),o.remove(),n(o.multiple?Array.from(o.files):o.files[0])}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),gv={__proto__:null,default:fv},Ev=(...t)=>A(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),i[0].recursive=i[0].recursive||!1,new Promise((e,r)=>{let o=document.createElement("input");o.type="file",o.webkitdirectory=!0;let s=a=>{typeof n=="function"&&n(),e(a)},n=i[0].legacySetup&&i[0].legacySetup(s,()=>n(r),o);o.addEventListener("change",()=>{let a=Array.from(o.files);i[0].recursive?i[0].recursive&&i[0].skipDirectory&&(a=a.filter(d=>d.webkitRelativePath.split("/").every(l=>!i[0].skipDirectory({name:l,kind:"directory"})))):a=a.filter(d=>d.webkitRelativePath.split("/").length===2),s(a)}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),_v={__proto__:null,default:Ev},Tv=(e,...r)=>A(void 0,[e,...r],function*(i,t={}){Array.isArray(t)&&(t=t[0]);let o=document.createElement("a"),s=i;"body"in i&&(s=yield function(d,l){return A(this,null,function*(){let p=d.getReader(),f=new ReadableStream({start:R=>function C(){return A(this,null,function*(){return p.read().then(({done:N,value:k})=>{if(!N)return R.enqueue(k),C();R.close()})})}()}),g=new Response(f),y=yield g.blob();return p.releaseLock(),new Blob([y],{type:l})})}(i.body,i.headers.get("content-type"))),o.download=t.fileName||"Untitled",o.href=URL.createObjectURL(yield s);let n=()=>{typeof a=="function"&&a()},a=t.legacySetup&&t.legacySetup(n,()=>a(),o);return o.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(o.href),3e4),n()}),o.click(),null}),Iv={__proto__:null,default:Tv};var Df=class{constructor(t){this.name=t;m(this,"ready");m(this,"worker");m(this,"ports");m(this,"ids",1);m(this,"transactions",new Map);m(this,"log");m(this,"addTransaction",t=>(this.transactions.set(++this.ids,t),this.ids))}postMessage(t,e){var r;(r=this.worker)==null||r.postMessage(t,e)}create(t){return A(this,null,function*(){if(this.ready)return this.ready;t||(t=this.name),console.time(`createWorker_${t}`);let e=Fl(),r=new Worker(typeof e=="string"?e:yield e,{name:t});return this.worker=r,this.ready=new Promise((o,s)=>A(this,null,function*(){r.onmessage=({data:{id:n,type:a,payload:d}})=>{var l;if(n)(l=this.transactions.get(n))==null||l(d),this.transactions.delete(n);else switch(a){case"error":console.timeEnd(`createWorker_${t}`),console.warn("worker error:",d),s(d);break;case"ready":console.timeEnd(`createWorker_${t}`),o(this);break;case"updateAFSM":if(d.value){let p=typeof d.old=="string"?d.old:`${d.old.action}ing`,f=typeof d.value=="string"?d.value:`${d.value.action}ing`;console.log(Nd(),d.group,d.name,p,"\u{1F449}",f)}break;case"log":console.log(d);break;case"glog":window.dispatchEvent(new CustomEvent(a,{detail:d}));break}},r.postMessage({wasm:yield Bl(),flag:Wt},this.ports)}))})}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},wf=class{constructor(t,e,r){this.worker=t;m(this,"channel",new MessageChannel);m(this,"ready");this.ready=new Promise((o,s)=>{this.worker.postMessage({id:this.worker.addTransaction(o),payload:e},[this.channel.port2])}).then(o=>(o.err===0&&(this.worker.sessionCount++,this.channel.port1.onmessage=r),o))}postMessage(...t){this.channel.port1.postMessage(...t)}destroy(){--this.worker.sessionCount===0&&this.worker.destroy()}},Of=class i extends Df{constructor(){super("main");m(this,"switchValue",new Map);m(this,"extendChannel");m(this,"sessionCount",0)}setSwitchValue(e,r){var o;this.switchValue.set(e,r),(o=this.extendChannel)==null||o.port1.postMessage([e,r])}create(){return A(this,null,function*(){return this.ready?this.ready:(this.extendChannel=new MessageChannel,this.ports=[this.extendChannel.port2],yield Ut(i.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},Fo=new Of,$s,Sv=-1;function HT(i){return console.log(i),$s.push(i.slice()),$s.length>1e3&&$s.shift(),i}function WT(i){return A(this,null,function*(){switch(Sv){case 0:this.edpl.willDecodeAudio=HT;break;case 2:this.edpl.didEncodeAudio=HT;break}yield Fo.create(),U.emit(B.JOIN_SEND_CMD,{room:this});let t=new wf(Fo,i,o=>{let s=o.data;if(typeof s=="string")this.onWorkerEvent(s);else if(s==null)this.onWorkerEvent("client-banned",0),t.destroy();else{let{cmd:n,payload:a}=s;this.onWorkerEvent(n,a)}}),{err:e,data:r}=yield t.ready;if(typeof e=="number"){if(U.emit(B.JOIN_RECEIVED_CMD_RES,{room:this,code:e}),e===0)return Object.assign(this,r,{session:t});throw new ae({code:q.JOIN_ROOM_FAILED,extraCode:Number(e),message:He({key:$e.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:e,errorMsg:""}})})}else throw e})}Object.defineProperties(window,{useAINS:{set:Mf},useWt:{set:yv},enableDebug:{set(i){console.debug=i?BT:()=>{},Fo.setSwitchValue("enableDebug",i)}},useV2:{set:xf},dump:{value(){if($s||(console.warn("dump audio will be activated at next time join room"),$s=[]),!$s.length){console.warn("no audio data to dump,try it later");return}let i=[];return $s.forEach(t=>{i.push(new Uint16Array([t.length])),i.push(t)}),Nf(new Blob(i),{fileName:"audio dump hex",extensions:[".hex"]})}},dumpAudio:{value(i="audio",t=2e3){let e=[],r=new Promise(o=>{let s=new MessageChannel;Fo.extendChannel.port1.postMessage(["dump",i],[s.port1]),s.port2.onmessage=({data:n})=>{console.log(n),e.push(n),e.length>t&&(s.port2.onmessage=null,Fo.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return Nf(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:Wt.useHardDecoder="prefer-hardware";break;case!1:Wt.useHardDecoder="prefer-software";break;default:Wt.useHardDecoder="no-preference"}}}});function Mf(i){return A(this,null,function*(){Fo.setSwitchValue("useAINS",i)})}function xf(i){return A(this,null,function*(){Fo.setSwitchValue("useV2",i)})}function yv(i){return A(this,null,function*(){Fo.setSwitchValue("useWt",i)})}function GT(i){let t=new MediaStreamTrackGenerator({kind:"audio"});i.setInputMediaStreamTrack(t),i.player.setVolume(0),this.postMessage({cmd:"pullAudio",payload:{tinyId:i.tinyId,writable:t.writable}},[t.writable])}function jT(i){return A(this,null,function*(){var o;this._log.info("pull video",i);let t=Date.now(),e=0,r=new MessageChannel;this.postMessage({cmd:"pullVideo",payload:{mediaType:i.mediaType,tinyId:i.tinyId}},[r.port1]),(o=i.stat).framesReceived||(o.framesReceived=0),Ae(UT(r.port2),ze(ye(i,ue.INIT)),Pe(s=>{let{data:n,packetsReceived:a}=s;i.stat.packetsReceived=a,i.stat.framesReceived++,e++;let d=n[4]&31;if(e<=10){let p=Array.from(n.slice(0,10)).map(f=>f.toString(16).padStart(2,"0")).join(" ");this._log.info(`Frame ${e} - Size: ${n.length} bytes, Type: ${d}, Timestamp: ${Date.now()-t}ms First 10 bytes: ${p}`)}let l;switch(d){case 5:case 7:l="key";break;default:l="delta";break}i.isAvailable?i.decodeFrame({data:n.buffer,type:l,timestamp:(Date.now()-t)*1e3}):console.warn("track is not available")},()=>{},()=>{r.port2.postMessage(null),r.port2.close()}))})}var Hl=[];function zT(i){var d;let t=At();if(this.state!=="joined")throw new Error("Room is not joined");if(i.state==="publish")return;for(let l=0;l<=Hl.length;l++)if(!Hl[l]){Hl[l]=this,this.index=l;break}let e=i.profile;this._log.info("start push audio",this.index,e);let r=new MessageChannel,o=i.enableEncryptFrame?new MessageChannel:null;(d=this.session)==null||d.postMessage({cmd:"pushAudio",payload:Y({index:this.index},e)},o?[r.port2,o.port2]:[r.port2]),r.port1.onmessage=l=>{l.data==null||(typeof l.data=="number"?t.next(l.data):o&&o.port1.postMessage(Ee(Y({},l.data),{data:new Uint8Array(i.encodeFrame({data:l.data.data.buffer,timestamp:l.data.timestamp}).data)})))};let s=new MediaStream,n,a=l=>{let p=s.getAudioTracks()[0];p&&(n.disconnect(),s.removeTrack(p)),s.addTrack(l),this._log.info("push audio track:",l.readyState,l.getSettings().deviceId),n=qe("player").createMediaStreamSource(s),n.connect(Hc.worklet,0,this.index)};Ae(ye(i,"output-media-track-changed"),ze(ye(i,"ready")),Pe(a,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,n.disconnect(),Hl[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),Ae(t,Cs(l=>i.volume=l),qi(Qu(1e3)),Pe(()=>{i.volume=0})),a(i.outMediaTrack)}var P5=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var Pf=class{constructor(t,e,r,o){this.localTrack=t;this.type=e;this.config=r;this.port=o;m(this,"track");m(this,"label");m(this,"insertKeyFrame",!0);m(this,"session");m(this,"tsMap",new Map);t._log.info("create Video Encoder",r)}trans(t,e,r){return A(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0,frameEncoded:0,selectConfigIndex:0});e.signal.addEventListener("abort",()=>{o.encoder.close()});let s=0;return t.pipeThrough(new TransformStream({transform:(n,a)=>{o.encoder.state==="configured"&&(this.tsMap.set(s,Date.now()),this.encode(n),s++,a.enqueue(n))}}),e)})}encode(t){var e,r;(r=(e=this.session)==null?void 0:e.encoder)==null||r.encode(t,{keyFrame:this.insertKeyFrame}),this.insertKeyFrame=!1}start(t,e,r){return A(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0,frameEncoded:0,selectConfigIndex:0});this.session=o;let s=0;t.pipeTo(new WritableStream({write:n=>{o.encoder.state==="configured"&&(s<10&&this.localTrack.log.info(`capture ${this.label} track frame:`,s,Date.now(),n.timestamp,n.displayWidth,n.displayHeight),(n.displayWidth!==this.config.width||n.displayHeight!==this.config.height)&&(this.localTrack.log.info("resize video track frame:",n.displayWidth,n.displayHeight,this.config.width,this.config.height),this.configure({width:n.displayWidth,height:n.displayHeight},o)),this.tsMap.set(s,Date.now()),this.encode(n),s<10&&this.localTrack.log.info(`encode ${this.label} track frame:`,s),s++,n.close())}}),e).catch(n=>{this.localTrack.log.warn(n),o.encoder.close()})})}recreate(t,e){return A(this,null,function*(){let r=0,o=new VideoEncoder({output:s=>{let n=this.tsMap.get(r);if(this.tsMap.delete(s.timestamp),r<10&&(r===0&&e.recreateCount===0&&U.emit(B.SEND_FIRST_VIDEO_FRAME,{room:t}),this.localTrack.log.info(`encoded ${this.label} track frame:`,r,Date.now(),s.timestamp)),r++,e.frameEncoded=r,this.track.enabled===!1)return;let a=null;if(this.localTrack.enableEncodeFrame){a=new Uint8Array(s.byteLength),s.copyTo(a);let d=this.localTrack.encodeFrame({data:a.buffer},this.type===3);a=new Uint8Array(d.data)}a?(this.localTrack.stat.bytesSent+=a.length,this.port.postMessage({chunk:{type:s.type,timestamp:s.timestamp,data:a,duration:s.duration},timestamp:n},[a.buffer])):(this.localTrack.stat.bytesSent+=s.byteLength,this.port.postMessage({chunk:s,timestamp:n}))},error:s=>{this.localTrack.log.warn(s,this.config),e.recreateCount++,setTimeout(()=>this.recreate(t,e),100)}});return e.encoder=o,yield this.configure(null,e),e})}configure(t,e){return A(this,null,function*(){var r;t&&Object.assign(this.config,t),(r=e.encoder)==null||r.configure(this.config)})}close(){this.port.postMessage(null),this.port.close()}};function Wl(i,t){return A(this,null,function*(){let e=i.mediaType===2,r=e?"screen":"video",o={codec:"avc1.420028",latencyMode:"realtime",avc:{format:"annexb"},hardwareAcceleration:Wt.useHardEncoder,width:t.profile.width,height:t.profile.height,framerate:t.profile.frameRate,bitrate:t.profile.bitrate*1e3},s=new MessageChannel;this.postMessage({cmd:"pushVideo",payload:t},[s.port1]);let n=new Pf(i,t.type,o,s.port2);return s.port2.onmessage=a=>{if(a.data===260)n.insertKeyFrame=!0;else if(!e){let{bitrate:d}=a.data;Ia({configureBr:[a.data.bitrate,d]}),n.session&&n.configure({bitrate:d},n.session)}},this._log.info("start push",r,t),n})}function JT(i){return A(this,null,function*(){var p;let t=i.mediaType===2,e=t?"screen":"video",r={type:t?7:2,profile:i.profile,trackType:t?"screen":"camera",crypto:!!((p=i.manager)!=null&&p.encodePipeline[0])};!t&&i.outMediaTrack instanceof CanvasCaptureMediaStreamTrack&&(r.trackType="canvas");let{trackType:o}=r,{width:s,height:n}=i.outMediaTrack.getSettings();r.profile.width=s,r.profile.height=n;let a=yield Wl.call(this,i,r);this._log.info("VideoEncoder created",r);let d,l=f=>A(this,null,function*(){if(d==null||d.abort("track changed"),!f)return;d=new AbortController;let{width:g,height:y,displaySurface:R}=f.getSettings();g&&(a.config.width=g),y&&(a.config.height=y);let C=or.match(/Chrome\/(\d+)/);(C==null?void 0:C[1])==="114"&&R==="browser"&&delete a.config.hardwareAcceleration,this._log.info("push",e,"track:",f.readyState,f.getSettings());let N;if(typeof MediaStreamTrackProcessor!="undefined"&&!(f instanceof CanvasCaptureMediaStreamTrack))N=new MediaStreamTrackProcessor({track:f}).readable;else{let Q;N=new ReadableStream({start(H){i.on("render",Ie=>{if(i.player.mode!==0)try{H.enqueue(new VideoFrame(Ie,{timestamp:performance.now()*1e3}))}catch(Je){console.warn(Je)}})},pull(H){return A(this,null,function*(){if(i.player.mode===0&&zr()&&i.player.element)return new Promise(Ie=>{i.player.element.requestVideoFrameCallback((Je,W)=>{try{let Ue=new VideoFrame(i.player.element);H.enqueue(Ue)}catch(Ue){console.warn(Ue)}Ie()})})})}})}let k="small"in i&&i.small;return k?(this.smallEncoder||(this.smallEncoder=yield Wl.call(this,i,{profile:k,type:3,trackType:o})),this.smallEncoder.track=f,this.smallEncoder.label="small",N=yield this.smallEncoder.trans(N,d,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),a.track=f,a.label=e,a.start(N,d,this)});return Ae(ye(i,"output-media-track-changed"),ze(ye(i,"ready")),Pe(l,console.error,()=>{var f;this._log.info("stop push",e,r),d.abort("unpublish"),a.close(),(f=this.smallEncoder)==null||f.close()})),l(i.outMediaTrack)})}var Bo=class Bo extends ue{constructor(e){var r,o;super((o=(r=e.roomid)==null?void 0:r.toString())!=null?o:e.name,"volumeEvaluation");this.room=e;m(this,"enableInBackground",!1);m(this,"interval",400);e.on("joined",()=>{this.emit(Bo.INTERVALCHANGED,this.interval)}),Ae(ye(this,Bo.INTERVALCHANGED),ui(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):Ae(t_(s),Do(()=>[]))),Pe(s=>{s.forEach(n=>{this.room.remotePublishedUserMap.has(n.userId)&&(this.room.remotePublishedUserMap.get(n.userId).remoteAudioTrack.volume=n.volume)}),(!document.hidden||this.enableInBackground)&&this.state==ue.ON&&this.room.emit("audio-volume",s)}))}start(e,r){this.interval=e,this.enableInBackground=r,this.emit(Bo.INTERVALCHANGED,this.interval)}stop(){}};m(Bo,"INTERVALCHANGED","intervalChanged"),Z([et([ue.INIT,ue.OFF],ue.ON)],Bo.prototype,"start",1),Z([et([],ue.OFF)],Bo.prototype,"stop",1);var Gl=Bo;var $o=class $o extends Vl{constructor(e){super(e);m(this,"index",0);m(this,"session");m(this,"tinyid");m(this,"roomid");m(this,"openid");m(this,"socketid");m(this,"relayip");m(this,"clientip");m(this,"remotePublishedUserMap",new Map);m(this,"bussinessInfo");m(this,"token");m(this,"audioVolumeEvalution",new Gl(this));m(this,"enableAIVoice",Mf);m(this,"AbilityOption",{AVLimit:{EncVideoCodec:"H265",EncVideoWidth:0,EncVideoHeight:0,EncVideoBr:"0",EncVideoFps:0,EncAudioCodec:"opus",EncAudioFS:0,EncAudioCh:0,EncAudioBr:"0"},GeneralLimit:{CPULimit:{uint32_CPU_num:navigator.hardwareConcurrency||0,str_CPU_name:navigator.platform,uint32_CPU_maxfreq:0,model:"",uint32_total_memory:0},uint32_terminal_type:Gm(),uint32_device_type:0,str_os_verion:jm(),uint32_link_type:1,str_client_version:ht,uint32_net_type:es[si.getNetworkType()],ua:navigator.userAgent,version:""}});m(this,"joinAbortController",new AbortController);m(this,"smallAbortCtrl");m(this,"smallEncoder");e.tinyId&&(this.tinyId=e.tinyId,xf(!0)),this._log||(this._log=e.logger),this.bussinessInfo=e.bussinessInfo,e.encodedDataProcessingListener&&this.setEncodedDataProcessingListener(e.encodedDataProcessingListener)}replaceTrack(e){return A(this,null,function*(){})}getLogger(){return this._log}postMessage(e,r){this.session&&(e?typeof e=="string"?this.session.postMessage({cmd:e,payload:r}):this.session.postMessage(e,r):this.session.postMessage(null))}sendMessage(e,r){return new Promise((o,s)=>{this.state!="joined"&&s("join room first");let n=new MessageChannel;this.postMessage({cmd:e,payload:r},[n.port1]),n.port2.onmessageerror=s,n.port2.onmessage=a=>{n.port2.close(),o(a.data)}})}fromWorker(e,r){if(this.state!="joined")throw"join room first";return o=>{var n;let s=new MessageChannel;s.port2.onmessage=a=>{a.data?o.next(a.data):o.complete()},s.port2.onmessageerror=a=>o.error(a),o.defer(()=>{s.port2.postMessage(null),s.port2.close()}),(n=this.session)==null||n.postMessage({cmd:e,payload:r},[s.port1])}}switchRole(e){return A(this,null,function*(){if(e!==this.role)return this._log.info(`switchRole() => switch role to: ${e}`),e=="audience"&&this.unpublish(...this.localTracks),this.sendMessage("switchRole",e=="audience"?21:20).then(r=>{this.role=e})})}join(e,r,o){return A(this,null,function*(){var d,l,p;let s=si.getEnv(),n=pu(),a={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:o,params:e,proxy_wt:(d=this.proxy_wt)==null?void 0:d.replace("https://",""),proxy_ws:(l=this.proxy_ws)==null?void 0:l.replace("wss://",""),proxy_cloud:(p=this.scheduleResult.iceServers)!=null&&p.length?this.scheduleResult.iceServers[0].urls:[],proxy_unified:this.proxy_unified,domains:this.scheduleResult.domains,env:s,osName:yn(),browserInfo:pu(),tinyId:this.tinyId,joinReq:{useStrRoomid:!!this.useStringRoomId,roomid:String(e.roomId||e.strRoomId),sdkAppID:String(e.sdkAppId),userSig:e.userSig,privMapEncrypt:e.privateMapKey||"",privMap:"",pstnBizType:0,role:"user",jsSdkVersion:ht,browserVersion:n.browserName+n.browserVersion,closeLocalMedia:!0,trtcscene:r==="live"?2:1,trtcrole:e.role,bussinessInfo:e.businessInfo||this.bussinessInfo||"",isAuxUser:0,autoSubscribe:this.autoReceiveAudio&&this.autoReceiveVideo,AbilityOption:this.AbilityOption}};yield WT.call(this,a),console.log(this),Hc.playAudio(f=>this.postMessage({cmd:"setAudioWorkletPort"},[f])),this.checkDestroy()})}leave(){return A(this,null,function*(){this.remotePublishedUserMap.forEach(e=>{e.remoteAudioTrack.close(),e.remoteAuxiliaryTrack.close(),e.remoteVideoTrack.close()}),this.postMessage(null),this.remotePublishedUserMap.clear(),this.localTracks.forEach((e,r)=>r.unpublish()),this.localTracks.clear()})}getSignalInfo(){return{tinyId:this.tinyid,clientIp:this.clientip,signalIp:"",relayIp:this.relayip,relayInnerIp:"",relayPort:0}}enableAudioVolumeEvaluation(e=2e3,r=!1){e<=0?this.audioVolumeEvalution.stop():this.audioVolumeEvalution.start(e,r)}getLocalAudioStats(){return this.sendMessage("getLocalAudioStats")}getLocalVideoStats(){return this.sendMessage("getLocalVideoStats")}afterJoin(){return A(this,null,function*(){let e=ze(ye(this,"left"));Ae(r=>A(this,null,function*(){let o=new MessageChannel;o.port2.onmessage=s=>{s.data?r.next({data:s.data,port:o.port2}):r.complete()},o.port2.onmessageerror=s=>r.error(s),r.defer(()=>{o.port2.postMessage(null),o.port2.close()}),this.postMessage({cmd:"decodeAudio",payload:!!this.audioManager.decodePipeline[0]},[o.port1])}),e,Pe(({data:r,port:o})=>{let s=this.audioManager.decodePipeline[0]({frame:{data:r.data.buffer}});o.postMessage(Ee(Y({},r),{data:new Uint8Array(s.data)}),[s.data])}))})}onWorkerEvent(e,r){switch(e!=="network-quality"&&console.info(this.userId,"onWorkerEvent",e,JSON.stringify(r)),e){case B.RECEIVED_PUBLISHED_USER_LIST:U.emit(e,Y({room:this},r));return;case"1":if(r.userId===this.userId)return;this.emit("peer-join",r);return;case"2":this.emit("peer-leave",r);return;case"3":let o=new Ol(this,r);this.remotePublishedUserMap.set(r.userId,o),this.emit("remote-published",o);return;case"5":{let f=r,g=this.remotePublishedUserMap.get(f);g&&(g.remoteVideoTrack.close(),g.remoteAuxiliaryTrack.close(),g.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(f),this.emit("remote-unpublished",g))}return;case"banned":switch(r){case 8:this.emit("banned",{reason:"kick",message:""});return;case 2:case 6:case 4:this.emit("banned",{reason:"banned",message:""});return;case 7:case 5:this.emit("banned",{reason:"room_disband",message:""});return}break;case"6":{let{prevMuteState:f,muteState:g,flag:y}=r,R=this.remotePublishedUserMap.get(g.userId);if(!R){this.emit("remote-publish-state-changed",r);return}R.flag=y}U.emit(B.REMOTE_PUBLISH_STATE_CHANGED,Y({room:this},r)),this.emit("remote-publish-state-changed",r);return;case"7":this.localPublishFlag!==r.flag&&(this.localPublishFlag=r.flag,this.emit("local-publish-flag-changed",r.flag));return;case"network-quality":this.quality=Y({},r);let{uplinkLoss:s,uplinkRTT:n,uplinkInfo:a,downlinkInfo:d,msg_down_stream_info:l}=r,p={str_sdk_version:ht,uint64_datetime:Date.now(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyid},msg_device_info:{uint32_terminal_type:15,str_device_name:navigator.platform,str_os_version:"",uint32_net_type:es[an()]},msg_event_msg:i_(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:a,msg_down_stream_info:l};U.emit(B.HEARTBEAT_REPORT,{room:this,report:p}),this.emit("heartbeat-report",p),U.emit(B.NETWORK_QUALITY,{room:this,uplink:{rtt:n,loss:s},downlinks:d}),delete r.downlinkInfo;break;case"signal-connection-state-changed":U.emit(B.SIGNAL_CONNECTION_STATE_CHANGED,Y({room:this},r));return}this.emit(e,r)}sendStartPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("publishCdn",e)}sendStopPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("stopPublishCdn",e)}sendStartMixTranscode(e){return this.sendMessage("startMcuMix",e)}sendStopMixTranscode(e){return this.sendMessage("stopMcuMix",e)}publish(e){return A(this,null,function*(){switch(yield this.sendMessage("publish",e.mediaType).then(r=>r.err!==0?Promise.reject(r.err):r),Ft(e,e).add("mute",()=>{this.postMessage("mute",{mediaType:e.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})}).add("unmute",()=>{this.postMessage("unmute",{mediaType:e.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})}),e.mediaType){case 1:yield Hc.init(),zT.call(this,e);break;default:yield JT.call(this,e)}e.muted&&this.postMessage("mute",{mediaType:e.mediaType,srctinyid:this.tinyid,userId:this.openid,remove:!0})})}unpublish(e){return A(this,null,function*(){St(e)})}subscribe(...e){return A(this,null,function*(){let r=e.reduce((f,g)=>g.mediaType|f,0),{userId:o,tinyId:s,streamType:n}=e[0],a=this.remotePublishedUserMap.get(o),d=Y({},a.subscribeState),l=Object.assign(new Fa,d);l.mediaType|=r,U.emit(B.SUBSCRIBE_START,{room:this,streamType:n,remotePublishedUser:a,subscribeState:l});let p=yield this.sendMessage("subscribe",{mediaType:l.mediaType,userId:o,srctinyid:s,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter(f=>l.mediaType&f).map(f=>({mediaType:f,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",p),yield Promise.all(e.filter(f=>!f.isSubscribed).map(f=>{switch(f.mediaType){case 1:return GT.call(this,f);default:return jT.call(this,f)}})),U.emit(B.SUBSCRIBE_SUCCESS,{room:this,streamType:n,remotePublishedUser:a})})}unsubscribe(...e){return A(this,null,function*(){let r=0;for(let o of e)r|=o.mediaType;if(e.length){let{userId:o,streamType:s,tinyId:n}=e[0];yield this.sendMessage("unSubscribe",{mediaType:r,srctinyid:n,userId:o});for(let a of e)a.unsubscribe();U.emit(B.UNSUBSCRIBE_SUCCESS,{room:this,streamType:s,remotePublishedUser:this.remotePublishedUserMap.get(o)})}})}enableSmall(e){return A(this,null,function*(){var r;if(e){if(this.videoManager.smallTrack){let o=this.videoManager.cameraTrack;this.smallEncoder=yield Wl.call(this,o,{profile:o.small,type:3,trackType:"camera"});let s=new MediaStreamTrackProcessor({track:this.videoManager.smallTrack}).readable;this.smallEncoder.track=this.videoManager.smallTrack,this.smallEncoder.label="small",this.smallAbortCtrl=new AbortController,this.smallEncoder.start(s,this.smallAbortCtrl,this),this._log.info("push small")}}else(r=this.smallAbortCtrl)==null||r.abort("stop"),this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder)})}changeType(e,r){let o=this.remotePublishedUserMap.get(r.userId);if(!o)return;let s=e?8:4;if(o.remoteVideoTrack.mediaType===s)return;let n={srctinyid:o.tinyId,mediaType:s,userId:r.userId,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8].filter(a=>s&a).map(a=>({mediaType:a,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}};o.remoteVideoTrack.mediaType=n.mediaType,this.postMessage("changetype",n)}destroy(){this.isDestroyed||(super.destroy(),this.isDestroyed=!0,this.joinAbortController.abort("destroy"))}};Z([Co($o.prototype.afterJoin),et(["left",ue.INIT],"joined"),vT()],$o.prototype,"join",1),Z([et("joined","left",{ignoreError:!0}),CT()],$o.prototype,"leave",1),Z([xu(e=>e.mediaType),NT()],$o.prototype,"publish",1),Z([xu(e=>e.mediaType),DT()],$o.prototype,"unpublish",1),Z([xu((...e)=>e[0].userId),wT()],$o.prototype,"subscribe",1);var jl=$o;Qn.frameWorkType=37;Qn.create=function(i){let t=Qn._create.call(this,jl,i);return t._use(Kp,i==null?void 0:i.assetsPath),i!=null&&i.assetsPath&&(Wt.assetsPath=i==null?void 0:i.assetsPath),console.log("trtc wasm sdk:",ht,"created",Wt),t};Object.assign(Qn.prototype,{_setCurrentSpeaker(i){let t=qe("player");return t!=null&&t.setSinkId?t.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return A(this,null,function*(){return this.startPlugin(Kp.Name,{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.640028",hardwareAcceleration:"prefer-software",optimizeForLatency:!0},fallback:"wasm"}),new Promise((e,r)=>{Ae(ye(i,"decode-downgrade-state-changed"),er(o=>o.state==="STARTED"),Qr(1),Cp(1e4),ze(ye(i,ue.INIT)),Pe(e,r))})})}});yh(37);var n6=Qn;export{n6 as default};