trtc-sdk-v5 5.13.0-wasm.5 → 5.13.0-wasm.6

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 h_=Object.create;var jn=Object.defineProperty,p_=Object.defineProperties,Bp=Object.getOwnPropertyDescriptor,f_=Object.getOwnPropertyDescriptors,g_=Object.getOwnPropertyNames,$p=Object.getOwnPropertySymbols,Hp=Object.getPrototypeOf,Wp=Object.prototype.hasOwnProperty,E_=Object.prototype.propertyIsEnumerable,__=Reflect.get;var to=Math.pow,yl=(i,t,e)=>t in i?jn(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,X=(i,t)=>{for(var e in t||(t={}))Wp.call(t,e)&&yl(i,e,t[e]);if($p)for(var e of $p(t))E_.call(t,e)&&yl(i,e,t[e]);return i},ge=(i,t)=>p_(i,f_(t));var qn=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),hi=(i,t)=>{for(var e in t)jn(i,e,{get:t[e],enumerable:!0})},T_=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of g_(t))!Wp.call(i,o)&&o!==e&&jn(i,o,{get:()=>t[o],enumerable:!(r=Bp(t,o))||r.enumerable});return i};var pi=(i,t,e)=>(e=i!=null?h_(Hp(i)):{},T_(t||!i||!i.__esModule?jn(e,"default",{value:i,enumerable:!0}):e,i));var ee=(i,t,e,r)=>{for(var o=r>1?void 0:r?Bp(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&&jn(t,e,o),o};var l=(i,t,e)=>yl(i,typeof t!="symbol"?t+"":t,e);var Ft=(i,t,e)=>__(Hp(i),e,t);var y=(i,t,e)=>new Promise((r,o)=>{var s=u=>{try{a(e.next(u))}catch(m){o(m)}},n=u=>{try{a(e.throw(u))}catch(m){o(m)}},a=u=>u.done?r(u.value):Promise.resolve(u.value).then(s,n);a((e=e.apply(i,t)).next())});var bi=qn((fb,hm)=>{"use strict";var OT=Object.prototype.hasOwnProperty,jt="~";function Sa(){}Object.create&&(Sa.prototype=Object.create(null),new Sa().__proto__||(jt=!1));function xT(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function Of(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new xT(e,r||i,o),n=jt?jt+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 yd(i,t){--i._eventsCount===0?i._events=new Sa:delete i._events[t]}function Wt(){this._events=new Sa,this._eventsCount=0}Wt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)OT.call(e,r)&&t.push(jt?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Wt.prototype.listeners=function(t){var e=jt?jt+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};Wt.prototype.listenerCount=function(t){var e=jt?jt+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Wt.prototype.emit=function(t,e,r,o,s,n){var a=jt?jt+t:t;if(!this._events[a])return!1;var u=this._events[a],m=arguments.length,p,g;if(u.fn){switch(u.once&&this.removeListener(t,u.fn,void 0,!0),m){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,e),!0;case 3:return u.fn.call(u.context,e,r),!0;case 4:return u.fn.call(u.context,e,r,o),!0;case 5:return u.fn.call(u.context,e,r,o,s),!0;case 6:return u.fn.call(u.context,e,r,o,s,n),!0}for(g=1,p=new Array(m-1);g<m;g++)p[g-1]=arguments[g];u.fn.apply(u.context,p)}else{var _=u.length,A;for(g=0;g<_;g++)switch(u[g].once&&this.removeListener(t,u[g].fn,void 0,!0),m){case 1:u[g].fn.call(u[g].context);break;case 2:u[g].fn.call(u[g].context,e);break;case 3:u[g].fn.call(u[g].context,e,r);break;case 4:u[g].fn.call(u[g].context,e,r,o);break;default:if(!p)for(A=1,p=new Array(m-1);A<m;A++)p[A-1]=arguments[A];u[g].fn.apply(u[g].context,p)}}return!0};Wt.prototype.on=function(t,e,r){return Of(this,t,e,r,!1)};Wt.prototype.once=function(t,e,r){return Of(this,t,e,r,!0)};Wt.prototype.removeListener=function(t,e,r,o){var s=jt?jt+t:t;if(!this._events[s])return this;if(!e)return yd(this,s),this;var n=this._events[s];if(n.fn)n.fn===e&&(!o||n.once)&&(!r||n.context===r)&&yd(this,s);else{for(var a=0,u=[],m=n.length;a<m;a++)(n[a].fn!==e||o&&!n[a].once||r&&n[a].context!==r)&&u.push(n[a]);u.length?this._events[s]=u.length===1?u[0]:u:yd(this,s)}return this};Wt.prototype.removeAllListeners=function(t){var e;return t?(e=jt?jt+t:t,this._events[e]&&yd(this,e)):(this._events=new Sa,this._eventsCount=0),this};Wt.prototype.off=Wt.prototype.removeListener;Wt.prototype.addListener=Wt.prototype.on;Wt.prefixed=jt;Wt.EventEmitter=Wt;typeof hm!="undefined"&&(hm.exports=Wt)});var Dd=qn((Zb,jf)=>{"use strict";var Gf=jf.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(Gf).forEach(function(i){var t=Gf[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var Jf=qn(Di=>{"use strict";var cn=function(i){return String(Number(i))===i?Number(i):i},BT=function(i,t,e,r){if(r&&!e)t[r]=cn(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=cn(i[o+1]))},HT=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;BT(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},qf=Dd(),WT=RegExp.prototype.test.bind(/^([a-z])=(.*)/);Di.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(WT).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<(qf[s]||[]).length;a+=1){var u=qf[s][a];if(u.reg.test(n))return HT(u,r,n)}}),t.media=e,t};var zf=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=cn(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};Di.parseParams=function(i){return i.split(/;\s?/).reduce(zf,{})};Di.parseFmtpConfig=Di.parseParams;Di.parsePayloads=function(i){return i.toString().split(" ").map(Number)};Di.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(cn),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};Di.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(zf,{})})};Di.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=cn(e):(r=cn(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var Qf=qn((eR,Xf)=>{"use strict";var wm=Dd(),GT=/%[sdv%]/g,jT=function(i){var t=1,e=arguments,r=e.length;return i.replace(GT,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""}})},wa=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 jT.apply(null,o)},qT=["v","o","s","i","u","e","p","c","b","t","r","z","a"],zT=["i","c","b","a"];Xf.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||qT,r=t.innerOrder||zT,o=[];return e.forEach(function(s){wm[s].forEach(function(n){n.name in i&&i[n.name]!=null?o.push(wa(s,n,i)):n.push in i&&i[n.push]!=null&&i[n.push].forEach(function(a){o.push(wa(s,n,a))})})}),i.media.forEach(function(s){o.push(wa("m",wm.m[0],s)),r.forEach(function(n){wm[n].forEach(function(a){a.name in s&&s[a.name]!=null?o.push(wa(n,a,s)):a.push in s&&s[a.push]!=null&&s[a.push].forEach(function(u){o.push(wa(n,a,u))})})})}),o.join(`\r
1
+ var f_=Object.create;var zn=Object.defineProperty,g_=Object.defineProperties,Hp=Object.getOwnPropertyDescriptor,E_=Object.getOwnPropertyDescriptors,__=Object.getOwnPropertyNames,Bp=Object.getOwnPropertySymbols,Wp=Object.getPrototypeOf,Gp=Object.prototype.hasOwnProperty,T_=Object.prototype.propertyIsEnumerable,I_=Reflect.get;var to=Math.pow,yl=(i,t,e)=>t in i?zn(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,X=(i,t)=>{for(var e in t||(t={}))Gp.call(t,e)&&yl(i,e,t[e]);if(Bp)for(var e of Bp(t))T_.call(t,e)&&yl(i,e,t[e]);return i},ge=(i,t)=>g_(i,E_(t));var Jn=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),hi=(i,t)=>{for(var e in t)zn(i,e,{get:t[e],enumerable:!0})},S_=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of __(t))!Gp.call(i,o)&&o!==e&&zn(i,o,{get:()=>t[o],enumerable:!(r=Hp(t,o))||r.enumerable});return i};var pi=(i,t,e)=>(e=i!=null?f_(Wp(i)):{},S_(t||!i||!i.__esModule?zn(e,"default",{value:i,enumerable:!0}):e,i));var te=(i,t,e,r)=>{for(var o=r>1?void 0:r?Hp(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&&zn(t,e,o),o};var l=(i,t,e)=>yl(i,typeof t!="symbol"?t+"":t,e);var Ft=(i,t,e)=>I_(Wp(i),e,t);var y=(i,t,e)=>new Promise((r,o)=>{var s=u=>{try{a(e.next(u))}catch(m){o(m)}},n=u=>{try{a(e.throw(u))}catch(m){o(m)}},a=u=>u.done?r(u.value):Promise.resolve(u.value).then(s,n);a((e=e.apply(i,t)).next())});var bi=Jn((gb,hm)=>{"use strict";var PT=Object.prototype.hasOwnProperty,jt="~";function Aa(){}Object.create&&(Aa.prototype=Object.create(null),new Aa().__proto__||(jt=!1));function kT(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function xf(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new kT(e,r||i,o),n=jt?jt+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 Rd(i,t){--i._eventsCount===0?i._events=new Aa:delete i._events[t]}function Wt(){this._events=new Aa,this._eventsCount=0}Wt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)PT.call(e,r)&&t.push(jt?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Wt.prototype.listeners=function(t){var e=jt?jt+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};Wt.prototype.listenerCount=function(t){var e=jt?jt+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Wt.prototype.emit=function(t,e,r,o,s,n){var a=jt?jt+t:t;if(!this._events[a])return!1;var u=this._events[a],m=arguments.length,p,g;if(u.fn){switch(u.once&&this.removeListener(t,u.fn,void 0,!0),m){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,e),!0;case 3:return u.fn.call(u.context,e,r),!0;case 4:return u.fn.call(u.context,e,r,o),!0;case 5:return u.fn.call(u.context,e,r,o,s),!0;case 6:return u.fn.call(u.context,e,r,o,s,n),!0}for(g=1,p=new Array(m-1);g<m;g++)p[g-1]=arguments[g];u.fn.apply(u.context,p)}else{var _=u.length,A;for(g=0;g<_;g++)switch(u[g].once&&this.removeListener(t,u[g].fn,void 0,!0),m){case 1:u[g].fn.call(u[g].context);break;case 2:u[g].fn.call(u[g].context,e);break;case 3:u[g].fn.call(u[g].context,e,r);break;case 4:u[g].fn.call(u[g].context,e,r,o);break;default:if(!p)for(A=1,p=new Array(m-1);A<m;A++)p[A-1]=arguments[A];u[g].fn.apply(u[g].context,p)}}return!0};Wt.prototype.on=function(t,e,r){return xf(this,t,e,r,!1)};Wt.prototype.once=function(t,e,r){return xf(this,t,e,r,!0)};Wt.prototype.removeListener=function(t,e,r,o){var s=jt?jt+t:t;if(!this._events[s])return this;if(!e)return Rd(this,s),this;var n=this._events[s];if(n.fn)n.fn===e&&(!o||n.once)&&(!r||n.context===r)&&Rd(this,s);else{for(var a=0,u=[],m=n.length;a<m;a++)(n[a].fn!==e||o&&!n[a].once||r&&n[a].context!==r)&&u.push(n[a]);u.length?this._events[s]=u.length===1?u[0]:u:Rd(this,s)}return this};Wt.prototype.removeAllListeners=function(t){var e;return t?(e=jt?jt+t:t,this._events[e]&&Rd(this,e)):(this._events=new Aa,this._eventsCount=0),this};Wt.prototype.off=Wt.prototype.removeListener;Wt.prototype.addListener=Wt.prototype.on;Wt.prefixed=jt;Wt.EventEmitter=Wt;typeof hm!="undefined"&&(hm.exports=Wt)});var Od=Jn((Kb,qf)=>{"use strict";var jf=qf.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(jf).forEach(function(i){var t=jf[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var Xf=Jn(Di=>{"use strict";var dn=function(i){return String(Number(i))===i?Number(i):i},WT=function(i,t,e,r){if(r&&!e)t[r]=dn(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=dn(i[o+1]))},GT=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;WT(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},zf=Od(),jT=RegExp.prototype.test.bind(/^([a-z])=(.*)/);Di.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(jT).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<(zf[s]||[]).length;a+=1){var u=zf[s][a];if(u.reg.test(n))return GT(u,r,n)}}),t.media=e,t};var Jf=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=dn(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};Di.parseParams=function(i){return i.split(/;\s?/).reduce(Jf,{})};Di.parseFmtpConfig=Di.parseParams;Di.parsePayloads=function(i){return i.toString().split(" ").map(Number)};Di.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(dn),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};Di.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(Jf,{})})};Di.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=dn(e):(r=dn(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var Yf=Jn((tR,Qf)=>{"use strict";var Mm=Od(),qT=/%[sdv%]/g,zT=function(i){var t=1,e=arguments,r=e.length;return i.replace(qT,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""}})},Oa=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 zT.apply(null,o)},JT=["v","o","s","i","u","e","p","c","b","t","r","z","a"],XT=["i","c","b","a"];Qf.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||JT,r=t.innerOrder||XT,o=[];return e.forEach(function(s){Mm[s].forEach(function(n){n.name in i&&i[n.name]!=null?o.push(Oa(s,n,i)):n.push in i&&i[n.push]!=null&&i[n.push].forEach(function(a){o.push(Oa(s,n,a))})})}),i.media.forEach(function(s){o.push(Oa("m",Mm.m[0],s)),r.forEach(function(n){Mm[n].forEach(function(a){a.name in s&&s[a.name]!=null?o.push(Oa(n,a,s)):a.push in s&&s[a.push]!=null&&s[a.push].forEach(function(u){o.push(Oa(n,a,u))})})})}),o.join(`\r
2
2
  `)+`\r
3
- `}});var Yf=qn(ei=>{"use strict";var rs=Jf(),JT=Qf(),XT=Dd();ei.grammar=XT;ei.write=JT;ei.parse=rs.parse;ei.parseParams=rs.parseParams;ei.parseFmtpConfig=rs.parseFmtpConfig;ei.parsePayloads=rs.parsePayloads;ei.parseRemoteCandidates=rs.parseRemoteCandidates;ei.parseImageAttributes=rs.parseImageAttributes;ei.parseSimulcastStreamList=rs.parseSimulcastStreamList});var Gp=(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))(Gp||{}),q=Gp;var I_=function(i){for(let t in q)if(q[t]===i)return t;return"UNKNOWN"},zn=class extends Error{constructor({name:e="RtcError",message:r,code:o=q.UNKNOWN,extraCode:s=0,constraint:n}){let a=`<${I_(o)} 0x${o.toString(16)}>`,u=`${r}${n?` constraint: ${n}`:""}${r!=null&&r.includes(a)?"":` ${a}`}`;super(u);l(this,"code");l(this,"extraCode");l(this,"message");l(this,"originMessage");l(this,"name");l(this,"constraint");this.code=o,this.extraCode=s,this.name=e,this.message=u,this.constraint=n,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},de=zn;var jp=0;var qp=function(){return jp},fi=function(){return Date.now()+jp},Vc=function(){let i=new Date;return i.setTime(fi()),i.toLocaleString()},Ps=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 Xr={};hi(Xr,{REPORT_TYPE:()=>zs,buildSSOPackage:()=>Ii,bytes2ms:()=>of,calculateScaleResolutionDownNumber:()=>rd,concatArrayBuffers:()=>gf,convertObjectNumberToInt:()=>na,copyProperties:()=>rf,deepClone:()=>Wo,deepCloneBasic:()=>Qc,deepMerge:()=>Nr,delay:()=>aa,fibonacci:()=>Go,formatedTime:()=>Zc,getConstructorName:()=>Hs,getContainerFromElement:()=>hf,getEnv:()=>Kp,getFirst16Bits:()=>_f,getInternalVersion:()=>lf,getLast16Bits:()=>Ef,getLoggerUrl:()=>Ti,getMediaStreamTrackInfo:()=>td,getMuteStateFromFlag:()=>qo,getNetworkType:()=>ra,getNumNetworkType:()=>Yc,getReconnectionTimeout:()=>nf,getStringByteLength:()=>pf,getTurnServer:()=>mf,getUint32Version:()=>Kc,getValueType:()=>ct,getViewListFromView:()=>js,glog:()=>ia,ipv4ToUint32:()=>Gs,isArray:()=>st,isAudioWorkletSupported:()=>df,isBoolean:()=>Qe,isConstructor:()=>jo,isEmpty:()=>Ws,isFunction:()=>Ge,isLangChinese:()=>Cr,isMediaStreamTrack:()=>af,isNumber:()=>ke,isObject:()=>ir,isOverseaSdkAppId:()=>_i,isPlainObject:()=>Bt,isPortrait:()=>Gl,isPromise:()=>io,isRemoteTrack:()=>cf,isRotate90Or270:()=>or,isSetSinkIdSupported:()=>uf,isString:()=>Ne,isUndefined:()=>x,loadImage:()=>qs,loadVideo:()=>ff,ms2bytes:()=>sf,ms2samples:()=>Wl,normalizeUrl:()=>zo,performanceNow:()=>_e,promiseAny:()=>oa,samples2ms:()=>Hl,setNetworkType:()=>tf,stringify:()=>mr,stringifyIncludeValue:()=>sa,throttlePromise:()=>ed});var Ol={};hi(Ol,{AUDIO_MUTE_BIT:()=>Wc,AUDIO_STAT_BIT:()=>Us,AUX_STAT_BIT:()=>Yn,AUX_STREAM_MSID:()=>O_,BACKEND_ENV:()=>Hc,BASE_DOC_URL:()=>qr,BASE_HOST:()=>zp,CAPABILITIES_KEYS:()=>qc,CLASS_NAME:()=>rT,CLOUD_CONSOLE_URL:()=>b_,CROSS_ROOM_BIT:()=>w_,DATA_FREEZE_TIMING:()=>jc,DOC_URL:()=>R_,DTLS_STATE_UNKNOWN:()=>H_,ENV_NAME:()=>gi,EXCHANGE_SDP_TIMEOUT:()=>J_,IS_WORKER:()=>ks,IS_WORKLET:()=>Jn,KIBANA_EVENT:()=>lr,LOCAL_STREAM_PUBLISH_STATE:()=>Xp,LOGGER_CMD_TYPE:()=>ro,LOGGER_DOMAIN:()=>Rl,LOGGER_DOMAIN_OVERSEA:()=>vl,LOG_LEVEL:()=>Rr,LOG_LEVEL_NAME:()=>oT,MAIN_STREAM_MSID:()=>M_,MAX_RTT:()=>Kn,MICROPHONE_COMMUNICATIONS:()=>iT,MICROPHONE_DEFAULT:()=>Ho,MUTE_ALL_BIT:()=>D_,NAME:()=>M,NETWORK_TYPE:()=>$o,NOT_SUPPORTED_H264:()=>Q_,PAUSED_RETRY_COUNT:()=>Bo,PEERCONNECTION_CONNECTING_TIMEOUT:()=>eT,PEER_CONNECTION_STATE:()=>W_,PEER_LEAVE_REASON:()=>Qp,RECOVER_CAPTURE_INTERVAL:()=>Vs,REMOTE_STREAM_TYPE_AUX:()=>P_,REMOTE_STREAM_TYPE_MAIN:()=>x_,RENDER_FREEZE_TIMING:()=>Y_,SCHEDULE_DOMAIN:()=>Ei,SCHEDULE_TIMEOUT:()=>tT,SDP_SEMANTICS_PLAN_B:()=>X_,SDP_SEMANTICS_UNIFIED_PLAN:()=>Ml,SECOND_HOST:()=>y_,SIGNAL_PING_PONG_INTERVAL:()=>C_,SIGNAL_PING_TIMEOUT:()=>v_,SIGNAL_RECONNECTION_COUNT:()=>j_,SMALL_STAT_BIT:()=>Dl,SPEAKER_DEFAULT:()=>Zn,STORAGE_EXPIRES_TIME:()=>Fc,STREAM_TYPE_BIG:()=>Z_,STREAM_TYPE_SMALL:()=>K_,SUBSCRIBE_SMALL_RETRY_COUNT:()=>sT,SYNC_USER_LIST_INTERVAL:()=>q_,Scene:()=>zr,THIRD_HOST:()=>A_,TRANSPORT_DIRECTION:()=>N_,TRTC_ERROR_ASSISTANCE:()=>Cl,TRTC_QUALITY_BAD:()=>F_,TRTC_QUALITY_DISCONNECTED:()=>B_,TRTC_QUALITY_EXCELLENT:()=>L_,TRTC_QUALITY_GOOD:()=>U_,TRTC_QUALITY_POOR:()=>V_,TRTC_QUALITY_UNKNOWN:()=>k_,TRTC_QUALITY_VERY_BAD:()=>$_,UPDATE_OFFER_TIMEOUT:()=>z_,VIDEO_MUTE_BIT:()=>Gc,VIDEO_STAT_BIT:()=>Ls,audioProfileMap:()=>$c,defaultBigVideoProfile:()=>Qn,defaultSmallVideoProfile:()=>Nl,getRetryCount:()=>G_,getScriptDir:()=>S_,innerVersion:()=>Al,loggerProxy:()=>Xn,screenProfileMap:()=>Bc,setLoggerProxy:()=>Fo,setRetryCount:()=>wl,setVersion:()=>bl,version:()=>at,videoProfileMap:()=>vr});var Al="4.15.00.1600",at="5.0.0";function bl(i){at=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));Al=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var ks=typeof importScripts!="undefined",Jn=typeof registerProcessor!="undefined",S_=()=>{let i=ks?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},Xn="",Fo=i=>Xn=i,zp="web.sdk.qcloud.com",y_="web.sdk.tencent.cn",A_="web.sdk.cloud.tencent.cn",b_="https://console.cloud.tencent.com/trtc",qr=`https://${zp}/trtc/webrtc/v5/doc`,R_=`${qr}/zh-cn/`,Rl="https://yun.tim.qq.com",vl="https://apisgp.my-imcloud.com",Cl="trtc_error_assistance",ro={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},gi={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},Rr=(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))(Rr||{}),v_=18e3,C_=2e3,$o={unknown:0,wifi:1,"3g":2,"2g":3,"4g":4,wired:5,"5g":6},Fc=7*24*3600*1e3,$c={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}},Qn=vr["480p_2"],Nl=vr["120p_2"],Bc={"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"},N_={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},Hc={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},zr=(e=>(e.LIVE="live",e.RTC="rtc",e))(zr||{}),Ls=1,Dl=2,Yn=4,Us=8,Wc=64,Gc=16,D_=112,w_=128,M_="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",O_="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",x_=M.MAIN,P_=M.AUXILIARY,k_=0,L_=1,U_=2,V_=3,F_=4,$_=5,B_=6,H_="unknown",W_={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},Jp=1/0;function wl(i){Jp=i}function G_(){return Jp}var j_=30,lr={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"},q_=1e4,z_=1e4,J_=1e4,Ml="unified-plan",X_="plan-b",Q_=1028,Xp=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(Xp||{}),jc=500,Y_=1e3,Z_=M.BIG,K_=M.SMALL,eT=10*1e3,Ei={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"},tT=2e3,rT={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},Bo=5,Ho="default",Zn=Ho,iT="communications",oT=Object.keys(Rr),Qp=["normal leave","timeout leave","kick","role change"],sT=10,Vs=2e3,qc=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],Kn=10*1e3;var nT=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{m(r.next(p))}catch(g){n(g)}}function u(p){try{m(r.throw(p))}catch(g){n(g)}}function m(p){p.done?s(p.value):o(p.value).then(a,u)}m((r=r.apply(i,t||[])).next())})},xl=Symbol(32),Pl=Symbol(16),kl=Symbol(8),Jr=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 nT(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(xl)}readU16(){return this.read(Pl)}readU8(){return this.read(kl)}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===xl){if(o(4))return;t=e[0]<<24|e[1]<<16|e[2]<<8|e[3]}else if(this.need===Pl){if(o(2))return;t=e[0]<<8|e[1]}else if(this.need===kl){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}};Jr.U32=xl;Jr.U16=Pl;Jr.U8=kl;var aT=128,cT=127,kA=~cT,LA=Math.pow(2,31);function Ll(i){let t=new Jr;for(;i>=128;)t.malloc(1)[0]=i&255|aT,i>>>=7;return t.malloc(1)[0]=i&255,t.buffer||new Uint8Array(0)}function zc(i,t=0){let e=new Jr,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(Ll(i));break;case"string":e.malloc(1)[0]=r|2;let s=new TextEncoder().encode(i);e.write(Ll(s.length));let n=e.malloc(s.length);for(let u=0;u<s.length;u++)n[u]=s[u];break;case"object":let a=new Jr;if(Array.isArray(i))for(let u=0;u<i.length;u++){let m=zc(i[u],u+1);m&&a.write(m)}else{let u=1;for(let m in i){let p=zc(i[m],u++);p&&a.write(p)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=r|2,a.buffer&&(e.write(Ll(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var ea=class{constructor(){l(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 Ul(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 $t(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function Vl(i,t){return i[t]}function Fs(i,t,e){return new TextDecoder().decode(dT(i,t,e))}function dT(i,t,e){return i.slice(t,t+e)}var Fl=0,Jc=2654435769,Xc=16,Bl=4,$s=2,Bs=7;function uT(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 Yp(i,t){let e=new ea,r=uT(t,i,Fl);Fl=Fl+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 ea;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 Z=4;Z<16;Z++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let u=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(u.length+4),u.length&&n.writeBytes(u);let m=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(m.length+4),m.length&&n.writeBytes(m);let p=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(p.length+4),p.length&&n.writeBytes(p);let g=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(g.length+4),g.length&&n.writeBytes(g);let _=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(_.length+2),_.length&&n.writeBytes(_);let A=n.length;n.data[0]=A>>>24&255,n.data[1]=A>>>16&255,n.data[2]=A>>>8&255,n.data[3]=A&255,Ne(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let C=new Uint8Array(n.data),N=null;r.encryption===1?N=new TextEncoder().encode(r.uin):r.encryption===2&&(N=new Uint8Array(16)),N&&(C=lT(C,N)),e.writeBytes(C);let D=new Uint8Array(e.data),O=D.length;return D[0]=O>>>24&255,D[1]=O>>>16&255,D[2]=O>>>8&255,D[3]=O&255,D}function lT(i,t){let e=i.length,o=(e+1+$s+Bs)%8;o&&(o=8-o);let s=e+1+$s+Bs+o,n=new Uint8Array(s),a=0,u=new Uint8Array(8),m=new Uint8Array(8),p=new Uint8Array(8),g=0;u[0]=Math.floor(Math.random()*256)&248|o,g=1;for(let A=0;A<o;A++)u[g]=Math.floor(Math.random()*256)&255,g+=1;for(let A=0;A<$s;)if(g<8&&(u[g]=Math.floor(Math.random()*256)&255,g+=1,A+=1),g===8){$l(u,t,m,p,n,a),a+=8,g=0;for(let C=0;C<8;C++)p[C]=n[a-8+C]}let _=0;for(;_<e;)if(g<8&&(u[g]=i[_],g+=1,_+=1),g===8){$l(u,t,m,p,n,a),a+=8,g=0;for(let A=0;A<8;A++)p[A]=n[a-8+A]}for(let A=0;A<Bs;)if(g<8&&(u[g]=0,g+=1,A+=1),g===8){$l(u,t,m,p,n,a),a+=8,g=0;for(let C=0;C<8;C++)p[C]=n[a-8+C]}return n}function $l(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];mT(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 mT(i,t,e,r){let o=$t(i,0),s=$t(i,4),n=[];for(let u=0;u<4;u++)n[u]=$t(t,u*4);let a=0;for(let u=0;u<Xc;u++)a+=Jc,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;Ul(e,o,r),Ul(e,s,r+4)}var Kp=function(){return new URLSearchParams(location.search).get("trtc_env")||""},_i=i=>Number(i)<14e8,Ti=function(i,t){let e;Xn?e=Xn:e=_i(i)?vl:Rl;let r=Math.floor(Math.random()*to(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},ta="unknown";function ra(){if(ta!=="unknown")return ta;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&&(ta=ef(r,o)),ta}function ef(i,t){if($o[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function tf(i){ta=ef(i)}function Yc(){return $o[ra()]}function rf(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 of(i,t=48e3){return Hl(i/4,t)}function Hl(i,t=48e3){return i*1e3/t}function sf(i,t=48e3){return Wl(i,t)*4}function Wl(i,t=48e3){return i*t/1e3}var ia=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},Cr=()=>{let i=navigator.language;return i=i.substring(0,2),i==="zh"},Bt=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 Go(i,t=1,e=1){return i<=1?e:Go(i-1,e,t+e)}function nf(i){return i>8?30*1e3:Go(i)*1e3}function ct(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Ge=i=>typeof i=="function",x=i=>typeof i=="undefined",Ne=i=>typeof i=="string",ke=i=>typeof i=="number",Qe=i=>typeof i=="boolean",ir=i=>ct(i)==="object",st=i=>ct(i)==="array",af=i=>ct(i)==="MediaStreamTrack".toLowerCase(),cf=i=>i.isRemote,io=i=>ct(i)==="promise",jo=i=>Ge(i)&&i.prototype.constructor===i,Hs=i=>jo(i)?i.prototype.constructor.name:"",df=typeof AudioWorkletNode!="undefined",uf=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function oa(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 Zp=i=>+i<10?`0${i}`:i,lf=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=Zp(e[1])+Zp(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},hT=Object.prototype.hasOwnProperty,{toString:JA}=Object.prototype;function Ws(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(Bt(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(hT.call(i,t))return!1;return!0}}return!1}function qo(i,t){return{userId:t,hasAudio:!!(i&Us),hasVideo:!!(i&Ls),hasAuxiliary:!!(i&Yn),hasSmall:!!(i&Dl),audioMuted:!!(i&Wc),videoMuted:!!(i&Gc),audioAvailable:!!(i&Us)&&!(i&Wc),videoAvailable:!!(i&Ls)&&!(i&Gc)}}function mf(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!x(i.username)&&!x(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",x(i.credentialType)||(t.credentialType=i.credentialType)),t}function Gs(i,t=!0){if(!Ne(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 Nr=function(i,t,e,r){if(!(ir(i)&&ir(t)))return 0;let o=0,s=Object.keys(t),n;for(let a=0,u=s.length;a<u;a++)if(n=s[a],!(x(t[n])||e&&e.includes(n)))if(ir(i[n])&&ir(t[n]))o+=Nr(i[n],t[n],e,r);else{if(r&&r.includes(t[n]))continue;i[n]!==t[n]&&(i[n]=Wo(t[n]),o+=1)}return o};function Wo(i){if(st(i)){let t=[];return i.forEach((e,r)=>{t[r]=Wo(e)}),t}if(ir(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=Wo(i[e])}),t}return i}var js=i=>{let t=[];if(st(i))t=[...i];else if(Ne(i)){let e=document.getElementById(i);e&&t.push(e)}else i&&t.push(i);return t},hf=i=>Ne(i)?document.getElementById(i):i,pT=i=>{let t=u=>u<10?`0${u}`:`${u}`,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}`},Zc=()=>pT(new Date);function mr(i,{keysToInclude:t,keysToExclude:e}){try{if(st(i))return`[${i.map(n=>mr(n,{keysToInclude:t,keysToExclude:e})).join(",")}]`;if(!Bt(i)||!st(t)&&!st(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]=Bt(i[n])||st(i[n])?JSON.parse(mr(i[n],{keysToExclude:e,keysToInclude:t})):i[n])}),JSON.stringify(r)}catch(r){return"{}"}}function sa(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),mr(i,{keysToInclude:e})}function pf(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var Gl=()=>{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},qs=i=>y(void 0,null,function*(){return new Promise((t,e)=>{let r;if(Ne(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 de({code:q.INVALID_PARAMETER,message:`load image failed, url: ${i}`}))}})}),Kc=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},na=i=>(Object.keys(i).forEach(t=>{ke(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Bt(i[t])||st(i[t]))&&na(i[t])}),i);function aa(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function ed(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function zo(i){return i.replace(/(^|[^:])\/{2,}/g,"$1/")}function td(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),u=i.kind===M.AUDIO?`${s}x${n}@${a}`:`${e}x${r}@${o}`,m=i.stats?` stats: ${JSON.stringify(i.stats).replaceAll('"',"")}`:"";return`${i.id} ${i.readyState} muted:${i.muted} ${i.kind} ${i.label} ${u}${m}`}catch(e){return""}}function rd(i,t){return i.width*i.height===t.width*t.height?1:Gl()&&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 or(i){return i===90||i===270}function ff(i){return y(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 Qc(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]=Qc(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]=Qc(i[r],t)}),e}return i}var zs=(r=>(r[r.END_REPORT=2001]="END_REPORT",r[r.LOG=2002]="LOG",r[r.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",r))(zs||{});function fT(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return x(r)||(o=ge(X({},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 Ii(i,t,e,r){try{let o=fT(i,t,e,r),s=zc(o);return Yp(s,e)}catch(o){return JSON.stringify(i)}}function gf(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 Ef(i){return(i&65535)>>>0}function _f(i){return(i&4294901760)>>>0}function Tf(i){let t=gT(i);return t==null?void 0:t.busiBuff}function gT(i){try{let t={},e=0;t.totalLength=$t(i,e),e+=4,t.version=$t(i,e),e+=4,t.encryption=Vl(i,e),e+=1,t.uinType=Vl(i,e),e+=1,t.uinLength=$t(i,e),e+=4,t.uin=t.uinLength>4?Fs(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=ET(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=$t(i,e),e+=4,t.seqNo=$t(i,e),e+=4,t.retCode=$t(i,e),e+=4,t.retStrLength=$t(i,e),e+=4,t.retStr=t.retStrLength?Fs(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=$t(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?Fs(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=$t(i,e),e+=4,t.cookie=t.cookieLength?Fs(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=$t(i,e),e+=4,t.busiBuffLength=$t(i,e),e+=4,t.busiBuff=t.busiBuffLength?Fs(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function If(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=Jc*Xc>>>0;for(let s=0;s<Xc;s++)r-=(e<<Bl)+t[2]^e+o^(e>>>5)+t[3],r=r>>>0,e-=(r<<Bl)+t[0]^r+o^(r>>>5)+t[1],e=e>>>0,o-=Jc,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 ET(i,t){let e=0,r=new Uint8Array(8).fill(0),o=new Uint8Array(i.slice(0,8)),s=If(o,t),n=s[0]&7,a=i.length-1-n-$s-Bs,u=new Uint8Array(a),m=0,p=r,g=i.slice(0,8);e=8;let _=1;_+=n;for(let C=1;C<=$s;)if(_<8)_++,C++;else if(_===8){let N=jl(i,e,p,g,s,t);p=N.ivPreCrypt,g=N.ivCurCrypt,s=N.debiBuf,e=N.bufPos,_=0}let A=a;for(;A>0;)if(_<8)u[m++]=s[_]^p[_],_++,A--;else if(_===8){let C=jl(i,e,p,g,s,t);p=C.ivPreCrypt,g=C.ivCurCrypt,s=C.debiBuf,e=C.bufPos,_=0}for(let C=1;C<=Bs;)if(_<8)s[_]^p[_],_++,C++;else if(_===8){if(e>=i.length)break;let N=jl(i,e,p,g,s,t);if(!N.success)break;p=N.ivPreCrypt,g=N.ivCurCrypt,s=N.debiBuf,e=N.bufPos,_=0}return u}function jl(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),u=new Uint8Array(8);for(let p=0;p<8;p++)u[p]=o[p]^a[p];let m=If(u,s);return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:m,bufPos:t+8}}var Sf=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function Si({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(u=>u.clone().json().then(m=>({data:m}),()=>u.arrayBuffer().then(m=>({data:Tf(new Uint8Array(m))||(Sf?Sf.decode(m):m)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let u=JSON.parse(a.response);s({data:u})}catch(u){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 ql(i){return y(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 $.debug(`compressJSON ${e.length} -> ${a.byteLength} ${_e()-t}ms`),a}catch(r){return e}})}var _T=Object.prototype.hasOwnProperty;var oo=i=>typeof i=="function",yf=i=>typeof i=="undefined";var Af=i=>typeof i=="boolean";var zl=i=>i.isRemote;var Jl=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 bf(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(Jl(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(_T.call(i,t))return!1;return!0}}return!1}var TT=0,IT=1,Rf=2;function ST({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:u=5,timeout:m=1e3}=t,p=0,g=-1,_=TT,A=(C,N)=>y(this,null,function*(){let D=n||this;try{let O=yield i.apply(D,a);p>0&&s&&s.call(this,p),p=0,C(O)}catch(O){let Z=()=>{clearTimeout(g),p=0,_=Rf,N(O)},ue=()=>{_!==Rf&&p<(oo(u)?u():u)?(p++,_=IT,oo(r)&&r.call(this,p,Z),g=window.setTimeout(()=>{g=-1,A(C,N)},oo(m)?m(p):m)):(Z(),oo(o)&&o.call(this,O))};oo(e)?e.call(this,{error:O,retry:ue,reject:N,retryFuncArgs:a,retriedCount:p}):ue()}});return new Promise(A)}}var so=ST;var Js=class{constructor(t){l(this,"userId");l(this,"remoteUserId");l(this,"id");l(this,"sdkAppId");l(this,"type");l(this,"isLocal");this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=Af(t.isLocal)?t.isLocal:!0,this.type=this.isLocal?"":t.type}createChild(t){return Object.setPrototypeOf(t,this)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId;e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${this.id}${r?`|${r}`:""}]`),$.log(t,e,yf(this.userId)||bf(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 nn={};hi(nn,{ANDROID_VERSION:()=>Yl,CHROME_MAJOR_VERSION:()=>Zr,CHROME_VERSION:()=>Sd,EDGE_VERSION:()=>sd,EDG_MAJOR_VERSION:()=>Zl,EDG_VERSION:()=>nd,FIREFOX_MAJOR_VERSION:()=>od,FIREFOX_VERSION:()=>id,HUAWEI_VERSION:()=>gd,IE_VERSION:()=>vT,IOS_MAIN_VERSION:()=>Ot,IOS_VERSION:()=>Or,IPADQQB_VERSION:()=>pd,IS_ANDROID:()=>pt,IS_ANDROID_WEBVIEW:()=>wT,IS_ANY_SAFARI:()=>hr,IS_CHROME:()=>on,IS_CHROME_OS:()=>Kl,IS_CHROMIUM_BASE:()=>Yr,IS_DESKTOP_IOS_CHROME:()=>am,IS_EDG:()=>Ys,IS_EDGE:()=>Jo,IS_ELECTRON:()=>NT,IS_FIREFOX:()=>Ht,IS_HEADLESS_CHROME:()=>rm,IS_HONOR:()=>tm,IS_HUAWEI:()=>ga,IS_HUAWEIBROWSER:()=>fa,IS_IE:()=>Df,IS_IE8:()=>RT,IS_IOS:()=>ht,IS_IOS_13_OR_14:()=>nm,IS_IOS_15_1:()=>sm,IS_IOS_CHROME:()=>wf,IS_IPAD:()=>Qs,IS_IPADQQB:()=>ma,IS_IPAD_PRO:()=>Ql,IS_IPHONE:()=>no,IS_IPOD:()=>Nf,IS_LINUX:()=>ha,IS_LOCAL:()=>xr,IS_MAC:()=>Mr,IS_MACQQB:()=>la,IS_MIBROWSER:()=>pa,IS_MQQB:()=>tn,IS_NATIVE_ANDROID:()=>bT,IS_OLD_ANDROID:()=>AT,IS_OPENHARMONY:()=>rn,IS_OPPOBROWSER:()=>_a,IS_SAFARI:()=>Tt,IS_SAFARI_15_1:()=>MT,IS_SAMSUNGBROWSER:()=>Ea,IS_SOGOU:()=>da,IS_SOGOUM:()=>ca,IS_TBS:()=>wr,IS_UCBROWSER:()=>em,IS_VIVOBROWSER:()=>Ta,IS_WECHAT:()=>Ks,IS_WIN:()=>Xo,IS_WQQB:()=>ua,IS_WX:()=>CT,IS_X5MQQB:()=>en,IS_XWEB:()=>Zs,MACQQB_VERSION:()=>hd,MI_VERSION:()=>fd,MQQB_VERSION:()=>Xs,OPENHARMONY_VERSION:()=>DT,OPPO_VERSION:()=>_d,SAFARI_VERSION:()=>yi,SAMSUNG_VERSION:()=>Ed,SOGOUM_VERSION:()=>ad,SOGOU_VERSION:()=>cd,TBS_VERSION:()=>dd,UA_DATA_STRING:()=>Dr,USER_AGENT:()=>sr,VIVO_VERSION:()=>Td,WECHAT_VERSION:()=>ld,WQQB_VERSION:()=>md,XWEB_VERSION:()=>ud,browserInfo:()=>Qr,getBrowserCoreNumber:()=>um,getBrowserInfo:()=>Mf,getChromeMajorVersion:()=>Id,getDeviceModel:()=>Ia,getGPUInfo:()=>dm,getOSName:()=>sn,getOSNumber:()=>Yo,getOSString:()=>Zo,getOSType:()=>mm,getTerminalType:()=>lm,getUserAgentData:()=>Qo,isLocalStorageEnabled:()=>Ai,isMobile:()=>cm,isVersionLargerThan:()=>om,isVersionSmallerThan:()=>im});var sr=typeof navigator=="undefined"?"":navigator.userAgent,ye=i=>new RegExp(i,"i").test(sr),_t=i=>{if(ye(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=sr.match(t);if(e&&e[1])return e[1]}return""},Xl=i=>{if(ye(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=sr.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},vf=/AppleWebKit\/([\d.]+)/i.exec(sr),yT=vf?parseFloat(vf[1]):NaN,Qs=ye("iPad"),Ql=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&ye("Macintosh"),no=ye("iPhone")&&!Qs,Nf=ye("iPod"),ht=no||Qs||Nf||Ql,pt=ye("Android"),Yl=function(){if(pt){let i=sr.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}(),AT=pt&&ye("webkit")&&Yl<2.3,bT=pt&&Yl<5&&yT<537,Ht=ye("Firefox"),id=_t("Firefox"),od=Xl("Firefox"),Jo=ye("Edge"),sd=_t("Edge"),Ys=ye("Edg"),nd=_t("Edg"),Zl=Xl("Edg"),ca=ye("SogouMobileBrowser"),ad=_t("SogouMobileBrowser"),da=ye("MetaSr\\s"),cd=_t("MetaSr\\s"),wr=ye("TBS"),dd=_t("TBS"),Zs=ye("XWEB"),ud=_t("XWEB"),RT=ye("MSIE\\s8\\.0"),Df=ye("MSIE\\/\\d+"),vT=function(){if(Df){let i=/MSIE\s(\d+)\.\d/.exec(sr),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(sr)&&/rv:11.0/.test(sr)&&(t=11),t}return NaN}(),Ks=ye("(micromessenger|webbrowser)"),ld=_t("MicroMessenger"),en=!wr&&ye("MQQBrowser")&&ye("COVC"),tn=!wr&&ye("MQQBrowser")&&!ye("COVC"),Xs=tn||en?_t("MQQBrowser"):"",ua=!wr&&ye(" QQBrowser"),md=_t(" QQBrowser"),la=!wr&&ye("QQBrowserLite"),hd=_t("QQBrowserLite"),ma=!wr&&ye("MQBHD"),pd=_t("MQBHD"),Xo=ye("Windows"),Mr=!ht&&ye("MAC OS X"),ha=!pt&&ye("Linux"),Kl=ye("CrOS"),CT=ye("MicroMessenger"),em=ye("UCBrowser"),NT=ye("Electron"),pa=ye("MiuiBrowser"),fd=_t("MiuiBrowser"),fa=ye("HuaweiBrowser"),ga=ye("Huawei")||ye("HUAWEI"),tm=ye("Honor")||ye("HONOR"),gd=_t("HuaweiBrowser"),Ea=ye("SamsungBrowser"),Ed=_t("SamsungBrowser"),_a=ye("HeyTapBrowser"),_d=_t("HeyTapBrowser"),Ta=ye("VivoBrowser"),Td=_t("VivoBrowser"),rn=ye("OpenHarmony"),DT=_t("OpenHarmony"),Id=()=>Xl("Chrome"),Yr=ye("Chrome"),on=!Jo&&!da&&!ca&&!wr&&!Zs&&!Ys&&!ua&&!pa&&!fa&&!Ea&&!_a&&!Ta&&Yr,rm=ye("HeadlessChrome"),Zr=Id(),Sd=_t("Chrome"),Tt=!Yr&&!tn&&!en&&!la&&!ma&&ye("Safari"),hr=Tt||ht,yi=_t("Version"),wT=/Android.*(wv|.0.0.0)/.test(sr),Or=(()=>{if(Ql)return yi;if(ht){let i=sr.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})();function im(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 om(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 Ot=Number(Or.split(".")[0]),MT=yi==="15.1",sm=Or==="15.1",nm=(()=>{let i=Number(Or.split(".")[0]);return i===14||i===13})(),wf=ye("CriOS"),am=wf&&yi==="11.1.1",xr=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",Ai=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),Qr=Mf();function Mf(){let i=new Map([[Ht,["Firefox",id]],[Ys,["Edg",nd]],[on,["Chrome",Sd]],[Tt,["Safari",yi]],[wr,["TBS",dd]],[Zs,["XWEB",ud]],[Ks&&no,["WeChat",ld]],[ua,["QQ(Win)",md]],[tn,["QQ(Mobile)",Xs]],[en,["QQ(Mobile X5)",Xs]],[la,["QQ(Mac)",hd]],[ma,["QQ(iPad)",pd]],[pa,["MI",fd]],[fa,["HW",gd]],[Ea,["Samsung",Ed]],[_a,["OPPO",_d]],[Ta,["VIVO",Td]],[Jo,["EDGE",sd]],[ca,["SogouMobile",ad]],[da,["Sogou",cd]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var je=null;function cm(){return je&&typeof je.mobile=="boolean"?je.mobile:pt||ht||no||Qs||rn}var Dr="";function Qo(){return y(this,null,function*(){if(je)return je;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return je=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),je&&!Dr&&(Dr=`UAData: ${je.platform}/${je.platformVersion}`,je.architecture&&je.bitness&&(Dr+=` ${je.architecture}/${je.bitness}`),je.mobile&&(Dr+=" mobile"),je.model&&(Dr+=` model: ${je.model.replace(/\s+/g,"/")}`),je.fullVersionList&&(Dr+=` ${je.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),je}catch(i){return null}})}function dm(){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 Ia(){return(je==null?void 0:je.model)||""}var Cf=new Map([[pt,"Android"],[ht,"iOS"],[Xo,"Windows"],[Mr,"MacOS"],[ha,"Linux"],[Kl,"ChromeOS"]]),sn=function(){return Cf.get(!0)?Cf.get(!0):je?je.platform:"unknown"};function Yo(){return Xo?1:pt?2:Mr?3:ht?4:ha?5:Kl?6:rn?7:0}function um(){return Yr?1:Tt?2:Ht?3:0}var Zo=()=>{let i=sn();return i+=`/${Qr.name}/${Tt?Qr.version:Qr.version.split(".")[0]}`,je!=null&&je.platformVersion&&(i+=`/${je.platformVersion}`),je!=null&&je.architecture&&(i+=`/${je.architecture}`),i};function lm(){return pt?4:no?2:Qs?3:Mr?12:Xo?5:ha?13:rn?22:1}function mm(){return pt?"Android":no?"iPhone":Qs?"iPad":Mr?"Mac":Xo?"Windows":ha?"Linux":"unknown"}var xf=pi(bi(),1),PT=new xf.default,V=PT;var Pr=(j=>(j.ROOM_DESTROY="1",j.JOIN_START="21",j.JOIN_SCHEDULE_SUCCESS="22",j.JOIN_SIGNAL_CONNECTION_START="23",j.JOIN_SIGNAL_CONNECTION_END="24",j.JOIN_SEND_CMD="25",j.JOIN_RECEIVED_CMD_RES="26",j.JOIN_SUCCESS="27",j.JOIN_FAILED="28",j.LEAVE_START="51",j.LEAVE_SEND_CMD="52",j.LEAVE_SUCCESS="53",j.PUBLISH_START="61",j.SEND_FIRST_VIDEO_FRAME="62",j.PUBLISH_FAILED="63",j.SUBSCRIBE_START="81",j.SUBSCRIBE_SUCCESS="82",j.SUBSCRIBE_FAILED="84",j.UNSUBSCRIBE_SUCCESS="83",j.LOCAL_TRACK_CAPTURE_START="101",j.LOCAL_TRACK_CAPTURE_SUCCESS="102",j.LOCAL_TRACK_CAPTURE_FAILED="103",j.LOCAL_TRACK_PUBLISHED="104",j.LOCAL_TRACK_UNPUBLISHED="105",j.LOCAL_TRACK_REPLACED="106",j.SWITCH_DEVICE_SUCCESS="107",j.TRACK_MUTED="108",j.TRACK_UNMUTED="109",j.REMOTE_TRACK_SUBSCRIBED="110",j.REMOTE_TRACK_UNSUBSCRIBED="111",j.LOCAL_TRACK_RECAPTURE="112",j.LOCAL_AUDIO_STARTED="113",j.LOCAL_AUDIO_STOPPED="114",j.REMOTE_AUDIO_STARTED="115",j.REMOTE_AUDIO_STOPPED="116",j.PLAY_TRACK_START="151",j.PLAYER_STATE_CHANGED="152",j.VIDEO_LOADED_DATA="153",j.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",j.AUDIO_CONTEXT_LONG_SUSPENDED="155",j.SIGNAL_CONNECTION_STATE_CHANGED="201",j.PEER_CONNECTION_STATE_CHANGED="202",j.SINGLE_CONNECTION_STAT="203",j.SPC_RECONNECTED="204",j.HEARTBEAT_REPORT="251",j.RECEIVED_PUBLISHED_USER_LIST="252",j.REMOTE_PUBLISH_STATE_CHANGED="253",j.AUDIO_LEVEL_INTERVAL="260",j.NETWORK_QUALITY="261",j.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",j.QUALITY_LIMITATION_CHANGED="263",j.LOG="264",j.AUDIO_PROCESSOR_DEBUG="265",j.SSO_SWITCH="266",j.SWITCH_ROOM_START="401",j.SWITCH_ROOM_SUCCESS="407",j.SWITCH_ROOM_FAILED="408",j))(Pr||{});var F=Pr;var pm=class{constructor(){l(this,"enable",!1);l(this,"ssoFailCount",0);V.on("22",({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.sso&&V.emit("266",{enable:!0})}),V.on("266",({enable:t})=>{this.enable=t})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&V.emit("266",{enable:!1})}},ao=new pm;var kT="%cTRTC%c%s",LT="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",UT="display: inline",Ad=class Ad{constructor(){l(this,"_isEnableUploadLog",!0);l(this,"_localJoinedUser",new Map);l(this,"_queue",[]);l(this,"_timeoutId",-1);l(this,"_logLevel",1);l(this,"_logLevelToUpload",2);!ks&&!Jn&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){V.on(F.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&Rr[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),V.on(F.JOIN_SUCCESS,({room:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),V.once(F.JOIN_FAILED,()=>{this.startUpload()}),V.on(F.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(Ne(r.userId)&&ke(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 y(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:u}=o[s],m={timestamp:Vc(),sdkAppId:String(a),userId:n,version:at,log:u.map(_=>_.log).join(`
4
- `)},p=JSON.stringify(m),g=ao.enable?Ii(m,2002,a):p;yield this.uploadLogWithRetry(g,a,g instanceof Uint8Array,p),u.forEach(_=>_.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 so({retryFunction:()=>Si({url:Ti(e,ro.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(ao.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(fi()),`[${Ps(e)}] <${Rr[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){x(Rr[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(Ne(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,u)=>`${a} ${this.logChunkToString(u)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};V.emit(F.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=Rr[t])==null?void 0:a.toLowerCase())||"info";Ad.PRINT_LOG_TAG?console[n](kT,LT,UT,...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){return new Js(t)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),r=e?Number(e):-1;Rr[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};l(Ad,"PRINT_LOG_TAG",!(ht||pt||rm));var fm=Ad,$=new fm;var VT=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)})},ya=VT;var gm=class{constructor(){l(this,"_prefix","TRTC");l(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!Ai())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(Ai())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){$.warn(t)}}getItem(t){if(!Ai())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){$.warn(e)}}setItem(t,e){if(Ai())try{let r={expiresIn:Date.now()+Fc,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){$.warn(r)}}deleteItem(t){if(!Ai())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return $.warn(e),!1}}clear(){if(Ai())try{localStorage.clear()}catch(t){$.warn(t)}}},an=new gm;var lo={};hi(lo,{HTTPS_API:()=>nI,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>$m,IS_GET_CAPABILITIES_SUPPORTED:()=>Fm,IS_GET_SETTINGS_SUPPORTED:()=>un,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>fI,IS_INSERTABLE_STREAM_SUPPORTED:()=>os,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>TI,IS_RTC_RTP_SENDER_SUPPORTED:()=>Oa,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>lg,IS_SEI_SUPPORTED:()=>xa,IS_SPC_SUPPORTED:()=>lI,basis:()=>EI,capabilityCheck:()=>Hm,checkSystemRequirementsInternal:()=>Ld,decodeSupportStatus:()=>ig,detectVideoCodecCapabilities:()=>Wm,detectVideoDecoderCapabilities:()=>gg,detectVideoEncoderCapabilities:()=>fg,encodeSupportStatus:()=>Vm,getBrowserInfo:()=>Pd,getDisplayResolution:()=>og,isAddTransceiverSupported:()=>Vd,isBrowserSupported:()=>km,isCanvasCaptureStreamAPISupported:()=>ag,isCanvasSmallStreamSupported:()=>cg,isGetReceiversSupported:()=>dI,isGetSendersSupported:()=>ug,isGetTransceiversSupported:()=>uI,isGetUserMediaSupported:()=>sg,isMediaDevicesSupported:()=>kd,isMediaSessionSupported:()=>mg,isMediaStreamTrackGeneratorSupported:()=>eI,isMediaStreamTrackProcessorSupported:()=>Um,isReplaceTrackSupported:()=>hI,isRequestVideoFrameCallbackSupported:()=>Mi,isSIMDSupported:()=>gI,isScaleResolutionDownBySupported:()=>dg,isScreenCaptureApiAvailable:()=>Ma,isSelectedCandidatePair:()=>aI,isSetParametersSupported:()=>pI,isSetSinkIdSupported:()=>iI,isSmallStreamSupported:()=>Ud,isStopTransceiverSupported:()=>mI,isTRTCSupported:()=>rI,isUnifiedPlanDefault:()=>cI,isUsedInHttpProtocol:()=>wi,isWebAudioSupported:()=>ng,isWebCodecSupported:()=>Fd,isWebCodecsSupported:()=>Lm,isWebRTCSupported:()=>Bm,isWebTransportSupported:()=>hg});var Dm={};hi(Dm,{AUDIO_LEVEL_SCALE:()=>Ci,AudioCodecPipelineType:()=>Na,AudioDecoderDowngradeState:()=>Tm,AudioPlayerMode:()=>Am,AudioType:()=>Sm,BASIC_TYPE:()=>Ni,BannedReason:()=>bm,CONNECTION_CLOSED_REASON:()=>kf,CheckPermissionType:()=>Nm,ClientEvent:()=>Em,CodecType:()=>Hf,ConnectionEvent:()=>Pf,ConnectionState:()=>Rd,DECODE_FAILED_ERROR_CODE:()=>Cm,DeviceType:()=>Nd,FacingMode:()=>vd,FrameWorkType:()=>bd,LeaveReason:()=>Rm,LocalTrackEvent:()=>co,MULTI_VIDEO_DATA_TYPE:()=>vi,MediaType:()=>At,MediaTypeLabel:()=>FT,MonitorEventId:()=>Ra,MutedFlag:()=>Uf,NetworkQualityValue:()=>$f,PlayerState:()=>Ko,ReceiveMode:()=>Bf,RemoteStreamType:()=>Kr,RemoteTrackEvent:()=>es,RoomEvent:()=>Ri,SMALL_MODE:()=>Cd,SceneNumber:()=>_m,StreamEvent:()=>Lf,StreamType:()=>Ff,SubscribeMediaType:()=>Aa,TIMER_TYPE:()=>uo,TRACK_ACTION:()=>Vf,TRACK_KIND:()=>Im,TrackEvent:()=>kr,UserRole:()=>qt,UserRoleNumber:()=>ts,VideoCodec:()=>vm,VideoCodecPipelineType:()=>Ca,VideoContentHint:()=>Da,VideoDecoderDowngradeState:()=>ba,VideoPlayerMode:()=>va,VideoType:()=>ym});var bd=(e=>(e[e.WEBRTC=30]="WEBRTC",e[e.WASM=37]="WASM",e))(bd||{}),Pf=(N=>(N.TRACK_ADDED="track-added",N.TRACK_UPDATED="track-updated",N.TRACK_SUBSCRIBED="track-subscribed",N.STREAM_ADDED="stream-added",N.STREAM_REMOVED="stream-removed",N.STREAM_UPDATED="stream-updated",N.STREAM_PUBLISHED="stream-published",N.STREAM_SUBSCRIBED="stream-subscribed",N.STREAM_UNSUBSCRIBED="stream-unsubscribed",N.STATE_CHANGED="state-changed",N.ERROR="error",N.CONNECTION_STATE_CHANGED="connection-state-changed",N.FIREWALL_RESTRICTION="firewall-restriction",N.SEI_MESSAGE="sei-message",N.CLOSED="closed",N))(Pf||{}),kf=(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))(kf||{}),Em=(D=>(D.STREAM_ADDED="stream-added",D.STREAM_REMOVED="stream-removed",D.STREAM_UPDATED="stream-updated",D.STREAM_SUBSCRIBED="stream-subscribed",D.CONNECTION_STATE_CHANGED="connection-state-changed",D.PEER_JOIN="peer-join",D.PEER_LEAVE="peer-leave",D.MUTE_AUDIO="mute-audio",D.MUTE_VIDEO="mute-video",D.UNMUTE_AUDIO="unmute-audio",D.UNMUTE_VIDEO="unmute-video",D.CLIENT_BANNED="client-banned",D.NETWORK_QUALITY="network-quality",D.AUDIO_VOLUME="audio-volume",D.SEI_MESSAGE="sei-message",D.ERROR="error",D))(Em||{}),Lf=(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))(Lf||{}),co=(u=>(u.DEVICE_AUTO_RECOVERED="1",u.DEVICE_RECOVER_FAILED="5",u.DEVICE_CHANGED="2",u.ERROR="3",u.PUBLISH_STATE_CHANGED="4",u.ENCODE_FAILED="6",u.TRACK_ENDED="7",u.RENDER="render",u))(co||{}),Ko=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(Ko||{}),Ri=(H=>(H.PEER_JOIN="peer-join",H.PEER_LEAVE="peer-leave",H.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",H.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",H.BANNED="banned",H.NETWORK_QUALITY="network-quality",H.AUDIO_VOLUME="audio-volume",H.SEI_MESSAGE="sei-message",H.ERROR="error",H.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",H.REMOTE_PUBLISHED="remote-published",H.REMOTE_UNPUBLISHED="remote-unpublished",H.FIREWALL_RESTRICTION="firewall-restriction",H.HEARTBEAT_REPORT="heartbeat-report",H.CUSTOM_MESSAGE="custom-message",H.LAYER_DATA="layerData",H.FIRST_VIDEO_FRAME="first-video-frame",H.DUMP="dump",H.AUDIO_FRAME="audio-frame",H.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",H.LOCAL_PUBLISH_FLAG_CHANGED="local-publish-flag-changed",H.NTP_TIME_UPDATED="ntp-time-updated",H))(Ri||{}),kr=(u=>(u.PLAYER_STATE_CHANGED="player-state-changed",u.MUTE="mute",u.UNMUTE="unmute",u.ERROR="error",u.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",u.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",u.FIRST_VIDEO_FRAME="first-video-frame",u.VIDEO_SIZE_CHANGED="video-size-changed",u))(kr||{}),es=(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))(es||{}),Uf=(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))(Uf||{}),_m=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(_m||{}),ts=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(ts||{}),qt=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(qt||{}),Rd=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(Rd||{}),Tm=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Tm||{}),ba=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(ba||{}),Im=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(Im||{}),Vf=(e=>(e.ADD="add",e.REMOVE="remove",e))(Vf||{}),At=(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))(At||{}),FT={1:"audio",2:"auxVideo",4:"video"},Sm=(t=>(t[t.opus=111]="opus",t))(Sm||{}),ym=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(ym||{}),Ff=(e=>(e.Big="big",e.Small="small",e))(Ff||{}),Kr=(e=>(e.Main="main",e.Aux="auxiliary",e))(Kr||{}),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||{}),Ra=(J=>(J[J.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",J[J.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",J[J.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",J[J.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",J[J.MUTE_AUDIO=32772]="MUTE_AUDIO",J[J.MUTE_VIDEO=32773]="MUTE_VIDEO",J[J.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",J[J.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",J[J.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",J[J.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",J[J.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",J[J.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",J[J.SWITCH_CAMERA=32780]="SWITCH_CAMERA",J[J.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",J[J.REPLACE_VIDEO=32782]="REPLACE_VIDEO",J[J.REPLACE_AUDIO=32783]="REPLACE_AUDIO",J[J.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",J[J.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",J[J.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",J[J.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",J[J.JOIN=32788]="JOIN",J[J.LEAVE=32789]="LEAVE",J[J.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",J[J.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",J[J.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",J[J.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",J[J.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",J[J.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",J[J.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",J[J.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",J[J.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",J[J.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",J[J.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",J[J.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",J[J.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",J[J.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",J[J.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",J[J.PUBLISH_AUX=32805]="PUBLISH_AUX",J[J.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",J[J.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",J[J.VIDEO_ENCODER=4004]="VIDEO_ENCODER",J[J.VIDEO_DECODER=4005]="VIDEO_DECODER",J))(Ra||{}),$f=(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))($f||{}),Bf=(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))(Bf||{}),vd=(e=>(e.user="user",e.environment="environment",e))(vd||{}),va=(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))(va||{}),Am=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(Am||{}),bm=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(bm||{}),Rm=(m=>(m[m.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",m[m.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",m[m.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",m[m.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",m[m.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",m[m.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",m[m.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",m[m.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",m[m.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",m))(Rm||{}),Ci=1e8,Aa=class{constructor(){l(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)}},Ni=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(Ni||{}),vm=(s=>(s.H264="h264",s.H265="h265",s.VP8="vp8",s.VP9="vp9",s.AV1="av1",s))(vm||{}),Ca=(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))(Ca||{}),Na=(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))(Na||{}),Hf=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(Hf||{}),Cm=(_=>(_[_.SUCCESS=0]="SUCCESS",_[_.FAILED=1]="FAILED",_[_.WEBCODEC_INIT=2]="WEBCODEC_INIT",_[_.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",_[_.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",_[_.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",_[_.WASM_INIT=6]="WASM_INIT",_[_.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",_[_.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",_[_.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",_[_.TEST=10]="TEST",_[_.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",_))(Cm||{}),Da=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(Da||{}),uo=(s=>(s.INTERVAL="interval",s.TIMEOUT="timeout",s.RAF="raf",s.RIC="ric",s.INTERVAL_IN_WORKER="intervalInWorker",s))(uo||{}),Cd=(e=>(e.CANVAS="canvas",e.API="api",e))(Cd||{}),Nm=(o=>(o[o.NONE=0]="NONE",o[o.MICROPHONE=1]="MICROPHONE",o[o.CAMERA=2]="CAMERA",o[o.BOTH=3]="BOTH",o))(Nm||{}),Nd=(e=>(e.CAMERA="camera",e.MICROPHONE="microphone",e))(Nd||{});var Fe={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"},Yt={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: ${ct(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: ${ct(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 Wf=(i,t)=>t?`${qr}/${i}/${t}`:`${qr}/${i}/index.html`;var $T=()=>{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(Cl);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 $e(i){let{key:t,data:e,link:r,addDocLink:o=!0}=i,s="",n="",a="";Ge(Yt[t])?s=Yt[t](e):Ne(Yt[t])&&(s=Yt[t]);let{TRTC_ERROR_INFO:u,TRTC_ERROR_LINK:m}=$T();r?a=`${r.className}.html#${r.fnName}`:m&&m[t]&&(Ge(m[t])?a=m[t](e):Ne(m[t])&&(a=m[t]));let p=s;return Cr()&&(u&&u[t]&&(Ge(u[t])?n=u[t](e):Ne(u[t])&&(n=u[t])),n&&(o?p=`${n}
5
- \u8BF7\u67E5\u770B\u6587\u6863: ${Wf("zh-cn",a)}
3
+ `}});var Zf=Jn(ei=>{"use strict";var rs=Xf(),QT=Yf(),YT=Od();ei.grammar=YT;ei.write=QT;ei.parse=rs.parse;ei.parseParams=rs.parseParams;ei.parseFmtpConfig=rs.parseFmtpConfig;ei.parsePayloads=rs.parsePayloads;ei.parseRemoteCandidates=rs.parseRemoteCandidates;ei.parseImageAttributes=rs.parseImageAttributes;ei.parseSimulcastStreamList=rs.parseSimulcastStreamList});var jp=(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))(jp||{}),q=jp;var y_=function(i){for(let t in q)if(q[t]===i)return t;return"UNKNOWN"},Xn=class extends Error{constructor({name:e="RtcError",message:r,code:o=q.UNKNOWN,extraCode:s=0,constraint:n}){let a=`<${y_(o)} 0x${o.toString(16)}>`,u=`${r}${n?` constraint: ${n}`:""}${r!=null&&r.includes(a)?"":` ${a}`}`;super(u);l(this,"code");l(this,"extraCode");l(this,"message");l(this,"originMessage");l(this,"name");l(this,"constraint");this.code=o,this.extraCode=s,this.name=e,this.message=u,this.constraint=n,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},de=Xn;var qp=0;var zp=function(){return qp},fi=function(){return Date.now()+qp},Bc=function(){let i=new Date;return i.setTime(fi()),i.toLocaleString()},ks=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 Xr={};hi(Xr,{REPORT_TYPE:()=>Js,buildSSOPackage:()=>Ii,bytes2ms:()=>sf,calculateScaleResolutionDownNumber:()=>sd,concatArrayBuffers:()=>Ef,convertObjectNumberToInt:()=>ca,copyProperties:()=>of,deepClone:()=>Wo,deepCloneBasic:()=>Kc,deepMerge:()=>Dr,delay:()=>da,fibonacci:()=>Go,formatedTime:()=>td,getConstructorName:()=>Ws,getContainerFromElement:()=>pf,getEnv:()=>ef,getFirst16Bits:()=>Tf,getInternalVersion:()=>mf,getLast16Bits:()=>_f,getLoggerUrl:()=>Ti,getMediaStreamTrackInfo:()=>od,getMuteStateFromFlag:()=>qo,getNetworkType:()=>oa,getNumNetworkType:()=>ed,getReconnectionTimeout:()=>af,getStringByteLength:()=>ff,getTurnServer:()=>hf,getUint32Version:()=>rd,getValueType:()=>ct,getViewListFromView:()=>qs,glog:()=>sa,ipv4ToUint32:()=>js,isArray:()=>st,isAudioWorkletSupported:()=>uf,isBoolean:()=>Qe,isConstructor:()=>jo,isEmpty:()=>Gs,isFunction:()=>Ge,isLangChinese:()=>Nr,isMediaStreamTrack:()=>cf,isNumber:()=>ke,isObject:()=>ir,isOverseaSdkAppId:()=>_i,isPlainObject:()=>Bt,isPortrait:()=>Gl,isPromise:()=>io,isRemoteTrack:()=>df,isRotate90Or270:()=>or,isSetSinkIdSupported:()=>lf,isString:()=>Ne,isUndefined:()=>x,loadImage:()=>zs,loadVideo:()=>gf,ms2bytes:()=>nf,ms2samples:()=>Wl,normalizeUrl:()=>zo,performanceNow:()=>_e,promiseAny:()=>na,samples2ms:()=>Hl,setNetworkType:()=>rf,stringify:()=>mr,stringifyIncludeValue:()=>aa,throttlePromise:()=>id});var Ol={};hi(Ol,{AUDIO_MUTE_BIT:()=>qc,AUDIO_STAT_BIT:()=>Vs,AUX_STAT_BIT:()=>Kn,AUX_STREAM_MSID:()=>P_,BACKEND_ENV:()=>jc,BASE_DOC_URL:()=>qr,BASE_HOST:()=>Jp,CAPABILITIES_KEYS:()=>Xc,CLASS_NAME:()=>oT,CLOUD_CONSOLE_URL:()=>v_,CROSS_ROOM_BIT:()=>O_,DATA_FREEZE_TIMING:()=>Jc,DOC_URL:()=>C_,DTLS_STATE_UNKNOWN:()=>G_,ENV_NAME:()=>gi,EXCHANGE_SDP_TIMEOUT:()=>Q_,IS_WORKER:()=>Ls,IS_WORKLET:()=>Qn,KIBANA_EVENT:()=>lr,LOCAL_STREAM_PUBLISH_STATE:()=>Qp,LOGGER_CMD_TYPE:()=>ro,LOGGER_DOMAIN:()=>Rl,LOGGER_DOMAIN_OVERSEA:()=>vl,LOG_LEVEL:()=>vr,LOG_LEVEL_NAME:()=>nT,MAIN_STREAM_MSID:()=>x_,MAX_RTT:()=>ta,MICROPHONE_COMMUNICATIONS:()=>sT,MICROPHONE_DEFAULT:()=>Ho,MUTE_ALL_BIT:()=>M_,NAME:()=>M,NETWORK_TYPE:()=>$o,NOT_SUPPORTED_H264:()=>Z_,PAUSED_RETRY_COUNT:()=>Bo,PEERCONNECTION_CONNECTING_TIMEOUT:()=>rT,PEER_CONNECTION_STATE:()=>j_,PEER_LEAVE_REASON:()=>Yp,RECOVER_CAPTURE_INTERVAL:()=>Fs,REMOTE_STREAM_TYPE_AUX:()=>L_,REMOTE_STREAM_TYPE_MAIN:()=>k_,RENDER_FREEZE_TIMING:()=>K_,SCHEDULE_DOMAIN:()=>Ei,SCHEDULE_TIMEOUT:()=>iT,SDP_SEMANTICS_PLAN_B:()=>Y_,SDP_SEMANTICS_UNIFIED_PLAN:()=>Ml,SECOND_HOST:()=>b_,SIGNAL_PING_PONG_INTERVAL:()=>D_,SIGNAL_PING_TIMEOUT:()=>N_,SIGNAL_RECONNECTION_COUNT:()=>z_,SMALL_STAT_BIT:()=>Dl,SPEAKER_DEFAULT:()=>ea,STORAGE_EXPIRES_TIME:()=>Hc,STREAM_TYPE_BIG:()=>eT,STREAM_TYPE_SMALL:()=>tT,SUBSCRIBE_SMALL_RETRY_COUNT:()=>aT,SYNC_USER_LIST_INTERVAL:()=>J_,Scene:()=>zr,THIRD_HOST:()=>R_,TRANSPORT_DIRECTION:()=>w_,TRTC_ERROR_ASSISTANCE:()=>Cl,TRTC_QUALITY_BAD:()=>B_,TRTC_QUALITY_DISCONNECTED:()=>W_,TRTC_QUALITY_EXCELLENT:()=>V_,TRTC_QUALITY_GOOD:()=>F_,TRTC_QUALITY_POOR:()=>$_,TRTC_QUALITY_UNKNOWN:()=>U_,TRTC_QUALITY_VERY_BAD:()=>H_,UPDATE_OFFER_TIMEOUT:()=>X_,VIDEO_MUTE_BIT:()=>zc,VIDEO_STAT_BIT:()=>Us,audioProfileMap:()=>Wc,defaultBigVideoProfile:()=>Zn,defaultSmallVideoProfile:()=>Nl,getRetryCount:()=>q_,getScriptDir:()=>A_,innerVersion:()=>Al,loggerProxy:()=>Yn,screenProfileMap:()=>Gc,setLoggerProxy:()=>Fo,setRetryCount:()=>wl,setVersion:()=>bl,version:()=>at,videoProfileMap:()=>Cr});var Al="4.15.00.1600",at="5.0.0";function bl(i){at=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));Al=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var Ls=typeof importScripts!="undefined",Qn=typeof registerProcessor!="undefined",A_=()=>{let i=Ls?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},Yn="",Fo=i=>Yn=i,Jp="web.sdk.qcloud.com",b_="web.sdk.tencent.cn",R_="web.sdk.cloud.tencent.cn",v_="https://console.cloud.tencent.com/trtc",qr=`https://${Jp}/trtc/webrtc/v5/doc`,C_=`${qr}/zh-cn/`,Rl="https://yun.tim.qq.com",vl="https://apisgp.my-imcloud.com",Cl="trtc_error_assistance",ro={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},gi={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},vr=(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))(vr||{}),N_=18e3,D_=2e3,$o={unknown:0,wifi:1,"3g":2,"2g":3,"4g":4,wired:5,"5g":6},Hc=7*24*3600*1e3,Wc={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}},Cr={"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}},Zn=Cr["480p_2"],Nl=Cr["120p_2"],Gc={"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"},w_={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},jc={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},zr=(e=>(e.LIVE="live",e.RTC="rtc",e))(zr||{}),Us=1,Dl=2,Kn=4,Vs=8,qc=64,zc=16,M_=112,O_=128,x_="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",P_="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",k_=M.MAIN,L_=M.AUXILIARY,U_=0,V_=1,F_=2,$_=3,B_=4,H_=5,W_=6,G_="unknown",j_={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},Xp=1/0;function wl(i){Xp=i}function q_(){return Xp}var z_=30,lr={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"},J_=1e4,X_=1e4,Q_=1e4,Ml="unified-plan",Y_="plan-b",Z_=1028,Qp=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(Qp||{}),Jc=500,K_=1e3,eT=M.BIG,tT=M.SMALL,rT=10*1e3,Ei={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"},iT=2e3,oT={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},Bo=5,Ho="default",ea=Ho,sT="communications",nT=Object.keys(vr),Yp=["normal leave","timeout leave","kick","role change"],aT=10,Fs=2e3,Xc=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],ta=10*1e3;var cT=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{m(r.next(p))}catch(g){n(g)}}function u(p){try{m(r.throw(p))}catch(g){n(g)}}function m(p){p.done?s(p.value):o(p.value).then(a,u)}m((r=r.apply(i,t||[])).next())})},xl=Symbol(32),Pl=Symbol(16),kl=Symbol(8),Jr=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 cT(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(xl)}readU16(){return this.read(Pl)}readU8(){return this.read(kl)}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===xl){if(o(4))return;t=e[0]<<24|e[1]<<16|e[2]<<8|e[3]}else if(this.need===Pl){if(o(2))return;t=e[0]<<8|e[1]}else if(this.need===kl){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}};Jr.U32=xl;Jr.U16=Pl;Jr.U8=kl;var dT=128,uT=127,LA=~uT,UA=Math.pow(2,31);function Ll(i){let t=new Jr;for(;i>=128;)t.malloc(1)[0]=i&255|dT,i>>>=7;return t.malloc(1)[0]=i&255,t.buffer||new Uint8Array(0)}function Qc(i,t=0){let e=new Jr,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(Ll(i));break;case"string":e.malloc(1)[0]=r|2;let s=new TextEncoder().encode(i);e.write(Ll(s.length));let n=e.malloc(s.length);for(let u=0;u<s.length;u++)n[u]=s[u];break;case"object":let a=new Jr;if(Array.isArray(i))for(let u=0;u<i.length;u++){let m=Qc(i[u],u+1);m&&a.write(m)}else{let u=1;for(let m in i){let p=Qc(i[m],u++);p&&a.write(p)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=r|2,a.buffer&&(e.write(Ll(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var ra=class{constructor(){l(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 Ul(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 $t(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function Vl(i,t){return i[t]}function $s(i,t,e){return new TextDecoder().decode(lT(i,t,e))}function lT(i,t,e){return i.slice(t,t+e)}var Fl=0,Yc=2654435769,Zc=16,Bl=4,Bs=2,Hs=7;function mT(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 Zp(i,t){let e=new ra,r=mT(t,i,Fl);Fl=Fl+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 ra;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 Z=4;Z<16;Z++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let u=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(u.length+4),u.length&&n.writeBytes(u);let m=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(m.length+4),m.length&&n.writeBytes(m);let p=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(p.length+4),p.length&&n.writeBytes(p);let g=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(g.length+4),g.length&&n.writeBytes(g);let _=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(_.length+2),_.length&&n.writeBytes(_);let A=n.length;n.data[0]=A>>>24&255,n.data[1]=A>>>16&255,n.data[2]=A>>>8&255,n.data[3]=A&255,Ne(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let C=new Uint8Array(n.data),N=null;r.encryption===1?N=new TextEncoder().encode(r.uin):r.encryption===2&&(N=new Uint8Array(16)),N&&(C=hT(C,N)),e.writeBytes(C);let D=new Uint8Array(e.data),O=D.length;return D[0]=O>>>24&255,D[1]=O>>>16&255,D[2]=O>>>8&255,D[3]=O&255,D}function hT(i,t){let e=i.length,o=(e+1+Bs+Hs)%8;o&&(o=8-o);let s=e+1+Bs+Hs+o,n=new Uint8Array(s),a=0,u=new Uint8Array(8),m=new Uint8Array(8),p=new Uint8Array(8),g=0;u[0]=Math.floor(Math.random()*256)&248|o,g=1;for(let A=0;A<o;A++)u[g]=Math.floor(Math.random()*256)&255,g+=1;for(let A=0;A<Bs;)if(g<8&&(u[g]=Math.floor(Math.random()*256)&255,g+=1,A+=1),g===8){$l(u,t,m,p,n,a),a+=8,g=0;for(let C=0;C<8;C++)p[C]=n[a-8+C]}let _=0;for(;_<e;)if(g<8&&(u[g]=i[_],g+=1,_+=1),g===8){$l(u,t,m,p,n,a),a+=8,g=0;for(let A=0;A<8;A++)p[A]=n[a-8+A]}for(let A=0;A<Hs;)if(g<8&&(u[g]=0,g+=1,A+=1),g===8){$l(u,t,m,p,n,a),a+=8,g=0;for(let C=0;C<8;C++)p[C]=n[a-8+C]}return n}function $l(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];pT(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 pT(i,t,e,r){let o=$t(i,0),s=$t(i,4),n=[];for(let u=0;u<4;u++)n[u]=$t(t,u*4);let a=0;for(let u=0;u<Zc;u++)a+=Yc,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;Ul(e,o,r),Ul(e,s,r+4)}var ef=function(){return new URLSearchParams(location.search).get("trtc_env")||""},_i=i=>Number(i)<14e8,Ti=function(i,t){let e;Yn?e=Yn:e=_i(i)?vl:Rl;let r=Math.floor(Math.random()*to(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},ia="unknown";function oa(){if(ia!=="unknown")return ia;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&&(ia=tf(r,o)),ia}function tf(i,t){if($o[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function rf(i){ia=tf(i)}function ed(){return $o[oa()]}function of(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 sf(i,t=48e3){return Hl(i/4,t)}function Hl(i,t=48e3){return i*1e3/t}function nf(i,t=48e3){return Wl(i,t)*4}function Wl(i,t=48e3){return i*t/1e3}var sa=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},Nr=()=>{let i=navigator.language;return i=i.substring(0,2),i==="zh"},Bt=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 Go(i,t=1,e=1){return i<=1?e:Go(i-1,e,t+e)}function af(i){return i>8?30*1e3:Go(i)*1e3}function ct(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Ge=i=>typeof i=="function",x=i=>typeof i=="undefined",Ne=i=>typeof i=="string",ke=i=>typeof i=="number",Qe=i=>typeof i=="boolean",ir=i=>ct(i)==="object",st=i=>ct(i)==="array",cf=i=>ct(i)==="MediaStreamTrack".toLowerCase(),df=i=>i.isRemote,io=i=>ct(i)==="promise",jo=i=>Ge(i)&&i.prototype.constructor===i,Ws=i=>jo(i)?i.prototype.constructor.name:"",uf=typeof AudioWorkletNode!="undefined",lf=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function na(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 Kp=i=>+i<10?`0${i}`:i,mf=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=Kp(e[1])+Kp(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},fT=Object.prototype.hasOwnProperty,{toString:XA}=Object.prototype;function Gs(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(Bt(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(fT.call(i,t))return!1;return!0}}return!1}function qo(i,t){return{userId:t,hasAudio:!!(i&Vs),hasVideo:!!(i&Us),hasAuxiliary:!!(i&Kn),hasSmall:!!(i&Dl),audioMuted:!!(i&qc),videoMuted:!!(i&zc),audioAvailable:!!(i&Vs)&&!(i&qc),videoAvailable:!!(i&Us)&&!(i&zc)}}function hf(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!x(i.username)&&!x(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",x(i.credentialType)||(t.credentialType=i.credentialType)),t}function js(i,t=!0){if(!Ne(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 Dr=function(i,t,e,r){if(!(ir(i)&&ir(t)))return 0;let o=0,s=Object.keys(t),n;for(let a=0,u=s.length;a<u;a++)if(n=s[a],!(x(t[n])||e&&e.includes(n)))if(ir(i[n])&&ir(t[n]))o+=Dr(i[n],t[n],e,r);else{if(r&&r.includes(t[n]))continue;i[n]!==t[n]&&(i[n]=Wo(t[n]),o+=1)}return o};function Wo(i){if(st(i)){let t=[];return i.forEach((e,r)=>{t[r]=Wo(e)}),t}if(ir(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=Wo(i[e])}),t}return i}var qs=i=>{let t=[];if(st(i))t=[...i];else if(Ne(i)){let e=document.getElementById(i);e&&t.push(e)}else i&&t.push(i);return t},pf=i=>Ne(i)?document.getElementById(i):i,gT=i=>{let t=u=>u<10?`0${u}`:`${u}`,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}`},td=()=>gT(new Date);function mr(i,{keysToInclude:t,keysToExclude:e}){try{if(st(i))return`[${i.map(n=>mr(n,{keysToInclude:t,keysToExclude:e})).join(",")}]`;if(!Bt(i)||!st(t)&&!st(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]=Bt(i[n])||st(i[n])?JSON.parse(mr(i[n],{keysToExclude:e,keysToInclude:t})):i[n])}),JSON.stringify(r)}catch(r){return"{}"}}function aa(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),mr(i,{keysToInclude:e})}function ff(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var Gl=()=>{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},zs=i=>y(void 0,null,function*(){return new Promise((t,e)=>{let r;if(Ne(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 de({code:q.INVALID_PARAMETER,message:`load image failed, url: ${i}`}))}})}),rd=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},ca=i=>(Object.keys(i).forEach(t=>{ke(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Bt(i[t])||st(i[t]))&&ca(i[t])}),i);function da(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function id(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function zo(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),u=i.kind===M.AUDIO?`${s}x${n}@${a}`:`${e}x${r}@${o}`,m=i.stats?` stats: ${JSON.stringify(i.stats).replaceAll('"',"")}`:"";return`${i.id} ${i.readyState} muted:${i.muted} ${i.kind} ${i.label} ${u}${m}`}catch(e){return""}}function sd(i,t){return i.width*i.height===t.width*t.height?1:Gl()&&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 or(i){return i===90||i===270}function gf(i){return y(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 Kc(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]=Kc(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]=Kc(i[r],t)}),e}return i}var Js=(r=>(r[r.END_REPORT=2001]="END_REPORT",r[r.LOG=2002]="LOG",r[r.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",r))(Js||{});function ET(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return x(r)||(o=ge(X({},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 Ii(i,t,e,r){try{let o=ET(i,t,e,r),s=Qc(o);return Zp(s,e)}catch(o){return JSON.stringify(i)}}function Ef(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 _f(i){return(i&65535)>>>0}function Tf(i){return(i&4294901760)>>>0}function If(i){let t=_T(i);return t==null?void 0:t.busiBuff}function _T(i){try{let t={},e=0;t.totalLength=$t(i,e),e+=4,t.version=$t(i,e),e+=4,t.encryption=Vl(i,e),e+=1,t.uinType=Vl(i,e),e+=1,t.uinLength=$t(i,e),e+=4,t.uin=t.uinLength>4?$s(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=TT(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=$t(i,e),e+=4,t.seqNo=$t(i,e),e+=4,t.retCode=$t(i,e),e+=4,t.retStrLength=$t(i,e),e+=4,t.retStr=t.retStrLength?$s(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=$t(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?$s(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=$t(i,e),e+=4,t.cookie=t.cookieLength?$s(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=$t(i,e),e+=4,t.busiBuffLength=$t(i,e),e+=4,t.busiBuff=t.busiBuffLength?$s(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function Sf(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=Yc*Zc>>>0;for(let s=0;s<Zc;s++)r-=(e<<Bl)+t[2]^e+o^(e>>>5)+t[3],r=r>>>0,e-=(r<<Bl)+t[0]^r+o^(r>>>5)+t[1],e=e>>>0,o-=Yc,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 TT(i,t){let e=0,r=new Uint8Array(8).fill(0),o=new Uint8Array(i.slice(0,8)),s=Sf(o,t),n=s[0]&7,a=i.length-1-n-Bs-Hs,u=new Uint8Array(a),m=0,p=r,g=i.slice(0,8);e=8;let _=1;_+=n;for(let C=1;C<=Bs;)if(_<8)_++,C++;else if(_===8){let N=jl(i,e,p,g,s,t);p=N.ivPreCrypt,g=N.ivCurCrypt,s=N.debiBuf,e=N.bufPos,_=0}let A=a;for(;A>0;)if(_<8)u[m++]=s[_]^p[_],_++,A--;else if(_===8){let C=jl(i,e,p,g,s,t);p=C.ivPreCrypt,g=C.ivCurCrypt,s=C.debiBuf,e=C.bufPos,_=0}for(let C=1;C<=Hs;)if(_<8)s[_]^p[_],_++,C++;else if(_===8){if(e>=i.length)break;let N=jl(i,e,p,g,s,t);if(!N.success)break;p=N.ivPreCrypt,g=N.ivCurCrypt,s=N.debiBuf,e=N.bufPos,_=0}return u}function jl(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),u=new Uint8Array(8);for(let p=0;p<8;p++)u[p]=o[p]^a[p];let m=Sf(u,s);return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:m,bufPos:t+8}}var yf=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function Si({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(u=>u.clone().json().then(m=>({data:m}),()=>u.arrayBuffer().then(m=>({data:If(new Uint8Array(m))||(yf?yf.decode(m):m)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let u=JSON.parse(a.response);s({data:u})}catch(u){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 ql(i){return y(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 $.debug(`compressJSON ${e.length} -> ${a.byteLength} ${_e()-t}ms`),a}catch(r){return e}})}var IT=Object.prototype.hasOwnProperty;var oo=i=>typeof i=="function",Af=i=>typeof i=="undefined";var bf=i=>typeof i=="boolean";var zl=i=>i.isRemote;var Jl=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 Rf(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(Jl(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(IT.call(i,t))return!1;return!0}}return!1}var ST=0,yT=1,vf=2;function AT({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:u=5,timeout:m=1e3}=t,p=0,g=-1,_=ST,A=(C,N)=>y(this,null,function*(){let D=n||this;try{let O=yield i.apply(D,a);p>0&&s&&s.call(this,p),p=0,C(O)}catch(O){let Z=()=>{clearTimeout(g),p=0,_=vf,N(O)},ue=()=>{_!==vf&&p<(oo(u)?u():u)?(p++,_=yT,oo(r)&&r.call(this,p,Z),g=window.setTimeout(()=>{g=-1,A(C,N)},oo(m)?m(p):m)):(Z(),oo(o)&&o.call(this,O))};oo(e)?e.call(this,{error:O,retry:ue,reject:N,retryFuncArgs:a,retriedCount:p}):ue()}});return new Promise(A)}}var so=AT;var Xs=class{constructor(t){l(this,"userId");l(this,"remoteUserId");l(this,"id");l(this,"sdkAppId");l(this,"type");l(this,"isLocal");this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=bf(t.isLocal)?t.isLocal:!0,this.type=this.isLocal?"":t.type}createChild(t){return Object.setPrototypeOf(t,this)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId;e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${this.id}${r?`|${r}`:""}]`),$.log(t,e,Af(this.userId)||Rf(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={};hi(an,{ANDROID_VERSION:()=>Yl,CHROME_MAJOR_VERSION:()=>Zr,CHROME_VERSION:()=>bd,EDGE_VERSION:()=>cd,EDG_MAJOR_VERSION:()=>Zl,EDG_VERSION:()=>dd,FIREFOX_MAJOR_VERSION:()=>ad,FIREFOX_VERSION:()=>nd,HUAWEI_VERSION:()=>Td,IE_VERSION:()=>NT,IOS_MAIN_VERSION:()=>Ot,IOS_VERSION:()=>xr,IPADQQB_VERSION:()=>Ed,IS_ANDROID:()=>pt,IS_ANDROID_WEBVIEW:()=>OT,IS_ANY_SAFARI:()=>hr,IS_CHROME:()=>sn,IS_CHROME_OS:()=>Kl,IS_CHROMIUM_BASE:()=>Yr,IS_DESKTOP_IOS_CHROME:()=>am,IS_EDG:()=>Zs,IS_EDGE:()=>Jo,IS_ELECTRON:()=>wT,IS_FIREFOX:()=>Ht,IS_HEADLESS_CHROME:()=>rm,IS_HONOR:()=>tm,IS_HUAWEI:()=>_a,IS_HUAWEIBROWSER:()=>Ea,IS_IE:()=>wf,IS_IE8:()=>CT,IS_IOS:()=>ht,IS_IOS_13_OR_14:()=>nm,IS_IOS_15_1:()=>sm,IS_IOS_CHROME:()=>Mf,IS_IPAD:()=>Ys,IS_IPADQQB:()=>pa,IS_IPAD_PRO:()=>Ql,IS_IPHONE:()=>no,IS_IPOD:()=>Df,IS_LINUX:()=>fa,IS_LOCAL:()=>Pr,IS_MAC:()=>Or,IS_MACQQB:()=>ha,IS_MIBROWSER:()=>ga,IS_MQQB:()=>rn,IS_NATIVE_ANDROID:()=>vT,IS_OLD_ANDROID:()=>RT,IS_OPENHARMONY:()=>on,IS_OPPOBROWSER:()=>Ia,IS_SAFARI:()=>Tt,IS_SAFARI_15_1:()=>xT,IS_SAMSUNGBROWSER:()=>Ta,IS_SOGOU:()=>la,IS_SOGOUM:()=>ua,IS_TBS:()=>Mr,IS_UCBROWSER:()=>em,IS_VIVOBROWSER:()=>Sa,IS_WECHAT:()=>en,IS_WIN:()=>Xo,IS_WQQB:()=>ma,IS_WX:()=>DT,IS_X5MQQB:()=>tn,IS_XWEB:()=>Ks,MACQQB_VERSION:()=>gd,MI_VERSION:()=>_d,MQQB_VERSION:()=>Qs,OPENHARMONY_VERSION:()=>MT,OPPO_VERSION:()=>Sd,SAFARI_VERSION:()=>yi,SAMSUNG_VERSION:()=>Id,SOGOUM_VERSION:()=>ud,SOGOU_VERSION:()=>ld,TBS_VERSION:()=>md,UA_DATA_STRING:()=>wr,USER_AGENT:()=>sr,VIVO_VERSION:()=>yd,WECHAT_VERSION:()=>pd,WQQB_VERSION:()=>fd,XWEB_VERSION:()=>hd,browserInfo:()=>Qr,getBrowserCoreNumber:()=>um,getBrowserInfo:()=>Of,getChromeMajorVersion:()=>Ad,getDeviceModel:()=>ya,getGPUInfo:()=>dm,getOSName:()=>nn,getOSNumber:()=>Yo,getOSString:()=>Zo,getOSType:()=>mm,getTerminalType:()=>lm,getUserAgentData:()=>Qo,isLocalStorageEnabled:()=>Ai,isMobile:()=>cm,isVersionLargerThan:()=>om,isVersionSmallerThan:()=>im});var sr=typeof navigator=="undefined"?"":navigator.userAgent,ye=i=>new RegExp(i,"i").test(sr),_t=i=>{if(ye(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=sr.match(t);if(e&&e[1])return e[1]}return""},Xl=i=>{if(ye(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=sr.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},Cf=/AppleWebKit\/([\d.]+)/i.exec(sr),bT=Cf?parseFloat(Cf[1]):NaN,Ys=ye("iPad"),Ql=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&ye("Macintosh"),no=ye("iPhone")&&!Ys,Df=ye("iPod"),ht=no||Ys||Df||Ql,pt=ye("Android"),Yl=function(){if(pt){let i=sr.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}(),RT=pt&&ye("webkit")&&Yl<2.3,vT=pt&&Yl<5&&bT<537,Ht=ye("Firefox"),nd=_t("Firefox"),ad=Xl("Firefox"),Jo=ye("Edge"),cd=_t("Edge"),Zs=ye("Edg"),dd=_t("Edg"),Zl=Xl("Edg"),ua=ye("SogouMobileBrowser"),ud=_t("SogouMobileBrowser"),la=ye("MetaSr\\s"),ld=_t("MetaSr\\s"),Mr=ye("TBS"),md=_t("TBS"),Ks=ye("XWEB"),hd=_t("XWEB"),CT=ye("MSIE\\s8\\.0"),wf=ye("MSIE\\/\\d+"),NT=function(){if(wf){let i=/MSIE\s(\d+)\.\d/.exec(sr),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(sr)&&/rv:11.0/.test(sr)&&(t=11),t}return NaN}(),en=ye("(micromessenger|webbrowser)"),pd=_t("MicroMessenger"),tn=!Mr&&ye("MQQBrowser")&&ye("COVC"),rn=!Mr&&ye("MQQBrowser")&&!ye("COVC"),Qs=rn||tn?_t("MQQBrowser"):"",ma=!Mr&&ye(" QQBrowser"),fd=_t(" QQBrowser"),ha=!Mr&&ye("QQBrowserLite"),gd=_t("QQBrowserLite"),pa=!Mr&&ye("MQBHD"),Ed=_t("MQBHD"),Xo=ye("Windows"),Or=!ht&&ye("MAC OS X"),fa=!pt&&ye("Linux"),Kl=ye("CrOS"),DT=ye("MicroMessenger"),em=ye("UCBrowser"),wT=ye("Electron"),ga=ye("MiuiBrowser"),_d=_t("MiuiBrowser"),Ea=ye("HuaweiBrowser"),_a=ye("Huawei")||ye("HUAWEI"),tm=ye("Honor")||ye("HONOR"),Td=_t("HuaweiBrowser"),Ta=ye("SamsungBrowser"),Id=_t("SamsungBrowser"),Ia=ye("HeyTapBrowser"),Sd=_t("HeyTapBrowser"),Sa=ye("VivoBrowser"),yd=_t("VivoBrowser"),on=ye("OpenHarmony"),MT=_t("OpenHarmony"),Ad=()=>Xl("Chrome"),Yr=ye("Chrome"),sn=!Jo&&!la&&!ua&&!Mr&&!Ks&&!Zs&&!ma&&!ga&&!Ea&&!Ta&&!Ia&&!Sa&&Yr,rm=ye("HeadlessChrome"),Zr=Ad(),bd=_t("Chrome"),Tt=!Yr&&!rn&&!tn&&!ha&&!pa&&ye("Safari"),hr=Tt||ht,yi=_t("Version"),OT=/Android.*(wv|.0.0.0)/.test(sr),xr=(()=>{if(Ql)return yi;if(ht){let i=sr.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})();function im(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 om(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 Ot=Number(xr.split(".")[0]),xT=yi==="15.1",sm=xr==="15.1",nm=(()=>{let i=Number(xr.split(".")[0]);return i===14||i===13})(),Mf=ye("CriOS"),am=Mf&&yi==="11.1.1",Pr=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",Ai=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),Qr=Of();function Of(){let i=new Map([[Ht,["Firefox",nd]],[Zs,["Edg",dd]],[sn,["Chrome",bd]],[Tt,["Safari",yi]],[Mr,["TBS",md]],[Ks,["XWEB",hd]],[en&&no,["WeChat",pd]],[ma,["QQ(Win)",fd]],[rn,["QQ(Mobile)",Qs]],[tn,["QQ(Mobile X5)",Qs]],[ha,["QQ(Mac)",gd]],[pa,["QQ(iPad)",Ed]],[ga,["MI",_d]],[Ea,["HW",Td]],[Ta,["Samsung",Id]],[Ia,["OPPO",Sd]],[Sa,["VIVO",yd]],[Jo,["EDGE",cd]],[ua,["SogouMobile",ud]],[la,["Sogou",ld]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var je=null;function cm(){return je&&typeof je.mobile=="boolean"?je.mobile:pt||ht||no||Ys||on}var wr="";function Qo(){return y(this,null,function*(){if(je)return je;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return je=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),je&&!wr&&(wr=`UAData: ${je.platform}/${je.platformVersion}`,je.architecture&&je.bitness&&(wr+=` ${je.architecture}/${je.bitness}`),je.mobile&&(wr+=" mobile"),je.model&&(wr+=` model: ${je.model.replace(/\s+/g,"/")}`),je.fullVersionList&&(wr+=` ${je.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),je}catch(i){return null}})}function dm(){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 ya(){return(je==null?void 0:je.model)||""}var Nf=new Map([[pt,"Android"],[ht,"iOS"],[Xo,"Windows"],[Or,"MacOS"],[fa,"Linux"],[Kl,"ChromeOS"]]),nn=function(){return Nf.get(!0)?Nf.get(!0):je?je.platform:"unknown"};function Yo(){return Xo?1:pt?2:Or?3:ht?4:fa?5:Kl?6:on?7:0}function um(){return Yr?1:Tt?2:Ht?3:0}var Zo=()=>{let i=nn();return i+=`/${Qr.name}/${Tt?Qr.version:Qr.version.split(".")[0]}`,je!=null&&je.platformVersion&&(i+=`/${je.platformVersion}`),je!=null&&je.architecture&&(i+=`/${je.architecture}`),i};function lm(){return pt?4:no?2:Ys?3:Or?12:Xo?5:fa?13:on?22:1}function mm(){return pt?"Android":no?"iPhone":Ys?"iPad":Or?"Mac":Xo?"Windows":fa?"Linux":"unknown"}var Pf=pi(bi(),1),LT=new Pf.default,U=LT;var pr=(j=>(j.ROOM_DESTROY="1",j.JOIN_START="21",j.JOIN_SCHEDULE_SUCCESS="22",j.JOIN_SIGNAL_CONNECTION_START="23",j.JOIN_SIGNAL_CONNECTION_END="24",j.JOIN_SEND_CMD="25",j.JOIN_RECEIVED_CMD_RES="26",j.JOIN_SUCCESS="27",j.JOIN_FAILED="28",j.LEAVE_START="51",j.LEAVE_SEND_CMD="52",j.LEAVE_SUCCESS="53",j.PUBLISH_START="61",j.SEND_FIRST_VIDEO_FRAME="62",j.PUBLISH_FAILED="63",j.SUBSCRIBE_START="81",j.SUBSCRIBE_SUCCESS="82",j.SUBSCRIBE_FAILED="84",j.UNSUBSCRIBE_SUCCESS="83",j.LOCAL_TRACK_CAPTURE_START="101",j.LOCAL_TRACK_CAPTURE_SUCCESS="102",j.LOCAL_TRACK_CAPTURE_FAILED="103",j.LOCAL_TRACK_PUBLISHED="104",j.LOCAL_TRACK_UNPUBLISHED="105",j.LOCAL_TRACK_REPLACED="106",j.SWITCH_DEVICE_SUCCESS="107",j.TRACK_MUTED="108",j.TRACK_UNMUTED="109",j.REMOTE_TRACK_SUBSCRIBED="110",j.REMOTE_TRACK_UNSUBSCRIBED="111",j.LOCAL_TRACK_RECAPTURE="112",j.LOCAL_AUDIO_STARTED="113",j.LOCAL_AUDIO_STOPPED="114",j.REMOTE_AUDIO_STARTED="115",j.REMOTE_AUDIO_STOPPED="116",j.PLAY_TRACK_START="151",j.PLAYER_STATE_CHANGED="152",j.VIDEO_LOADED_DATA="153",j.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",j.AUDIO_CONTEXT_LONG_SUSPENDED="155",j.SIGNAL_CONNECTION_STATE_CHANGED="201",j.PEER_CONNECTION_STATE_CHANGED="202",j.SINGLE_CONNECTION_STAT="203",j.SPC_RECONNECTED="204",j.HEARTBEAT_REPORT="251",j.RECEIVED_PUBLISHED_USER_LIST="252",j.REMOTE_PUBLISH_STATE_CHANGED="253",j.AUDIO_LEVEL_INTERVAL="260",j.NETWORK_QUALITY="261",j.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",j.QUALITY_LIMITATION_CHANGED="263",j.LOG="264",j.AUDIO_PROCESSOR_DEBUG="265",j.SSO_SWITCH="266",j.SWITCH_ROOM_START="401",j.SWITCH_ROOM_SUCCESS="407",j.SWITCH_ROOM_FAILED="408",j))(pr||{});var F=pr;var pm=class{constructor(){l(this,"enable",!1);l(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})}},ao=new pm;var UT="%cTRTC%c%s",VT="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",FT="display: inline",vd=class vd{constructor(){l(this,"_isEnableUploadLog",!0);l(this,"_localJoinedUser",new Map);l(this,"_queue",[]);l(this,"_timeoutId",-1);l(this,"_logLevel",1);l(this,"_logLevelToUpload",2);!Ls&&!Qn&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){U.on(F.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&vr[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),U.on(F.JOIN_SUCCESS,({room:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),U.once(F.JOIN_FAILED,()=>{this.startUpload()}),U.on(F.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(Ne(r.userId)&&ke(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 y(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:u}=o[s],m={timestamp:Bc(),sdkAppId:String(a),userId:n,version:at,log:u.map(_=>_.log).join(`
4
+ `)},p=JSON.stringify(m),g=ao.enable?Ii(m,2002,a):p;yield this.uploadLogWithRetry(g,a,g instanceof Uint8Array,p),u.forEach(_=>_.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 so({retryFunction:()=>Si({url:Ti(e,ro.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(ao.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(fi()),`[${ks(e)}] <${vr[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){x(vr[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(Ne(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,u)=>`${a} ${this.logChunkToString(u)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};U.emit(F.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=vr[t])==null?void 0:a.toLowerCase())||"info";vd.PRINT_LOG_TAG?console[n](UT,VT,FT,...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){return new Xs(t)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),r=e?Number(e):-1;vr[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};l(vd,"PRINT_LOG_TAG",!(ht||pt||rm));var fm=vd,$=new fm;var $T=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)})},ba=$T;var gm=class{constructor(){l(this,"_prefix","TRTC");l(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!Ai())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(Ai())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){$.warn(t)}}getItem(t){if(!Ai())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){$.warn(e)}}setItem(t,e){if(Ai())try{let r={expiresIn:Date.now()+Hc,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){$.warn(r)}}deleteItem(t){if(!Ai())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return $.warn(e),!1}}clear(){if(Ai())try{localStorage.clear()}catch(t){$.warn(t)}}},cn=new gm;var lo={};hi(lo,{HTTPS_API:()=>cI,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>Bm,IS_GET_CAPABILITIES_SUPPORTED:()=>$m,IS_GET_SETTINGS_SUPPORTED:()=>ln,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>EI,IS_INSERTABLE_STREAM_SUPPORTED:()=>os,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>II,IS_RTC_RTP_SENDER_SUPPORTED:()=>Pa,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>mg,IS_SEI_SUPPORTED:()=>ka,IS_SPC_SUPPORTED:()=>hI,basis:()=>_I,capabilityCheck:()=>Gm,checkSystemRequirementsInternal:()=>Fd,decodeSupportStatus:()=>og,detectVideoCodecCapabilities:()=>jm,detectVideoDecoderCapabilities:()=>Eg,detectVideoEncoderCapabilities:()=>gg,encodeSupportStatus:()=>Fm,getBrowserInfo:()=>Ud,getDisplayResolution:()=>sg,isAddTransceiverSupported:()=>Bd,isBrowserSupported:()=>Lm,isCanvasCaptureStreamAPISupported:()=>cg,isCanvasSmallStreamSupported:()=>dg,isGetReceiversSupported:()=>lI,isGetSendersSupported:()=>lg,isGetTransceiversSupported:()=>mI,isGetUserMediaSupported:()=>ng,isMediaDevicesSupported:()=>Vd,isMediaSessionSupported:()=>hg,isMediaStreamTrackGeneratorSupported:()=>rI,isMediaStreamTrackProcessorSupported:()=>Vm,isReplaceTrackSupported:()=>fI,isRequestVideoFrameCallbackSupported:()=>Mi,isSIMDSupported:()=>Wm,isScaleResolutionDownBySupported:()=>ug,isScreenCaptureApiAvailable:()=>xa,isSelectedCandidatePair:()=>dI,isSetParametersSupported:()=>gI,isSetSinkIdSupported:()=>sI,isSmallStreamSupported:()=>$d,isStopTransceiverSupported:()=>pI,isTRTCSupported:()=>oI,isUnifiedPlanDefault:()=>uI,isUsedInHttpProtocol:()=>wi,isWebAudioSupported:()=>ag,isWebCodecSupported:()=>Hd,isWebCodecsSupported:()=>Um,isWebRTCSupported:()=>Hm,isWebTransportSupported:()=>pg});var wm={};hi(wm,{AUDIO_LEVEL_SCALE:()=>Ci,AudioCodecPipelineType:()=>wa,AudioDecoderDowngradeState:()=>Tm,AudioPlayerMode:()=>Am,AudioType:()=>Sm,BASIC_TYPE:()=>Ni,BannedReason:()=>bm,CONNECTION_CLOSED_REASON:()=>Lf,CheckPermissionType:()=>Dm,ClientEvent:()=>Em,CodecType:()=>Wf,ConnectionEvent:()=>kf,ConnectionState:()=>Nd,DECODE_FAILED_ERROR_CODE:()=>Nm,DenoiserMode:()=>vm,DeviceType:()=>Md,FacingMode:()=>Dd,FrameWorkType:()=>Cd,LeaveReason:()=>Rm,LocalTrackEvent:()=>co,MULTI_VIDEO_DATA_TYPE:()=>vi,MediaType:()=>At,MediaTypeLabel:()=>BT,MonitorEventId:()=>Ca,MutedFlag:()=>Vf,NetworkQualityValue:()=>Bf,PlayerState:()=>Ko,ReceiveMode:()=>Hf,RemoteStreamType:()=>Kr,RemoteTrackEvent:()=>es,RoomEvent:()=>Ri,SMALL_MODE:()=>wd,SceneNumber:()=>_m,StreamEvent:()=>Uf,StreamType:()=>$f,SubscribeMediaType:()=>Ra,TIMER_TYPE:()=>uo,TRACK_ACTION:()=>Ff,TRACK_KIND:()=>Im,TrackEvent:()=>kr,UserRole:()=>qt,UserRoleNumber:()=>ts,VideoCodec:()=>Cm,VideoCodecPipelineType:()=>Da,VideoContentHint:()=>Ma,VideoDecoderDowngradeState:()=>va,VideoPlayerMode:()=>Na,VideoType:()=>ym});var Cd=(e=>(e[e.WEBRTC=30]="WEBRTC",e[e.WASM=37]="WASM",e))(Cd||{}),kf=(N=>(N.TRACK_ADDED="track-added",N.TRACK_UPDATED="track-updated",N.TRACK_SUBSCRIBED="track-subscribed",N.STREAM_ADDED="stream-added",N.STREAM_REMOVED="stream-removed",N.STREAM_UPDATED="stream-updated",N.STREAM_PUBLISHED="stream-published",N.STREAM_SUBSCRIBED="stream-subscribed",N.STREAM_UNSUBSCRIBED="stream-unsubscribed",N.STATE_CHANGED="state-changed",N.ERROR="error",N.CONNECTION_STATE_CHANGED="connection-state-changed",N.FIREWALL_RESTRICTION="firewall-restriction",N.SEI_MESSAGE="sei-message",N.CLOSED="closed",N))(kf||{}),Lf=(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))(Lf||{}),Em=(D=>(D.STREAM_ADDED="stream-added",D.STREAM_REMOVED="stream-removed",D.STREAM_UPDATED="stream-updated",D.STREAM_SUBSCRIBED="stream-subscribed",D.CONNECTION_STATE_CHANGED="connection-state-changed",D.PEER_JOIN="peer-join",D.PEER_LEAVE="peer-leave",D.MUTE_AUDIO="mute-audio",D.MUTE_VIDEO="mute-video",D.UNMUTE_AUDIO="unmute-audio",D.UNMUTE_VIDEO="unmute-video",D.CLIENT_BANNED="client-banned",D.NETWORK_QUALITY="network-quality",D.AUDIO_VOLUME="audio-volume",D.SEI_MESSAGE="sei-message",D.ERROR="error",D))(Em||{}),Uf=(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))(Uf||{}),co=(u=>(u.DEVICE_AUTO_RECOVERED="1",u.DEVICE_RECOVER_FAILED="5",u.DEVICE_CHANGED="2",u.ERROR="3",u.PUBLISH_STATE_CHANGED="4",u.ENCODE_FAILED="6",u.TRACK_ENDED="7",u.RENDER="render",u))(co||{}),Ko=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(Ko||{}),Ri=(H=>(H.PEER_JOIN="peer-join",H.PEER_LEAVE="peer-leave",H.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",H.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",H.BANNED="banned",H.NETWORK_QUALITY="network-quality",H.AUDIO_VOLUME="audio-volume",H.SEI_MESSAGE="sei-message",H.ERROR="error",H.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",H.REMOTE_PUBLISHED="remote-published",H.REMOTE_UNPUBLISHED="remote-unpublished",H.FIREWALL_RESTRICTION="firewall-restriction",H.HEARTBEAT_REPORT="heartbeat-report",H.CUSTOM_MESSAGE="custom-message",H.LAYER_DATA="layerData",H.FIRST_VIDEO_FRAME="first-video-frame",H.DUMP="dump",H.AUDIO_FRAME="audio-frame",H.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",H.LOCAL_PUBLISH_FLAG_CHANGED="local-publish-flag-changed",H.NTP_TIME_UPDATED="ntp-time-updated",H))(Ri||{}),kr=(u=>(u.PLAYER_STATE_CHANGED="player-state-changed",u.MUTE="mute",u.UNMUTE="unmute",u.ERROR="error",u.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",u.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",u.FIRST_VIDEO_FRAME="first-video-frame",u.VIDEO_SIZE_CHANGED="video-size-changed",u))(kr||{}),es=(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))(es||{}),Vf=(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))(Vf||{}),_m=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(_m||{}),ts=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(ts||{}),qt=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(qt||{}),Nd=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(Nd||{}),Tm=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Tm||{}),va=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(va||{}),Im=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(Im||{}),Ff=(e=>(e.ADD="add",e.REMOVE="remove",e))(Ff||{}),At=(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))(At||{}),BT={1:"audio",2:"auxVideo",4:"video"},Sm=(t=>(t[t.opus=111]="opus",t))(Sm||{}),ym=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(ym||{}),$f=(e=>(e.Big="big",e.Small="small",e))($f||{}),Kr=(e=>(e.Main="main",e.Aux="auxiliary",e))(Kr||{}),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||{}),Ca=(J=>(J[J.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",J[J.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",J[J.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",J[J.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",J[J.MUTE_AUDIO=32772]="MUTE_AUDIO",J[J.MUTE_VIDEO=32773]="MUTE_VIDEO",J[J.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",J[J.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",J[J.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",J[J.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",J[J.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",J[J.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",J[J.SWITCH_CAMERA=32780]="SWITCH_CAMERA",J[J.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",J[J.REPLACE_VIDEO=32782]="REPLACE_VIDEO",J[J.REPLACE_AUDIO=32783]="REPLACE_AUDIO",J[J.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",J[J.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",J[J.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",J[J.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",J[J.JOIN=32788]="JOIN",J[J.LEAVE=32789]="LEAVE",J[J.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",J[J.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",J[J.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",J[J.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",J[J.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",J[J.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",J[J.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",J[J.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",J[J.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",J[J.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",J[J.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",J[J.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",J[J.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",J[J.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",J[J.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",J[J.PUBLISH_AUX=32805]="PUBLISH_AUX",J[J.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",J[J.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",J[J.VIDEO_ENCODER=4004]="VIDEO_ENCODER",J[J.VIDEO_DECODER=4005]="VIDEO_DECODER",J))(Ca||{}),Bf=(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))(Bf||{}),Hf=(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))(Hf||{}),Dd=(e=>(e.user="user",e.environment="environment",e))(Dd||{}),Na=(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))(Na||{}),Am=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(Am||{}),bm=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(bm||{}),Rm=(m=>(m[m.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",m[m.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",m[m.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",m[m.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",m[m.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",m[m.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",m[m.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",m[m.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",m[m.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",m))(Rm||{}),Ci=1e8,vm=(e=>(e[e.NORMAL=0]="NORMAL",e[e.FAR_FIELD_REDUCTION=1]="FAR_FIELD_REDUCTION",e))(vm||{}),Ra=class{constructor(){l(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)}},Ni=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(Ni||{}),Cm=(s=>(s.H264="h264",s.H265="h265",s.VP8="vp8",s.VP9="vp9",s.AV1="av1",s))(Cm||{}),Da=(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))(Da||{}),wa=(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))(wa||{}),Wf=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(Wf||{}),Nm=(_=>(_[_.SUCCESS=0]="SUCCESS",_[_.FAILED=1]="FAILED",_[_.WEBCODEC_INIT=2]="WEBCODEC_INIT",_[_.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",_[_.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",_[_.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",_[_.WASM_INIT=6]="WASM_INIT",_[_.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",_[_.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",_[_.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",_[_.TEST=10]="TEST",_[_.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",_))(Nm||{}),Ma=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(Ma||{}),uo=(s=>(s.INTERVAL="interval",s.TIMEOUT="timeout",s.RAF="raf",s.RIC="ric",s.INTERVAL_IN_WORKER="intervalInWorker",s))(uo||{}),wd=(e=>(e.CANVAS="canvas",e.API="api",e))(wd||{}),Dm=(o=>(o[o.NONE=0]="NONE",o[o.MICROPHONE=1]="MICROPHONE",o[o.CAMERA=2]="CAMERA",o[o.BOTH=3]="BOTH",o))(Dm||{}),Md=(e=>(e.CAMERA="camera",e.MICROPHONE="microphone",e))(Md||{});var Fe={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"},Yt={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: ${ct(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: ${ct(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 Gf=(i,t)=>t?`${qr}/${i}/${t}`:`${qr}/${i}/index.html`;var HT=()=>{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(Cl);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 $e(i){let{key:t,data:e,link:r,addDocLink:o=!0}=i,s="",n="",a="";Ge(Yt[t])?s=Yt[t](e):Ne(Yt[t])&&(s=Yt[t]);let{TRTC_ERROR_INFO:u,TRTC_ERROR_LINK:m}=HT();r?a=`${r.className}.html#${r.fnName}`:m&&m[t]&&(Ge(m[t])?a=m[t](e):Ne(m[t])&&(a=m[t]));let p=s;return Nr()&&(u&&u[t]&&(Ge(u[t])?n=u[t](e):Ne(u[t])&&(n=u[t])),n&&(o?p=`${n}
5
+ \u8BF7\u67E5\u770B\u6587\u6863: ${Gf("zh-cn",a)}
6
6
 
7
7
  `:p=`${n}
8
8
 
9
9
  `,p+=s)),o&&(p+=`
10
- Refer to: ${Wf("en",a)}
11
- `),p}var Pm=pi(Yf(),1);var QT=1,YT=0,wd=class{constructor(t=!0){l(this,"countMap",new Map);l(this,"distributionMap",new Map);l(this,"version");l(this,"log",$.createLogger({id:"kv"}));t&&(V.on("102",({track:e,cost:r})=>{this.addSuccessEvent({key:e.kind===M.AUDIO?501700:511700,cost:r})}),V.on("103",({track:e,error:r})=>{this.addFailedEvent({key:e.kind===M.AUDIO?501700:511700,error:r})}),V.on("266",({enable:e})=>{this.log.info(`${e?"enable":"disable"} sso`),e?this.addSuccessEvent({key:525701}):this.addFailedEvent({key:525701})}))}getReportData(){let t={msg_sdk_basic_info:{uint32_sdk_version:Kc(this.version||at),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([e,r])=>({uint32_key:e,uint32_count:r})),stats_distribution:[...this.distributionMap.entries()].map(([e,r])=>({uint32_key:e,distribution_items:[...r.entries()].map(([o,s])=>({uint32_item_key:o,uint32_item_value:s}))}))};return this.countMap.clear(),this.distributionMap.clear(),t}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 u;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=((u=this.distributionMap)==null?void 0:u.get(t))||new Map,a=0;if(ke(r))a=Math.floor(e/r);else for(let m=r.length-1;m>0;m--)if(e>r[m]){a=m;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:QT,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&&(ke(e)?r=e:(!x(e.extraCode)||!x(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:YT,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},Md=(H=>(H[H.enterRoom=500700]="enterRoom",H[H.exitRoom=500701]="exitRoom",H[H.switchRole=500702]="switchRole",H[H.destroy=500703]="destroy",H[H.startLocalAudio=500704]="startLocalAudio",H[H.updateLocalAudio=500705]="updateLocalAudio",H[H.stopLocalAudio=500706]="stopLocalAudio",H[H.startLocalVideo=500707]="startLocalVideo",H[H.updateLocalVideo=500708]="updateLocalVideo",H[H.stopLocalVideo=500709]="stopLocalVideo",H[H.startScreenShare=500710]="startScreenShare",H[H.updateScreenShare=500711]="updateScreenShare",H[H.stopScreenShare=500712]="stopScreenShare",H[H.startRemoteVideo=500713]="startRemoteVideo",H[H.updateRemoteVideo=500714]="updateRemoteVideo",H[H.stopRemoteVideo=500715]="stopRemoteVideo",H[H.muteRemoteAudio=500716]="muteRemoteAudio",H[H.setRemoteAudioVolume=500717]="setRemoteAudioVolume",H[H.use=500718]="use",H[H.switchRoom=500719]="switchRoom",H[H.sendSEIMessage=5e5]="sendSEIMessage",H[H.sendCustomMessage=500001]="sendCustomMessage",H))(Md||{}),Mm=(_=>(_[_.AudioMixer=550700]="AudioMixer",_[_.AIDenoiser=551700]="AIDenoiser",_[_.VirtualBackground=570700]="VirtualBackground",_[_.Beauty=571700]="Beauty",_[_.Watermark=572700]="Watermark",_[_.BasicBeauty=574700]="BasicBeauty",_[_.CDNStreaming=590700]="CDNStreaming",_[_.DeviceDetector=591700]="DeviceDetector",_[_.Debug=592700]="Debug",_[_.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",_[_.VideoMixer=594700]="VideoMixer",_[_.AudioProcessor=595700]="AudioProcessor",_))(Mm||{}),Om=(_=>(_[_.AudioMixer=550701]="AudioMixer",_[_.AIDenoiser=551701]="AIDenoiser",_[_.VirtualBackground=570701]="VirtualBackground",_[_.Beauty=571701]="Beauty",_[_.Watermark=572701]="Watermark",_[_.BasicBeauty=574701]="BasicBeauty",_[_.CDNStreaming=590701]="CDNStreaming",_[_.DeviceDetector=591701]="DeviceDetector",_[_.Debug=592701]="Debug",_[_.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",_[_.VideoMixer=594701]="VideoMixer",_[_.AudioProcessor=595701]="AudioProcessor",_))(Om||{}),xm=(_=>(_[_.AudioMixer=550702]="AudioMixer",_[_.AIDenoiser=551702]="AIDenoiser",_[_.VirtualBackground=570702]="VirtualBackground",_[_.Beauty=571702]="Beauty",_[_.Watermark=572702]="Watermark",_[_.BasicBeauty=574702]="BasicBeauty",_[_.CDNStreaming=590702]="CDNStreaming",_[_.DeviceDetector=591702]="DeviceDetector",_[_.Debug=592702]="Debug",_[_.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",_[_.VideoMixer=594702]="VideoMixer",_[_.AudioProcessor=595702]="AudioProcessor",_))(xm||{});var dn=(O=>(O[O.DECODER_TYPE=514700]="DECODER_TYPE",O[O.DECODER_HW_SW=514701]="DECODER_HW_SW",O[O.DECODE_RESULT=514702]="DECODE_RESULT",O[O.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",O[O.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",O[O.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",O[O.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",O[O.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",O[O.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",O[O.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",O[O.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",O[O.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",O[O.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",O[O.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",O[O.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",O[O.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",O[O.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",O))(dn||{});var ZT=new wd(!0),is=new wd(!1);var Q=ZT;var Re={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}},KT=new Map([[Ht,["Firefox",id]],[Ys,["Edg",nd]],[on,["Chrome",Sd]],[Tt,["Safari",yi]],[wr,["TBS",dd]],[Zs,["XWEB",ud]],[Ks&&no,["WeChat",ld]],[ua,["QQ(Win)",md]],[tn,["QQ(Mobile)",Xs]],[en,["QQ(Mobile X5)",Xs]],[la,["QQ(Mac)",hd]],[ma,["QQ(iPad)",pd]],[pa,["MI",fd]],[fa,["HW",gd]],[Ea,["Samsung",Ed]],[_a,["OPPO",_d]],[Ta,["VIVO",Td]],[Jo,["EDGE",sd]],[ca,["SogouMobile",ad]],[da,["Sogou",cd]]]);function Pd(){let i=KT.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var km=function(){return!(em||Jo||Ys&&Zl<80||Ht&&od<56)},Lm=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(t=>t in window)},kd=function(){if(!navigator.mediaDevices)return wi()||$.error(Yt.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},Zf=!1;function wi(){return location.protocol==="http:"&&!xr?(Zf||$.error($e({key:Fe.NOT_SUPPORTED_HTTP})),Zf=!0,!0):!1}var Um=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},eI=function(){return!!(window!=null&&window.MediaStreamTrackGenerator)},Vm=function(){return y(this,null,function*(){var o,s,n;if(Re.detail.isH264EncodeSupported&&Re.detail.isVp8EncodeSupported)return{isH264EncodeSupported:Re.detail.isH264EncodeSupported,isVp8EncodeSupported:Re.detail.isVp8EncodeSupported,isH265EncodeSupported:Re.detail.isH265EncodeSupported};let i,t=!1,e=!1,r=!1;try{let a=new RTCPeerConnection,u=document.createElement(M.CANVAS);u.getContext("2d");let m=u.captureStream(0);return a.addTrack(m.getVideoTracks()[0],m),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}}})},ig=function(){return y(this,null,function*(){var r;if(Re.detail.isH264DecodeSupported&&Re.detail.isVp8DecodeSupported)return{isH264DecodeSupported:Re.detail.isH264DecodeSupported,isVp8DecodeSupported:Re.detail.isVp8DecodeSupported,isH265DecodeSupported:Re.detail.isH265DecodeSupported};let i,t=!1,e=!1;try{let o=new RTCPeerConnection;Vd()?(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 tI(){return y(this,null,function*(){let[i,t]=yield Promise.all([Vm(),ig()]);return{encode:{h264:i.isH264EncodeSupported,vp8:i.isVp8EncodeSupported,h265:i.isH265EncodeSupported},decode:{h264:t.isH264DecodeSupported,vp8:t.isVp8DecodeSupported,h265:t.isH265DecodeSupported}}})}var Ld=ed(i=>y(void 0,null,function*(){let t=Date.now(),e=Bm(),r=kd(),o=Lm();if(Re.detail.isWebRTCSupported=e,Re.detail.isMediaDevicesSupported=r,Re.detail.isWebCodecsSupported=o,Re.detail.isScreenShareSupported=Ma(),Re.detail.isSmallStreamSupported=Ud(),i===37)return Object.assign(Re.detail,yield sI()),Re.detail.isBrowserSupported=o,Re.result=r&&o,Re.result||$.error(`${navigator.userAgent} ${sa(Re.detail,!1)}`),Kf(i),Q.addNumber({key:523800,value:Date.now()-t}),Re;if(Re.result&&Re.detail.isH264EncodeSupported&&Re.detail.isVp8EncodeSupported&&Re.detail.isH265EncodeSupported&&Re.detail.isH264DecodeSupported&&Re.detail.isVp8DecodeSupported&&Re.detail.isH265DecodeSupported)return Re;let s=km(),{encode:n,decode:a}=yield tI(),{h264:u,vp8:m}=n,{h264:p}=a,{h265:g}=n,{vp8:_,h265:A}=a;if(!u||!m){let C=yield Vm();$.warn(`detect encode again h264:${u} vp8:${m} result: ${JSON.stringify(C)}`),u=C.isH264EncodeSupported,m=C.isVp8EncodeSupported}if(u&&p&&pt&&Yr&&!Zs&&!wr){let{encode:C,decode:N}=yield oI();u=C,p=N}return Re.result=s&&e&&r&&(u||m)&&(p||_),Re.detail.isBrowserSupported=s,Re.detail.isWebRTCSupported=e,Re.detail.isH264EncodeSupported=u,Re.detail.isVp8EncodeSupported=m,Re.detail.isH265EncodeSupported=g,Re.detail.isH264DecodeSupported=p,Re.detail.isVp8DecodeSupported=_,Re.detail.isH265DecodeSupported=A,Re.result||$.error(`${navigator.userAgent} ${sa(Re.detail,!1)}`),Kf(),Q.addNumber({key:523800,value:Date.now()-t}),Re})),rI=function(){return Re.result},Ma=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},iI=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype,Od=null;function oI(){return y(this,null,function*(){return Od||(Od=new Promise(i=>y(this,null,function*(){let t={encode:!1,decode:!1},e=()=>{};try{let r=document.createElement("canvas"),o=r.getContext("2d");r.width=320,r.height=240;let s=setInterval(()=>{o.fillText("test",Math.floor(Math.random()*320),Math.floor(Math.random()*240))},66),n=-1,a=-1;e=()=>{clearInterval(n),clearInterval(s),clearTimeout(a),m.close(),p.close(),u.getTracks().forEach(N=>N.stop())},a=setTimeout(()=>{e(),i(t)},2*1e3);let u=r.captureStream(),m=new RTCPeerConnection({}),p=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});m.addEventListener("icecandidate",N=>p.addIceCandidate(N.candidate)),p.addEventListener("icecandidate",N=>m.addIceCandidate(N.candidate)),m.addTrack(u.getVideoTracks()[0],u);let g=yield m.createOffer();yield m.setLocalDescription(g),yield p.setRemoteDescription(g);let _=yield p.createAnswer(),A=Pm.default.parse(_.sdp),C=A.media[0].rtp.findIndex(N=>N.codec==="H264");A.media[0].rtp=[A.media[0].rtp[C]],A.media[0].fmtp=A.media[0].fmtp.filter(N=>N.payload===A.media[0].rtp[0].payload),A.media[0].rtcpFb&&(A.media[0].rtcpFb=A.media[0].rtcpFb.filter(N=>N.payload===A.media[0].rtp[0].payload)),_.sdp=Pm.default.write(A),yield p.setLocalDescription(_),yield m.setRemoteDescription(_),n=setInterval(()=>y(this,null,function*(){t.encode&&t.decode&&(e(),i(t));let[N,D]=yield Promise.all([m.getSenders()[0].getStats(),p.getReceivers()[0].getStats()]);t.encode||N.forEach(O=>{O.type==="outbound-rtp"&&O.mediaType===M.VIDEO&&O.bytesSent>0&&(t.encode=!0)}),t.decode||D.forEach(O=>{O.type==="inbound-rtp"&&O.mediaType===M.VIDEO&&O.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){e(),$.warn("detectH264Supported failed",r),i({encode:!0,decode:!0})}})).then(i=>(i.encode||(i.decode=!0),(!i.encode||!i.decode)&&$.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${Dr}`),i)),Od)})}var xd=null;function sI(){return y(this,null,function*(){return xd||(xd=new Promise(i=>y(this,null,function*(){let t={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!Lm()){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 u=[{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(u.map(p=>y(this,null,function*(){let g={type:p.type,encodeSupported:!1,decodeSupported:!1},_;try{_=yield new Promise((A,C)=>y(this,null,function*(){try{let N=new VideoEncoder({output:O=>{A(O),g.encodeSupported=!0},error:C});N.configure(p.encodeConfig),a();let D=new VideoFrame(e,{timestamp:0});N.encode(D,{keyFrame:!0}),D.close(),yield N.flush(),N.close()}catch(N){C(N)}}))}catch(A){return $.warn(`${p.type} encoder error:`,A),g}try{yield new Promise((A,C)=>y(this,null,function*(){try{let N=new VideoDecoder({output:D=>{g.decodeSupported=!0,A(0),D.close()},error:C});N.configure(p.decodeConfig),N.decode(_),yield N.flush(),N.close()}catch(N){C(N)}}))}catch(A){$.warn(`${p.type} decoder error:`,A)}return g})))).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(),$.warn("detectWebCodecsSupported failed:",n),i(t)}})),xd)})}var nI=(i,t,e)=>{location.protocol==="http:"&&!xr&&(i[t]=()=>{throw new de({code:q.INVALID_OPERATION,message:Yt.NOT_SUPPORTED_HTTP})})},aI=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(Qe(i.selected)&&!i.selected):!1};function og(){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 sg(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function ng(){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 ag(){return"captureStream"in HTMLCanvasElement.prototype}function cg(){return Ks||ht||Zr&&Zr<63?!1:!!(km()&&ag())}function dg(){return!(Zr<74||Jo||Ot<11||od<46)}function Ud(){return cg()||dg()}var cI=function(){if(x(window.RTCRtpTransceiver)||!Vd()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:Ml}),i.addTransceiver(M.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function dI(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function ug(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function uI(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function Vd(){return Ot===11&&!am?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var lI=!(!Vd()||Yr&&Zr<86);function mI(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var Oa="RTCRtpSender"in window;function hI(){return Oa&&"replaceTrack"in window.RTCRtpSender.prototype}function pI(){return Oa&&"setParameters"in window.RTCRtpSender.prototype&&ug()}var fI="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,un=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,Fm=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,$m=typeof InputDeviceInfo!="undefined"&&"getCapabilities"in InputDeviceInfo.prototype,os=Oa&&"createEncodedStreams"in window.RTCRtpSender.prototype&&Id()>=86,lg="RTCRtpScriptTransform"in window,xa=Oa&&(os||lg),Bm=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function Fd(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return x(window.AudioDecoder)||(i.AudioDecoder=!0),x(window.AudioEncoder)||(i.AudioEncoder=!0),x(window.VideoDecoder)||(i.VideoDecoder=!0),x(window.VideoEncoder)||(i.VideoEncoder=!0),x(window.ImageDecoder)||(i.ImageDecoder=!0),i}function mg(){return"mediaSession"in navigator&&!x(navigator.mediaSession.setActionHandler)}function hg(){return!x(window.WebTransport)}function gI(){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 EI(){let i={browser:`${Qr.name}/${Qr.version}`,os:sn(),displayResolution:og(),isScreenShareSupported:Ma(),isWebRTCSupported:Bm(),isGetUserMediaSupported:sg(),isWebAudioSupported:ng(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:Fd(),isMediaSessionSupported:mg(),isWebTransportSupported:hg()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var pg="checkResult";function Kf(i=30){an.setItem(pg+i,{ua:navigator.userAgent,checkResult:Re})}function Hm(i){wi();let t=an.getItem(pg+i);t&&t.ua===navigator.userAgent&&t.checkResult&&_I(t.checkResult.detail,Re.detail)&&(Re=t.checkResult),Ld(i)}function _I(i,t){return ir(i)?Object.keys(t).every(e=>e in i):!1}function Mi(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var TI="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function eg(i){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[i]}var tg=!1;function Wm(){return y(this,null,function*(){var i;try{if(tg||!((i=navigator==null?void 0:navigator.mediaCapabilities)!=null&&i.encodingInfo))return;let t=Yo(),e=um();if(t===0||e===0)return;tg=!0;let r=["H264","VP8","VP9","AV1","H265"],[o,s]=yield Promise.all([fg(r),gg(r)]);o&&Object.keys(o).forEach(n=>{let a=eg(n.toLowerCase());Q.addEnum({key:513707,value:+`${a}${+o[n].supported}${+o[n].powerEfficient}${t}${e}`,useUV:!1})}),s&&Object.keys(s).forEach(n=>{let a=eg(n.toLowerCase());Q.addEnum({key:514713,value:+`${a}${+s[n].supported}${+s[n].powerEfficient}${t}${e}`,useUV:!1})})}catch(t){$.info("detectVideoCodecCapabilities failed",t)}})}function fg(i,t=1920,e=1080,r=30,o=3e3){return y(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 gg(i,t=1920,e=1080,r=30,o=3e3){return y(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})}var _g=pi(bi(),1);var Eg=Symbol("instance"),bR=Symbol("abortCtrl"),$d=Symbol("cacheResult"),Pa=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,Ua.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},ka=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function II(i){return typeof i=="object"&&i&&"then"in i}var La=new Map;function Ze(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let u=La.get(r)||[];La.has(r)||La.set(r,u),u.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...u){let m=this;if(e.context&&(m=le.get(typeof e.context=="function"?e.context.call(this,...u):e.context)),m.state===t)return e.sync?m[$d]:Promise.resolve(m[$d]);m.state instanceof Pa&&m.state.action==e.abortAction&&m.state.abort(m);let p=null;Array.isArray(i)?i.length==0?m.state instanceof Pa&&m.state.abort(m):(typeof m.state!="string"||!i.includes(m.state))&&(p=new ka(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(p=new ka(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i}`));let g=D=>{if(e.fail&&e.fail.call(this,D),e.sync){if(e.ignoreError)return D;throw D}else return e.ignoreError?Promise.resolve(D):Promise.reject(D)};if(p)return g(p);let _=m.state,A=new Pa(_,t,n);Ua.call(m,A);let C=D=>{var O;return m[$d]=D,A.aborted||(Ua.call(m,t),(O=e.success)===null||O===void 0||O.call(this,m[$d])),D},N=D=>(Ua.call(m,_,D),g(D));try{let D=a.apply(this,u);return II(D)?D.then(C).catch(N):e.sync?C(D):Promise.resolve(C(D))}catch(D){return N(new ka(m._state,`${m.name} ${n} from ${i} to ${t} failed: ${D}`,D instanceof Error?D:new Error(String(D))))}}}}var SI=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 Ua(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(le.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var le=class i extends _g.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[Eg];o?this.name=o.name+"-"+o.count++:r[Eg]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=La.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);La.has(a)&&(a.stateDiagram.forEach(m=>r.add(m)),a.allStates.forEach(m=>n.add(m))),e.forEach(({from:m,to:p,action:g})=>{typeof m=="string"?o.push({from:m,to:p,action:g}):m.length?m.forEach(_=>{o.push({from:_,to:p,action:g})}):s.push({to:p,action:g})}),o.forEach(({from:m,to:p,action:g})=>{n.add(m),n.add(p),n.add(g+"ing"),r.add(`${m} --> ${g}ing : ${g}`),r.add(`${g}ing --> ${p} : ${g} \u{1F7E2}`),r.add(`${g}ing --> ${m} : ${g} \u{1F534}`)}),s.forEach(({to:m,action:p})=>{r.add(`${p}ing --> ${m} : ${p} \u{1F7E2}`),n.forEach(g=>{g!==m&&r.add(`${g} --> ${p}ing : ${p}`)})});let u=[...r];return Object.defineProperties(t,{stateDiagram:{value:u},allStates:{value:n}}),u}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={}){SI(i.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){Ua.call(this,t)}};le.STATECHANGED="stateChanged";le.UPDATEAFSM="updateAFSM";le.INIT="[*]";le.ON="on";le.OFF="off";le.instances=new Map;le.instances2=new WeakMap;var jm=typeof window!="undefined",Tg=jm&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},yI=jm&&window.cancelIdleCallback||function(i){clearTimeout(i)},Ig=jm&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),It=class It{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=X({delay:2e3,count:0,backgroundTask:!0},r):t==="ric"?r=X({delay:1e4,count:0},r):t==="raf"?r=X({fps:60,delay:16.6,count:0,backgroundTask:!0},r):r=X({delay:2e3,count:0,backgroundTask:!0},r);let o=ge(X({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,It.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){It.sharedWorker||(It.sharedWorker=new Worker(URL.createObjectURL(new Blob([`
10
+ Refer to: ${Gf("en",a)}
11
+ `),p}var km=pi(Zf(),1);var ZT=1,KT=0,xd=class{constructor(t=!0){l(this,"countMap",new Map);l(this,"distributionMap",new Map);l(this,"version");l(this,"log",$.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(){let t={msg_sdk_basic_info:{uint32_sdk_version:rd(this.version||at),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([e,r])=>({uint32_key:e,uint32_count:r})),stats_distribution:[...this.distributionMap.entries()].map(([e,r])=>({uint32_key:e,distribution_items:[...r.entries()].map(([o,s])=>({uint32_item_key:o,uint32_item_value:s}))}))};return this.countMap.clear(),this.distributionMap.clear(),t}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 u;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=((u=this.distributionMap)==null?void 0:u.get(t))||new Map,a=0;if(ke(r))a=Math.floor(e/r);else for(let m=r.length-1;m>0;m--)if(e>r[m]){a=m;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:ZT,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&&(ke(e)?r=e:(!x(e.extraCode)||!x(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:KT,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},Pd=(H=>(H[H.enterRoom=500700]="enterRoom",H[H.exitRoom=500701]="exitRoom",H[H.switchRole=500702]="switchRole",H[H.destroy=500703]="destroy",H[H.startLocalAudio=500704]="startLocalAudio",H[H.updateLocalAudio=500705]="updateLocalAudio",H[H.stopLocalAudio=500706]="stopLocalAudio",H[H.startLocalVideo=500707]="startLocalVideo",H[H.updateLocalVideo=500708]="updateLocalVideo",H[H.stopLocalVideo=500709]="stopLocalVideo",H[H.startScreenShare=500710]="startScreenShare",H[H.updateScreenShare=500711]="updateScreenShare",H[H.stopScreenShare=500712]="stopScreenShare",H[H.startRemoteVideo=500713]="startRemoteVideo",H[H.updateRemoteVideo=500714]="updateRemoteVideo",H[H.stopRemoteVideo=500715]="stopRemoteVideo",H[H.muteRemoteAudio=500716]="muteRemoteAudio",H[H.setRemoteAudioVolume=500717]="setRemoteAudioVolume",H[H.use=500718]="use",H[H.switchRoom=500719]="switchRoom",H[H.sendSEIMessage=5e5]="sendSEIMessage",H[H.sendCustomMessage=500001]="sendCustomMessage",H))(Pd||{}),Om=(_=>(_[_.AudioMixer=550700]="AudioMixer",_[_.AIDenoiser=551700]="AIDenoiser",_[_.VirtualBackground=570700]="VirtualBackground",_[_.Beauty=571700]="Beauty",_[_.Watermark=572700]="Watermark",_[_.BasicBeauty=574700]="BasicBeauty",_[_.CDNStreaming=590700]="CDNStreaming",_[_.DeviceDetector=591700]="DeviceDetector",_[_.Debug=592700]="Debug",_[_.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",_[_.VideoMixer=594700]="VideoMixer",_[_.AudioProcessor=595700]="AudioProcessor",_))(Om||{}),xm=(_=>(_[_.AudioMixer=550701]="AudioMixer",_[_.AIDenoiser=551701]="AIDenoiser",_[_.VirtualBackground=570701]="VirtualBackground",_[_.Beauty=571701]="Beauty",_[_.Watermark=572701]="Watermark",_[_.BasicBeauty=574701]="BasicBeauty",_[_.CDNStreaming=590701]="CDNStreaming",_[_.DeviceDetector=591701]="DeviceDetector",_[_.Debug=592701]="Debug",_[_.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",_[_.VideoMixer=594701]="VideoMixer",_[_.AudioProcessor=595701]="AudioProcessor",_))(xm||{}),Pm=(_=>(_[_.AudioMixer=550702]="AudioMixer",_[_.AIDenoiser=551702]="AIDenoiser",_[_.VirtualBackground=570702]="VirtualBackground",_[_.Beauty=571702]="Beauty",_[_.Watermark=572702]="Watermark",_[_.BasicBeauty=574702]="BasicBeauty",_[_.CDNStreaming=590702]="CDNStreaming",_[_.DeviceDetector=591702]="DeviceDetector",_[_.Debug=592702]="Debug",_[_.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",_[_.VideoMixer=594702]="VideoMixer",_[_.AudioProcessor=595702]="AudioProcessor",_))(Pm||{});var un=(O=>(O[O.DECODER_TYPE=514700]="DECODER_TYPE",O[O.DECODER_HW_SW=514701]="DECODER_HW_SW",O[O.DECODE_RESULT=514702]="DECODE_RESULT",O[O.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",O[O.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",O[O.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",O[O.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",O[O.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",O[O.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",O[O.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",O[O.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",O[O.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",O[O.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",O[O.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",O[O.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",O[O.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",O[O.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",O))(un||{});var eI=new xd(!0),is=new xd(!1);var Q=eI;var Re={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}},tI=new Map([[Ht,["Firefox",nd]],[Zs,["Edg",dd]],[sn,["Chrome",bd]],[Tt,["Safari",yi]],[Mr,["TBS",md]],[Ks,["XWEB",hd]],[en&&no,["WeChat",pd]],[ma,["QQ(Win)",fd]],[rn,["QQ(Mobile)",Qs]],[tn,["QQ(Mobile X5)",Qs]],[ha,["QQ(Mac)",gd]],[pa,["QQ(iPad)",Ed]],[ga,["MI",_d]],[Ea,["HW",Td]],[Ta,["Samsung",Id]],[Ia,["OPPO",Sd]],[Sa,["VIVO",yd]],[Jo,["EDGE",cd]],[ua,["SogouMobile",ud]],[la,["Sogou",ld]]]);function Ud(){let i=tI.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var Lm=function(){return!(em||Jo||Zs&&Zl<80||Ht&&ad<56)},Um=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(t=>t in window)},Vd=function(){if(!navigator.mediaDevices)return wi()||$.error(Yt.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},Kf=!1;function wi(){return location.protocol==="http:"&&!Pr?(Kf||$.error($e({key:Fe.NOT_SUPPORTED_HTTP})),Kf=!0,!0):!1}var Vm=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},rI=function(){return!!(window!=null&&window.MediaStreamTrackGenerator)},Fm=function(){return y(this,null,function*(){var o,s,n;if(Re.detail.isH264EncodeSupported&&Re.detail.isVp8EncodeSupported)return{isH264EncodeSupported:Re.detail.isH264EncodeSupported,isVp8EncodeSupported:Re.detail.isVp8EncodeSupported,isH265EncodeSupported:Re.detail.isH265EncodeSupported};let i,t=!1,e=!1,r=!1;try{let a=new RTCPeerConnection,u=document.createElement(M.CANVAS);u.getContext("2d");let m=u.captureStream(0);return a.addTrack(m.getVideoTracks()[0],m),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}}})},og=function(){return y(this,null,function*(){var r;if(Re.detail.isH264DecodeSupported&&Re.detail.isVp8DecodeSupported)return{isH264DecodeSupported:Re.detail.isH264DecodeSupported,isVp8DecodeSupported:Re.detail.isVp8DecodeSupported,isH265DecodeSupported:Re.detail.isH265DecodeSupported};let i,t=!1,e=!1;try{let o=new RTCPeerConnection;Bd()?(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 iI(){return y(this,null,function*(){let[i,t]=yield Promise.all([Fm(),og()]);return{encode:{h264:i.isH264EncodeSupported,vp8:i.isVp8EncodeSupported,h265:i.isH265EncodeSupported},decode:{h264:t.isH264DecodeSupported,vp8:t.isVp8DecodeSupported,h265:t.isH265DecodeSupported}}})}var Fd=id(i=>y(void 0,null,function*(){let t=Date.now(),e=Hm(),r=Vd(),o=Um();if(Re.detail.isWebRTCSupported=e,Re.detail.isMediaDevicesSupported=r,Re.detail.isWebCodecsSupported=o,Re.detail.isScreenShareSupported=xa(),Re.detail.isSmallStreamSupported=$d(),i===37)return Object.assign(Re.detail,yield aI()),Re.detail.isBrowserSupported=o,Re.result=r&&o,Re.result||$.error(`${navigator.userAgent} ${aa(Re.detail,!1)}`),eg(i),Q.addNumber({key:523800,value:Date.now()-t}),Re;if(Re.result&&Re.detail.isH264EncodeSupported&&Re.detail.isVp8EncodeSupported&&Re.detail.isH265EncodeSupported&&Re.detail.isH264DecodeSupported&&Re.detail.isVp8DecodeSupported&&Re.detail.isH265DecodeSupported)return Re;let s=Lm(),{encode:n,decode:a}=yield iI(),{h264:u,vp8:m}=n,{h264:p}=a,{h265:g}=n,{vp8:_,h265:A}=a;if(!u||!m){let C=yield Fm();$.warn(`detect encode again h264:${u} vp8:${m} result: ${JSON.stringify(C)}`),u=C.isH264EncodeSupported,m=C.isVp8EncodeSupported}if(u&&p&&pt&&Yr&&!Ks&&!Mr){let{encode:C,decode:N}=yield nI();u=C,p=N}return Re.result=s&&e&&r&&(u||m)&&(p||_),Re.detail.isBrowserSupported=s,Re.detail.isWebRTCSupported=e,Re.detail.isH264EncodeSupported=u,Re.detail.isVp8EncodeSupported=m,Re.detail.isH265EncodeSupported=g,Re.detail.isH264DecodeSupported=p,Re.detail.isVp8DecodeSupported=_,Re.detail.isH265DecodeSupported=A,Re.result||$.error(`${navigator.userAgent} ${aa(Re.detail,!1)}`),eg(),Q.addNumber({key:523800,value:Date.now()-t}),Re})),oI=function(){return Re.result},xa=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},sI=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype,kd=null;function nI(){return y(this,null,function*(){return kd||(kd=new Promise(i=>y(this,null,function*(){let t={encode:!1,decode:!1},e=()=>{};try{let r=document.createElement("canvas"),o=r.getContext("2d");r.width=320,r.height=240;let s=setInterval(()=>{o.fillText("test",Math.floor(Math.random()*320),Math.floor(Math.random()*240))},66),n=-1,a=-1;e=()=>{clearInterval(n),clearInterval(s),clearTimeout(a),m.close(),p.close(),u.getTracks().forEach(N=>N.stop())},a=setTimeout(()=>{e(),i(t)},2*1e3);let u=r.captureStream(),m=new RTCPeerConnection({}),p=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});m.addEventListener("icecandidate",N=>p.addIceCandidate(N.candidate)),p.addEventListener("icecandidate",N=>m.addIceCandidate(N.candidate)),m.addTrack(u.getVideoTracks()[0],u);let g=yield m.createOffer();yield m.setLocalDescription(g),yield p.setRemoteDescription(g);let _=yield p.createAnswer(),A=km.default.parse(_.sdp),C=A.media[0].rtp.findIndex(N=>N.codec==="H264");A.media[0].rtp=[A.media[0].rtp[C]],A.media[0].fmtp=A.media[0].fmtp.filter(N=>N.payload===A.media[0].rtp[0].payload),A.media[0].rtcpFb&&(A.media[0].rtcpFb=A.media[0].rtcpFb.filter(N=>N.payload===A.media[0].rtp[0].payload)),_.sdp=km.default.write(A),yield p.setLocalDescription(_),yield m.setRemoteDescription(_),n=setInterval(()=>y(this,null,function*(){t.encode&&t.decode&&(e(),i(t));let[N,D]=yield Promise.all([m.getSenders()[0].getStats(),p.getReceivers()[0].getStats()]);t.encode||N.forEach(O=>{O.type==="outbound-rtp"&&O.mediaType===M.VIDEO&&O.bytesSent>0&&(t.encode=!0)}),t.decode||D.forEach(O=>{O.type==="inbound-rtp"&&O.mediaType===M.VIDEO&&O.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){e(),$.warn("detectH264Supported failed",r),i({encode:!0,decode:!0})}})).then(i=>(i.encode||(i.decode=!0),(!i.encode||!i.decode)&&$.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${wr}`),i)),kd)})}var Ld=null;function aI(){return y(this,null,function*(){return Ld||(Ld=new Promise(i=>y(this,null,function*(){let t={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!Um()){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 u=[{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(u.map(p=>y(this,null,function*(){let g={type:p.type,encodeSupported:!1,decodeSupported:!1},_;try{_=yield new Promise((A,C)=>y(this,null,function*(){try{let N=new VideoEncoder({output:O=>{A(O),g.encodeSupported=!0},error:C});N.configure(p.encodeConfig),a();let D=new VideoFrame(e,{timestamp:0});N.encode(D,{keyFrame:!0}),D.close(),yield N.flush(),N.close()}catch(N){C(N)}}))}catch(A){return $.warn(`${p.type} encoder error:`,A),g}try{yield new Promise((A,C)=>y(this,null,function*(){try{let N=new VideoDecoder({output:D=>{g.decodeSupported=!0,A(0),D.close()},error:C});N.configure(p.decodeConfig),N.decode(_),yield N.flush(),N.close()}catch(N){C(N)}}))}catch(A){$.warn(`${p.type} decoder error:`,A)}return g})))).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(),$.warn("detectWebCodecsSupported failed:",n),i(t)}})),Ld)})}var cI=(i,t,e)=>{location.protocol==="http:"&&!Pr&&(i[t]=()=>{throw new de({code:q.INVALID_OPERATION,message:Yt.NOT_SUPPORTED_HTTP})})},dI=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(Qe(i.selected)&&!i.selected):!1};function sg(){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 ng(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function ag(){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 cg(){return"captureStream"in HTMLCanvasElement.prototype}function dg(){return en||ht||Zr&&Zr<63?!1:!!(Lm()&&cg())}function ug(){return!(Zr<74||Jo||Ot<11||ad<46)}function $d(){return dg()||ug()}var uI=function(){if(x(window.RTCRtpTransceiver)||!Bd()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:Ml}),i.addTransceiver(M.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function lI(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function lg(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function mI(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function Bd(){return Ot===11&&!am?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var hI=!(!Bd()||Yr&&Zr<86);function pI(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var Pa="RTCRtpSender"in window;function fI(){return Pa&&"replaceTrack"in window.RTCRtpSender.prototype}function gI(){return Pa&&"setParameters"in window.RTCRtpSender.prototype&&lg()}var EI="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,ln=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,$m=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,Bm=typeof InputDeviceInfo!="undefined"&&"getCapabilities"in InputDeviceInfo.prototype,os=Pa&&"createEncodedStreams"in window.RTCRtpSender.prototype&&Ad()>=86,mg="RTCRtpScriptTransform"in window,ka=Pa&&(os||mg),Hm=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function Hd(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return x(window.AudioDecoder)||(i.AudioDecoder=!0),x(window.AudioEncoder)||(i.AudioEncoder=!0),x(window.VideoDecoder)||(i.VideoDecoder=!0),x(window.VideoEncoder)||(i.VideoEncoder=!0),x(window.ImageDecoder)||(i.ImageDecoder=!0),i}function hg(){return"mediaSession"in navigator&&!x(navigator.mediaSession.setActionHandler)}function pg(){return!x(window.WebTransport)}function Wm(){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 _I(){let i={browser:`${Qr.name}/${Qr.version}`,os:nn(),displayResolution:sg(),isScreenShareSupported:xa(),isWebRTCSupported:Hm(),isGetUserMediaSupported:ng(),isWebAudioSupported:ag(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:Hd(),isMediaSessionSupported:hg(),isWebTransportSupported:pg()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var fg="checkResult";function eg(i=30){cn.setItem(fg+i,{ua:navigator.userAgent,checkResult:Re})}function Gm(i){wi();let t=cn.getItem(fg+i);t&&t.ua===navigator.userAgent&&t.checkResult&&TI(t.checkResult.detail,Re.detail)&&(Re=t.checkResult),Fd(i)}function TI(i,t){return ir(i)?Object.keys(t).every(e=>e in i):!1}function Mi(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var II="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function tg(i){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[i]}var rg=!1;function jm(){return y(this,null,function*(){var i;try{if(rg||!((i=navigator==null?void 0:navigator.mediaCapabilities)!=null&&i.encodingInfo))return;let t=Yo(),e=um();if(t===0||e===0)return;rg=!0;let r=["H264","VP8","VP9","AV1","H265"],[o,s]=yield Promise.all([gg(r),Eg(r)]);o&&Object.keys(o).forEach(n=>{let a=tg(n.toLowerCase());Q.addEnum({key:513707,value:+`${a}${+o[n].supported}${+o[n].powerEfficient}${t}${e}`,useUV:!1})}),s&&Object.keys(s).forEach(n=>{let a=tg(n.toLowerCase());Q.addEnum({key:514713,value:+`${a}${+s[n].supported}${+s[n].powerEfficient}${t}${e}`,useUV:!1})})}catch(t){$.info("detectVideoCodecCapabilities failed",t)}})}function gg(i,t=1920,e=1080,r=30,o=3e3){return y(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 Eg(i,t=1920,e=1080,r=30,o=3e3){return y(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})}var Tg=pi(bi(),1);var _g=Symbol("instance"),RR=Symbol("abortCtrl"),Wd=Symbol("cacheResult"),La=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,Fa.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},Ua=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function SI(i){return typeof i=="object"&&i&&"then"in i}var Va=new Map;function Ze(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let u=Va.get(r)||[];Va.has(r)||Va.set(r,u),u.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...u){let m=this;if(e.context&&(m=le.get(typeof e.context=="function"?e.context.call(this,...u):e.context)),m.state===t)return e.sync?m[Wd]:Promise.resolve(m[Wd]);m.state instanceof La&&m.state.action==e.abortAction&&m.state.abort(m);let p=null;Array.isArray(i)?i.length==0?m.state instanceof La&&m.state.abort(m):(typeof m.state!="string"||!i.includes(m.state))&&(p=new Ua(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(p=new Ua(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i}`));let g=D=>{if(e.fail&&e.fail.call(this,D),e.sync){if(e.ignoreError)return D;throw D}else return e.ignoreError?Promise.resolve(D):Promise.reject(D)};if(p)return g(p);let _=m.state,A=new La(_,t,n);Fa.call(m,A);let C=D=>{var O;return m[Wd]=D,A.aborted||(Fa.call(m,t),(O=e.success)===null||O===void 0||O.call(this,m[Wd])),D},N=D=>(Fa.call(m,_,D),g(D));try{let D=a.apply(this,u);return SI(D)?D.then(C).catch(N):e.sync?C(D):Promise.resolve(C(D))}catch(D){return N(new Ua(m._state,`${m.name} ${n} from ${i} to ${t} failed: ${D}`,D instanceof Error?D:new Error(String(D))))}}}}var yI=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 Fa(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(le.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var le=class i extends Tg.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[_g];o?this.name=o.name+"-"+o.count++:r[_g]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=Va.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);Va.has(a)&&(a.stateDiagram.forEach(m=>r.add(m)),a.allStates.forEach(m=>n.add(m))),e.forEach(({from:m,to:p,action:g})=>{typeof m=="string"?o.push({from:m,to:p,action:g}):m.length?m.forEach(_=>{o.push({from:_,to:p,action:g})}):s.push({to:p,action:g})}),o.forEach(({from:m,to:p,action:g})=>{n.add(m),n.add(p),n.add(g+"ing"),r.add(`${m} --> ${g}ing : ${g}`),r.add(`${g}ing --> ${p} : ${g} \u{1F7E2}`),r.add(`${g}ing --> ${m} : ${g} \u{1F534}`)}),s.forEach(({to:m,action:p})=>{r.add(`${p}ing --> ${m} : ${p} \u{1F7E2}`),n.forEach(g=>{g!==m&&r.add(`${g} --> ${p}ing : ${p}`)})});let u=[...r];return Object.defineProperties(t,{stateDiagram:{value:u},allStates:{value:n}}),u}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={}){yI(i.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){Fa.call(this,t)}};le.STATECHANGED="stateChanged";le.UPDATEAFSM="updateAFSM";le.INIT="[*]";le.ON="on";le.OFF="off";le.instances=new Map;le.instances2=new WeakMap;var zm=typeof window!="undefined",Ig=zm&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},AI=zm&&window.cancelIdleCallback||function(i){clearTimeout(i)},Sg=zm&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),It=class It{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=X({delay:2e3,count:0,backgroundTask:!0},r):t==="ric"?r=X({delay:1e4,count:0},r):t==="raf"?r=X({fps:60,delay:16.6,count:0,backgroundTask:!0},r):r=X({delay:2e3,count:0,backgroundTask:!0},r);let o=ge(X({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,It.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){It.sharedWorker||(It.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: ${Wf("en",a)}
21
21
  timers.delete(taskId);
22
22
  }
23
23
  };
24
- `],{type:"application/javascript"}))),It.sharedWorker.onmessage=e=>{var r;if(e.data.type==="tick"){let o=It.workerTasks.get(e.data.taskId);o&&(It.isBreakLoop(o)?((r=It.sharedWorker)==null||r.postMessage({type:"stop",taskId:o.taskID}),It.workerTasks.delete(o.taskID)):(o.callback(),o.loopCount+=1))}}),It.workerTasks.set(t.taskID,t),It.sharedWorker.postMessage({taskId:t.taskID,delay:t.delay,type:"start"})}static timeout(t){let e=()=>{if(t.callback(),t.loopCount+=1,!It.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),!It.isBreakLoop(t))return t.ricID=Tg(o,{timeout:t.delay})};return t.ricID=Tg(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,It.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),!It.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&&Ig&&Ig(o),s&&yI(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}};l(It,"taskMap",new Map),l(It,"currentTaskID",1),l(It,"sharedWorker",null),l(It,"workerTasks",new Map);var Gm=It,dt=Gm;var PR={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 qe={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 Lr={};hi(Lr,{create:()=>bt,remove:()=>ut});var Va=new WeakMap;function bt(i,t){Va.has(i)||Va.set(i,[]);let e=Va.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 ut(i){let t=Va.get(i);t&&(t.forEach(e=>e()),Va.delete(i))}var qm=class{constructor(){l(this,"_roomIdMap",new Map);l(this,"_configs");typeof registerProcessor=="undefined"&&(this._configs={sdkAppId:"",userId:"",version:at,env:gi.QCLOUD,browserVersion:Qr.name+Qr.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){xr||!$.isAbleToUpload||this._configs.env===gi.QCLOUD&&this.uploadEventToKibana(ge(X({},t),{result:"success"}))}logFailedEvent(t){if(xr||!$.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===gi.QCLOUD&&this.uploadEventToKibana(ge(X({},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:Vc(),sdkAppId:this._configs.sdkAppId,userId:e||this._configs.userId,version:at,log:t};r&&(o.errorInfo=r.message,r.stack&&(o.errorInfo+=`
25
- ${r.stack}`));let s=ao.enable?Ii(o,2002,Number(this._configs.sdkAppId)):JSON.stringify(o);this.sendRequest(Ti(this._configs.sdkAppId,ro.LOG),s)}sendRequest(t,e){setTimeout(()=>Si({url:t,body:e,priority:"low"}).catch(()=>{}),2e3)}},He=new qm;var ss=new WeakMap;function ns({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,n){let a=so({retryFunction:n.value,settings:i,onError({error:u,retry:m,reject:p,retryFuncArgs:g}){var _;t?t.call(this,u,()=>{var A;(A=ss.get(o))!=null&&A.has(s)?m():p(u)},p,g):(_=ss.get(o))!=null&&_.has(s)?m():p(u)},onRetrying(u,m){var p;oo(e)&&e.call(this,u,m),(p=ss.get(o))!=null&&p.has(s)&&(ss.get(o).get(s).stopRetry=m)},onRetryFailed:r});return n.value=function(...u){let m=ss.get(o);return m?m.set(s,{args:u}):ss.set(o,new Map([[s,{args:u}]])),a.apply(this,u).finally(()=>{var p;return(p=ss.get(o))==null?void 0:p.delete(s)})},n}}var Ur=class extends le{constructor(e,r){super(e.id,`${r}-player`);this.options=e;this.kind=r;l(this,"id");l(this,"element",null);l(this,"track");l(this,"url");l(this,"attr");l(this,"mode");l(this,"muted");l(this,"_log");l(this,"_pausedRetryCount");l(this,"_isElementPlayingFired",!1);l(this,"_interval");l(this,"_delayDestroyTimeoutId",0);l(this,"_playSuccessResolve");l(this,"_isReplayByRecreateMediaStreamCalled",!1);l(this,"isInAutoPlayFailedState",!1);this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=Bo,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 y(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=$e({key:Fe.PLAY_FAILED,data:{media:this.kind,error:e}});if(this._log.warn(e),r.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new de({code:q.PLAY_NOT_ALLOWED,message:r})}})}stop(e=0){this.isStopped||(this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!hr?this._delayDestroyTimeoutId||(this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(M.ENDED),this._interval>0&&dt.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.isPlaying&&((e=this.element)==null||e.pause())}resume(){return this._log.info("resume"),this.isPlaying?Promise.resolve():sm?this.replay():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 bt(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);Lr==null||Lr.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(){V.on(F.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&ut(e)}unbindEvents(){this.element&&ut(this.element),this.unbindTrackEvents(),V.off(F.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case M.PLAYING:this.isInAutoPlayFailedState=!1,this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(M.PLAYING),this._interval&&(dt.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),ht&&(this._interval=dt.run("timeout",()=>{this.element&&this._state==="PAUSED"&&this.resume()},{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}`),He.uploadEvent({log:`stat-${this.kind}-${lr.PLAYER_ERROR}-${o}-${navigator.userAgent}`,error:this.element.error}),tm||ga?this.emit(qe.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case M.LOADEDDATA:this.kind===M.VIDEO&&this.emit(qe.LOADED_DATA);break;case M.LOADEDMETADATA:this.kind===M.VIDEO&&this.emit(qe.LOADED_META_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),He.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),Q.addSuccessEvent({key:this.kind===M.AUDIO?506700:516700})}).catch(()=>{var r;this._log.error("replayByRecreateMediaStream failed"),He.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),Q.addFailedEvent({key:this.kind===M.AUDIO?506700:516700,error:(r=this.element)==null?void 0:r.error}),this.emit(qe.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((r,o)=>{aa(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)}),aa(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 y(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.resume()),!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}};l(Ur,"PlayerEvent",qe),ee([ns({settings:{retries:2,timeout:0},onError(e,r,o,s){s[0]=(s[0]||1e3)+1e3,r()}})],Ur.prototype,"doReplayByRecreateMediaStream",1),ee([Ze([],"PLAYING",{sync:!0,success(e){this.emit(qe.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}})],Ur.prototype,"handlePlaying",1),ee([Ze("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(e){this.emit(qe.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}})],Ur.prototype,"handlePaused",1),ee([Ze([],"STOPPED",{sync:!0,success(e){this.emit(qe.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}})],Ur.prototype,"handleStopped",1);var Oi="trtc_autoplay",zm=`${Oi}_mask`,ln=`${Oi}_wrapper`,Sg=`${Oi}_header`,Jm=`${Oi}_content`,Bd=`${Oi}_action_wrapper`,Xm=`${Oi}_question`,Qm=`${Oi}_collapse`,Hd=`${Oi}_action_confirm`,yg=`${Oi}_detail`,Ag="#2473E8",Zm="dialog",bI=`${Zm}-show`,RI=`${Zm}-1`,vI=`${Zm}-2`,bg=!1,Km=()=>!!document.querySelector(`.${ln}`),vg=`${qr}/${Cr()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,Rg=`<br><a href='${vg}' target='_blank'>${Cr()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,CI=`${Cr()?`\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${Rg}`:`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. ${Rg}`}`,Ym=class{constructor(){l(this,"content","\u97F3\u89C6\u9891\u64AD\u653E\u88AB\u6D4F\u89C8\u5668\u62E6\u622A\uFF0C\u8BF7\u70B9\u51FB\u201C\u6062\u590D\u64AD\u653E\u201D\u3002");l(this,"_dialogNode",null);l(this,"_bodyPosition","");l(this,"_showDetail",!1);l(this,"_isCollapseClicked",!1);l(this,"_isQuestionClicked",!1);if(Cr()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!bg){let t=document.createElement("style");t.innerHTML=`.${zm}{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;}.${zm} div:not(.${Bd}){display:block !important;}.${ln}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${ln} a{color:${Ag};}.${Sg}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${Jm}{margin:8px 0;}.${Bd}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${Qm}{margin-right:auto;cursor:pointer}.${Xm}{height:100%;line-height:16px;cursor:pointer;}.${Hd}{margin-left:8px;color:#fff;background:${Ag};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${Hd}:hover{opacity:0.9;}.${Qm},.${Hd},.${Jm},.${Xm}{font-size:14px;}@media screen and (max-width:750px){.${ln}{width:80vw;}}`,document.head.appendChild(t),bg=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${zm}"><div class='${ln}'><div class='${Sg}'>${location.host}</div><div class='${Jm}'>${this.content}</div><div class='${yg}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${CI}</div><div class='${Bd}'></div></div></div>`.trim();let e=document.createElement("button");e.className=Hd,e.innerText=Cr()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=Xm,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
24
+ `],{type:"application/javascript"}))),It.sharedWorker.onmessage=e=>{var r;if(e.data.type==="tick"){let o=It.workerTasks.get(e.data.taskId);o&&(It.isBreakLoop(o)?((r=It.sharedWorker)==null||r.postMessage({type:"stop",taskId:o.taskID}),It.workerTasks.delete(o.taskID)):(o.callback(),o.loopCount+=1))}}),It.workerTasks.set(t.taskID,t),It.sharedWorker.postMessage({taskId:t.taskID,delay:t.delay,type:"start"})}static timeout(t){let e=()=>{if(t.callback(),t.loopCount+=1,!It.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),!It.isBreakLoop(t))return t.ricID=Ig(o,{timeout:t.delay})};return t.ricID=Ig(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,It.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),!It.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&&Sg&&Sg(o),s&&AI(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}};l(It,"taskMap",new Map),l(It,"currentTaskID",1),l(It,"sharedWorker",null),l(It,"workerTasks",new Map);var qm=It,dt=qm;var kR={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 qe={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 Lr={};hi(Lr,{create:()=>bt,remove:()=>ut});var $a=new WeakMap;function bt(i,t){$a.has(i)||$a.set(i,[]);let e=$a.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 ut(i){let t=$a.get(i);t&&(t.forEach(e=>e()),$a.delete(i))}var Jm=class{constructor(){l(this,"_roomIdMap",new Map);l(this,"_configs");typeof registerProcessor=="undefined"&&(this._configs={sdkAppId:"",userId:"",version:at,env:gi.QCLOUD,browserVersion:Qr.name+Qr.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){Pr||!$.isAbleToUpload||this._configs.env===gi.QCLOUD&&this.uploadEventToKibana(ge(X({},t),{result:"success"}))}logFailedEvent(t){if(Pr||!$.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===gi.QCLOUD&&this.uploadEventToKibana(ge(X({},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:Bc(),sdkAppId:this._configs.sdkAppId,userId:e||this._configs.userId,version:at,log:t};r&&(o.errorInfo=r.message,r.stack&&(o.errorInfo+=`
25
+ ${r.stack}`));let s=ao.enable?Ii(o,2002,Number(this._configs.sdkAppId)):JSON.stringify(o);this.sendRequest(Ti(this._configs.sdkAppId,ro.LOG),s)}sendRequest(t,e){setTimeout(()=>Si({url:t,body:e,priority:"low"}).catch(()=>{}),2e3)}},He=new Jm;var ss=new WeakMap;function ns({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,n){let a=so({retryFunction:n.value,settings:i,onError({error:u,retry:m,reject:p,retryFuncArgs:g}){var _;t?t.call(this,u,()=>{var A;(A=ss.get(o))!=null&&A.has(s)?m():p(u)},p,g):(_=ss.get(o))!=null&&_.has(s)?m():p(u)},onRetrying(u,m){var p;oo(e)&&e.call(this,u,m),(p=ss.get(o))!=null&&p.has(s)&&(ss.get(o).get(s).stopRetry=m)},onRetryFailed:r});return n.value=function(...u){let m=ss.get(o);return m?m.set(s,{args:u}):ss.set(o,new Map([[s,{args:u}]])),a.apply(this,u).finally(()=>{var p;return(p=ss.get(o))==null?void 0:p.delete(s)})},n}}var Ur=class extends le{constructor(e,r){super(e.id,`${r}-player`);this.options=e;this.kind=r;l(this,"id");l(this,"element",null);l(this,"track");l(this,"url");l(this,"attr");l(this,"mode");l(this,"muted");l(this,"_log");l(this,"_pausedRetryCount");l(this,"_isElementPlayingFired",!1);l(this,"_interval");l(this,"_delayDestroyTimeoutId",0);l(this,"_playSuccessResolve");l(this,"_isReplayByRecreateMediaStreamCalled",!1);l(this,"isInAutoPlayFailedState",!1);this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=Bo,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 y(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=$e({key:Fe.PLAY_FAILED,data:{media:this.kind,error:e}});if(this._log.warn(e),r.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new de({code:q.PLAY_NOT_ALLOWED,message:r})}})}stop(e=0){this.isStopped||(this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!hr?this._delayDestroyTimeoutId||(this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(M.ENDED),this._interval>0&&dt.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.isPlaying&&((e=this.element)==null||e.pause())}resume(){return this._log.info("resume"),this.isPlaying?Promise.resolve():sm?this.replay():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 bt(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);Lr==null||Lr.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(F.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&ut(e)}unbindEvents(){this.element&&ut(this.element),this.unbindTrackEvents(),U.off(F.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case M.PLAYING:this.isInAutoPlayFailedState=!1,this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(M.PLAYING),this._interval&&(dt.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),ht&&(this._interval=dt.run("timeout",()=>{this.element&&this._state==="PAUSED"&&this.resume()},{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}`),He.uploadEvent({log:`stat-${this.kind}-${lr.PLAYER_ERROR}-${o}-${navigator.userAgent}`,error:this.element.error}),tm||_a?this.emit(qe.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case M.LOADEDDATA:this.kind===M.VIDEO&&this.emit(qe.LOADED_DATA);break;case M.LOADEDMETADATA:this.kind===M.VIDEO&&this.emit(qe.LOADED_META_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),He.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),Q.addSuccessEvent({key:this.kind===M.AUDIO?506700:516700})}).catch(()=>{var r;this._log.error("replayByRecreateMediaStream failed"),He.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),Q.addFailedEvent({key:this.kind===M.AUDIO?506700:516700,error:(r=this.element)==null?void 0:r.error}),this.emit(qe.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((r,o)=>{da(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)}),da(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 y(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.resume()),!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}};l(Ur,"PlayerEvent",qe),te([ns({settings:{retries:2,timeout:0},onError(e,r,o,s){s[0]=(s[0]||1e3)+1e3,r()}})],Ur.prototype,"doReplayByRecreateMediaStream",1),te([Ze([],"PLAYING",{sync:!0,success(e){this.emit(qe.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}})],Ur.prototype,"handlePlaying",1),te([Ze("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(e){this.emit(qe.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}})],Ur.prototype,"handlePaused",1),te([Ze([],"STOPPED",{sync:!0,success(e){this.emit(qe.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}})],Ur.prototype,"handleStopped",1);var Oi="trtc_autoplay",Xm=`${Oi}_mask`,mn=`${Oi}_wrapper`,yg=`${Oi}_header`,Qm=`${Oi}_content`,Gd=`${Oi}_action_wrapper`,Ym=`${Oi}_question`,Zm=`${Oi}_collapse`,jd=`${Oi}_action_confirm`,Ag=`${Oi}_detail`,bg="#2473E8",eh="dialog",RI=`${eh}-show`,vI=`${eh}-1`,CI=`${eh}-2`,Rg=!1,th=()=>!!document.querySelector(`.${mn}`),Cg=`${qr}/${Nr()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,vg=`<br><a href='${Cg}' target='_blank'>${Nr()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,NI=`${Nr()?`\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${vg}`:`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. ${vg}`}`,Km=class{constructor(){l(this,"content","\u97F3\u89C6\u9891\u64AD\u653E\u88AB\u6D4F\u89C8\u5668\u62E6\u622A\uFF0C\u8BF7\u70B9\u51FB\u201C\u6062\u590D\u64AD\u653E\u201D\u3002");l(this,"_dialogNode",null);l(this,"_bodyPosition","");l(this,"_showDetail",!1);l(this,"_isCollapseClicked",!1);l(this,"_isQuestionClicked",!1);if(Nr()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!Rg){let t=document.createElement("style");t.innerHTML=`.${Xm}{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;}.${Xm} div:not(.${Gd}){display:block !important;}.${mn}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${mn} a{color:${bg};}.${yg}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${Qm}{margin:8px 0;}.${Gd}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${Zm}{margin-right:auto;cursor:pointer}.${Ym}{height:100%;line-height:16px;cursor:pointer;}.${jd}{margin-left:8px;color:#fff;background:${bg};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${jd}:hover{opacity:0.9;}.${Zm},.${jd},.${Qm},.${Ym}{font-size:14px;}@media screen and (max-width:750px){.${mn}{width:80vw;}}`,document.head.appendChild(t),Rg=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${Xm}"><div class='${mn}'><div class='${yg}'>${location.host}</div><div class='${Qm}'>${this.content}</div><div class='${Ag}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${NI}</div><div class='${Gd}'></div></div></div>`.trim();let e=document.createElement("button");e.className=jd,e.innerText=Nr()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=Ym,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=Qm,o.innerText=`${Cr()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,n=s.querySelector(`.${Bd}`);return n.appendChild(o),n.appendChild(r),n.appendChild(e),s}addDiaLog(){Km()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${ln}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",$.info("show autoplay dialog"),He.uploadEvent({log:bI}))}deleteDiaLog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null)}onConfirm(){$.warn("confirm clicked, try resume stream"),V.emit(F.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDiaLog()}onCollapseClick(){let t=this._dialogNode.querySelector(`.${yg}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||He.uploadEvent({log:RI}),this._isCollapseClicked=!0}onQuestionClick(){window.open(vg,"_blank"),this._isQuestionClicked||He.uploadEvent({log:vI}),this._isQuestionClicked=!0}},Wd=Ym;var zt=class extends Ur{constructor(e){super(e,M.VIDEO);l(this,"stat",{});l(this,"_calculateTimeout",-1);l(this,"viewMirror",!1);l(this,"objectFit");l(this,"container");l(this,"canvas");l(this,"_preSize",{width:0,height:0});this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,x(e.viewMirror)||(this.viewMirror=e.viewMirror),x(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,(r=this.container)==null||r.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e=`width: 100%; height: 100%; object-fit: ${this.objectFit};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,u,m,p,g;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=Bo,this._log.info(`view container ${(s=this.container)==null?void 0:s.id} is recreated`)),this._pausedRetryCount>0&&!Km()&&(this._log.info(`[${Bo-this._pausedRetryCount+1}/${Bo}] ${this.kind} player auto resume when paused`),this.resume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let _=this.element.style.transform;r===M.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=_.replace("scaleX(-1)",""):r===M.LEAVE_PICTURE_IN_PICTURE&&!_.includes("scaleX")&&(this.element.style.transform=`${_} 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 ${(u=this.element)==null?void 0:u.videoWidth}x${(m=this.element)==null?void 0:m.videoHeight}`),this._preSize.height=((p=this.element)==null?void 0:p.videoHeight)||0,this._preSize.width=((g=this.element)==null?void 0:g.videoWidth)||0,this.emit(qe.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(qe.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(Mi()&&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 xi(i,t){return y(this,null,function*(){if(!i.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield i.audioWorklet.addModule(t),$.info("worklet addModule success")}catch(e){throw $.info(`worklet addModule catch error. ${e.message}`),e}})}var Fa;typeof AudioContext!="undefined"?Fa=AudioContext:typeof webkitAudioContext!="undefined"?Fa=webkitAudioContext:typeof mozAudioContext!="undefined"&&(Fa=mozAudioContext);var ih=1500,pr,Cg=-1,Gd=0,$a=-1,rh=!1;Ng();function Ng(){try{if(pr)return;pr=new Fa({sampleRate:48e3}),pr.onstatechange=()=>{$.info(`context state: ${pr.state}${pr.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),mn()},clearTimeout(Cg)}catch(i){$.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof Fa}`),Cg=setTimeout(Ng,1e3)}}var mn=()=>{pr.state==="suspended"?(Gd=_e(),NI(),mo(),document.addEventListener("click",mn)):pr.state==="interrupted"?mo():(Gd&&(Q.addNumber({key:507800,value:_e()-Gd,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),Gd=0),DI(),document.removeEventListener("visibilitychange",mn),document.removeEventListener("click",mn))},eh=0,th=-1;function mo(){return new Promise((i,t)=>{if(pr.state==="running")return i();Date.now()-eh<1e3?(clearTimeout(th),th=setTimeout(()=>{eh=Date.now(),pr.resume().then(i,t)},1e3)):(clearTimeout(th),eh=Date.now(),pr.resume().then(i,t))}).catch(i=>{$.warn(`context resume failed: ${i}`),document.addEventListener("visibilitychange",mn)})}document.addEventListener("click",mn);function NI(){$a===-1&&($a=setTimeout(()=>{pr.state==="suspended"&&(rh=!0,V.emit("155",{isSuspended:!0}))},ih))}function DI(){$a!==-1&&(clearTimeout($a),$a=-1,rh&&(rh=!1,V.emit("155",{isSuspended:!1})))}var We=i=>pr;var gt=class{constructor(t){this.name=t;l(this,"node");l(this,"node2");l(this,"pre",new Set);l(this,"next",new Set);l(this,"context");l(this,"connectedNodes",new Set);l(this,"nextInputChannelMap",new Map);l(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){$.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(),Q.addSuccessEvent({key:502701})}catch(o){$.error(o),Q.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(),Q.addSuccessEvent({key:502702})}catch(e){$.error(e),Q.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}},jd=class extends gt{constructor(e=256){super();this.fftSize=e;l(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}},Ba=class{constructor(){l(this,"source",new gt);l(this,"gain",new gt);l(this,"destination",new gt)}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(We().createGain()),this.gain.node.gain.value=t}replaceSource(t){this.source.replaceNode(Ha(t))}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}},hn=class extends Ba{constructor(e){super();this.context=e;l(this,"aec",new gt("aec"));l(this,"mixNode",new gt("mixNode"));l(this,"silentNode",new gt("silentNode"));l(this,"denoiser",new gt("denoiser"));l(this,"voiceChanger",new gt("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}},qd=class{constructor(){l(this,"audioContext",We("audio-mixer"));l(this,"destination",this.audioContext.createMediaStreamDestination());l(this,"inputs",new Set);l(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]}},Dg=new WeakMap;function Ha(i){let t=Dg.get(i);if(t)return t;let e=We();if(i instanceof HTMLAudioElement)t=e.createMediaElementSource(i);else if(i instanceof MediaStreamTrack)t=e.createMediaStreamSource(new MediaStream([i]));else return i;return Dg.set(i,t),t}var nr=class nr{constructor(t){l(this,"_volume",0);l(this,"_volumeDb",0);l(this,"_log");l(this,"_scriptProcessorNode",null);l(this,"_audioWorkletNode",null);l(this,"_interval",200);l(this,"ready",this.preload());let{log:e}=t;this._log=e,V.on(F.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-nr.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!nr.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);';nr.workletReady=xi(nr.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return nr.workletReady.then(()=>this.initAudioWorklet()).catch(t=>(this._log.error(`volumeMeter preload error: ${t}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(nr.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=e=>{nr.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}`),He.logFailedEvent({userId:this._log.userId,eventType:lr.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=We("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{nr.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,V.off(F.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})}};l(nr,"lastMessageTime",0),l(nr,"audioContext",We("volume-meter")),l(nr,"workletReady");var zd=nr,Wa=class extends gt{constructor(e){super();l(this,"_volumeMeter");this._volumeMeter=new zd(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return y(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()}}},Jd=zd;var xg=pi(bi(),1);var Mg=i=>t=>t.deviceId===i;var Ga=class{constructor(t,e){l(this,"kind");l(this,"type");l(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&&fn(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(Mg(o.deviceId))){let s=`${this.kind}${this.type}Added`;$.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}}),this.devices.forEach(o=>{if(o.deviceId&&!r.find(Mg(o.deviceId))){let s=`${this.kind}${this.type}Removed`;$.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}})),this.devices=r}hasDevice(t){return!!this.devices.find(e=>e.deviceId===t)}},oh=class extends xg.EventEmitter{constructor(){super();l(this,"audioInputs",new Ga(M.AUDIO,"Input"));l(this,"videoInputs",new Ga(M.VIDEO,"Input"));l(this,"audioOutputs",new Ga(M.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||dt.run("interval",()=>{this.update()},{delay:1e4}))}init(){pn().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return y(this,arguments,function*(e=0){let r=yield pn(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}hasBlueTooth(){var r;if(((r=We())==null?void 0:r.outputLatency)>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)))}},rt=Jn||ks?null:new oh;function fn(i){return i.deviceId===i.groupId&&i.groupId===""}function pn(){return y(this,arguments,function*(i=0){if(wi()||!kd())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{fn(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&&mo()}catch(o){$.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&&sh.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function Zt(i=!1){return rt.update(i?1:0).then(t=>t.audioInputs.devices)}function Kt(i=!1){return rt.update(i?2:0).then(t=>t.videoInputs.devices)}var Og=!1;function Pg(){return y(this,null,function*(){try{Og||(Og=!0,$.info(`speakers:${(yield ho()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function ho(i=!1){return y(this,null,function*(){return(ht||Tt)&&(i=!1),rt.update(i?1:0).then(t=>t.audioOutputs.devices)})}var sh=new Set;function kg(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!!sh.has(r)}function Lg(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!!sh.has(r)}function nh(i,t){return y(this,null,function*(){let r=(yield Zt()).find(o=>o.deviceId===Ho);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function Ug(s){return y(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===M.AUDIO&&i===Ho?yield nh(e,r):!0})}var Xd,ah=class extends Ba{constructor(e){super();this.log=e;l(this,"volumeMeter");l(this,"volumeMeterAfter3A");l(this,"volumeDestination");l(this,"analyser",new jd);this.volumeMeter=new Wa({log:this.log}),this.volumeMeterAfter3A=new Wa({log:this.log}),this.volumeDestination=new gt,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},gn=class i extends Ur{constructor(e){super(e,M.AUDIO);l(this,"_outputDeviceId");l(this,"_volume",1);l(this,"_destination",We("player").createMediaStreamDestination());l(this,"pipeline");l(this,"volumeMeterMode","worklet");this.mode=0,e.url&&(this.url=e.url),this.pipeline=new ah(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((Or==="15.2"||Or==="15.3"||Or==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let o=Xd||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,ke(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===Xd&&(Xd=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(qe.TIME_UPDATE,this.currentTime)),this.bindElementEvents()}play(e){return y(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(We("player").createAnalyser()),Pg(),Ft(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 y(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()}},Qd=class extends gn{setTrack(t){this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(qe.MEDIA_TRACK_CHANGED,t),t&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([t]))))}},Yd=class extends gn{constructor(e){super(e);l(this,"_sourceElement");l(this,"_output",new gt);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(We("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(qe.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){this._volume=e,this.useDestination?(this.pipeline.setVolume(e),this._log.info(`set pipeline volume: ${e}`)):e<=1?this.element?(this._log.info(`set element volume: ${e}`),this.element.volume=e):this._log.info("set element volume: no element"):ht||(this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),ut(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&&hr&&(Xd=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var as=class extends le{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:n=o===1?Yd:zt}){var a;super();l(this,"id",ya());l(this,"userId","");l(this,"isRemote");l(this,"mediaType");l(this,"room");l(this,"user");l(this,"_log");l(this,"_inputTrack");l(this,"_outputTrack");l(this,"isPlayCalled");l(this,"container",null);l(this,"player");l(this,"subVideoPlayerMap");l(this,"muted",!1);l(this,"abortCtrl");l(this,"objectFit","cover");l(this,"mirror");l(this,"rotation");l(this,"isScreen",!1);l(this,"manager");l(this,"trackSettings");l(this,"isFirstVideoFrameEmitted",!1);this.userId=e||"",this.mediaType=o,this._log=$.createLogger({id:`${this.kind[0]}t`,userId:(a=s||this.room)==null?void 0:a.userId,remoteUserId:this instanceof Vr?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof Vr}),this.player=new n({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log}),this.player.on(qe.PLAYER_STATE_CHANGED,u=>{V.emit(F.PLAYER_STATE_CHANGED,X({track:this},u)),this.emit("player-state-changed",u)}),this.kind===M.VIDEO&&(this.player.on(qe.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(qe.LOADED_DATA),V.emit(F.VIDEO_LOADED_DATA,{track:this})}),this.player.on(qe.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(qe.LOADED_META_DATA)}),this.player.on(qe.MEDIA_TRACK_CHANGED,u=>{var m;(m=this.subVideoPlayerMap)==null||m.forEach(p=>p.setTrack(u))}),this.player.on(qe.RESIZE,u=>{this.emit("video-size-changed",X({userId:this.userId,streamType:this.mediaType===2?"auxiliary":"main"},u))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(qe.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||$}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 y(this,null,function*(){let o=st(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(r)}`),r&&!x(r.muted)&&this.setPlayerMute(r.muted),r&&!x(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof zt&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(this.container=o,this.player.setContainer(o)),st(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),r)));return}if(r&&!x(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===M.VIDEO)&&this.setPlayerMute(!0),r&&!x(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof zt&&(this.player.setObjectFit(this.objectFit),r&&!x(r.poster)&&this.player.setPoster(r.poster)),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof zt&&this.player.setContainer(o)),V.emit(F.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),st(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||x(e)||e===this.mirror)return;this.mirror=e;let o=this.player;r&&(o=r);let s=this.manager;if(Qe(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 y(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(u=>n===u)||(s.stop(),(a=this.subVideoPlayerMap)==null||a.delete(n))});for(let[s,n]of e.entries()){let a=this.subVideoPlayerMap.get(n);a?r&&(x(r.objectFit)||a.setObjectFit(r.objectFit)):this.subVideoPlayerMap.set(n,new zt({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(zl(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(r=>{r.stop()}),this.container=null)}resume(){return y(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),V.emit(e?F.TRACK_MUTED:F.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){bt(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){ut(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(zl(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){if(this.room&&this.room.enableAutoPlayDialog)new Wd;else{let r=()=>{this.resume().then(()=>{document.removeEventListener("click",r,!0)})};document.addEventListener("click",r,!0)}this.emit("error",e)}getVideoFrame(){return this.player instanceof zt?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var n,a,u;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)||((u=this.player.element)==null?void 0:u.videoHeight)||0;e===qe.RESIZE&&!o&&!s||e===qe.LOADED_META_DATA&&!o&&!s||(e===qe.LOADED_DATA&&!o&&!s&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,or(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`)}};ee([Ze([],le.INIT,{sync:!0})],as.prototype,"close",1);var wI=Object.prototype.hasOwnProperty,{toString:aN}=Object.prototype;function MI(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(Bt(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(wI.call(i,t))return!1;return!0}}return!1}var ja=MI;var OI=function(i){return y(this,null,function*(){let t=PI(i);$.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];t.audio&&(e=yield Zt(),$.info(`microphones: ${mr(e.map(s=>ge(X({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield Kt(),$.info(`cameras: ${mr(r,{keysToInclude:o})}`));try{let s=yield navigator.mediaDevices.getUserMedia(t);return Fm&&s.getTracks().forEach(n=>{$.info(`${n.kind} capabilities: ${mr(n.getCapabilities(),{keysToInclude:qc})}`)}),t.audio&&mo(),s}catch(s){let{message:n}=s;throw s.name==="NotFoundError"&&(i.video&&r&&r.length===0&&(n=$e({key:Fe.CAMERA_NOT_FOUND})),i.audio&&e&&e.length===0&&(n=$e({key:Fe.MICROPHONE_NOT_FOUND}))),new de({code:q.INITIALIZE_FAILED,name:s.name,message:n,constraint:s.constraint})}})},xI=so({retryFunction:OI,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"?(s===1?(r[0].video&&(r[0].maxResolution=!1,(!Tt||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&&Vg(r[0].microphoneId,!1),r[0].cameraId&&Vg(r[0].cameraId,!0)},onRetrying:i=>{$.warn(`getUserMedia NotReadableError observed, retrying [${i}/3]`)},onRetryFailed:i=>{He.logFailedEvent({eventType:lr.GET_USER_MEDIA_RETRY,error:i})},onRetrySuccess:i=>{He.logSuccessEvent({eventType:lr.GET_USER_MEDIA_RETRY}),He.uploadEvent({log:`stat-${lr.GET_USER_MEDIA_RETRY}-success-${i}`})}});function Vg(i,t){return y(this,null,function*(){let r=(t?yield Kt():yield Zt()).find(o=>o.deviceId===i);r&&Ge(r.getCapabilities)&&$.warn(mr(r.getCapabilities(),{keysToInclude:qc}))})}function PI(i){return{audio:kI(i),video:LI(i)}}function kI(i){if(!i.audio)return!1;if(i.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:i.sampleRate};return!ja(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:(ke(i.channelCount)&&(t.channelCount=i.channelCount),Qe(i.echoCancellation)&&!i.echoCancellation&&(t.echoCancellation=!1),Qe(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),Qe(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),ja(t)?!0:t)}function LI(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&&!ja(e)?e:(i.width&&(e.width={ideal:i.width},t&&!Ht&&(e.width.max=i.width)),i.height&&(e.height={ideal:i.height},t&&!Ht&&(e.height.max=i.height)),Ht&&Mr&&i.width&&i.height&&i.width*i.height<352*288&&(e.width=i.width,e.height=i.height),i.frameRate&&(e.frameRate=i.frameRate),ja(e)?!0:e)}var Fg=xI;function po(i){return Oe((t,e)=>function(...r){return y(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function $g(i){return Oe((t,e)=>function(...r){return y(this,null,function*(){try{return yield t.apply(this,r)}catch(o){i.call(this,o)}})})}function Oe(i){return function(t,e,r){return r.value=i(r.value,e),r}}var Bg=(()=>{let i=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&$.info(`visibility change: ${document.visibilityState}`),!i&&(document.addEventListener("visibilitychange",()=>{$.info(`visibility change: ${document.visibilityState}`),t=document.visibilityState}),i=!0)}})();var UI=0,Zd=class{constructor(){l(this,"log",$.createLogger({id:`fq${++UI}`}));l(this,"isRunning",!1);l(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=X({},t),o=new Promise((a,u)=>{r.resolve=a,r.reject=u});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()})}},Hg=new WeakMap,Wg=new WeakMap;function Kd(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let n=Hg.get(this)||new Zd;return Hg.set(this,n),n.push({fn:o,args:s,context:this},i)},r}}function eu(i){return function(t,e,r){let o=r.value,s=n=>i(...n);return r.value=function(...n){let a=Wg.get(this)||new Map,u=a.get(s(n))||new Zd;return a.set(s(n),u),Wg.set(this,a),u.push({fn:o,args:n,context:this})},r}}function tu(i,t){return Oe((e,r)=>function(...o){let s=i;try{let n=e.apply(this,o),a=_e();return io(n)?n.then(u=>(t?Q.addSuccessEvent({key:s,cost:_e()-a}):Q.addSuccessEvent({key:s}),u)).catch(u=>{throw Q.addFailedEvent({key:s,error:u}),u}):(Q.addSuccessEvent({key:s}),n)}catch(n){throw Q.addFailedEvent({key:s,error:n}),n}})}var jh={};hi(jh,{Events:()=>lt,Inspect:()=>fr,LastSink:()=>cs,Sink:()=>pe,Subscribe:()=>ds,TimeoutError:()=>qa,audit:()=>_S,bindCallback:()=>iS,bindNodeCallback:()=>oS,buffer:()=>qI,bufferCount:()=>jI,bufferTime:()=>US,call:()=>Gg,catchError:()=>Bh,combineLatest:()=>qg,concat:()=>$I,concatMap:()=>DS,concatMapTo:()=>wS,count:()=>aS,create:()=>xe,debounce:()=>TS,debounceTime:()=>IS,defer:()=>zg,delay:()=>VS,deliver:()=>Te,dispose:()=>ru,elementAt:()=>SS,empty:()=>Qa,every:()=>vS,exhaustMap:()=>xS,exhaustMapTo:()=>PS,filter:()=>Jt,find:()=>yS,findIndex:()=>AS,first:()=>bS,fromAnimationFrame:()=>tS,fromArray:()=>XI,fromEvent:()=>be,fromEventPattern:()=>QI,fromFetch:()=>YI,fromIterable:()=>ZI,fromPromise:()=>Qg,fromReadableStream:()=>eS,fromReader:()=>KI,groupBy:()=>kS,identity:()=>VI,ignoreElements:()=>lS,iif:()=>HI,inspect:()=>jg,interval:()=>hh,last:()=>RS,map:()=>go,mapTo:()=>NS,max:()=>cS,merge:()=>za,mergeMap:()=>MS,mergeMapTo:()=>OS,min:()=>dS,never:()=>sS,nothing:()=>Be,of:()=>JI,pairwise:()=>CS,pipe:()=>Ae,race:()=>mh,range:()=>rS,reduce:()=>ph,retry:()=>BS,scan:()=>$h,share:()=>Pi,shareReplay:()=>BI,skip:()=>hS,skipUntil:()=>pS,skipWhile:()=>au,startWith:()=>Ja,subject:()=>Rt,subscribe:()=>Le,sum:()=>uS,switchMap:()=>Eo,switchMapTo:()=>ki,take:()=>Fr,takeLast:()=>mS,takeUntil:()=>ze,takeWhile:()=>Yg,tap:()=>Ya,throttle:()=>gS,throwError:()=>nS,timeInterval:()=>LS,timeout:()=>Gh,timer:()=>Xa,toPromise:()=>FS,toReadableStream:()=>$S,withLatestFrom:()=>GI,zip:()=>WI});function Be(...i){}var Gg=i=>i(),VI=i=>i;function ru(){this.dispose()}var jg=()=>typeof __FASTRX_DEVTOOLS__!="undefined",FI=1,fr=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new ch(t,this,this.streamId++);return lt.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},cs=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=Be,this.error=Be,this.next=Be,this.dispose=Be,this.subscribe=Be,this.doDefer()}subscribe(t){return t instanceof fr?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(Gg),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}},pe=class extends cs{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)}},ds=class extends cs{constructor(t,e=Be,r=Be,o=Be){if(super(),this._next=e,this._error=r,this._complete=o,this.then=Be,t instanceof fr){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{lt.defer(s,0)}),lt.create(s),lt.pipe(s),this.sourceId=s.id,this.subscribe(t),lt.subscribe({id:s.id,end:!0}),e==Be?this._next=n=>lt.next(s,0,n):this.next=n=>{lt.next(s,0,n),e(n)},o==Be?this._complete=()=>lt.complete(s,0):this.complete=()=>{this.dispose(),lt.complete(s,0),o()},r==Be?this._error=n=>lt.complete(s,0,n):this.error=n=>{this.dispose(),lt.complete(s,0,n),r()}}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 xe(i,t,e){if(jg()){let r=Object.defineProperties(Object.setPrototypeOf(i,fr.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}});lt.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof fr&&lt.addSource(r,s)}return r}return i}function Te(i,t){return function(...e){return r=>{if(r instanceof fr){let o=xe(s=>{let n=new i(s,...e);n.sourceId=o.id,n.subscribe(r)},t,arguments);return o.source=r,lt.pipe(o),o}else return o=>r(new i(o,...e))}}}function fo(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var ch=class extends pe{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{lt.defer(this.source,this.id)})}next(t){lt.next(this.source,this.id,t),this.sink.next(t)}complete(){lt.complete(this.source,this.id),this.sink.complete()}error(t){lt.complete(this.source,this.id,t),this.sink.error(t)}},lt={addSource(i,t){fo("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){fo("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){fo("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){fo("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){fo("defer",{id:i.id,streamId:t})},pipe(i){fo("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){fo("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=FI++),fo("create",{name:i.toString(),id:i.id})}},qa=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var iu=class extends cs{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 Pi(){return i=>{let t=new iu(i);if(i instanceof fr){let e=xe(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,lt.pipe(e),e}return xe(t.add.bind(t),"share",arguments)}}function za(...i){return xe(t=>{let e=new pe(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function mh(...i){return xe(t=>{let e=new Map;i.forEach(r=>{let o=new pe(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 $I(...i){return xe(t=>{let e=0,r=i.length,o=new pe(t);o.complete=()=>{e<r&&!o.disposed?(o.doDefer(),o.subscribe(i[e++])):t.complete()},o.complete()},"concat",arguments)}function BI(i){return t=>{let e=new iu(t),r=[];return e.next=function(o){r.push(o),r.length>i&&r.shift(),this.sinks.forEach(s=>s.next(o))},xe(o=>{o.defer(()=>e.remove(o)),r.forEach(s=>o.next(s)),e.add(o)},"shareReplay",arguments)}}function HI(i,t,e){return xe(r=>i()?t(r):e(r),"iif",arguments)}function qg(...i){return xe(t=>{let e=i.length,r=e,o=e,s=new Array(e),n=()=>{--o===0&&t.complete()},a=(u,m)=>{let p=new pe(t);p.next=g=>{--r===0?(p.next=_=>{s[m]=_,t.next(s)},p.next(g)):s[m]=g},p.complete=n,p.subscribe(u)};i.forEach(a)},"combineLatest",arguments)}function WI(...i){return xe(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},n=(a,u)=>{let m=new pe(t),p=[];o[u]=p,m.next=g=>{p.push(g),o.every(_=>_.length)&&t.next(o.map(_=>_.shift()))},m.complete=s,m.subscribe(a)};i.forEach(n)},"zip",arguments)}function Ja(...i){return t=>xe((e,r=0,o=i.length)=>{for(;r<o&&!e.disposed;)e.next(i[r++]);e.disposed||e.subscribe(t)},"startWith",arguments)}var dh=class extends pe{constructor(t,...e){super(t);let r=new pe(this.sink);r.next=o=>this.buffer=o,r.complete=Be,r.subscribe(qg(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},GI=Te(dh,"withLatestFrom"),uh=class extends pe{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()}},jI=Te(uh,"bufferCount"),lh=class extends pe{constructor(t,e){super(t),this.buffer=[];let r=new pe(t);r.next=o=>{t.next(this.buffer),this.buffer=[]},r.complete=Be,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},qI=Te(lh,"buffer");var zI=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{m(r.next(p))}catch(g){n(g)}}function u(p){try{m(r.throw(p))}catch(g){n(g)}}function m(p){p.done?s(p.value):o(p.value).then(a,u)}m((r=r.apply(i,t||[])).next())})};function Rt(i){let t=arguments,e=Pi()(xe(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=Be,e.complete=Be,e.error=Be,e}function zg(i){return xe(t=>t.subscribe(i()),"defer",arguments)}var Jg=i=>t=>{setTimeout(()=>i(t))},Xg=i=>Jg(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function JI(...i){return xe(Xg(i),"of",arguments)}function XI(i){return xe(Xg(i),"fromArray",arguments)}function hh(i){return xe(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function Xa(i,t){return xe(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 ou(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function QI(i,t){return xe(ou(i,t),"fromEventPattern",arguments)}function be(i,t){if("on"in i&&"off"in i)return xe(ou(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return xe(ou(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return xe(ou(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function Qg(i){return xe(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function YI(i,t){return xe(zg(()=>Qg(fetch(i,t))),"fromFetch",arguments)}function ZI(i){return xe(Jg(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function KI(i){let t=e=>zI(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 xe(e=>{t(e)},"fromReader",arguments)}function eS(i){return xe(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 tS(){return xe(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function rS(i,t){return xe((e,r=i,o=t+i)=>{for(;r<o&&!e.disposed;)e.next(r++);return e.complete(),"range"},"range",arguments)}function iS(i,t,...e){return xe(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function oS(i,t,...e){return xe(r=>{let o=e.concat((s,n)=>s?r.error(s):(r.next(n),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function sS(){return xe(()=>{},"never",arguments)}function nS(i){return xe(t=>t.error(i),"throwError",arguments)}function Qa(){return xe(i=>i.complete(),"empty",arguments)}var us=class extends pe{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)}},ph=Te(us,"reduce"),aS=i=>Te(us,"count")((t,e)=>i(e)?t+1:t,0),cS=()=>Te(us,"max")(Math.max),dS=()=>Te(us,"min")(Math.min),uS=()=>Te(us,"sum")((i,t)=>i+t,0);var fh=class extends pe{constructor(t,e,r){super(t),this.filter=e,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},Jt=Te(fh,"filter"),gh=class extends pe{next(t){}},lS=Te(gh,"ignoreElements"),Eh=class extends pe{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&this.complete()}},Fr=Te(Eh,"take"),_h=class extends pe{constructor(t,e){super(t);let r=new pe(t);r.next=()=>t.complete(),r.complete=ru,r.subscribe(e)}},ze=Te(_h,"takeUntil"),Th=class extends pe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):this.complete()}},Yg=Te(Th,"takeWhile"),mS=i=>ph((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),Ih=class extends pe{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},hS=Te(Ih,"skip"),Sh=class extends pe{constructor(t,e){super(t),t.next=Be;let r=new pe(t);r.next=()=>{r.dispose(),t.resetNext()},r.complete=ru,r.subscribe(e)}},pS=Te(Sh,"skipUntil"),yh=class extends pe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},au=Te(yh,"skipWhile"),fS={leading:!0,trailing:!1},Ah=class extends pe{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)}},su=class extends pe{constructor(t,e,r=fS){super(t),this.durationSelector=e,this.config=r,this._throttle=new Ah(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=Be,this._throttle.complete(),super.complete()}},gS=Te(su,"throttle"),ES={leading:!1,trailing:!0},_S=i=>Te(su,"audit")(i,ES),bh=class extends pe{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},nu=class extends pe{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new bh(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()}},TS=Te(nu,"debounce"),IS=i=>Te(nu,"debounceTime")(t=>Xa(i)),Rh=class extends pe{constructor(t,e,r){super(t),this.count=e,this.defaultValue=r}next(t){this.count--===0&&(this.defaultValue=t,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()}},SS=Te(Rh,"elementAt"),yS=i=>t=>Fr(1)(au(e=>!i(e))(t)),vh=class extends pe{constructor(t,e){super(t),this.f=e,this.i=0}next(t){this.f(t)?(this.sink.next(this.i++),this.complete()):++this.i}},AS=Te(vh,"findIndex"),Ch=class extends pe{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.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},bS=Te(Ch,"first"),Nh=class extends pe{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()}},RS=Te(Nh,"last"),Dh=class extends pe{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.complete())}complete(){if(this.result===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.result);super.complete()}},vS=Te(Dh,"every");var wh=class extends pe{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))}},$h=Te(wh,"scan"),Mh=class extends pe{constructor(){super(...arguments),this.hasLast=!1}next(t){this.hasLast?this.sink.next([this.last,t]):this.hasLast=!0,this.last=t}},CS=Te(Mh,"pairwise"),cu=class extends pe{constructor(t,e,r){super(t),this.mapper=e,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},go=Te(cu,"map"),NS=i=>Te(cu,"mapTo")(t=>i),En=class extends pe{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()}},_n=class extends pe{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=this.tryComplete,r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},du=class extends En{},uu=class extends _n{next(t){this.subInner(t,du),this.next=e=>{this.currentSink.dispose(),this.subInner(e,du)}}},Eo=Te(uu,"switchMap");function pu(i){return(t,e)=>i(()=>t,e)}var ki=pu(Te(uu,"switchMapTo")),Oh=class extends En{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},lu=class extends _n{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(),Oh),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},DS=Te(lu,"concatMap"),wS=pu(Te(lu,"concatMapTo")),xh=class extends En{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},mu=class extends _n{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,xh),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},MS=Te(mu,"mergeMap"),OS=pu(Te(mu,"mergeMapTo")),Ph=class extends En{dispose(){this.context.resetNext(),super.dispose()}},hu=class extends _n{next(t){this.next=Be,this.subInner(t,Ph)}},xS=Te(hu,"exhaustMap"),PS=pu(Te(hu,"exhaustMapTo")),kh=class extends pe{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=Rt(),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)}},kS=Te(kh,"groupBy"),Lh=class extends pe{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}},LS=Te(Lh,"timeInterval"),Uh=class extends pe{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()}},US=Te(Uh,"bufferTime"),Vh=class extends pe{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)}},VS=Te(Vh,"delay"),Fh=class extends pe{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},Bh=Te(Fh,"catchError");var FS=()=>i=>new Promise((t,e)=>{let r;new ds(i,o=>r=o,e,()=>t(r))}),$S=()=>i=>{let t;return new ReadableStream({start(e){t=new ds(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},Le=(i=Be,t=Be,e=Be)=>r=>new ds(r,i,t,e),Hh=class extends pe{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)}))}},Ya=Te(Hh,"tap"),Wh=class extends pe{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new qa(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},Gh=Te(Wh,"timeout"),BS=(i=1/0)=>t=>{if(t instanceof fr){let e=xe(r=>{let o=i,s=new pe(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,lt.pipe(e),e}else return e=>{let r=i,o=new pe(e);o.error=s=>{r-- >0?t(o):e.error(s)},t(o)}};var Tn=(e=>(e[e.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",e[e.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",e))(Tn||{}),ls=class ls extends as{constructor(e,r){super({mediaType:e,PlayerClass:r});l(this,"isRemote",!1);l(this,"deviceId");l(this,"groupId","");l(this,"label","");l(this,"sourceTrack");l(this,"enableAutoSwitchWhenRecapturing",!0);l(this,"_isRecapturing",!1);l(this,"_lastRecaptureTime",0);l(this,"_onMuteTimeoutId",-1);l(this,"_encodeCheckTimeoutId",-1);l(this,"recaptureMode",0);l(this,"profile")}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){bt(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){ut(e)}setStateToReady(){}capture(e){return y(this,null,function*(){var r;try{let o=_e();V.emit(F.LOCAL_TRACK_CAPTURE_START,{track:this});let s;e.customSource?(s=new MediaStream,s.addTrack(e.customSource)):((r=this.sourceTrack)==null||r.stop(),s=yield Fg(e));let n=s.getTracks()[0];return yield this.setInputMediaStreamTrack(n),e.customSource||(this.sourceTrack=n,this.updateDeviceIdInUse(),this.listenDeviceChange()),V.emit(F.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:_e()-o}),s}catch(o){throw V.emit(F.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:o}),this.log.error(`getUserMedia error observed ${o}`),o}})}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=qo(((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.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.setUserId(e.userId),this._log.setSdkAppId(e.sdkAppId),Promise.all([r,new Promise((o,s)=>y(this,null,function*(){var a,u;this.hasFlag?o():Ae(be(e,"local-publish-flag-changed"),Jt(()=>this.hasFlag),ze(za(be(this,le.INIT),be(this,"ready"))),Le(o)),!((((u=(a=this.room)==null?void 0:a.networkQuality)==null?void 0:u.uplinkNetworkQuality)||0)>3)&&(this._encodeCheckTimeoutId=setTimeout(()=>{var p,g,_,A,C,N;if(!((((g=(p=this.room)==null?void 0:p.networkQuality)==null?void 0:g.uplinkNetworkQuality)||0)>3)&&this.isPublished&&this.isMediaTrackActive){let D=this.kind===M.AUDIO,O=this.stat.bytesSent>0;if(Q[O?"addSuccessEvent":"addFailedEvent"]({key:D?503700:513702}),!D){let Z=((A=(_=this.room)==null?void 0:_.videoCodec)==null?void 0:A.toUpperCase())||"H264",ue={H264:513704,H265:513705,VP8:513706}[Z];ue&&Q[O?"addSuccessEvent":"addFailedEvent"]({key:ue})}O||(Q.addEnum({key:D?503701:513703,value:Yo()}),He.uploadEvent({log:`stat-encode-failed-${this.kind}-${Ia()||Zo()}`,userId:this.userId}),this.log.warn(D?"encode failed":`${(N=(C=this.room)==null?void 0:C.videoCodec)==null?void 0:N.toUpperCase()} encode failed`),this.emit("6",this),s(new de({message:`${this.strMediaType} encode failed`,code:D?q.AUDIO_ENCODE_FAILED:q.VIDEO_ENCODE_FAILED})))}},5e3))}))])}unpublish(){this.room&&this.room.localTracks.delete(this),V.emit(F.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return y(this,null,function*(){if(this.sourceTrack&&un){let{deviceId:e,groupId:r}=this.sourceTrack.getSettings(),{label:o}=this.sourceTrack;(yield Ug({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),pn().then(n=>{let a=n.find(u=>u.deviceId===e);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&&!Lg(this.sourceTrack)||this.kind===M.VIDEO&&!kg(this.sourceTrack)||this._isRecapturing||e&&Mr&&Tt)}onTrackMuted(){if(super.onTrackMuted(),Bg(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<Vs){setTimeout(()=>this.onTrackMuted(),Vs);return}this._onMuteTimeoutId=setTimeout(()=>y(this,null,function*(){var e;if((e=this.sourceTrack)!=null&&e.muted){if((ht||pt)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return y(this,null,function*(){if(Ft(ls.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()&&this.recaptureMode===0){if(Date.now()-this._lastRecaptureTime<Vs){setTimeout(()=>this.onTrackEnded(),Vs);return}this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e){return y(this,null,function*(){var o;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying"),(o=this.sourceTrack)==null||o.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let r={useExactDeviceId:!0};if(e==="user"||e==="environment")r.facingMode=e;else{let s;(this.kind==="audio"?yield Zt():yield Kt()).find(a=>a.deviceId===e)&&(s=e),r.deviceId=s}return this.capture(r).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),V.emit(F.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(s=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${s.message}`),this.emit("5",s),V.emit(F.LOCAL_TRACK_RECAPTURE,{track:this,error:s})})})}getRecoverCaptureDeviceId(){return y(this,null,function*(){let e=this instanceof ar;if(e&&this.facingMode)return this.facingMode;let{deviceId:r}=this;if(r){let o=(Za.get(r)||0)+1;if(Za.set(r,o),o>=3&&this.enableAutoSwitchWhenRecapturing){let s=e?(yield Kt()).find(n=>!Za.has(n.deviceId)):(yield Zt()).find(n=>!Za.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)),(e=this.manager)==null||e.removeInput(this)}close(){super.close(),this.stopCapture()}};ee([Ze(le.INIT,"ready",{ignoreError:!0,sync:!0})],ls.prototype,"setStateToReady",1),ee([Kd()],ls.prototype,"capture",1),ee([Ze("ready","publish",{ignoreError:!0,success(){this.room.localTracks.add(this),V.emit(F.LOCAL_TRACK_PUBLISHED,{track:this,room:this.room}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"})},fail(e){let r="error";if(e.cause instanceof de){let o=e.cause;o.message.includes("timeout")?r="timeout":o.code===q.API_CALL_ABORTED&&(r="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:e.cause||e})}}),tu(521714,!1)],ls.prototype,"publish",1),ee([Oe(e=>function(){return y(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)})}),Ze([],"ready",{sync:!0})],ls.prototype,"unpublish",1);var Vr=ls,Za=new Map;V.on(F.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&Za.delete(i.track.deviceId)});var ti=class i extends Vr{constructor(e){super(1,Qd);l(this,"mediaType",1);l(this,"volume",0);l(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40});l(this,"playerMuted",!0);l(this,"pipeline");l(this,"earMonitorGainNode",new gt);l(this,"_output",new gt);l(this,"codecPipeline",[]);l(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});l(this,"mixedAudioReferenceMap",new Map);l(this,"isAudioContextLongSuspended",!1);this.manager=e,this.pipeline=new hn(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),V.on(F.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this)}get dbVolume(){return Jd.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()}setInputMediaStreamTrack(e){return y(this,null,function*(){let r=this.trackSettings||{};Q.addEnum({key:501701,value:r.channelCount||0,useUV:!1}),Q.addEnum({key:501702,value:r.sampleRate||0,useUV:!1}),Q.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 Ft(i.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture(n){return y(this,arguments,function*({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s}){let a=yield Ft(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});return mo(),a})}switchDevice(e){return y(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource)if(e===Ho){if(yield nh(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}),V.emit(F.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(){rt&&!rt.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&rt.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return y(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${Tn[this.recaptureMode]}. Current microphone is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){nt(this.userId,{eventId:2003,param1:6,streamType:1});let o=yield Zt();o[0]?this.recapture(o[0].deviceId):r=!0}r&&rt.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.recaptureMode===1&&e.deviceId!==this.deviceId||(rt.off("audioInputAdded",this.handleMicrophoneAdded,this),this.log.warn(`microphone added: ${JSON.stringify(e)}`),this.recapture(e.deviceId))}update3A(s){return y(this,arguments,function*({echoCancellation:e,noiseSuppression:r,autoGainControl:o}){let n=this.sourceTrack||this.mediaTrack;if(!n)return;let a=n.getConstraints(),u=!1;!x(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,a.echoCancellation=e,u=!0),!x(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,a.noiseSuppression=r,u=!0),!x(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,a.autoGainControl=o,u=!0),u&&(Ht||Tt?yield n.applyConstraints(a).catch(m=>this._log.warn("update3A failed: ",m)):this.deviceId&&(yield this.recapture(this.deviceId)))})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&Q.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),ht&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(We().createGain()),this._output.setNode(We().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!(Tt||ht))return this.update3A({echoCancellation:e})}addDenoiser(e){var r;if(Zr<=92&&((r=this.trackSettings)==null?void 0:r.sampleRate)!==48e3){this._log.warn("denoiser only support sampleRate 48000 before chrome 93");return}Q.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=Ha(e),s=new gt,n=We().createGain();n.gain.value=1;let a=new gt;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(),rt.off("audioInputAdded",this.handleMicrophoneAdded,this),rt.off("audioInputRemoved",this.handleMicrophoneRemoved,this),V.off(F.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this),super.close()}recapture(e){return y(this,null,function*(){try{yield Ft(i.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield Zt()).find(s=>s.deviceId!==e);if(o)yield Ft(i.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((r,o)=>o?o({frame:r,ntp:fi()}):r,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}handleAudioContextLongSuspended({isSuspended:e}){if(this.pipeline.isProcessEnabled)if(e){this.isAudioContextLongSuspended=!0,this.log.warn(`context has suspended for ${ih/1e3} seconds, change to source audio${hr?"":", 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 ms=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 fu=class{constructor(){l(this,"_seiMessageList",[]);l(this,"_smallSeiMessageList",[]);l(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 ms(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((_,A)=>_+A.dataView.byteLength,0),u=new ArrayBuffer(a+t.data.byteLength),m=new DataView(u),p=new DataView(t.data),g=0;for(let _=0;_<n.length;_++)for(let A=0;A<n[_].dataView.byteLength;A++)m.setInt8(g++,n[_].dataView.getInt8(A));for(let _=0;_<t.data.byteLength;_++)m.setInt8(g++,p.getInt8(_));return t.data=u,n.length}return 0}};var hs=class hs extends Vr{constructor(e,r=4){super(r,zt);l(this,"profile",X({},Qn));l(this,"avoidCropping",!1);l(this,"_scaleResolutionDownBy");l(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0,framesCaptured:0});l(this,"small");l(this,"isNeedToSetBandwidth");l(this,"muteImage");l(this,"manager");l(this,"_seiCodec",new fu);this.manager=e;let o=()=>{this.isAllowed2k4k(this.profile)?this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1}):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),this.setProfile(ge(X({},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(!(!un||!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"}setMute(e){return y(this,null,function*(){var r,o,s;if(Ne(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}),this.muteImage=e,Ft(hs.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0),Ft(hs.prototype,this,"setMute").call(this,e)})}capture({deviceId:e,facingMode:r,useExactDeviceId:o=!0,customSource:s,retryWhenExactFailed:n=!0}){return super.capture({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})}setProfile(e){let r=this.fallbackProfile(e);r.bitrate&&(this.isNeedToSetBandwidth=r.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile)?super.setProfile(r):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),super.setProfile(ge(X({},this.profile),{width:1920,height:1080})))}applyProfile(){return y(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&&(Ot===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:u=0,height:m=0}=(this.sourceTrack||this.mediaTrack).getSettings(),p=u*m;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 un&&r&&Object.assign(e,r.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:rd(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 y(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e)&&!this.isUseCustomSource)return;let r={useExactDeviceId:!0,retryWhenExactFailed:!1};if(e==="user"||e==="environment"){r.facingMode=e;try{if((ga||rn)&&e==="environment"&&$m){let s=(yield Kt(!0)).map(a=>{var u;return ge(X({},a),{capabilities:(u=a.getCapabilities)==null?void 0:u.call(a)})}).filter(a=>{var u,m;return(m=(u=a.capabilities)==null?void 0:u.facingMode)==null?void 0:m.includes("environment")}),n=s[0];s.forEach(a=>{var g,_,A,C;let{capabilities:u}=a,m=(g=u.width)!=null&&g.max&&((_=u.height)!=null&&_.max)?u.width.max*u.height.max:0,p=(A=n.capabilities.width)!=null&&A.max&&((C=n.capabilities.height)!=null&&C.max)?n.capabilities.width.max*n.capabilities.height.max:0;m>p&&(n=a)}),n!=null&&n.capabilities&&(delete r.facingMode,this._log.info("switch to max res camera",n),r.deviceId=n.deviceId)}}catch(o){this._log.warn("get max res camera failed",o)}}else r.deviceId=e;this.sourceTrack&&this.sourceTrack.stop(),yield this.capture(r),V.emit(F.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}})}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=X({},e);return e.width*e.height<=160*120&&pt&&Yr&&(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&&nm&&(s.width=o?1280:720,s.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),im(Or,"14.3")&&om(Or,"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&&(Yr||Ht)&&!cm()&&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(){rt&&!rt.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&rt.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return y(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${Tn[this.recaptureMode]}. Current camera is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){nt(this.userId,{eventId:2003,param1:7,streamType:2});let o=yield Kt();o[0]?this.recapture(o[0].deviceId):r=!0}r&&rt.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return y(this,null,function*(){this.recaptureMode===1&&e.deviceId!==this.deviceId||(rt.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 x(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){rt.off("videoInputAdded",this.handleCameraAdded,this),rt.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return y(this,null,function*(){try{yield Ft(hs.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield Kt()).find(s=>s.deviceId!==e);if(o)yield Ft(hs.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||x(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};ee([po(function(e){this.setContentHint(e.contentHint||"motion")})],hs.prototype,"capture",1);var ar=hs;var Jh={};hi(Jh,{REPORT_TYPE:()=>zs,buildSSOPackage:()=>Ii,bytes2ms:()=>of,calculateScaleResolutionDownNumber:()=>rd,concatArrayBuffers:()=>gf,convertObjectNumberToInt:()=>na,copyProperties:()=>rf,deepClone:()=>Wo,deepCloneBasic:()=>Qc,deepMerge:()=>Nr,delay:()=>aa,fibonacci:()=>Go,formatedTime:()=>Zc,getConstructorName:()=>Hs,getContainerFromElement:()=>hf,getEnv:()=>Kp,getFirst16Bits:()=>_f,getInternalVersion:()=>lf,getLast16Bits:()=>Ef,getLoggerUrl:()=>Ti,getMediaStreamTrackInfo:()=>td,getMuteStateFromFlag:()=>qo,getNetworkType:()=>ra,getNumNetworkType:()=>Yc,getReconnectionTimeout:()=>nf,getStringByteLength:()=>pf,getTurnServer:()=>mf,getUint32Version:()=>Kc,getValueType:()=>ct,getViewListFromView:()=>js,glog:()=>ia,ipv4ToUint32:()=>Gs,isArray:()=>st,isAudioWorkletSupported:()=>df,isBoolean:()=>Qe,isConstructor:()=>jo,isEmpty:()=>Ws,isFunction:()=>Ge,isLangChinese:()=>Cr,isMediaStreamTrack:()=>af,isNumber:()=>ke,isObject:()=>ir,isOverseaSdkAppId:()=>_i,isPlainObject:()=>Bt,isPortrait:()=>Gl,isPromise:()=>io,isRemoteTrack:()=>cf,isRotate90Or270:()=>or,isSetSinkIdSupported:()=>uf,isString:()=>Ne,isUndefined:()=>x,loadImage:()=>qs,loadVideo:()=>ff,ms2bytes:()=>sf,ms2samples:()=>Wl,normalizeUrl:()=>zo,performanceNow:()=>_e,promiseAny:()=>oa,samples2ms:()=>Hl,setNetworkType:()=>tf,stringify:()=>mr,stringifyIncludeValue:()=>sa,throttlePromise:()=>ed});var WS=[-1,-1,1,-1,-1,1,1,1],GS=[0,0,1,0,0,1,1,1];var _o=class _o extends le{constructor(e,r){super();this.context=e;l(this,"name");l(this,"input");l(this,"output");l(this,"texture");l(this,"ctx2d",null);l(this,"fbo");l(this,"width",0);l(this,"height",0);l(this,"x",0);l(this,"y",0);l(this,"program");l(this,"vertexShader");l(this,"fragmentShader");l(this,"totalFrames",0);l(this,"dropFrames",0);l(this,"matchInputSize",!0);l(this,"texCoordBuffer");l(this,"positionBuffer");l(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0});l(this,"cost",0);l(this,"_canvas",null);l(this,"_image");l(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 Dt){e.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&Ot!==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(GS),this.positionBuffer=this.createBuffer(WS),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.PACK_ALIGNMENT,1),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 de({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 St&&this.render(e)||this.context instanceof Dt&&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 St){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,u,m,p){let g=!x(a)&&!x(u)&&!x(m)&&!x(p);return this.ctx2d&&e?(e instanceof ImageData?(g?this.ctx2d.putImageData(e,r,o,a,u,m,p):this.ctx2d.putImageData(e,r,o),this.emit(_o.RENDER,this.ctx2d.canvas)):(g?this.ctx2d.drawImage(e,a,u,m,p,r,o,s,n):this.ctx2d.drawImage(e,r,o,s,n),this.emit(_o.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 g;let{totalFrames:e,x:r,y:o,width:s,height:n,name:a,cost:u}=this,m=Date.now(),p=(e-this.lastInfo.totalFrames)/((m-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:m,fps:p,name:a,cost:u},X({parent:(g=this.input)==null?void 0:g.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.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),o}};l(_o,"RENDER","render"),ee([Ze(le.INIT,"connected",{sync:!0})],_o.prototype,"connect",1),ee([Ze("connected",le.INIT,{ignoreError:!0,sync:!0})],_o.prototype,"disconnect",1),ee([Ze([],"closed",{sync:!0})],_o.prototype,"close",1);var vt=_o;var Kg=Ae(hh(250),go(()=>performance.now()),Pi()),eE=i=>t=>{let e=0,r=performance.now();Ae(Kg,go(o=>(o-r)/i>>0),Jt(o=>o!=e?(e=o,!0):!1))(t)},gu=i=>t=>{let e=performance.now();Ae(Kg,au(r=>r-e<i),Fr(1))(t)};var qS=[0,1,1,1,0,0,1,0],ps=class extends vt{constructor(e,r){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},r));l(this,"_intervalId",0);l(this,"_sequence",0);l(this,"checkGLError",!1);l(this,"checkVisibilityChange");e instanceof Dt?this.ctx2d=e.ctx||null:e.available&&(r!=null&&r.mirrorUpAndDown)&&this.setTexBuffer(qS)}start(e){this.log.info(`${this.name} start render ${e} fps`),dt.clearTask(this._intervalId),this._intervalId=dt.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(dt.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof St){let o=this.context.ctx.getError();o&&this.context.destroy(new de({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(vt.RENDER,this.context._canvas),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){this._intervalId&&(dt.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),dt.clearTask(this._intervalId)}resize(e,r){super.resize(e,r),this.context.setSize(e,r)}close(){super.close(),dt.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},In=class extends ps{constructor(e,r){super(e,r);l(this,"_videoTrack");l(this,"_muteOb");l(this,"_closedOb",be(this,"closed"));l(this,"_subscription");l(this,"_canvasContainer");Number(yi)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e._canvas.captureStream().getVideoTracks(),this._muteOb=be(this._videoTrack,"mute"),Ae(be(this._videoTrack,"ended"),ze(this._closedOb),Le(()=>{this.context.destroy(new de({code:q.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=Ae(this._muteOb,ze(this._closedOb),ki(gu(5e3)),Jt(()=>{var e;return!!((e=this._videoTrack)!=null&&e.muted)&&!document.hidden}),Le(()=>{this.context.destroy(new de({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()}},Eu=class extends In{render(t){var e;return!!((e=this.input)!=null&&e.requestFrame(t))}};var _u=class extends In{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 Ka=class extends vt{constructor(e,r){super(e,X({name:"imageSource"},r));l(this,"_lastImage");l(this,"_totalFrames",0);l(this,"_autoResize",!1);l(this,"_canvasRendered");l(this,"videoCallbackId",0);l(this,"waitingFirstFrame",!0);l(this,"shouldUpdate",!0);this._autoResize=(r==null?void 0:r.autoResize)!==!1,Ot===16&&(this._canvasRendered=Rt(),Ae(this._canvasRendered,Ja(this._image),Eo(o=>o instanceof HTMLCanvasElement?be(o,"rendered"):Qa()),ze(be(this,"closed")),Le(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let e=this.image;this.videoCallbackId&&e.cancelVideoFrameCallback(this.videoCallbackId),Mi()&&!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 u=this.context.ctx;u.texSubImage2D(u.TEXTURE_2D,0,0,0,u.RGBA,u.UNSIGNED_BYTE,n)}}else{if(r){this.useTexture();let u=this.context.ctx;u.texImage2D(u.TEXTURE_2D,0,u.RGBA,u.RGBA,u.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 Ka{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",Ae(be(this._player,qe.PLAYER_STATE_CHANGED),ze(be(this,"closed")),Jt(({state:s})=>s==="PLAYING"),Le(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},gr=class extends ec{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(t,e,r){super(t,new zt({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()}},Tu=class extends vt{constructor(e,r,o){super(e,ge(X({name:"textSource"},o),{create2d:!0}));l(this,"hasChange",!0);l(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/),u=(n?parseInt(n[1],10):16)*o,m=this.content.split(`
32
- `);for(let p=0;p<m.length;p++)this.ctx2d.fillText(m[p],e,r+p*u)}};var JS=`
31
+ `,r.onclick=this.onQuestionClick.bind(this);let o=document.createElement("div");o.className=Zm,o.innerText=`${Nr()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,n=s.querySelector(`.${Gd}`);return n.appendChild(o),n.appendChild(r),n.appendChild(e),s}addDiaLog(){th()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${mn}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",$.info("show autoplay dialog"),He.uploadEvent({log:RI}))}deleteDiaLog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null)}onConfirm(){$.warn("confirm clicked, try resume stream"),U.emit(F.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDiaLog()}onCollapseClick(){let t=this._dialogNode.querySelector(`.${Ag}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||He.uploadEvent({log:vI}),this._isCollapseClicked=!0}onQuestionClick(){window.open(Cg,"_blank"),this._isQuestionClicked||He.uploadEvent({log:CI}),this._isQuestionClicked=!0}},hn=Km;var zt=class extends Ur{constructor(e){super(e,M.VIDEO);l(this,"stat",{});l(this,"_calculateTimeout",-1);l(this,"viewMirror",!1);l(this,"objectFit");l(this,"container");l(this,"canvas");l(this,"_preSize",{width:0,height:0});this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,x(e.viewMirror)||(this.viewMirror=e.viewMirror),x(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,(r=this.container)==null||r.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e=`width: 100%; height: 100%; object-fit: ${this.objectFit};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,u,m,p,g;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=Bo,this._log.info(`view container ${(s=this.container)==null?void 0:s.id} is recreated`)),this._pausedRetryCount>0&&!th()&&(this._log.info(`[${Bo-this._pausedRetryCount+1}/${Bo}] ${this.kind} player auto resume when paused`),this.resume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let _=this.element.style.transform;r===M.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=_.replace("scaleX(-1)",""):r===M.LEAVE_PICTURE_IN_PICTURE&&!_.includes("scaleX")&&(this.element.style.transform=`${_} 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 ${(u=this.element)==null?void 0:u.videoWidth}x${(m=this.element)==null?void 0:m.videoHeight}`),this._preSize.height=((p=this.element)==null?void 0:p.videoHeight)||0,this._preSize.width=((g=this.element)==null?void 0:g.videoWidth)||0,this.emit(qe.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(qe.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(Mi()&&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 xi(i,t){return y(this,null,function*(){if(!i.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield i.audioWorklet.addModule(t),$.info("worklet addModule success")}catch(e){throw $.info(`worklet addModule catch error. ${e.message}`),e}})}var Ba;typeof AudioContext!="undefined"?Ba=AudioContext:typeof webkitAudioContext!="undefined"?Ba=webkitAudioContext:typeof mozAudioContext!="undefined"&&(Ba=mozAudioContext);var sh=1500,fr,Ng=-1,qd=0,Ha=-1,oh=!1;Dg();function Dg(){try{if(fr)return;fr=new Ba({sampleRate:48e3}),fr.onstatechange=()=>{$.info(`context state: ${fr.state}${fr.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),pn()},clearTimeout(Ng)}catch(i){$.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof Ba}`),Ng=setTimeout(Dg,1e3)}}var pn=()=>{fr.state==="suspended"?(qd=_e(),DI(),mo(),document.addEventListener("click",pn)):fr.state==="interrupted"?mo():(qd&&(Q.addNumber({key:507800,value:_e()-qd,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),qd=0),wI(),document.removeEventListener("visibilitychange",pn),document.removeEventListener("click",pn))},rh=0,ih=-1;function mo(){return new Promise((i,t)=>{if(fr.state==="running")return i();Date.now()-rh<1e3?(clearTimeout(ih),ih=setTimeout(()=>{rh=Date.now(),fr.resume().then(i,t)},1e3)):(clearTimeout(ih),rh=Date.now(),fr.resume().then(i,t))}).catch(i=>{$.warn(`context resume failed: ${i}`),document.addEventListener("visibilitychange",pn)})}document.addEventListener("click",pn);function DI(){Ha===-1&&(Ha=setTimeout(()=>{fr.state==="suspended"&&(oh=!0,U.emit("155",{isSuspended:!0}))},sh))}function wI(){Ha!==-1&&(clearTimeout(Ha),Ha=-1,oh&&(oh=!1,U.emit("155",{isSuspended:!1})))}var We=i=>fr;var gt=class{constructor(t){this.name=t;l(this,"node");l(this,"node2");l(this,"pre",new Set);l(this,"next",new Set);l(this,"context");l(this,"connectedNodes",new Set);l(this,"nextInputChannelMap",new Map);l(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){$.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(),Q.addSuccessEvent({key:502701})}catch(o){$.error(o),Q.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(),Q.addSuccessEvent({key:502702})}catch(e){$.error(e),Q.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}},zd=class extends gt{constructor(e=256){super();this.fftSize=e;l(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}},Wa=class{constructor(){l(this,"source",new gt);l(this,"gain",new gt);l(this,"destination",new gt)}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(We().createGain()),this.gain.node.gain.value=t}replaceSource(t){this.source.replaceNode(Ga(t))}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}},fn=class extends Wa{constructor(e){super();this.context=e;l(this,"aec",new gt("aec"));l(this,"mixNode",new gt("mixNode"));l(this,"silentNode",new gt("silentNode"));l(this,"denoiser",new gt("denoiser"));l(this,"voiceChanger",new gt("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}},Jd=class{constructor(){l(this,"audioContext",We("audio-mixer"));l(this,"destination",this.audioContext.createMediaStreamDestination());l(this,"inputs",new Set);l(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]}},wg=new WeakMap;function Ga(i){let t=wg.get(i);if(t)return t;let e=We();if(i instanceof HTMLAudioElement)t=e.createMediaElementSource(i);else if(i instanceof MediaStreamTrack)t=e.createMediaStreamSource(new MediaStream([i]));else return i;return wg.set(i,t),t}var nr=class nr{constructor(t){l(this,"_volume",0);l(this,"_volumeDb",0);l(this,"_log");l(this,"_scriptProcessorNode",null);l(this,"_audioWorkletNode",null);l(this,"_interval",200);l(this,"ready",this.preload());let{log:e}=t;this._log=e,U.on(F.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-nr.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!nr.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);';nr.workletReady=xi(nr.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return nr.workletReady.then(()=>this.initAudioWorklet()).catch(t=>(this._log.error(`volumeMeter preload error: ${t}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(nr.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=e=>{nr.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}`),He.logFailedEvent({userId:this._log.userId,eventType:lr.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=We("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{nr.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(F.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})}};l(nr,"lastMessageTime",0),l(nr,"audioContext",We("volume-meter")),l(nr,"workletReady");var Xd=nr,ja=class extends gt{constructor(e){super();l(this,"_volumeMeter");this._volumeMeter=new Xd(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return y(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()}}},Qd=Xd;var Pg=pi(bi(),1);var Og=i=>t=>t.deviceId===i;var qa=class{constructor(t,e){l(this,"kind");l(this,"type");l(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&&En(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(Og(o.deviceId))){let s=`${this.kind}${this.type}Added`;$.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}}),this.devices.forEach(o=>{if(o.deviceId&&!r.find(Og(o.deviceId))){let s=`${this.kind}${this.type}Removed`;$.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}})),this.devices=r}hasDevice(t){return!!this.devices.find(e=>e.deviceId===t)}},nh=class extends Pg.EventEmitter{constructor(){super();l(this,"audioInputs",new qa(M.AUDIO,"Input"));l(this,"videoInputs",new qa(M.VIDEO,"Input"));l(this,"audioOutputs",new qa(M.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||dt.run("interval",()=>{this.update()},{delay:1e4}))}init(){gn().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return y(this,arguments,function*(e=0){let r=yield gn(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}hasBlueTooth(){var r;if(((r=We())==null?void 0:r.outputLatency)>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)))}},rt=Qn||Ls?null:new nh;function En(i){return i.deviceId===i.groupId&&i.groupId===""}function gn(){return y(this,arguments,function*(i=0){if(wi()||!Vd())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{En(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&&mo()}catch(o){$.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&&ah.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function Zt(i=!1){return rt.update(i?1:0).then(t=>t.audioInputs.devices)}function Kt(i=!1){return rt.update(i?2:0).then(t=>t.videoInputs.devices)}var xg=!1;function kg(){return y(this,null,function*(){try{xg||(xg=!0,$.info(`speakers:${(yield ho()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function ho(i=!1){return y(this,null,function*(){return(ht||Tt)&&(i=!1),rt.update(i?1:0).then(t=>t.audioOutputs.devices)})}var ah=new Set;function Lg(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!!ah.has(r)}function Ug(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!!ah.has(r)}function ch(i,t){return y(this,null,function*(){let r=(yield Zt()).find(o=>o.deviceId===Ho);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function Vg(s){return y(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===M.AUDIO&&i===Ho?yield ch(e,r):!0})}var Yd,dh=class extends Wa{constructor(e){super();this.log=e;l(this,"volumeMeter");l(this,"volumeMeterAfter3A");l(this,"volumeDestination");l(this,"analyser",new zd);this.volumeMeter=new ja({log:this.log}),this.volumeMeterAfter3A=new ja({log:this.log}),this.volumeDestination=new gt,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},_n=class i extends Ur{constructor(e){super(e,M.AUDIO);l(this,"_outputDeviceId");l(this,"_volume",1);l(this,"_destination",We("player").createMediaStreamDestination());l(this,"pipeline");l(this,"volumeMeterMode","worklet");this.mode=0,e.url&&(this.url=e.url),this.pipeline=new dh(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((xr==="15.2"||xr==="15.3"||xr==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let o=Yd||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,ke(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===Yd&&(Yd=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(qe.TIME_UPDATE,this.currentTime)),this.bindElementEvents()}play(e){return y(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(We("player").createAnalyser()),kg(),Ft(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 y(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()}},Zd=class extends _n{setTrack(t){this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(qe.MEDIA_TRACK_CHANGED,t),t&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([t]))))}},Kd=class extends _n{constructor(e){super(e);l(this,"_sourceElement");l(this,"_output",new gt);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(We("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(qe.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){this._volume=e,this.useDestination?(this.pipeline.setVolume(e),this._log.info(`set pipeline volume: ${e}`)):e<=1?this.element?(this._log.info(`set element volume: ${e}`),this.element.volume=e):this._log.info("set element volume: no element"):ht||(this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),ut(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&&hr&&(Yd=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var as=class extends le{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:n=o===1?Kd:zt}){var a;super();l(this,"id",ba());l(this,"userId","");l(this,"isRemote");l(this,"mediaType");l(this,"room");l(this,"user");l(this,"_log");l(this,"_inputTrack");l(this,"_outputTrack");l(this,"isPlayCalled");l(this,"container",null);l(this,"player");l(this,"subVideoPlayerMap");l(this,"muted",!1);l(this,"abortCtrl");l(this,"objectFit","cover");l(this,"mirror");l(this,"rotation");l(this,"isScreen",!1);l(this,"manager");l(this,"trackSettings");l(this,"isFirstVideoFrameEmitted",!1);this.userId=e||"",this.mediaType=o,this._log=$.createLogger({id:`${this.kind[0]}t`,userId:(a=s||this.room)==null?void 0:a.userId,remoteUserId:this instanceof Vr?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof Vr}),this.player=new n({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log}),this.player.on(qe.PLAYER_STATE_CHANGED,u=>{U.emit(F.PLAYER_STATE_CHANGED,X({track:this},u)),this.emit("player-state-changed",u)}),this.kind===M.VIDEO&&(this.player.on(qe.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(qe.LOADED_DATA),U.emit(F.VIDEO_LOADED_DATA,{track:this})}),this.player.on(qe.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(qe.LOADED_META_DATA)}),this.player.on(qe.MEDIA_TRACK_CHANGED,u=>{var m;(m=this.subVideoPlayerMap)==null||m.forEach(p=>p.setTrack(u))}),this.player.on(qe.RESIZE,u=>{this.emit("video-size-changed",X({userId:this.userId,streamType:this.mediaType===2?"auxiliary":"main"},u))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(qe.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||$}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 y(this,null,function*(){let o=st(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(r)}`),r&&!x(r.muted)&&this.setPlayerMute(r.muted),r&&!x(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof zt&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(this.container=o,this.player.setContainer(o)),st(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),r)));return}if(r&&!x(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===M.VIDEO)&&this.setPlayerMute(!0),r&&!x(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof zt&&(this.player.setObjectFit(this.objectFit),r&&!x(r.poster)&&this.player.setPoster(r.poster)),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof zt&&this.player.setContainer(o)),U.emit(F.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),st(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||x(e)||e===this.mirror)return;this.mirror=e;let o=this.player;r&&(o=r);let s=this.manager;if(Qe(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 y(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(u=>n===u)||(s.stop(),(a=this.subVideoPlayerMap)==null||a.delete(n))});for(let[s,n]of e.entries()){let a=this.subVideoPlayerMap.get(n);a?r&&(x(r.objectFit)||a.setObjectFit(r.objectFit)):this.subVideoPlayerMap.set(n,new zt({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(zl(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(r=>{r.stop()}),this.container=null)}resume(){return y(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?F.TRACK_MUTED:F.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){bt(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){ut(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(zl(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){if(this.room&&this.room.enableAutoPlayDialog)new hn;else{let r=()=>{this.resume().then(()=>{document.removeEventListener("click",r,!0)})};document.addEventListener("click",r,!0)}this.emit("error",e)}getVideoFrame(){return this.player instanceof zt?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var n,a,u;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)||((u=this.player.element)==null?void 0:u.videoHeight)||0;e===qe.RESIZE&&!o&&!s||e===qe.LOADED_META_DATA&&!o&&!s||(e===qe.LOADED_DATA&&!o&&!s&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,or(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`)}};te([Ze([],le.INIT,{sync:!0})],as.prototype,"close",1);var MI=Object.prototype.hasOwnProperty,{toString:cN}=Object.prototype;function OI(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(Bt(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(MI.call(i,t))return!1;return!0}}return!1}var za=OI;var xI=function(i){return y(this,null,function*(){let t=kI(i);$.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];t.audio&&(e=yield Zt(),$.info(`microphones: ${mr(e.map(s=>ge(X({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield Kt(),$.info(`cameras: ${mr(r,{keysToInclude:o})}`));try{let s=yield navigator.mediaDevices.getUserMedia(t);return $m&&s.getTracks().forEach(n=>{$.info(`${n.kind} capabilities: ${mr(n.getCapabilities(),{keysToInclude:Xc})}`)}),t.audio&&mo(),s}catch(s){let{message:n}=s;throw s.name==="NotFoundError"&&(i.video&&r&&r.length===0&&(n=$e({key:Fe.CAMERA_NOT_FOUND})),i.audio&&e&&e.length===0&&(n=$e({key:Fe.MICROPHONE_NOT_FOUND}))),new de({code:q.INITIALIZE_FAILED,name:s.name,message:n,constraint:s.constraint})}})},PI=so({retryFunction:xI,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"?(s===1?(r[0].video&&(r[0].maxResolution=!1,(!Tt||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&&Fg(r[0].microphoneId,!1),r[0].cameraId&&Fg(r[0].cameraId,!0)},onRetrying:i=>{$.warn(`getUserMedia NotReadableError observed, retrying [${i}/3]`)},onRetryFailed:i=>{He.logFailedEvent({eventType:lr.GET_USER_MEDIA_RETRY,error:i})},onRetrySuccess:i=>{He.logSuccessEvent({eventType:lr.GET_USER_MEDIA_RETRY}),He.uploadEvent({log:`stat-${lr.GET_USER_MEDIA_RETRY}-success-${i}`})}});function Fg(i,t){return y(this,null,function*(){let r=(t?yield Kt():yield Zt()).find(o=>o.deviceId===i);r&&Ge(r.getCapabilities)&&$.warn(mr(r.getCapabilities(),{keysToInclude:Xc}))})}function kI(i){return{audio:LI(i),video:UI(i)}}function LI(i){if(!i.audio)return!1;if(i.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:i.sampleRate};return!za(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:(ke(i.channelCount)&&(t.channelCount=i.channelCount),Qe(i.echoCancellation)&&!i.echoCancellation&&(t.echoCancellation=!1),Qe(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),Qe(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),za(t)?!0:t)}function UI(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&&!za(e)?e:(i.width&&(e.width={ideal:i.width},t&&!Ht&&(e.width.max=i.width)),i.height&&(e.height={ideal:i.height},t&&!Ht&&(e.height.max=i.height)),Ht&&Or&&i.width&&i.height&&i.width*i.height<352*288&&(e.width=i.width,e.height=i.height),i.frameRate&&(e.frameRate=i.frameRate),za(e)?!0:e)}var $g=PI;function po(i){return Oe((t,e)=>function(...r){return y(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function Bg(i){return Oe((t,e)=>function(...r){return y(this,null,function*(){try{return yield t.apply(this,r)}catch(o){i.call(this,o)}})})}function Oe(i){return function(t,e,r){return r.value=i(r.value,e),r}}var Hg=(()=>{let i=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&$.info(`visibility change: ${document.visibilityState}`),!i&&(document.addEventListener("visibilitychange",()=>{$.info(`visibility change: ${document.visibilityState}`),t=document.visibilityState}),i=!0)}})();var VI=0,eu=class{constructor(){l(this,"log",$.createLogger({id:`fq${++VI}`}));l(this,"isRunning",!1);l(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=X({},t),o=new Promise((a,u)=>{r.resolve=a,r.reject=u});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()})}},Wg=new WeakMap,Gg=new WeakMap;function cs(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let n=Wg.get(this)||new eu;return Wg.set(this,n),n.push({fn:o,args:s,context:this},i)},r}}function jg(i){return function(t,e,r){let o=r.value,s=n=>i(...n);return r.value=function(...n){let a=Gg.get(this)||new Map,u=a.get(s(n))||new eu;return a.set(s(n),u),Gg.set(this,a),u.push({fn:o,args:n,context:this})},r}}function tu(i,t){return Oe((e,r)=>function(...o){let s=i;try{let n=e.apply(this,o),a=_e();return io(n)?n.then(u=>(t?Q.addSuccessEvent({key:s,cost:_e()-a}):Q.addSuccessEvent({key:s}),u)).catch(u=>{throw Q.addFailedEvent({key:s,error:u}),u}):(Q.addSuccessEvent({key:s}),n)}catch(n){throw Q.addFailedEvent({key:s,error:n}),n}})}var zh={};hi(zh,{Events:()=>lt,Inspect:()=>gr,LastSink:()=>ds,Sink:()=>pe,Subscribe:()=>us,TimeoutError:()=>Ja,audit:()=>TS,bindCallback:()=>oS,bindNodeCallback:()=>sS,buffer:()=>zI,bufferCount:()=>qI,bufferTime:()=>VS,call:()=>qg,catchError:()=>Wh,combineLatest:()=>Jg,concat:()=>BI,concatMap:()=>wS,concatMapTo:()=>MS,count:()=>cS,create:()=>xe,debounce:()=>IS,debounceTime:()=>SS,defer:()=>Xg,delay:()=>FS,deliver:()=>Te,dispose:()=>ru,elementAt:()=>yS,empty:()=>Za,every:()=>CS,exhaustMap:()=>PS,exhaustMapTo:()=>kS,filter:()=>Jt,find:()=>AS,findIndex:()=>bS,first:()=>RS,fromAnimationFrame:()=>rS,fromArray:()=>QI,fromEvent:()=>be,fromEventPattern:()=>YI,fromFetch:()=>ZI,fromIterable:()=>KI,fromPromise:()=>Zg,fromReadableStream:()=>tS,fromReader:()=>eS,groupBy:()=>LS,identity:()=>FI,ignoreElements:()=>mS,iif:()=>WI,inspect:()=>zg,interval:()=>fh,last:()=>vS,map:()=>go,mapTo:()=>DS,max:()=>dS,merge:()=>Xa,mergeMap:()=>OS,mergeMapTo:()=>xS,min:()=>uS,never:()=>nS,nothing:()=>Be,of:()=>XI,pairwise:()=>NS,pipe:()=>Ae,race:()=>ph,range:()=>iS,reduce:()=>gh,retry:()=>HS,scan:()=>Hh,share:()=>Pi,shareReplay:()=>HI,skip:()=>pS,skipUntil:()=>fS,skipWhile:()=>au,startWith:()=>Qa,subject:()=>Rt,subscribe:()=>Le,sum:()=>lS,switchMap:()=>Eo,switchMapTo:()=>ki,take:()=>Fr,takeLast:()=>hS,takeUntil:()=>ze,takeWhile:()=>Kg,tap:()=>Ka,throttle:()=>ES,throwError:()=>aS,timeInterval:()=>US,timeout:()=>qh,timer:()=>Ya,toPromise:()=>$S,toReadableStream:()=>BS,withLatestFrom:()=>jI,zip:()=>GI});function Be(...i){}var qg=i=>i(),FI=i=>i;function ru(){this.dispose()}var zg=()=>typeof __FASTRX_DEVTOOLS__!="undefined",$I=1,gr=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new uh(t,this,this.streamId++);return lt.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},ds=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=Be,this.error=Be,this.next=Be,this.dispose=Be,this.subscribe=Be,this.doDefer()}subscribe(t){return t instanceof gr?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(qg),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}},pe=class extends ds{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)}},us=class extends ds{constructor(t,e=Be,r=Be,o=Be){if(super(),this._next=e,this._error=r,this._complete=o,this.then=Be,t instanceof gr){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{lt.defer(s,0)}),lt.create(s),lt.pipe(s),this.sourceId=s.id,this.subscribe(t),lt.subscribe({id:s.id,end:!0}),e==Be?this._next=n=>lt.next(s,0,n):this.next=n=>{lt.next(s,0,n),e(n)},o==Be?this._complete=()=>lt.complete(s,0):this.complete=()=>{this.dispose(),lt.complete(s,0),o()},r==Be?this._error=n=>lt.complete(s,0,n):this.error=n=>{this.dispose(),lt.complete(s,0,n),r()}}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 xe(i,t,e){if(zg()){let r=Object.defineProperties(Object.setPrototypeOf(i,gr.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}});lt.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof gr&&lt.addSource(r,s)}return r}return i}function Te(i,t){return function(...e){return r=>{if(r instanceof gr){let o=xe(s=>{let n=new i(s,...e);n.sourceId=o.id,n.subscribe(r)},t,arguments);return o.source=r,lt.pipe(o),o}else return o=>r(new i(o,...e))}}}function fo(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var uh=class extends pe{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{lt.defer(this.source,this.id)})}next(t){lt.next(this.source,this.id,t),this.sink.next(t)}complete(){lt.complete(this.source,this.id),this.sink.complete()}error(t){lt.complete(this.source,this.id,t),this.sink.error(t)}},lt={addSource(i,t){fo("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){fo("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){fo("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){fo("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){fo("defer",{id:i.id,streamId:t})},pipe(i){fo("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){fo("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=$I++),fo("create",{name:i.toString(),id:i.id})}},Ja=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var iu=class extends ds{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 Pi(){return i=>{let t=new iu(i);if(i instanceof gr){let e=xe(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,lt.pipe(e),e}return xe(t.add.bind(t),"share",arguments)}}function Xa(...i){return xe(t=>{let e=new pe(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function ph(...i){return xe(t=>{let e=new Map;i.forEach(r=>{let o=new pe(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 BI(...i){return xe(t=>{let e=0,r=i.length,o=new pe(t);o.complete=()=>{e<r&&!o.disposed?(o.doDefer(),o.subscribe(i[e++])):t.complete()},o.complete()},"concat",arguments)}function HI(i){return t=>{let e=new iu(t),r=[];return e.next=function(o){r.push(o),r.length>i&&r.shift(),this.sinks.forEach(s=>s.next(o))},xe(o=>{o.defer(()=>e.remove(o)),r.forEach(s=>o.next(s)),e.add(o)},"shareReplay",arguments)}}function WI(i,t,e){return xe(r=>i()?t(r):e(r),"iif",arguments)}function Jg(...i){return xe(t=>{let e=i.length,r=e,o=e,s=new Array(e),n=()=>{--o===0&&t.complete()},a=(u,m)=>{let p=new pe(t);p.next=g=>{--r===0?(p.next=_=>{s[m]=_,t.next(s)},p.next(g)):s[m]=g},p.complete=n,p.subscribe(u)};i.forEach(a)},"combineLatest",arguments)}function GI(...i){return xe(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},n=(a,u)=>{let m=new pe(t),p=[];o[u]=p,m.next=g=>{p.push(g),o.every(_=>_.length)&&t.next(o.map(_=>_.shift()))},m.complete=s,m.subscribe(a)};i.forEach(n)},"zip",arguments)}function Qa(...i){return t=>xe((e,r=0,o=i.length)=>{for(;r<o&&!e.disposed;)e.next(i[r++]);e.disposed||e.subscribe(t)},"startWith",arguments)}var lh=class extends pe{constructor(t,...e){super(t);let r=new pe(this.sink);r.next=o=>this.buffer=o,r.complete=Be,r.subscribe(Jg(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},jI=Te(lh,"withLatestFrom"),mh=class extends pe{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()}},qI=Te(mh,"bufferCount"),hh=class extends pe{constructor(t,e){super(t),this.buffer=[];let r=new pe(t);r.next=o=>{t.next(this.buffer),this.buffer=[]},r.complete=Be,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},zI=Te(hh,"buffer");var JI=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{m(r.next(p))}catch(g){n(g)}}function u(p){try{m(r.throw(p))}catch(g){n(g)}}function m(p){p.done?s(p.value):o(p.value).then(a,u)}m((r=r.apply(i,t||[])).next())})};function Rt(i){let t=arguments,e=Pi()(xe(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=Be,e.complete=Be,e.error=Be,e}function Xg(i){return xe(t=>t.subscribe(i()),"defer",arguments)}var Qg=i=>t=>{setTimeout(()=>i(t))},Yg=i=>Qg(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function XI(...i){return xe(Yg(i),"of",arguments)}function QI(i){return xe(Yg(i),"fromArray",arguments)}function fh(i){return xe(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function Ya(i,t){return xe(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 ou(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function YI(i,t){return xe(ou(i,t),"fromEventPattern",arguments)}function be(i,t){if("on"in i&&"off"in i)return xe(ou(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return xe(ou(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return xe(ou(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function Zg(i){return xe(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function ZI(i,t){return xe(Xg(()=>Zg(fetch(i,t))),"fromFetch",arguments)}function KI(i){return xe(Qg(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function eS(i){let t=e=>JI(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 xe(e=>{t(e)},"fromReader",arguments)}function tS(i){return xe(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 rS(){return xe(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function iS(i,t){return xe((e,r=i,o=t+i)=>{for(;r<o&&!e.disposed;)e.next(r++);return e.complete(),"range"},"range",arguments)}function oS(i,t,...e){return xe(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function sS(i,t,...e){return xe(r=>{let o=e.concat((s,n)=>s?r.error(s):(r.next(n),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function nS(){return xe(()=>{},"never",arguments)}function aS(i){return xe(t=>t.error(i),"throwError",arguments)}function Za(){return xe(i=>i.complete(),"empty",arguments)}var ls=class extends pe{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)}},gh=Te(ls,"reduce"),cS=i=>Te(ls,"count")((t,e)=>i(e)?t+1:t,0),dS=()=>Te(ls,"max")(Math.max),uS=()=>Te(ls,"min")(Math.min),lS=()=>Te(ls,"sum")((i,t)=>i+t,0);var Eh=class extends pe{constructor(t,e,r){super(t),this.filter=e,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},Jt=Te(Eh,"filter"),_h=class extends pe{next(t){}},mS=Te(_h,"ignoreElements"),Th=class extends pe{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&this.complete()}},Fr=Te(Th,"take"),Ih=class extends pe{constructor(t,e){super(t);let r=new pe(t);r.next=()=>t.complete(),r.complete=ru,r.subscribe(e)}},ze=Te(Ih,"takeUntil"),Sh=class extends pe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):this.complete()}},Kg=Te(Sh,"takeWhile"),hS=i=>gh((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),yh=class extends pe{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},pS=Te(yh,"skip"),Ah=class extends pe{constructor(t,e){super(t),t.next=Be;let r=new pe(t);r.next=()=>{r.dispose(),t.resetNext()},r.complete=ru,r.subscribe(e)}},fS=Te(Ah,"skipUntil"),bh=class extends pe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},au=Te(bh,"skipWhile"),gS={leading:!0,trailing:!1},Rh=class extends pe{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)}},su=class extends pe{constructor(t,e,r=gS){super(t),this.durationSelector=e,this.config=r,this._throttle=new Rh(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=Be,this._throttle.complete(),super.complete()}},ES=Te(su,"throttle"),_S={leading:!1,trailing:!0},TS=i=>Te(su,"audit")(i,_S),vh=class extends pe{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},nu=class extends pe{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new vh(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()}},IS=Te(nu,"debounce"),SS=i=>Te(nu,"debounceTime")(t=>Ya(i)),Ch=class extends pe{constructor(t,e,r){super(t),this.count=e,this.defaultValue=r}next(t){this.count--===0&&(this.defaultValue=t,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()}},yS=Te(Ch,"elementAt"),AS=i=>t=>Fr(1)(au(e=>!i(e))(t)),Nh=class extends pe{constructor(t,e){super(t),this.f=e,this.i=0}next(t){this.f(t)?(this.sink.next(this.i++),this.complete()):++this.i}},bS=Te(Nh,"findIndex"),Dh=class extends pe{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.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},RS=Te(Dh,"first"),wh=class extends pe{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()}},vS=Te(wh,"last"),Mh=class extends pe{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.complete())}complete(){if(this.result===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.result);super.complete()}},CS=Te(Mh,"every");var Oh=class extends pe{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))}},Hh=Te(Oh,"scan"),xh=class extends pe{constructor(){super(...arguments),this.hasLast=!1}next(t){this.hasLast?this.sink.next([this.last,t]):this.hasLast=!0,this.last=t}},NS=Te(xh,"pairwise"),cu=class extends pe{constructor(t,e,r){super(t),this.mapper=e,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},go=Te(cu,"map"),DS=i=>Te(cu,"mapTo")(t=>i),Tn=class extends pe{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()}},In=class extends pe{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=this.tryComplete,r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},du=class extends Tn{},uu=class extends In{next(t){this.subInner(t,du),this.next=e=>{this.currentSink.dispose(),this.subInner(e,du)}}},Eo=Te(uu,"switchMap");function pu(i){return(t,e)=>i(()=>t,e)}var ki=pu(Te(uu,"switchMapTo")),Ph=class extends Tn{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},lu=class extends In{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(),Ph),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},wS=Te(lu,"concatMap"),MS=pu(Te(lu,"concatMapTo")),kh=class extends Tn{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},mu=class extends In{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,kh),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},OS=Te(mu,"mergeMap"),xS=pu(Te(mu,"mergeMapTo")),Lh=class extends Tn{dispose(){this.context.resetNext(),super.dispose()}},hu=class extends In{next(t){this.next=Be,this.subInner(t,Lh)}},PS=Te(hu,"exhaustMap"),kS=pu(Te(hu,"exhaustMapTo")),Uh=class extends pe{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=Rt(),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)}},LS=Te(Uh,"groupBy"),Vh=class extends pe{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}},US=Te(Vh,"timeInterval"),Fh=class extends pe{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()}},VS=Te(Fh,"bufferTime"),$h=class extends pe{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)}},FS=Te($h,"delay"),Bh=class extends pe{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},Wh=Te(Bh,"catchError");var $S=()=>i=>new Promise((t,e)=>{let r;new us(i,o=>r=o,e,()=>t(r))}),BS=()=>i=>{let t;return new ReadableStream({start(e){t=new us(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},Le=(i=Be,t=Be,e=Be)=>r=>new us(r,i,t,e),Gh=class extends pe{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)}))}},Ka=Te(Gh,"tap"),jh=class extends pe{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new Ja(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},qh=Te(jh,"timeout"),HS=(i=1/0)=>t=>{if(t instanceof gr){let e=xe(r=>{let o=i,s=new pe(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,lt.pipe(e),e}else return e=>{let r=i,o=new pe(e);o.error=s=>{r-- >0?t(o):e.error(s)},t(o)}};var Sn=(e=>(e[e.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",e[e.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",e))(Sn||{}),ms=class ms extends as{constructor(e,r){super({mediaType:e,PlayerClass:r});l(this,"isRemote",!1);l(this,"deviceId");l(this,"groupId","");l(this,"label","");l(this,"sourceTrack");l(this,"enableAutoSwitchWhenRecapturing",!0);l(this,"_isRecapturing",!1);l(this,"_lastRecaptureTime",0);l(this,"_onMuteTimeoutId",-1);l(this,"_encodeCheckTimeoutId",-1);l(this,"recaptureMode",0);l(this,"profile")}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){bt(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){ut(e)}setStateToReady(){}capture(e){return y(this,null,function*(){var r;try{let o=_e();U.emit(F.LOCAL_TRACK_CAPTURE_START,{track:this});let s;e.customSource?(s=new MediaStream,s.addTrack(e.customSource)):((r=this.sourceTrack)==null||r.stop(),s=yield $g(e));let n=s.getTracks()[0];return yield this.setInputMediaStreamTrack(n),e.customSource||(this.sourceTrack=n,this.updateDeviceIdInUse(),this.listenDeviceChange()),U.emit(F.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:_e()-o}),s}catch(o){throw U.emit(F.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:o}),this.log.error(`getUserMedia error observed ${o}`),o}})}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=qo(((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.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.setUserId(e.userId),this._log.setSdkAppId(e.sdkAppId),Promise.all([r,new Promise((o,s)=>y(this,null,function*(){var a,u;this.hasFlag?o():Ae(be(e,"local-publish-flag-changed"),Jt(()=>this.hasFlag),ze(Xa(be(this,le.INIT),be(this,"ready"))),Le(o)),!((((u=(a=this.room)==null?void 0:a.networkQuality)==null?void 0:u.uplinkNetworkQuality)||0)>3)&&(this._encodeCheckTimeoutId=setTimeout(()=>{var p,g,_,A,C,N;if(!((((g=(p=this.room)==null?void 0:p.networkQuality)==null?void 0:g.uplinkNetworkQuality)||0)>3)&&this.isPublished&&this.isMediaTrackActive){let D=this.kind===M.AUDIO,O=this.stat.bytesSent>0;if(Q[O?"addSuccessEvent":"addFailedEvent"]({key:D?503700:513702}),!D){let Z=((A=(_=this.room)==null?void 0:_.videoCodec)==null?void 0:A.toUpperCase())||"H264",ue={H264:513704,H265:513705,VP8:513706}[Z];ue&&Q[O?"addSuccessEvent":"addFailedEvent"]({key:ue})}O||(Q.addEnum({key:D?503701:513703,value:Yo()}),He.uploadEvent({log:`stat-encode-failed-${this.kind}-${ya()||Zo()}`,userId:this.userId}),this.log.warn(D?"encode failed":`${(N=(C=this.room)==null?void 0:C.videoCodec)==null?void 0:N.toUpperCase()} encode failed`),this.emit("6",this),s(new de({message:`${this.strMediaType} encode failed`,code:D?q.AUDIO_ENCODE_FAILED:q.VIDEO_ENCODE_FAILED})))}},5e3))}))])}unpublish(){this.room&&this.room.localTracks.delete(this),U.emit(F.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return y(this,null,function*(){if(this.sourceTrack&&ln){let{deviceId:e,groupId:r}=this.sourceTrack.getSettings(),{label:o}=this.sourceTrack;(yield Vg({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),gn().then(n=>{let a=n.find(u=>u.deviceId===e);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&&!Ug(this.sourceTrack)||this.kind===M.VIDEO&&!Lg(this.sourceTrack)||this._isRecapturing||e&&Or&&Tt)}onTrackMuted(){if(super.onTrackMuted(),Hg(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<Fs){setTimeout(()=>this.onTrackMuted(),Fs);return}this._onMuteTimeoutId=setTimeout(()=>y(this,null,function*(){var e;if((e=this.sourceTrack)!=null&&e.muted){if((ht||pt)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return y(this,null,function*(){if(Ft(ms.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()&&this.recaptureMode===0){if(Date.now()-this._lastRecaptureTime<Fs){setTimeout(()=>this.onTrackEnded(),Fs);return}this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e){return y(this,null,function*(){var o;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying"),(o=this.sourceTrack)==null||o.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let r={useExactDeviceId:!0};if(e==="user"||e==="environment")r.facingMode=e;else{let s;(this.kind==="audio"?yield Zt():yield Kt()).find(a=>a.deviceId===e)&&(s=e),r.deviceId=s}return this.capture(r).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),U.emit(F.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(s=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${s.message}`),this.emit("5",s),U.emit(F.LOCAL_TRACK_RECAPTURE,{track:this,error:s})})})}getRecoverCaptureDeviceId(){return y(this,null,function*(){let e=this instanceof ar;if(e&&this.facingMode)return this.facingMode;let{deviceId:r}=this;if(r){let o=(ec.get(r)||0)+1;if(ec.set(r,o),o>=3&&this.enableAutoSwitchWhenRecapturing){let s=e?(yield Kt()).find(n=>!ec.has(n.deviceId)):(yield Zt()).find(n=>!ec.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)),(e=this.manager)==null||e.removeInput(this)}close(){super.close(),this.stopCapture()}};te([Ze(le.INIT,"ready",{ignoreError:!0,sync:!0})],ms.prototype,"setStateToReady",1),te([cs()],ms.prototype,"capture",1),te([Ze("ready","publish",{ignoreError:!0,success(){this.room.localTracks.add(this),U.emit(F.LOCAL_TRACK_PUBLISHED,{track:this,room:this.room}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"})},fail(e){let r="error";if(e.cause instanceof de){let o=e.cause;o.message.includes("timeout")?r="timeout":o.code===q.API_CALL_ABORTED&&(r="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:e.cause||e})}}),tu(521714,!1)],ms.prototype,"publish",1),te([Oe(e=>function(){return y(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)})}),Ze([],"ready",{sync:!0})],ms.prototype,"unpublish",1);var Vr=ms,ec=new Map;U.on(F.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&ec.delete(i.track.deviceId)});var ti=class i extends Vr{constructor(e){super(1,Zd);l(this,"mediaType",1);l(this,"volume",0);l(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40});l(this,"playerMuted",!0);l(this,"pipeline");l(this,"earMonitorGainNode",new gt);l(this,"_output",new gt);l(this,"codecPipeline",[]);l(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});l(this,"mixedAudioReferenceMap",new Map);l(this,"isAudioContextLongSuspended",!1);this.manager=e,this.pipeline=new fn(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(F.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this)}get dbVolume(){return Qd.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()}setInputMediaStreamTrack(e){return y(this,null,function*(){let r=this.trackSettings||{};Q.addEnum({key:501701,value:r.channelCount||0,useUV:!1}),Q.addEnum({key:501702,value:r.sampleRate||0,useUV:!1}),Q.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 Ft(i.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture(n){return y(this,arguments,function*({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s}){let a=yield Ft(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});return mo(),a})}switchDevice(e){return y(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource)if(e===Ho){if(yield ch(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(F.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(){rt&&!rt.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&rt.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return y(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${Sn[this.recaptureMode]}. Current microphone is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){nt(this.userId,{eventId:2003,param1:6,streamType:1});let o=yield Zt();o[0]?this.recapture(o[0].deviceId):r=!0}r&&rt.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.recaptureMode===1&&e.deviceId!==this.deviceId||(rt.off("audioInputAdded",this.handleMicrophoneAdded,this),this.log.warn(`microphone added: ${JSON.stringify(e)}`),this.recapture(e.deviceId))}update3A(s){return y(this,arguments,function*({echoCancellation:e,noiseSuppression:r,autoGainControl:o}){let n=this.sourceTrack||this.mediaTrack;if(!n)return;let a=n.getConstraints(),u=!1;!x(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,a.echoCancellation=e,u=!0),!x(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,a.noiseSuppression=r,u=!0),!x(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,a.autoGainControl=o,u=!0),u&&(Ht||Tt?yield n.applyConstraints(a).catch(m=>this._log.warn("update3A failed: ",m)):this.deviceId&&(yield this.recapture(this.deviceId)))})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&Q.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),ht&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(We().createGain()),this._output.setNode(We().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!(Tt||ht))return this.update3A({echoCancellation:e})}addDenoiser(e){var r;if(Zr<=92&&((r=this.trackSettings)==null?void 0:r.sampleRate)!==48e3){this._log.warn("denoiser only support sampleRate 48000 before chrome 93");return}Q.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=Ga(e),s=new gt,n=We().createGain();n.gain.value=1;let a=new gt;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(),rt.off("audioInputAdded",this.handleMicrophoneAdded,this),rt.off("audioInputRemoved",this.handleMicrophoneRemoved,this),U.off(F.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this),super.close()}recapture(e){return y(this,null,function*(){try{yield Ft(i.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield Zt()).find(s=>s.deviceId!==e);if(o)yield Ft(i.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((r,o)=>o?o({frame:r,ntp:fi()}):r,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}handleAudioContextLongSuspended({isSuspended:e}){if(this.pipeline.isProcessEnabled)if(e){this.isAudioContextLongSuspended=!0,this.log.warn(`context has suspended for ${sh/1e3} seconds, change to source audio${hr?"":", 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 hs=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 fu=class{constructor(){l(this,"_seiMessageList",[]);l(this,"_smallSeiMessageList",[]);l(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 hs(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((_,A)=>_+A.dataView.byteLength,0),u=new ArrayBuffer(a+t.data.byteLength),m=new DataView(u),p=new DataView(t.data),g=0;for(let _=0;_<n.length;_++)for(let A=0;A<n[_].dataView.byteLength;A++)m.setInt8(g++,n[_].dataView.getInt8(A));for(let _=0;_<t.data.byteLength;_++)m.setInt8(g++,p.getInt8(_));return t.data=u,n.length}return 0}};var ps=class ps extends Vr{constructor(e,r=4){super(r,zt);l(this,"profile",X({},Zn));l(this,"avoidCropping",!1);l(this,"_scaleResolutionDownBy");l(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0,framesCaptured:0});l(this,"small");l(this,"isNeedToSetBandwidth");l(this,"muteImage");l(this,"manager");l(this,"_seiCodec",new fu);this.manager=e;let o=()=>{this.isAllowed2k4k(this.profile)?this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1}):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),this.setProfile(ge(X({},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(!(!ln||!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"}setMute(e){return y(this,null,function*(){var r,o,s;if(Ne(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}),this.muteImage=e,Ft(ps.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0),Ft(ps.prototype,this,"setMute").call(this,e)})}capture({deviceId:e,facingMode:r,useExactDeviceId:o=!0,customSource:s,retryWhenExactFailed:n=!0}){return super.capture({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})}setProfile(e){let r=this.fallbackProfile(e);r.bitrate&&(this.isNeedToSetBandwidth=r.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile)?super.setProfile(r):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),super.setProfile(ge(X({},this.profile),{width:1920,height:1080})))}applyProfile(){return y(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&&(Ot===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:u=0,height:m=0}=(this.sourceTrack||this.mediaTrack).getSettings(),p=u*m;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 ln&&r&&Object.assign(e,r.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:sd(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 y(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e)&&!this.isUseCustomSource)return;let r={useExactDeviceId:!0,retryWhenExactFailed:!1};if(e==="user"||e==="environment"){r.facingMode=e;try{if((_a||on)&&e==="environment"&&Bm){let s=(yield Kt(!0)).map(a=>{var u;return ge(X({},a),{capabilities:(u=a.getCapabilities)==null?void 0:u.call(a)})}).filter(a=>{var u,m;return(m=(u=a.capabilities)==null?void 0:u.facingMode)==null?void 0:m.includes("environment")}),n=s[0];s.forEach(a=>{var g,_,A,C;let{capabilities:u}=a,m=(g=u.width)!=null&&g.max&&((_=u.height)!=null&&_.max)?u.width.max*u.height.max:0,p=(A=n.capabilities.width)!=null&&A.max&&((C=n.capabilities.height)!=null&&C.max)?n.capabilities.width.max*n.capabilities.height.max:0;m>p&&(n=a)}),n!=null&&n.capabilities&&(delete r.facingMode,this._log.info("switch to max res camera",n),r.deviceId=n.deviceId)}}catch(o){this._log.warn("get max res camera failed",o)}}else r.deviceId=e;this.sourceTrack&&this.sourceTrack.stop(),yield this.capture(r),U.emit(F.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}})}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=X({},e);return e.width*e.height<=160*120&&pt&&Yr&&(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&&nm&&(s.width=o?1280:720,s.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),im(xr,"14.3")&&om(xr,"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&&(Yr||Ht)&&!cm()&&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(){rt&&!rt.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&rt.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return y(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${Sn[this.recaptureMode]}. Current camera is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){nt(this.userId,{eventId:2003,param1:7,streamType:2});let o=yield Kt();o[0]?this.recapture(o[0].deviceId):r=!0}r&&rt.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return y(this,null,function*(){this.recaptureMode===1&&e.deviceId!==this.deviceId||(rt.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 x(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){rt.off("videoInputAdded",this.handleCameraAdded,this),rt.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return y(this,null,function*(){try{yield Ft(ps.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield Kt()).find(s=>s.deviceId!==e);if(o)yield Ft(ps.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||x(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};te([po(function(e){this.setContentHint(e.contentHint||"motion")})],ps.prototype,"capture",1);var ar=ps;var Qh={};hi(Qh,{REPORT_TYPE:()=>Js,buildSSOPackage:()=>Ii,bytes2ms:()=>sf,calculateScaleResolutionDownNumber:()=>sd,concatArrayBuffers:()=>Ef,convertObjectNumberToInt:()=>ca,copyProperties:()=>of,deepClone:()=>Wo,deepCloneBasic:()=>Kc,deepMerge:()=>Dr,delay:()=>da,fibonacci:()=>Go,formatedTime:()=>td,getConstructorName:()=>Ws,getContainerFromElement:()=>pf,getEnv:()=>ef,getFirst16Bits:()=>Tf,getInternalVersion:()=>mf,getLast16Bits:()=>_f,getLoggerUrl:()=>Ti,getMediaStreamTrackInfo:()=>od,getMuteStateFromFlag:()=>qo,getNetworkType:()=>oa,getNumNetworkType:()=>ed,getReconnectionTimeout:()=>af,getStringByteLength:()=>ff,getTurnServer:()=>hf,getUint32Version:()=>rd,getValueType:()=>ct,getViewListFromView:()=>qs,glog:()=>sa,ipv4ToUint32:()=>js,isArray:()=>st,isAudioWorkletSupported:()=>uf,isBoolean:()=>Qe,isConstructor:()=>jo,isEmpty:()=>Gs,isFunction:()=>Ge,isLangChinese:()=>Nr,isMediaStreamTrack:()=>cf,isNumber:()=>ke,isObject:()=>ir,isOverseaSdkAppId:()=>_i,isPlainObject:()=>Bt,isPortrait:()=>Gl,isPromise:()=>io,isRemoteTrack:()=>df,isRotate90Or270:()=>or,isSetSinkIdSupported:()=>lf,isString:()=>Ne,isUndefined:()=>x,loadImage:()=>zs,loadVideo:()=>gf,ms2bytes:()=>nf,ms2samples:()=>Wl,normalizeUrl:()=>zo,performanceNow:()=>_e,promiseAny:()=>na,samples2ms:()=>Hl,setNetworkType:()=>rf,stringify:()=>mr,stringifyIncludeValue:()=>aa,throttlePromise:()=>id});var GS=[-1,-1,1,-1,-1,1,1,1],jS=[0,0,1,0,0,1,1,1];var _o=class _o extends le{constructor(e,r){super();this.context=e;l(this,"name");l(this,"input");l(this,"output");l(this,"texture");l(this,"ctx2d",null);l(this,"fbo");l(this,"width",0);l(this,"height",0);l(this,"x",0);l(this,"y",0);l(this,"program");l(this,"vertexShader");l(this,"fragmentShader");l(this,"totalFrames",0);l(this,"dropFrames",0);l(this,"matchInputSize",!0);l(this,"texCoordBuffer");l(this,"positionBuffer");l(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0});l(this,"cost",0);l(this,"_canvas",null);l(this,"_image");l(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 Dt){e.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&Ot!==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(jS),this.positionBuffer=this.createBuffer(GS),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.PACK_ALIGNMENT,1),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 de({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 St&&this.render(e)||this.context instanceof Dt&&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 St){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,u,m,p){let g=!x(a)&&!x(u)&&!x(m)&&!x(p);return this.ctx2d&&e?(e instanceof ImageData?(g?this.ctx2d.putImageData(e,r,o,a,u,m,p):this.ctx2d.putImageData(e,r,o),this.emit(_o.RENDER,this.ctx2d.canvas)):(g?this.ctx2d.drawImage(e,a,u,m,p,r,o,s,n):this.ctx2d.drawImage(e,r,o,s,n),this.emit(_o.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 g;let{totalFrames:e,x:r,y:o,width:s,height:n,name:a,cost:u}=this,m=Date.now(),p=(e-this.lastInfo.totalFrames)/((m-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:m,fps:p,name:a,cost:u},X({parent:(g=this.input)==null?void 0:g.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.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),o}};l(_o,"RENDER","render"),te([Ze(le.INIT,"connected",{sync:!0})],_o.prototype,"connect",1),te([Ze("connected",le.INIT,{ignoreError:!0,sync:!0})],_o.prototype,"disconnect",1),te([Ze([],"closed",{sync:!0})],_o.prototype,"close",1);var vt=_o;var tE=Ae(fh(250),go(()=>performance.now()),Pi()),rE=i=>t=>{let e=0,r=performance.now();Ae(tE,go(o=>(o-r)/i>>0),Jt(o=>o!=e?(e=o,!0):!1))(t)},gu=i=>t=>{let e=performance.now();Ae(tE,au(r=>r-e<i),Fr(1))(t)};var zS=[0,1,1,1,0,0,1,0],fs=class extends vt{constructor(e,r){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},r));l(this,"_intervalId",0);l(this,"_sequence",0);l(this,"checkGLError",!1);l(this,"checkVisibilityChange");e instanceof Dt?this.ctx2d=e.ctx||null:e.available&&(r!=null&&r.mirrorUpAndDown)&&this.setTexBuffer(zS)}start(e){this.log.info(`${this.name} start render ${e} fps`),dt.clearTask(this._intervalId),this._intervalId=dt.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(dt.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof St){let o=this.context.ctx.getError();o&&this.context.destroy(new de({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(vt.RENDER,this.context._canvas),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){this._intervalId&&(dt.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),dt.clearTask(this._intervalId)}resize(e,r){super.resize(e,r),this.context.setSize(e,r)}close(){super.close(),dt.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},yn=class extends fs{constructor(e,r){super(e,r);l(this,"_videoTrack");l(this,"_muteOb");l(this,"_closedOb",be(this,"closed"));l(this,"_subscription");l(this,"_canvasContainer");Number(yi)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e._canvas.captureStream().getVideoTracks(),this._muteOb=be(this._videoTrack,"mute"),Ae(be(this._videoTrack,"ended"),ze(this._closedOb),Le(()=>{this.context.destroy(new de({code:q.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=Ae(this._muteOb,ze(this._closedOb),ki(gu(5e3)),Jt(()=>{var e;return!!((e=this._videoTrack)!=null&&e.muted)&&!document.hidden}),Le(()=>{this.context.destroy(new de({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()}},Eu=class extends yn{render(t){var e;return!!((e=this.input)!=null&&e.requestFrame(t))}};var _u=class extends yn{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 tc=class extends vt{constructor(e,r){super(e,X({name:"imageSource"},r));l(this,"_lastImage");l(this,"_totalFrames",0);l(this,"_autoResize",!1);l(this,"_canvasRendered");l(this,"videoCallbackId",0);l(this,"waitingFirstFrame",!0);l(this,"shouldUpdate",!0);this._autoResize=(r==null?void 0:r.autoResize)!==!1,Ot===16&&(this._canvasRendered=Rt(),Ae(this._canvasRendered,Qa(this._image),Eo(o=>o instanceof HTMLCanvasElement?be(o,"rendered"):Za()),ze(be(this,"closed")),Le(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let e=this.image;this.videoCallbackId&&e.cancelVideoFrameCallback(this.videoCallbackId),Mi()&&!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 u=this.context.ctx;u.texSubImage2D(u.TEXTURE_2D,0,0,0,u.RGBA,u.UNSIGNED_BYTE,n)}}else{if(r){this.useTexture();let u=this.context.ctx;u.texImage2D(u.TEXTURE_2D,0,u.RGBA,u.RGBA,u.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)}},rc=class extends tc{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",Ae(be(this._player,qe.PLAYER_STATE_CHANGED),ze(be(this,"closed")),Jt(({state:s})=>s==="PLAYING"),Le(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},Er=class extends rc{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(t,e,r){super(t,new zt({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()}},Tu=class extends vt{constructor(e,r,o){super(e,ge(X({name:"textSource"},o),{create2d:!0}));l(this,"hasChange",!0);l(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/),u=(n?parseInt(n[1],10):16)*o,m=this.content.split(`
32
+ `);for(let p=0;p<m.length;p++)this.ctx2d.fillText(m[p],e,r+p*u)}};var XS=`
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
- `,XS=`
42
+ `,QS=`
43
43
  // \u7247\u5143\u7740\u8272\u5668
44
44
  precision mediump float;
45
45
  varying vec2 v_texCoord;
@@ -47,29 +47,29 @@ uniform sampler2D u_texture;
47
47
 
48
48
  void main() {
49
49
  gl_FragColor = texture2D(u_texture, v_texCoord);
50
- } `;var fs=class extends le{constructor(e){super();l(this,"frameRate");l(this,"_canvas");l(this,"log");l(this,"hasAlpha",!1);l(this,"name");l(this,"error");this.name=e.name,this.log=e.logger.createChild({id:`vc-${this.name}`}),this.frameRate=e.frameRate}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 gr(this,e,{logger:this.log,name:r})}createVideoTrackDestination(e){return new In(this,e)}createVideoImageSource(e,r){return new Ka(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 Tu(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};l(fs,"_ids",0);var QS={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},Sn=class Sn extends fs{constructor(){super(...arguments);l(this,"defaultProgam");l(this,"defaultVShader");l(this,"defaultFShader");l(this,"ctx")}create(){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${fs._ids++}`),this.ctx=this._canvas.getContext("webgl2",QS),!this.ctx)throw new de({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,JS),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,XS),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new de({code:q.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(e){let r="";return e&&(r=e.message,this.error=e,Q.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}set height(e){var r;(r=this.ctx)==null||r.viewport(0,0,this.width,e),super.height=e}setSize(e,r){var o;(o=this.ctx)==null||o.viewport(0,0,e,r),super.setSize(e,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}};l(Sn,"UNAVAILABLE","unavailable"),ee([Ze(le.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),Q.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),Q.addSuccessEvent({key:512700})}})],Sn.prototype,"create",1),ee([Ze("created",le.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(Sn.UNAVAILABLE,e),this.removeAllListeners()}})],Sn.prototype,"destroy",1);var St=Sn,Dt=class extends fs{constructor(){super(...arguments);l(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${fs._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha}),!this.ctx)throw new de({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,Q.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(),Q.addSuccessEvent({key:512703})}};ee([Ze(le.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),Q.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),Q.addSuccessEvent({key:512701})}})],Dt.prototype,"create",1),ee([Ze("created",le.INIT,{ignoreError:!0,sync:!0})],Dt.prototype,"destroy",1);function YS(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),u=e/a,m=r/a;n.sx=(i-u)/2,n.sy=(t-m)/2,n.sWidth=u,n.sHeight=m;break}}return n}var Qh=class{constructor(t,e){this.node=t;this.layout=e;l(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}},yn=class extends vt{constructor(e,r){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:r});l(this,"inputs",[]);l(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 Qh(e,r);this.inputs.splice(o,0,n)}changeInputLayout(e,r){let o=this.inputs.findIndex(C=>C.node===e);if(o<0)return;let{x:s,y:n,width:a,height:u,zIndex:m,fillMode:p,rotation:g,hidden:_}=r;if(!x(m)&&this.inputs.some(C=>C.layout.zIndex===m&&C.node!==e))throw new Error(`input already exists at zIndex ${r.zIndex}`);let A=this.inputs[o];x(s)||(A.layout.x=s),x(n)||(A.layout.y=n),x(a)||(A.layout.width=a),x(u)||(A.layout.height=u),x(g)||(A.layout.rotation=g),x(_)||(A.layout.hidden=_),p&&(A.layout.fillMode=p),!x(m)&&m!==A.layout.zIndex&&(A.layout.zIndex=m,this.inputs.sort((C,N)=>C.layout.zIndex-N.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 St&&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=YS(o.node.width,o.node.height,o.width,o.height,o.fillMode,or(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,u=Date.now(),m=(e-this.lastInfo.totalFrames)/((u-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:u,fps:m,name:a},X({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 St)try{(r=this.context.ctx)==null||r.deleteBuffer(e.positionBuffer)}catch(o){}})}close(){super.close(),this.removeAllInputs()}};var ZS=[1,0,0,0,1,1,0,1],Er=class extends vt{constructor(e,r,o,s){super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:r});l(this,"mirror",!1);l(this,"rotation",0);if(o&&(this.mirror=o),s&&(this.rotation=s),e instanceof St)try{this.setTexBuffer(ZS)}catch(n){e.destroy(new de({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){or(this.rotation)&&([e,r]=[r,e]),super.resize(e,r)}};var gs=class extends Vr{constructor(e,r=4){super(r,zt);l(this,"inputLocalVideoTracks",new Map);l(this,"inputLocalScreenTracks",new Map);l(this,"cameraNodeMap",new Map);l(this,"screenNodeMap",new Map);l(this,"textNodeMap",new Map);l(this,"imageNodeMap",new Map);l(this,"videoNodeMap",new Map);l(this,"endedIds",new Set);l(this,"videoContext");l(this,"mixNode");l(this,"destination");l(this,"manager");l(this,"stat");l(this,"_checkId",0);l(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(vt.RENDER,o=>{this.emit("render",o)}),this.mixNode=new yn(this.videoContext,this.log),this.mixNode.matchInputSize=!1}listenDeviceChange(){throw new Error("Method not implemented.")}enablePrintDetail(e=2e3){this._checkId=dt.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}create2dVideoContext(){this.videoContext?this.videoContext.destroy():this.videoContext=new Dt({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 u=this.cameraNodeMap.get(n);u&&u.image.cancelVideoFrameCallback(u.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 u=this.screenNodeMap.get(n);u&&u.image.cancelVideoFrameCallback(u.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 y(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),hr&&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,bt(this,rt).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;Ot===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 u=this.videoContext.createTextSource({content:o,font:s,color:n});u.resize(a.width,a.height),this._connectMix(u,a),this.textNodeMap.set(r,u)}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(Ot===16&&o instanceof CanvasCaptureMediaStreamTrack)if(n instanceof gr){let m=n.output;n.close(),n=this.videoContext.createVideoImageSource(o.canvas,{name:"cameraCanvasSource",logger:this.log}),n.connect(m),this.cameraNodeMap.set(e,n)}else n.image=o.canvas;else if(n instanceof gr)n.replaceTrack(o);else{let m=n.output;n.close(),n=this.videoContext.createVideoTrackSource(o,"cameraNodeSource"),n.connect(m),this.cameraNodeMap.set(e,n)}let{width:a,height:u}=o.getSettings();a&&u&&n.resize(a,u)}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,u=this.textNodeMap.get(r);u&&(x(o)||(u.content=o),x(s)||(u.font=s),x(n)||(u.color=n),u.resize(a.width,a.height),this._changeMixLayout(u,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 Er(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 Er&&(x(o)||(n.mirror=o),x(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 Er&&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 Er&&o.output.close(),o.close(),this.screenNodeMap.delete(e)),this.checkAfterRemove(!0)}removeTextSource(e){let r=this.textNodeMap.get(e);r&&(r.output instanceof Er&&r.output.close(),r.close(),this.textNodeMap.delete(e)),this.checkAfterRemove()}removeImageSource(e){let r=this.imageNodeMap.get(e);r&&(r.output instanceof Er&&r.output.close(),r.close(),this.imageNodeMap.delete(e)),this.checkAfterRemove()}removeVideoSource(e){let r=this.videoNodeMap.get(e);r&&(r.output instanceof Er&&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(),dt.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(),ut(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 Iu=ya();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Iu,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var KS=function(i){return y(this,null,function*(){let t=null,e=ry(i);$.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(on&&Zr<74||Tt||Ht)&&$.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){$.warn(`screen applyConstraints failed: ${s}`)}i.captureElement&&(yield ey(o,i.captureElement))}if(i.audio){let s=ty(i);$.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function ey(i,t){return y(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&Ge(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===Iu))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){$.warn(`cropTo target failed ${r}`)}})}function ty(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return x(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function ry(i){let t={preferCurrentTab:i.preferDisplaySurface==="current-tab"||!!i.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:Tt?{max:i.width}:{ideal:i.width,max:i.width},height:Tt?{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 tE=KS;var ri=class extends ar{constructor(e){super(e,2);l(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600});l(this,"objectFit","contain");l(this,"isScreen",!0);this._log.id=`s-${this._log.id}`}get isShareCurrentTab(){var e,r;try{return Iu===((r=(e=this.mediaTrack)==null?void 0:e.getCaptureHandle())==null?void 0:r.handle)}catch(o){return}}capture(p){return y(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:n,videoTrack:a,captureElement:u,preferDisplaySurface:m}){try{let g;return a||n?(g=new MediaStream,a&&g.addTrack(a),n&&g.addTrack(n)):(g=yield tE({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:r,echoCancellation:o,noiseSuppression:s,captureElement:u,preferDisplaySurface:m}),this.sourceTrack=g.getVideoTracks()[0]),yield this.setInputMediaStreamTrack(g.getVideoTracks()[0]),g}catch(g){throw this.log.error(`getDisplayMedia error observed ${g}`),g instanceof de?g:new de({code:q.INITIALIZE_FAILED,name:g.name,message:g.message})}})}switchDevice(e){return y(this,null,function*(){throw new Error("Method not implemented.")})}};ee([po(function(e){this.setContentHint(e.contentHint||"detail")})],ri.prototype,"capture",1);var Es=class extends ti{constructor(t){super(t),this._log.id=`s-${this._log.id}`}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 iy='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}});',Yh;function tc(i,t=48e3,e=1,r){return y(this,null,function*(){let o=We("dump");Yh||(Yh=xi(o,URL.createObjectURL(new Blob([iy],{type:"application/javascript"})))),yield Yh;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,u)=>a.connect(n,0,u)),new ReadableStream({start(a){n.port.onmessage=u=>{a.enqueue(u.data)}},cancel(){i.forEach(a=>a.disconnect(n)),n.port.close()}})})}var Su=class extends qd{constructor(e){super();this.room=e;l(this,"_localAudioTrack");l(this,"_localScreenAudioTrack");l(this,"log",$.createLogger({id:"am"}));l(this,"denoiser");l(this,"voiceChanger");l(this,"mixChangedDebounce");l(this,"audioProcessor");l(this,"encodePipeline",[]);l(this,"decodePipeline",[]);l(this,"getPCMAbortCtrlMap",new Map);l(this,"audioFrameEventConfigMap",new Map);l(this,"audioReferenceMap",new Map);l(this,"isLocalAudioNeedAudioProcess",!1);l(this,"isScreenAudioNeedAudioProcess",!1);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.installEvent()}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,g;if(!this._localAudioTrack)return;let r=[],o=[];(p=this._localAudioPipline)!=null&&p.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(g=this._localAudioPipline)!=null&&g.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),u=()=>{for(let _=0;_<o.length;_++){let A=URL.createObjectURL(new Blob(n[_])),C=document.createElement("a");C.href=A,C.download=`${o[_]}.pcm`,C.style.display="none",document.body.appendChild(C),C.click(),URL.revokeObjectURL(A),C.remove()}clearTimeout(a),s.abort("download")},m=tc(r).then(_=>_.pipeTo(new WritableStream({write(A){A.forEach((C,N)=>n[N]=n[N]?n[N].concat(C[0]):[C[0]])}}),s).catch(A=>u));return{then:m.then.bind(m),download:u}}getPCM(e,r){var O,Z,ue;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 u=Math.floor(s*.04),m=new Float32Array(u),p=new Float32Array(u),g,_,A=0,C=new AbortController,N=r===""?(O=this._localAudioTrack)==null?void 0:O.mediaTrack:(ue=(Z=this.room)==null?void 0:Z.remotePublishedUserMap.get(r))==null?void 0:ue.remoteAudioTrack.mediaTrack;if(!N){this.log.info(`getPCM failed: ${r||"local"} has no audio track`);return}let D=We().createMediaStreamSource(new MediaStream([N]));return tc([D],s,n,a).then(Se=>Se.pipeTo(new WritableStream({write(Ye){Ye[0][0]&&(A+Ye[0][0].length>u?(m.set(Ye[0][0].subarray(0,u-A),A),g=Ye[0][0].subarray(u-A),Ye[0][1]&&(p.set(Ye[0][1].subarray(0,u-A),A),_=Ye[0][1].subarray(u-A)),A+=u-A):(g&&(m.set(g,A),A+=g.length,g=void 0),_&&(p.set(_,A),_=void 0),m.set(Ye[0][0],A),Ye[0][1]&&p.set(Ye[0][1],A),A+=Ye[0][0].length),A>=u&&(A=0,e({userId:r,sampleRate:s,channelCount:n,data:n===1?m:[m,p]}),m=new Float32Array(u),p=new Float32Array(u)))}}),C).catch(Ye=>this.log.warn(`stop getPCM reason:${Ye}`))),C}get hasScreenAudioTrack(){return!x(this._localScreenAudioTrack)}get hasAudioTrack(){return!x(this._localAudioTrack)}changeInput(e){var r,o;if(e instanceof Es)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 ti)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 Li)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 Es?delete this._localScreenAudioTrack:e instanceof ti?delete this._localAudioTrack:e instanceof Li}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,u)=>{var m;(m=this._localAudioTrack)==null||m.mixAudioReference(a,u)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&s&&((n=this._localScreenAudioTrack)==null||n.addAudioProcessor(s,e,r),this.audioReferenceMap.forEach((a,u)=>{var m;(m=this._localScreenAudioTrack)==null||m.mixAudioReference(a,u)}))}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 u;(u=this.room)==null||u.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(){V.on("113",this.handleLocalTrackStarted,this),V.on("114",this.handleLocalTrackStopped,this),V.on("115",this.handleRemoteTrackStarted,this),V.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){V.off("113",this.handleLocalTrackStarted),V.off("114",this.handleLocalTrackStopped),V.off("115",this.handleRemoteTrackStarted),V.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||x(s))return;this.setAudioReferenceVolume(o,s)}}};function rE(i=30,t=2){return Oe((e,r)=>function(...o){return new Promise((s,n)=>{let a=setTimeout(()=>{let u=new de({code:q.API_CALL_TIMEOUT,message:`checkPendingPromise ${r}() timeout ${i}s`});(this.log||this._log||$).warn(u),t===2?n(u):t===1&&s()},i*1e3);e.apply(this,o).then(s,n).finally(()=>{clearTimeout(a)})})})}var ii=class ii extends as{constructor(e,r,o){super({userId:r.userId,sdkAppId:e.sdkAppId,mediaType:o,room:e});this.room=e;this.user=r;l(this,"tinyId");l(this,"isRemote",!0);l(this,"jitterBufferDelay",0);l(this,"availableState");l(this,"remotePublishState");l(this,"_triggerCheckDecodeSubject",Rt(be(this,ii.STATE_SUBSCRIBE)));this.tinyId=r.tinyId,this.availableState=new le(`${r.userId}-${this.mediaType}-available`,"remote-track-available"),this.remotePublishState=new le(`${r.userId}-${this.mediaType}-remote-publish`,"remote-track-publish"),Ae(za(be(this,le.STATECHANGED),be(this.remotePublishState,le.STATECHANGED)),go(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),Le(u=>{this.availableState.state!==(u?le.ON:le.OFF)&&(this.availableState.state=u?le.ON:le.OFF),this.updatePlayingState(u)}));let s=Ae(be(this.player,qe.ERROR),Jt(u=>u.code===MediaError.MEDIA_ERR_DECODE)),n=Ae(Xa(5e3),Jt(()=>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(mh(s,n),ze(be(this,le.INIT)));Ae(this._triggerCheckDecodeSubject,Jt(()=>!this.ignoreDecodeError),ki(a),Le(u=>{this.reportDecodeResult(!1,u)}))}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===ii.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===le.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(Q[e?"addSuccessEvent":"addFailedEvent"]({key:o?504700:514702}),!o){let a=((s=this.room)==null?void 0:s.downlinkVideoCodec.toUpperCase())||"H264";Q[e?"addSuccessEvent":"addFailedEvent"]({key:dn[`DECODE_${a}_RESULT`]}),e||this.log.warn(`${(n=this.room)==null?void 0:n.downlinkVideoCodec} decode failed`)}e||(Q.addEnum({key:o?504701:514703,value:Yo()}),He.uploadEvent({log:`stat-decode-failed-${this.kind}-${Ia()||Zo()}`,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?le.ON:le.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};l(ii,"STATE_SUBSCRIBE","subscribe"),ee([rE(5,1)],ii.prototype,"waitHasMediaTrack",1),ee([Ze(le.INIT,ii.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),V.emit(F.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),tu(521716,!1)],ii.prototype,"subscribe",1),ee([Ze(ii.STATE_SUBSCRIBE,le.INIT,{sync:!0,success(){this.log.info("unsubscribed"),V.emit(F.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],ii.prototype,"unsubscribe",1);var An=ii;var Li=class extends An{constructor(e,r){super(e,r,1);l(this,"volume",0);l(this,"mediaType",1);l(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.audioManager}get dbVolume(){return Jd.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&&Fd().AudioDecoder&&os:!1}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:u,hasLeavingTag:m})=>{this.emit("audio-frame-with-ntp",{ntp:a,frame:u,hasLeavingTag:m})}),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}};function sy(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var To=class extends An{constructor(e,r,o=4){super(e,r,o);l(this,"mediaType",4);l(this,"source");l(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)})}play(e,r){return(Qe(r==null?void 0:r.canvasRender)?r.canvasRender:Ot===17)&&!this.source&&this.useCanvasPlayer(),super.play(e,r).then(()=>{this.player.calculateStat()})}useCanvasPlayer(){if(this.log.info(`useCanvasPlayer(), has element:${!!this.player.element}`),!this.player.element)return;let e=new Dt({frameRate:15,logger:this.log,name:this.userId});e.create({alpha:!1});let r=new ps(e,{name:"remotePlayer",logger:this.log});this.source=e.createVideoPlayerSource(this.player),this.source.connect(r),this.player.setCanvas(e._canvas),Mi()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=sy(r);if(!ke(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),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)}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},yu=class extends To{constructor(e,r){super(e,r,2);l(this,"mediaType",2);l(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}};var bn=new Map;V.on(F.JOIN_SUCCESS,({room:i})=>{nt(i.userId,{eventId:32788})});V.on(F.LEAVE_START,({room:i})=>{nt(i.userId,{eventId:32789})});V.on(F.LOCAL_TRACK_PUBLISHED,({track:i})=>{if(i.room){let t=32769;i.mediaType===4?t=32768:i.mediaType===2&&(t=32805),nt(i.room.userId,{eventId:t})}});V.on(F.LOCAL_TRACK_UNPUBLISHED,({track:i})=>{if(i.room){let t=32771;i.mediaType===4?t=32770:i.mediaType===2&&(t=32806),nt(i.room.userId,{eventId:t})}});V.on(F.TRACK_MUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?nt(i.room.userId,{eventId:i.isRemote?32785:32772,remoteUserId:i.isRemote?i.userId:void 0}):nt(i.room.userId,{eventId:i.isRemote?32784:32773,remoteUserId:i.isRemote?i.userId:void 0}))});V.on(F.TRACK_UNMUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?nt(i.room.userId,{eventId:i.isRemote?32787:32774,remoteUserId:i.isRemote?i.userId:void 0}):nt(i.room.userId,{eventId:i.isRemote?32786:32775,remoteUserId:i.isRemote?i.userId:void 0}))});V.on(F.REMOTE_TRACK_SUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&nt(i.room.userId,{eventId:32777,remoteUserId:i.userId}),i.mediaType===4&&nt(i.room.userId,{eventId:32776,remoteUserId:i.userId}),i.mediaType===8&&nt(i.room.userId,{eventId:32803,remoteUserId:i.userId}))});V.on(F.REMOTE_TRACK_UNSUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&nt(i.room.userId,{eventId:32779,remoteUserId:i.userId}),i.mediaType===4&&nt(i.room.userId,{eventId:32778,remoteUserId:i.userId}),i.mediaType===8&&nt(i.room.userId,{eventId:32804,remoteUserId:i.userId}))});V.on(F.SWITCH_DEVICE_SUCCESS,({track:i})=>{i.room&&nt(i.room.userId,{eventId:i.kind===M.VIDEO?32780:32781})});V.on(F.LOCAL_TRACK_REPLACED,({track:i})=>{i.room&&nt(i.room.userId,{eventId:i.kind===M.VIDEO?32782:32783})});V.on(F.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&&nt(i.userId,{eventId:r})});V.on(F.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&&nt(i.userId,{eventId:s,remoteUserId:r})});V.on(F.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 u={H264:0,H265:1,VP8:2}[r.toUpperCase()],m={eventId:4004,param1:a,param2:u,streamType:n||2};e&&(m.remoteUserId=e,m.eventId=4005),nt(t,m),Q.addEnum({key:e?514701:513701,value:a}),Q.addEnum({key:e?514700:513700,value:u})});V.on(F.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)),nt(i.userId,e)}});function nt(i,t){let e=ge(X({},t),{timestamp:fi()});bn.has(i)?bn.get(i).push(e):bn.set(i,[e])}function iE(i){if(bn.has(i)){let t=bn.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 bn.delete(i),t}return[]}function oE(...i){return Oe((t,e)=>function(...r){return ny.call(this,i,r,e,this._name),t.apply(this,r)})}function ny(i,t,e,r){try{if(st(i))for(let o=0;o<i.length;o++)Au.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else Au.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}catch(o){throw $.error(o),o}}function Au({rule:i,value:t,key:e,fnName:r,className:o}){if(x(t)){if(i.required)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_REQUIRED,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(x(i.defaultValue))return;t=i.defaultValue}if(Array.isArray(i.type)){let a=!1;for(let u=0;u<i.type.length;u++)i.type[u]===null&&t===null&&(a=!0),Ge(i.type[u])&&t instanceof i.type[u]&&(a=!0),Ne(i.type[u])&&ct(t)===i.type[u].toLowerCase()&&(a=!0);if(!a)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_TYPE,data:{key:e,rule:{type:i.type.map(u=>jo(u)?Hs(u):Ne(u)?u:ct(u))},fnName:r,value:t},link:{className:o,fnName:r}})})}else if(!x(i.type)&&ct(t)!==i.type)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_TYPE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.allowEmpty===!1){let a=ke(t)&&(t===0||Number.isNaN(t)),u=Ne(t)&&t.trim()==="";if(a||u)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_EMPTY,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}if(i.notLessThanZero&&ke(t)&&t<0)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.CANNOT_LESS_THAN_ZERO,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!x(i.min)&&ke(t)&&t<i.min)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_MIN,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!x(i.max)&&ke(t)&&t>i.max)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_MAX,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(Ne(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}else if(Ge(i.instanceOf)&&!(t instanceof i.instanceOf))throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.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 de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_RANGE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});let{properties:s}=i;Bt(s)&&ir(t)&&Object.keys(s).forEach(a=>{Au.call(this,{rule:s[a],value:t&&t[a],key:`${e}.${a}`,fnName:r,className:o})});let{arrayItem:n}=i;Bt(n)&&st(t)&&t.forEach((a,u)=>{Au.call(this,{rule:n,value:a,key:`${e}[${u}]`,fnName:r,className:o})}),Ge(i.validate)&&i.validate.call(this,t,e,r,o,this)}var ay=pi(bi(),1);var cy=Object.create,Nu=Object.defineProperty,dy=Object.defineProperties,cE=Object.getOwnPropertyDescriptor,uy=Object.getOwnPropertyDescriptors,dE=Object.getOwnPropertyNames,sE=Object.getOwnPropertySymbols,ly=Object.getPrototypeOf,uE=Object.prototype.hasOwnProperty,my=Object.prototype.propertyIsEnumerable,ep=(i,t,e)=>t in i?Nu(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Ru=(i,t)=>{for(var e in t||(t={}))uE.call(t,e)&&ep(i,e,t[e]);if(sE)for(var e of sE(t))my.call(t,e)&&ep(i,e,t[e]);return i},vu=(i,t)=>dy(i,uy(t)),hy=(i,t)=>function(){return t||(0,i[dE(i)[0]])((t={exports:{}}).exports,t),t.exports},py=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of dE(t))uE.call(i,o)||o===e||Nu(i,o,{get:()=>t[o],enumerable:!(r=cE(t,o))||r.enumerable});return i},fy=(i,t,e)=>(e=i!=null?cy(ly(i)):{},py(!t&&i&&i.__esModule?e:Nu(e,"default",{value:i,enumerable:!0}),i)),Ui=(i,t,e,r)=>{for(var o,s=r>1?void 0:r?cE(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&&Nu(t,e,s),s},$r=(i,t,e)=>ep(i,typeof t!="symbol"?t+"":t,e),gy=hy({"../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(m,p,g){this.fn=m,this.context=p,this.once=g||!1}function n(m,p,g,_,A){if(typeof g!="function")throw new TypeError("The listener must be a function");var C=new s(g,_||m,A),N=r?r+p:p;return m._events[N]?m._events[N].fn?m._events[N]=[m._events[N],C]:m._events[N].push(C):(m._events[N]=C,m._eventsCount++),m}function a(m,p){--m._eventsCount==0?m._events=new o:delete m._events[p]}function u(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),new o().__proto__||(r=!1)),u.prototype.eventNames=function(){var m,p,g=[];if(this._eventsCount===0)return g;for(p in m=this._events)e.call(m,p)&&g.push(r?p.slice(1):p);return Object.getOwnPropertySymbols?g.concat(Object.getOwnPropertySymbols(m)):g},u.prototype.listeners=function(m){var p=r?r+m:m,g=this._events[p];if(!g)return[];if(g.fn)return[g.fn];for(var _=0,A=g.length,C=new Array(A);_<A;_++)C[_]=g[_].fn;return C},u.prototype.listenerCount=function(m){var p=r?r+m:m,g=this._events[p];return g?g.fn?1:g.length:0},u.prototype.emit=function(m,p,g,_,A,C){var N=r?r+m:m;if(!this._events[N])return!1;var D,O,Z=this._events[N],ue=arguments.length;if(Z.fn){switch(Z.once&&this.removeListener(m,Z.fn,void 0,!0),ue){case 1:return Z.fn.call(Z.context),!0;case 2:return Z.fn.call(Z.context,p),!0;case 3:return Z.fn.call(Z.context,p,g),!0;case 4:return Z.fn.call(Z.context,p,g,_),!0;case 5:return Z.fn.call(Z.context,p,g,_,A),!0;case 6:return Z.fn.call(Z.context,p,g,_,A,C),!0}for(O=1,D=new Array(ue-1);O<ue;O++)D[O-1]=arguments[O];Z.fn.apply(Z.context,D)}else{var Se,Ye=Z.length;for(O=0;O<Ye;O++)switch(Z[O].once&&this.removeListener(m,Z[O].fn,void 0,!0),ue){case 1:Z[O].fn.call(Z[O].context);break;case 2:Z[O].fn.call(Z[O].context,p);break;case 3:Z[O].fn.call(Z[O].context,p,g);break;case 4:Z[O].fn.call(Z[O].context,p,g,_);break;default:if(!D)for(Se=1,D=new Array(ue-1);Se<ue;Se++)D[Se-1]=arguments[Se];Z[O].fn.apply(Z[O].context,D)}}return!0},u.prototype.on=function(m,p,g){return n(this,m,p,g,!1)},u.prototype.once=function(m,p,g){return n(this,m,p,g,!0)},u.prototype.removeListener=function(m,p,g,_){var A=r?r+m:m;if(!this._events[A])return this;if(!p)return a(this,A),this;var C=this._events[A];if(C.fn)C.fn!==p||_&&!C.once||g&&C.context!==g||a(this,A);else{for(var N=0,D=[],O=C.length;N<O;N++)(C[N].fn!==p||_&&!C[N].once||g&&C[N].context!==g)&&D.push(C[N]);D.length?this._events[A]=D.length===1?D[0]:D:a(this,A)}return this},u.prototype.removeAllListeners=function(m){var p;return m?(p=r?r+m:m,this._events[p]&&a(this,p)):(this._events=new o,this._eventsCount=0),this},u.prototype.off=u.prototype.removeListener,u.prototype.addListener=u.prototype.on,u.prefixed=r,u.EventEmitter=u,t!==void 0&&(t.exports=u)}}),Ey=fy(gy(),1),nE=Symbol("instance"),Yx=Symbol("abortCtrl"),bu=Symbol("cacheResult"),Zh=class{constructor(i,t,e){this.oldState=i,this.newState=t,this.action=e,this.aborted=!1}abort(i){this.aborted=!0,oc.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},Cu=class extends Error{constructor(i,t,e){super(t),this.state=i,this.message=t,this.cause=e}};function _y(i){return typeof i=="object"&&i&&"then"in i}var ic=new Map;function Io(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let u=ic.get(r)||[];ic.has(r)||ic.set(r,u),u.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...u){let m=this;if(e.context&&(m=Xt.get(typeof e.context=="function"?e.context.call(this,...u):e.context)),m.state===t)return e.sync?m[bu]:Promise.resolve(m[bu]);m.state instanceof Zh&&m.state.action==e.abortAction&&m.state.abort(m);let p=null;Array.isArray(i)?i.length==0?m.state instanceof Zh&&m.state.abort(m):typeof m.state=="string"&&i.includes(m.state)||(p=new Cu(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(p=new Cu(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i}`));let g=D=>{if(e.fail&&e.fail.call(this,D),e.sync){if(e.ignoreError)return D;throw D}return e.ignoreError?Promise.resolve(D):Promise.reject(D)};if(p)return g(p);let _=m.state,A=new Zh(_,t,n);oc.call(m,A);let C=D=>{var O;return m[bu]=D,A.aborted||(oc.call(m,t),(O=e.success)===null||O===void 0||O.call(this,m[bu])),D},N=D=>(oc.call(m,_,D),g(D));try{let D=a.apply(this,u);return _y(D)?D.then(C).catch(N):e.sync?C(D):Promise.resolve(C(D))}catch(D){return N(new Cu(m._state,`${m.name} ${n} from ${i} to ${t} failed: ${D}`,D instanceof Error?D:new Error(String(D))))}}}}function Ty(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...n){if(!i.includes(this.state.toString()))throw new Cu(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,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 oc(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(Xt.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var Xt=class _r extends Ey.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=_r.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[nE];o?this.name=o.name+"-"+o.count++:r[nE]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=ic.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);ic.has(a)&&(a.stateDiagram.forEach(m=>r.add(m)),a.allStates.forEach(m=>n.add(m))),e.forEach(({from:m,to:p,action:g})=>{typeof m=="string"?o.push({from:m,to:p,action:g}):m.length?m.forEach(_=>{o.push({from:_,to:p,action:g})}):s.push({to:p,action:g})}),o.forEach(({from:m,to:p,action:g})=>{n.add(m),n.add(p),n.add(g+"ing"),r.add(`${m} --> ${g}ing : ${g}`),r.add(`${g}ing --> ${p} : ${g} \u{1F7E2}`),r.add(`${g}ing --> ${m} : ${g} \u{1F534}`)}),s.forEach(({to:m,action:p})=>{r.add(`${p}ing --> ${m} : ${p} \u{1F7E2}`),n.forEach(g=>{g!==m&&r.add(`${g} --> ${p}ing : ${p}`)})});let u=[...r];return Object.defineProperties(t,{stateDiagram:{value:u},allStates:{value:n}}),u}static get(t){let e;return typeof t=="string"?(e=_r.instances.get(t),e||_r.instances.set(t,e=new _r(t,void 0,Object.create(_r.prototype)))):(e=_r.instances2.get(t),e||_r.instances2.set(t,e=new _r(t.constructor.name,void 0,Object.create(_r.prototype)))),e}static getState(t){var e;return(e=_r.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){Iy(_r.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){oc.call(this,t)}};Xt.STATECHANGED="stateChanged",Xt.UPDATEAFSM="updateAFSM",Xt.INIT="[*]",Xt.ON="on",Xt.OFF="off",Xt.instances=new Map,Xt.instances2=new WeakMap;var Rn=class extends Xt{constructor(){super(...arguments),$r(this,"decoder"),$r(this,"config")}initialize(){return y(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(vu(Ru({},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 Sy(){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,u={wasmBinary:o,postRun:()=>{i=new u.VideoDecoder({videoInfo(m,p){n=m,a=p,console.log("video info",m,p)},yuvData(m,p){let g=n*a,_=g>>2,A=u.HEAPU32[m>>2],C=u.HEAPU32[1+(m>>2)],N=u.HEAPU32[2+(m>>2)],D=u.HEAPU8.subarray(A,A+g),O=u.HEAPU8.subarray(C,C+_),Z=u.HEAPU8.subarray(N,N+_),ue=new Uint8Array(g+_+_);ue.set(D),ue.set(O,g),ue.set(Z,g+_);let Se=new VideoFrame(ue,{codedWidth:n,codedHeight:a,format:"I420",timestamp:p});e?(s==null||s.drawImage(Se,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:Se},[Se])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(u)}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:"")}}}Ui([Io([Xt.INIT,"closed"],"initialized")],Rn.prototype,"initialize",1),Ui([Io("initialized","configured",{sync:!0})],Rn.prototype,"configure",1),Ui([Ty("configured")],Rn.prototype,"decode",1),Ui([Io([],Xt.INIT,{sync:!0})],Rn.prototype,"reset",1),Ui([Io([],"closed",{ignoreError:!0,sync:!0})],Rn.prototype,"close",1);var rc=class extends Xt{constructor(i,t,e=!1,r,o=!1){super(),this.createModule=i,this.wasmBinary=t,this.workerMode=e,this.canvas=r,this.yuvMode=o,$r(this,"worker"),$r(this,"decoder"),$r(this,"config"),$r(this,"module",{}),$r(this,"width",0),$r(this,"height",0)}initialize(i){return y(this,null,function*(){var t;if(this.workerMode){let r=new RegExp("\\{(.+)\\}","s").exec(Sy.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:u}=a.data;this.emit("videoFrame",u)}}})}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),u=this.module.HEAPU8.subarray(s,s+r),m=this.module.HEAPU8.subarray(n,n+r);if(this.yuvMode)return void this.emit("videoFrame",{y:a,u,v:m,timestamp:t});let p=new Uint8Array(e+r+r);p.set(a),p.set(u,e),p.set(m,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)}};Ui([Io([Xt.INIT,"closed"],"initialized")],rc.prototype,"initialize",1),Ui([Io("initialized","configured",{sync:!0})],rc.prototype,"configure",1),Ui([Io([],Xt.INIT,{sync:!0})],rc.prototype,"reset",1),Ui([Io([],"closed",{sync:!0})],rc.prototype,"close",1);var yy=(()=>{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,d)=>{e=c,r=d});var s,n,a,u=Object.assign({},o),m="./this.program",p=typeof window=="object",g=typeof importScripts=="function",_=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(p||g)&&(g?_=self.location.href:typeof document!="undefined"&&document.currentScript&&(_=document.currentScript.src),i&&(_=i),_=_.indexOf("blob:")!==0?_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):"",s=c=>{var d=new XMLHttpRequest;return d.open("GET",c,!1),d.send(null),d.responseText},g&&(a=c=>{var d=new XMLHttpRequest;return d.open("GET",c,!1),d.responseType="arraybuffer",d.send(null),new Uint8Array(d.response)}),n=(c,d,h)=>{var f=new XMLHttpRequest;f.open("GET",c,!0),f.responseType="arraybuffer",f.onload=()=>{f.status==200||f.status==0&&f.response?d(f.response):h()},f.onerror=h,f.send(null)});var A,C=o.print||console.log.bind(console),N=o.printErr||console.error.bind(console);Object.assign(o,u),u=null,o.arguments&&o.arguments,o.thisProgram&&(m=o.thisProgram),o.quit&&o.quit,o.wasmBinary&&(A=o.wasmBinary);var D,O;o.noExitRuntime,typeof WebAssembly!="object"&&Hr("no native wasm support detected");var Z,ue,Se,Ye,H,Pe,On,xn,Pn,kn=!1,Br=[],bs=[],Bi=[],cr=0,ci=null,di=null;function ie(c){cr++,o.monitorRunDependencies&&o.monitorRunDependencies(cr)}function No(c){if(cr--,o.monitorRunDependencies&&o.monitorRunDependencies(cr),cr==0&&(ci!==null&&(clearInterval(ci),ci=null),di)){var d=di;di=null,d()}}function Hr(c){o.onAbort&&o.onAbort(c),N(c="Aborted("+c+")"),kn=!0,c+=". Build with -sASSERTIONS for more info.";var d=new WebAssembly.RuntimeError(c);throw r(d),d}var ui,Ln,Ee,Ke;function kt(c){return c.startsWith("data:application/octet-stream;base64,")}function J(c){if(c==ui&&A)return new Uint8Array(A);if(a)return a(c);throw"both async and sync fetching of the wasm failed"}function Wr(c,d,h){return function(f){return A||!p&&!g||typeof fetch!="function"?Promise.resolve().then(()=>J(f)):fetch(f,{credentials:"same-origin"}).then(I=>{if(!I.ok)throw"failed to load wasm binary file at '"+f+"'";return I.arrayBuffer()}).catch(()=>J(f))}(c).then(f=>WebAssembly.instantiate(f,d)).then(f=>f).then(h,f=>{N("failed to asynchronously prepare wasm: "+f),Hr(f)})}kt(ui="videodec.wasm")||(Ln=ui,ui=o.locateFile?o.locateFile(Ln,_):_+Ln);var Hi=c=>{for(;c.length>0;)c.shift()(o)};function Wi(c){this.excPtr=c,this.ptr=c-24,this.set_type=function(d){Pe[this.ptr+4>>2]=d},this.get_type=function(){return Pe[this.ptr+4>>2]},this.set_destructor=function(d){Pe[this.ptr+8>>2]=d},this.get_destructor=function(){return Pe[this.ptr+8>>2]},this.set_caught=function(d){d=d?1:0,Z[this.ptr+12|0]=d},this.get_caught=function(){return Z[this.ptr+12|0]!=0},this.set_rethrown=function(d){d=d?1:0,Z[this.ptr+13|0]=d},this.get_rethrown=function(){return Z[this.ptr+13|0]!=0},this.init=function(d,h){this.set_adjusted_ptr(0),this.set_type(d),this.set_destructor(h)},this.set_adjusted_ptr=function(d){Pe[this.ptr+16>>2]=d},this.get_adjusted_ptr=function(){return Pe[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Gn(this.get_type()))return Pe[this.excPtr>>2];var d=this.get_adjusted_ptr();return d!==0?d:this.excPtr}}var me={isAbs:c=>c.charAt(0)==="/",splitPath:c=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(c).slice(1),normalizeArray:(c,d)=>{for(var h=0,f=c.length-1;f>=0;f--){var I=c[f];I==="."?c.splice(f,1):I===".."?(c.splice(f,1),h++):h&&(c.splice(f,1),h--)}if(d)for(;h;h--)c.unshift("..");return c},normalize:c=>{var d=me.isAbs(c),h=c.substr(-1)==="/";return(c=me.normalizeArray(c.split("/").filter(f=>!!f),!d).join("/"))||d||(c="."),c&&h&&(c+="/"),(d?"/":"")+c},dirname:c=>{var d=me.splitPath(c),h=d[0],f=d[1];return h||f?(f&&(f=f.substr(0,f.length-1)),h+f):"."},basename:c=>{if(c==="/")return"/";var d=(c=(c=me.normalize(c)).replace(/\/$/,"")).lastIndexOf("/");return d===-1?c:c.substr(d+1)},join:function(){var c=Array.prototype.slice.call(arguments);return me.normalize(c.join("/"))},join2:(c,d)=>me.normalize(c+"/"+d)},Un=c=>(Un=(()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return d=>crypto.getRandomValues(d);Hr("initRandomDevice")})())(c),Qt={resolve:function(){for(var c="",d=!1,h=arguments.length-1;h>=-1&&!d;h--){var f=h>=0?arguments[h]:E.cwd();if(typeof f!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!f)return"";c=f+"/"+c,d=me.isAbs(f)}return(d?"/":"")+(c=me.normalizeArray(c.split("/").filter(I=>!!I),!d).join("/"))||"."},relative:(c,d)=>{function h(L){for(var K=0;K<L.length&&L[K]==="";K++);for(var ae=L.length-1;ae>=0&&L[ae]==="";ae--);return K>ae?[]:L.slice(K,ae-K+1)}c=Qt.resolve(c).substr(1),d=Qt.resolve(d).substr(1);for(var f=h(c.split("/")),I=h(d.split("/")),b=Math.min(f.length,I.length),R=b,v=0;v<b;v++)if(f[v]!==I[v]){R=v;break}var U=[];for(v=R;v<f.length;v++)U.push("..");return(U=U.concat(I.slice(R))).join("/")}},Gi=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Lt=(c,d,h)=>{for(var f=d+h,I=d;c[I]&&!(I>=f);)++I;if(I-d>16&&c.buffer&&Gi)return Gi.decode(c.subarray(d,I));for(var b="";d<I;){var R=c[d++];if(128&R){var v=63&c[d++];if((224&R)!=192){var U=63&c[d++];if((R=(240&R)==224?(15&R)<<12|v<<6|U:(7&R)<<18|v<<12|U<<6|63&c[d++])<65536)b+=String.fromCharCode(R);else{var L=R-65536;b+=String.fromCharCode(55296|L>>10,56320|1023&L)}}else b+=String.fromCharCode((31&R)<<6|v)}else b+=String.fromCharCode(R)}return b},Vn=[],Do=c=>{for(var d=0,h=0;h<c.length;++h){var f=c.charCodeAt(h);f<=127?d++:f<=2047?d+=2:f>=55296&&f<=57343?(d+=4,++h):d+=3}return d},wo=(c,d,h,f)=>{if(!(f>0))return 0;for(var I=h,b=h+f-1,R=0;R<c.length;++R){var v=c.charCodeAt(R);if(v>=55296&&v<=57343&&(v=65536+((1023&v)<<10)|1023&c.charCodeAt(++R)),v<=127){if(h>=b)break;d[h++]=v}else if(v<=2047){if(h+1>=b)break;d[h++]=192|v>>6,d[h++]=128|63&v}else if(v<=65535){if(h+2>=b)break;d[h++]=224|v>>12,d[h++]=128|v>>6&63,d[h++]=128|63&v}else{if(h+3>=b)break;d[h++]=240|v>>18,d[h++]=128|v>>12&63,d[h++]=128|v>>6&63,d[h++]=128|63&v}}return d[h]=0,h-I};function Rs(c,d,h){var f=h>0?h:Do(c)+1,I=new Array(f),b=wo(c,I,0,I.length);return d&&(I.length=b),I}var Ir={ttys:[],init:function(){},shutdown:function(){},register:function(c,d){Ir.ttys[c]={input:[],output:[],ops:d},E.registerDevice(c,Ir.stream_ops)},stream_ops:{open:function(c){var d=Ir.ttys[c.node.rdev];if(!d)throw new E.ErrnoError(43);c.tty=d,c.seekable=!1},close:function(c){c.tty.ops.fsync(c.tty)},fsync:function(c){c.tty.ops.fsync(c.tty)},read:function(c,d,h,f,I){if(!c.tty||!c.tty.ops.get_char)throw new E.ErrnoError(60);for(var b=0,R=0;R<f;R++){var v;try{v=c.tty.ops.get_char(c.tty)}catch(U){throw new E.ErrnoError(29)}if(v===void 0&&b===0)throw new E.ErrnoError(6);if(v==null)break;b++,d[h+R]=v}return b&&(c.node.timestamp=Date.now()),b},write:function(c,d,h,f,I){if(!c.tty||!c.tty.ops.put_char)throw new E.ErrnoError(60);try{for(var b=0;b<f;b++)c.tty.ops.put_char(c.tty,d[h+b])}catch(R){throw new E.ErrnoError(29)}return f&&(c.node.timestamp=Date.now()),b}},default_tty_ops:{get_char:function(c){return(()=>{if(!Vn.length){var d=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(d=window.prompt("Input: "))!==null&&(d+=`
50
+ } `;var gs=class extends le{constructor(e){super();l(this,"frameRate");l(this,"_canvas");l(this,"log");l(this,"hasAlpha",!1);l(this,"name");l(this,"error");this.name=e.name,this.log=e.logger.createChild({id:`vc-${this.name}`}),this.frameRate=e.frameRate}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 Er(this,e,{logger:this.log,name:r})}createVideoTrackDestination(e){return new yn(this,e)}createVideoImageSource(e,r){return new tc(this,r?Object.assign(r,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,r){return new rc(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}createTextSource(e,r){return new Tu(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};l(gs,"_ids",0);var YS={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},An=class An extends gs{constructor(){super(...arguments);l(this,"defaultProgam");l(this,"defaultVShader");l(this,"defaultFShader");l(this,"ctx")}create(){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${gs._ids++}`),this.ctx=this._canvas.getContext("webgl2",YS),!this.ctx)throw new de({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,XS),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,QS),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new de({code:q.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(e){let r="";return e&&(r=e.message,this.error=e,Q.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}set height(e){var r;(r=this.ctx)==null||r.viewport(0,0,this.width,e),super.height=e}setSize(e,r){var o;(o=this.ctx)==null||o.viewport(0,0,e,r),super.setSize(e,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}};l(An,"UNAVAILABLE","unavailable"),te([Ze(le.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),Q.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),Q.addSuccessEvent({key:512700})}})],An.prototype,"create",1),te([Ze("created",le.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(An.UNAVAILABLE,e),this.removeAllListeners()}})],An.prototype,"destroy",1);var St=An,Dt=class extends gs{constructor(){super(...arguments);l(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${gs._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha}),!this.ctx)throw new de({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,Q.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(),Q.addSuccessEvent({key:512703})}};te([Ze(le.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),Q.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),Q.addSuccessEvent({key:512701})}})],Dt.prototype,"create",1),te([Ze("created",le.INIT,{ignoreError:!0,sync:!0})],Dt.prototype,"destroy",1);function ZS(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),u=e/a,m=r/a;n.sx=(i-u)/2,n.sy=(t-m)/2,n.sWidth=u,n.sHeight=m;break}}return n}var Zh=class{constructor(t,e){this.node=t;this.layout=e;l(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}},bn=class extends vt{constructor(e,r){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:r});l(this,"inputs",[]);l(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 Zh(e,r);this.inputs.splice(o,0,n)}changeInputLayout(e,r){let o=this.inputs.findIndex(C=>C.node===e);if(o<0)return;let{x:s,y:n,width:a,height:u,zIndex:m,fillMode:p,rotation:g,hidden:_}=r;if(!x(m)&&this.inputs.some(C=>C.layout.zIndex===m&&C.node!==e))throw new Error(`input already exists at zIndex ${r.zIndex}`);let A=this.inputs[o];x(s)||(A.layout.x=s),x(n)||(A.layout.y=n),x(a)||(A.layout.width=a),x(u)||(A.layout.height=u),x(g)||(A.layout.rotation=g),x(_)||(A.layout.hidden=_),p&&(A.layout.fillMode=p),!x(m)&&m!==A.layout.zIndex&&(A.layout.zIndex=m,this.inputs.sort((C,N)=>C.layout.zIndex-N.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 St&&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=ZS(o.node.width,o.node.height,o.width,o.height,o.fillMode,or(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,u=Date.now(),m=(e-this.lastInfo.totalFrames)/((u-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:u,fps:m,name:a},X({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 St)try{(r=this.context.ctx)==null||r.deleteBuffer(e.positionBuffer)}catch(o){}})}close(){super.close(),this.removeAllInputs()}};var KS=[1,0,0,0,1,1,0,1],_r=class extends vt{constructor(e,r,o,s){super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:r});l(this,"mirror",!1);l(this,"rotation",0);if(o&&(this.mirror=o),s&&(this.rotation=s),e instanceof St)try{this.setTexBuffer(KS)}catch(n){e.destroy(new de({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){or(this.rotation)&&([e,r]=[r,e]),super.resize(e,r)}};var Es=class extends Vr{constructor(e,r=4){super(r,zt);l(this,"inputLocalVideoTracks",new Map);l(this,"inputLocalScreenTracks",new Map);l(this,"cameraNodeMap",new Map);l(this,"screenNodeMap",new Map);l(this,"textNodeMap",new Map);l(this,"imageNodeMap",new Map);l(this,"videoNodeMap",new Map);l(this,"endedIds",new Set);l(this,"videoContext");l(this,"mixNode");l(this,"destination");l(this,"manager");l(this,"stat");l(this,"_checkId",0);l(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(vt.RENDER,o=>{this.emit("render",o)}),this.mixNode=new bn(this.videoContext,this.log),this.mixNode.matchInputSize=!1}listenDeviceChange(){throw new Error("Method not implemented.")}enablePrintDetail(e=2e3){this._checkId=dt.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}create2dVideoContext(){this.videoContext?this.videoContext.destroy():this.videoContext=new Dt({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 u=this.cameraNodeMap.get(n);u&&u.image.cancelVideoFrameCallback(u.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 u=this.screenNodeMap.get(n);u&&u.image.cancelVideoFrameCallback(u.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 y(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),hr&&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,bt(this,rt).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;Ot===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 u=this.videoContext.createTextSource({content:o,font:s,color:n});u.resize(a.width,a.height),this._connectMix(u,a),this.textNodeMap.set(r,u)}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(Ot===16&&o instanceof CanvasCaptureMediaStreamTrack)if(n instanceof Er){let m=n.output;n.close(),n=this.videoContext.createVideoImageSource(o.canvas,{name:"cameraCanvasSource",logger:this.log}),n.connect(m),this.cameraNodeMap.set(e,n)}else n.image=o.canvas;else if(n instanceof Er)n.replaceTrack(o);else{let m=n.output;n.close(),n=this.videoContext.createVideoTrackSource(o,"cameraNodeSource"),n.connect(m),this.cameraNodeMap.set(e,n)}let{width:a,height:u}=o.getSettings();a&&u&&n.resize(a,u)}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,u=this.textNodeMap.get(r);u&&(x(o)||(u.content=o),x(s)||(u.font=s),x(n)||(u.color=n),u.resize(a.width,a.height),this._changeMixLayout(u,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 _r(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 _r&&(x(o)||(n.mirror=o),x(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 _r&&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 _r&&o.output.close(),o.close(),this.screenNodeMap.delete(e)),this.checkAfterRemove(!0)}removeTextSource(e){let r=this.textNodeMap.get(e);r&&(r.output instanceof _r&&r.output.close(),r.close(),this.textNodeMap.delete(e)),this.checkAfterRemove()}removeImageSource(e){let r=this.imageNodeMap.get(e);r&&(r.output instanceof _r&&r.output.close(),r.close(),this.imageNodeMap.delete(e)),this.checkAfterRemove()}removeVideoSource(e){let r=this.videoNodeMap.get(e);r&&(r.output instanceof _r&&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(),dt.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(),ut(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 Iu=ba();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Iu,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var ey=function(i){return y(this,null,function*(){let t=null,e=iy(i);$.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(sn&&Zr<74||Tt||Ht)&&$.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){$.warn(`screen applyConstraints failed: ${s}`)}i.captureElement&&(yield ty(o,i.captureElement))}if(i.audio){let s=ry(i);$.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function ty(i,t){return y(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&Ge(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===Iu))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){$.warn(`cropTo target failed ${r}`)}})}function ry(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return x(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function iy(i){let t={preferCurrentTab:i.preferDisplaySurface==="current-tab"||!!i.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:Tt?{max:i.width}:{ideal:i.width,max:i.width},height:Tt?{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 iE=ey;var ri=class extends ar{constructor(e){super(e,2);l(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600});l(this,"objectFit","contain");l(this,"isScreen",!0);this._log.id=`s-${this._log.id}`}get isShareCurrentTab(){var e,r;try{return Iu===((r=(e=this.mediaTrack)==null?void 0:e.getCaptureHandle())==null?void 0:r.handle)}catch(o){return}}capture(p){return y(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:n,videoTrack:a,captureElement:u,preferDisplaySurface:m}){try{let g;return a||n?(g=new MediaStream,a&&g.addTrack(a),n&&g.addTrack(n)):(g=yield iE({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:r,echoCancellation:o,noiseSuppression:s,captureElement:u,preferDisplaySurface:m}),this.sourceTrack=g.getVideoTracks()[0]),yield this.setInputMediaStreamTrack(g.getVideoTracks()[0]),g}catch(g){throw this.log.error(`getDisplayMedia error observed ${g}`),g instanceof de?g:new de({code:q.INITIALIZE_FAILED,name:g.name,message:g.message})}})}switchDevice(e){return y(this,null,function*(){throw new Error("Method not implemented.")})}};te([po(function(e){this.setContentHint(e.contentHint||"detail")})],ri.prototype,"capture",1);var _s=class extends ti{constructor(t){super(t),this._log.id=`s-${this._log.id}`}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 oy='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}});',Kh;function ic(i,t=48e3,e=1,r){return y(this,null,function*(){let o=We("dump");Kh||(Kh=xi(o,URL.createObjectURL(new Blob([oy],{type:"application/javascript"})))),yield Kh;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,u)=>a.connect(n,0,u)),new ReadableStream({start(a){n.port.onmessage=u=>{a.enqueue(u.data)}},cancel(){i.forEach(a=>a.disconnect(n)),n.port.close()}})})}var Su=class extends Jd{constructor(e){super();this.room=e;l(this,"_localAudioTrack");l(this,"_localScreenAudioTrack");l(this,"log",$.createLogger({id:"am"}));l(this,"denoiser");l(this,"voiceChanger");l(this,"mixChangedDebounce");l(this,"audioProcessor");l(this,"encodePipeline",[]);l(this,"decodePipeline",[]);l(this,"getPCMAbortCtrlMap",new Map);l(this,"audioFrameEventConfigMap",new Map);l(this,"audioReferenceMap",new Map);l(this,"isLocalAudioNeedAudioProcess",!1);l(this,"isScreenAudioNeedAudioProcess",!1);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.installEvent()}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,g;if(!this._localAudioTrack)return;let r=[],o=[];(p=this._localAudioPipline)!=null&&p.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(g=this._localAudioPipline)!=null&&g.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),u=()=>{for(let _=0;_<o.length;_++){let A=URL.createObjectURL(new Blob(n[_])),C=document.createElement("a");C.href=A,C.download=`${o[_]}.pcm`,C.style.display="none",document.body.appendChild(C),C.click(),URL.revokeObjectURL(A),C.remove()}clearTimeout(a),s.abort("download")},m=ic(r).then(_=>_.pipeTo(new WritableStream({write(A){A.forEach((C,N)=>n[N]=n[N]?n[N].concat(C[0]):[C[0]])}}),s).catch(A=>u));return{then:m.then.bind(m),download:u}}getPCM(e,r){var O,Z,ue;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 u=Math.floor(s*.04),m=new Float32Array(u),p=new Float32Array(u),g,_,A=0,C=new AbortController,N=r===""?(O=this._localAudioTrack)==null?void 0:O.mediaTrack:(ue=(Z=this.room)==null?void 0:Z.remotePublishedUserMap.get(r))==null?void 0:ue.remoteAudioTrack.mediaTrack;if(!N){this.log.info(`getPCM failed: ${r||"local"} has no audio track`);return}let D=We().createMediaStreamSource(new MediaStream([N]));return ic([D],s,n,a).then(Se=>Se.pipeTo(new WritableStream({write(Ye){Ye[0][0]&&(A+Ye[0][0].length>u?(m.set(Ye[0][0].subarray(0,u-A),A),g=Ye[0][0].subarray(u-A),Ye[0][1]&&(p.set(Ye[0][1].subarray(0,u-A),A),_=Ye[0][1].subarray(u-A)),A+=u-A):(g&&(m.set(g,A),A+=g.length,g=void 0),_&&(p.set(_,A),_=void 0),m.set(Ye[0][0],A),Ye[0][1]&&p.set(Ye[0][1],A),A+=Ye[0][0].length),A>=u&&(A=0,e({userId:r,sampleRate:s,channelCount:n,data:n===1?m:[m,p]}),m=new Float32Array(u),p=new Float32Array(u)))}}),C).catch(Ye=>this.log.warn(`stop getPCM reason:${Ye}`))),C}get hasScreenAudioTrack(){return!x(this._localScreenAudioTrack)}get hasAudioTrack(){return!x(this._localAudioTrack)}changeInput(e){var r,o;if(e instanceof _s)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 ti)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 Li)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 _s?delete this._localScreenAudioTrack:e instanceof ti?delete this._localAudioTrack:e instanceof Li}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,u)=>{var m;(m=this._localAudioTrack)==null||m.mixAudioReference(a,u)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&s&&((n=this._localScreenAudioTrack)==null||n.addAudioProcessor(s,e,r),this.audioReferenceMap.forEach((a,u)=>{var m;(m=this._localScreenAudioTrack)==null||m.mixAudioReference(a,u)}))}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 u;(u=this.room)==null||u.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||x(s))return;this.setAudioReferenceVolume(o,s)}}};function oE(i=30,t=2){return Oe((e,r)=>function(...o){return new Promise((s,n)=>{let a=setTimeout(()=>{let u=new de({code:q.API_CALL_TIMEOUT,message:`checkPendingPromise ${r}() timeout ${i}s`});(this.log||this._log||$).warn(u),t===2?n(u):t===1&&s()},i*1e3);e.apply(this,o).then(s,n).finally(()=>{clearTimeout(a)})})})}var ii=class ii extends as{constructor(e,r,o){super({userId:r.userId,sdkAppId:e.sdkAppId,mediaType:o,room:e});this.room=e;this.user=r;l(this,"tinyId");l(this,"isRemote",!0);l(this,"jitterBufferDelay",0);l(this,"availableState");l(this,"remotePublishState");l(this,"_triggerCheckDecodeSubject",Rt(be(this,ii.STATE_SUBSCRIBE)));this.tinyId=r.tinyId,this.availableState=new le(`${r.userId}-${this.mediaType}-available`,"remote-track-available"),this.remotePublishState=new le(`${r.userId}-${this.mediaType}-remote-publish`,"remote-track-publish"),Ae(Xa(be(this,le.STATECHANGED),be(this.remotePublishState,le.STATECHANGED)),go(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),Le(u=>{this.availableState.state!==(u?le.ON:le.OFF)&&(this.availableState.state=u?le.ON:le.OFF),this.updatePlayingState(u)}));let s=Ae(be(this.player,qe.ERROR),Jt(u=>u.code===MediaError.MEDIA_ERR_DECODE)),n=Ae(Ya(5e3),Jt(()=>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(ph(s,n),ze(be(this,le.INIT)));Ae(this._triggerCheckDecodeSubject,Jt(()=>!this.ignoreDecodeError),ki(a),Le(u=>{this.reportDecodeResult(!1,u)}))}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===ii.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===le.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(Q[e?"addSuccessEvent":"addFailedEvent"]({key:o?504700:514702}),!o){let a=((s=this.room)==null?void 0:s.downlinkVideoCodec.toUpperCase())||"H264";Q[e?"addSuccessEvent":"addFailedEvent"]({key:un[`DECODE_${a}_RESULT`]}),e||this.log.warn(`${(n=this.room)==null?void 0:n.downlinkVideoCodec} decode failed`)}e||(Q.addEnum({key:o?504701:514703,value:Yo()}),He.uploadEvent({log:`stat-decode-failed-${this.kind}-${ya()||Zo()}`,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?le.ON:le.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};l(ii,"STATE_SUBSCRIBE","subscribe"),te([oE(5,1)],ii.prototype,"waitHasMediaTrack",1),te([Ze(le.INIT,ii.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),U.emit(F.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),tu(521716,!1)],ii.prototype,"subscribe",1),te([Ze(ii.STATE_SUBSCRIBE,le.INIT,{sync:!0,success(){this.log.info("unsubscribed"),U.emit(F.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],ii.prototype,"unsubscribe",1);var Rn=ii;var Li=class extends Rn{constructor(e,r){super(e,r,1);l(this,"volume",0);l(this,"mediaType",1);l(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.audioManager}get dbVolume(){return Qd.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&&Hd().AudioDecoder&&os:!1}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:u,hasLeavingTag:m})=>{this.emit("audio-frame-with-ntp",{ntp:a,frame:u,hasLeavingTag:m})}),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}};function ny(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var To=class extends Rn{constructor(e,r,o=4){super(e,r,o);l(this,"mediaType",4);l(this,"source");l(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)})}play(e,r){return(Qe(r==null?void 0:r.canvasRender)?r.canvasRender:Ot===17)&&!this.source&&this.useCanvasPlayer(),super.play(e,r).then(()=>{this.player.calculateStat()})}useCanvasPlayer(){if(this.log.info(`useCanvasPlayer(), has element:${!!this.player.element}`),!this.player.element)return;let e=new Dt({frameRate:15,logger:this.log,name:this.userId});e.create({alpha:!1});let r=new fs(e,{name:"remotePlayer",logger:this.log});this.source=e.createVideoPlayerSource(this.player),this.source.connect(r),this.player.setCanvas(e._canvas),Mi()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=ny(r);if(!ke(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),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)}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},yu=class extends To{constructor(e,r){super(e,r,2);l(this,"mediaType",2);l(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}};var vn=new Map;U.on(F.JOIN_SUCCESS,({room:i})=>{nt(i.userId,{eventId:32788})});U.on(F.LEAVE_START,({room:i})=>{nt(i.userId,{eventId:32789})});U.on(F.LOCAL_TRACK_PUBLISHED,({track:i})=>{if(i.room){let t=32769;i.mediaType===4?t=32768:i.mediaType===2&&(t=32805),nt(i.room.userId,{eventId:t})}});U.on(F.LOCAL_TRACK_UNPUBLISHED,({track:i})=>{if(i.room){let t=32771;i.mediaType===4?t=32770:i.mediaType===2&&(t=32806),nt(i.room.userId,{eventId:t})}});U.on(F.TRACK_MUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?nt(i.room.userId,{eventId:i.isRemote?32785:32772,remoteUserId:i.isRemote?i.userId:void 0}):nt(i.room.userId,{eventId:i.isRemote?32784:32773,remoteUserId:i.isRemote?i.userId:void 0}))});U.on(F.TRACK_UNMUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?nt(i.room.userId,{eventId:i.isRemote?32787:32774,remoteUserId:i.isRemote?i.userId:void 0}):nt(i.room.userId,{eventId:i.isRemote?32786:32775,remoteUserId:i.isRemote?i.userId:void 0}))});U.on(F.REMOTE_TRACK_SUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&nt(i.room.userId,{eventId:32777,remoteUserId:i.userId}),i.mediaType===4&&nt(i.room.userId,{eventId:32776,remoteUserId:i.userId}),i.mediaType===8&&nt(i.room.userId,{eventId:32803,remoteUserId:i.userId}))});U.on(F.REMOTE_TRACK_UNSUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&nt(i.room.userId,{eventId:32779,remoteUserId:i.userId}),i.mediaType===4&&nt(i.room.userId,{eventId:32778,remoteUserId:i.userId}),i.mediaType===8&&nt(i.room.userId,{eventId:32804,remoteUserId:i.userId}))});U.on(F.SWITCH_DEVICE_SUCCESS,({track:i})=>{i.room&&nt(i.room.userId,{eventId:i.kind===M.VIDEO?32780:32781})});U.on(F.LOCAL_TRACK_REPLACED,({track:i})=>{i.room&&nt(i.room.userId,{eventId:i.kind===M.VIDEO?32782:32783})});U.on(F.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&&nt(i.userId,{eventId:r})});U.on(F.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&&nt(i.userId,{eventId:s,remoteUserId:r})});U.on(F.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 u={H264:0,H265:1,VP8:2}[r.toUpperCase()],m={eventId:4004,param1:a,param2:u,streamType:n||2};e&&(m.remoteUserId=e,m.eventId=4005),nt(t,m),Q.addEnum({key:e?514701:513701,value:a}),Q.addEnum({key:e?514700:513700,value:u})});U.on(F.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)),nt(i.userId,e)}});function nt(i,t){let e=ge(X({},t),{timestamp:fi()});vn.has(i)?vn.get(i).push(e):vn.set(i,[e])}function sE(i){if(vn.has(i)){let t=vn.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 vn.delete(i),t}return[]}function nE(...i){return Oe((t,e)=>function(...r){return ay.call(this,i,r,e,this._name),t.apply(this,r)})}function ay(i,t,e,r){try{if(st(i))for(let o=0;o<i.length;o++)Au.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else Au.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}catch(o){throw $.error(o),o}}function Au({rule:i,value:t,key:e,fnName:r,className:o}){if(x(t)){if(i.required)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_REQUIRED,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(x(i.defaultValue))return;t=i.defaultValue}if(Array.isArray(i.type)){let a=!1;for(let u=0;u<i.type.length;u++)i.type[u]===null&&t===null&&(a=!0),Ge(i.type[u])&&t instanceof i.type[u]&&(a=!0),Ne(i.type[u])&&ct(t)===i.type[u].toLowerCase()&&(a=!0);if(!a)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_TYPE,data:{key:e,rule:{type:i.type.map(u=>jo(u)?Ws(u):Ne(u)?u:ct(u))},fnName:r,value:t},link:{className:o,fnName:r}})})}else if(!x(i.type)&&ct(t)!==i.type)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_TYPE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.allowEmpty===!1){let a=ke(t)&&(t===0||Number.isNaN(t)),u=Ne(t)&&t.trim()==="";if(a||u)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_EMPTY,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}if(i.notLessThanZero&&ke(t)&&t<0)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.CANNOT_LESS_THAN_ZERO,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!x(i.min)&&ke(t)&&t<i.min)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_MIN,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!x(i.max)&&ke(t)&&t>i.max)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_MAX,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(Ne(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}else if(Ge(i.instanceOf)&&!(t instanceof i.instanceOf))throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.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 de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_RANGE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});let{properties:s}=i;Bt(s)&&ir(t)&&Object.keys(s).forEach(a=>{Au.call(this,{rule:s[a],value:t&&t[a],key:`${e}.${a}`,fnName:r,className:o})});let{arrayItem:n}=i;Bt(n)&&st(t)&&t.forEach((a,u)=>{Au.call(this,{rule:n,value:a,key:`${e}[${u}]`,fnName:r,className:o})}),Ge(i.validate)&&i.validate.call(this,t,e,r,o,this)}var cy=pi(bi(),1);var dy=Object.create,Nu=Object.defineProperty,uy=Object.defineProperties,uE=Object.getOwnPropertyDescriptor,ly=Object.getOwnPropertyDescriptors,lE=Object.getOwnPropertyNames,aE=Object.getOwnPropertySymbols,my=Object.getPrototypeOf,mE=Object.prototype.hasOwnProperty,hy=Object.prototype.propertyIsEnumerable,rp=(i,t,e)=>t in i?Nu(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Ru=(i,t)=>{for(var e in t||(t={}))mE.call(t,e)&&rp(i,e,t[e]);if(aE)for(var e of aE(t))hy.call(t,e)&&rp(i,e,t[e]);return i},vu=(i,t)=>uy(i,ly(t)),py=(i,t)=>function(){return t||(0,i[lE(i)[0]])((t={exports:{}}).exports,t),t.exports},fy=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of lE(t))mE.call(i,o)||o===e||Nu(i,o,{get:()=>t[o],enumerable:!(r=uE(t,o))||r.enumerable});return i},gy=(i,t,e)=>(e=i!=null?dy(my(i)):{},fy(!t&&i&&i.__esModule?e:Nu(e,"default",{value:i,enumerable:!0}),i)),Ui=(i,t,e,r)=>{for(var o,s=r>1?void 0:r?uE(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&&Nu(t,e,s),s},$r=(i,t,e)=>rp(i,typeof t!="symbol"?t+"":t,e),Ey=py({"../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(m,p,g){this.fn=m,this.context=p,this.once=g||!1}function n(m,p,g,_,A){if(typeof g!="function")throw new TypeError("The listener must be a function");var C=new s(g,_||m,A),N=r?r+p:p;return m._events[N]?m._events[N].fn?m._events[N]=[m._events[N],C]:m._events[N].push(C):(m._events[N]=C,m._eventsCount++),m}function a(m,p){--m._eventsCount==0?m._events=new o:delete m._events[p]}function u(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),new o().__proto__||(r=!1)),u.prototype.eventNames=function(){var m,p,g=[];if(this._eventsCount===0)return g;for(p in m=this._events)e.call(m,p)&&g.push(r?p.slice(1):p);return Object.getOwnPropertySymbols?g.concat(Object.getOwnPropertySymbols(m)):g},u.prototype.listeners=function(m){var p=r?r+m:m,g=this._events[p];if(!g)return[];if(g.fn)return[g.fn];for(var _=0,A=g.length,C=new Array(A);_<A;_++)C[_]=g[_].fn;return C},u.prototype.listenerCount=function(m){var p=r?r+m:m,g=this._events[p];return g?g.fn?1:g.length:0},u.prototype.emit=function(m,p,g,_,A,C){var N=r?r+m:m;if(!this._events[N])return!1;var D,O,Z=this._events[N],ue=arguments.length;if(Z.fn){switch(Z.once&&this.removeListener(m,Z.fn,void 0,!0),ue){case 1:return Z.fn.call(Z.context),!0;case 2:return Z.fn.call(Z.context,p),!0;case 3:return Z.fn.call(Z.context,p,g),!0;case 4:return Z.fn.call(Z.context,p,g,_),!0;case 5:return Z.fn.call(Z.context,p,g,_,A),!0;case 6:return Z.fn.call(Z.context,p,g,_,A,C),!0}for(O=1,D=new Array(ue-1);O<ue;O++)D[O-1]=arguments[O];Z.fn.apply(Z.context,D)}else{var Se,Ye=Z.length;for(O=0;O<Ye;O++)switch(Z[O].once&&this.removeListener(m,Z[O].fn,void 0,!0),ue){case 1:Z[O].fn.call(Z[O].context);break;case 2:Z[O].fn.call(Z[O].context,p);break;case 3:Z[O].fn.call(Z[O].context,p,g);break;case 4:Z[O].fn.call(Z[O].context,p,g,_);break;default:if(!D)for(Se=1,D=new Array(ue-1);Se<ue;Se++)D[Se-1]=arguments[Se];Z[O].fn.apply(Z[O].context,D)}}return!0},u.prototype.on=function(m,p,g){return n(this,m,p,g,!1)},u.prototype.once=function(m,p,g){return n(this,m,p,g,!0)},u.prototype.removeListener=function(m,p,g,_){var A=r?r+m:m;if(!this._events[A])return this;if(!p)return a(this,A),this;var C=this._events[A];if(C.fn)C.fn!==p||_&&!C.once||g&&C.context!==g||a(this,A);else{for(var N=0,D=[],O=C.length;N<O;N++)(C[N].fn!==p||_&&!C[N].once||g&&C[N].context!==g)&&D.push(C[N]);D.length?this._events[A]=D.length===1?D[0]:D:a(this,A)}return this},u.prototype.removeAllListeners=function(m){var p;return m?(p=r?r+m:m,this._events[p]&&a(this,p)):(this._events=new o,this._eventsCount=0),this},u.prototype.off=u.prototype.removeListener,u.prototype.addListener=u.prototype.on,u.prefixed=r,u.EventEmitter=u,t!==void 0&&(t.exports=u)}}),_y=gy(Ey(),1),cE=Symbol("instance"),Zx=Symbol("abortCtrl"),bu=Symbol("cacheResult"),ep=class{constructor(i,t,e){this.oldState=i,this.newState=t,this.action=e,this.aborted=!1}abort(i){this.aborted=!0,nc.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},Cu=class extends Error{constructor(i,t,e){super(t),this.state=i,this.message=t,this.cause=e}};function Ty(i){return typeof i=="object"&&i&&"then"in i}var sc=new Map;function Io(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let u=sc.get(r)||[];sc.has(r)||sc.set(r,u),u.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...u){let m=this;if(e.context&&(m=Xt.get(typeof e.context=="function"?e.context.call(this,...u):e.context)),m.state===t)return e.sync?m[bu]:Promise.resolve(m[bu]);m.state instanceof ep&&m.state.action==e.abortAction&&m.state.abort(m);let p=null;Array.isArray(i)?i.length==0?m.state instanceof ep&&m.state.abort(m):typeof m.state=="string"&&i.includes(m.state)||(p=new Cu(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(p=new Cu(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i}`));let g=D=>{if(e.fail&&e.fail.call(this,D),e.sync){if(e.ignoreError)return D;throw D}return e.ignoreError?Promise.resolve(D):Promise.reject(D)};if(p)return g(p);let _=m.state,A=new ep(_,t,n);nc.call(m,A);let C=D=>{var O;return m[bu]=D,A.aborted||(nc.call(m,t),(O=e.success)===null||O===void 0||O.call(this,m[bu])),D},N=D=>(nc.call(m,_,D),g(D));try{let D=a.apply(this,u);return Ty(D)?D.then(C).catch(N):e.sync?C(D):Promise.resolve(C(D))}catch(D){return N(new Cu(m._state,`${m.name} ${n} from ${i} to ${t} failed: ${D}`,D instanceof Error?D:new Error(String(D))))}}}}function Iy(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...n){if(!i.includes(this.state.toString()))throw new Cu(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,n)}}}var Sy=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 nc(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(Xt.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var Xt=class Tr extends _y.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=Tr.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[cE];o?this.name=o.name+"-"+o.count++:r[cE]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=sc.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);sc.has(a)&&(a.stateDiagram.forEach(m=>r.add(m)),a.allStates.forEach(m=>n.add(m))),e.forEach(({from:m,to:p,action:g})=>{typeof m=="string"?o.push({from:m,to:p,action:g}):m.length?m.forEach(_=>{o.push({from:_,to:p,action:g})}):s.push({to:p,action:g})}),o.forEach(({from:m,to:p,action:g})=>{n.add(m),n.add(p),n.add(g+"ing"),r.add(`${m} --> ${g}ing : ${g}`),r.add(`${g}ing --> ${p} : ${g} \u{1F7E2}`),r.add(`${g}ing --> ${m} : ${g} \u{1F534}`)}),s.forEach(({to:m,action:p})=>{r.add(`${p}ing --> ${m} : ${p} \u{1F7E2}`),n.forEach(g=>{g!==m&&r.add(`${g} --> ${p}ing : ${p}`)})});let u=[...r];return Object.defineProperties(t,{stateDiagram:{value:u},allStates:{value:n}}),u}static get(t){let e;return typeof t=="string"?(e=Tr.instances.get(t),e||Tr.instances.set(t,e=new Tr(t,void 0,Object.create(Tr.prototype)))):(e=Tr.instances2.get(t),e||Tr.instances2.set(t,e=new Tr(t.constructor.name,void 0,Object.create(Tr.prototype)))),e}static getState(t){var e;return(e=Tr.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){Sy(Tr.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){nc.call(this,t)}};Xt.STATECHANGED="stateChanged",Xt.UPDATEAFSM="updateAFSM",Xt.INIT="[*]",Xt.ON="on",Xt.OFF="off",Xt.instances=new Map,Xt.instances2=new WeakMap;var Cn=class extends Xt{constructor(){super(...arguments),$r(this,"decoder"),$r(this,"config")}initialize(){return y(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(vu(Ru({},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 yy(){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,u={wasmBinary:o,postRun:()=>{i=new u.VideoDecoder({videoInfo(m,p){n=m,a=p,console.log("video info",m,p)},yuvData(m,p){let g=n*a,_=g>>2,A=u.HEAPU32[m>>2],C=u.HEAPU32[1+(m>>2)],N=u.HEAPU32[2+(m>>2)],D=u.HEAPU8.subarray(A,A+g),O=u.HEAPU8.subarray(C,C+_),Z=u.HEAPU8.subarray(N,N+_),ue=new Uint8Array(g+_+_);ue.set(D),ue.set(O,g),ue.set(Z,g+_);let Se=new VideoFrame(ue,{codedWidth:n,codedHeight:a,format:"I420",timestamp:p});e?(s==null||s.drawImage(Se,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:Se},[Se])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(u)}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:"")}}}Ui([Io([Xt.INIT,"closed"],"initialized")],Cn.prototype,"initialize",1),Ui([Io("initialized","configured",{sync:!0})],Cn.prototype,"configure",1),Ui([Iy("configured")],Cn.prototype,"decode",1),Ui([Io([],Xt.INIT,{sync:!0})],Cn.prototype,"reset",1),Ui([Io([],"closed",{ignoreError:!0,sync:!0})],Cn.prototype,"close",1);var oc=class extends Xt{constructor(i,t,e=!1,r,o=!1){super(),this.createModule=i,this.wasmBinary=t,this.workerMode=e,this.canvas=r,this.yuvMode=o,$r(this,"worker"),$r(this,"decoder"),$r(this,"config"),$r(this,"module",{}),$r(this,"width",0),$r(this,"height",0)}initialize(i){return y(this,null,function*(){var t;if(this.workerMode){let r=new RegExp("\\{(.+)\\}","s").exec(yy.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:u}=a.data;this.emit("videoFrame",u)}}})}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),u=this.module.HEAPU8.subarray(s,s+r),m=this.module.HEAPU8.subarray(n,n+r);if(this.yuvMode)return void this.emit("videoFrame",{y:a,u,v:m,timestamp:t});let p=new Uint8Array(e+r+r);p.set(a),p.set(u,e),p.set(m,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)}};Ui([Io([Xt.INIT,"closed"],"initialized")],oc.prototype,"initialize",1),Ui([Io("initialized","configured",{sync:!0})],oc.prototype,"configure",1),Ui([Io([],Xt.INIT,{sync:!0})],oc.prototype,"reset",1),Ui([Io([],"closed",{sync:!0})],oc.prototype,"close",1);var Ay=(()=>{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,d)=>{e=c,r=d});var s,n,a,u=Object.assign({},o),m="./this.program",p=typeof window=="object",g=typeof importScripts=="function",_=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(p||g)&&(g?_=self.location.href:typeof document!="undefined"&&document.currentScript&&(_=document.currentScript.src),i&&(_=i),_=_.indexOf("blob:")!==0?_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):"",s=c=>{var d=new XMLHttpRequest;return d.open("GET",c,!1),d.send(null),d.responseText},g&&(a=c=>{var d=new XMLHttpRequest;return d.open("GET",c,!1),d.responseType="arraybuffer",d.send(null),new Uint8Array(d.response)}),n=(c,d,h)=>{var f=new XMLHttpRequest;f.open("GET",c,!0),f.responseType="arraybuffer",f.onload=()=>{f.status==200||f.status==0&&f.response?d(f.response):h()},f.onerror=h,f.send(null)});var A,C=o.print||console.log.bind(console),N=o.printErr||console.error.bind(console);Object.assign(o,u),u=null,o.arguments&&o.arguments,o.thisProgram&&(m=o.thisProgram),o.quit&&o.quit,o.wasmBinary&&(A=o.wasmBinary);var D,O;o.noExitRuntime,typeof WebAssembly!="object"&&Hr("no native wasm support detected");var Z,ue,Se,Ye,H,Pe,Pn,kn,Ln,Un=!1,Br=[],Rs=[],Bi=[],cr=0,ci=null,di=null;function ie(c){cr++,o.monitorRunDependencies&&o.monitorRunDependencies(cr)}function No(c){if(cr--,o.monitorRunDependencies&&o.monitorRunDependencies(cr),cr==0&&(ci!==null&&(clearInterval(ci),ci=null),di)){var d=di;di=null,d()}}function Hr(c){o.onAbort&&o.onAbort(c),N(c="Aborted("+c+")"),Un=!0,c+=". Build with -sASSERTIONS for more info.";var d=new WebAssembly.RuntimeError(c);throw r(d),d}var ui,Vn,Ee,Ke;function kt(c){return c.startsWith("data:application/octet-stream;base64,")}function J(c){if(c==ui&&A)return new Uint8Array(A);if(a)return a(c);throw"both async and sync fetching of the wasm failed"}function Wr(c,d,h){return function(f){return A||!p&&!g||typeof fetch!="function"?Promise.resolve().then(()=>J(f)):fetch(f,{credentials:"same-origin"}).then(I=>{if(!I.ok)throw"failed to load wasm binary file at '"+f+"'";return I.arrayBuffer()}).catch(()=>J(f))}(c).then(f=>WebAssembly.instantiate(f,d)).then(f=>f).then(h,f=>{N("failed to asynchronously prepare wasm: "+f),Hr(f)})}kt(ui="videodec.wasm")||(Vn=ui,ui=o.locateFile?o.locateFile(Vn,_):_+Vn);var Hi=c=>{for(;c.length>0;)c.shift()(o)};function Wi(c){this.excPtr=c,this.ptr=c-24,this.set_type=function(d){Pe[this.ptr+4>>2]=d},this.get_type=function(){return Pe[this.ptr+4>>2]},this.set_destructor=function(d){Pe[this.ptr+8>>2]=d},this.get_destructor=function(){return Pe[this.ptr+8>>2]},this.set_caught=function(d){d=d?1:0,Z[this.ptr+12|0]=d},this.get_caught=function(){return Z[this.ptr+12|0]!=0},this.set_rethrown=function(d){d=d?1:0,Z[this.ptr+13|0]=d},this.get_rethrown=function(){return Z[this.ptr+13|0]!=0},this.init=function(d,h){this.set_adjusted_ptr(0),this.set_type(d),this.set_destructor(h)},this.set_adjusted_ptr=function(d){Pe[this.ptr+16>>2]=d},this.get_adjusted_ptr=function(){return Pe[this.ptr+16>>2]},this.get_exception_ptr=function(){if(qn(this.get_type()))return Pe[this.excPtr>>2];var d=this.get_adjusted_ptr();return d!==0?d:this.excPtr}}var me={isAbs:c=>c.charAt(0)==="/",splitPath:c=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(c).slice(1),normalizeArray:(c,d)=>{for(var h=0,f=c.length-1;f>=0;f--){var I=c[f];I==="."?c.splice(f,1):I===".."?(c.splice(f,1),h++):h&&(c.splice(f,1),h--)}if(d)for(;h;h--)c.unshift("..");return c},normalize:c=>{var d=me.isAbs(c),h=c.substr(-1)==="/";return(c=me.normalizeArray(c.split("/").filter(f=>!!f),!d).join("/"))||d||(c="."),c&&h&&(c+="/"),(d?"/":"")+c},dirname:c=>{var d=me.splitPath(c),h=d[0],f=d[1];return h||f?(f&&(f=f.substr(0,f.length-1)),h+f):"."},basename:c=>{if(c==="/")return"/";var d=(c=(c=me.normalize(c)).replace(/\/$/,"")).lastIndexOf("/");return d===-1?c:c.substr(d+1)},join:function(){var c=Array.prototype.slice.call(arguments);return me.normalize(c.join("/"))},join2:(c,d)=>me.normalize(c+"/"+d)},Fn=c=>(Fn=(()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return d=>crypto.getRandomValues(d);Hr("initRandomDevice")})())(c),Qt={resolve:function(){for(var c="",d=!1,h=arguments.length-1;h>=-1&&!d;h--){var f=h>=0?arguments[h]:E.cwd();if(typeof f!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!f)return"";c=f+"/"+c,d=me.isAbs(f)}return(d?"/":"")+(c=me.normalizeArray(c.split("/").filter(I=>!!I),!d).join("/"))||"."},relative:(c,d)=>{function h(L){for(var ee=0;ee<L.length&&L[ee]==="";ee++);for(var ae=L.length-1;ae>=0&&L[ae]==="";ae--);return ee>ae?[]:L.slice(ee,ae-ee+1)}c=Qt.resolve(c).substr(1),d=Qt.resolve(d).substr(1);for(var f=h(c.split("/")),I=h(d.split("/")),b=Math.min(f.length,I.length),R=b,v=0;v<b;v++)if(f[v]!==I[v]){R=v;break}var V=[];for(v=R;v<f.length;v++)V.push("..");return(V=V.concat(I.slice(R))).join("/")}},Gi=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Lt=(c,d,h)=>{for(var f=d+h,I=d;c[I]&&!(I>=f);)++I;if(I-d>16&&c.buffer&&Gi)return Gi.decode(c.subarray(d,I));for(var b="";d<I;){var R=c[d++];if(128&R){var v=63&c[d++];if((224&R)!=192){var V=63&c[d++];if((R=(240&R)==224?(15&R)<<12|v<<6|V:(7&R)<<18|v<<12|V<<6|63&c[d++])<65536)b+=String.fromCharCode(R);else{var L=R-65536;b+=String.fromCharCode(55296|L>>10,56320|1023&L)}}else b+=String.fromCharCode((31&R)<<6|v)}else b+=String.fromCharCode(R)}return b},$n=[],Do=c=>{for(var d=0,h=0;h<c.length;++h){var f=c.charCodeAt(h);f<=127?d++:f<=2047?d+=2:f>=55296&&f<=57343?(d+=4,++h):d+=3}return d},wo=(c,d,h,f)=>{if(!(f>0))return 0;for(var I=h,b=h+f-1,R=0;R<c.length;++R){var v=c.charCodeAt(R);if(v>=55296&&v<=57343&&(v=65536+((1023&v)<<10)|1023&c.charCodeAt(++R)),v<=127){if(h>=b)break;d[h++]=v}else if(v<=2047){if(h+1>=b)break;d[h++]=192|v>>6,d[h++]=128|63&v}else if(v<=65535){if(h+2>=b)break;d[h++]=224|v>>12,d[h++]=128|v>>6&63,d[h++]=128|63&v}else{if(h+3>=b)break;d[h++]=240|v>>18,d[h++]=128|v>>12&63,d[h++]=128|v>>6&63,d[h++]=128|63&v}}return d[h]=0,h-I};function vs(c,d,h){var f=h>0?h:Do(c)+1,I=new Array(f),b=wo(c,I,0,I.length);return d&&(I.length=b),I}var Sr={ttys:[],init:function(){},shutdown:function(){},register:function(c,d){Sr.ttys[c]={input:[],output:[],ops:d},E.registerDevice(c,Sr.stream_ops)},stream_ops:{open:function(c){var d=Sr.ttys[c.node.rdev];if(!d)throw new E.ErrnoError(43);c.tty=d,c.seekable=!1},close:function(c){c.tty.ops.fsync(c.tty)},fsync:function(c){c.tty.ops.fsync(c.tty)},read:function(c,d,h,f,I){if(!c.tty||!c.tty.ops.get_char)throw new E.ErrnoError(60);for(var b=0,R=0;R<f;R++){var v;try{v=c.tty.ops.get_char(c.tty)}catch(V){throw new E.ErrnoError(29)}if(v===void 0&&b===0)throw new E.ErrnoError(6);if(v==null)break;b++,d[h+R]=v}return b&&(c.node.timestamp=Date.now()),b},write:function(c,d,h,f,I){if(!c.tty||!c.tty.ops.put_char)throw new E.ErrnoError(60);try{for(var b=0;b<f;b++)c.tty.ops.put_char(c.tty,d[h+b])}catch(R){throw new E.ErrnoError(29)}return f&&(c.node.timestamp=Date.now()),b}},default_tty_ops:{get_char:function(c){return(()=>{if(!$n.length){var d=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(d=window.prompt("Input: "))!==null&&(d+=`
51
51
  `):typeof readline=="function"&&(d=readline())!==null&&(d+=`
52
- `),!d)return null;Vn=Rs(d,!0)}return Vn.shift()})()},put_char:function(c,d){d===null||d===10?(C(Lt(c.output,0)),c.output=[]):d!=0&&c.output.push(d)},fsync:function(c){c.output&&c.output.length>0&&(C(Lt(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,d,h){return 0},ioctl_tiocgwinsz:function(c){return[24,80]}},default_tty1_ops:{put_char:function(c,d){d===null||d===10?(N(Lt(c.output,0)),c.output=[]):d!=0&&c.output.push(d)},fsync:function(c){c.output&&c.output.length>0&&(N(Lt(c.output,0)),c.output=[])}}},Fn=c=>{Hr()},j={ops_table:null,mount:c=>j.createNode(null,"/",16895,0),createNode(c,d,h,f){if(E.isBlkdev(h)||E.isFIFO(h))throw new E.ErrnoError(63);j.ops_table||(j.ops_table={dir:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr,lookup:j.node_ops.lookup,mknod:j.node_ops.mknod,rename:j.node_ops.rename,unlink:j.node_ops.unlink,rmdir:j.node_ops.rmdir,readdir:j.node_ops.readdir,symlink:j.node_ops.symlink},stream:{llseek:j.stream_ops.llseek}},file:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr},stream:{llseek:j.stream_ops.llseek,read:j.stream_ops.read,write:j.stream_ops.write,allocate:j.stream_ops.allocate,mmap:j.stream_ops.mmap,msync:j.stream_ops.msync}},link:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr,readlink:j.node_ops.readlink},stream:{}},chrdev:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr},stream:E.chrdev_stream_ops}});var I=E.createNode(c,d,h,f);return E.isDir(I.mode)?(I.node_ops=j.ops_table.dir.node,I.stream_ops=j.ops_table.dir.stream,I.contents={}):E.isFile(I.mode)?(I.node_ops=j.ops_table.file.node,I.stream_ops=j.ops_table.file.stream,I.usedBytes=0,I.contents=null):E.isLink(I.mode)?(I.node_ops=j.ops_table.link.node,I.stream_ops=j.ops_table.link.stream):E.isChrdev(I.mode)&&(I.node_ops=j.ops_table.chrdev.node,I.stream_ops=j.ops_table.chrdev.stream),I.timestamp=Date.now(),c&&(c.contents[d]=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,d){var h=c.contents?c.contents.length:0;if(!(h>=d)){d=Math.max(d,h*(h<1048576?2:1.125)>>>0),h!=0&&(d=Math.max(d,256));var f=c.contents;c.contents=new Uint8Array(d),c.usedBytes>0&&c.contents.set(f.subarray(0,c.usedBytes),0)}},resizeFileStorage(c,d){if(c.usedBytes!=d)if(d==0)c.contents=null,c.usedBytes=0;else{var h=c.contents;c.contents=new Uint8Array(d),h&&c.contents.set(h.subarray(0,Math.min(d,c.usedBytes))),c.usedBytes=d}},node_ops:{getattr(c){var d={};return d.dev=E.isChrdev(c.mode)?c.id:1,d.ino=c.id,d.mode=c.mode,d.nlink=1,d.uid=0,d.gid=0,d.rdev=c.rdev,E.isDir(c.mode)?d.size=4096:E.isFile(c.mode)?d.size=c.usedBytes:E.isLink(c.mode)?d.size=c.link.length:d.size=0,d.atime=new Date(c.timestamp),d.mtime=new Date(c.timestamp),d.ctime=new Date(c.timestamp),d.blksize=4096,d.blocks=Math.ceil(d.size/d.blksize),d},setattr(c,d){d.mode!==void 0&&(c.mode=d.mode),d.timestamp!==void 0&&(c.timestamp=d.timestamp),d.size!==void 0&&j.resizeFileStorage(c,d.size)},lookup(c,d){throw E.genericErrors[44]},mknod:(c,d,h,f)=>j.createNode(c,d,h,f),rename(c,d,h){if(E.isDir(c.mode)){var f;try{f=E.lookupNode(d,h)}catch(b){}if(f)for(var I in f.contents)throw new E.ErrnoError(55)}delete c.parent.contents[c.name],c.parent.timestamp=Date.now(),c.name=h,d.contents[h]=c,d.timestamp=c.parent.timestamp,c.parent=d},unlink(c,d){delete c.contents[d],c.timestamp=Date.now()},rmdir(c,d){var h=E.lookupNode(c,d);for(var f in h.contents)throw new E.ErrnoError(55);delete c.contents[d],c.timestamp=Date.now()},readdir(c){var d=[".",".."];for(var h in c.contents)c.contents.hasOwnProperty(h)&&d.push(h);return d},symlink(c,d,h){var f=j.createNode(c,d,41471,0);return f.link=h,f},readlink(c){if(!E.isLink(c.mode))throw new E.ErrnoError(28);return c.link}},stream_ops:{read(c,d,h,f,I){var b=c.node.contents;if(I>=c.node.usedBytes)return 0;var R=Math.min(c.node.usedBytes-I,f);if(R>8&&b.subarray)d.set(b.subarray(I,I+R),h);else for(var v=0;v<R;v++)d[h+v]=b[I+v];return R},write(c,d,h,f,I,b){if(!f)return 0;var R=c.node;if(R.timestamp=Date.now(),d.subarray&&(!R.contents||R.contents.subarray)){if(b)return R.contents=d.subarray(h,h+f),R.usedBytes=f,f;if(R.usedBytes===0&&I===0)return R.contents=d.slice(h,h+f),R.usedBytes=f,f;if(I+f<=R.usedBytes)return R.contents.set(d.subarray(h,h+f),I),f}if(j.expandFileStorage(R,I+f),R.contents.subarray&&d.subarray)R.contents.set(d.subarray(h,h+f),I);else for(var v=0;v<f;v++)R.contents[I+v]=d[h+v];return R.usedBytes=Math.max(R.usedBytes,I+f),f},llseek(c,d,h){var f=d;if(h===1?f+=c.position:h===2&&E.isFile(c.node.mode)&&(f+=c.node.usedBytes),f<0)throw new E.ErrnoError(28);return f},allocate(c,d,h){j.expandFileStorage(c.node,d+h),c.node.usedBytes=Math.max(c.node.usedBytes,d+h)},mmap(c,d,h,f,I){if(!E.isFile(c.node.mode))throw new E.ErrnoError(43);var b,R,v=c.node.contents;if(2&I||v.buffer!==Z.buffer){if((h>0||h+d<v.length)&&(v=v.subarray?v.subarray(h,h+d):Array.prototype.slice.call(v,h,h+d)),R=!0,!(b=Fn()))throw new E.ErrnoError(48);Z.set(v,b)}else R=!1,b=v.byteOffset;return{ptr:b,allocated:R}},msync:(c,d,h,f,I)=>(j.stream_ops.write(c,d,0,f,h,!1),0)}},ll=(c,d,h,f)=>{var I=f?"":`al ${c}`;n(c,b=>{var R;R=`Loading data file "${c}" failed (no arrayBuffer).`,b||Hr(R),d(new Uint8Array(b)),I&&No()},b=>{if(!h)throw`Loading data file "${c}" failed.`;h()}),I&&ie()},ml=o.preloadPlugins||[];function li(c,d){var h=0;return c&&(h|=365),d&&(h|=146),h}var E={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(c,d={})=>{if(!(c=Qt.resolve(c)))return{path:"",node:null};if((d=Object.assign({follow_mount:!0,recurse_count:0},d)).recurse_count>8)throw new E.ErrnoError(32);for(var h=c.split("/").filter(L=>!!L),f=E.root,I="/",b=0;b<h.length;b++){var R=b===h.length-1;if(R&&d.parent)break;if(f=E.lookupNode(f,h[b]),I=me.join2(I,h[b]),E.isMountpoint(f)&&(!R||R&&d.follow_mount)&&(f=f.mounted.root),!R||d.follow)for(var v=0;E.isLink(f.mode);){var U=E.readlink(I);if(I=Qt.resolve(me.dirname(I),U),f=E.lookupPath(I,{recurse_count:d.recurse_count+1}).node,v++>40)throw new E.ErrnoError(32)}}return{path:I,node:f}},getPath:c=>{for(var d;;){if(E.isRoot(c)){var h=c.mount.mountpoint;return d?h[h.length-1]!=="/"?`${h}/${d}`:h+d:h}d=d?`${c.name}/${d}`:c.name,c=c.parent}},hashName:(c,d)=>{for(var h=0,f=0;f<d.length;f++)h=(h<<5)-h+d.charCodeAt(f)|0;return(c+h>>>0)%E.nameTable.length},hashAddNode:c=>{var d=E.hashName(c.parent.id,c.name);c.name_next=E.nameTable[d],E.nameTable[d]=c},hashRemoveNode:c=>{var d=E.hashName(c.parent.id,c.name);if(E.nameTable[d]===c)E.nameTable[d]=c.name_next;else for(var h=E.nameTable[d];h;){if(h.name_next===c){h.name_next=c.name_next;break}h=h.name_next}},lookupNode:(c,d)=>{var h=E.mayLookup(c);if(h)throw new E.ErrnoError(h,c);for(var f=E.hashName(c.id,d),I=E.nameTable[f];I;I=I.name_next){var b=I.name;if(I.parent.id===c.id&&b===d)return I}return E.lookup(c,d)},createNode:(c,d,h,f)=>{var I=new E.FSNode(c,d,h,f);return E.hashAddNode(I),I},destroyNode:c=>{E.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 d=["r","w","rw"][3&c];return 512&c&&(d+="w"),d},nodePermissions:(c,d)=>E.ignorePermissions||(!d.includes("r")||292&c.mode)&&(!d.includes("w")||146&c.mode)&&(!d.includes("x")||73&c.mode)?0:2,mayLookup:c=>{var d=E.nodePermissions(c,"x");return d||(c.node_ops.lookup?0:2)},mayCreate:(c,d)=>{try{return E.lookupNode(c,d),20}catch(h){}return E.nodePermissions(c,"wx")},mayDelete:(c,d,h)=>{var f;try{f=E.lookupNode(c,d)}catch(b){return b.errno}var I=E.nodePermissions(c,"wx");if(I)return I;if(h){if(!E.isDir(f.mode))return 54;if(E.isRoot(f)||E.getPath(f)===E.cwd())return 10}else if(E.isDir(f.mode))return 31;return 0},mayOpen:(c,d)=>c?E.isLink(c.mode)?32:E.isDir(c.mode)&&(E.flagsToPermissionString(d)!=="r"||512&d)?31:E.nodePermissions(c,E.flagsToPermissionString(d)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var c=0;c<=E.MAX_OPEN_FDS;c++)if(!E.streams[c])return c;throw new E.ErrnoError(33)},getStreamChecked:c=>{var d=E.getStream(c);if(!d)throw new E.ErrnoError(8);return d},getStream:c=>E.streams[c],createStream:(c,d=-1)=>(E.FSStream||(E.FSStream=function(){this.shared={}},E.FSStream.prototype={},Object.defineProperties(E.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 E.FSStream,c),d==-1&&(d=E.nextfd()),c.fd=d,E.streams[d]=c,c),closeStream:c=>{E.streams[c]=null},chrdev_stream_ops:{open:c=>{var d=E.getDevice(c.node.rdev);c.stream_ops=d.stream_ops,c.stream_ops.open&&c.stream_ops.open(c)},llseek:()=>{throw new E.ErrnoError(70)}},major:c=>c>>8,minor:c=>255&c,makedev:(c,d)=>c<<8|d,registerDevice:(c,d)=>{E.devices[c]={stream_ops:d}},getDevice:c=>E.devices[c],getMounts:c=>{for(var d=[],h=[c];h.length;){var f=h.pop();d.push(f),h.push.apply(h,f.mounts)}return d},syncfs:(c,d)=>{typeof c=="function"&&(d=c,c=!1),E.syncFSRequests++,E.syncFSRequests>1&&N(`warning: ${E.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var h=E.getMounts(E.root.mount),f=0;function I(R){return E.syncFSRequests--,d(R)}function b(R){if(R)return b.errored?void 0:(b.errored=!0,I(R));++f>=h.length&&I(null)}h.forEach(R=>{if(!R.type.syncfs)return b(null);R.type.syncfs(R,c,b)})},mount:(c,d,h)=>{var f,I=h==="/",b=!h;if(I&&E.root)throw new E.ErrnoError(10);if(!I&&!b){var R=E.lookupPath(h,{follow_mount:!1});if(h=R.path,f=R.node,E.isMountpoint(f))throw new E.ErrnoError(10);if(!E.isDir(f.mode))throw new E.ErrnoError(54)}var v={type:c,opts:d,mountpoint:h,mounts:[]},U=c.mount(v);return U.mount=v,v.root=U,I?E.root=U:f&&(f.mounted=v,f.mount&&f.mount.mounts.push(v)),U},unmount:c=>{var d=E.lookupPath(c,{follow_mount:!1});if(!E.isMountpoint(d.node))throw new E.ErrnoError(28);var h=d.node,f=h.mounted,I=E.getMounts(f);Object.keys(E.nameTable).forEach(R=>{for(var v=E.nameTable[R];v;){var U=v.name_next;I.includes(v.mount)&&E.destroyNode(v),v=U}}),h.mounted=null;var b=h.mount.mounts.indexOf(f);h.mount.mounts.splice(b,1)},lookup:(c,d)=>c.node_ops.lookup(c,d),mknod:(c,d,h)=>{var f=E.lookupPath(c,{parent:!0}).node,I=me.basename(c);if(!I||I==="."||I==="..")throw new E.ErrnoError(28);var b=E.mayCreate(f,I);if(b)throw new E.ErrnoError(b);if(!f.node_ops.mknod)throw new E.ErrnoError(63);return f.node_ops.mknod(f,I,d,h)},create:(c,d)=>(d=d!==void 0?d:438,d&=4095,d|=32768,E.mknod(c,d,0)),mkdir:(c,d)=>(d=d!==void 0?d:511,d&=1023,d|=16384,E.mknod(c,d,0)),mkdirTree:(c,d)=>{for(var h=c.split("/"),f="",I=0;I<h.length;++I)if(h[I]){f+="/"+h[I];try{E.mkdir(f,d)}catch(b){if(b.errno!=20)throw b}}},mkdev:(c,d,h)=>(h===void 0&&(h=d,d=438),d|=8192,E.mknod(c,d,h)),symlink:(c,d)=>{if(!Qt.resolve(c))throw new E.ErrnoError(44);var h=E.lookupPath(d,{parent:!0}).node;if(!h)throw new E.ErrnoError(44);var f=me.basename(d),I=E.mayCreate(h,f);if(I)throw new E.ErrnoError(I);if(!h.node_ops.symlink)throw new E.ErrnoError(63);return h.node_ops.symlink(h,f,c)},rename:(c,d)=>{var h,f,I=me.dirname(c),b=me.dirname(d),R=me.basename(c),v=me.basename(d);if(h=E.lookupPath(c,{parent:!0}).node,f=E.lookupPath(d,{parent:!0}).node,!h||!f)throw new E.ErrnoError(44);if(h.mount!==f.mount)throw new E.ErrnoError(75);var U,L=E.lookupNode(h,R),K=Qt.relative(c,b);if(K.charAt(0)!==".")throw new E.ErrnoError(28);if((K=Qt.relative(d,I)).charAt(0)!==".")throw new E.ErrnoError(55);try{U=E.lookupNode(f,v)}catch(ne){}if(L!==U){var ae=E.isDir(L.mode),ce=E.mayDelete(h,R,ae);if(ce)throw new E.ErrnoError(ce);if(ce=U?E.mayDelete(f,v,ae):E.mayCreate(f,v))throw new E.ErrnoError(ce);if(!h.node_ops.rename)throw new E.ErrnoError(63);if(E.isMountpoint(L)||U&&E.isMountpoint(U))throw new E.ErrnoError(10);if(f!==h&&(ce=E.nodePermissions(h,"w")))throw new E.ErrnoError(ce);E.hashRemoveNode(L);try{h.node_ops.rename(L,f,v)}catch(ne){throw ne}finally{E.hashAddNode(L)}}},rmdir:c=>{var d=E.lookupPath(c,{parent:!0}).node,h=me.basename(c),f=E.lookupNode(d,h),I=E.mayDelete(d,h,!0);if(I)throw new E.ErrnoError(I);if(!d.node_ops.rmdir)throw new E.ErrnoError(63);if(E.isMountpoint(f))throw new E.ErrnoError(10);d.node_ops.rmdir(d,h),E.destroyNode(f)},readdir:c=>{var d=E.lookupPath(c,{follow:!0}).node;if(!d.node_ops.readdir)throw new E.ErrnoError(54);return d.node_ops.readdir(d)},unlink:c=>{var d=E.lookupPath(c,{parent:!0}).node;if(!d)throw new E.ErrnoError(44);var h=me.basename(c),f=E.lookupNode(d,h),I=E.mayDelete(d,h,!1);if(I)throw new E.ErrnoError(I);if(!d.node_ops.unlink)throw new E.ErrnoError(63);if(E.isMountpoint(f))throw new E.ErrnoError(10);d.node_ops.unlink(d,h),E.destroyNode(f)},readlink:c=>{var d=E.lookupPath(c).node;if(!d)throw new E.ErrnoError(44);if(!d.node_ops.readlink)throw new E.ErrnoError(28);return Qt.resolve(E.getPath(d.parent),d.node_ops.readlink(d))},stat:(c,d)=>{var h=E.lookupPath(c,{follow:!d}).node;if(!h)throw new E.ErrnoError(44);if(!h.node_ops.getattr)throw new E.ErrnoError(63);return h.node_ops.getattr(h)},lstat:c=>E.stat(c,!0),chmod:(c,d,h)=>{var f;if(typeof c=="string"?f=E.lookupPath(c,{follow:!h}).node:f=c,!f.node_ops.setattr)throw new E.ErrnoError(63);f.node_ops.setattr(f,{mode:4095&d|-4096&f.mode,timestamp:Date.now()})},lchmod:(c,d)=>{E.chmod(c,d,!0)},fchmod:(c,d)=>{var h=E.getStreamChecked(c);E.chmod(h.node,d)},chown:(c,d,h,f)=>{var I;if(typeof c=="string"?I=E.lookupPath(c,{follow:!f}).node:I=c,!I.node_ops.setattr)throw new E.ErrnoError(63);I.node_ops.setattr(I,{timestamp:Date.now()})},lchown:(c,d,h)=>{E.chown(c,d,h,!0)},fchown:(c,d,h)=>{var f=E.getStreamChecked(c);E.chown(f.node,d,h)},truncate:(c,d)=>{if(d<0)throw new E.ErrnoError(28);var h;if(typeof c=="string"?h=E.lookupPath(c,{follow:!0}).node:h=c,!h.node_ops.setattr)throw new E.ErrnoError(63);if(E.isDir(h.mode))throw new E.ErrnoError(31);if(!E.isFile(h.mode))throw new E.ErrnoError(28);var f=E.nodePermissions(h,"w");if(f)throw new E.ErrnoError(f);h.node_ops.setattr(h,{size:d,timestamp:Date.now()})},ftruncate:(c,d)=>{var h=E.getStreamChecked(c);if(!(2097155&h.flags))throw new E.ErrnoError(28);E.truncate(h.node,d)},utime:(c,d,h)=>{var f=E.lookupPath(c,{follow:!0}).node;f.node_ops.setattr(f,{timestamp:Math.max(d,h)})},open:(c,d,h)=>{if(c==="")throw new E.ErrnoError(44);var f;if(h=h===void 0?438:h,h=64&(d=typeof d=="string"?function(v){var U={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[v];if(U===void 0)throw new Error(`Unknown file open mode: ${v}`);return U}(d):d)?4095&h|32768:0,typeof c=="object")f=c;else{c=me.normalize(c);try{f=E.lookupPath(c,{follow:!(131072&d)}).node}catch(v){}}var I=!1;if(64&d)if(f){if(128&d)throw new E.ErrnoError(20)}else f=E.mknod(c,h,0),I=!0;if(!f)throw new E.ErrnoError(44);if(E.isChrdev(f.mode)&&(d&=-513),65536&d&&!E.isDir(f.mode))throw new E.ErrnoError(54);if(!I){var b=E.mayOpen(f,d);if(b)throw new E.ErrnoError(b)}512&d&&!I&&E.truncate(f,0),d&=-131713;var R=E.createStream({node:f,path:E.getPath(f),flags:d,seekable:!0,position:0,stream_ops:f.stream_ops,ungotten:[],error:!1});return R.stream_ops.open&&R.stream_ops.open(R),!o.logReadFiles||1&d||(E.readFiles||(E.readFiles={}),c in E.readFiles||(E.readFiles[c]=1)),R},close:c=>{if(E.isClosed(c))throw new E.ErrnoError(8);c.getdents&&(c.getdents=null);try{c.stream_ops.close&&c.stream_ops.close(c)}catch(d){throw d}finally{E.closeStream(c.fd)}c.fd=null},isClosed:c=>c.fd===null,llseek:(c,d,h)=>{if(E.isClosed(c))throw new E.ErrnoError(8);if(!c.seekable||!c.stream_ops.llseek)throw new E.ErrnoError(70);if(h!=0&&h!=1&&h!=2)throw new E.ErrnoError(28);return c.position=c.stream_ops.llseek(c,d,h),c.ungotten=[],c.position},read:(c,d,h,f,I)=>{if(f<0||I<0)throw new E.ErrnoError(28);if(E.isClosed(c))throw new E.ErrnoError(8);if((2097155&c.flags)==1)throw new E.ErrnoError(8);if(E.isDir(c.node.mode))throw new E.ErrnoError(31);if(!c.stream_ops.read)throw new E.ErrnoError(28);var b=I!==void 0;if(b){if(!c.seekable)throw new E.ErrnoError(70)}else I=c.position;var R=c.stream_ops.read(c,d,h,f,I);return b||(c.position+=R),R},write:(c,d,h,f,I,b)=>{if(f<0||I<0)throw new E.ErrnoError(28);if(E.isClosed(c))throw new E.ErrnoError(8);if(!(2097155&c.flags))throw new E.ErrnoError(8);if(E.isDir(c.node.mode))throw new E.ErrnoError(31);if(!c.stream_ops.write)throw new E.ErrnoError(28);c.seekable&&1024&c.flags&&E.llseek(c,0,2);var R=I!==void 0;if(R){if(!c.seekable)throw new E.ErrnoError(70)}else I=c.position;var v=c.stream_ops.write(c,d,h,f,I,b);return R||(c.position+=v),v},allocate:(c,d,h)=>{if(E.isClosed(c))throw new E.ErrnoError(8);if(d<0||h<=0)throw new E.ErrnoError(28);if(!(2097155&c.flags))throw new E.ErrnoError(8);if(!E.isFile(c.node.mode)&&!E.isDir(c.node.mode))throw new E.ErrnoError(43);if(!c.stream_ops.allocate)throw new E.ErrnoError(138);c.stream_ops.allocate(c,d,h)},mmap:(c,d,h,f,I)=>{if(2&f&&!(2&I)&&(2097155&c.flags)!=2)throw new E.ErrnoError(2);if((2097155&c.flags)==1)throw new E.ErrnoError(2);if(!c.stream_ops.mmap)throw new E.ErrnoError(43);return c.stream_ops.mmap(c,d,h,f,I)},msync:(c,d,h,f,I)=>c.stream_ops.msync?c.stream_ops.msync(c,d,h,f,I):0,munmap:c=>0,ioctl:(c,d,h)=>{if(!c.stream_ops.ioctl)throw new E.ErrnoError(59);return c.stream_ops.ioctl(c,d,h)},readFile:(c,d={})=>{if(d.flags=d.flags||0,d.encoding=d.encoding||"binary",d.encoding!=="utf8"&&d.encoding!=="binary")throw new Error(`Invalid encoding type "${d.encoding}"`);var h,f=E.open(c,d.flags),I=E.stat(c).size,b=new Uint8Array(I);return E.read(f,b,0,I,0),d.encoding==="utf8"?h=Lt(b,0):d.encoding==="binary"&&(h=b),E.close(f),h},writeFile:(c,d,h={})=>{h.flags=h.flags||577;var f=E.open(c,h.flags,h.mode);if(typeof d=="string"){var I=new Uint8Array(Do(d)+1),b=wo(d,I,0,I.length);E.write(f,I,0,b,void 0,h.canOwn)}else{if(!ArrayBuffer.isView(d))throw new Error("Unsupported data type");E.write(f,d,0,d.byteLength,void 0,h.canOwn)}E.close(f)},cwd:()=>E.currentPath,chdir:c=>{var d=E.lookupPath(c,{follow:!0});if(d.node===null)throw new E.ErrnoError(44);if(!E.isDir(d.node.mode))throw new E.ErrnoError(54);var h=E.nodePermissions(d.node,"x");if(h)throw new E.ErrnoError(h);E.currentPath=d.path},createDefaultDirectories:()=>{E.mkdir("/tmp"),E.mkdir("/home"),E.mkdir("/home/web_user")},createDefaultDevices:()=>{E.mkdir("/dev"),E.registerDevice(E.makedev(1,3),{read:()=>0,write:(f,I,b,R,v)=>R}),E.mkdev("/dev/null",E.makedev(1,3)),Ir.register(E.makedev(5,0),Ir.default_tty_ops),Ir.register(E.makedev(6,0),Ir.default_tty1_ops),E.mkdev("/dev/tty",E.makedev(5,0)),E.mkdev("/dev/tty1",E.makedev(6,0));var c=new Uint8Array(1024),d=0,h=()=>(d===0&&(d=Un(c).byteLength),c[--d]);E.createDevice("/dev","random",h),E.createDevice("/dev","urandom",h),E.mkdir("/dev/shm"),E.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{E.mkdir("/proc");var c=E.mkdir("/proc/self");E.mkdir("/proc/self/fd"),E.mount({mount:()=>{var d=E.createNode(c,"fd",16895,73);return d.node_ops={lookup:(h,f)=>{var I=+f,b=E.getStreamChecked(I),R={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>b.path}};return R.parent=R,R}},d}},{},"/proc/self/fd")},createStandardStreams:()=>{o.stdin?E.createDevice("/dev","stdin",o.stdin):E.symlink("/dev/tty","/dev/stdin"),o.stdout?E.createDevice("/dev","stdout",null,o.stdout):E.symlink("/dev/tty","/dev/stdout"),o.stderr?E.createDevice("/dev","stderr",null,o.stderr):E.symlink("/dev/tty1","/dev/stderr"),E.open("/dev/stdin",0),E.open("/dev/stdout",1),E.open("/dev/stderr",1)},ensureErrnoError:()=>{E.ErrnoError||(E.ErrnoError=function(c,d){this.name="ErrnoError",this.node=d,this.setErrno=function(h){this.errno=h},this.setErrno(c),this.message="FS error"},E.ErrnoError.prototype=new Error,E.ErrnoError.prototype.constructor=E.ErrnoError,[44].forEach(c=>{E.genericErrors[c]=new E.ErrnoError(c),E.genericErrors[c].stack="<generic error, no stack>"}))},staticInit:()=>{E.ensureErrnoError(),E.nameTable=new Array(4096),E.mount(j,{},"/"),E.createDefaultDirectories(),E.createDefaultDevices(),E.createSpecialDirectories(),E.filesystems={MEMFS:j}},init:(c,d,h)=>{E.init.initialized=!0,E.ensureErrnoError(),o.stdin=c||o.stdin,o.stdout=d||o.stdout,o.stderr=h||o.stderr,E.createStandardStreams()},quit:()=>{E.init.initialized=!1;for(var c=0;c<E.streams.length;c++){var d=E.streams[c];d&&E.close(d)}},findObject:(c,d)=>{var h=E.analyzePath(c,d);return h.exists?h.object:null},analyzePath:(c,d)=>{try{c=(f=E.lookupPath(c,{follow:!d})).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 f=E.lookupPath(c,{parent:!0});h.parentExists=!0,h.parentPath=f.path,h.parentObject=f.node,h.name=me.basename(c),f=E.lookupPath(c,{follow:!d}),h.exists=!0,h.path=f.path,h.object=f.node,h.name=f.node.name,h.isRoot=f.path==="/"}catch(I){h.error=I.errno}return h},createPath:(c,d,h,f)=>{c=typeof c=="string"?c:E.getPath(c);for(var I=d.split("/").reverse();I.length;){var b=I.pop();if(b){var R=me.join2(c,b);try{E.mkdir(R)}catch(v){}c=R}}return R},createFile:(c,d,h,f,I)=>{var b=me.join2(typeof c=="string"?c:E.getPath(c),d),R=li(f,I);return E.create(b,R)},createDataFile:(c,d,h,f,I,b)=>{var R=d;c&&(c=typeof c=="string"?c:E.getPath(c),R=d?me.join2(c,d):c);var v=li(f,I),U=E.create(R,v);if(h){if(typeof h=="string"){for(var L=new Array(h.length),K=0,ae=h.length;K<ae;++K)L[K]=h.charCodeAt(K);h=L}E.chmod(U,146|v);var ce=E.open(U,577);E.write(ce,h,0,h.length,0,b),E.close(ce),E.chmod(U,v)}return U},createDevice:(c,d,h,f)=>{var I=me.join2(typeof c=="string"?c:E.getPath(c),d),b=li(!!h,!!f);E.createDevice.major||(E.createDevice.major=64);var R=E.makedev(E.createDevice.major++,0);return E.registerDevice(R,{open:v=>{v.seekable=!1},close:v=>{f&&f.buffer&&f.buffer.length&&f(10)},read:(v,U,L,K,ae)=>{for(var ce=0,ne=0;ne<K;ne++){var Ce;try{Ce=h()}catch(Ve){throw new E.ErrnoError(29)}if(Ce===void 0&&ce===0)throw new E.ErrnoError(6);if(Ce==null)break;ce++,U[L+ne]=Ce}return ce&&(v.node.timestamp=Date.now()),ce},write:(v,U,L,K,ae)=>{for(var ce=0;ce<K;ce++)try{f(U[L+ce])}catch(ne){throw new E.ErrnoError(29)}return K&&(v.node.timestamp=Date.now()),ce}}),E.mkdev(I,b,R)},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=Rs(s(c.url),!0),c.usedBytes=c.contents.length}catch(d){throw new E.ErrnoError(29)}},createLazyFile:(c,d,h,f,I)=>{function b(){this.lengthKnown=!1,this.chunks=[]}if(b.prototype.get=function(ae){if(!(ae>this.length-1||ae<0)){var ce=ae%this.chunkSize,ne=ae/this.chunkSize|0;return this.getter(ne)[ce]}},b.prototype.setDataGetter=function(ae){this.getter=ae},b.prototype.cacheLength=function(){var ae=new XMLHttpRequest;if(ae.open("HEAD",h,!1),ae.send(null),!(ae.status>=200&&ae.status<300||ae.status===304))throw new Error("Couldn't load "+h+". Status: "+ae.status);var ce,ne=Number(ae.getResponseHeader("Content-length")),Ce=(ce=ae.getResponseHeader("Accept-Ranges"))&&ce==="bytes",Ve=(ce=ae.getResponseHeader("Content-Encoding"))&&ce==="gzip",Me=1048576;Ce||(Me=ne);var ot=this;ot.setDataGetter(et=>{var Et=et*Me,eo=(et+1)*Me-1;if(eo=Math.min(eo,ne-1),ot.chunks[et]===void 0&&(ot.chunks[et]=((ur,Vo)=>{if(ur>Vo)throw new Error("invalid range ("+ur+", "+Vo+") or no bytes requested!");if(Vo>ne-1)throw new Error("only "+ne+" bytes available! programmer error!");var mt=new XMLHttpRequest;if(mt.open("GET",h,!1),ne!==Me&&mt.setRequestHeader("Range","bytes="+ur+"-"+Vo),mt.responseType="arraybuffer",mt.overrideMimeType&&mt.overrideMimeType("text/plain; charset=x-user-defined"),mt.send(null),!(mt.status>=200&&mt.status<300||mt.status===304))throw new Error("Couldn't load "+h+". Status: "+mt.status);return mt.response!==void 0?new Uint8Array(mt.response||[]):Rs(mt.responseText||"",!0)})(Et,eo)),ot.chunks[et]===void 0)throw new Error("doXHR failed!");return ot.chunks[et]}),!Ve&&ne||(Me=ne=1,ne=this.getter(0).length,Me=ne,C("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=ne,this._chunkSize=Me,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!g)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var R=new b;Object.defineProperties(R,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var v={isDevice:!1,contents:R}}else v={isDevice:!1,url:h};var U=E.createFile(c,d,v,f,I);v.contents?U.contents=v.contents:v.url&&(U.contents=null,U.url=v.url),Object.defineProperties(U,{usedBytes:{get:function(){return this.contents.length}}});var L={};function K(ae,ce,ne,Ce,Ve){var Me=ae.node.contents;if(Ve>=Me.length)return 0;var ot=Math.min(Me.length-Ve,Ce);if(Me.slice)for(var et=0;et<ot;et++)ce[ne+et]=Me[Ve+et];else for(et=0;et<ot;et++)ce[ne+et]=Me.get(Ve+et);return ot}return Object.keys(U.stream_ops).forEach(ae=>{var ce=U.stream_ops[ae];L[ae]=function(){return E.forceLoadFile(U),ce.apply(null,arguments)}}),L.read=(ae,ce,ne,Ce,Ve)=>(E.forceLoadFile(U),K(ae,ce,ne,Ce,Ve)),L.mmap=(ae,ce,ne,Ce,Ve)=>{E.forceLoadFile(U);var Me=Fn();if(!Me)throw new E.ErrnoError(48);return K(ae,Z,Me,ce,ne),{ptr:Me,allocated:!0}},U.stream_ops=L,U}},ji=(c,d)=>c?Lt(ue,c,d):"",yt={DEFAULT_POLLMASK:5,calculateAt:function(c,d,h){if(me.isAbs(d))return d;var f;if(c===-100?f=E.cwd():f=yt.getStreamFromFD(c).path,d.length==0){if(!h)throw new E.ErrnoError(44);return f}return me.join2(f,d)},doStat:function(c,d,h){try{var f=c(d)}catch(v){if(v&&v.node&&me.normalize(d)!==me.normalize(E.getPath(v.node)))return-54;throw v}H[h>>2]=f.dev,H[h+4>>2]=f.mode,Pe[h+8>>2]=f.nlink,H[h+12>>2]=f.uid,H[h+16>>2]=f.gid,H[h+20>>2]=f.rdev,Ke=[f.size>>>0,(Ee=f.size,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[h+24>>2]=Ke[0],H[h+28>>2]=Ke[1],H[h+32>>2]=4096,H[h+36>>2]=f.blocks;var I=f.atime.getTime(),b=f.mtime.getTime(),R=f.ctime.getTime();return Ke=[Math.floor(I/1e3)>>>0,(Ee=Math.floor(I/1e3),+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[h+40>>2]=Ke[0],H[h+44>>2]=Ke[1],Pe[h+48>>2]=I%1e3*1e3,Ke=[Math.floor(b/1e3)>>>0,(Ee=Math.floor(b/1e3),+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[h+56>>2]=Ke[0],H[h+60>>2]=Ke[1],Pe[h+64>>2]=b%1e3*1e3,Ke=[Math.floor(R/1e3)>>>0,(Ee=Math.floor(R/1e3),+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[h+72>>2]=Ke[0],H[h+76>>2]=Ke[1],Pe[h+80>>2]=R%1e3*1e3,Ke=[f.ino>>>0,(Ee=f.ino,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[h+88>>2]=Ke[0],H[h+92>>2]=Ke[1],0},doMsync:function(c,d,h,f,I){if(!E.isFile(d.node.mode))throw new E.ErrnoError(43);if(2&f)return 0;var b=ue.slice(c,c+h);E.msync(d,b,I,h,f)},varargs:void 0,get:()=>(yt.varargs+=4,H[yt.varargs-4>>2]),getStr:c=>ji(c),getStreamFromFD:function(c){return E.getStreamChecked(c)}};function mi(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 Ec=void 0;function k(c){for(var d="",h=c;ue[h];)d+=Ec[ue[h++]];return d}var qi={},dr={},vs={},zi=void 0;function Ue(c){throw new zi(c)}var _c=void 0;function er(c){throw new _c(c)}function Gr(c,d,h){function f(v){var U=h(v);U.length!==c.length&&er("Mismatched type converter count");for(var L=0;L<c.length;++L)tr(c[L],U[L])}c.forEach(function(v){vs[v]=d});var I=new Array(d.length),b=[],R=0;d.forEach((v,U)=>{dr.hasOwnProperty(v)?I[U]=dr[v]:(b.push(v),qi.hasOwnProperty(v)||(qi[v]=[]),qi[v].push(()=>{I[U]=dr[v],++R===b.length&&f(I)}))}),b.length===0&&f(I)}function tr(c,d,h={}){if(!("argPackAdvance"in d))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(f,I,b={}){var R=I.name;if(f||Ue(`type "${R}" must have a positive integer typeid pointer`),dr.hasOwnProperty(f)){if(b.ignoreDuplicateRegistrations)return;Ue(`Cannot register type '${R}' twice`)}if(dr[f]=I,delete vs[f],qi.hasOwnProperty(f)){var v=qi[f];delete qi[f],v.forEach(U=>U())}}(c,d,h)}function Tc(c){if(!(this instanceof Sr)||!(c instanceof Sr))return!1;for(var d=this.$$.ptrType.registeredClass,h=this.$$.ptr,f=c.$$.ptrType.registeredClass,I=c.$$.ptr;d.baseClass;)h=d.upcast(h),d=d.baseClass;for(;f.baseClass;)I=f.upcast(I),f=f.baseClass;return d===f&&h===I}function $n(c){Ue(c.$$.ptrType.registeredClass.name+" instance already deleted")}var Mo=!1;function Ic(c){}function Sc(c){c.count.value-=1,c.count.value===0&&function(d){d.smartPtr?d.smartPtrType.rawDestructor(d.smartPtr):d.ptrType.registeredClass.rawDestructor(d.ptr)}(c)}function yc(c,d,h){if(d===h)return c;if(h.baseClass===void 0)return null;var f=yc(c,d,h.baseClass);return f===null?null:h.downcast(f)}var Oo={};function hl(){return Object.keys(Po).length}function pl(){var c=[];for(var d in Po)Po.hasOwnProperty(d)&&c.push(Po[d]);return c}var xo=[];function rr(){for(;xo.length;){var c=xo.pop();c.$$.deleteScheduled=!1,c.delete()}}var jr=void 0;function Ac(c){jr=c,xo.length&&jr&&jr(rr)}var Po={};function Ji(c,d){return d=function(h,f){for(f===void 0&&Ue("ptr should not be undefined");h.baseClass;)f=h.upcast(f),h=h.baseClass;return f}(c,d),Po[d]}function ko(c,d){return d.ptrType&&d.ptr||er("makeClassHandle requires ptr and ptrType"),!!d.smartPtrType!=!!d.smartPtr&&er("Both smartPtrType and smartPtr must be specified"),d.count={value:1},Xi(Object.create(c,{$$:{value:d}}))}function bc(c){var d=this.getPointee(c);if(!d)return this.destructor(c),null;var h=Ji(this.registeredClass,d);if(h!==void 0){if(h.$$.count.value===0)return h.$$.ptr=d,h.$$.smartPtr=c,h.clone();var f=h.clone();return this.destructor(c),f}function I(){return this.isSmartPointer?ko(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:d,smartPtrType:this,smartPtr:c}):ko(this.registeredClass.instancePrototype,{ptrType:this,ptr:c})}var b,R=this.registeredClass.getActualType(d),v=Oo[R];if(!v)return I.call(this);b=this.isConst?v.constPointerType:v.pointerType;var U=yc(d,this.registeredClass,b.registeredClass);return U===null?I.call(this):this.isSmartPointer?ko(b.registeredClass.instancePrototype,{ptrType:b,ptr:U,smartPtrType:this,smartPtr:c}):ko(b.registeredClass.instancePrototype,{ptrType:b,ptr:U})}var Xi=function(c){return typeof FinalizationRegistry=="undefined"?(Xi=d=>d,c):(Mo=new FinalizationRegistry(d=>{Sc(d.$$)}),Ic=d=>Mo.unregister(d),(Xi=d=>{var h=d.$$;if(h.smartPtr){var f={$$:h};Mo.register(d,f,d)}return d})(c))};function Rc(){if(this.$$.ptr||$n(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var c,d=Xi(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 d.$$.count.value+=1,d.$$.deleteScheduled=!1,d}function fl(){this.$$.ptr||$n(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ue("Object already scheduled for deletion"),Ic(this),Sc(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function vc(){return!this.$$.ptr}function Cc(){return this.$$.ptr||$n(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ue("Object already scheduled for deletion"),xo.push(this),xo.length===1&&jr&&jr(rr),this.$$.deleteScheduled=!0,this}function Sr(){}function Ut(c){if(c===void 0)return"_unknown";var d=(c=c.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return d>=48&&d<=57?`_${c}`:c}function Cs(c,d){return c=Ut(c),{[c]:function(){return d.apply(this,arguments)}}[c]}function Nc(c,d,h){if(c[d].overloadTable===void 0){var f=c[d];c[d]=function(){return c[d].overloadTable.hasOwnProperty(arguments.length)||Ue(`Function '${h}' called with an invalid number of arguments (${arguments.length}) - expects one of (${c[d].overloadTable})!`),c[d].overloadTable[arguments.length].apply(this,arguments)},c[d].overloadTable=[],c[d].overloadTable[f.argCount]=f}}function Ns(c,d,h,f,I,b,R,v){this.name=c,this.constructor=d,this.instancePrototype=h,this.rawDestructor=f,this.baseClass=I,this.getActualType=b,this.upcast=R,this.downcast=v,this.pureVirtualFunctions=[]}function Lo(c,d,h){for(;d!==h;)d.upcast||Ue(`Expected null or instance of ${h.name}, got an instance of ${d.name}`),c=d.upcast(c),d=d.baseClass;return c}function gl(c,d){if(d===null)return this.isReference&&Ue(`null is not a valid ${this.name}`),0;d.$$||Ue(`Cannot pass "${Os(d)}" as a ${this.name}`),d.$$.ptr||Ue(`Cannot pass deleted object as a pointer of type ${this.name}`);var h=d.$$.ptrType.registeredClass;return Lo(d.$$.ptr,h,this.registeredClass)}function El(c,d){var h;if(d===null)return this.isReference&&Ue(`null is not a valid ${this.name}`),this.isSmartPointer?(h=this.rawConstructor(),c!==null&&c.push(this.rawDestructor,h),h):0;d.$$||Ue(`Cannot pass "${Os(d)}" as a ${this.name}`),d.$$.ptr||Ue(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&d.$$.ptrType.isConst&&Ue(`Cannot convert argument of type ${d.$$.smartPtrType?d.$$.smartPtrType.name:d.$$.ptrType.name} to parameter type ${this.name}`);var f=d.$$.ptrType.registeredClass;if(h=Lo(d.$$.ptr,f,this.registeredClass),this.isSmartPointer)switch(d.$$.smartPtr===void 0&&Ue("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:d.$$.smartPtrType===this?h=d.$$.smartPtr:Ue(`Cannot convert argument of type ${d.$$.smartPtrType?d.$$.smartPtrType.name:d.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:h=d.$$.smartPtr;break;case 2:if(d.$$.smartPtrType===this)h=d.$$.smartPtr;else{var I=d.clone();h=this.rawShare(h,Zi.toHandle(function(){I.delete()})),c!==null&&c.push(this.rawDestructor,h)}break;default:Ue("Unsupporting sharing policy")}return h}function Dc(c,d){if(d===null)return this.isReference&&Ue(`null is not a valid ${this.name}`),0;d.$$||Ue(`Cannot pass "${Os(d)}" as a ${this.name}`),d.$$.ptr||Ue(`Cannot pass deleted object as a pointer of type ${this.name}`),d.$$.ptrType.isConst&&Ue(`Cannot convert argument of type ${d.$$.ptrType.name} to parameter type ${this.name}`);var h=d.$$.ptrType.registeredClass;return Lo(d.$$.ptr,h,this.registeredClass)}function Uo(c){return this.fromWireType(H[c>>2])}function _l(c){return this.rawGetPointee&&(c=this.rawGetPointee(c)),c}function wc(c){this.rawDestructor&&this.rawDestructor(c)}function Tl(c){c!==null&&c.delete()}function yr(c,d,h,f,I,b,R,v,U,L,K){this.name=c,this.registeredClass=d,this.isReference=h,this.isConst=f,this.isSmartPointer=I,this.pointeeType=b,this.sharingPolicy=R,this.rawGetPointee=v,this.rawConstructor=U,this.rawShare=L,this.rawDestructor=K,I||d.baseClass!==void 0?this.toWireType=El:f?(this.toWireType=gl,this.destructorFunction=null):(this.toWireType=Dc,this.destructorFunction=null)}var Ds=[],Mc=c=>{var d=Ds[c];return d||(c>=Ds.length&&(Ds.length=c+1),Ds[c]=d=Pn.get(c)),d},Il=(c,d,h)=>c.includes("j")?((f,I,b)=>{var R=o["dynCall_"+f];return b&&b.length?R.apply(null,[I].concat(b)):R.call(null,I)})(c,d,h):Mc(d).apply(null,h);function Qi(c,d){var h,f,I,b=(c=k(c)).includes("j")?(h=c,f=d,I=[],function(){return I.length=0,Object.assign(I,arguments),Il(h,f,I)}):Mc(d);return typeof b!="function"&&Ue(`unknown function pointer with signature ${c}: ${d}`),b}var Oc=void 0;function ws(c){var d=br(c),h=k(d);return Nt(d),h}function Ms(c,d){var h=[],f={};throw d.forEach(function I(b){f[b]||dr[b]||(vs[b]?vs[b].forEach(I):(h.push(b),f[b]=!0))}),new Oc(`${c}: `+h.map(ws).join([", "]))}function Bn(c,d){for(var h=[],f=0;f<c;f++)h.push(Pe[d+4*f>>2]);return h}function xc(c){for(;c.length;){var d=c.pop();c.pop()(d)}}function Hn(c,d){if(!(c instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof c} which is not a function`);var h=Cs(c.name||"unknownFunctionName",function(){});h.prototype=c.prototype;var f=new h,I=c.apply(f,d);return I instanceof Object?I:f}function Yi(c,d,h,f,I,b){var R=d.length;R<2&&Ue("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var v=d[1]!==null&&h!==null,U=!1,L=1;L<d.length;++L)if(d[L]!==null&&d[L].destructorFunction===void 0){U=!0;break}var K=d[0].name!=="void",ae="",ce="";for(L=0;L<R-2;++L)ae+=(L!==0?", ":"")+"arg"+L,ce+=(L!==0?", ":"")+"arg"+L+"Wired";var ne=`
52
+ `),!d)return null;$n=vs(d,!0)}return $n.shift()})()},put_char:function(c,d){d===null||d===10?(C(Lt(c.output,0)),c.output=[]):d!=0&&c.output.push(d)},fsync:function(c){c.output&&c.output.length>0&&(C(Lt(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,d,h){return 0},ioctl_tiocgwinsz:function(c){return[24,80]}},default_tty1_ops:{put_char:function(c,d){d===null||d===10?(N(Lt(c.output,0)),c.output=[]):d!=0&&c.output.push(d)},fsync:function(c){c.output&&c.output.length>0&&(N(Lt(c.output,0)),c.output=[])}}},Bn=c=>{Hr()},j={ops_table:null,mount:c=>j.createNode(null,"/",16895,0),createNode(c,d,h,f){if(E.isBlkdev(h)||E.isFIFO(h))throw new E.ErrnoError(63);j.ops_table||(j.ops_table={dir:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr,lookup:j.node_ops.lookup,mknod:j.node_ops.mknod,rename:j.node_ops.rename,unlink:j.node_ops.unlink,rmdir:j.node_ops.rmdir,readdir:j.node_ops.readdir,symlink:j.node_ops.symlink},stream:{llseek:j.stream_ops.llseek}},file:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr},stream:{llseek:j.stream_ops.llseek,read:j.stream_ops.read,write:j.stream_ops.write,allocate:j.stream_ops.allocate,mmap:j.stream_ops.mmap,msync:j.stream_ops.msync}},link:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr,readlink:j.node_ops.readlink},stream:{}},chrdev:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr},stream:E.chrdev_stream_ops}});var I=E.createNode(c,d,h,f);return E.isDir(I.mode)?(I.node_ops=j.ops_table.dir.node,I.stream_ops=j.ops_table.dir.stream,I.contents={}):E.isFile(I.mode)?(I.node_ops=j.ops_table.file.node,I.stream_ops=j.ops_table.file.stream,I.usedBytes=0,I.contents=null):E.isLink(I.mode)?(I.node_ops=j.ops_table.link.node,I.stream_ops=j.ops_table.link.stream):E.isChrdev(I.mode)&&(I.node_ops=j.ops_table.chrdev.node,I.stream_ops=j.ops_table.chrdev.stream),I.timestamp=Date.now(),c&&(c.contents[d]=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,d){var h=c.contents?c.contents.length:0;if(!(h>=d)){d=Math.max(d,h*(h<1048576?2:1.125)>>>0),h!=0&&(d=Math.max(d,256));var f=c.contents;c.contents=new Uint8Array(d),c.usedBytes>0&&c.contents.set(f.subarray(0,c.usedBytes),0)}},resizeFileStorage(c,d){if(c.usedBytes!=d)if(d==0)c.contents=null,c.usedBytes=0;else{var h=c.contents;c.contents=new Uint8Array(d),h&&c.contents.set(h.subarray(0,Math.min(d,c.usedBytes))),c.usedBytes=d}},node_ops:{getattr(c){var d={};return d.dev=E.isChrdev(c.mode)?c.id:1,d.ino=c.id,d.mode=c.mode,d.nlink=1,d.uid=0,d.gid=0,d.rdev=c.rdev,E.isDir(c.mode)?d.size=4096:E.isFile(c.mode)?d.size=c.usedBytes:E.isLink(c.mode)?d.size=c.link.length:d.size=0,d.atime=new Date(c.timestamp),d.mtime=new Date(c.timestamp),d.ctime=new Date(c.timestamp),d.blksize=4096,d.blocks=Math.ceil(d.size/d.blksize),d},setattr(c,d){d.mode!==void 0&&(c.mode=d.mode),d.timestamp!==void 0&&(c.timestamp=d.timestamp),d.size!==void 0&&j.resizeFileStorage(c,d.size)},lookup(c,d){throw E.genericErrors[44]},mknod:(c,d,h,f)=>j.createNode(c,d,h,f),rename(c,d,h){if(E.isDir(c.mode)){var f;try{f=E.lookupNode(d,h)}catch(b){}if(f)for(var I in f.contents)throw new E.ErrnoError(55)}delete c.parent.contents[c.name],c.parent.timestamp=Date.now(),c.name=h,d.contents[h]=c,d.timestamp=c.parent.timestamp,c.parent=d},unlink(c,d){delete c.contents[d],c.timestamp=Date.now()},rmdir(c,d){var h=E.lookupNode(c,d);for(var f in h.contents)throw new E.ErrnoError(55);delete c.contents[d],c.timestamp=Date.now()},readdir(c){var d=[".",".."];for(var h in c.contents)c.contents.hasOwnProperty(h)&&d.push(h);return d},symlink(c,d,h){var f=j.createNode(c,d,41471,0);return f.link=h,f},readlink(c){if(!E.isLink(c.mode))throw new E.ErrnoError(28);return c.link}},stream_ops:{read(c,d,h,f,I){var b=c.node.contents;if(I>=c.node.usedBytes)return 0;var R=Math.min(c.node.usedBytes-I,f);if(R>8&&b.subarray)d.set(b.subarray(I,I+R),h);else for(var v=0;v<R;v++)d[h+v]=b[I+v];return R},write(c,d,h,f,I,b){if(!f)return 0;var R=c.node;if(R.timestamp=Date.now(),d.subarray&&(!R.contents||R.contents.subarray)){if(b)return R.contents=d.subarray(h,h+f),R.usedBytes=f,f;if(R.usedBytes===0&&I===0)return R.contents=d.slice(h,h+f),R.usedBytes=f,f;if(I+f<=R.usedBytes)return R.contents.set(d.subarray(h,h+f),I),f}if(j.expandFileStorage(R,I+f),R.contents.subarray&&d.subarray)R.contents.set(d.subarray(h,h+f),I);else for(var v=0;v<f;v++)R.contents[I+v]=d[h+v];return R.usedBytes=Math.max(R.usedBytes,I+f),f},llseek(c,d,h){var f=d;if(h===1?f+=c.position:h===2&&E.isFile(c.node.mode)&&(f+=c.node.usedBytes),f<0)throw new E.ErrnoError(28);return f},allocate(c,d,h){j.expandFileStorage(c.node,d+h),c.node.usedBytes=Math.max(c.node.usedBytes,d+h)},mmap(c,d,h,f,I){if(!E.isFile(c.node.mode))throw new E.ErrnoError(43);var b,R,v=c.node.contents;if(2&I||v.buffer!==Z.buffer){if((h>0||h+d<v.length)&&(v=v.subarray?v.subarray(h,h+d):Array.prototype.slice.call(v,h,h+d)),R=!0,!(b=Bn()))throw new E.ErrnoError(48);Z.set(v,b)}else R=!1,b=v.byteOffset;return{ptr:b,allocated:R}},msync:(c,d,h,f,I)=>(j.stream_ops.write(c,d,0,f,h,!1),0)}},ll=(c,d,h,f)=>{var I=f?"":`al ${c}`;n(c,b=>{var R;R=`Loading data file "${c}" failed (no arrayBuffer).`,b||Hr(R),d(new Uint8Array(b)),I&&No()},b=>{if(!h)throw`Loading data file "${c}" failed.`;h()}),I&&ie()},ml=o.preloadPlugins||[];function li(c,d){var h=0;return c&&(h|=365),d&&(h|=146),h}var E={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(c,d={})=>{if(!(c=Qt.resolve(c)))return{path:"",node:null};if((d=Object.assign({follow_mount:!0,recurse_count:0},d)).recurse_count>8)throw new E.ErrnoError(32);for(var h=c.split("/").filter(L=>!!L),f=E.root,I="/",b=0;b<h.length;b++){var R=b===h.length-1;if(R&&d.parent)break;if(f=E.lookupNode(f,h[b]),I=me.join2(I,h[b]),E.isMountpoint(f)&&(!R||R&&d.follow_mount)&&(f=f.mounted.root),!R||d.follow)for(var v=0;E.isLink(f.mode);){var V=E.readlink(I);if(I=Qt.resolve(me.dirname(I),V),f=E.lookupPath(I,{recurse_count:d.recurse_count+1}).node,v++>40)throw new E.ErrnoError(32)}}return{path:I,node:f}},getPath:c=>{for(var d;;){if(E.isRoot(c)){var h=c.mount.mountpoint;return d?h[h.length-1]!=="/"?`${h}/${d}`:h+d:h}d=d?`${c.name}/${d}`:c.name,c=c.parent}},hashName:(c,d)=>{for(var h=0,f=0;f<d.length;f++)h=(h<<5)-h+d.charCodeAt(f)|0;return(c+h>>>0)%E.nameTable.length},hashAddNode:c=>{var d=E.hashName(c.parent.id,c.name);c.name_next=E.nameTable[d],E.nameTable[d]=c},hashRemoveNode:c=>{var d=E.hashName(c.parent.id,c.name);if(E.nameTable[d]===c)E.nameTable[d]=c.name_next;else for(var h=E.nameTable[d];h;){if(h.name_next===c){h.name_next=c.name_next;break}h=h.name_next}},lookupNode:(c,d)=>{var h=E.mayLookup(c);if(h)throw new E.ErrnoError(h,c);for(var f=E.hashName(c.id,d),I=E.nameTable[f];I;I=I.name_next){var b=I.name;if(I.parent.id===c.id&&b===d)return I}return E.lookup(c,d)},createNode:(c,d,h,f)=>{var I=new E.FSNode(c,d,h,f);return E.hashAddNode(I),I},destroyNode:c=>{E.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 d=["r","w","rw"][3&c];return 512&c&&(d+="w"),d},nodePermissions:(c,d)=>E.ignorePermissions||(!d.includes("r")||292&c.mode)&&(!d.includes("w")||146&c.mode)&&(!d.includes("x")||73&c.mode)?0:2,mayLookup:c=>{var d=E.nodePermissions(c,"x");return d||(c.node_ops.lookup?0:2)},mayCreate:(c,d)=>{try{return E.lookupNode(c,d),20}catch(h){}return E.nodePermissions(c,"wx")},mayDelete:(c,d,h)=>{var f;try{f=E.lookupNode(c,d)}catch(b){return b.errno}var I=E.nodePermissions(c,"wx");if(I)return I;if(h){if(!E.isDir(f.mode))return 54;if(E.isRoot(f)||E.getPath(f)===E.cwd())return 10}else if(E.isDir(f.mode))return 31;return 0},mayOpen:(c,d)=>c?E.isLink(c.mode)?32:E.isDir(c.mode)&&(E.flagsToPermissionString(d)!=="r"||512&d)?31:E.nodePermissions(c,E.flagsToPermissionString(d)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var c=0;c<=E.MAX_OPEN_FDS;c++)if(!E.streams[c])return c;throw new E.ErrnoError(33)},getStreamChecked:c=>{var d=E.getStream(c);if(!d)throw new E.ErrnoError(8);return d},getStream:c=>E.streams[c],createStream:(c,d=-1)=>(E.FSStream||(E.FSStream=function(){this.shared={}},E.FSStream.prototype={},Object.defineProperties(E.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 E.FSStream,c),d==-1&&(d=E.nextfd()),c.fd=d,E.streams[d]=c,c),closeStream:c=>{E.streams[c]=null},chrdev_stream_ops:{open:c=>{var d=E.getDevice(c.node.rdev);c.stream_ops=d.stream_ops,c.stream_ops.open&&c.stream_ops.open(c)},llseek:()=>{throw new E.ErrnoError(70)}},major:c=>c>>8,minor:c=>255&c,makedev:(c,d)=>c<<8|d,registerDevice:(c,d)=>{E.devices[c]={stream_ops:d}},getDevice:c=>E.devices[c],getMounts:c=>{for(var d=[],h=[c];h.length;){var f=h.pop();d.push(f),h.push.apply(h,f.mounts)}return d},syncfs:(c,d)=>{typeof c=="function"&&(d=c,c=!1),E.syncFSRequests++,E.syncFSRequests>1&&N(`warning: ${E.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var h=E.getMounts(E.root.mount),f=0;function I(R){return E.syncFSRequests--,d(R)}function b(R){if(R)return b.errored?void 0:(b.errored=!0,I(R));++f>=h.length&&I(null)}h.forEach(R=>{if(!R.type.syncfs)return b(null);R.type.syncfs(R,c,b)})},mount:(c,d,h)=>{var f,I=h==="/",b=!h;if(I&&E.root)throw new E.ErrnoError(10);if(!I&&!b){var R=E.lookupPath(h,{follow_mount:!1});if(h=R.path,f=R.node,E.isMountpoint(f))throw new E.ErrnoError(10);if(!E.isDir(f.mode))throw new E.ErrnoError(54)}var v={type:c,opts:d,mountpoint:h,mounts:[]},V=c.mount(v);return V.mount=v,v.root=V,I?E.root=V:f&&(f.mounted=v,f.mount&&f.mount.mounts.push(v)),V},unmount:c=>{var d=E.lookupPath(c,{follow_mount:!1});if(!E.isMountpoint(d.node))throw new E.ErrnoError(28);var h=d.node,f=h.mounted,I=E.getMounts(f);Object.keys(E.nameTable).forEach(R=>{for(var v=E.nameTable[R];v;){var V=v.name_next;I.includes(v.mount)&&E.destroyNode(v),v=V}}),h.mounted=null;var b=h.mount.mounts.indexOf(f);h.mount.mounts.splice(b,1)},lookup:(c,d)=>c.node_ops.lookup(c,d),mknod:(c,d,h)=>{var f=E.lookupPath(c,{parent:!0}).node,I=me.basename(c);if(!I||I==="."||I==="..")throw new E.ErrnoError(28);var b=E.mayCreate(f,I);if(b)throw new E.ErrnoError(b);if(!f.node_ops.mknod)throw new E.ErrnoError(63);return f.node_ops.mknod(f,I,d,h)},create:(c,d)=>(d=d!==void 0?d:438,d&=4095,d|=32768,E.mknod(c,d,0)),mkdir:(c,d)=>(d=d!==void 0?d:511,d&=1023,d|=16384,E.mknod(c,d,0)),mkdirTree:(c,d)=>{for(var h=c.split("/"),f="",I=0;I<h.length;++I)if(h[I]){f+="/"+h[I];try{E.mkdir(f,d)}catch(b){if(b.errno!=20)throw b}}},mkdev:(c,d,h)=>(h===void 0&&(h=d,d=438),d|=8192,E.mknod(c,d,h)),symlink:(c,d)=>{if(!Qt.resolve(c))throw new E.ErrnoError(44);var h=E.lookupPath(d,{parent:!0}).node;if(!h)throw new E.ErrnoError(44);var f=me.basename(d),I=E.mayCreate(h,f);if(I)throw new E.ErrnoError(I);if(!h.node_ops.symlink)throw new E.ErrnoError(63);return h.node_ops.symlink(h,f,c)},rename:(c,d)=>{var h,f,I=me.dirname(c),b=me.dirname(d),R=me.basename(c),v=me.basename(d);if(h=E.lookupPath(c,{parent:!0}).node,f=E.lookupPath(d,{parent:!0}).node,!h||!f)throw new E.ErrnoError(44);if(h.mount!==f.mount)throw new E.ErrnoError(75);var V,L=E.lookupNode(h,R),ee=Qt.relative(c,b);if(ee.charAt(0)!==".")throw new E.ErrnoError(28);if((ee=Qt.relative(d,I)).charAt(0)!==".")throw new E.ErrnoError(55);try{V=E.lookupNode(f,v)}catch(ne){}if(L!==V){var ae=E.isDir(L.mode),ce=E.mayDelete(h,R,ae);if(ce)throw new E.ErrnoError(ce);if(ce=V?E.mayDelete(f,v,ae):E.mayCreate(f,v))throw new E.ErrnoError(ce);if(!h.node_ops.rename)throw new E.ErrnoError(63);if(E.isMountpoint(L)||V&&E.isMountpoint(V))throw new E.ErrnoError(10);if(f!==h&&(ce=E.nodePermissions(h,"w")))throw new E.ErrnoError(ce);E.hashRemoveNode(L);try{h.node_ops.rename(L,f,v)}catch(ne){throw ne}finally{E.hashAddNode(L)}}},rmdir:c=>{var d=E.lookupPath(c,{parent:!0}).node,h=me.basename(c),f=E.lookupNode(d,h),I=E.mayDelete(d,h,!0);if(I)throw new E.ErrnoError(I);if(!d.node_ops.rmdir)throw new E.ErrnoError(63);if(E.isMountpoint(f))throw new E.ErrnoError(10);d.node_ops.rmdir(d,h),E.destroyNode(f)},readdir:c=>{var d=E.lookupPath(c,{follow:!0}).node;if(!d.node_ops.readdir)throw new E.ErrnoError(54);return d.node_ops.readdir(d)},unlink:c=>{var d=E.lookupPath(c,{parent:!0}).node;if(!d)throw new E.ErrnoError(44);var h=me.basename(c),f=E.lookupNode(d,h),I=E.mayDelete(d,h,!1);if(I)throw new E.ErrnoError(I);if(!d.node_ops.unlink)throw new E.ErrnoError(63);if(E.isMountpoint(f))throw new E.ErrnoError(10);d.node_ops.unlink(d,h),E.destroyNode(f)},readlink:c=>{var d=E.lookupPath(c).node;if(!d)throw new E.ErrnoError(44);if(!d.node_ops.readlink)throw new E.ErrnoError(28);return Qt.resolve(E.getPath(d.parent),d.node_ops.readlink(d))},stat:(c,d)=>{var h=E.lookupPath(c,{follow:!d}).node;if(!h)throw new E.ErrnoError(44);if(!h.node_ops.getattr)throw new E.ErrnoError(63);return h.node_ops.getattr(h)},lstat:c=>E.stat(c,!0),chmod:(c,d,h)=>{var f;if(typeof c=="string"?f=E.lookupPath(c,{follow:!h}).node:f=c,!f.node_ops.setattr)throw new E.ErrnoError(63);f.node_ops.setattr(f,{mode:4095&d|-4096&f.mode,timestamp:Date.now()})},lchmod:(c,d)=>{E.chmod(c,d,!0)},fchmod:(c,d)=>{var h=E.getStreamChecked(c);E.chmod(h.node,d)},chown:(c,d,h,f)=>{var I;if(typeof c=="string"?I=E.lookupPath(c,{follow:!f}).node:I=c,!I.node_ops.setattr)throw new E.ErrnoError(63);I.node_ops.setattr(I,{timestamp:Date.now()})},lchown:(c,d,h)=>{E.chown(c,d,h,!0)},fchown:(c,d,h)=>{var f=E.getStreamChecked(c);E.chown(f.node,d,h)},truncate:(c,d)=>{if(d<0)throw new E.ErrnoError(28);var h;if(typeof c=="string"?h=E.lookupPath(c,{follow:!0}).node:h=c,!h.node_ops.setattr)throw new E.ErrnoError(63);if(E.isDir(h.mode))throw new E.ErrnoError(31);if(!E.isFile(h.mode))throw new E.ErrnoError(28);var f=E.nodePermissions(h,"w");if(f)throw new E.ErrnoError(f);h.node_ops.setattr(h,{size:d,timestamp:Date.now()})},ftruncate:(c,d)=>{var h=E.getStreamChecked(c);if(!(2097155&h.flags))throw new E.ErrnoError(28);E.truncate(h.node,d)},utime:(c,d,h)=>{var f=E.lookupPath(c,{follow:!0}).node;f.node_ops.setattr(f,{timestamp:Math.max(d,h)})},open:(c,d,h)=>{if(c==="")throw new E.ErrnoError(44);var f;if(h=h===void 0?438:h,h=64&(d=typeof d=="string"?function(v){var V={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[v];if(V===void 0)throw new Error(`Unknown file open mode: ${v}`);return V}(d):d)?4095&h|32768:0,typeof c=="object")f=c;else{c=me.normalize(c);try{f=E.lookupPath(c,{follow:!(131072&d)}).node}catch(v){}}var I=!1;if(64&d)if(f){if(128&d)throw new E.ErrnoError(20)}else f=E.mknod(c,h,0),I=!0;if(!f)throw new E.ErrnoError(44);if(E.isChrdev(f.mode)&&(d&=-513),65536&d&&!E.isDir(f.mode))throw new E.ErrnoError(54);if(!I){var b=E.mayOpen(f,d);if(b)throw new E.ErrnoError(b)}512&d&&!I&&E.truncate(f,0),d&=-131713;var R=E.createStream({node:f,path:E.getPath(f),flags:d,seekable:!0,position:0,stream_ops:f.stream_ops,ungotten:[],error:!1});return R.stream_ops.open&&R.stream_ops.open(R),!o.logReadFiles||1&d||(E.readFiles||(E.readFiles={}),c in E.readFiles||(E.readFiles[c]=1)),R},close:c=>{if(E.isClosed(c))throw new E.ErrnoError(8);c.getdents&&(c.getdents=null);try{c.stream_ops.close&&c.stream_ops.close(c)}catch(d){throw d}finally{E.closeStream(c.fd)}c.fd=null},isClosed:c=>c.fd===null,llseek:(c,d,h)=>{if(E.isClosed(c))throw new E.ErrnoError(8);if(!c.seekable||!c.stream_ops.llseek)throw new E.ErrnoError(70);if(h!=0&&h!=1&&h!=2)throw new E.ErrnoError(28);return c.position=c.stream_ops.llseek(c,d,h),c.ungotten=[],c.position},read:(c,d,h,f,I)=>{if(f<0||I<0)throw new E.ErrnoError(28);if(E.isClosed(c))throw new E.ErrnoError(8);if((2097155&c.flags)==1)throw new E.ErrnoError(8);if(E.isDir(c.node.mode))throw new E.ErrnoError(31);if(!c.stream_ops.read)throw new E.ErrnoError(28);var b=I!==void 0;if(b){if(!c.seekable)throw new E.ErrnoError(70)}else I=c.position;var R=c.stream_ops.read(c,d,h,f,I);return b||(c.position+=R),R},write:(c,d,h,f,I,b)=>{if(f<0||I<0)throw new E.ErrnoError(28);if(E.isClosed(c))throw new E.ErrnoError(8);if(!(2097155&c.flags))throw new E.ErrnoError(8);if(E.isDir(c.node.mode))throw new E.ErrnoError(31);if(!c.stream_ops.write)throw new E.ErrnoError(28);c.seekable&&1024&c.flags&&E.llseek(c,0,2);var R=I!==void 0;if(R){if(!c.seekable)throw new E.ErrnoError(70)}else I=c.position;var v=c.stream_ops.write(c,d,h,f,I,b);return R||(c.position+=v),v},allocate:(c,d,h)=>{if(E.isClosed(c))throw new E.ErrnoError(8);if(d<0||h<=0)throw new E.ErrnoError(28);if(!(2097155&c.flags))throw new E.ErrnoError(8);if(!E.isFile(c.node.mode)&&!E.isDir(c.node.mode))throw new E.ErrnoError(43);if(!c.stream_ops.allocate)throw new E.ErrnoError(138);c.stream_ops.allocate(c,d,h)},mmap:(c,d,h,f,I)=>{if(2&f&&!(2&I)&&(2097155&c.flags)!=2)throw new E.ErrnoError(2);if((2097155&c.flags)==1)throw new E.ErrnoError(2);if(!c.stream_ops.mmap)throw new E.ErrnoError(43);return c.stream_ops.mmap(c,d,h,f,I)},msync:(c,d,h,f,I)=>c.stream_ops.msync?c.stream_ops.msync(c,d,h,f,I):0,munmap:c=>0,ioctl:(c,d,h)=>{if(!c.stream_ops.ioctl)throw new E.ErrnoError(59);return c.stream_ops.ioctl(c,d,h)},readFile:(c,d={})=>{if(d.flags=d.flags||0,d.encoding=d.encoding||"binary",d.encoding!=="utf8"&&d.encoding!=="binary")throw new Error(`Invalid encoding type "${d.encoding}"`);var h,f=E.open(c,d.flags),I=E.stat(c).size,b=new Uint8Array(I);return E.read(f,b,0,I,0),d.encoding==="utf8"?h=Lt(b,0):d.encoding==="binary"&&(h=b),E.close(f),h},writeFile:(c,d,h={})=>{h.flags=h.flags||577;var f=E.open(c,h.flags,h.mode);if(typeof d=="string"){var I=new Uint8Array(Do(d)+1),b=wo(d,I,0,I.length);E.write(f,I,0,b,void 0,h.canOwn)}else{if(!ArrayBuffer.isView(d))throw new Error("Unsupported data type");E.write(f,d,0,d.byteLength,void 0,h.canOwn)}E.close(f)},cwd:()=>E.currentPath,chdir:c=>{var d=E.lookupPath(c,{follow:!0});if(d.node===null)throw new E.ErrnoError(44);if(!E.isDir(d.node.mode))throw new E.ErrnoError(54);var h=E.nodePermissions(d.node,"x");if(h)throw new E.ErrnoError(h);E.currentPath=d.path},createDefaultDirectories:()=>{E.mkdir("/tmp"),E.mkdir("/home"),E.mkdir("/home/web_user")},createDefaultDevices:()=>{E.mkdir("/dev"),E.registerDevice(E.makedev(1,3),{read:()=>0,write:(f,I,b,R,v)=>R}),E.mkdev("/dev/null",E.makedev(1,3)),Sr.register(E.makedev(5,0),Sr.default_tty_ops),Sr.register(E.makedev(6,0),Sr.default_tty1_ops),E.mkdev("/dev/tty",E.makedev(5,0)),E.mkdev("/dev/tty1",E.makedev(6,0));var c=new Uint8Array(1024),d=0,h=()=>(d===0&&(d=Fn(c).byteLength),c[--d]);E.createDevice("/dev","random",h),E.createDevice("/dev","urandom",h),E.mkdir("/dev/shm"),E.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{E.mkdir("/proc");var c=E.mkdir("/proc/self");E.mkdir("/proc/self/fd"),E.mount({mount:()=>{var d=E.createNode(c,"fd",16895,73);return d.node_ops={lookup:(h,f)=>{var I=+f,b=E.getStreamChecked(I),R={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>b.path}};return R.parent=R,R}},d}},{},"/proc/self/fd")},createStandardStreams:()=>{o.stdin?E.createDevice("/dev","stdin",o.stdin):E.symlink("/dev/tty","/dev/stdin"),o.stdout?E.createDevice("/dev","stdout",null,o.stdout):E.symlink("/dev/tty","/dev/stdout"),o.stderr?E.createDevice("/dev","stderr",null,o.stderr):E.symlink("/dev/tty1","/dev/stderr"),E.open("/dev/stdin",0),E.open("/dev/stdout",1),E.open("/dev/stderr",1)},ensureErrnoError:()=>{E.ErrnoError||(E.ErrnoError=function(c,d){this.name="ErrnoError",this.node=d,this.setErrno=function(h){this.errno=h},this.setErrno(c),this.message="FS error"},E.ErrnoError.prototype=new Error,E.ErrnoError.prototype.constructor=E.ErrnoError,[44].forEach(c=>{E.genericErrors[c]=new E.ErrnoError(c),E.genericErrors[c].stack="<generic error, no stack>"}))},staticInit:()=>{E.ensureErrnoError(),E.nameTable=new Array(4096),E.mount(j,{},"/"),E.createDefaultDirectories(),E.createDefaultDevices(),E.createSpecialDirectories(),E.filesystems={MEMFS:j}},init:(c,d,h)=>{E.init.initialized=!0,E.ensureErrnoError(),o.stdin=c||o.stdin,o.stdout=d||o.stdout,o.stderr=h||o.stderr,E.createStandardStreams()},quit:()=>{E.init.initialized=!1;for(var c=0;c<E.streams.length;c++){var d=E.streams[c];d&&E.close(d)}},findObject:(c,d)=>{var h=E.analyzePath(c,d);return h.exists?h.object:null},analyzePath:(c,d)=>{try{c=(f=E.lookupPath(c,{follow:!d})).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 f=E.lookupPath(c,{parent:!0});h.parentExists=!0,h.parentPath=f.path,h.parentObject=f.node,h.name=me.basename(c),f=E.lookupPath(c,{follow:!d}),h.exists=!0,h.path=f.path,h.object=f.node,h.name=f.node.name,h.isRoot=f.path==="/"}catch(I){h.error=I.errno}return h},createPath:(c,d,h,f)=>{c=typeof c=="string"?c:E.getPath(c);for(var I=d.split("/").reverse();I.length;){var b=I.pop();if(b){var R=me.join2(c,b);try{E.mkdir(R)}catch(v){}c=R}}return R},createFile:(c,d,h,f,I)=>{var b=me.join2(typeof c=="string"?c:E.getPath(c),d),R=li(f,I);return E.create(b,R)},createDataFile:(c,d,h,f,I,b)=>{var R=d;c&&(c=typeof c=="string"?c:E.getPath(c),R=d?me.join2(c,d):c);var v=li(f,I),V=E.create(R,v);if(h){if(typeof h=="string"){for(var L=new Array(h.length),ee=0,ae=h.length;ee<ae;++ee)L[ee]=h.charCodeAt(ee);h=L}E.chmod(V,146|v);var ce=E.open(V,577);E.write(ce,h,0,h.length,0,b),E.close(ce),E.chmod(V,v)}return V},createDevice:(c,d,h,f)=>{var I=me.join2(typeof c=="string"?c:E.getPath(c),d),b=li(!!h,!!f);E.createDevice.major||(E.createDevice.major=64);var R=E.makedev(E.createDevice.major++,0);return E.registerDevice(R,{open:v=>{v.seekable=!1},close:v=>{f&&f.buffer&&f.buffer.length&&f(10)},read:(v,V,L,ee,ae)=>{for(var ce=0,ne=0;ne<ee;ne++){var Ce;try{Ce=h()}catch(Ve){throw new E.ErrnoError(29)}if(Ce===void 0&&ce===0)throw new E.ErrnoError(6);if(Ce==null)break;ce++,V[L+ne]=Ce}return ce&&(v.node.timestamp=Date.now()),ce},write:(v,V,L,ee,ae)=>{for(var ce=0;ce<ee;ce++)try{f(V[L+ce])}catch(ne){throw new E.ErrnoError(29)}return ee&&(v.node.timestamp=Date.now()),ce}}),E.mkdev(I,b,R)},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=vs(s(c.url),!0),c.usedBytes=c.contents.length}catch(d){throw new E.ErrnoError(29)}},createLazyFile:(c,d,h,f,I)=>{function b(){this.lengthKnown=!1,this.chunks=[]}if(b.prototype.get=function(ae){if(!(ae>this.length-1||ae<0)){var ce=ae%this.chunkSize,ne=ae/this.chunkSize|0;return this.getter(ne)[ce]}},b.prototype.setDataGetter=function(ae){this.getter=ae},b.prototype.cacheLength=function(){var ae=new XMLHttpRequest;if(ae.open("HEAD",h,!1),ae.send(null),!(ae.status>=200&&ae.status<300||ae.status===304))throw new Error("Couldn't load "+h+". Status: "+ae.status);var ce,ne=Number(ae.getResponseHeader("Content-length")),Ce=(ce=ae.getResponseHeader("Accept-Ranges"))&&ce==="bytes",Ve=(ce=ae.getResponseHeader("Content-Encoding"))&&ce==="gzip",Me=1048576;Ce||(Me=ne);var ot=this;ot.setDataGetter(et=>{var Et=et*Me,eo=(et+1)*Me-1;if(eo=Math.min(eo,ne-1),ot.chunks[et]===void 0&&(ot.chunks[et]=((ur,Vo)=>{if(ur>Vo)throw new Error("invalid range ("+ur+", "+Vo+") or no bytes requested!");if(Vo>ne-1)throw new Error("only "+ne+" bytes available! programmer error!");var mt=new XMLHttpRequest;if(mt.open("GET",h,!1),ne!==Me&&mt.setRequestHeader("Range","bytes="+ur+"-"+Vo),mt.responseType="arraybuffer",mt.overrideMimeType&&mt.overrideMimeType("text/plain; charset=x-user-defined"),mt.send(null),!(mt.status>=200&&mt.status<300||mt.status===304))throw new Error("Couldn't load "+h+". Status: "+mt.status);return mt.response!==void 0?new Uint8Array(mt.response||[]):vs(mt.responseText||"",!0)})(Et,eo)),ot.chunks[et]===void 0)throw new Error("doXHR failed!");return ot.chunks[et]}),!Ve&&ne||(Me=ne=1,ne=this.getter(0).length,Me=ne,C("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=ne,this._chunkSize=Me,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!g)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var R=new b;Object.defineProperties(R,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var v={isDevice:!1,contents:R}}else v={isDevice:!1,url:h};var V=E.createFile(c,d,v,f,I);v.contents?V.contents=v.contents:v.url&&(V.contents=null,V.url=v.url),Object.defineProperties(V,{usedBytes:{get:function(){return this.contents.length}}});var L={};function ee(ae,ce,ne,Ce,Ve){var Me=ae.node.contents;if(Ve>=Me.length)return 0;var ot=Math.min(Me.length-Ve,Ce);if(Me.slice)for(var et=0;et<ot;et++)ce[ne+et]=Me[Ve+et];else for(et=0;et<ot;et++)ce[ne+et]=Me.get(Ve+et);return ot}return Object.keys(V.stream_ops).forEach(ae=>{var ce=V.stream_ops[ae];L[ae]=function(){return E.forceLoadFile(V),ce.apply(null,arguments)}}),L.read=(ae,ce,ne,Ce,Ve)=>(E.forceLoadFile(V),ee(ae,ce,ne,Ce,Ve)),L.mmap=(ae,ce,ne,Ce,Ve)=>{E.forceLoadFile(V);var Me=Bn();if(!Me)throw new E.ErrnoError(48);return ee(ae,Z,Me,ce,ne),{ptr:Me,allocated:!0}},V.stream_ops=L,V}},ji=(c,d)=>c?Lt(ue,c,d):"",yt={DEFAULT_POLLMASK:5,calculateAt:function(c,d,h){if(me.isAbs(d))return d;var f;if(c===-100?f=E.cwd():f=yt.getStreamFromFD(c).path,d.length==0){if(!h)throw new E.ErrnoError(44);return f}return me.join2(f,d)},doStat:function(c,d,h){try{var f=c(d)}catch(v){if(v&&v.node&&me.normalize(d)!==me.normalize(E.getPath(v.node)))return-54;throw v}H[h>>2]=f.dev,H[h+4>>2]=f.mode,Pe[h+8>>2]=f.nlink,H[h+12>>2]=f.uid,H[h+16>>2]=f.gid,H[h+20>>2]=f.rdev,Ke=[f.size>>>0,(Ee=f.size,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[h+24>>2]=Ke[0],H[h+28>>2]=Ke[1],H[h+32>>2]=4096,H[h+36>>2]=f.blocks;var I=f.atime.getTime(),b=f.mtime.getTime(),R=f.ctime.getTime();return Ke=[Math.floor(I/1e3)>>>0,(Ee=Math.floor(I/1e3),+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[h+40>>2]=Ke[0],H[h+44>>2]=Ke[1],Pe[h+48>>2]=I%1e3*1e3,Ke=[Math.floor(b/1e3)>>>0,(Ee=Math.floor(b/1e3),+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[h+56>>2]=Ke[0],H[h+60>>2]=Ke[1],Pe[h+64>>2]=b%1e3*1e3,Ke=[Math.floor(R/1e3)>>>0,(Ee=Math.floor(R/1e3),+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[h+72>>2]=Ke[0],H[h+76>>2]=Ke[1],Pe[h+80>>2]=R%1e3*1e3,Ke=[f.ino>>>0,(Ee=f.ino,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[h+88>>2]=Ke[0],H[h+92>>2]=Ke[1],0},doMsync:function(c,d,h,f,I){if(!E.isFile(d.node.mode))throw new E.ErrnoError(43);if(2&f)return 0;var b=ue.slice(c,c+h);E.msync(d,b,I,h,f)},varargs:void 0,get:()=>(yt.varargs+=4,H[yt.varargs-4>>2]),getStr:c=>ji(c),getStreamFromFD:function(c){return E.getStreamChecked(c)}};function mi(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 Ic=void 0;function k(c){for(var d="",h=c;ue[h];)d+=Ic[ue[h++]];return d}var qi={},dr={},Cs={},zi=void 0;function Ue(c){throw new zi(c)}var Sc=void 0;function er(c){throw new Sc(c)}function Gr(c,d,h){function f(v){var V=h(v);V.length!==c.length&&er("Mismatched type converter count");for(var L=0;L<c.length;++L)tr(c[L],V[L])}c.forEach(function(v){Cs[v]=d});var I=new Array(d.length),b=[],R=0;d.forEach((v,V)=>{dr.hasOwnProperty(v)?I[V]=dr[v]:(b.push(v),qi.hasOwnProperty(v)||(qi[v]=[]),qi[v].push(()=>{I[V]=dr[v],++R===b.length&&f(I)}))}),b.length===0&&f(I)}function tr(c,d,h={}){if(!("argPackAdvance"in d))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(f,I,b={}){var R=I.name;if(f||Ue(`type "${R}" must have a positive integer typeid pointer`),dr.hasOwnProperty(f)){if(b.ignoreDuplicateRegistrations)return;Ue(`Cannot register type '${R}' twice`)}if(dr[f]=I,delete Cs[f],qi.hasOwnProperty(f)){var v=qi[f];delete qi[f],v.forEach(V=>V())}}(c,d,h)}function yc(c){if(!(this instanceof yr)||!(c instanceof yr))return!1;for(var d=this.$$.ptrType.registeredClass,h=this.$$.ptr,f=c.$$.ptrType.registeredClass,I=c.$$.ptr;d.baseClass;)h=d.upcast(h),d=d.baseClass;for(;f.baseClass;)I=f.upcast(I),f=f.baseClass;return d===f&&h===I}function Hn(c){Ue(c.$$.ptrType.registeredClass.name+" instance already deleted")}var Mo=!1;function Ac(c){}function bc(c){c.count.value-=1,c.count.value===0&&function(d){d.smartPtr?d.smartPtrType.rawDestructor(d.smartPtr):d.ptrType.registeredClass.rawDestructor(d.ptr)}(c)}function Rc(c,d,h){if(d===h)return c;if(h.baseClass===void 0)return null;var f=Rc(c,d,h.baseClass);return f===null?null:h.downcast(f)}var Oo={};function hl(){return Object.keys(Po).length}function pl(){var c=[];for(var d in Po)Po.hasOwnProperty(d)&&c.push(Po[d]);return c}var xo=[];function rr(){for(;xo.length;){var c=xo.pop();c.$$.deleteScheduled=!1,c.delete()}}var jr=void 0;function vc(c){jr=c,xo.length&&jr&&jr(rr)}var Po={};function Ji(c,d){return d=function(h,f){for(f===void 0&&Ue("ptr should not be undefined");h.baseClass;)f=h.upcast(f),h=h.baseClass;return f}(c,d),Po[d]}function ko(c,d){return d.ptrType&&d.ptr||er("makeClassHandle requires ptr and ptrType"),!!d.smartPtrType!=!!d.smartPtr&&er("Both smartPtrType and smartPtr must be specified"),d.count={value:1},Xi(Object.create(c,{$$:{value:d}}))}function Cc(c){var d=this.getPointee(c);if(!d)return this.destructor(c),null;var h=Ji(this.registeredClass,d);if(h!==void 0){if(h.$$.count.value===0)return h.$$.ptr=d,h.$$.smartPtr=c,h.clone();var f=h.clone();return this.destructor(c),f}function I(){return this.isSmartPointer?ko(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:d,smartPtrType:this,smartPtr:c}):ko(this.registeredClass.instancePrototype,{ptrType:this,ptr:c})}var b,R=this.registeredClass.getActualType(d),v=Oo[R];if(!v)return I.call(this);b=this.isConst?v.constPointerType:v.pointerType;var V=Rc(d,this.registeredClass,b.registeredClass);return V===null?I.call(this):this.isSmartPointer?ko(b.registeredClass.instancePrototype,{ptrType:b,ptr:V,smartPtrType:this,smartPtr:c}):ko(b.registeredClass.instancePrototype,{ptrType:b,ptr:V})}var Xi=function(c){return typeof FinalizationRegistry=="undefined"?(Xi=d=>d,c):(Mo=new FinalizationRegistry(d=>{bc(d.$$)}),Ac=d=>Mo.unregister(d),(Xi=d=>{var h=d.$$;if(h.smartPtr){var f={$$:h};Mo.register(d,f,d)}return d})(c))};function Nc(){if(this.$$.ptr||Hn(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var c,d=Xi(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 d.$$.count.value+=1,d.$$.deleteScheduled=!1,d}function fl(){this.$$.ptr||Hn(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ue("Object already scheduled for deletion"),Ac(this),bc(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Dc(){return!this.$$.ptr}function wc(){return this.$$.ptr||Hn(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ue("Object already scheduled for deletion"),xo.push(this),xo.length===1&&jr&&jr(rr),this.$$.deleteScheduled=!0,this}function yr(){}function Ut(c){if(c===void 0)return"_unknown";var d=(c=c.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return d>=48&&d<=57?`_${c}`:c}function Ns(c,d){return c=Ut(c),{[c]:function(){return d.apply(this,arguments)}}[c]}function Mc(c,d,h){if(c[d].overloadTable===void 0){var f=c[d];c[d]=function(){return c[d].overloadTable.hasOwnProperty(arguments.length)||Ue(`Function '${h}' called with an invalid number of arguments (${arguments.length}) - expects one of (${c[d].overloadTable})!`),c[d].overloadTable[arguments.length].apply(this,arguments)},c[d].overloadTable=[],c[d].overloadTable[f.argCount]=f}}function Ds(c,d,h,f,I,b,R,v){this.name=c,this.constructor=d,this.instancePrototype=h,this.rawDestructor=f,this.baseClass=I,this.getActualType=b,this.upcast=R,this.downcast=v,this.pureVirtualFunctions=[]}function Lo(c,d,h){for(;d!==h;)d.upcast||Ue(`Expected null or instance of ${h.name}, got an instance of ${d.name}`),c=d.upcast(c),d=d.baseClass;return c}function gl(c,d){if(d===null)return this.isReference&&Ue(`null is not a valid ${this.name}`),0;d.$$||Ue(`Cannot pass "${xs(d)}" as a ${this.name}`),d.$$.ptr||Ue(`Cannot pass deleted object as a pointer of type ${this.name}`);var h=d.$$.ptrType.registeredClass;return Lo(d.$$.ptr,h,this.registeredClass)}function El(c,d){var h;if(d===null)return this.isReference&&Ue(`null is not a valid ${this.name}`),this.isSmartPointer?(h=this.rawConstructor(),c!==null&&c.push(this.rawDestructor,h),h):0;d.$$||Ue(`Cannot pass "${xs(d)}" as a ${this.name}`),d.$$.ptr||Ue(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&d.$$.ptrType.isConst&&Ue(`Cannot convert argument of type ${d.$$.smartPtrType?d.$$.smartPtrType.name:d.$$.ptrType.name} to parameter type ${this.name}`);var f=d.$$.ptrType.registeredClass;if(h=Lo(d.$$.ptr,f,this.registeredClass),this.isSmartPointer)switch(d.$$.smartPtr===void 0&&Ue("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:d.$$.smartPtrType===this?h=d.$$.smartPtr:Ue(`Cannot convert argument of type ${d.$$.smartPtrType?d.$$.smartPtrType.name:d.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:h=d.$$.smartPtr;break;case 2:if(d.$$.smartPtrType===this)h=d.$$.smartPtr;else{var I=d.clone();h=this.rawShare(h,Zi.toHandle(function(){I.delete()})),c!==null&&c.push(this.rawDestructor,h)}break;default:Ue("Unsupporting sharing policy")}return h}function Oc(c,d){if(d===null)return this.isReference&&Ue(`null is not a valid ${this.name}`),0;d.$$||Ue(`Cannot pass "${xs(d)}" as a ${this.name}`),d.$$.ptr||Ue(`Cannot pass deleted object as a pointer of type ${this.name}`),d.$$.ptrType.isConst&&Ue(`Cannot convert argument of type ${d.$$.ptrType.name} to parameter type ${this.name}`);var h=d.$$.ptrType.registeredClass;return Lo(d.$$.ptr,h,this.registeredClass)}function Uo(c){return this.fromWireType(H[c>>2])}function _l(c){return this.rawGetPointee&&(c=this.rawGetPointee(c)),c}function xc(c){this.rawDestructor&&this.rawDestructor(c)}function Tl(c){c!==null&&c.delete()}function Ar(c,d,h,f,I,b,R,v,V,L,ee){this.name=c,this.registeredClass=d,this.isReference=h,this.isConst=f,this.isSmartPointer=I,this.pointeeType=b,this.sharingPolicy=R,this.rawGetPointee=v,this.rawConstructor=V,this.rawShare=L,this.rawDestructor=ee,I||d.baseClass!==void 0?this.toWireType=El:f?(this.toWireType=gl,this.destructorFunction=null):(this.toWireType=Oc,this.destructorFunction=null)}var ws=[],Pc=c=>{var d=ws[c];return d||(c>=ws.length&&(ws.length=c+1),ws[c]=d=Ln.get(c)),d},Il=(c,d,h)=>c.includes("j")?((f,I,b)=>{var R=o["dynCall_"+f];return b&&b.length?R.apply(null,[I].concat(b)):R.call(null,I)})(c,d,h):Pc(d).apply(null,h);function Qi(c,d){var h,f,I,b=(c=k(c)).includes("j")?(h=c,f=d,I=[],function(){return I.length=0,Object.assign(I,arguments),Il(h,f,I)}):Pc(d);return typeof b!="function"&&Ue(`unknown function pointer with signature ${c}: ${d}`),b}var kc=void 0;function Ms(c){var d=Rr(c),h=k(d);return Nt(d),h}function Os(c,d){var h=[],f={};throw d.forEach(function I(b){f[b]||dr[b]||(Cs[b]?Cs[b].forEach(I):(h.push(b),f[b]=!0))}),new kc(`${c}: `+h.map(Ms).join([", "]))}function Wn(c,d){for(var h=[],f=0;f<c;f++)h.push(Pe[d+4*f>>2]);return h}function Lc(c){for(;c.length;){var d=c.pop();c.pop()(d)}}function Gn(c,d){if(!(c instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof c} which is not a function`);var h=Ns(c.name||"unknownFunctionName",function(){});h.prototype=c.prototype;var f=new h,I=c.apply(f,d);return I instanceof Object?I:f}function Yi(c,d,h,f,I,b){var R=d.length;R<2&&Ue("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var v=d[1]!==null&&h!==null,V=!1,L=1;L<d.length;++L)if(d[L]!==null&&d[L].destructorFunction===void 0){V=!0;break}var ee=d[0].name!=="void",ae="",ce="";for(L=0;L<R-2;++L)ae+=(L!==0?", ":"")+"arg"+L,ce+=(L!==0?", ":"")+"arg"+L+"Wired";var ne=`
53
53
  return function ${Ut(c)}(${ae}) {
54
54
  if (arguments.length !== ${R-2}) {
55
55
  throwBindingError('function ${c} called with ${arguments.length} arguments, expected ${R-2} args!');
56
- }`;U&&(ne+=`var destructors = [];
57
- `);var Ce=U?"destructors":"null",Ve=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Me=[Ue,f,I,xc,d[0],d[1]];for(v&&(ne+="var thisWired = classParam.toWireType("+Ce+`, this);
56
+ }`;V&&(ne+=`var destructors = [];
57
+ `);var Ce=V?"destructors":"null",Ve=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Me=[Ue,f,I,Lc,d[0],d[1]];for(v&&(ne+="var thisWired = classParam.toWireType("+Ce+`, this);
58
58
  `),L=0;L<R-2;++L)ne+="var arg"+L+"Wired = argType"+L+".toWireType("+Ce+", arg"+L+"); // "+d[L+2].name+`
59
- `,Ve.push("argType"+L),Me.push(d[L+2]);if(v&&(ce="thisWired"+(ce.length>0?", ":"")+ce),ne+=(K||b?"var rv = ":"")+"invoker(fn"+(ce.length>0?", ":"")+ce+`);
60
- `,U)ne+=`runDestructors(destructors);
59
+ `,Ve.push("argType"+L),Me.push(d[L+2]);if(v&&(ce="thisWired"+(ce.length>0?", ":"")+ce),ne+=(ee||b?"var rv = ":"")+"invoker(fn"+(ce.length>0?", ":"")+ce+`);
60
+ `,V)ne+=`runDestructors(destructors);
61
61
  `;else for(L=v?1:2;L<d.length;++L){var ot=L===1?"thisWired":"arg"+(L-2)+"Wired";d[L].destructorFunction!==null&&(ne+=ot+"_dtor("+ot+"); // "+d[L].name+`
62
- `,Ve.push(ot+"_dtor"),Me.push(d[L].destructorFunction))}return K&&(ne+=`var ret = retType.fromWireType(rv);
62
+ `,Ve.push(ot+"_dtor"),Me.push(d[L].destructorFunction))}return ee&&(ne+=`var ret = retType.fromWireType(rv);
63
63
  return ret;
64
64
  `),ne+=`}
65
- `,Ve.push(ne),Hn(Function,Ve).apply(null,Me)}function Pc(){this.allocated=[void 0],this.freelist=[]}var Vt=new Pc;function kc(c){c>=Vt.reserved&&--Vt.get(c).refcount==0&&Vt.free(c)}function Ar(){for(var c=0,d=Vt.reserved;d<Vt.allocated.length;++d)Vt.allocated[d]!==void 0&&++c;return c}var Zi={toValue:c=>(c||Ue("Cannot use deleted val. handle = "+c),Vt.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 Vt.allocate({refcount:1,value:c})}}};function Os(c){if(c===null)return"null";var d=typeof c;return d==="object"||d==="array"||d==="function"?c.toString():""+c}function Lc(c,d){switch(d){case 2:return function(h){return this.fromWireType(On[h>>2])};case 3:return function(h){return this.fromWireType(xn[h>>3])};default:throw new TypeError("Unknown float type: "+c)}}function Uc(c,d,h){switch(d){case 0:return h?function(f){return Z[f]}:function(f){return ue[f]};case 1:return h?function(f){return Se[f>>1]}:function(f){return Ye[f>>1]};case 2:return h?function(f){return H[f>>2]}:function(f){return Pe[f>>2]};default:throw new TypeError("Unknown integer type: "+c)}}var S=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,T=(c,d)=>{for(var h=c,f=h>>1,I=f+d/2;!(f>=I)&&Ye[f];)++f;if((h=f<<1)-c>32&&S)return S.decode(ue.subarray(c,h));for(var b="",R=0;!(R>=d/2);++R){var v=Se[c+2*R>>1];if(v==0)break;b+=String.fromCharCode(v)}return b},w=(c,d,h)=>{if(h===void 0&&(h=2147483647),h<2)return 0;for(var f=d,I=(h-=2)<2*c.length?h/2:c.length,b=0;b<I;++b){var R=c.charCodeAt(b);Se[d>>1]=R,d+=2}return Se[d>>1]=0,d-f},P=c=>2*c.length,B=(c,d)=>{for(var h=0,f="";!(h>=d/4);){var I=H[c+4*h>>2];if(I==0)break;if(++h,I>=65536){var b=I-65536;f+=String.fromCharCode(55296|b>>10,56320|1023&b)}else f+=String.fromCharCode(I)}return f},W=(c,d,h)=>{if(h===void 0&&(h=2147483647),h<4)return 0;for(var f=d,I=f+h-4,b=0;b<c.length;++b){var R=c.charCodeAt(b);if(R>=55296&&R<=57343&&(R=65536+((1023&R)<<10)|1023&c.charCodeAt(++b)),H[d>>2]=R,(d+=4)+4>I)break}return H[d>>2]=0,d-f},z=c=>{for(var d=0,h=0;h<c.length;++h){var f=c.charCodeAt(h);f>=55296&&f<=57343&&++h,d+=4}return d},Y={},re=[],G=[],he={},De=()=>{if(!De.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",_:m||"./this.program"};for(var d in he)he[d]===void 0?delete c[d]:c[d]=he[d];var h=[];for(var d in c)h.push(`${d}=${c[d]}`);De.strings=h}return De.strings},ve,fe,we,it=function(c,d,h,f){c||(c=this),this.parent=c,this.mount=c.mount,this.mounted=null,this.id=E.nextInode++,this.name=d,this.mode=h,this.node_ops={},this.stream_ops={},this.rdev=f},Je=365,ft=146;Object.defineProperties(it.prototype,{read:{get:function(){return(this.mode&Je)===Je},set:function(c){c?this.mode|=Je:this.mode&=-366}},write:{get:function(){return(this.mode&ft)===ft},set:function(c){c?this.mode|=ft:this.mode&=-147}},isFolder:{get:function(){return E.isDir(this.mode)}},isDevice:{get:function(){return E.isChrdev(this.mode)}}}),E.FSNode=it,E.createPreloadedFile=function(c,d,h,f,I,b,R,v,U,L){var K=d?Qt.resolve(me.join2(c,d)):c;function ae(ce){function ne(Ce){L&&L(),v||E.createDataFile(c,d,Ce,f,I,U),b&&b(),No()}(function(Ce,Ve,Me,ot){typeof Browser!="undefined"&&Browser.init();var et=!1;return ml.forEach(function(Et){et||Et.canHandle(Ve)&&(Et.handle(Ce,Ve,Me,ot),et=!0)}),et})(ce,K,ne,()=>{R&&R(),No()})||ne(ce)}ie(),typeof h=="string"?ll(h,ce=>ae(ce),R):ae(h)},E.staticInit(),function(){for(var c=new Array(256),d=0;d<256;++d)c[d]=String.fromCharCode(d);Ec=c}(),zi=o.BindingError=class extends Error{constructor(c){super(c),this.name="BindingError"}},_c=o.InternalError=class extends Error{constructor(c){super(c),this.name="InternalError"}},Sr.prototype.isAliasOf=Tc,Sr.prototype.clone=Rc,Sr.prototype.delete=fl,Sr.prototype.isDeleted=vc,Sr.prototype.deleteLater=Cc,o.getInheritedInstanceCount=hl,o.getLiveInheritedInstances=pl,o.flushPendingDeletes=rr,o.setDelayFunction=Ac,yr.prototype.getPointee=_l,yr.prototype.destructor=wc,yr.prototype.argPackAdvance=8,yr.prototype.readValueFromPointer=Uo,yr.prototype.deleteObject=Tl,yr.prototype.fromWireType=bc,Oc=o.UnboundTypeError=(ve=Error,(we=Cs(fe="UnboundTypeError",function(c){this.name=fe,this.message=c;var d=new Error(c).stack;d!==void 0&&(this.stack=this.toString()+`
66
- `+d.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(ve.prototype),we.prototype.constructor=we,we.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},we),Object.assign(Pc.prototype,{get(c){return this.allocated[c]},has(c){return this.allocated[c]!==void 0},allocate(c){var d=this.freelist.pop()||this.allocated.length;return this.allocated[d]=c,d},free(c){this.allocated[c]=void 0,this.freelist.push(c)}}),Vt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Vt.reserved=Vt.allocated.length,o.count_emval_handles=Ar;var Xe,Mt={p:function(c,d,h){throw new Wi(c).init(d,h),c},C:function(c,d,h){yt.varargs=h;try{var f=yt.getStreamFromFD(c);switch(d){case 0:return(I=yt.get())<0?-28:E.createStream(f,I).fd;case 1:case 2:case 6:case 7:return 0;case 3:return f.flags;case 4:var I=yt.get();return f.flags|=I,0;case 5:return I=yt.get(),Se[I+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return b=28,H[Wn()>>2]=b,-1}}catch(R){if(E===void 0||R.name!=="ErrnoError")throw R;return-R.errno}var b},w:function(c,d,h,f){yt.varargs=f;try{d=yt.getStr(d),d=yt.calculateAt(c,d);var I=f?yt.get():0;return E.open(d,h,I).fd}catch(b){if(E===void 0||b.name!=="ErrnoError")throw b;return-b.errno}},t:function(c,d,h,f,I){},n:function(c,d,h,f,I){var b=mi(h);tr(c,{name:d=k(d),fromWireType:function(R){return!!R},toWireType:function(R,v){return v?f:I},argPackAdvance:8,readValueFromPointer:function(R){var v;if(h===1)v=Z;else if(h===2)v=Se;else{if(h!==4)throw new TypeError("Unknown boolean type size: "+d);v=H}return this.fromWireType(v[R>>b])},destructorFunction:null})},r:function(c,d,h,f,I,b,R,v,U,L,K,ae,ce){K=k(K),b=Qi(I,b),v&&(v=Qi(R,v)),L&&(L=Qi(U,L)),ce=Qi(ae,ce);var ne=Ut(K);(function(Ce,Ve,Me){o.hasOwnProperty(Ce)?((Me===void 0||o[Ce].overloadTable!==void 0&&o[Ce].overloadTable[Me]!==void 0)&&Ue(`Cannot register public name '${Ce}' twice`),Nc(o,Ce,Ce),o.hasOwnProperty(Me)&&Ue(`Cannot register multiple overloads of a function with the same number of arguments (${Me})!`),o[Ce].overloadTable[Me]=Ve):(o[Ce]=Ve,Me!==void 0&&(o[Ce].numArguments=Me))})(ne,function(){Ms(`Cannot construct ${K} due to unbound types`,[f])}),Gr([c,d,h],f?[f]:[],function(Ce){var Ve,Me;Ce=Ce[0],Me=f?(Ve=Ce.registeredClass).instancePrototype:Sr.prototype;var ot=Cs(ne,function(){if(Object.getPrototypeOf(this)!==et)throw new zi("Use 'new' to construct "+K);if(Et.constructor_body===void 0)throw new zi(K+" has no accessible constructor");var mt=Et.constructor_body[arguments.length];if(mt===void 0)throw new zi(`Tried to invoke ctor of ${K} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Et.constructor_body).toString()}) parameters instead!`);return mt.apply(this,arguments)}),et=Object.create(Me,{constructor:{value:ot}});ot.prototype=et;var Et=new Ns(K,ot,et,ce,Ve,b,v,L);Et.baseClass&&(Et.baseClass.__derivedClasses===void 0&&(Et.baseClass.__derivedClasses=[]),Et.baseClass.__derivedClasses.push(Et));var eo=new yr(K,Et,!0,!1,!1),ur=new yr(K+"*",Et,!1,!1,!1),Vo=new yr(K+" const*",Et,!1,!0,!1);return Oo[c]={pointerType:ur,constPointerType:Vo},function(mt,Fp,Sl){o.hasOwnProperty(mt)||er("Replacing nonexistant public symbol"),o[mt].overloadTable!==void 0&&Sl!==void 0?o[mt].overloadTable[Sl]=Fp:(o[mt]=Fp,o[mt].argCount=Sl)}(ne,ot),[eo,ur,Vo]})},q:function(c,d,h,f,I,b){var R=Bn(d,h);I=Qi(f,I),Gr([],[c],function(v){var U=`constructor ${(v=v[0]).name}`;if(v.registeredClass.constructor_body===void 0&&(v.registeredClass.constructor_body=[]),v.registeredClass.constructor_body[d-1]!==void 0)throw new zi(`Cannot register multiple constructors with identical number of parameters (${d-1}) for class '${v.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return v.registeredClass.constructor_body[d-1]=()=>{Ms(`Cannot construct ${v.name} due to unbound types`,R)},Gr([],R,function(L){return L.splice(1,0,null),v.registeredClass.constructor_body[d-1]=Yi(U,L,null,I,b),[]}),[]})},d:function(c,d,h,f,I,b,R,v,U){var L=Bn(h,f);d=k(d),b=Qi(I,b),Gr([],[c],function(K){var ae=`${(K=K[0]).name}.${d}`;function ce(){Ms(`Cannot call ${ae} due to unbound types`,L)}d.startsWith("@@")&&(d=Symbol[d.substring(2)]),v&&K.registeredClass.pureVirtualFunctions.push(d);var ne=K.registeredClass.instancePrototype,Ce=ne[d];return Ce===void 0||Ce.overloadTable===void 0&&Ce.className!==K.name&&Ce.argCount===h-2?(ce.argCount=h-2,ce.className=K.name,ne[d]=ce):(Nc(ne,d,ae),ne[d].overloadTable[h-2]=ce),Gr([],L,function(Ve){var Me=Yi(ae,Ve,K,b,R,U);return ne[d].overloadTable===void 0?(Me.argCount=h-2,ne[d]=Me):ne[d].overloadTable[h-2]=Me,[]}),[]})},D:function(c,d){tr(c,{name:d=k(d),fromWireType:function(h){var f=Zi.toValue(h);return kc(h),f},toWireType:function(h,f){return Zi.toHandle(f)},argPackAdvance:8,readValueFromPointer:Uo,destructorFunction:null})},k:function(c,d,h){var f=mi(h);tr(c,{name:d=k(d),fromWireType:function(I){return I},toWireType:function(I,b){return b},argPackAdvance:8,readValueFromPointer:Lc(d,f),destructorFunction:null})},c:function(c,d,h,f,I){d=k(d),I===-1&&(I=4294967295);var b=mi(h),R=L=>L;if(f===0){var v=32-8*h;R=L=>L<<v>>>v}var U=d.includes("unsigned");tr(c,{name:d,fromWireType:R,toWireType:U?function(L,K){return this.name,K>>>0}:function(L,K){return this.name,K},argPackAdvance:8,readValueFromPointer:Uc(d,b,f!==0),destructorFunction:null})},b:function(c,d,h){var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][d];function I(b){var R=Pe,v=R[b>>=2],U=R[b+1];return new f(R.buffer,U,v)}tr(c,{name:h=k(h),fromWireType:I,argPackAdvance:8,readValueFromPointer:I},{ignoreDuplicateRegistrations:!0})},j:function(c,d){var h=(d=k(d))==="std::string";tr(c,{name:d,fromWireType:function(f){var I,b=Pe[f>>2],R=f+4;if(h)for(var v=R,U=0;U<=b;++U){var L=R+U;if(U==b||ue[L]==0){var K=ji(v,L-v);I===void 0?I=K:(I+="\0",I+=K),v=L+1}}else{var ae=new Array(b);for(U=0;U<b;++U)ae[U]=String.fromCharCode(ue[R+U]);I=ae.join("")}return Nt(f),I},toWireType:function(f,I){var b;I instanceof ArrayBuffer&&(I=new Uint8Array(I));var R=typeof I=="string";R||I instanceof Uint8Array||I instanceof Uint8ClampedArray||I instanceof Int8Array||Ue("Cannot pass non-string to std::string"),b=h&&R?Do(I):I.length;var v=Ki(4+b+1),U=v+4;if(Pe[v>>2]=b,h&&R)wo(I,ue,U,b+1);else if(R)for(var L=0;L<b;++L){var K=I.charCodeAt(L);K>255&&(Nt(U),Ue("String has UTF-16 code units that do not fit in 8 bits")),ue[U+L]=K}else for(L=0;L<b;++L)ue[U+L]=I[L];return f!==null&&f.push(Nt,v),v},argPackAdvance:8,readValueFromPointer:Uo,destructorFunction:function(f){Nt(f)}})},f:function(c,d,h){var f,I,b,R,v;h=k(h),d===2?(f=T,I=w,R=P,b=()=>Ye,v=1):d===4&&(f=B,I=W,R=z,b=()=>Pe,v=2),tr(c,{name:h,fromWireType:function(U){for(var L,K=Pe[U>>2],ae=b(),ce=U+4,ne=0;ne<=K;++ne){var Ce=U+4+ne*d;if(ne==K||ae[Ce>>v]==0){var Ve=f(ce,Ce-ce);L===void 0?L=Ve:(L+="\0",L+=Ve),ce=Ce+d}}return Nt(U),L},toWireType:function(U,L){typeof L!="string"&&Ue(`Cannot pass non-string to C++ string type ${h}`);var K=R(L),ae=Ki(4+K+d);return Pe[ae>>2]=K>>v,I(L,ae+4,K+d),U!==null&&U.push(Nt,ae),ae},argPackAdvance:8,readValueFromPointer:Uo,destructorFunction:function(U){Nt(U)}})},o:function(c,d){tr(c,{isVoid:!0,name:d=k(d),argPackAdvance:0,fromWireType:function(){},toWireType:function(h,f){}})},g:function(c,d,h,f){var I,b;(c=re[c])(d=Zi.toValue(d),h=(b=Y[I=h])===void 0?k(I):b,null,f)},m:kc,l:function(c,d){var h=function(Ve,Me){for(var ot,et,Et,eo=new Array(Ve),ur=0;ur<Ve;++ur)eo[ur]=(ot=Pe[Me+4*ur>>2],et="parameter "+ur,Et=void 0,(Et=dr[ot])===void 0&&Ue(et+" has unknown type "+ws(ot)),Et);return eo}(c,d),f=h[0],I=f.name+"_$"+h.slice(1).map(function(Ve){return Ve.name}).join("_")+"$",b=G[I];if(b!==void 0)return b;for(var R=["retType"],v=[f],U="",L=0;L<c-1;++L)U+=(L!==0?", ":"")+"arg"+L,R.push("argType"+L),v.push(h[1+L]);var K="return function "+Ut("methodCaller_"+I)+`(handle, name, destructors, args) {
67
- `,ae=0;for(L=0;L<c-1;++L)K+=" var arg"+L+" = argType"+L+".readValueFromPointer(args"+(ae?"+"+ae:"")+`);
68
- `,ae+=h[L+1].argPackAdvance;for(K+=" var rv = handle[name]("+U+`);
69
- `,L=0;L<c-1;++L)h[L+1].deleteObject&&(K+=" argType"+L+".deleteObject(arg"+L+`);
70
- `);f.isVoid||(K+=` return retType.toWireType(destructors, rv);
71
- `),K+=`};
72
- `,R.push(K);var ce,ne,Ce=Hn(Function,R).apply(null,v);return ce=Ce,ne=re.length,re.push(ce),b=ne,G[I]=b,b},a:()=>{Hr("")},e:function(){return Date.now()},v:()=>ue.length,A:(c,d,h)=>ue.copyWithin(c,d,d+h),u:c=>{ue.length,Hr("OOM")},y:(c,d)=>{var h=0;return De().forEach(function(f,I){var b=d+h;Pe[c+4*I>>2]=b,((R,v)=>{for(var U=0;U<R.length;++U)Z[0|v++]=R.charCodeAt(U);Z[0|v]=0})(f,b),h+=f.length+1}),0},z:(c,d)=>{var h=De();Pe[c>>2]=h.length;var f=0;return h.forEach(function(I){f+=I.length+1}),Pe[d>>2]=f,0},i:function(c){try{var d=yt.getStreamFromFD(c);return E.close(d),0}catch(h){if(E===void 0||h.name!=="ErrnoError")throw h;return h.errno}},x:function(c,d){try{var h=yt.getStreamFromFD(c),f=h.tty?2:E.isDir(h.mode)?3:E.isLink(h.mode)?7:4;return Z[d|0]=f,Se[d+2>>1]=0,Ke=[0,(Ee=0,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[d+8>>2]=Ke[0],H[d+12>>2]=Ke[1],Ke=[0,(Ee=0,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[d+16>>2]=Ke[0],H[d+20>>2]=Ke[1],0}catch(I){if(E===void 0||I.name!=="ErrnoError")throw I;return I.errno}},B:function(c,d,h,f){try{var I=((b,R,v,U)=>{for(var L=0,K=0;K<v;K++){var ae=Pe[R>>2],ce=Pe[R+4>>2];R+=8;var ne=E.read(b,Z,ae,ce,U);if(ne<0)return-1;if(L+=ne,ne<ce)break;U!==void 0&&(U+=ne)}return L})(yt.getStreamFromFD(c),d,h);return Pe[f>>2]=I,0}catch(b){if(E===void 0||b.name!=="ErrnoError")throw b;return b.errno}},s:function(c,d,h,f,I){var b,R,v=(R=h)+2097152>>>0<4194305-!!(b=d)?(b>>>0)+4294967296*R:NaN;try{if(isNaN(v))return 61;var U=yt.getStreamFromFD(c);return E.llseek(U,v,f),Ke=[U.position>>>0,(Ee=U.position,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[I>>2]=Ke[0],H[I+4>>2]=Ke[1],U.getdents&&v===0&&f===0&&(U.getdents=null),0}catch(L){if(E===void 0||L.name!=="ErrnoError")throw L;return L.errno}},h:function(c,d,h,f){try{var I=((b,R,v,U)=>{for(var L=0,K=0;K<v;K++){var ae=Pe[R>>2],ce=Pe[R+4>>2];R+=8;var ne=E.write(b,Z,ae,ce,U);if(ne<0)return-1;L+=ne,U!==void 0&&(U+=ne)}return L})(yt.getStreamFromFD(c),d,h);return Pe[f>>2]=I,0}catch(b){if(E===void 0||b.name!=="ErrnoError")throw b;return b.errno}}},Ki=(function(){var c,d,h,f,I={a:Mt};function b(R,v){var U,L,K=R.exports;return D=(O=K).E,U=D.buffer,o.HEAP8=Z=new Int8Array(U),o.HEAP16=Se=new Int16Array(U),o.HEAP32=H=new Int32Array(U),o.HEAPU8=ue=new Uint8Array(U),o.HEAPU16=Ye=new Uint16Array(U),o.HEAPU32=Pe=new Uint32Array(U),o.HEAPF32=On=new Float32Array(U),o.HEAPF64=xn=new Float64Array(U),Pn=O.H,L=O.F,bs.unshift(L),No(),K}if(ie(),o.instantiateWasm)try{return o.instantiateWasm(I,b)}catch(R){N("Module.instantiateWasm callback failed with error: "+R),r(R)}(c=A,d=ui,h=I,f=function(R){b(R.instance)},c||typeof WebAssembly.instantiateStreaming!="function"||kt(d)||typeof fetch!="function"?Wr(d,h,f):fetch(d,{credentials:"same-origin"}).then(R=>WebAssembly.instantiateStreaming(R,h).then(f,function(v){return N("wasm streaming compile failed: "+v),N("falling back to ArrayBuffer instantiation"),Wr(d,h,f)}))).catch(r)}(),c=>(Ki=O.G)(c)),Nt=c=>(Nt=O.I)(c),Wn=()=>(Wn=O.J)(),br=c=>(br=O.K)(c),Gn=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=O.L)(),c=>(Gn=O.M)(c));o.dynCall_jiji=(c,d,h,f,I)=>(o.dynCall_jiji=O.N)(c,d,h,f,I),o._ff_h264_cabac_tables=67061;function xs(){function c(){Xe||(Xe=!0,o.calledRun=!0,kn||(o.noFSInit||E.init.initialized||E.init(),E.ignorePermissions=!1,Ir.init(),Hi(bs),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)d=o.postRun.shift(),Bi.unshift(d);var d;Hi(Bi)}()))}cr>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)d=o.preRun.shift(),Br.unshift(d);var d;Hi(Br)}(),cr>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),c()},1)):c()))}if(di=function c(){Xe||xs(),Xe||(di=c)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return xs(),t.ready}})(),Ay=yy,by=class extends rc{constructor(i){super(Ay,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)}},Zx=(()=>{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",u=typeof importScripts=="function",m=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(a||u)&&(u?m=self.location.href:typeof document!="undefined"&&document.currentScript&&(m=document.currentScript.src),i&&(m=i),m=m.indexOf("blob:")!==0?m.substr(0,m.replace(/[?#].*/,"").lastIndexOf("/")+1):"",u&&(s=S=>{var T=new XMLHttpRequest;return T.open("GET",S,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}));var p,g=o.print||console.log.bind(console),_=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 A,C;o.noExitRuntime,typeof WebAssembly!="object"&&cr("no native wasm support detected");var N,D,O,Z,ue,Se,Ye,H,Pe,On=!1,xn=[],Pn=[],kn=[],Br=0,bs=null,Bi=null;function cr(S){o.onAbort&&o.onAbort(S),_(S="Aborted("+S+")"),On=!0,S+=". Build with -sASSERTIONS for more info.";var T=new WebAssembly.RuntimeError(S);throw r(T),T}var ci,di;function ie(S){return S.startsWith("data:application/octet-stream;base64,")}function No(S){if(S==ci&&p)return new Uint8Array(p);if(s)return s(S);throw"both async and sync fetching of the wasm failed"}function Hr(S,T,w){return function(P){return p||!a&&!u||typeof fetch!="function"?Promise.resolve().then(()=>No(P)):fetch(P,{credentials:"same-origin"}).then(B=>{if(!B.ok)throw"failed to load wasm binary file at '"+P+"'";return B.arrayBuffer()}).catch(()=>No(P))}(S).then(P=>WebAssembly.instantiate(P,T)).then(P=>P).then(w,P=>{_("failed to asynchronously prepare wasm: "+P),cr(P)})}ie(ci="videodec_simd.wasm")||(di=ci,ci=o.locateFile?o.locateFile(di,m):m+di);var ui=S=>{for(;S.length>0;)S.shift()(o)};function Ln(S){this.excPtr=S,this.ptr=S-24,this.set_type=function(T){Se[this.ptr+4>>2]=T},this.get_type=function(){return Se[this.ptr+4>>2]},this.set_destructor=function(T){Se[this.ptr+8>>2]=T},this.get_destructor=function(){return Se[this.ptr+8>>2]},this.set_caught=function(T){T=T?1:0,N[this.ptr+12|0]=T},this.get_caught=function(){return N[this.ptr+12|0]!=0},this.set_rethrown=function(T){T=T?1:0,N[this.ptr+13|0]=T},this.get_rethrown=function(){return N[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){Se[this.ptr+16>>2]=T},this.get_adjusted_ptr=function(){return Se[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Lc(this.get_type()))return Se[this.excPtr>>2];var T=this.get_adjusted_ptr();return T!==0?T:this.excPtr}}function Ee(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 Ke=void 0;function kt(S){for(var T="",w=S;D[w];)T+=Ke[D[w++]];return T}var J={},Wr={},Hi={},Wi=void 0;function me(S){throw new Wi(S)}var Un=void 0;function Qt(S){throw new Un(S)}function Gi(S,T,w){function P(Y){var re=w(Y);re.length!==S.length&&Qt("Mismatched type converter count");for(var G=0;G<S.length;++G)Lt(S[G],re[G])}S.forEach(function(Y){Hi[Y]=T});var B=new Array(T.length),W=[],z=0;T.forEach((Y,re)=>{Wr.hasOwnProperty(Y)?B[re]=Wr[Y]:(W.push(Y),J.hasOwnProperty(Y)||(J[Y]=[]),J[Y].push(()=>{B[re]=Wr[Y],++z===W.length&&P(B)}))}),W.length===0&&P(B)}function Lt(S,T,w={}){if(!("argPackAdvance"in T))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(P,B,W={}){var z=B.name;if(P||me(`type "${z}" must have a positive integer typeid pointer`),Wr.hasOwnProperty(P)){if(W.ignoreDuplicateRegistrations)return;me(`Cannot register type '${z}' twice`)}if(Wr[P]=B,delete Hi[P],J.hasOwnProperty(P)){var Y=J[P];delete J[P],Y.forEach(re=>re())}}(S,T,w)}function Vn(S){if(!(this instanceof er)||!(S instanceof er))return!1;for(var T=this.$$.ptrType.registeredClass,w=this.$$.ptr,P=S.$$.ptrType.registeredClass,B=S.$$.ptr;T.baseClass;)w=T.upcast(w),T=T.baseClass;for(;P.baseClass;)B=P.upcast(B),P=P.baseClass;return T===P&&w===B}function Do(S){me(S.$$.ptrType.registeredClass.name+" instance already deleted")}var wo=!1;function Rs(S){}function Ir(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 Fn(S,T,w){if(T===w)return S;if(w.baseClass===void 0)return null;var P=Fn(S,T,w.baseClass);return P===null?null:w.downcast(P)}var j={};function ll(){return Object.keys(mi).length}function ml(){var S=[];for(var T in mi)mi.hasOwnProperty(T)&&S.push(mi[T]);return S}var li=[];function E(){for(;li.length;){var S=li.pop();S.$$.deleteScheduled=!1,S.delete()}}var ji=void 0;function yt(S){ji=S,li.length&&ji&&ji(E)}var mi={};function Ec(S,T){return T=function(w,P){for(P===void 0&&me("ptr should not be undefined");w.baseClass;)P=w.upcast(P),w=w.baseClass;return P}(S,T),mi[T]}function k(S,T){return T.ptrType&&T.ptr||Qt("makeClassHandle requires ptr and ptrType"),!!T.smartPtrType!=!!T.smartPtr&&Qt("Both smartPtrType and smartPtr must be specified"),T.count={value:1},dr(Object.create(S,{$$:{value:T}}))}function qi(S){var T=this.getPointee(S);if(!T)return this.destructor(S),null;var w=Ec(this.registeredClass,T);if(w!==void 0){if(w.$$.count.value===0)return w.$$.ptr=T,w.$$.smartPtr=S,w.clone();var P=w.clone();return this.destructor(S),P}function B(){return this.isSmartPointer?k(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:T,smartPtrType:this,smartPtr:S}):k(this.registeredClass.instancePrototype,{ptrType:this,ptr:S})}var W,z=this.registeredClass.getActualType(T),Y=j[z];if(!Y)return B.call(this);W=this.isConst?Y.constPointerType:Y.pointerType;var re=Fn(T,this.registeredClass,W.registeredClass);return re===null?B.call(this):this.isSmartPointer?k(W.registeredClass.instancePrototype,{ptrType:W,ptr:re,smartPtrType:this,smartPtr:S}):k(W.registeredClass.instancePrototype,{ptrType:W,ptr:re})}var dr=function(S){return typeof FinalizationRegistry=="undefined"?(dr=T=>T,S):(wo=new FinalizationRegistry(T=>{Ir(T.$$)}),Rs=T=>wo.unregister(T),(dr=T=>{var w=T.$$;if(w.smartPtr){var P={$$:w};wo.register(T,P,T)}return T})(S))};function vs(){if(this.$$.ptr||Do(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var S,T=dr(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 zi(){this.$$.ptr||Do(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),Rs(this),Ir(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ue(){return!this.$$.ptr}function _c(){return this.$$.ptr||Do(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),li.push(this),li.length===1&&ji&&ji(E),this.$$.deleteScheduled=!0,this}function er(){}function Gr(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 tr(S,T){return S=Gr(S),{[S]:function(){return T.apply(this,arguments)}}[S]}function Tc(S,T,w){if(S[T].overloadTable===void 0){var P=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[P.argCount]=P}}function $n(S,T,w,P,B,W,z,Y){this.name=S,this.constructor=T,this.instancePrototype=w,this.rawDestructor=P,this.baseClass=B,this.getActualType=W,this.upcast=z,this.downcast=Y,this.pureVirtualFunctions=[]}function Mo(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 Ic(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Lo(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 Mo(T.$$.ptr,w,this.registeredClass)}function Sc(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 "${Lo(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 P=T.$$.ptrType.registeredClass;if(w=Mo(T.$$.ptr,P,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 B=T.clone();w=this.rawShare(w,Ns.toHandle(function(){B.delete()})),S!==null&&S.push(this.rawDestructor,w)}break;default:me("Unsupporting sharing policy")}return w}function yc(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Lo(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 Mo(T.$$.ptr,w,this.registeredClass)}function Oo(S){return this.fromWireType(ue[S>>2])}function hl(S){return this.rawGetPointee&&(S=this.rawGetPointee(S)),S}function pl(S){this.rawDestructor&&this.rawDestructor(S)}function xo(S){S!==null&&S.delete()}function rr(S,T,w,P,B,W,z,Y,re,G,he){this.name=S,this.registeredClass=T,this.isReference=w,this.isConst=P,this.isSmartPointer=B,this.pointeeType=W,this.sharingPolicy=z,this.rawGetPointee=Y,this.rawConstructor=re,this.rawShare=G,this.rawDestructor=he,B||T.baseClass!==void 0?this.toWireType=Sc:P?(this.toWireType=Ic,this.destructorFunction=null):(this.toWireType=yc,this.destructorFunction=null)}var jr=[],Ac=S=>{var T=jr[S];return T||(S>=jr.length&&(jr.length=S+1),jr[S]=T=Pe.get(S)),T},Po=(S,T,w)=>S.includes("j")?((P,B,W)=>{var z=o["dynCall_"+P];return W&&W.length?z.apply(null,[B].concat(W)):z.call(null,B)})(S,T,w):Ac(T).apply(null,w);function Ji(S,T){var w,P,B,W=(S=kt(S)).includes("j")?(w=S,P=T,B=[],function(){return B.length=0,Object.assign(B,arguments),Po(w,P,B)}):Ac(T);return typeof W!="function"&&me(`unknown function pointer with signature ${S}: ${T}`),W}var ko=void 0;function bc(S){var T=Os(S),w=kt(T);return Ar(T),w}function Xi(S,T){var w=[],P={};throw T.forEach(function B(W){P[W]||Wr[W]||(Hi[W]?Hi[W].forEach(B):(w.push(W),P[W]=!0))}),new ko(`${S}: `+w.map(bc).join([", "]))}function Rc(S,T){for(var w=[],P=0;P<S;P++)w.push(Se[T+4*P>>2]);return w}function fl(S){for(;S.length;){var T=S.pop();S.pop()(T)}}function vc(S,T){if(!(S instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof S} which is not a function`);var w=tr(S.name||"unknownFunctionName",function(){});w.prototype=S.prototype;var P=new w,B=S.apply(P,T);return B instanceof Object?B:P}function Cc(S,T,w,P,B,W){var z=T.length;z<2&&me("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Y=T[1]!==null&&w!==null,re=!1,G=1;G<T.length;++G)if(T[G]!==null&&T[G].destructorFunction===void 0){re=!0;break}var he=T[0].name!=="void",De="",ve="";for(G=0;G<z-2;++G)De+=(G!==0?", ":"")+"arg"+G,ve+=(G!==0?", ":"")+"arg"+G+"Wired";var fe=`
65
+ `,Ve.push(ne),Gn(Function,Ve).apply(null,Me)}function Uc(){this.allocated=[void 0],this.freelist=[]}var Vt=new Uc;function Vc(c){c>=Vt.reserved&&--Vt.get(c).refcount==0&&Vt.free(c)}function br(){for(var c=0,d=Vt.reserved;d<Vt.allocated.length;++d)Vt.allocated[d]!==void 0&&++c;return c}var Zi={toValue:c=>(c||Ue("Cannot use deleted val. handle = "+c),Vt.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 Vt.allocate({refcount:1,value:c})}}};function xs(c){if(c===null)return"null";var d=typeof c;return d==="object"||d==="array"||d==="function"?c.toString():""+c}function Fc(c,d){switch(d){case 2:return function(h){return this.fromWireType(Pn[h>>2])};case 3:return function(h){return this.fromWireType(kn[h>>3])};default:throw new TypeError("Unknown float type: "+c)}}function $c(c,d,h){switch(d){case 0:return h?function(f){return Z[f]}:function(f){return ue[f]};case 1:return h?function(f){return Se[f>>1]}:function(f){return Ye[f>>1]};case 2:return h?function(f){return H[f>>2]}:function(f){return Pe[f>>2]};default:throw new TypeError("Unknown integer type: "+c)}}var S=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,T=(c,d)=>{for(var h=c,f=h>>1,I=f+d/2;!(f>=I)&&Ye[f];)++f;if((h=f<<1)-c>32&&S)return S.decode(ue.subarray(c,h));for(var b="",R=0;!(R>=d/2);++R){var v=Se[c+2*R>>1];if(v==0)break;b+=String.fromCharCode(v)}return b},w=(c,d,h)=>{if(h===void 0&&(h=2147483647),h<2)return 0;for(var f=d,I=(h-=2)<2*c.length?h/2:c.length,b=0;b<I;++b){var R=c.charCodeAt(b);Se[d>>1]=R,d+=2}return Se[d>>1]=0,d-f},P=c=>2*c.length,B=(c,d)=>{for(var h=0,f="";!(h>=d/4);){var I=H[c+4*h>>2];if(I==0)break;if(++h,I>=65536){var b=I-65536;f+=String.fromCharCode(55296|b>>10,56320|1023&b)}else f+=String.fromCharCode(I)}return f},W=(c,d,h)=>{if(h===void 0&&(h=2147483647),h<4)return 0;for(var f=d,I=f+h-4,b=0;b<c.length;++b){var R=c.charCodeAt(b);if(R>=55296&&R<=57343&&(R=65536+((1023&R)<<10)|1023&c.charCodeAt(++b)),H[d>>2]=R,(d+=4)+4>I)break}return H[d>>2]=0,d-f},z=c=>{for(var d=0,h=0;h<c.length;++h){var f=c.charCodeAt(h);f>=55296&&f<=57343&&++h,d+=4}return d},Y={},re=[],G=[],he={},De=()=>{if(!De.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",_:m||"./this.program"};for(var d in he)he[d]===void 0?delete c[d]:c[d]=he[d];var h=[];for(var d in c)h.push(`${d}=${c[d]}`);De.strings=h}return De.strings},ve,fe,we,it=function(c,d,h,f){c||(c=this),this.parent=c,this.mount=c.mount,this.mounted=null,this.id=E.nextInode++,this.name=d,this.mode=h,this.node_ops={},this.stream_ops={},this.rdev=f},Je=365,ft=146;Object.defineProperties(it.prototype,{read:{get:function(){return(this.mode&Je)===Je},set:function(c){c?this.mode|=Je:this.mode&=-366}},write:{get:function(){return(this.mode&ft)===ft},set:function(c){c?this.mode|=ft:this.mode&=-147}},isFolder:{get:function(){return E.isDir(this.mode)}},isDevice:{get:function(){return E.isChrdev(this.mode)}}}),E.FSNode=it,E.createPreloadedFile=function(c,d,h,f,I,b,R,v,V,L){var ee=d?Qt.resolve(me.join2(c,d)):c;function ae(ce){function ne(Ce){L&&L(),v||E.createDataFile(c,d,Ce,f,I,V),b&&b(),No()}(function(Ce,Ve,Me,ot){typeof Browser!="undefined"&&Browser.init();var et=!1;return ml.forEach(function(Et){et||Et.canHandle(Ve)&&(Et.handle(Ce,Ve,Me,ot),et=!0)}),et})(ce,ee,ne,()=>{R&&R(),No()})||ne(ce)}ie(),typeof h=="string"?ll(h,ce=>ae(ce),R):ae(h)},E.staticInit(),function(){for(var c=new Array(256),d=0;d<256;++d)c[d]=String.fromCharCode(d);Ic=c}(),zi=o.BindingError=class extends Error{constructor(c){super(c),this.name="BindingError"}},Sc=o.InternalError=class extends Error{constructor(c){super(c),this.name="InternalError"}},yr.prototype.isAliasOf=yc,yr.prototype.clone=Nc,yr.prototype.delete=fl,yr.prototype.isDeleted=Dc,yr.prototype.deleteLater=wc,o.getInheritedInstanceCount=hl,o.getLiveInheritedInstances=pl,o.flushPendingDeletes=rr,o.setDelayFunction=vc,Ar.prototype.getPointee=_l,Ar.prototype.destructor=xc,Ar.prototype.argPackAdvance=8,Ar.prototype.readValueFromPointer=Uo,Ar.prototype.deleteObject=Tl,Ar.prototype.fromWireType=Cc,kc=o.UnboundTypeError=(ve=Error,(we=Ns(fe="UnboundTypeError",function(c){this.name=fe,this.message=c;var d=new Error(c).stack;d!==void 0&&(this.stack=this.toString()+`
66
+ `+d.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(ve.prototype),we.prototype.constructor=we,we.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},we),Object.assign(Uc.prototype,{get(c){return this.allocated[c]},has(c){return this.allocated[c]!==void 0},allocate(c){var d=this.freelist.pop()||this.allocated.length;return this.allocated[d]=c,d},free(c){this.allocated[c]=void 0,this.freelist.push(c)}}),Vt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Vt.reserved=Vt.allocated.length,o.count_emval_handles=br;var Xe,Mt={p:function(c,d,h){throw new Wi(c).init(d,h),c},C:function(c,d,h){yt.varargs=h;try{var f=yt.getStreamFromFD(c);switch(d){case 0:return(I=yt.get())<0?-28:E.createStream(f,I).fd;case 1:case 2:case 6:case 7:return 0;case 3:return f.flags;case 4:var I=yt.get();return f.flags|=I,0;case 5:return I=yt.get(),Se[I+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return b=28,H[jn()>>2]=b,-1}}catch(R){if(E===void 0||R.name!=="ErrnoError")throw R;return-R.errno}var b},w:function(c,d,h,f){yt.varargs=f;try{d=yt.getStr(d),d=yt.calculateAt(c,d);var I=f?yt.get():0;return E.open(d,h,I).fd}catch(b){if(E===void 0||b.name!=="ErrnoError")throw b;return-b.errno}},t:function(c,d,h,f,I){},n:function(c,d,h,f,I){var b=mi(h);tr(c,{name:d=k(d),fromWireType:function(R){return!!R},toWireType:function(R,v){return v?f:I},argPackAdvance:8,readValueFromPointer:function(R){var v;if(h===1)v=Z;else if(h===2)v=Se;else{if(h!==4)throw new TypeError("Unknown boolean type size: "+d);v=H}return this.fromWireType(v[R>>b])},destructorFunction:null})},r:function(c,d,h,f,I,b,R,v,V,L,ee,ae,ce){ee=k(ee),b=Qi(I,b),v&&(v=Qi(R,v)),L&&(L=Qi(V,L)),ce=Qi(ae,ce);var ne=Ut(ee);(function(Ce,Ve,Me){o.hasOwnProperty(Ce)?((Me===void 0||o[Ce].overloadTable!==void 0&&o[Ce].overloadTable[Me]!==void 0)&&Ue(`Cannot register public name '${Ce}' twice`),Mc(o,Ce,Ce),o.hasOwnProperty(Me)&&Ue(`Cannot register multiple overloads of a function with the same number of arguments (${Me})!`),o[Ce].overloadTable[Me]=Ve):(o[Ce]=Ve,Me!==void 0&&(o[Ce].numArguments=Me))})(ne,function(){Os(`Cannot construct ${ee} due to unbound types`,[f])}),Gr([c,d,h],f?[f]:[],function(Ce){var Ve,Me;Ce=Ce[0],Me=f?(Ve=Ce.registeredClass).instancePrototype:yr.prototype;var ot=Ns(ne,function(){if(Object.getPrototypeOf(this)!==et)throw new zi("Use 'new' to construct "+ee);if(Et.constructor_body===void 0)throw new zi(ee+" has no accessible constructor");var mt=Et.constructor_body[arguments.length];if(mt===void 0)throw new zi(`Tried to invoke ctor of ${ee} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Et.constructor_body).toString()}) parameters instead!`);return mt.apply(this,arguments)}),et=Object.create(Me,{constructor:{value:ot}});ot.prototype=et;var Et=new Ds(ee,ot,et,ce,Ve,b,v,L);Et.baseClass&&(Et.baseClass.__derivedClasses===void 0&&(Et.baseClass.__derivedClasses=[]),Et.baseClass.__derivedClasses.push(Et));var eo=new Ar(ee,Et,!0,!1,!1),ur=new Ar(ee+"*",Et,!1,!1,!1),Vo=new Ar(ee+" const*",Et,!1,!0,!1);return Oo[c]={pointerType:ur,constPointerType:Vo},function(mt,$p,Sl){o.hasOwnProperty(mt)||er("Replacing nonexistant public symbol"),o[mt].overloadTable!==void 0&&Sl!==void 0?o[mt].overloadTable[Sl]=$p:(o[mt]=$p,o[mt].argCount=Sl)}(ne,ot),[eo,ur,Vo]})},q:function(c,d,h,f,I,b){var R=Wn(d,h);I=Qi(f,I),Gr([],[c],function(v){var V=`constructor ${(v=v[0]).name}`;if(v.registeredClass.constructor_body===void 0&&(v.registeredClass.constructor_body=[]),v.registeredClass.constructor_body[d-1]!==void 0)throw new zi(`Cannot register multiple constructors with identical number of parameters (${d-1}) for class '${v.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return v.registeredClass.constructor_body[d-1]=()=>{Os(`Cannot construct ${v.name} due to unbound types`,R)},Gr([],R,function(L){return L.splice(1,0,null),v.registeredClass.constructor_body[d-1]=Yi(V,L,null,I,b),[]}),[]})},d:function(c,d,h,f,I,b,R,v,V){var L=Wn(h,f);d=k(d),b=Qi(I,b),Gr([],[c],function(ee){var ae=`${(ee=ee[0]).name}.${d}`;function ce(){Os(`Cannot call ${ae} due to unbound types`,L)}d.startsWith("@@")&&(d=Symbol[d.substring(2)]),v&&ee.registeredClass.pureVirtualFunctions.push(d);var ne=ee.registeredClass.instancePrototype,Ce=ne[d];return Ce===void 0||Ce.overloadTable===void 0&&Ce.className!==ee.name&&Ce.argCount===h-2?(ce.argCount=h-2,ce.className=ee.name,ne[d]=ce):(Mc(ne,d,ae),ne[d].overloadTable[h-2]=ce),Gr([],L,function(Ve){var Me=Yi(ae,Ve,ee,b,R,V);return ne[d].overloadTable===void 0?(Me.argCount=h-2,ne[d]=Me):ne[d].overloadTable[h-2]=Me,[]}),[]})},D:function(c,d){tr(c,{name:d=k(d),fromWireType:function(h){var f=Zi.toValue(h);return Vc(h),f},toWireType:function(h,f){return Zi.toHandle(f)},argPackAdvance:8,readValueFromPointer:Uo,destructorFunction:null})},k:function(c,d,h){var f=mi(h);tr(c,{name:d=k(d),fromWireType:function(I){return I},toWireType:function(I,b){return b},argPackAdvance:8,readValueFromPointer:Fc(d,f),destructorFunction:null})},c:function(c,d,h,f,I){d=k(d),I===-1&&(I=4294967295);var b=mi(h),R=L=>L;if(f===0){var v=32-8*h;R=L=>L<<v>>>v}var V=d.includes("unsigned");tr(c,{name:d,fromWireType:R,toWireType:V?function(L,ee){return this.name,ee>>>0}:function(L,ee){return this.name,ee},argPackAdvance:8,readValueFromPointer:$c(d,b,f!==0),destructorFunction:null})},b:function(c,d,h){var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][d];function I(b){var R=Pe,v=R[b>>=2],V=R[b+1];return new f(R.buffer,V,v)}tr(c,{name:h=k(h),fromWireType:I,argPackAdvance:8,readValueFromPointer:I},{ignoreDuplicateRegistrations:!0})},j:function(c,d){var h=(d=k(d))==="std::string";tr(c,{name:d,fromWireType:function(f){var I,b=Pe[f>>2],R=f+4;if(h)for(var v=R,V=0;V<=b;++V){var L=R+V;if(V==b||ue[L]==0){var ee=ji(v,L-v);I===void 0?I=ee:(I+="\0",I+=ee),v=L+1}}else{var ae=new Array(b);for(V=0;V<b;++V)ae[V]=String.fromCharCode(ue[R+V]);I=ae.join("")}return Nt(f),I},toWireType:function(f,I){var b;I instanceof ArrayBuffer&&(I=new Uint8Array(I));var R=typeof I=="string";R||I instanceof Uint8Array||I instanceof Uint8ClampedArray||I instanceof Int8Array||Ue("Cannot pass non-string to std::string"),b=h&&R?Do(I):I.length;var v=Ki(4+b+1),V=v+4;if(Pe[v>>2]=b,h&&R)wo(I,ue,V,b+1);else if(R)for(var L=0;L<b;++L){var ee=I.charCodeAt(L);ee>255&&(Nt(V),Ue("String has UTF-16 code units that do not fit in 8 bits")),ue[V+L]=ee}else for(L=0;L<b;++L)ue[V+L]=I[L];return f!==null&&f.push(Nt,v),v},argPackAdvance:8,readValueFromPointer:Uo,destructorFunction:function(f){Nt(f)}})},f:function(c,d,h){var f,I,b,R,v;h=k(h),d===2?(f=T,I=w,R=P,b=()=>Ye,v=1):d===4&&(f=B,I=W,R=z,b=()=>Pe,v=2),tr(c,{name:h,fromWireType:function(V){for(var L,ee=Pe[V>>2],ae=b(),ce=V+4,ne=0;ne<=ee;++ne){var Ce=V+4+ne*d;if(ne==ee||ae[Ce>>v]==0){var Ve=f(ce,Ce-ce);L===void 0?L=Ve:(L+="\0",L+=Ve),ce=Ce+d}}return Nt(V),L},toWireType:function(V,L){typeof L!="string"&&Ue(`Cannot pass non-string to C++ string type ${h}`);var ee=R(L),ae=Ki(4+ee+d);return Pe[ae>>2]=ee>>v,I(L,ae+4,ee+d),V!==null&&V.push(Nt,ae),ae},argPackAdvance:8,readValueFromPointer:Uo,destructorFunction:function(V){Nt(V)}})},o:function(c,d){tr(c,{isVoid:!0,name:d=k(d),argPackAdvance:0,fromWireType:function(){},toWireType:function(h,f){}})},g:function(c,d,h,f){var I,b;(c=re[c])(d=Zi.toValue(d),h=(b=Y[I=h])===void 0?k(I):b,null,f)},m:Vc,l:function(c,d){var h=function(Ve,Me){for(var ot,et,Et,eo=new Array(Ve),ur=0;ur<Ve;++ur)eo[ur]=(ot=Pe[Me+4*ur>>2],et="parameter "+ur,Et=void 0,(Et=dr[ot])===void 0&&Ue(et+" has unknown type "+Ms(ot)),Et);return eo}(c,d),f=h[0],I=f.name+"_$"+h.slice(1).map(function(Ve){return Ve.name}).join("_")+"$",b=G[I];if(b!==void 0)return b;for(var R=["retType"],v=[f],V="",L=0;L<c-1;++L)V+=(L!==0?", ":"")+"arg"+L,R.push("argType"+L),v.push(h[1+L]);var ee="return function "+Ut("methodCaller_"+I)+`(handle, name, destructors, args) {
67
+ `,ae=0;for(L=0;L<c-1;++L)ee+=" var arg"+L+" = argType"+L+".readValueFromPointer(args"+(ae?"+"+ae:"")+`);
68
+ `,ae+=h[L+1].argPackAdvance;for(ee+=" var rv = handle[name]("+V+`);
69
+ `,L=0;L<c-1;++L)h[L+1].deleteObject&&(ee+=" argType"+L+".deleteObject(arg"+L+`);
70
+ `);f.isVoid||(ee+=` return retType.toWireType(destructors, rv);
71
+ `),ee+=`};
72
+ `,R.push(ee);var ce,ne,Ce=Gn(Function,R).apply(null,v);return ce=Ce,ne=re.length,re.push(ce),b=ne,G[I]=b,b},a:()=>{Hr("")},e:function(){return Date.now()},v:()=>ue.length,A:(c,d,h)=>ue.copyWithin(c,d,d+h),u:c=>{ue.length,Hr("OOM")},y:(c,d)=>{var h=0;return De().forEach(function(f,I){var b=d+h;Pe[c+4*I>>2]=b,((R,v)=>{for(var V=0;V<R.length;++V)Z[0|v++]=R.charCodeAt(V);Z[0|v]=0})(f,b),h+=f.length+1}),0},z:(c,d)=>{var h=De();Pe[c>>2]=h.length;var f=0;return h.forEach(function(I){f+=I.length+1}),Pe[d>>2]=f,0},i:function(c){try{var d=yt.getStreamFromFD(c);return E.close(d),0}catch(h){if(E===void 0||h.name!=="ErrnoError")throw h;return h.errno}},x:function(c,d){try{var h=yt.getStreamFromFD(c),f=h.tty?2:E.isDir(h.mode)?3:E.isLink(h.mode)?7:4;return Z[d|0]=f,Se[d+2>>1]=0,Ke=[0,(Ee=0,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[d+8>>2]=Ke[0],H[d+12>>2]=Ke[1],Ke=[0,(Ee=0,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[d+16>>2]=Ke[0],H[d+20>>2]=Ke[1],0}catch(I){if(E===void 0||I.name!=="ErrnoError")throw I;return I.errno}},B:function(c,d,h,f){try{var I=((b,R,v,V)=>{for(var L=0,ee=0;ee<v;ee++){var ae=Pe[R>>2],ce=Pe[R+4>>2];R+=8;var ne=E.read(b,Z,ae,ce,V);if(ne<0)return-1;if(L+=ne,ne<ce)break;V!==void 0&&(V+=ne)}return L})(yt.getStreamFromFD(c),d,h);return Pe[f>>2]=I,0}catch(b){if(E===void 0||b.name!=="ErrnoError")throw b;return b.errno}},s:function(c,d,h,f,I){var b,R,v=(R=h)+2097152>>>0<4194305-!!(b=d)?(b>>>0)+4294967296*R:NaN;try{if(isNaN(v))return 61;var V=yt.getStreamFromFD(c);return E.llseek(V,v,f),Ke=[V.position>>>0,(Ee=V.position,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[I>>2]=Ke[0],H[I+4>>2]=Ke[1],V.getdents&&v===0&&f===0&&(V.getdents=null),0}catch(L){if(E===void 0||L.name!=="ErrnoError")throw L;return L.errno}},h:function(c,d,h,f){try{var I=((b,R,v,V)=>{for(var L=0,ee=0;ee<v;ee++){var ae=Pe[R>>2],ce=Pe[R+4>>2];R+=8;var ne=E.write(b,Z,ae,ce,V);if(ne<0)return-1;L+=ne,V!==void 0&&(V+=ne)}return L})(yt.getStreamFromFD(c),d,h);return Pe[f>>2]=I,0}catch(b){if(E===void 0||b.name!=="ErrnoError")throw b;return b.errno}}},Ki=(function(){var c,d,h,f,I={a:Mt};function b(R,v){var V,L,ee=R.exports;return D=(O=ee).E,V=D.buffer,o.HEAP8=Z=new Int8Array(V),o.HEAP16=Se=new Int16Array(V),o.HEAP32=H=new Int32Array(V),o.HEAPU8=ue=new Uint8Array(V),o.HEAPU16=Ye=new Uint16Array(V),o.HEAPU32=Pe=new Uint32Array(V),o.HEAPF32=Pn=new Float32Array(V),o.HEAPF64=kn=new Float64Array(V),Ln=O.H,L=O.F,Rs.unshift(L),No(),ee}if(ie(),o.instantiateWasm)try{return o.instantiateWasm(I,b)}catch(R){N("Module.instantiateWasm callback failed with error: "+R),r(R)}(c=A,d=ui,h=I,f=function(R){b(R.instance)},c||typeof WebAssembly.instantiateStreaming!="function"||kt(d)||typeof fetch!="function"?Wr(d,h,f):fetch(d,{credentials:"same-origin"}).then(R=>WebAssembly.instantiateStreaming(R,h).then(f,function(v){return N("wasm streaming compile failed: "+v),N("falling back to ArrayBuffer instantiation"),Wr(d,h,f)}))).catch(r)}(),c=>(Ki=O.G)(c)),Nt=c=>(Nt=O.I)(c),jn=()=>(jn=O.J)(),Rr=c=>(Rr=O.K)(c),qn=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=O.L)(),c=>(qn=O.M)(c));o.dynCall_jiji=(c,d,h,f,I)=>(o.dynCall_jiji=O.N)(c,d,h,f,I),o._ff_h264_cabac_tables=67061;function Ps(){function c(){Xe||(Xe=!0,o.calledRun=!0,Un||(o.noFSInit||E.init.initialized||E.init(),E.ignorePermissions=!1,Sr.init(),Hi(Rs),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)d=o.postRun.shift(),Bi.unshift(d);var d;Hi(Bi)}()))}cr>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)d=o.preRun.shift(),Br.unshift(d);var d;Hi(Br)}(),cr>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),c()},1)):c()))}if(di=function c(){Xe||Ps(),Xe||(di=c)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Ps(),t.ready}})(),by=Ay,Ry=class extends oc{constructor(i){super(by,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)}},Kx=(()=>{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",u=typeof importScripts=="function",m=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(a||u)&&(u?m=self.location.href:typeof document!="undefined"&&document.currentScript&&(m=document.currentScript.src),i&&(m=i),m=m.indexOf("blob:")!==0?m.substr(0,m.replace(/[?#].*/,"").lastIndexOf("/")+1):"",u&&(s=S=>{var T=new XMLHttpRequest;return T.open("GET",S,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}));var p,g=o.print||console.log.bind(console),_=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 A,C;o.noExitRuntime,typeof WebAssembly!="object"&&cr("no native wasm support detected");var N,D,O,Z,ue,Se,Ye,H,Pe,Pn=!1,kn=[],Ln=[],Un=[],Br=0,Rs=null,Bi=null;function cr(S){o.onAbort&&o.onAbort(S),_(S="Aborted("+S+")"),Pn=!0,S+=". Build with -sASSERTIONS for more info.";var T=new WebAssembly.RuntimeError(S);throw r(T),T}var ci,di;function ie(S){return S.startsWith("data:application/octet-stream;base64,")}function No(S){if(S==ci&&p)return new Uint8Array(p);if(s)return s(S);throw"both async and sync fetching of the wasm failed"}function Hr(S,T,w){return function(P){return p||!a&&!u||typeof fetch!="function"?Promise.resolve().then(()=>No(P)):fetch(P,{credentials:"same-origin"}).then(B=>{if(!B.ok)throw"failed to load wasm binary file at '"+P+"'";return B.arrayBuffer()}).catch(()=>No(P))}(S).then(P=>WebAssembly.instantiate(P,T)).then(P=>P).then(w,P=>{_("failed to asynchronously prepare wasm: "+P),cr(P)})}ie(ci="videodec_simd.wasm")||(di=ci,ci=o.locateFile?o.locateFile(di,m):m+di);var ui=S=>{for(;S.length>0;)S.shift()(o)};function Vn(S){this.excPtr=S,this.ptr=S-24,this.set_type=function(T){Se[this.ptr+4>>2]=T},this.get_type=function(){return Se[this.ptr+4>>2]},this.set_destructor=function(T){Se[this.ptr+8>>2]=T},this.get_destructor=function(){return Se[this.ptr+8>>2]},this.set_caught=function(T){T=T?1:0,N[this.ptr+12|0]=T},this.get_caught=function(){return N[this.ptr+12|0]!=0},this.set_rethrown=function(T){T=T?1:0,N[this.ptr+13|0]=T},this.get_rethrown=function(){return N[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){Se[this.ptr+16>>2]=T},this.get_adjusted_ptr=function(){return Se[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Fc(this.get_type()))return Se[this.excPtr>>2];var T=this.get_adjusted_ptr();return T!==0?T:this.excPtr}}function Ee(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 Ke=void 0;function kt(S){for(var T="",w=S;D[w];)T+=Ke[D[w++]];return T}var J={},Wr={},Hi={},Wi=void 0;function me(S){throw new Wi(S)}var Fn=void 0;function Qt(S){throw new Fn(S)}function Gi(S,T,w){function P(Y){var re=w(Y);re.length!==S.length&&Qt("Mismatched type converter count");for(var G=0;G<S.length;++G)Lt(S[G],re[G])}S.forEach(function(Y){Hi[Y]=T});var B=new Array(T.length),W=[],z=0;T.forEach((Y,re)=>{Wr.hasOwnProperty(Y)?B[re]=Wr[Y]:(W.push(Y),J.hasOwnProperty(Y)||(J[Y]=[]),J[Y].push(()=>{B[re]=Wr[Y],++z===W.length&&P(B)}))}),W.length===0&&P(B)}function Lt(S,T,w={}){if(!("argPackAdvance"in T))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(P,B,W={}){var z=B.name;if(P||me(`type "${z}" must have a positive integer typeid pointer`),Wr.hasOwnProperty(P)){if(W.ignoreDuplicateRegistrations)return;me(`Cannot register type '${z}' twice`)}if(Wr[P]=B,delete Hi[P],J.hasOwnProperty(P)){var Y=J[P];delete J[P],Y.forEach(re=>re())}}(S,T,w)}function $n(S){if(!(this instanceof er)||!(S instanceof er))return!1;for(var T=this.$$.ptrType.registeredClass,w=this.$$.ptr,P=S.$$.ptrType.registeredClass,B=S.$$.ptr;T.baseClass;)w=T.upcast(w),T=T.baseClass;for(;P.baseClass;)B=P.upcast(B),P=P.baseClass;return T===P&&w===B}function Do(S){me(S.$$.ptrType.registeredClass.name+" instance already deleted")}var wo=!1;function vs(S){}function Sr(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 Bn(S,T,w){if(T===w)return S;if(w.baseClass===void 0)return null;var P=Bn(S,T,w.baseClass);return P===null?null:w.downcast(P)}var j={};function ll(){return Object.keys(mi).length}function ml(){var S=[];for(var T in mi)mi.hasOwnProperty(T)&&S.push(mi[T]);return S}var li=[];function E(){for(;li.length;){var S=li.pop();S.$$.deleteScheduled=!1,S.delete()}}var ji=void 0;function yt(S){ji=S,li.length&&ji&&ji(E)}var mi={};function Ic(S,T){return T=function(w,P){for(P===void 0&&me("ptr should not be undefined");w.baseClass;)P=w.upcast(P),w=w.baseClass;return P}(S,T),mi[T]}function k(S,T){return T.ptrType&&T.ptr||Qt("makeClassHandle requires ptr and ptrType"),!!T.smartPtrType!=!!T.smartPtr&&Qt("Both smartPtrType and smartPtr must be specified"),T.count={value:1},dr(Object.create(S,{$$:{value:T}}))}function qi(S){var T=this.getPointee(S);if(!T)return this.destructor(S),null;var w=Ic(this.registeredClass,T);if(w!==void 0){if(w.$$.count.value===0)return w.$$.ptr=T,w.$$.smartPtr=S,w.clone();var P=w.clone();return this.destructor(S),P}function B(){return this.isSmartPointer?k(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:T,smartPtrType:this,smartPtr:S}):k(this.registeredClass.instancePrototype,{ptrType:this,ptr:S})}var W,z=this.registeredClass.getActualType(T),Y=j[z];if(!Y)return B.call(this);W=this.isConst?Y.constPointerType:Y.pointerType;var re=Bn(T,this.registeredClass,W.registeredClass);return re===null?B.call(this):this.isSmartPointer?k(W.registeredClass.instancePrototype,{ptrType:W,ptr:re,smartPtrType:this,smartPtr:S}):k(W.registeredClass.instancePrototype,{ptrType:W,ptr:re})}var dr=function(S){return typeof FinalizationRegistry=="undefined"?(dr=T=>T,S):(wo=new FinalizationRegistry(T=>{Sr(T.$$)}),vs=T=>wo.unregister(T),(dr=T=>{var w=T.$$;if(w.smartPtr){var P={$$:w};wo.register(T,P,T)}return T})(S))};function Cs(){if(this.$$.ptr||Do(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var S,T=dr(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 zi(){this.$$.ptr||Do(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),vs(this),Sr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ue(){return!this.$$.ptr}function Sc(){return this.$$.ptr||Do(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),li.push(this),li.length===1&&ji&&ji(E),this.$$.deleteScheduled=!0,this}function er(){}function Gr(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 tr(S,T){return S=Gr(S),{[S]:function(){return T.apply(this,arguments)}}[S]}function yc(S,T,w){if(S[T].overloadTable===void 0){var P=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[P.argCount]=P}}function Hn(S,T,w,P,B,W,z,Y){this.name=S,this.constructor=T,this.instancePrototype=w,this.rawDestructor=P,this.baseClass=B,this.getActualType=W,this.upcast=z,this.downcast=Y,this.pureVirtualFunctions=[]}function Mo(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 Ac(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Lo(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 Mo(T.$$.ptr,w,this.registeredClass)}function bc(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 "${Lo(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 P=T.$$.ptrType.registeredClass;if(w=Mo(T.$$.ptr,P,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 B=T.clone();w=this.rawShare(w,Ds.toHandle(function(){B.delete()})),S!==null&&S.push(this.rawDestructor,w)}break;default:me("Unsupporting sharing policy")}return w}function Rc(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Lo(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 Mo(T.$$.ptr,w,this.registeredClass)}function Oo(S){return this.fromWireType(ue[S>>2])}function hl(S){return this.rawGetPointee&&(S=this.rawGetPointee(S)),S}function pl(S){this.rawDestructor&&this.rawDestructor(S)}function xo(S){S!==null&&S.delete()}function rr(S,T,w,P,B,W,z,Y,re,G,he){this.name=S,this.registeredClass=T,this.isReference=w,this.isConst=P,this.isSmartPointer=B,this.pointeeType=W,this.sharingPolicy=z,this.rawGetPointee=Y,this.rawConstructor=re,this.rawShare=G,this.rawDestructor=he,B||T.baseClass!==void 0?this.toWireType=bc:P?(this.toWireType=Ac,this.destructorFunction=null):(this.toWireType=Rc,this.destructorFunction=null)}var jr=[],vc=S=>{var T=jr[S];return T||(S>=jr.length&&(jr.length=S+1),jr[S]=T=Pe.get(S)),T},Po=(S,T,w)=>S.includes("j")?((P,B,W)=>{var z=o["dynCall_"+P];return W&&W.length?z.apply(null,[B].concat(W)):z.call(null,B)})(S,T,w):vc(T).apply(null,w);function Ji(S,T){var w,P,B,W=(S=kt(S)).includes("j")?(w=S,P=T,B=[],function(){return B.length=0,Object.assign(B,arguments),Po(w,P,B)}):vc(T);return typeof W!="function"&&me(`unknown function pointer with signature ${S}: ${T}`),W}var ko=void 0;function Cc(S){var T=xs(S),w=kt(T);return br(T),w}function Xi(S,T){var w=[],P={};throw T.forEach(function B(W){P[W]||Wr[W]||(Hi[W]?Hi[W].forEach(B):(w.push(W),P[W]=!0))}),new ko(`${S}: `+w.map(Cc).join([", "]))}function Nc(S,T){for(var w=[],P=0;P<S;P++)w.push(Se[T+4*P>>2]);return w}function fl(S){for(;S.length;){var T=S.pop();S.pop()(T)}}function Dc(S,T){if(!(S instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof S} which is not a function`);var w=tr(S.name||"unknownFunctionName",function(){});w.prototype=S.prototype;var P=new w,B=S.apply(P,T);return B instanceof Object?B:P}function wc(S,T,w,P,B,W){var z=T.length;z<2&&me("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Y=T[1]!==null&&w!==null,re=!1,G=1;G<T.length;++G)if(T[G]!==null&&T[G].destructorFunction===void 0){re=!0;break}var he=T[0].name!=="void",De="",ve="";for(G=0;G<z-2;++G)De+=(G!==0?", ":"")+"arg"+G,ve+=(G!==0?", ":"")+"arg"+G+"Wired";var fe=`
73
73
  return function ${Gr(S)}(${De}) {
74
74
  if (arguments.length !== ${z-2}) {
75
75
  throwBindingError('function ${S} called with ${arguments.length} arguments, expected ${z-2} args!');
@@ -82,31 +82,31 @@ return ret;
82
82
  `,it.push(ft+"_dtor"),Je.push(T[G].destructorFunction))}return he&&(fe+=`var ret = retType.fromWireType(rv);
83
83
  return ret;
84
84
  `),fe+=`}
85
- `,it.push(fe),vc(Function,it).apply(null,Je)}function Sr(){this.allocated=[void 0],this.freelist=[]}var Ut=new Sr;function Cs(S){S>=Ut.reserved&&--Ut.get(S).refcount==0&&Ut.free(S)}function Nc(){for(var S=0,T=Ut.reserved;T<Ut.allocated.length;++T)Ut.allocated[T]!==void 0&&++S;return S}var Ns={toValue:S=>(S||me("Cannot use deleted val. handle = "+S),Ut.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 Ut.allocate({refcount:1,value:S})}}};function Lo(S){if(S===null)return"null";var T=typeof S;return T==="object"||T==="array"||T==="function"?S.toString():""+S}function gl(S,T){switch(T){case 2:return function(w){return this.fromWireType(Ye[w>>2])};case 3:return function(w){return this.fromWireType(H[w>>3])};default:throw new TypeError("Unknown float type: "+S)}}function El(S,T,w){switch(T){case 0:return w?function(P){return N[P]}:function(P){return D[P]};case 1:return w?function(P){return O[P>>1]}:function(P){return Z[P>>1]};case 2:return w?function(P){return ue[P>>2]}:function(P){return Se[P>>2]};default:throw new TypeError("Unknown integer type: "+S)}}var Dc=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Uo=(S,T,w)=>{for(var P=T+w,B=T;S[B]&&!(B>=P);)++B;if(B-T>16&&S.buffer&&Dc)return Dc.decode(S.subarray(T,B));for(var W="";T<B;){var z=S[T++];if(128&z){var Y=63&S[T++];if((224&z)!=192){var re=63&S[T++];if((z=(240&z)==224?(15&z)<<12|Y<<6|re:(7&z)<<18|Y<<12|re<<6|63&S[T++])<65536)W+=String.fromCharCode(z);else{var G=z-65536;W+=String.fromCharCode(55296|G>>10,56320|1023&G)}}else W+=String.fromCharCode((31&z)<<6|Y)}else W+=String.fromCharCode(z)}return W},_l=(S,T)=>S?Uo(D,S,T):"",wc=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,Tl=(S,T)=>{for(var w=S,P=w>>1,B=P+T/2;!(P>=B)&&Z[P];)++P;if((w=P<<1)-S>32&&wc)return wc.decode(D.subarray(S,w));for(var W="",z=0;!(z>=T/2);++z){var Y=O[S+2*z>>1];if(Y==0)break;W+=String.fromCharCode(Y)}return W},yr=(S,T,w)=>{if(w===void 0&&(w=2147483647),w<2)return 0;for(var P=T,B=(w-=2)<2*S.length?w/2:S.length,W=0;W<B;++W){var z=S.charCodeAt(W);O[T>>1]=z,T+=2}return O[T>>1]=0,T-P},Ds=S=>2*S.length,Mc=(S,T)=>{for(var w=0,P="";!(w>=T/4);){var B=ue[S+4*w>>2];if(B==0)break;if(++w,B>=65536){var W=B-65536;P+=String.fromCharCode(55296|W>>10,56320|1023&W)}else P+=String.fromCharCode(B)}return P},Il=(S,T,w)=>{if(w===void 0&&(w=2147483647),w<4)return 0;for(var P=T,B=P+w-4,W=0;W<S.length;++W){var z=S.charCodeAt(W);if(z>=55296&&z<=57343&&(z=65536+((1023&z)<<10)|1023&S.charCodeAt(++W)),ue[T>>2]=z,(T+=4)+4>B)break}return ue[T>>2]=0,T-P},Qi=S=>{for(var T=0,w=0;w<S.length;++w){var P=S.charCodeAt(w);P>=55296&&P<=57343&&++w,T+=4}return T},Oc={},ws=[],Ms=[],Bn;Bn=()=>performance.now();var xc,Hn,Yi,Pc=[null,[],[]];(function(){for(var S=new Array(256),T=0;T<256;++T)S[T]=String.fromCharCode(T);Ke=S})(),Wi=o.BindingError=class extends Error{constructor(S){super(S),this.name="BindingError"}},Un=o.InternalError=class extends Error{constructor(S){super(S),this.name="InternalError"}},er.prototype.isAliasOf=Vn,er.prototype.clone=vs,er.prototype.delete=zi,er.prototype.isDeleted=Ue,er.prototype.deleteLater=_c,o.getInheritedInstanceCount=ll,o.getLiveInheritedInstances=ml,o.flushPendingDeletes=E,o.setDelayFunction=yt,rr.prototype.getPointee=hl,rr.prototype.destructor=pl,rr.prototype.argPackAdvance=8,rr.prototype.readValueFromPointer=Oo,rr.prototype.deleteObject=xo,rr.prototype.fromWireType=qi,ko=o.UnboundTypeError=(xc=Error,(Yi=tr(Hn="UnboundTypeError",function(S){this.name=Hn,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(xc.prototype),Yi.prototype.constructor=Yi,Yi.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},Yi),Object.assign(Sr.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)}}),Ut.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Ut.reserved=Ut.allocated.length,o.count_emval_handles=Nc;var Vt,kc={o:function(S,T,w){throw new Ln(S).init(T,w),S},r:function(S,T,w,P,B){},m:function(S,T,w,P,B){var W=Ee(w);Lt(S,{name:T=kt(T),fromWireType:function(z){return!!z},toWireType:function(z,Y){return Y?P:B},argPackAdvance:8,readValueFromPointer:function(z){var Y;if(w===1)Y=N;else if(w===2)Y=O;else{if(w!==4)throw new TypeError("Unknown boolean type size: "+T);Y=ue}return this.fromWireType(Y[z>>W])},destructorFunction:null})},q:function(S,T,w,P,B,W,z,Y,re,G,he,De,ve){he=kt(he),W=Ji(B,W),Y&&(Y=Ji(z,Y)),G&&(G=Ji(re,G)),ve=Ji(De,ve);var fe=Gr(he);(function(we,it,Je){o.hasOwnProperty(we)?((Je===void 0||o[we].overloadTable!==void 0&&o[we].overloadTable[Je]!==void 0)&&me(`Cannot register public name '${we}' twice`),Tc(o,we,we),o.hasOwnProperty(Je)&&me(`Cannot register multiple overloads of a function with the same number of arguments (${Je})!`),o[we].overloadTable[Je]=it):(o[we]=it,Je!==void 0&&(o[we].numArguments=Je))})(fe,function(){Xi(`Cannot construct ${he} due to unbound types`,[P])}),Gi([S,T,w],P?[P]:[],function(we){var it,Je;we=we[0],Je=P?(it=we.registeredClass).instancePrototype:er.prototype;var ft=tr(fe,function(){if(Object.getPrototypeOf(this)!==Xe)throw new Wi("Use 'new' to construct "+he);if(Mt.constructor_body===void 0)throw new Wi(he+" has no accessible constructor");var br=Mt.constructor_body[arguments.length];if(br===void 0)throw new Wi(`Tried to invoke ctor of ${he} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Mt.constructor_body).toString()}) parameters instead!`);return br.apply(this,arguments)}),Xe=Object.create(Je,{constructor:{value:ft}});ft.prototype=Xe;var Mt=new $n(he,ft,Xe,ve,it,W,Y,G);Mt.baseClass&&(Mt.baseClass.__derivedClasses===void 0&&(Mt.baseClass.__derivedClasses=[]),Mt.baseClass.__derivedClasses.push(Mt));var Ki=new rr(he,Mt,!0,!1,!1),Nt=new rr(he+"*",Mt,!1,!1,!1),Wn=new rr(he+" const*",Mt,!1,!0,!1);return j[S]={pointerType:Nt,constPointerType:Wn},function(br,Gn,xs){o.hasOwnProperty(br)||Qt("Replacing nonexistant public symbol"),o[br].overloadTable!==void 0&&xs!==void 0?o[br].overloadTable[xs]=Gn:(o[br]=Gn,o[br].argCount=xs)}(fe,ft),[Ki,Nt,Wn]})},p:function(S,T,w,P,B,W){var z=Rc(T,w);B=Ji(P,B),Gi([],[S],function(Y){var re=`constructor ${(Y=Y[0]).name}`;if(Y.registeredClass.constructor_body===void 0&&(Y.registeredClass.constructor_body=[]),Y.registeredClass.constructor_body[T-1]!==void 0)throw new Wi(`Cannot register multiple constructors with identical number of parameters (${T-1}) for class '${Y.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return Y.registeredClass.constructor_body[T-1]=()=>{Xi(`Cannot construct ${Y.name} due to unbound types`,z)},Gi([],z,function(G){return G.splice(1,0,null),Y.registeredClass.constructor_body[T-1]=Cc(re,G,null,B,W),[]}),[]})},d:function(S,T,w,P,B,W,z,Y,re){var G=Rc(w,P);T=kt(T),W=Ji(B,W),Gi([],[S],function(he){var De=`${(he=he[0]).name}.${T}`;function ve(){Xi(`Cannot call ${De} due to unbound types`,G)}T.startsWith("@@")&&(T=Symbol[T.substring(2)]),Y&&he.registeredClass.pureVirtualFunctions.push(T);var fe=he.registeredClass.instancePrototype,we=fe[T];return we===void 0||we.overloadTable===void 0&&we.className!==he.name&&we.argCount===w-2?(ve.argCount=w-2,ve.className=he.name,fe[T]=ve):(Tc(fe,T,De),fe[T].overloadTable[w-2]=ve),Gi([],G,function(it){var Je=Cc(De,it,he,W,z,re);return fe[T].overloadTable===void 0?(Je.argCount=w-2,fe[T]=Je):fe[T].overloadTable[w-2]=Je,[]}),[]})},u:function(S,T){Lt(S,{name:T=kt(T),fromWireType:function(w){var P=Ns.toValue(w);return Cs(w),P},toWireType:function(w,P){return Ns.toHandle(P)},argPackAdvance:8,readValueFromPointer:Oo,destructorFunction:null})},k:function(S,T,w){var P=Ee(w);Lt(S,{name:T=kt(T),fromWireType:function(B){return B},toWireType:function(B,W){return W},argPackAdvance:8,readValueFromPointer:gl(T,P),destructorFunction:null})},b:function(S,T,w,P,B){T=kt(T),B===-1&&(B=4294967295);var W=Ee(w),z=G=>G;if(P===0){var Y=32-8*w;z=G=>G<<Y>>>Y}var re=T.includes("unsigned");Lt(S,{name:T,fromWireType:z,toWireType:re?function(G,he){return this.name,he>>>0}:function(G,he){return this.name,he},argPackAdvance:8,readValueFromPointer:El(T,W,P!==0),destructorFunction:null})},a:function(S,T,w){var P=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][T];function B(W){var z=Se,Y=z[W>>=2],re=z[W+1];return new P(z.buffer,re,Y)}Lt(S,{name:w=kt(w),fromWireType:B,argPackAdvance:8,readValueFromPointer:B},{ignoreDuplicateRegistrations:!0})},j:function(S,T){var w=(T=kt(T))==="std::string";Lt(S,{name:T,fromWireType:function(P){var B,W=Se[P>>2],z=P+4;if(w)for(var Y=z,re=0;re<=W;++re){var G=z+re;if(re==W||D[G]==0){var he=_l(Y,G-Y);B===void 0?B=he:(B+="\0",B+=he),Y=G+1}}else{var De=new Array(W);for(re=0;re<W;++re)De[re]=String.fromCharCode(D[z+re]);B=De.join("")}return Ar(P),B},toWireType:function(P,B){var W;B instanceof ArrayBuffer&&(B=new Uint8Array(B));var z=typeof B=="string";z||B instanceof Uint8Array||B instanceof Uint8ClampedArray||B instanceof Int8Array||me("Cannot pass non-string to std::string"),W=w&&z?(De=>{for(var ve=0,fe=0;fe<De.length;++fe){var we=De.charCodeAt(fe);we<=127?ve++:we<=2047?ve+=2:we>=55296&&we<=57343?(ve+=4,++fe):ve+=3}return ve})(B):B.length;var Y=Zi(4+W+1),re=Y+4;if(Se[Y>>2]=W,w&&z)((De,ve,fe,we)=>{if(!(we>0))return 0;for(var it=fe,Je=fe+we-1,ft=0;ft<De.length;++ft){var Xe=De.charCodeAt(ft);if(Xe>=55296&&Xe<=57343&&(Xe=65536+((1023&Xe)<<10)|1023&De.charCodeAt(++ft)),Xe<=127){if(fe>=Je)break;ve[fe++]=Xe}else if(Xe<=2047){if(fe+1>=Je)break;ve[fe++]=192|Xe>>6,ve[fe++]=128|63&Xe}else if(Xe<=65535){if(fe+2>=Je)break;ve[fe++]=224|Xe>>12,ve[fe++]=128|Xe>>6&63,ve[fe++]=128|63&Xe}else{if(fe+3>=Je)break;ve[fe++]=240|Xe>>18,ve[fe++]=128|Xe>>12&63,ve[fe++]=128|Xe>>6&63,ve[fe++]=128|63&Xe}}ve[fe]=0})(B,D,re,W+1);else if(z)for(var G=0;G<W;++G){var he=B.charCodeAt(G);he>255&&(Ar(re),me("String has UTF-16 code units that do not fit in 8 bits")),D[re+G]=he}else for(G=0;G<W;++G)D[re+G]=B[G];return P!==null&&P.push(Ar,Y),Y},argPackAdvance:8,readValueFromPointer:Oo,destructorFunction:function(P){Ar(P)}})},g:function(S,T,w){var P,B,W,z,Y;w=kt(w),T===2?(P=Tl,B=yr,z=Ds,W=()=>Z,Y=1):T===4&&(P=Mc,B=Il,z=Qi,W=()=>Se,Y=2),Lt(S,{name:w,fromWireType:function(re){for(var G,he=Se[re>>2],De=W(),ve=re+4,fe=0;fe<=he;++fe){var we=re+4+fe*T;if(fe==he||De[we>>Y]==0){var it=P(ve,we-ve);G===void 0?G=it:(G+="\0",G+=it),ve=we+T}}return Ar(re),G},toWireType:function(re,G){typeof G!="string"&&me(`Cannot pass non-string to C++ string type ${w}`);var he=z(G),De=Zi(4+he+T);return Se[De>>2]=he>>Y,B(G,De+4,he+T),re!==null&&re.push(Ar,De),De},argPackAdvance:8,readValueFromPointer:Oo,destructorFunction:function(re){Ar(re)}})},n:function(S,T){Lt(S,{isVoid:!0,name:T=kt(T),argPackAdvance:0,fromWireType:function(){},toWireType:function(w,P){}})},e:function(S,T,w,P){var B,W;(S=ws[S])(T=Ns.toValue(T),w=(W=Oc[B=w])===void 0?kt(B):W,null,P)},l:Cs,h:function(S,T){var w=function(it,Je){for(var ft,Xe,Mt,Ki=new Array(it),Nt=0;Nt<it;++Nt)Ki[Nt]=(ft=Se[Je+4*Nt>>2],Xe="parameter "+Nt,Mt=void 0,(Mt=Wr[ft])===void 0&&me(Xe+" has unknown type "+bc(ft)),Mt);return Ki}(S,T),P=w[0],B=P.name+"_$"+w.slice(1).map(function(it){return it.name}).join("_")+"$",W=Ms[B];if(W!==void 0)return W;for(var z=["retType"],Y=[P],re="",G=0;G<S-1;++G)re+=(G!==0?", ":"")+"arg"+G,z.push("argType"+G),Y.push(w[1+G]);var he="return function "+Gr("methodCaller_"+B)+`(handle, name, destructors, args) {
85
+ `,it.push(fe),Dc(Function,it).apply(null,Je)}function yr(){this.allocated=[void 0],this.freelist=[]}var Ut=new yr;function Ns(S){S>=Ut.reserved&&--Ut.get(S).refcount==0&&Ut.free(S)}function Mc(){for(var S=0,T=Ut.reserved;T<Ut.allocated.length;++T)Ut.allocated[T]!==void 0&&++S;return S}var Ds={toValue:S=>(S||me("Cannot use deleted val. handle = "+S),Ut.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 Ut.allocate({refcount:1,value:S})}}};function Lo(S){if(S===null)return"null";var T=typeof S;return T==="object"||T==="array"||T==="function"?S.toString():""+S}function gl(S,T){switch(T){case 2:return function(w){return this.fromWireType(Ye[w>>2])};case 3:return function(w){return this.fromWireType(H[w>>3])};default:throw new TypeError("Unknown float type: "+S)}}function El(S,T,w){switch(T){case 0:return w?function(P){return N[P]}:function(P){return D[P]};case 1:return w?function(P){return O[P>>1]}:function(P){return Z[P>>1]};case 2:return w?function(P){return ue[P>>2]}:function(P){return Se[P>>2]};default:throw new TypeError("Unknown integer type: "+S)}}var Oc=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Uo=(S,T,w)=>{for(var P=T+w,B=T;S[B]&&!(B>=P);)++B;if(B-T>16&&S.buffer&&Oc)return Oc.decode(S.subarray(T,B));for(var W="";T<B;){var z=S[T++];if(128&z){var Y=63&S[T++];if((224&z)!=192){var re=63&S[T++];if((z=(240&z)==224?(15&z)<<12|Y<<6|re:(7&z)<<18|Y<<12|re<<6|63&S[T++])<65536)W+=String.fromCharCode(z);else{var G=z-65536;W+=String.fromCharCode(55296|G>>10,56320|1023&G)}}else W+=String.fromCharCode((31&z)<<6|Y)}else W+=String.fromCharCode(z)}return W},_l=(S,T)=>S?Uo(D,S,T):"",xc=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,Tl=(S,T)=>{for(var w=S,P=w>>1,B=P+T/2;!(P>=B)&&Z[P];)++P;if((w=P<<1)-S>32&&xc)return xc.decode(D.subarray(S,w));for(var W="",z=0;!(z>=T/2);++z){var Y=O[S+2*z>>1];if(Y==0)break;W+=String.fromCharCode(Y)}return W},Ar=(S,T,w)=>{if(w===void 0&&(w=2147483647),w<2)return 0;for(var P=T,B=(w-=2)<2*S.length?w/2:S.length,W=0;W<B;++W){var z=S.charCodeAt(W);O[T>>1]=z,T+=2}return O[T>>1]=0,T-P},ws=S=>2*S.length,Pc=(S,T)=>{for(var w=0,P="";!(w>=T/4);){var B=ue[S+4*w>>2];if(B==0)break;if(++w,B>=65536){var W=B-65536;P+=String.fromCharCode(55296|W>>10,56320|1023&W)}else P+=String.fromCharCode(B)}return P},Il=(S,T,w)=>{if(w===void 0&&(w=2147483647),w<4)return 0;for(var P=T,B=P+w-4,W=0;W<S.length;++W){var z=S.charCodeAt(W);if(z>=55296&&z<=57343&&(z=65536+((1023&z)<<10)|1023&S.charCodeAt(++W)),ue[T>>2]=z,(T+=4)+4>B)break}return ue[T>>2]=0,T-P},Qi=S=>{for(var T=0,w=0;w<S.length;++w){var P=S.charCodeAt(w);P>=55296&&P<=57343&&++w,T+=4}return T},kc={},Ms=[],Os=[],Wn;Wn=()=>performance.now();var Lc,Gn,Yi,Uc=[null,[],[]];(function(){for(var S=new Array(256),T=0;T<256;++T)S[T]=String.fromCharCode(T);Ke=S})(),Wi=o.BindingError=class extends Error{constructor(S){super(S),this.name="BindingError"}},Fn=o.InternalError=class extends Error{constructor(S){super(S),this.name="InternalError"}},er.prototype.isAliasOf=$n,er.prototype.clone=Cs,er.prototype.delete=zi,er.prototype.isDeleted=Ue,er.prototype.deleteLater=Sc,o.getInheritedInstanceCount=ll,o.getLiveInheritedInstances=ml,o.flushPendingDeletes=E,o.setDelayFunction=yt,rr.prototype.getPointee=hl,rr.prototype.destructor=pl,rr.prototype.argPackAdvance=8,rr.prototype.readValueFromPointer=Oo,rr.prototype.deleteObject=xo,rr.prototype.fromWireType=qi,ko=o.UnboundTypeError=(Lc=Error,(Yi=tr(Gn="UnboundTypeError",function(S){this.name=Gn,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(Lc.prototype),Yi.prototype.constructor=Yi,Yi.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},Yi),Object.assign(yr.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)}}),Ut.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Ut.reserved=Ut.allocated.length,o.count_emval_handles=Mc;var Vt,Vc={o:function(S,T,w){throw new Vn(S).init(T,w),S},r:function(S,T,w,P,B){},m:function(S,T,w,P,B){var W=Ee(w);Lt(S,{name:T=kt(T),fromWireType:function(z){return!!z},toWireType:function(z,Y){return Y?P:B},argPackAdvance:8,readValueFromPointer:function(z){var Y;if(w===1)Y=N;else if(w===2)Y=O;else{if(w!==4)throw new TypeError("Unknown boolean type size: "+T);Y=ue}return this.fromWireType(Y[z>>W])},destructorFunction:null})},q:function(S,T,w,P,B,W,z,Y,re,G,he,De,ve){he=kt(he),W=Ji(B,W),Y&&(Y=Ji(z,Y)),G&&(G=Ji(re,G)),ve=Ji(De,ve);var fe=Gr(he);(function(we,it,Je){o.hasOwnProperty(we)?((Je===void 0||o[we].overloadTable!==void 0&&o[we].overloadTable[Je]!==void 0)&&me(`Cannot register public name '${we}' twice`),yc(o,we,we),o.hasOwnProperty(Je)&&me(`Cannot register multiple overloads of a function with the same number of arguments (${Je})!`),o[we].overloadTable[Je]=it):(o[we]=it,Je!==void 0&&(o[we].numArguments=Je))})(fe,function(){Xi(`Cannot construct ${he} due to unbound types`,[P])}),Gi([S,T,w],P?[P]:[],function(we){var it,Je;we=we[0],Je=P?(it=we.registeredClass).instancePrototype:er.prototype;var ft=tr(fe,function(){if(Object.getPrototypeOf(this)!==Xe)throw new Wi("Use 'new' to construct "+he);if(Mt.constructor_body===void 0)throw new Wi(he+" has no accessible constructor");var Rr=Mt.constructor_body[arguments.length];if(Rr===void 0)throw new Wi(`Tried to invoke ctor of ${he} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Mt.constructor_body).toString()}) parameters instead!`);return Rr.apply(this,arguments)}),Xe=Object.create(Je,{constructor:{value:ft}});ft.prototype=Xe;var Mt=new Hn(he,ft,Xe,ve,it,W,Y,G);Mt.baseClass&&(Mt.baseClass.__derivedClasses===void 0&&(Mt.baseClass.__derivedClasses=[]),Mt.baseClass.__derivedClasses.push(Mt));var Ki=new rr(he,Mt,!0,!1,!1),Nt=new rr(he+"*",Mt,!1,!1,!1),jn=new rr(he+" const*",Mt,!1,!0,!1);return j[S]={pointerType:Nt,constPointerType:jn},function(Rr,qn,Ps){o.hasOwnProperty(Rr)||Qt("Replacing nonexistant public symbol"),o[Rr].overloadTable!==void 0&&Ps!==void 0?o[Rr].overloadTable[Ps]=qn:(o[Rr]=qn,o[Rr].argCount=Ps)}(fe,ft),[Ki,Nt,jn]})},p:function(S,T,w,P,B,W){var z=Nc(T,w);B=Ji(P,B),Gi([],[S],function(Y){var re=`constructor ${(Y=Y[0]).name}`;if(Y.registeredClass.constructor_body===void 0&&(Y.registeredClass.constructor_body=[]),Y.registeredClass.constructor_body[T-1]!==void 0)throw new Wi(`Cannot register multiple constructors with identical number of parameters (${T-1}) for class '${Y.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return Y.registeredClass.constructor_body[T-1]=()=>{Xi(`Cannot construct ${Y.name} due to unbound types`,z)},Gi([],z,function(G){return G.splice(1,0,null),Y.registeredClass.constructor_body[T-1]=wc(re,G,null,B,W),[]}),[]})},d:function(S,T,w,P,B,W,z,Y,re){var G=Nc(w,P);T=kt(T),W=Ji(B,W),Gi([],[S],function(he){var De=`${(he=he[0]).name}.${T}`;function ve(){Xi(`Cannot call ${De} due to unbound types`,G)}T.startsWith("@@")&&(T=Symbol[T.substring(2)]),Y&&he.registeredClass.pureVirtualFunctions.push(T);var fe=he.registeredClass.instancePrototype,we=fe[T];return we===void 0||we.overloadTable===void 0&&we.className!==he.name&&we.argCount===w-2?(ve.argCount=w-2,ve.className=he.name,fe[T]=ve):(yc(fe,T,De),fe[T].overloadTable[w-2]=ve),Gi([],G,function(it){var Je=wc(De,it,he,W,z,re);return fe[T].overloadTable===void 0?(Je.argCount=w-2,fe[T]=Je):fe[T].overloadTable[w-2]=Je,[]}),[]})},u:function(S,T){Lt(S,{name:T=kt(T),fromWireType:function(w){var P=Ds.toValue(w);return Ns(w),P},toWireType:function(w,P){return Ds.toHandle(P)},argPackAdvance:8,readValueFromPointer:Oo,destructorFunction:null})},k:function(S,T,w){var P=Ee(w);Lt(S,{name:T=kt(T),fromWireType:function(B){return B},toWireType:function(B,W){return W},argPackAdvance:8,readValueFromPointer:gl(T,P),destructorFunction:null})},b:function(S,T,w,P,B){T=kt(T),B===-1&&(B=4294967295);var W=Ee(w),z=G=>G;if(P===0){var Y=32-8*w;z=G=>G<<Y>>>Y}var re=T.includes("unsigned");Lt(S,{name:T,fromWireType:z,toWireType:re?function(G,he){return this.name,he>>>0}:function(G,he){return this.name,he},argPackAdvance:8,readValueFromPointer:El(T,W,P!==0),destructorFunction:null})},a:function(S,T,w){var P=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][T];function B(W){var z=Se,Y=z[W>>=2],re=z[W+1];return new P(z.buffer,re,Y)}Lt(S,{name:w=kt(w),fromWireType:B,argPackAdvance:8,readValueFromPointer:B},{ignoreDuplicateRegistrations:!0})},j:function(S,T){var w=(T=kt(T))==="std::string";Lt(S,{name:T,fromWireType:function(P){var B,W=Se[P>>2],z=P+4;if(w)for(var Y=z,re=0;re<=W;++re){var G=z+re;if(re==W||D[G]==0){var he=_l(Y,G-Y);B===void 0?B=he:(B+="\0",B+=he),Y=G+1}}else{var De=new Array(W);for(re=0;re<W;++re)De[re]=String.fromCharCode(D[z+re]);B=De.join("")}return br(P),B},toWireType:function(P,B){var W;B instanceof ArrayBuffer&&(B=new Uint8Array(B));var z=typeof B=="string";z||B instanceof Uint8Array||B instanceof Uint8ClampedArray||B instanceof Int8Array||me("Cannot pass non-string to std::string"),W=w&&z?(De=>{for(var ve=0,fe=0;fe<De.length;++fe){var we=De.charCodeAt(fe);we<=127?ve++:we<=2047?ve+=2:we>=55296&&we<=57343?(ve+=4,++fe):ve+=3}return ve})(B):B.length;var Y=Zi(4+W+1),re=Y+4;if(Se[Y>>2]=W,w&&z)((De,ve,fe,we)=>{if(!(we>0))return 0;for(var it=fe,Je=fe+we-1,ft=0;ft<De.length;++ft){var Xe=De.charCodeAt(ft);if(Xe>=55296&&Xe<=57343&&(Xe=65536+((1023&Xe)<<10)|1023&De.charCodeAt(++ft)),Xe<=127){if(fe>=Je)break;ve[fe++]=Xe}else if(Xe<=2047){if(fe+1>=Je)break;ve[fe++]=192|Xe>>6,ve[fe++]=128|63&Xe}else if(Xe<=65535){if(fe+2>=Je)break;ve[fe++]=224|Xe>>12,ve[fe++]=128|Xe>>6&63,ve[fe++]=128|63&Xe}else{if(fe+3>=Je)break;ve[fe++]=240|Xe>>18,ve[fe++]=128|Xe>>12&63,ve[fe++]=128|Xe>>6&63,ve[fe++]=128|63&Xe}}ve[fe]=0})(B,D,re,W+1);else if(z)for(var G=0;G<W;++G){var he=B.charCodeAt(G);he>255&&(br(re),me("String has UTF-16 code units that do not fit in 8 bits")),D[re+G]=he}else for(G=0;G<W;++G)D[re+G]=B[G];return P!==null&&P.push(br,Y),Y},argPackAdvance:8,readValueFromPointer:Oo,destructorFunction:function(P){br(P)}})},g:function(S,T,w){var P,B,W,z,Y;w=kt(w),T===2?(P=Tl,B=Ar,z=ws,W=()=>Z,Y=1):T===4&&(P=Pc,B=Il,z=Qi,W=()=>Se,Y=2),Lt(S,{name:w,fromWireType:function(re){for(var G,he=Se[re>>2],De=W(),ve=re+4,fe=0;fe<=he;++fe){var we=re+4+fe*T;if(fe==he||De[we>>Y]==0){var it=P(ve,we-ve);G===void 0?G=it:(G+="\0",G+=it),ve=we+T}}return br(re),G},toWireType:function(re,G){typeof G!="string"&&me(`Cannot pass non-string to C++ string type ${w}`);var he=z(G),De=Zi(4+he+T);return Se[De>>2]=he>>Y,B(G,De+4,he+T),re!==null&&re.push(br,De),De},argPackAdvance:8,readValueFromPointer:Oo,destructorFunction:function(re){br(re)}})},n:function(S,T){Lt(S,{isVoid:!0,name:T=kt(T),argPackAdvance:0,fromWireType:function(){},toWireType:function(w,P){}})},e:function(S,T,w,P){var B,W;(S=Ms[S])(T=Ds.toValue(T),w=(W=kc[B=w])===void 0?kt(B):W,null,P)},l:Ns,h:function(S,T){var w=function(it,Je){for(var ft,Xe,Mt,Ki=new Array(it),Nt=0;Nt<it;++Nt)Ki[Nt]=(ft=Se[Je+4*Nt>>2],Xe="parameter "+Nt,Mt=void 0,(Mt=Wr[ft])===void 0&&me(Xe+" has unknown type "+Cc(ft)),Mt);return Ki}(S,T),P=w[0],B=P.name+"_$"+w.slice(1).map(function(it){return it.name}).join("_")+"$",W=Os[B];if(W!==void 0)return W;for(var z=["retType"],Y=[P],re="",G=0;G<S-1;++G)re+=(G!==0?", ":"")+"arg"+G,z.push("argType"+G),Y.push(w[1+G]);var he="return function "+Gr("methodCaller_"+B)+`(handle, name, destructors, args) {
87
87
  `,De=0;for(G=0;G<S-1;++G)he+=" var arg"+G+" = argType"+G+".readValueFromPointer(args"+(De?"+"+De:"")+`);
88
88
  `,De+=w[G+1].argPackAdvance;for(he+=" var rv = handle[name]("+re+`);
89
89
  `,G=0;G<S-1;++G)w[G+1].deleteObject&&(he+=" argType"+G+".deleteObject(arg"+G+`);
90
90
  `);P.isVoid||(he+=` return retType.toWireType(destructors, rv);
91
91
  `),he+=`};
92
- `,z.push(he);var ve,fe,we=vc(Function,z).apply(null,Y);return ve=we,fe=ws.length,ws.push(ve),W=fe,Ms[B]=W,W},f:()=>{cr("")},c:Bn,t:(S,T,w)=>D.copyWithin(S,T,T+w),s:S=>{D.length,cr("OOM")},i:(S,T,w,P)=>{for(var B,W,z,Y=0,re=0;re<w;re++){var G=Se[T>>2],he=Se[T+4>>2];T+=8;for(var De=0;De<he;De++)B=S,W=D[G+De],z=void 0,z=Pc[B],W===0||W===10?((B===1?g:_)(Uo(z,0)),z.length=0):z.push(W);Y+=he}return Se[P>>2]=Y,0}},Ar=(function(){var S,T,w,P,B={a:kc};function W(z,Y){var re,G,he=z.exports;return A=(C=he).v,re=A.buffer,o.HEAP8=N=new Int8Array(re),o.HEAP16=O=new Int16Array(re),o.HEAP32=ue=new Int32Array(re),o.HEAPU8=D=new Uint8Array(re),o.HEAPU16=Z=new Uint16Array(re),o.HEAPU32=Se=new Uint32Array(re),o.HEAPF32=Ye=new Float32Array(re),o.HEAPF64=H=new Float64Array(re),Pe=C.z,G=C.w,Pn.unshift(G),function(){if(Br--,o.monitorRunDependencies&&o.monitorRunDependencies(Br),Br==0&&(bs!==null&&(clearInterval(bs),bs=null),Bi)){var De=Bi;Bi=null,De()}}(),he}if(Br++,o.monitorRunDependencies&&o.monitorRunDependencies(Br),o.instantiateWasm)try{return o.instantiateWasm(B,W)}catch(z){_("Module.instantiateWasm callback failed with error: "+z),r(z)}(S=p,T=ci,w=B,P=function(z){W(z.instance)},S||typeof WebAssembly.instantiateStreaming!="function"||ie(T)||typeof fetch!="function"?Hr(T,w,P):fetch(T,{credentials:"same-origin"}).then(z=>WebAssembly.instantiateStreaming(z,w).then(P,function(Y){return _("wasm streaming compile failed: "+Y),_("falling back to ArrayBuffer instantiation"),Hr(T,w,P)}))).catch(r)}(),S=>(Ar=C.x)(S)),Zi=S=>(Zi=C.y)(S),Os=S=>(Os=C.A)(S),Lc=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=C.B)(),S=>(Lc=C.C)(S));o.dynCall_jiji=(S,T,w,P,B)=>(o.dynCall_jiji=C.D)(S,T,w,P,B);function Uc(){function S(){Vt||(Vt=!0,o.calledRun=!0,On||(ui(Pn),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(),kn.unshift(T);var T;ui(kn)}()))}Br>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)T=o.preRun.shift(),xn.unshift(T);var T;ui(xn)}(),Br>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),S()},1)):S()))}if(Bi=function S(){Vt||Uc(),Vt||(Bi=S)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Uc(),t.ready}})();var Ry="web.sdk.qcloud.com",vy=`https://${Ry}/trtc/webrtc/v5/doc`,Kx=`${vy}/zh-cn/`,lE=(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))(lE||{});var mE={"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}},eP=mE["480p_2"],tP=mE["120p_2"],Du={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"},rP=Du.MAIN,iP=Du.AUXILIARY,oP=Du.BIG,sP=Du.SMALL;var nP=Object.keys(lE);var Cy=function(i,t,e,r){return new(e||(e=Promise))(function(o,s){function n(m){try{u(r.next(m))}catch(p){s(p)}}function a(m){try{u(r.throw(m))}catch(p){s(p)}}function u(m){var p;m.done?o(m.value):(p=m.value,p instanceof e?p:new e(function(g){g(p)})).then(n,a)}u((r=r.apply(i,t||[])).next())})},tp=Symbol(32),rp=Symbol(16),ip=Symbol(8),Kh=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 Cy(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(tp)}readU16(){return this.read(rp)}readU8(){return this.read(ip)}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===tp){if(r(4))return;i=t[0]<<24|t[1]<<16|t[2]<<8|t[3]}else if(this.need===rp){if(r(2))return;i=t[0]<<8|t[1]}else if(this.need===ip){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}};Kh.U32=tp,Kh.U16=rp,Kh.U8=ip;var Ny=127,aP=~Ny,cP=Math.pow(2,31),dP=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},uP=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function aE(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var{toString:lP}=Object.prototype,hE=class pE{constructor(t){this.core=t,$r(this,"contextMap",new Map),$r(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 pE.Name}getValidateRule(t){return{type:this.core.enums.BASIC_TYPE.Object}}createDecoder(t,e){switch(t){case"wasm":return new by(vu(Ru({},e),{wasmPath:`${this.core.assetsPath||"."}/videodec.wasm`}));case"webCodecs":return new Rn;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(vu(Ru({},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=aE()-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(vu(Ru({},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:u})=>{a>e.startPerformanceTime&&(s+=u===0?aE()-a:u-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)}};$r(hE,"Name","TRTCVideoDecoder");var op=hE;var GE=pi(bi());function sp({timesInSecond:i,maxSizeInSecond:t,getSize:e}){return Oe((r,o)=>{let s=new WeakMap;return V.on(F.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 de({code:q.INVALID_OPERATION,message:$e({key:Fe.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 Dy="2025-08-28 10:51:13",fE=!0,gE=function(){var i;if(fE){fE=!1,$.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info(`* API Document: ${qr}/en/index.html`),console.info(`* Changelog: ${qr}/en/tutorial-01-info-changelog.html`),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),$.info("TRTC Web SDK Version:",at),xr||$.debug("Build Time:",Dy);let t=`UA: ${navigator.userAgent}
93
- CPU core: ${navigator.hardwareConcurrency}, GPU: ${dm()}`,e=navigator.deviceMemory;e&&(t+=`, minRAM: ${e}GB`),$.info(t),$.info(`URL: ${location.href}${((i=self.frameElement)==null?void 0:i.tagName)==="IFRAME"?" in iframe":""}`),Qo().then(r=>{r&&$.info(Dr)})}};var _s={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=(k=>(k[k.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",k[k.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",k[k.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",k[k.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",k[k.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",k[k.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",k[k.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",k[k.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",k[k.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",k[k.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",k[k.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",k[k.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",k[k.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",k[k.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",k[k.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",k[k.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",k[k.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",k[k.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",k[k.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",k[k.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",k[k.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",k[k.INVALID_OPERATION=5100]="INVALID_OPERATION",k[k.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",k[k.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",k[k.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",k[k.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",k[k.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",k[k.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",k[k.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",k[k.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",k[k.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",k[k.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",k[k.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",k[k.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",k[k.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",k[k.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",k[k.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",k[k.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",k[k.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",k[k.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",k[k.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",k[k.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",k[k.DEVICE_ERROR=5300]="DEVICE_ERROR",k[k.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",k[k.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",k[k.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",k[k.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",k[k.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",k[k.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",k[k.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",k[k.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",k[k.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",k[k.SERVER_ERROR=5400]="SERVER_ERROR",k[k.NEED_TO_BUY=5401]="NEED_TO_BUY",k[k.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",k[k.OPERATION_FAILED=5500]="OPERATION_FAILED",k[k.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",k[k.REJOIN_FAILED=5502]="REJOIN_FAILED",k[k.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",k[k.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",k[k.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",k[k.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",k[k.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",k[k.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",k[k.OPERATION_ABORT=5998]="OPERATION_ABORT",k[k.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",k))(Tr||{});function _E({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=Tr[i];try{o=EE[s]}catch(n){o=EE.UNKNOWN_ERROR}return Ge(o)?r=o(t):Ne(o)&&(r=o),t.fnName&&!r.includes(t.fnName)&&(r[r.length-1]!=="."&&(r+="."),r+=` thrown from ${t.fnName}()`),e&&(r+=" doc:"),r}var EE=ge(X({},Yt),{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: ${ct(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: ${ct(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=Ts(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=Ts(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=Ts(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=Ts(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=Ts(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=Ts(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=Ts(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 Ts(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var np=class i extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:n="",originError:a,data:u}){var p;let m;o?m=o:m=_E({code:e===se.SERVER_ERROR?e:r||e,params:X({fnName:n,error:a},s)});super(m);l(this,"name","RtcError");l(this,"code");l(this,"extraCode");l(this,"functionName");l(this,"message");l(this,"data");l(this,"handler");l(this,"originError");this.name=Tr[e],this.code=e,this.extraCode=r,this.functionName=n,this.originError=a,this.message=m,this.data=u,this.extraCode===5302&&((p=this.originError)!=null&&p.message.includes("system"))&&(this.handler=()=>{let g={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},_={startLocalVideo:"webcam",startLocalAudio:"microphone"},A=document.createElement("a");Xo?A.href=`ms-settings:privacy-${_[this.functionName]}`:Mr&&(A.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${g[this.functionName]}`),A.href.length>0&&A.click()})}static convertFrom(e,r,o){let s=e;if(e instanceof de){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(Yt.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=wy(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(`
94
- `)))}else{if(e instanceof i)return e;s=new i({code:se.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function wy(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=np;function oi(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function sc(i){return i===_s.QOS_PREFERENCE_CLEAR?"detail":i===_s.QOS_PREFERENCE_SMOOTH?"motion":""}function vn(i,t){let e=t?Nl:Qn;return Jl(i)?X(X({},e),i):vr[i]?vr[i]:e}var TE={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}}},IE={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}}},Cn={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(Ne(i)&&!document.getElementById(i))throw new oe({code:se.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},SE={name:"userId",required:!0,type:"string"},yE={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:{type:"boolean"},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function Nn(i,t){if(!i)throw new oe({code:se.INVALID_OPERATION,extraCode:5101,fnName:t})}function AE(i,t,e){if(!i)throw new oe({code:se.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}function bE(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 RE(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 kk={type:"number",notLessThanZero:!0},My=(i,t)=>i.width*i.height>=t.width*t.height&&i.frameRate>=t.frameRate&&i.bitrate>=t.bitrate;function vE(i){var r;if(!((r=i==null?void 0:i.option)!=null&&r.small))return;if(!Ud()){$.warn("small stream is not supported"),delete i.option.small;return}let t=vn(i.option.profile),e=vn(i.option.small,!0);if(!My(t,e)){$.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 Oy={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(Ne(i.roomId))throw new oe({code:se.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});bE(i.roomId,e,t)}else if(i.strRoomId)RE(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:Cn,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:TE},validate(i){var t,e;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&wi())throw new oe({code:se.ENV_NOT_SUPPORTED,extraCode:5201});(e=i==null?void 0:i.option)!=null&&e.small&&vE(i)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:ge(X({},Cn),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:TE},validate(i){var t;(t=i==null?void 0:i.option)!=null&&t.small&&vE(i)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:yE},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.audioTrack)&&wi())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:yE}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:Cn,publish:{type:"boolean"},option:IE},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)){if(wi())throw new oe({code:se.ENV_NOT_SUPPORTED,extraCode:5201});if(!Ma())throw new oe({code:se.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:Cn,publish:{type:"boolean"},option:IE}},muteRemoteAudio:[SE,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[SE,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:Cn,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){Nn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(AE(!!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:ge(X({},Cn),{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){Nn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(AE(!!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!=="*"&&x(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){Nn(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});Nn(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(Nn(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(Nn(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)bE(i.roomId,e,t);else if(i.strRoomId)RE(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}}}},Ct={TRTC:Oy};var Gt=class extends Error{};function xy(i,t){let e=Wo(i);for(let r=0;r<t.length;r++)Nr(e[r],t[r]);return e}function Py(i){this._resolve=Promise.resolve(i)}function ky(i){this._reject=Promise.reject(i)}var So=class So{constructor(t,e){this.instance=t;this.group=e;l(this,"started",!1);l(this,"ops",[]);l(this,"startSame",()=>!0);l(this,"mergeUpdate",xy);let r=So.instances.get(t);r?r.set(e,this):So.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=So.instances.get(t);return r&&r.get(e)||new So(t,e)}static gets(t,e){let r=So.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 u;return t===0?this.started=!0:t===3&&(this.started=!1),this.ops.shift(),(u=this.currentOp)==null||u.action(),a},s=a=>{var u,m;throw this.ops.shift(),t===0&&((u=this.currentOp)==null?void 0:u.type)===2&&this.ops.shift().reject(new Gt("start failed")),(m=this.currentOp)==null||m.action(),a},n={type:t,action:()=>e(...n.args).then(o,s),args:r,resolve:Py,reject:ky};try{switch(this.state){case 1:if(t===0)throw new Gt("already started");break;case 4:if(t===2)throw new Gt("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 Gt("already start");break;case 3:switch(t.type){case 2:throw new Gt("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Gt("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new Gt("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 Gt("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Gt("start not allowed after update");case 0:throw new Gt("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new Gt("keep start")),new Gt("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}};l(So,"instances",new WeakMap);var Vi=So;var wu=new WeakMap,Mu=(i,t)=>{if(t instanceof Gt){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(`
95
- `)))}throw t};function yo(i,t){return Oe((e,r)=>function(...o){let s=Vi.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(Mu.bind(null,r))):e.apply(this,o)})}function Is(i,t){let{merge:e,debounce:r}=t||{};return Oe((o,s)=>function(...n){let a=Vi.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:u,getKey:m}=r;return new Promise((p,g)=>{var C,N;let _=(C=wu.get(this))==null?void 0:C.get(m(...n));if(_){let{timeoutId:D,resolve:O}=_;clearTimeout(D),O()}let A=setTimeout(()=>{if(a.state===3||a.state===4)return p();a.action(2,o.bind(this),n).catch(Mu.bind(null,s)).then(p,g)},u);wu.has(this)?(N=wu.get(this))==null||N.set(m(...n),{timeoutId:A,resolve:p}):wu.set(this,new Map([[m(...n),{timeoutId:A,resolve:p}]]))})}return a.action(2,o.bind(this),n).catch(Mu.bind(null,s))})}function Ao(i){return Oe((t,e)=>function(...r){let o=typeof i=="function"?i.call(this,...r):i;if(o instanceof RegExp)return Promise.all(Vi.gets(this,o).map(n=>n.action(3,()=>Promise.resolve(),r))).then(()=>t.call(this,...r));let s=Vi.get(this,o);return s?s.action(3,t.bind(this),r).catch(Mu.bind(null,e)):t.apply(this,r)})}var te={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"},CE=new Set([te.ERROR,te.AUTOPLAY_FAILED,te.KICKED_OUT,te.REMOTE_USER_ENTER,te.REMOTE_USER_EXIT,te.REMOTE_AUDIO_AVAILABLE,te.REMOTE_AUDIO_UNAVAILABLE,te.REMOTE_VIDEO_AVAILABLE,te.REMOTE_VIDEO_UNAVAILABLE,te.CONNECTION_STATE_CHANGED,te.PUBLISH_STATE_CHANGED,te.SCREEN_SHARE_STOPPED,te.DEVICE_CHANGED,te.FIRST_VIDEO_FRAME,te.PERMISSION_STATE_CHANGE,te.VIDEO_SIZE_CHANGED]);var up={};hi(up,{ScheduleRequestType:()=>DE,getAbilityConfig:()=>Uy,getScheduleDomain:()=>Pu,isNeedToSchedule:()=>Ou,scheduleProxy:()=>si,sendScheduleRequest:()=>dp,setIsNeedToSchedule:()=>Ss,setScheduleProxy:()=>xu});var cp=null,Ou=!0;typeof document!="undefined"&&document.head.insertAdjacentHTML("beforeend",Object.values(Ei).map(i=>`<link rel="dns-prefetch" href="https://${i}">`).join(`\r
96
- `));function Ss(i){Qe(i)&&i!==Ou&&(Ou=i,$.info(`setIsNeedToSchedule ${i}`))}V.on("28",()=>Ss(!0));V.on("63",()=>Ss(!0));V.on("84",()=>Ss(!0));V.on("201",i=>{i.state==="RECONNECTING"&&Ss(!0)});V.on("202",i=>{i.state==="RECONNECTING"&&Ss(!0)});function Ly(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=bo(i,"config",M.MAIN),n=bo(i,"config",M.BACKUP);for(let a of o)if(a.startTime>=e&&(a.name===s||a.name===n)&&a.transferSize>0){let u=a.name===s?M.MAIN:M.BACKUP,m=Math.round(a.duration),p=Math.round(a.domainLookupStart-a.startTime),g=a.redirectStart>0?Math.round(a.redirectEnd-a.redirectStart):0,_=a.fetchStart>0?Math.round(a.domainLookupStart-a.fetchStart):0,A=Math.round(a.domainLookupEnd-a.domainLookupStart),C=Math.round(a.requestStart-a.secureConnectionStart),N=Math.round(a.secureConnectionStart-a.connectStart),D=Math.round(a.responseStart-a.requestStart),O=Math.round(a.responseEnd-a.responseStart),Z=[A,C,N,D,O];He.uploadEvent({log:`stat-schedule-net:${m}(${p}(${g}->${_})->${Z.join("->")}) ${u}`,userId:t}),r=ge(X({},r),{totalCost:m,local:p,dns:A,tcp:N,tls:C,request:D,response:O});break}}catch(o){$.error("getScheduleDetailCost error",o)}return r}function dp(m){return y(this,arguments,function*({userId:i,sdkAppId:t,useStringRoomId:e,roomId:r,userSig:o,version:s,frameWorkType:n,role:a,latencyLevel:u}){if(!Ou&&cp)return{isCached:!0,result:cp};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 _=yield Qo();_!=null&&_.model&&g.append("model",String(_==null?void 0:_.model)),a&&g.append("role",String(a)),u&&g.append("latencyLevel",String(u)),n&&g.append("frameWorkType",String(n));let A=_e(),C=yield Fy(g,p,t);C.config&&(C.config.loggerDomain&&Fo(C.config.loggerDomain),Qe(C.config.scheduleCache)&&Ss(!C.config.scheduleCache)),p.delta=_e()-A;let N=Ly(Number(t),i,A);return cp=C,{isCached:!1,result:C,detailCost:N}}catch(g){let _=st(g)?g[0]:g,A=ke(_.code)?_.code:0,C=`schedule failed${_.message?`: ${_.message}`:""}`,N=new de({code:q.SCHEDULE_FAILED,extraCode:A,message:$e({key:Fe.JOIN_ROOM_FAILED,data:{error:C,code:A}})});throw $.error(C,A),N}})}var si={main:"",backup:""};function xu(i){st(i)?(si.main=i[0],si.backup=i[1]):si.main=i}var DE=(r=>(r.CONFIG="config",r.TRTC_AUTO_CONF="trtcAutoConf",r.AUDIO_AI_AUTH="audioAiAuth",r))(DE||{});function bo(i,t,e=M.MAIN,r=!1){return`https://${si[e]||Pu(i,e,r)}/api/v1/${t}`}function Uy(i,t,e){let r=bo(i,t),o=bo(i,t,M.BACKUP),s=new URLSearchParams(e).toString(),n=fetch(`${r}?${s}`).then(u=>u.json()),a=fetch(`${o}?${s}`).then(u=>u.json());return oa([n,a])}function Pu(i,t=M.MAIN,e=!1){let r;return _i(i)?e?r=t===M.MAIN?Ei.MAIN_OVERSEA_BACKUP:Ei.BACKUP_OVERSEA:r=t===M.MAIN?Ei.MAIN_OVERSEA:Ei.BACKUP_OVERSEA:r=t===M.MAIN?Ei.MAIN:Ei.BACKUP,r}function Vy(i,t,e){return new Promise((r,o)=>{Si({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 NE=(i,t)=>so({retryFunction:Vy,settings:{retries:3,timeout:0},onError:t,onRetrying:i});function Fy(i,t,e){return new Promise((r,o)=>{let s=null;oa([NE(n=>t.count[0]=n+1,({error:n,retry:a,retriedCount:u,retryFuncArgs:m})=>{t.msg[0]=n.message,s||(u>=1&&(m[0]=bo(e,"config",M.MAIN,!0)),a())})(bo(e,"config",M.MAIN),i,{get timeout(){return Go(2+t.count[0])*1e3}}),NE(n=>t.count[1]=n+1,({error:n,retry:a,retriedCount:u,retryFuncArgs:m})=>{t.msg[1]=n.message,s||(u>=2&&(m[0]=bo(e,"config",M.BACKUP,!0)),a())})(bo(e,"config",M.BACKUP),i,{get timeout(){return Go(2+t.count[1])*1e3}})]).then(n=>{s=n,r(s)}).catch(o)})}var $y=i=>i.startsWith("data:application/octet-stream;base64,"),By=i=>i.startsWith("file://"),nc=class{constructor(){l(this,"_log");this._log=$.createLogger({id:"fd"})}download(t,e){return y(this,null,function*(){let{type:r="blob"}=e||{};t=zo(t);try{let o=_e(),s;if(Ge(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`),Q.addSuccessEvent({key:522700,cost:_e()-o}),s.data}catch(o){throw this._log.error(`failed to download: ${t}, error: ${o}`),Q.addFailedEvent({key:522700,error:o}),o}})}downloadWithFetch(t,e){return y(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 y(this,null,function*(){this._log.info(`loadWasm ${t}, importObject: ${JSON.stringify(e)}`);let r=_e(),o=null,s=null;if(Ge(WebAssembly.instantiateStreaming)&&!$y(t)&&!By(t)&&Ge(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`),Q.addSuccessEvent({key:522701,cost:n}),o}throw this._log.error(`failed to loadWasm ${t}, error: ${s}`),Q.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`),Q.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)}`),Q.addFailedEvent({key:522702}),o(n)},s.crossOrigin="anonymous",s.src=t,document.head.append?document.head.append(s):document.getElementsByTagName("head")[0].appendChild(s)})}};ee([ns({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}`)}})],nc.prototype,"download",1),ee([ns({settings:{timeout:3e3,retries:3},onRetrying(t){this._log.warn(`loadScript retrying: ${t}`)}})],nc.prototype,"loadScript",1);var lp=new nc;function wE({TRTC:i,room:t,errorModule:e,assetsPath:r}){return{TRTC:i,LocalMixVideoTrack:gs,LocalVideoTrack:ar,LocalScreenTrack:ri,room:t,assetsPath:r,fileDownloader:lp,innerEmitter:V,INNER_EVENT:F,constants:Ol,environment:nn,utils:Jh,eventLogger:He,log:this.room.getLogger(),loggerManager:$,errorModule:e,kvStatManager:Q,rtcDectection:lo,trtc:this,rx:jh,enums:Dm,schedule:up,getDevices:pn,initVisionTaskRegistry:(o,s="/mediapipe/vision.js")=>y(this,null,function*(){window.VisionTaskRegistry||(yield lp.loadScript(`${o}/${s}`.replace(/([^:]\/)\/+/g,"$1"))),yield(yield window.VisionTaskRegistry.getInstance(o)).preloadModels([window.VisionTaskType.ImageSegmenter])}),audioContext:We(),deviceDetector:rt,AudioPlayer:gn,AutoPlayDialog:Wd,Timer:dt,clearStarted:(o,s)=>{let n=o.getAlias(),a=Vi.instances.get(this);if(a)if(s){let u=a.get(n+s);if(!u)return;u.started=!1}else a.forEach((u,m)=>{m.startsWith(n)&&(u.started=!1)})},startGetPCM:tc,createAudioNode:Ha,getNetworkTimeOffset:qp}}var ME=(i,t)=>{let{emit:e}=i;return i.emit=(...r)=>{try{return e.apply(i,r)}catch(o){let s=$e({key:Fe.CATCH_HANDLER_ERROR,data:{name:t,event:r[0]},addDocLink:!1});return $.warn(`${s}
92
+ `,z.push(he);var ve,fe,we=Dc(Function,z).apply(null,Y);return ve=we,fe=Ms.length,Ms.push(ve),W=fe,Os[B]=W,W},f:()=>{cr("")},c:Wn,t:(S,T,w)=>D.copyWithin(S,T,T+w),s:S=>{D.length,cr("OOM")},i:(S,T,w,P)=>{for(var B,W,z,Y=0,re=0;re<w;re++){var G=Se[T>>2],he=Se[T+4>>2];T+=8;for(var De=0;De<he;De++)B=S,W=D[G+De],z=void 0,z=Uc[B],W===0||W===10?((B===1?g:_)(Uo(z,0)),z.length=0):z.push(W);Y+=he}return Se[P>>2]=Y,0}},br=(function(){var S,T,w,P,B={a:Vc};function W(z,Y){var re,G,he=z.exports;return A=(C=he).v,re=A.buffer,o.HEAP8=N=new Int8Array(re),o.HEAP16=O=new Int16Array(re),o.HEAP32=ue=new Int32Array(re),o.HEAPU8=D=new Uint8Array(re),o.HEAPU16=Z=new Uint16Array(re),o.HEAPU32=Se=new Uint32Array(re),o.HEAPF32=Ye=new Float32Array(re),o.HEAPF64=H=new Float64Array(re),Pe=C.z,G=C.w,Ln.unshift(G),function(){if(Br--,o.monitorRunDependencies&&o.monitorRunDependencies(Br),Br==0&&(Rs!==null&&(clearInterval(Rs),Rs=null),Bi)){var De=Bi;Bi=null,De()}}(),he}if(Br++,o.monitorRunDependencies&&o.monitorRunDependencies(Br),o.instantiateWasm)try{return o.instantiateWasm(B,W)}catch(z){_("Module.instantiateWasm callback failed with error: "+z),r(z)}(S=p,T=ci,w=B,P=function(z){W(z.instance)},S||typeof WebAssembly.instantiateStreaming!="function"||ie(T)||typeof fetch!="function"?Hr(T,w,P):fetch(T,{credentials:"same-origin"}).then(z=>WebAssembly.instantiateStreaming(z,w).then(P,function(Y){return _("wasm streaming compile failed: "+Y),_("falling back to ArrayBuffer instantiation"),Hr(T,w,P)}))).catch(r)}(),S=>(br=C.x)(S)),Zi=S=>(Zi=C.y)(S),xs=S=>(xs=C.A)(S),Fc=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=C.B)(),S=>(Fc=C.C)(S));o.dynCall_jiji=(S,T,w,P,B)=>(o.dynCall_jiji=C.D)(S,T,w,P,B);function $c(){function S(){Vt||(Vt=!0,o.calledRun=!0,Pn||(ui(Ln),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(),Un.unshift(T);var T;ui(Un)}()))}Br>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)T=o.preRun.shift(),kn.unshift(T);var T;ui(kn)}(),Br>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),S()},1)):S()))}if(Bi=function S(){Vt||$c(),Vt||(Bi=S)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return $c(),t.ready}})();var vy="web.sdk.qcloud.com",Cy=`https://${vy}/trtc/webrtc/v5/doc`,eP=`${Cy}/zh-cn/`,hE=(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))(hE||{});var pE={"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}},tP=pE["480p_2"],rP=pE["120p_2"],Du={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"},iP=Du.MAIN,oP=Du.AUXILIARY,sP=Du.BIG,nP=Du.SMALL;var aP=Object.keys(hE);var Ny=function(i,t,e,r){return new(e||(e=Promise))(function(o,s){function n(m){try{u(r.next(m))}catch(p){s(p)}}function a(m){try{u(r.throw(m))}catch(p){s(p)}}function u(m){var p;m.done?o(m.value):(p=m.value,p instanceof e?p:new e(function(g){g(p)})).then(n,a)}u((r=r.apply(i,t||[])).next())})},ip=Symbol(32),op=Symbol(16),sp=Symbol(8),tp=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 Ny(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(ip)}readU16(){return this.read(op)}readU8(){return this.read(sp)}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===ip){if(r(4))return;i=t[0]<<24|t[1]<<16|t[2]<<8|t[3]}else if(this.need===op){if(r(2))return;i=t[0]<<8|t[1]}else if(this.need===sp){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}};tp.U32=ip,tp.U16=op,tp.U8=sp;var Dy=127,cP=~Dy,dP=Math.pow(2,31),uP=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},lP=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function dE(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var{toString:mP}=Object.prototype,fE=class gE{constructor(t){this.core=t,$r(this,"contextMap",new Map),$r(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 gE.Name}getValidateRule(t){return{type:this.core.enums.BASIC_TYPE.Object}}createDecoder(t,e){switch(t){case"wasm":return new Ry(vu(Ru({},e),{wasmPath:`${this.core.assetsPath||"."}/videodec.wasm`}));case"webCodecs":return new Cn;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(vu(Ru({},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=dE()-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(vu(Ru({},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:u})=>{a>e.startPerformanceTime&&(s+=u===0?dE()-a:u-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)}};$r(fE,"Name","TRTCVideoDecoder");var np=fE;var qE=pi(bi());function ap({timesInSecond:i,maxSizeInSecond:t,getSize:e}){return Oe((r,o)=>{let s=new WeakMap;return U.on(F.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 de({code:q.INVALID_OPERATION,message:$e({key:Fe.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 wy="2025-08-29 17:43:23",EE=!0,_E=function(){var i;if(EE){EE=!1,$.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info(`* API Document: ${qr}/en/index.html`),console.info(`* Changelog: ${qr}/en/tutorial-01-info-changelog.html`),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),$.info("TRTC Web SDK Version:",at),Pr||$.debug("Build Time:",wy);let t=`UA: ${navigator.userAgent}
93
+ CPU core: ${navigator.hardwareConcurrency}, GPU: ${dm()}`,e=navigator.deviceMemory;e&&(t+=`, minRAM: ${e}GB`),$.info(t),$.info(`URL: ${location.href}${((i=self.frameElement)==null?void 0:i.tagName)==="IFRAME"?" in iframe":""}`),Qo().then(r=>{r&&$.info(wr)})}};var Ts={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},Ir=(k=>(k[k.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",k[k.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",k[k.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",k[k.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",k[k.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",k[k.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",k[k.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",k[k.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",k[k.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",k[k.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",k[k.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",k[k.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",k[k.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",k[k.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",k[k.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",k[k.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",k[k.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",k[k.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",k[k.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",k[k.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",k[k.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",k[k.INVALID_OPERATION=5100]="INVALID_OPERATION",k[k.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",k[k.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",k[k.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",k[k.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",k[k.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",k[k.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",k[k.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",k[k.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",k[k.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",k[k.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",k[k.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",k[k.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",k[k.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",k[k.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",k[k.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",k[k.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",k[k.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",k[k.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",k[k.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",k[k.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",k[k.DEVICE_ERROR=5300]="DEVICE_ERROR",k[k.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",k[k.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",k[k.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",k[k.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",k[k.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",k[k.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",k[k.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",k[k.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",k[k.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",k[k.SERVER_ERROR=5400]="SERVER_ERROR",k[k.NEED_TO_BUY=5401]="NEED_TO_BUY",k[k.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",k[k.OPERATION_FAILED=5500]="OPERATION_FAILED",k[k.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",k[k.REJOIN_FAILED=5502]="REJOIN_FAILED",k[k.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",k[k.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",k[k.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",k[k.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",k[k.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",k[k.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",k[k.OPERATION_ABORT=5998]="OPERATION_ABORT",k[k.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",k))(Ir||{});function IE({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=Ir[i];try{o=TE[s]}catch(n){o=TE.UNKNOWN_ERROR}return Ge(o)?r=o(t):Ne(o)&&(r=o),t.fnName&&!r.includes(t.fnName)&&(r[r.length-1]!=="."&&(r+="."),r+=` thrown from ${t.fnName}()`),e&&(r+=" doc:"),r}var TE=ge(X({},Yt),{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: ${ct(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: ${ct(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=Is(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=Is(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=Is(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=Is(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=Is(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=Is(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=Is(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 Is(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var cp=class i extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:n="",originError:a,data:u}){var p;let m;o?m=o:m=IE({code:e===se.SERVER_ERROR?e:r||e,params:X({fnName:n,error:a},s)});super(m);l(this,"name","RtcError");l(this,"code");l(this,"extraCode");l(this,"functionName");l(this,"message");l(this,"data");l(this,"handler");l(this,"originError");this.name=Ir[e],this.code=e,this.extraCode=r,this.functionName=n,this.originError=a,this.message=m,this.data=u,this.extraCode===5302&&((p=this.originError)!=null&&p.message.includes("system"))&&(this.handler=()=>{let g={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},_={startLocalVideo:"webcam",startLocalAudio:"microphone"},A=document.createElement("a");Xo?A.href=`ms-settings:privacy-${_[this.functionName]}`:Or&&(A.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${g[this.functionName]}`),A.href.length>0&&A.click()})}static convertFrom(e,r,o){let s=e;if(e instanceof de){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(Yt.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=My(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(`
94
+ `)))}else{if(e instanceof i)return e;s=new i({code:se.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function My(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=cp;function oi(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function ac(i){return i===Ts.QOS_PREFERENCE_CLEAR?"detail":i===Ts.QOS_PREFERENCE_SMOOTH?"motion":""}function Nn(i,t){let e=t?Nl:Zn;return Jl(i)?X(X({},e),i):Cr[i]?Cr[i]:e}var SE={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}}},yE={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}}},Dn={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(Ne(i)&&!document.getElementById(i))throw new oe({code:se.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},AE={name:"userId",required:!0,type:"string"},bE={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:{type:"boolean"},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function wn(i,t){if(!i)throw new oe({code:se.INVALID_OPERATION,extraCode:5101,fnName:t})}function RE(i,t,e){if(!i)throw new oe({code:se.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}function vE(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 CE(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 Lk={type:"number",notLessThanZero:!0},Oy=(i,t)=>i.width*i.height>=t.width*t.height&&i.frameRate>=t.frameRate&&i.bitrate>=t.bitrate;function NE(i){var r;if(!((r=i==null?void 0:i.option)!=null&&r.small))return;if(!$d()){$.warn("small stream is not supported"),delete i.option.small;return}let t=Nn(i.option.profile),e=Nn(i.option.small,!0);if(!Oy(t,e)){$.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 xy={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(Ne(i.roomId))throw new oe({code:se.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});vE(i.roomId,e,t)}else if(i.strRoomId)CE(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:Dn,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:SE},validate(i){var t,e;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&wi())throw new oe({code:se.ENV_NOT_SUPPORTED,extraCode:5201});(e=i==null?void 0:i.option)!=null&&e.small&&NE(i)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:ge(X({},Dn),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:SE},validate(i){var t;(t=i==null?void 0:i.option)!=null&&t.small&&NE(i)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:bE},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.audioTrack)&&wi())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:bE}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:Dn,publish:{type:"boolean"},option:yE},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)){if(wi())throw new oe({code:se.ENV_NOT_SUPPORTED,extraCode:5201});if(!xa())throw new oe({code:se.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:Dn,publish:{type:"boolean"},option:yE}},muteRemoteAudio:[AE,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[AE,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:Dn,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){wn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(RE(!!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:ge(X({},Dn),{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){wn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(RE(!!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!=="*"&&x(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){wn(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(!ka)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});wn(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(wn(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(wn(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)vE(i.roomId,e,t);else if(i.strRoomId)CE(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}}}},Ct={TRTC:xy};var Gt=class extends Error{};function Py(i,t){let e=Wo(i);for(let r=0;r<t.length;r++)Dr(e[r],t[r]);return e}function ky(i){this._resolve=Promise.resolve(i)}function Ly(i){this._reject=Promise.reject(i)}var So=class So{constructor(t,e){this.instance=t;this.group=e;l(this,"started",!1);l(this,"ops",[]);l(this,"startSame",()=>!0);l(this,"mergeUpdate",Py);let r=So.instances.get(t);r?r.set(e,this):So.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=So.instances.get(t);return r&&r.get(e)||new So(t,e)}static gets(t,e){let r=So.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 u;return t===0?this.started=!0:t===3&&(this.started=!1),this.ops.shift(),(u=this.currentOp)==null||u.action(),a},s=a=>{var u,m;throw this.ops.shift(),t===0&&((u=this.currentOp)==null?void 0:u.type)===2&&this.ops.shift().reject(new Gt("start failed")),(m=this.currentOp)==null||m.action(),a},n={type:t,action:()=>e(...n.args).then(o,s),args:r,resolve:ky,reject:Ly};try{switch(this.state){case 1:if(t===0)throw new Gt("already started");break;case 4:if(t===2)throw new Gt("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 Gt("already start");break;case 3:switch(t.type){case 2:throw new Gt("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Gt("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new Gt("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 Gt("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Gt("start not allowed after update");case 0:throw new Gt("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new Gt("keep start")),new Gt("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}};l(So,"instances",new WeakMap);var Vi=So;var wu=new WeakMap,Mu=(i,t)=>{if(t instanceof Gt){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(`
95
+ `)))}throw t};function yo(i,t){return Oe((e,r)=>function(...o){let s=Vi.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(Mu.bind(null,r))):e.apply(this,o)})}function Ss(i,t){let{merge:e,debounce:r}=t||{};return Oe((o,s)=>function(...n){let a=Vi.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:u,getKey:m}=r;return new Promise((p,g)=>{var C,N;let _=(C=wu.get(this))==null?void 0:C.get(m(...n));if(_){let{timeoutId:D,resolve:O}=_;clearTimeout(D),O()}let A=setTimeout(()=>{if(a.state===3||a.state===4)return p();a.action(2,o.bind(this),n).catch(Mu.bind(null,s)).then(p,g)},u);wu.has(this)?(N=wu.get(this))==null||N.set(m(...n),{timeoutId:A,resolve:p}):wu.set(this,new Map([[m(...n),{timeoutId:A,resolve:p}]]))})}return a.action(2,o.bind(this),n).catch(Mu.bind(null,s))})}function Ao(i){return Oe((t,e)=>function(...r){let o=typeof i=="function"?i.call(this,...r):i;if(o instanceof RegExp)return Promise.all(Vi.gets(this,o).map(n=>n.action(3,()=>Promise.resolve(),r))).then(()=>t.call(this,...r));let s=Vi.get(this,o);return s?s.action(3,t.bind(this),r).catch(Mu.bind(null,e)):t.apply(this,r)})}var K={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"},DE=new Set([K.ERROR,K.AUTOPLAY_FAILED,K.KICKED_OUT,K.REMOTE_USER_ENTER,K.REMOTE_USER_EXIT,K.REMOTE_AUDIO_AVAILABLE,K.REMOTE_AUDIO_UNAVAILABLE,K.REMOTE_VIDEO_AVAILABLE,K.REMOTE_VIDEO_UNAVAILABLE,K.CONNECTION_STATE_CHANGED,K.PUBLISH_STATE_CHANGED,K.SCREEN_SHARE_STOPPED,K.DEVICE_CHANGED,K.FIRST_VIDEO_FRAME,K.PERMISSION_STATE_CHANGE,K.VIDEO_SIZE_CHANGED]);var mp={};hi(mp,{ScheduleRequestType:()=>ME,getAbilityConfig:()=>Vy,getScheduleDomain:()=>Pu,isNeedToSchedule:()=>Ou,scheduleProxy:()=>si,sendScheduleRequest:()=>lp,setIsNeedToSchedule:()=>ys,setScheduleProxy:()=>xu});var up=null,Ou=!0;typeof document!="undefined"&&document.head.insertAdjacentHTML("beforeend",Object.values(Ei).map(i=>`<link rel="dns-prefetch" href="https://${i}">`).join(`\r
96
+ `));function ys(i){Qe(i)&&i!==Ou&&(Ou=i,$.info(`setIsNeedToSchedule ${i}`))}U.on("28",()=>ys(!0));U.on("63",()=>ys(!0));U.on("84",()=>ys(!0));U.on("201",i=>{i.state==="RECONNECTING"&&ys(!0)});U.on("202",i=>{i.state==="RECONNECTING"&&ys(!0)});function Uy(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=bo(i,"config",M.MAIN),n=bo(i,"config",M.BACKUP);for(let a of o)if(a.startTime>=e&&(a.name===s||a.name===n)&&a.transferSize>0){let u=a.name===s?M.MAIN:M.BACKUP,m=Math.round(a.duration),p=Math.round(a.domainLookupStart-a.startTime),g=a.redirectStart>0?Math.round(a.redirectEnd-a.redirectStart):0,_=a.fetchStart>0?Math.round(a.domainLookupStart-a.fetchStart):0,A=Math.round(a.domainLookupEnd-a.domainLookupStart),C=Math.round(a.requestStart-a.secureConnectionStart),N=Math.round(a.secureConnectionStart-a.connectStart),D=Math.round(a.responseStart-a.requestStart),O=Math.round(a.responseEnd-a.responseStart),Z=[A,C,N,D,O];He.uploadEvent({log:`stat-schedule-net:${m}(${p}(${g}->${_})->${Z.join("->")}) ${u}`,userId:t}),r=ge(X({},r),{totalCost:m,local:p,dns:A,tcp:N,tls:C,request:D,response:O});break}}catch(o){$.error("getScheduleDetailCost error",o)}return r}function lp(m){return y(this,arguments,function*({userId:i,sdkAppId:t,useStringRoomId:e,roomId:r,userSig:o,version:s,frameWorkType:n,role:a,latencyLevel:u}){if(!Ou&&up)return{isCached:!0,result:up};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 _=yield Qo();_!=null&&_.model&&g.append("model",String(_==null?void 0:_.model)),a&&g.append("role",String(a)),u&&g.append("latencyLevel",String(u)),n&&g.append("frameWorkType",String(n));let A=_e(),C=yield $y(g,p,t);C.config&&(C.config.loggerDomain&&Fo(C.config.loggerDomain),Qe(C.config.scheduleCache)&&ys(!C.config.scheduleCache)),p.delta=_e()-A;let N=Uy(Number(t),i,A);return up=C,{isCached:!1,result:C,detailCost:N}}catch(g){let _=st(g)?g[0]:g,A=ke(_.code)?_.code:0,C=`schedule failed${_.message?`: ${_.message}`:""}`,N=new de({code:q.SCHEDULE_FAILED,extraCode:A,message:$e({key:Fe.JOIN_ROOM_FAILED,data:{error:C,code:A}})});throw $.error(C,A),N}})}var si={main:"",backup:""};function xu(i){st(i)?(si.main=i[0],si.backup=i[1]):si.main=i}var ME=(r=>(r.CONFIG="config",r.TRTC_AUTO_CONF="trtcAutoConf",r.AUDIO_AI_AUTH="audioAiAuth",r))(ME||{});function bo(i,t,e=M.MAIN,r=!1){return`https://${si[e]||Pu(i,e,r)}/api/v1/${t}`}function Vy(i,t,e){let r=bo(i,t),o=bo(i,t,M.BACKUP),s=new URLSearchParams(e).toString(),n=fetch(`${r}?${s}`).then(u=>u.json()),a=fetch(`${o}?${s}`).then(u=>u.json());return na([n,a])}function Pu(i,t=M.MAIN,e=!1){let r;return _i(i)?e?r=t===M.MAIN?Ei.MAIN_OVERSEA_BACKUP:Ei.BACKUP_OVERSEA:r=t===M.MAIN?Ei.MAIN_OVERSEA:Ei.BACKUP_OVERSEA:r=t===M.MAIN?Ei.MAIN:Ei.BACKUP,r}function Fy(i,t,e){return new Promise((r,o)=>{Si({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 wE=(i,t)=>so({retryFunction:Fy,settings:{retries:3,timeout:0},onError:t,onRetrying:i});function $y(i,t,e){return new Promise((r,o)=>{let s=null;na([wE(n=>t.count[0]=n+1,({error:n,retry:a,retriedCount:u,retryFuncArgs:m})=>{t.msg[0]=n.message,s||(u>=1&&(m[0]=bo(e,"config",M.MAIN,!0)),a())})(bo(e,"config",M.MAIN),i,{get timeout(){return Go(2+t.count[0])*1e3}}),wE(n=>t.count[1]=n+1,({error:n,retry:a,retriedCount:u,retryFuncArgs:m})=>{t.msg[1]=n.message,s||(u>=2&&(m[0]=bo(e,"config",M.BACKUP,!0)),a())})(bo(e,"config",M.BACKUP),i,{get timeout(){return Go(2+t.count[1])*1e3}})]).then(n=>{s=n,r(s)}).catch(o)})}var By=i=>i.startsWith("data:application/octet-stream;base64,"),Hy=i=>i.startsWith("file://"),cc=class{constructor(){l(this,"_log");this._log=$.createLogger({id:"fd"})}download(t,e){return y(this,null,function*(){let{type:r="blob"}=e||{};t=zo(t);try{let o=_e(),s;if(Ge(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`),Q.addSuccessEvent({key:522700,cost:_e()-o}),s.data}catch(o){throw this._log.error(`failed to download: ${t}, error: ${o}`),Q.addFailedEvent({key:522700,error:o}),o}})}downloadWithFetch(t,e){return y(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 y(this,null,function*(){this._log.info(`loadWasm ${t}, importObject: ${JSON.stringify(e)}`);let r=_e(),o=null,s=null;if(Ge(WebAssembly.instantiateStreaming)&&!By(t)&&!Hy(t)&&Ge(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`),Q.addSuccessEvent({key:522701,cost:n}),o}throw this._log.error(`failed to loadWasm ${t}, error: ${s}`),Q.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`),Q.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)}`),Q.addFailedEvent({key:522702}),o(n)},s.crossOrigin="anonymous",s.src=t,document.head.append?document.head.append(s):document.getElementsByTagName("head")[0].appendChild(s)})}};te([ns({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}`)}})],cc.prototype,"download",1),te([ns({settings:{timeout:3e3,retries:3},onRetrying(t){this._log.warn(`loadScript retrying: ${t}`)}})],cc.prototype,"loadScript",1);var dc=new cc;function OE({TRTC:i,room:t,errorModule:e,assetsPath:r}){return{TRTC:i,LocalMixVideoTrack:Es,LocalVideoTrack:ar,LocalScreenTrack:ri,room:t,assetsPath:r,fileDownloader:dc,innerEmitter:U,INNER_EVENT:F,constants:Ol,environment:an,utils:Qh,eventLogger:He,log:this.room.getLogger(),loggerManager:$,errorModule:e,kvStatManager:Q,rtcDectection:lo,trtc:this,rx:zh,enums:wm,schedule:mp,getDevices:gn,initVisionTaskRegistry:(o,s="/mediapipe/vision.js")=>y(this,null,function*(){window.VisionTaskRegistry||(yield dc.loadScript(`${o}/${s}`.replace(/([^:]\/)\/+/g,"$1"))),yield(yield window.VisionTaskRegistry.getInstance(o)).preloadModels([window.VisionTaskType.ImageSegmenter])}),audioContext:We(),deviceDetector:rt,AudioPlayer:_n,AutoPlayDialog:hn,Timer:dt,clearStarted:(o,s)=>{let n=o.getAlias(),a=Vi.instances.get(this);if(a)if(s){let u=a.get(n+s);if(!u)return;u.started=!1}else a.forEach((u,m)=>{m.startsWith(n)&&(u.started=!1)})},startGetPCM:ic,createAudioNode:Ga,getNetworkTimeOffset:zp}}var xE=(i,t)=>{let{emit:e}=i;return i.emit=(...r)=>{try{return e.apply(i,r)}catch(o){let s=$e({key:Fe.CATCH_HANDLER_ERROR,data:{name:t,event:r[0]},addDocLink:!1});return $.warn(`${s}
97
97
 
98
- ${o.stack}`),!1}},i};var Dn=new WeakMap;function OE(i){let t=Dn.get(i);t&&(t.forEach(e=>clearTimeout(e)),Dn.delete(i))}function xE(i,t){return Oe((e,r)=>function(...o){let s=Dn.get(this);s||(s=new Map,Dn.set(this,s));let n=t(...o),a=s.get(n);if(!a||a<=0){e.apply(this,o);let u=setTimeout(()=>{var m;(m=Dn.get(this))==null||m.delete(n)},i);s.set(n,u)}else{clearTimeout(a);let u=window.setTimeout(()=>{var m;e.apply(this,o),(m=Dn.get(this))==null||m.delete(n)},i);s.set(n,u)}})}var kE="trtc-sdk-v5",LE="5.13.0-wasm.5";function xt(...i){return Oe((t,e)=>function(...r){try{Lu.call(this,i,r,e,this._name)}catch(o){return Promise.reject(o)}return t.apply(this,r)})}function mp(...i){return Oe((t,e)=>function(...r){try{Lu.call(this,i,r,e,this._name)}catch(o){throw o}return t.apply(this,r)})}function Lu(i,t,e,r){if(st(i))for(let o=0;o<i.length;o++)ku.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else ku.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function ku({rule:i,value:t,key:e,fnName:r,className:o}){function s(u){return{code:se.INVALID_PARAMETER,extraCode:u,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(x(t)){if(i.required)throw new oe(s(5001));if(x(i.defaultValue)){Ge(i.validate)&&i.validate.call(this,t,e,r,o,this);return}t=i.defaultValue}if(Array.isArray(i.type)){let u=!1;for(let m=0;m<i.type.length;m++)i.type[m]===null&&t===null&&(u=!0),Ge(i.type[m])&&t instanceof i.type[m]&&(u=!0),Ne(i.type[m])&&ct(t)===i.type[m].toLowerCase()&&(u=!0);if(!u)throw new oe({code:se.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(m=>jo(m)?Hs(m):Ne(m)?m:ct(m))},value:t}})}else if(!x(i.type)&&ct(t)!==i.type)throw new oe(s(5002));if(i.allowEmpty===!1){let u=ke(t)&&(t===0||Number.isNaN(t)),m=Ne(t)&&t.trim()==="";if(u||m)throw new oe(s(5003))}if(i.notLessThanZero&&ke(t)&&t<0)throw new oe(s(5006));if(!x(i.min)&&ke(t)&&t<i.min)throw new oe(s(5007));if(!x(i.max)&&ke(t)&&t>i.max)throw new oe(s(5008));if(Ne(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new oe(s(5004))}else if(Ge(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;Bt(n)&&ir(t)&&Object.keys(n).forEach(u=>{ku.call(this,{rule:n[u],value:t&&t[u],key:`${u}`,fnName:r,className:o})});let{arrayItem:a}=i;Bt(a)&&st(t)&&t.forEach((u,m)=>{ku.call(this,{rule:a,value:u,key:`${e}[${m}]`,fnName:r,className:o})}),Ge(i.validate)&&i.validate.call(this,t,e,r,o,this)}function tt(i={}){let{getRemoteId:t=()=>"",replaceArg:e,getKVReportKey:r,ignoreLog:o,ignoreErrorLog:s}=i;return Oe((n,a)=>function(...u){var A,C,N;function m(D,O,Z){if(Z&&Z.includes(D))return"hided";if(e){let ue=e(...u);if(u[ue.argIndex]===O)return ue.value}if(O===u||D in u)return O;try{return O instanceof HTMLElement?`id: ${O.id} type:${ct(O)}`:O instanceof MediaStreamTrack?td(O):(JSON.stringify(O),O)}catch(ue){return`type:${ct(O)}`}}let p=this._log||$;if(o!=null&&o(...u))return n.apply(this,u);u.length>0?p.info(`${a}() ${JSON.stringify(u,(D,O)=>m(D,O,["userSig","privateMapKey"]))}`):p.info(`${a}()`);let g=r?r(...u):Md[a],_=(s==null?void 0:s(...u))||!1;try{let D=n.apply(this,u),O=_e();if(io(D)){let Z=`${a.includes("Plugin")?`${((C=(A=u[0]).getName)==null?void 0:C.call(A))||""} `:" "}`;return D.then(ue=>(p.info(`${a}() success ${Z}${t.call(this,...u)}`),Q.addSuccessEvent({key:g,cost:_e()-O}),ue)).catch(ue=>{var H;ue=oe.convertFrom.call(this,ue,a,u.length===1?u[0]:u);let Se=ue.extraCode||ue.code,Ye=(H=ue.message)!=null&&H.includes(Se)?"":` code:${Se}`;throw _||p.error(`${a}() failed ${Z}${t.call(this,...u)} ${ue}${Ye} params: ${JSON.stringify(u,m)}`),Q.addFailedEvent({key:g,error:ue}),ue})}return Q.addSuccessEvent({key:g}),D}catch(D){D=oe.convertFrom.call(this,D,a);let O=D.extraCode||D.code,Z=(N=D.message)!=null&&N.includes(O)?"":` code:${O}`;throw _||p.error(`${a}() failed ${D}${Z} params: ${JSON.stringify(u,m)}`),Q.addFailedEvent({key:g,error:D}),D}})}var Uu=i=>Oe((t,e)=>function(r,o){return y(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(Ge(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 Lu.call(this,s.getValidateRule(i),[o],e,"TRTC"),t.call(this,s,o)})});var Vu=0,hp,Fi=class Fi{constructor(t){this.core=t;l(this,"log");l(this,"customAudioReferenceMap",new Map);l(this,"audioRefId",0);l(this,"audioContext",We());l(this,"localAudioWorkletNode");l(this,"screenAudioWorkletNode");l(this,"mixNode");l(this,"silentNode");Vu=Vu+1,this.log=t.log.createChild({id:`${this.getAlias()}${Vu}`}),this.log.info(`created id=${this.getAlias()}${Vu}`),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 hp||(hp=this.doPreload(t)),hp}doPreload(t){return y(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield xi(this.audioContext,r)}catch(o){this.log.error(`preload audioProcessor failed. ${o}`)}finally{URL.revokeObjectURL(r)}})}getName(){return Fi.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(t){switch(t){case"start":return Fi.getStartValidateRule(this.core);case"update":return Fi.updateValidateRule;case"stop":return Fi.stopValidateRule}}start(t){return y(this,null,function*(){var _,A,C,N;let{room:e}=this.core,{sdkAppId:r,userId:o,userSig:s,assetsPath:n=this.core.assetsPath,audioReference:a,processLevel:u,enableDump:m,isLocalAudioNeedAudioProcess:p=!0,isScreenAudioNeedAudioProcess:g=!1}=t;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=p,this.core.room.audioManager.isScreenAudioNeedAudioProcess=g,!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(yield this.preload(`${n}/audioProcessor-wasm.js`),p&&!this.localAudioWorkletNode){let{sign:D,status:O,timestamp:Z}=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,Z,D,O,e)}if(g&&!this.screenAudioWorkletNode){let{sign:D,status:O,timestamp:Z}=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,Z,D,O,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()),(_=this.localAudioWorkletNode)==null||_.port.postMessage({type:"enable"}),(A=this.screenAudioWorkletNode)==null||A.port.postMessage({type:"enable"}),e.audioManager.addAudioProcessor(this.mixNode,this.silentNode,this.localAudioWorkletNode,this.screenAudioWorkletNode),x(a)||a.forEach(D=>{this.customAudioReferenceMap.set(D,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:D,refId:`o-${this.audioRefId++}`})}),x(u)||(C=this.localAudioWorkletNode)==null||C.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:u}}),x(m)||(N=this.localAudioWorkletNode)==null||N.port.postMessage({type:"dump",data:{enable:m}})})}update(t){return y(this,null,function*(){var s,n,a;let{audioReference:e,enableDump:r,processLevel:o}=t;x(e)||(this.customAudioReferenceMap.forEach((u,m)=>{this.customAudioReferenceMap.delete(m),this.core.room.audioManager.updateAudioReference({type:"remove",refId:u})}),e.forEach(u=>{this.customAudioReferenceMap.set(u,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:u,refId:`o-${this.audioRefId++}`})})),x(o)||(s=this.localAudioWorkletNode)==null||s.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:o}}),x(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 y(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 y(this,null,function*(){let o=String(Date.now()).slice(0,-3),{auth:s,sign:n,status:a,message:u}=yield Wy({sdkAppId:t,userSig:r,userId:e,timestamp:o});if(!s)throw this.log.info(`audioProcessor: ${e} auth result: ${s}. Message: ${u}`),new oe({code:se.INVALID_PARAMETER,message:u});return{sign:n,status:a,timestamp:o}})}initWorkletNode(t,e,r,o,s,n,a,u){t.port.postMessage({type:"init",data:{sdkAppId:String(r),userId:o,timestamp:s,sign:n,status:a}}),t.port.onmessage=m=>{var g;let{data:p}=m;switch(p.type){case"cost":let _=(p==null?void 0:p.value)>10?"info":"debug";this.log[_](`${e==="localAudio"?"":`[${e}] `}avg cost: ${p.value} max: ${p==null?void 0:p.max}(${Ps(new Date(p==null?void 0:p.maxCostTimestamp))}) hist: ${(g=p==null?void 0:p.hist)==null?void 0:g.join(" ")}`);return;case"log":this.log[p.logLevel](`${e==="localAudio"?"":`[${e}] `}${p.value}`);return;case"dump":V.emit("265",{room:u,data:p.value,type:e==="localAudio"?"dump":"dump-screen-audio"});return}}}handleLocalAudioStarted(t){return y(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 y(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}};l(Fi,"updateValidateRule",{type:"object"}),l(Fi,"stopValidateRule",{type:"object"}),l(Fi,"Name","AudioProcessor");var Fu=Fi;function Hy(i,t=M.MAIN){return`https://${si[t]||Pu(i,t)}/api/v1/audioAiAuth`}function Wy(o){return y(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let n=`${Hy(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}&timestamp=${r}`,a=yield fetch(n),{data:{errCode:u,errMsg:m,sign:p,status:g}}=yield a.json();if(g==="1")return{auth:!0,sign:p,status:g,message:m};let _=_i(i)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",A="Init RTCAudioProcessor failed.",C="";switch(u){case 1:C="Please check your params.";break;case 2:C=`You need to buy packages. Refer to: ${_}`;break;case 3:C="Server is invalid. Please contact our engineer. ";break;case 4:C=`Your packages is not active. Refer to: ${_}`;break;case 5:C=`Your packages is expired. Refer to: ${_}`;break;case 6:C="Your version is not supported.";break}return{auth:!1,status:g,message:m?`${A} Reason: ${m}. ${C}`:`${A}, ${C}`}})}var $u=0,pp=class{constructor(t,e){l(this,"player");l(this,"publisher");l(this,"mixInput");this.mixInput=new hn(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&&(x(t.volume)||(this.volume=t.volume),x(t.loop)||(this.loop=t.loop),x(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)}}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(t=this.publisher)==null||t.play(),(e=this.player)==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 wn(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 ni=class ni{constructor(t){this.core=t;l(this,"log");l(this,"mixedMusicMap",new Map);l(this,"cacheMusicMap",new Map);$u=$u+1,this.log=t.log.createChild({id:`${this.getAlias()}${$u}`}),this.log.info(`created id=${this.getAlias()}${$u}`)}getName(){return ni.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return ni.startValidateRule;case"update":return ni.updateValidateRule;case"stop":return ni.stopValidateRule}}start(t){return y(this,null,function*(){let{room:e}=this.core;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 pp(t,e.audioManager),this.cacheMusicMap.set(r,s)),s.updateListener(t),s.updateSettings(t),yield s.play(),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.`),Q.addEnum({key:502700,value:3}),this.kvUpload(t)})}update(t){return y(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),x(r)||n.setOperation(r),x(o)||n.seek(o),this.kvUpload(t)})}stop(e){return y(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:u,onDurationChange:m,onEnded:p}=t;e&&Q.addCount({key:502711}),r&&Q.addCount({key:502703}),o&&Q.addCount({key:502704}),s&&Q.addCount({key:502705}),n&&Q.addCount({key:502706}),a&&Q.addCount({key:502707}),typeof u!="function"&&Q.addCount({key:502709}),typeof p!="function"&&Q.addCount({key:502710}),typeof m!="function"&&Q.addCount({key:502708})}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()}};l(ni,"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,u=o.startsWith("blob"),m=o.startsWith("data");if(!(a||u||m))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});wn("onTimeUpdate",t.onTimeUpdate),wn("onEnded",t.onEnded),wn("onDurationChange",t.onDurationChange)}}),l(ni,"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){wn("onTimeUpdate",t.onTimeUpdate),wn("onEnded",t.onEnded),wn("onDurationChange",t.onDurationChange)}}),l(ni,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),l(ni,"Name","AudioMixer");var Bu=ni;var Hu=0,fp,$i=class $i{constructor(t){this.core=t;l(this,"log");l(this,"audioContext",We("denoiser"));l(this,"workletNode");Hu=Hu+1,this.log=t.log.createChild({id:`${this.getAlias()}${Hu}`}),this.log.info(`created id=${this.getAlias()}${Hu}`)}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}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack)throw new oe({code:se.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return fp||(fp=this.doPreload(t)),fp}doPreload(t){return y(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield xi(this.audioContext,r)}catch(o){throw this.log.error("load worklet failed",o),o}finally{URL.revokeObjectURL(r)}})}getName(){return $i.Name}getAlias(){return"ad"}getGroup(){return`AIDenoiser_${Date.now()}`}getValidateRule(t){switch(t){case"start":return $i.startValidateRule(this.core);case"update":return $i.updateValidateRule;case"stop":return $i.stopValidateRule}}start(t){return y(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(yield this.preload(`${o}/denoiser-wasm.js`),!this.workletNode){let s=String(Date.now()).slice(0,-3),{auth:n,sign:a,status:u,message:m}=yield jy(r,ge(X({},t),{timestamp:s}));if(!n)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${n}. Message: ${m}`),new oe({code:se.INVALID_PARAMETER,message:m});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:u}}),this.workletNode.port.onmessage=p=>{var _;let{data:g}=p;if(g.type==="cost"){let A=(g==null?void 0:g.max)>20?"warn":(g==null?void 0:g.max)>10?"info":"debug";this.log[A](`avg cost: ${g.value} max: ${g==null?void 0:g.max}(${Ps(new Date(g==null?void 0:g.maxCostTimestamp))}) hist: ${(_=g==null?void 0:g.hist)==null?void 0:_.join(" ")}`)}else g.type==="log"&&this.log[g.logLevel](`${g.value}`)}}this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(){return y(this,null,function*(){})}stop(){return y(this,null,function*(){if(!this.workletNode)return;let{room:t}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield t.audioManager.removeDenoiser(this.workletNode)})}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};l($i,"updateValidateRule",{type:"object"}),l($i,"stopValidateRule",{type:"object"}),l($i,"Name","AIDenoiser");var Wu=$i;function jy(s,n){return y(this,arguments,function*(i,{sdkAppId:t,userId:e,userSig:r,timestamp:o}){try{let{data:{errCode:a,errMsg:u,sign:m,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:m,status:p,message:u};let g=_i(t)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",_="Init RTCAIDenoiser failed.",A="";switch(a){case 1:A="Please check your params.";break;case 2:A=`You need to buy packages. Refer to: ${g}`;break;case 3:A="Server is invalid. Please contact our engineer. ";break;case 4:A=`Your packages is not active. Refer to: ${g}`;break;case 5:A=`Your packages is expired. Refer to: ${g}`;break;case 6:A="Your version is not supported.";break}return{auth:!1,status:p,message:u?`${_} Reason: ${u}. ${A}`:`${_}, ${A}`}}catch(a){return{auth:!1,status:"0",message:`Init RTCAIDenoiser failed. All requests failed. ${a}`}}})}var VE=pi(bi(),1);var gp=class extends VE.EventEmitter{constructor(){super();l(this,"observer");l(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 y(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!pt&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){He.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)&&$.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){He.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:r})}}},qy=new gp,Ep=qy;function zy([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 ms(new DataView(new Uint8Array(s).buffer),!0)}function Jy(i){return i.type==="empty"||i.data.byteLength===0}function Xy(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function Qy(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 _p({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let r=9-Qy(i.data);if(r<=0)return i;let o=t.splice(0,r).reverse().map(zy),s=o.reduce((p,g)=>p+g.dataView.byteLength,0),n=new ArrayBuffer(s+i.data.byteLength),a=new DataView(n),u=new DataView(i.data),m=0;for(let p=0;p<o.length;p++)for(let g=0;g<o[p].dataView.byteLength;g++)a.setInt8(m++,o[p].dataView.getInt8(g));for(let p=0;p<i.data.byteLength;p++)a.setInt8(m++,u.getInt8(p));return i.data=n,i}function Tp({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(Jy(i)||!Xy(e))return i;let r=[],o=0,s=-1,n=-1;for(let a=0;a<i.data.byteLength;a++){let u=e.getUint8(a);if(u===0)o++;else if(u===1){if(o===2||o===3){let m=a-o;if(s===-1?s=m:n===-1&&(n=m,r.push(new ms(new DataView(e.buffer.slice(s,n)))),s=m,n=-1),!(e.getUint8(a+1)===6)){i.data=e.buffer.slice(m);break}}o=0}else o=0}t==null||t(r.reverse())}catch(e){}return i}var Ip=0,ac=class ac{constructor(t){this.core=t;l(this,"log");l(this,"_seiMessageList",[]);l(this,"_smallSeiMessageList",[]);l(this,"_subStreamSeiMessageList",[]);Ip++,this.log=t.log.createChild({id:`${this.getAlias()}${Ip}`}),this.log.info(`[sei] created id=${this.getAlias()}${Ip}`),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 _p({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return Tp({frame:t,onSEI:r=>{r.forEach(o=>{this.core.trtc.emit(te.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:os?this.encode:_p,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:os?this.decode:Tp,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 ac.Name}getAlias(){return"sei"}getGroup(){return"sei"}};l(ac,"autoStart",!0),l(ac,"Name","SEI");var Gu=ac;function Sp({frame:i,onDump:t}){return t==null||t(),i}function yp({frame:i,onDump:t}){return t==null||t(),i}var FE={"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:
98
+ ${o.stack}`),!1}},i};var Mn=new WeakMap;function PE(i){let t=Mn.get(i);t&&(t.forEach(e=>clearTimeout(e)),Mn.delete(i))}function kE(i,t){return Oe((e,r)=>function(...o){let s=Mn.get(this);s||(s=new Map,Mn.set(this,s));let n=t(...o),a=s.get(n);if(!a||a<=0){e.apply(this,o);let u=setTimeout(()=>{var m;(m=Mn.get(this))==null||m.delete(n)},i);s.set(n,u)}else{clearTimeout(a);let u=window.setTimeout(()=>{var m;e.apply(this,o),(m=Mn.get(this))==null||m.delete(n)},i);s.set(n,u)}})}var UE="trtc-sdk-v5",VE="5.13.0-wasm.6";function xt(...i){return Oe((t,e)=>function(...r){try{Lu.call(this,i,r,e,this._name)}catch(o){return Promise.reject(o)}return t.apply(this,r)})}function hp(...i){return Oe((t,e)=>function(...r){try{Lu.call(this,i,r,e,this._name)}catch(o){throw o}return t.apply(this,r)})}function Lu(i,t,e,r){if(st(i))for(let o=0;o<i.length;o++)ku.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else ku.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function ku({rule:i,value:t,key:e,fnName:r,className:o}){function s(u){return{code:se.INVALID_PARAMETER,extraCode:u,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(x(t)){if(i.required)throw new oe(s(5001));if(x(i.defaultValue)){Ge(i.validate)&&i.validate.call(this,t,e,r,o,this);return}t=i.defaultValue}if(Array.isArray(i.type)){let u=!1;for(let m=0;m<i.type.length;m++)i.type[m]===null&&t===null&&(u=!0),Ge(i.type[m])&&t instanceof i.type[m]&&(u=!0),Ne(i.type[m])&&ct(t)===i.type[m].toLowerCase()&&(u=!0);if(!u)throw new oe({code:se.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(m=>jo(m)?Ws(m):Ne(m)?m:ct(m))},value:t}})}else if(!x(i.type)&&ct(t)!==i.type)throw new oe(s(5002));if(i.allowEmpty===!1){let u=ke(t)&&(t===0||Number.isNaN(t)),m=Ne(t)&&t.trim()==="";if(u||m)throw new oe(s(5003))}if(i.notLessThanZero&&ke(t)&&t<0)throw new oe(s(5006));if(!x(i.min)&&ke(t)&&t<i.min)throw new oe(s(5007));if(!x(i.max)&&ke(t)&&t>i.max)throw new oe(s(5008));if(Ne(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new oe(s(5004))}else if(Ge(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;Bt(n)&&ir(t)&&Object.keys(n).forEach(u=>{ku.call(this,{rule:n[u],value:t&&t[u],key:`${u}`,fnName:r,className:o})});let{arrayItem:a}=i;Bt(a)&&st(t)&&t.forEach((u,m)=>{ku.call(this,{rule:a,value:u,key:`${e}[${m}]`,fnName:r,className:o})}),Ge(i.validate)&&i.validate.call(this,t,e,r,o,this)}function tt(i={}){let{getRemoteId:t=()=>"",replaceArg:e,getKVReportKey:r,ignoreLog:o,ignoreErrorLog:s}=i;return Oe((n,a)=>function(...u){var A,C,N;function m(D,O,Z){if(Z&&Z.includes(D))return"hided";if(e){let ue=e(...u);if(u[ue.argIndex]===O)return ue.value}if(O===u||D in u)return O;try{return O instanceof HTMLElement?`id: ${O.id} type:${ct(O)}`:O instanceof MediaStreamTrack?od(O):(JSON.stringify(O),O)}catch(ue){return`type:${ct(O)}`}}let p=this._log||$;if(o!=null&&o(...u))return n.apply(this,u);u.length>0?p.info(`${a}() ${JSON.stringify(u,(D,O)=>m(D,O,["userSig","privateMapKey"]))}`):p.info(`${a}()`);let g=r?r(...u):Pd[a],_=(s==null?void 0:s(...u))||!1;try{let D=n.apply(this,u),O=_e();if(io(D)){let Z=`${a.includes("Plugin")?`${((C=(A=u[0]).getName)==null?void 0:C.call(A))||""} `:" "}`;return D.then(ue=>(p.info(`${a}() success ${Z}${t.call(this,...u)}`),Q.addSuccessEvent({key:g,cost:_e()-O}),ue)).catch(ue=>{var H;ue=oe.convertFrom.call(this,ue,a,u.length===1?u[0]:u);let Se=ue.extraCode||ue.code,Ye=(H=ue.message)!=null&&H.includes(Se)?"":` code:${Se}`;throw _||p.error(`${a}() failed ${Z}${t.call(this,...u)} ${ue}${Ye} params: ${JSON.stringify(u,m)}`),Q.addFailedEvent({key:g,error:ue}),ue})}return Q.addSuccessEvent({key:g}),D}catch(D){D=oe.convertFrom.call(this,D,a);let O=D.extraCode||D.code,Z=(N=D.message)!=null&&N.includes(O)?"":` code:${O}`;throw _||p.error(`${a}() failed ${D}${Z} params: ${JSON.stringify(u,m)}`),Q.addFailedEvent({key:g,error:D}),D}})}var Uu=i=>Oe((t,e)=>function(r,o){return y(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(Ge(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 Lu.call(this,s.getValidateRule(i),[o],e,"TRTC"),t.call(this,s,o)})});var Vu=0,pp,Fi=class Fi{constructor(t){this.core=t;l(this,"log");l(this,"customAudioReferenceMap",new Map);l(this,"audioRefId",0);l(this,"audioContext",We());l(this,"localAudioWorkletNode");l(this,"screenAudioWorkletNode");l(this,"mixNode");l(this,"silentNode");Vu=Vu+1,this.log=t.log.createChild({id:`${this.getAlias()}${Vu}`}),this.log.info(`created id=${this.getAlias()}${Vu}`),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 pp||(pp=this.doPreload(t)),pp}doPreload(t){return y(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield xi(this.audioContext,r)}catch(o){this.log.error(`preload audioProcessor failed. ${o}`)}finally{URL.revokeObjectURL(r)}})}getName(){return Fi.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(t){switch(t){case"start":return Fi.getStartValidateRule(this.core);case"update":return Fi.updateValidateRule;case"stop":return Fi.stopValidateRule}}start(t){return y(this,null,function*(){var _,A,C,N;let{room:e}=this.core,{sdkAppId:r,userId:o,userSig:s,assetsPath:n=this.core.assetsPath,audioReference:a,processLevel:u,enableDump:m,isLocalAudioNeedAudioProcess:p=!0,isScreenAudioNeedAudioProcess:g=!1}=t;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=p,this.core.room.audioManager.isScreenAudioNeedAudioProcess=g,!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(yield this.preload(`${n}/audioProcessor-wasm.js`),p&&!this.localAudioWorkletNode){let{sign:D,status:O,timestamp:Z}=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,Z,D,O,e)}if(g&&!this.screenAudioWorkletNode){let{sign:D,status:O,timestamp:Z}=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,Z,D,O,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()),(_=this.localAudioWorkletNode)==null||_.port.postMessage({type:"enable"}),(A=this.screenAudioWorkletNode)==null||A.port.postMessage({type:"enable"}),e.audioManager.addAudioProcessor(this.mixNode,this.silentNode,this.localAudioWorkletNode,this.screenAudioWorkletNode),x(a)||a.forEach(D=>{this.customAudioReferenceMap.set(D,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:D,refId:`o-${this.audioRefId++}`})}),x(u)||(C=this.localAudioWorkletNode)==null||C.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:u}}),x(m)||(N=this.localAudioWorkletNode)==null||N.port.postMessage({type:"dump",data:{enable:m}})})}update(t){return y(this,null,function*(){var s,n,a;let{audioReference:e,enableDump:r,processLevel:o}=t;x(e)||(this.customAudioReferenceMap.forEach((u,m)=>{this.customAudioReferenceMap.delete(m),this.core.room.audioManager.updateAudioReference({type:"remove",refId:u})}),e.forEach(u=>{this.customAudioReferenceMap.set(u,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:u,refId:`o-${this.audioRefId++}`})})),x(o)||(s=this.localAudioWorkletNode)==null||s.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:o}}),x(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 y(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 y(this,null,function*(){let o=String(Date.now()).slice(0,-3),{auth:s,sign:n,status:a,message:u}=yield Gy({sdkAppId:t,userSig:r,userId:e,timestamp:o});if(!s)throw this.log.info(`audioProcessor: ${e} auth result: ${s}. Message: ${u}`),new oe({code:se.INVALID_PARAMETER,message:u});return{sign:n,status:a,timestamp:o}})}initWorkletNode(t,e,r,o,s,n,a,u){t.port.postMessage({type:"init",data:{sdkAppId:String(r),userId:o,timestamp:s,sign:n,status:a}}),t.port.onmessage=m=>{var g;let{data:p}=m;switch(p.type){case"cost":let _=(p==null?void 0:p.value)>10?"info":"debug";this.log[_](`${e==="localAudio"?"":`[${e}] `}avg cost: ${p.value} max: ${p==null?void 0:p.max}(${ks(new Date(p==null?void 0:p.maxCostTimestamp))}) hist: ${(g=p==null?void 0:p.hist)==null?void 0:g.join(" ")}`);return;case"log":this.log[p.logLevel](`${e==="localAudio"?"":`[${e}] `}${p.value}`);return;case"dump":U.emit("265",{room:u,data:p.value,type:e==="localAudio"?"dump":"dump-screen-audio"});return}}}handleLocalAudioStarted(t){return y(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 y(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}};l(Fi,"updateValidateRule",{type:"object"}),l(Fi,"stopValidateRule",{type:"object"}),l(Fi,"Name","AudioProcessor");var Fu=Fi;function Wy(i,t=M.MAIN){return`https://${si[t]||Pu(i,t)}/api/v1/audioAiAuth`}function Gy(o){return y(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let n=`${Wy(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}&timestamp=${r}`,a=yield fetch(n),{data:{errCode:u,errMsg:m,sign:p,status:g}}=yield a.json();if(g==="1")return{auth:!0,sign:p,status:g,message:m};let _=_i(i)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",A="Init RTCAudioProcessor failed.",C="";switch(u){case 1:C="Please check your params.";break;case 2:C=`You need to buy packages. Refer to: ${_}`;break;case 3:C="Server is invalid. Please contact our engineer. ";break;case 4:C=`Your packages is not active. Refer to: ${_}`;break;case 5:C=`Your packages is expired. Refer to: ${_}`;break;case 6:C="Your version is not supported.";break}return{auth:!1,status:g,message:m?`${A} Reason: ${m}. ${C}`:`${A}, ${C}`}})}var $u=0,fp=class{constructor(t,e){l(this,"audioObjectURL");l(this,"player");l(this,"publisher");l(this,"mixInput");this.mixInput=new fn(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&&(x(t.volume)||(this.volume=t.volume),x(t.loop)||(this.loop=t.loop),x(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 y(this,null,function*(){if(t.url){let e=yield dc.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(t=this.publisher)==null||t.play().catch(()=>{}),(e=this.player)==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 On(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 ni=class ni{constructor(t){this.core=t;l(this,"log");l(this,"mixedMusicMap",new Map);l(this,"cacheMusicMap",new Map);$u=$u+1,this.log=t.log.createChild({id:`${this.getAlias()}${$u}`}),this.log.info(`created id=${this.getAlias()}${$u}`)}getName(){return ni.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return ni.startValidateRule;case"update":return ni.updateValidateRule;case"stop":return ni.stopValidateRule}}start(t){return y(this,null,function*(){let{room:e}=this.core;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 fp(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.`),Q.addEnum({key:502700,value:3}),this.kvUpload(t)})}handleAutoPlayFailed(t,e,r){return y(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),new hn}else this.core.trtc.emit(K.AUTOPLAY_FAILED,{userId:"",mediaType:"audio",resume:()=>y(this,null,function*(){return t.play()})});else throw r})}update(t){return y(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),x(r)||n.setOperation(r),x(o)||n.seek(o),this.kvUpload(t)})}stop(e){return y(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:u,onDurationChange:m,onEnded:p}=t;e&&Q.addCount({key:502009}),r&&Q.addCount({key:502001}),o&&Q.addCount({key:502002}),s&&Q.addCount({key:502003}),n&&Q.addCount({key:502004}),a&&Q.addCount({key:502005}),typeof u!="function"&&Q.addCount({key:502007}),typeof p!="function"&&Q.addCount({key:502008}),typeof m!="function"&&Q.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()}};l(ni,"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,u=o.startsWith("blob"),m=o.startsWith("data");if(!(a||u||m))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});On("onTimeUpdate",t.onTimeUpdate),On("onEnded",t.onEnded),On("onDurationChange",t.onDurationChange)}}),l(ni,"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){On("onTimeUpdate",t.onTimeUpdate),On("onEnded",t.onEnded),On("onDurationChange",t.onDurationChange)}}),l(ni,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),l(ni,"Name","AudioMixer");var Bu=ni;var Hu=0,gp,$i=class $i{constructor(t){this.core=t;l(this,"log");l(this,"audioContext",We("denoiser"));l(this,"workletNode");l(this,"config",{enableFarFieldReduce:!1,farFieldReduceThreshold:.5});Hu=Hu+1,this.log=t.log.createChild({id:`${this.getAlias()}${Hu}`}),this.log.info(`created id=${this.getAlias()}${Hu}`)}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 gp||(gp=this.doPreload(t)),gp}doPreload(t){return y(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield xi(this.audioContext,r)}catch(o){throw this.log.error("load worklet failed",o),o}finally{URL.revokeObjectURL(r)}})}getName(){return $i.Name}getAlias(){return"ad"}getGroup(){return"AIDenoiser"}getValidateRule(t){switch(t){case"start":return $i.startValidateRule(this.core);case"update":return $i.updateValidateRule;case"stop":return $i.stopValidateRule}}start(t){return y(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(yield this.preload(`${o}/denoiser-wasm${Wm()?"":"-nosimd"}.js`),!this.workletNode){let s=String(Date.now()).slice(0,-3),{auth:n,sign:a,status:u,message:m}=yield qy(r,ge(X({},t),{timestamp:s}));if(!n)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${n}. Message: ${m}`),new oe({code:se.INVALID_PARAMETER,message:m});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:u}}),this.workletNode.port.onmessage=p=>{var _;let{data:g}=p;if(g.type==="cost"){let A=(g==null?void 0:g.max)>20?"warn":(g==null?void 0:g.max)>10?"info":"debug";this.log[A](`avg cost: ${g.value} max: ${g==null?void 0:g.max}(${ks(new Date(g==null?void 0:g.maxCostTimestamp))}) hist: ${(_=g==null?void 0:g.hist)==null?void 0:_.join(" ")}`)}else g.type==="log"&&this.log[g.logLevel](`${g.value}`)}}this.updateConfig(t),this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(t){return y(this,null,function*(){this.updateConfig(t)})}stop(){return y(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;x(t.mode)||(t.mode===0?this.config.enableFarFieldReduce=!1:t.mode===1&&(this.config.enableFarFieldReduce=!0),e=!0),x(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)}};l($i,"updateValidateRule",{type:"object",properties:{mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}}}),l($i,"stopValidateRule",{type:"object"}),l($i,"Name","AIDenoiser");var Wu=$i;function qy(s,n){return y(this,arguments,function*(i,{sdkAppId:t,userId:e,userSig:r,timestamp:o}){try{let{data:{errCode:a,errMsg:u,sign:m,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:m,status:p,message:u};let g=_i(t)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",_="Init RTCAIDenoiser failed.",A="";switch(a){case 1:A="Please check your params.";break;case 2:A=`You need to buy packages. Refer to: ${g}`;break;case 3:A="Server is invalid. Please contact our engineer. ";break;case 4:A=`Your packages is not active. Refer to: ${g}`;break;case 5:A=`Your packages is expired. Refer to: ${g}`;break;case 6:A="Your version is not supported.";break}return{auth:!1,status:p,message:u?`${_} Reason: ${u}. ${A}`:`${_}, ${A}`}}catch(a){return{auth:!1,status:"0",message:`Init RTCAIDenoiser failed. All requests failed. ${a}`}}})}var $E=pi(bi(),1);var Ep=class extends $E.EventEmitter{constructor(){super();l(this,"observer");l(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 y(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!pt&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){He.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)&&$.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){He.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:r})}}},zy=new Ep,_p=zy;function Jy([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 hs(new DataView(new Uint8Array(s).buffer),!0)}function Xy(i){return i.type==="empty"||i.data.byteLength===0}function Qy(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function Yy(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 Tp({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let r=9-Yy(i.data);if(r<=0)return i;let o=t.splice(0,r).reverse().map(Jy),s=o.reduce((p,g)=>p+g.dataView.byteLength,0),n=new ArrayBuffer(s+i.data.byteLength),a=new DataView(n),u=new DataView(i.data),m=0;for(let p=0;p<o.length;p++)for(let g=0;g<o[p].dataView.byteLength;g++)a.setInt8(m++,o[p].dataView.getInt8(g));for(let p=0;p<i.data.byteLength;p++)a.setInt8(m++,u.getInt8(p));return i.data=n,i}function Ip({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(Xy(i)||!Qy(e))return i;let r=[],o=0,s=-1,n=-1;for(let a=0;a<i.data.byteLength;a++){let u=e.getUint8(a);if(u===0)o++;else if(u===1){if(o===2||o===3){let m=a-o;if(s===-1?s=m:n===-1&&(n=m,r.push(new hs(new DataView(e.buffer.slice(s,n)))),s=m,n=-1),!(e.getUint8(a+1)===6)){i.data=e.buffer.slice(m);break}}o=0}else o=0}t==null||t(r.reverse())}catch(e){}return i}var Sp=0,uc=class uc{constructor(t){this.core=t;l(this,"log");l(this,"_seiMessageList",[]);l(this,"_smallSeiMessageList",[]);l(this,"_subStreamSeiMessageList",[]);Sp++,this.log=t.log.createChild({id:`${this.getAlias()}${Sp}`}),this.log.info(`[sei] created id=${this.getAlias()}${Sp}`),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 Tp({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return Ip({frame:t,onSEI:r=>{r.forEach(o=>{this.core.trtc.emit(K.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:os?this.encode:Tp,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:os?this.decode:Ip,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 uc.Name}getAlias(){return"sei"}getGroup(){return"sei"}};l(uc,"autoStart",!0),l(uc,"Name","SEI");var Gu=uc;function yp({frame:i,onDump:t}){return t==null||t(),i}function Ap({frame:i,onDump:t}){return t==null||t(),i}var BE={"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
99
  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.
100
100
  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:
101
101
  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.
102
- 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=>{FE[`${i}()`]={tips:`Call trtc.${i}`,color:"blue",class:"blue",textColor:"#fff"}});var IV=Object.keys(FE);var Yy=0,ju,cc=class cc{constructor(t){this.core=t;l(this,"_core");l(this,"log");l(this,"dumpLocalVideoMap",{});l(this,"dumpRemoteVideoMap",{});l(this,"dialog");this._core=t,this.log=t.log.createChild({id:`${this.getAlias()}${++Yy}`}),this.log.info("created")}getName(){return cc.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 y(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 y(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 y(this,null,function*(){var t;if(!this.dialog)try{if(ju)yield ju;else{let e=new URLSearchParams(location.search).get("trtcDebugDialogPath")||((t=window.sessionStorage)==null?void 0:t.getItem("TRTC_DEBUG_DIALOG_PATH"))||`https://unpkg.com/${kE}@${at}/assets/debug-dialog.js`;ju=this._core.fileDownloader.loadScript(e),yield ju}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):Sp,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):yp,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo({frame:t,mediaType:e}){return Sp({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 yp({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())}})}};l(cc,"Name","Debug"),l(cc,"autoStart",!0);var qu=cc;var $E=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},zu=class{constructor(t,e,r){l(this,"trackDoneOB");l(this,"startOB");l(this,"stopOB");l(this,"inputFrameCount",0);l(this,"decodedFrameCount",0);l(this,"type","auto");l(this,"config");l(this,"decoder");l(this,"_decodeSink");let{kvStatManager:o,trtc:s}=t;this.config=r.config,this.trackDoneOB=be(e,le.INIT),this.stopOB=Rt(),this.startOB=Rt(),r.type==="auto"?this.type="webCodecs":this.type=r.type;let n=Rt(),a=u=>{let m=this.pipe(e);return n.next("STARTING"),e.log.info(`decoder type: ${this.type}`),Ae(m,ze(this.stopOB),Le(()=>{},p=>{e.log.error(p),o.addFailedEvent({key:$E(this.type),error:p}),u>4?this.startOB.error(p):this.startOB.next(u+1)})),Ae(m,Fr(1),Bh(Qa))};Ae(this.startOB,Ja(0),Eo(a),ze(this.stopOB),Le(()=>{e.player.setOutput(),n.next("STARTED")},u=>{n.next("FAILED")},()=>{o.addSuccessEvent({key:$E(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 Pi()(e=>y(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"}))}},Zy={type:"object"},dc=class dc{constructor(t){this.core=t;l(this,"log");l(this,"contextMap",new Map);l(this,"decodeProcessorMap",new WeakMap);this.log=t.log.createChild({id:`${this.getAlias()}`})}getAlias(){return dc.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return dc.Name}getValidateRule(t){return Zy}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 zu(this.core,r,t);return Ae(o.trackDoneOB,Fr(1),Le(()=>{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 zu(this.core,t.track,t))}}};l(dc,"Name","TRTCAudioDecoder");var uc=dc;var Ju=class{constructor(){l(this,"log");this.log=$.createLogger({id:"exp"})}call(t,e){return y(this,null,function*(){return Ge(this[t])?this[t](e):Promise.reject(new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.API_NOT_EXIST,data:{name:t}})}))})}enableAudioFrameEvent(t){return y(this,null,function*(){let{trtcInstance:e,enable:r,userId:o,sampleRate:s=48e3,channelCount:n=1,port:a}=t,{audioManager:u}=e.room,{getPCMAbortCtrlMap:m,audioFrameEventConfigMap:p}=u;if(p.set(o,{enable:r,sampleRate:s,channelCount:n,port:a}),r)if(o==="*")e.room.remotePublishedUserMap.forEach(g=>{if(g.remoteAudioTrack.isAvailable){if(m.get(g.userId))return;let _=u.getPCM(A=>{e.emit(te.AUDIO_FRAME,A)},g.userId);m.set(g.userId,_)}});else{if(m.get(o))return;let g=u.getPCM(_=>{e.emit(te.AUDIO_FRAME,_)},o);m.set(o,g)}else if(o==="*")e.room.remotePublishedUserMap.forEach(g=>{if(g.remoteAudioTrack.isSubscribed){let{userId:_}=g,A=m.get(_);A==null||A.abort("disable"),m.delete(_)}});else{let g=m.get(o);g==null||g.abort("disable"),m.delete(o)}})}};ee([oE({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"}}})],Ju.prototype,"enableAudioFrameEvent",1);var BE=new Ju;var HE=pi(bi(),1);var Ap=class extends HE.EventEmitter{constructor(){super();l(this,"states",{});l(this,"permissionChangeHandler");l(this,"log");this.log=$.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 y(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 y(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={}}},lc=new Ap;var WE=0,mc=new Set,wt=null;bl(LE);an.checkStorage();var Ie=class Ie extends GE.EventEmitter{constructor(e,r){super();l(this,"_room");l(this,"_eventListened",new Set);l(this,"_localVideoTrack",null);l(this,"_localAudioTrack",null);l(this,"_localScreenTrack",null);l(this,"_localScreenAudioTrack",null);l(this,"_localVideoConfig",null);l(this,"_localScreenConfig",null);l(this,"_localAudioConfig",null);l(this,"_remoteVideoConfigMap",new Map);l(this,"_remoteAudioConfigMap",new Map);l(this,"_remoteAudioVolumeMap",new Map);l(this,"_remoteAudioMuteMap",new Map);l(this,"_mediaTrackMap",new WeakMap);l(this,"_log",$.createLogger({id:`t${++WE}`}));l(this,"_plugins",new Map);l(this,"_networkQuality",null);l(this,"_speakerId");l(this,"enterRoomParams");l(this,"_enableAutoSwitchWhenRecapturing",!0);this._room=new e(X({logger:this._log,frameWorkType:Ie.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,Qe(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(Bu,r.assetsPath),this._use(Fu,r.assetsPath),this._use(Wu,r.assetsPath),this._use(uc,r.assetsPath),this._use(qu),r.enableSEI&&xa&&this._use(Gu),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 m;let u=a.userId===""?this._localAudioTrack:(m=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:m.remoteAudioTrack;u&&(a.volume=u.dbVolume)}),r.enableDbVolume&&o.forEach(a=>{var m;let u=a.userId===""?this._localAudioTrack:(m=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:m.remoteAudioTrack;u&&(a.volume=u.dbVolume)}),this.emit(te.AUDIO_VOLUME,{result:o.sort((a,u)=>u.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(),ME(this,"trtc")}static create(e){}static _create(e,r){gE();let o=new Ie(e,r||{});return mc.add(o),o.__v_skip=!0,o}get room(){return this._room}_listenEvents(){bt(this,this._room).add("peer-join",e=>{let{userId:r}=e;this.emit(te.REMOTE_USER_ENTER,{userId:r})}).add("peer-leave",e=>{this.emit(te.REMOTE_USER_EXIT,{userId:e})}).add("banned",e=>{this._exitRoom().finally(()=>{this.emit(te.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().finally(()=>{this.emit(te.ERROR,oe.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(te.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=ge(X({},e),{uplinkRTT:Math.min(e.uplinkRTT,Kn),downlinkRTT:Math.min(e.downlinkRTT,Kn)});this.emit(te.NETWORK_QUALITY,r)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{bt(o,o).add("player-state-changed",s=>{let n=ge(X({},s),{userId:e.userId});o.kind===M.VIDEO&&(n.streamType=oi(o.streamType)),this.emit(o.kind===M.AUDIO?te.AUDIO_PLAY_STATE_CHANGED:te.VIDEO_PLAY_STATE_CHANGED,n)}).add("error",s=>{s.getCode()===q.PLAY_NOT_ALLOWED&&this.emit(te.AUTOPLAY_FAILED,{userId:o.userId,mediaType:o.strMediaType,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{ut(o)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:r})=>{let{userId:o}=r,s=e.audioAvailable,n=e.videoAvailable,{audioAvailable:a,videoAvailable:u}=r;a||this._remoteAudioConfigMap.delete(o),u||this._removeRemoteVideoConfig(o,"main"),r.hasAuxiliary||this._removeRemoteVideoConfig(o,"sub"),n!==u&&(u?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(u?te.REMOTE_VIDEO_AVAILABLE:te.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),s!==a&&(a?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:r}),this.emit(a?te.REMOTE_AUDIO_AVAILABLE:te.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?te.REMOTE_VIDEO_AVAILABLE:te.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))}).add("sei-message",e=>{this.emit(te.SEI_MESSAGE,ge(X({},e),{streamType:oi(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(te.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,n,a,u,m,p,g;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,Kn),upLoss:((u=this._networkQuality)==null?void 0:u.uplinkLoss)||0,downLoss:((m=this._networkQuality)==null?void 0:m.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:(((g=e.msg_up_stream_info.msg_audio_status)==null?void 0:g.uint32_audio_level)||0)/Ci},video:e.msg_up_stream_info.msg_video_status.filter(_=>r[_.uint32_video_stream_type]).map(_=>({bitrate:(_.uint32_video_codec_bitrate||0)/1e3,width:_.uint32_video_width,height:_.uint32_video_height,frameRate:_.uint32_video_enc_fps,videoType:r[_.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(_=>({userId:_.msg_user_info.str_identifier,audio:{bitrate:(_.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(_.msg_audio_status.uint32_audio_level||0)/Ci,point2pointDelay:(_.msg_audio_status.uint32_audio_p2p_delay||0)+(_.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:_.msg_audio_status.uint32_audio_cache_ms||0},video:_.msg_video_status.map(A=>({bitrate:(A.uint32_video_codec_bitrate||0)/1e3,width:A.uint32_video_width,height:A.uint32_video_height,frameRate:A.uint32_video_dec_fps,videoType:r[A.uint32_video_stream_type],point2pointDelay:(A.uint32_video_p2p_delay||0)+(A.uint32_video_cache_ms||0),jitterBufferDelay:A.uint32_video_cache_ms||0,codec:A.uint32_video_codec}))}))};this.emit(te.STATISTICS,o)}).add("custom-message",e=>{this.emit(te.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(te.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(te.FIRST_VIDEO_FRAME,ge(X({},e),{streamType:oi(e.streamType)}))}).add("audio-frame",e=>{this.emit(te.AUDIO_FRAME,e)}),bt(this,rt).add("audioInputAdded",e=>{this.emit(te.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(te.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(te.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(te.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>y(this,null,function*(){if(this.emit(te.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),wt&&wt.deviceId===Zn){let r=(yield ho()).find(o=>o.deviceId===Zn);r&&wt.groupId!==r.groupId&&(wt=r,this.emit(te.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}})).add("audioOutputRemoved",e=>y(this,null,function*(){this.emit(te.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let r=(yield ho())[0];if(!r||!wt||wt.groupId===r.groupId)return;let o=wt.deviceId===e.deviceId,s=wt.deviceId===Zn&&wt.deviceId===r.deviceId;(o||s)&&(wt=r,this.emit(te.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))})),bt(this,lc).add("permission-state-change",e=>{this.emit(te.PERMISSION_STATE_CHANGE,e)})}getNetworkTime(){return fi()}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(wE.call(this,{TRTC:Ie,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 y(this,null,function*(){var u,m;this.enterRoomParams=e;let{scene:r="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:n=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!Ne(e.proxy)&&e.proxy.turnServer&&((m=(u=this._room).setTurnServer)==null||m.call(u,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=n,Qe(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,Ie.frameWorkType),this._checkTrackToPublish(),Ep.start()})}exitRoom(){return y(this,null,function*(){return yield this._exitRoom()})}switchRoom(e){return y(this,null,function*(){if(this.room.isSwitchRoomSupported())try{yield this._room.switchRoom(e)}catch(r){if(r instanceof zn&&(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 y(this,null,function*(){yield this.exitRoom();let r=X(X({},this.enterRoomParams),e);yield this.enterRoom(r)})}switchRole(e,r){return y(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(){ut(this),this.removeAllListeners(),this._room.destroy(),mc.delete(this),mc.size===0&&Ep.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),this._plugins.forEach(e=>{var r;return(r=e.destroy)==null?void 0:r.call(e)}),this._plugins.clear(),V.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return y(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 ti(this._room.audioManager),a={},u={muted:!0};s&&(x(s.microphoneId)?x(s.audioTrack)||(a.customSource=s.audioTrack):a.deviceId=s.microphoneId,s&&ke(s.captureVolume)&&n.setCaptureVolume(s.captureVolume),x(s.profile)||(Ne(s.profile)?$c[s.profile]&&n.setProfile($c[s.profile]):n.setProfile(s.profile)),ke(s.earMonitorVolume)&&(u.muted=!(s.earMonitorVolume>0),u.volume=s.earMonitorVolume),x(s.echoCancellation)||(n.profile.echoCancellation=s.echoCancellation),x(s.noiseSuppression)||(n.profile.noiseSuppression=s.noiseSuppression),x(s.autoGainControl)||(n.profile.autoGainControl=s.autoGainControl),Qe(this._enableAutoSwitchWhenRecapturing)&&(n.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),n.on("5",m=>{this.emit(te.ERROR,new oe({code:se.DEVICE_ERROR,extraCode:5309,messageParams:{error:m}}))}),n.on("2",m=>{this.emit(te.DEVICE_CHANGED,{type:"microphone",action:"active",device:m})}),n.on("4",m=>{let p;m.error&&(p=oe.convertFrom(m.error)),this.emit(te.PUBLISH_STATE_CHANGED,ge(X({},m),{error:p}))}),n.on("6",()=>{this.emit(te.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),x(o)||n.setMute(o),bt(n,n).add("player-state-changed",m=>{this.emit(te.AUDIO_PLAY_STATE_CHANGED,ge(X({},m),{userId:""}))}),r&&this._room.isJoined&&this._room.publish(n).catch(()=>{}),this._localAudioTrack=n,this._localAudioConfig=ge(X({},e),{publish:r}),yield this._updateAudioPlayOption({playOption:u,track:n}),V.emit("113",{userId:"",room:this.room})})}updateLocalAudio(e){return y(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):x(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),x(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),x(s.earMonitorVolume)||(n.muted=!(s.earMonitorVolume>0),n.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!x(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),x(o)||this._localAudioTrack.setMute(o),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),Nr(this._localAudioConfig,e)})}stopLocalAudio(){return y(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),V.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),ut(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)})}startLocalVideo(){return y(this,arguments,function*(e={publish:!0,view:null,capture:!0}){var g;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,u=new ar(this._room.videoManager),m={},p={};a&&(Qe(a.avoidCropping)&&(u.avoidCropping=a.avoidCropping),a.cameraId?m.deviceId=a.cameraId:x(a.useFrontCamera)?x(a.videoTrack)||(m.customSource=a.videoTrack):m.facingMode=a.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,x(a.retryWhenExactFailed)||(m.retryWhenExactFailed=a.retryWhenExactFailed),a.qosPreference&&(m.contentHint=sc(a.qosPreference)),x(a.profile)||(Ne(a.profile)?vr[a.profile]&&u.setProfile(vr[a.profile]):u.setProfile(a.profile)),x(a.fillMode)||(p.objectFit=a.fillMode),x(a.mirror)||(p.mirror=a.mirror),x(a.small)||(x(a.smallMode)||(this._room.smallMode=a.smallMode),Qe(a.small)&&a.small===!1?u.stopSmall():u.updateSmallConfig(vn(a.small,!0))),x(a.rotation)||u.setRotation(a.rotation),Qe(this._enableAutoSwitchWhenRecapturing)&&(u.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),u.once("first-video-frame",_=>{this.emit(te.FIRST_VIDEO_FRAME,ge(X({},_),{streamType:oi(_.streamType)}))}),u.on("5",_=>{this.emit(te.ERROR,new oe({code:se.DEVICE_ERROR,extraCode:5308,messageParams:{error:_}}))}),u.on("2",_=>{this.emit(te.DEVICE_CHANGED,{type:"camera",action:"active",device:_})}),u.on("4",_=>{let A;_.error&&(A=oe.convertFrom(_.error)),this.emit(te.PUBLISH_STATE_CHANGED,ge(X({},_),{error:A}))}),u.on("6",()=>{this.emit(te.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5505,message:"video encode failed"}))}),this._listenOutputTrackChanged(u),s?yield u.capture(m):(g=u.manager)==null||g.changeInput(u),x(n)||(yield u.setMute(n)),bt(u,u).add("player-state-changed",_=>{this.emit(te.VIDEO_PLAY_STATE_CHANGED,ge(X({},_),{userId:"",streamType:"main"}))}).add("video-size-changed",_=>{this.emit(te.VIDEO_SIZE_CHANGED,ge(X({},_),{streamType:oi(_.streamType)}))}),o&&this._room.isJoined&&this._room.publish(u).catch(()=>{}),this._localVideoTrack=u,this._localVideoConfig=ge(X({},e),{view:r,publish:o,capture:s}),yield this._updateVideoPlayOption({view:r,playOption:p,track:u})})}updateLocalVideo(e){return y(this,null,function*(){var m,p,g;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:r,publish:o,mute:s,capture:n,option:a}=e,u={};if(this._localVideoConfig.capture)n!==!1?a!=null&&a.cameraId?yield this._localVideoTrack.switchDevice(a==null?void 0:a.cameraId):x(a==null?void 0:a.useFrontCamera)?x(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 _={};_.deviceId=(a==null?void 0:a.cameraId)||((m=this._localVideoConfig.option)==null?void 0:m.cameraId),_.facingMode=a!=null&&a.useFrontCamera||(p=this._localVideoConfig.option)!=null&&p.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,_.customSource=(a==null?void 0:a.videoTrack)||((g=this._localVideoConfig.option)==null?void 0:g.videoTrack),yield this._localVideoTrack.capture(_)}a&&(x(a.profile)||(Ne(a.profile)?vr[a.profile]&&this._localVideoTrack.setProfile(vr[a.profile]):this._localVideoTrack.setProfile(a.profile),(!a.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(a.cameraId))&&x(a.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),x(a.fillMode)||(u.objectFit=a.fillMode),x(a.mirror)||(u.mirror=a.mirror),x(a.rotation)||this._localVideoTrack.setRotation(a.rotation),a.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(sc(a.qosPreference)),x(a.small)||(Qe(a.small)&&!a.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(vn(a.small,!0)))),this._room.isJoined&&x(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(()=>{})),x(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:r,playOption:u,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),Nr(this._localVideoConfig,e)})}stopLocalVideo(){return y(this,null,function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),ut(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return y(this,arguments,function*(e={publish:!0,view:null}){var _,A;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 ri(this._room.videoManager);a.on("4",C=>{let N;C.error&&(N=oe.convertFrom(C.error)),this.emit(te.PUBLISH_STATE_CHANGED,ge(X({},C),{error:N}))}),a.once("first-video-frame",C=>{this.emit(te.FIRST_VIDEO_FRAME,ge(X({},C),{streamType:oi(C.streamType)}))}),this._listenOutputTrackChanged(a),e.streamType==="main"&&(a.mediaType=4);let u=null,m={},p={};n&&(x(n.profile)||(Ne(n.profile)?Bc[n.profile]&&a.setProfile(Bc[n.profile]):a.setProfile(n.profile)),n.systemAudio&&(m.systemAudio=!0,m.echoCancellation=n.echoCancellation,m.noiseSuppression=n.noiseSuppression,m.autoGainControl=n.autoGainControl),x(n.fillMode)||(p.objectFit=n.fillMode),n.videoTrack&&(m.videoTrack=n.videoTrack),n.audioTrack&&(m.audioTrack=n.audioTrack),n.captureElement&&(m.captureElement=n.captureElement),n.preferDisplaySurface&&(m.preferDisplaySurface=n.preferDisplaySurface),n.qosPreference&&(m.contentHint=sc(n.qosPreference)));let g=yield a.capture(m);if(a.mediaTrack.addEventListener(M.ENDED,()=>{this._stopScreenShare(),this.emit(te.SCREEN_SHARE_STOPPED)}),g.getAudioTracks()[0]){u=new Es(this._room.audioManager);let C=g.getAudioTracks()[0];(_=e.option)!=null&&_.systemAudio&&!((A=e.option)!=null&&A.audioTrack)&&(u.sourceTrack=C),yield u.setInputMediaStreamTrack(C),Qe(s)&&u.mediaTrack&&(u.mediaTrack.enabled=!s),this._speakerId&&u.setAudioOutput(this._speakerId)}if(bt(a,a).add("player-state-changed",C=>{this.emit(te.VIDEO_PLAY_STATE_CHANGED,ge(X({},C),{userId:"",streamType:"sub"}))}),o&&this._room.isJoined){let C=[a];u&&(C.push(u),this._checkScreenAudioEchoCancellation(a,u)),this._room.publish(...C).catch(()=>{})}this._localScreenTrack=a,this._localScreenAudioTrack=u,this._localScreenConfig=ge(X({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:p,track:a})})}updateScreenShare(e){return y(this,null,function*(){var u;if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:r,publish:o,muteSystemAudio:s,option:n}=e,a={};if(n&&(x(n.fillMode)||(a.objectFit=n.fillMode),n.qosPreference)){let m=sc(n.qosPreference);this._localScreenTrack.setContentHint(m)}if(this._room.isJoined&&!x(o)){if(o&&!this._localScreenConfig.publish){let m=[this._localScreenTrack];this._localScreenAudioTrack&&m.push(this._localScreenAudioTrack),this._room.publish(...m).catch(()=>{})}if(this._localScreenConfig.publish&&!o){let m=[this._localScreenTrack];this._localScreenAudioTrack&&m.push(this._localScreenAudioTrack),this._room.unpublish(...m).catch(()=>{})}}(u=this._localScreenAudioTrack)!=null&&u.mediaTrack&&Qe(s)&&(this._localScreenAudioTrack.mediaTrack.enabled=!s),yield this._updateVideoPlayOption({view:r,playOption:a,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),Nr(this._localScreenConfig,e)})}stopScreenShare(){return y(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return y(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 u=this._room.remotePublishedUserMap.get(o);if(!u)return;let m={},p=s==="main"?u.remoteVideoTrack:u.remoteAuxiliaryTrack;p.on("decode-failed",g=>{this.emit(te.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))}),p.on("video-size-changed",g=>{this.emit(te.VIDEO_SIZE_CHANGED,ge(X({},g),{streamType:oi(g.streamType)}))}),this._listenOutputTrackChanged(p),n&&(x(n.fillMode)||(m.objectFit=n.fillMode),x(n.mirror)||(m.mirror=n.mirror),x(n.poster)||(m.poster=n.poster),m.canvasRender=n.canvasRender,s==="main"&&!x(n.small)&&(!u.remoteVideoTrack.isSubscribing&&!u.remoteVideoTrack.isSubscribed&&u.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,p.user))),yield this._room.subscribe(p),yield this._enableVideoDecodeFallback(p,s),yield this._updateVideoPlayOption({view:r,playOption:m,track:p}),this._emitTrackEvent(p),this._remoteVideoConfigMap.set(a,{config:e}),n&&!x(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:p,view:r,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:n==null?void 0:n.viewRoot})})}updateRemoteVideo(e){return y(this,null,function*(){var D,O;let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`,u=this._remoteVideoConfigMap.get(a);if(!u||!this._room.remotePublishedUserMap.has(o))return;let m={};n&&(x(n.fillMode)||(m.objectFit=n.fillMode),x(n.mirror)||(m.mirror=n.mirror));let p=null,g=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(g!=null&&g.muteState.hasVideo)&&(p=g.remoteVideoTrack),s==="sub"&&(g!=null&&g.muteState.hasAuxiliary)&&(p=g.remoteAuxiliaryTrack),!p)return;let{config:_}=u;s==="main"&&n&&!x(n.small)&&this._room.changeType(n.small,p.user),yield this._updateVideoPlayOption({view:r,playOption:m,track:p,prevConfig:_}),Nr(_,e);let A=x(n==null?void 0:n.receiveWhenViewVisible)?(D=_.option)==null?void 0:D.receiveWhenViewVisible:n.receiveWhenViewVisible,C=x(r)?_.view:r,N=x(n==null?void 0:n.viewRoot)?(O=_.option)==null?void 0:O.viewRoot:n.viewRoot;this._observeView({remoteTrack:p,view:C,receiveWhenViewVisible:A,viewRoot:N})})}stopRemoteVideo(e){return y(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e,r=!0){return y(this,null,function*(){let o=[],s=this._room.remotePublishedUserMap.get(e.userId);if(s){let{muteState:n,remoteVideoTrack:a,remoteAuxiliaryTrack:u}=s;e.streamType==="main"&&(a.stop(),n.hasVideo&&o.push(a)),e.streamType==="sub"&&(u.stop(),n.hasAuxiliary&&o.push(u))}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 y(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 y(this,null,function*(){return e.start(r)})}updatePlugin(e,r){return y(this,null,function*(){return e.update(r)})}stopPlugin(e,r){return y(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(te.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{CE.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===Ie.EVENT.AUDIO_FRAME||e==="*")&&this.listeners(Ie.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(Ne(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 y(this,null,function*(){(yield ho()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(te.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),wt=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: https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/en/TRTC.html#.setCurrentSpeaker')})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return y(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",u=>{this.emit(te.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5506,message:"audio decode failed"}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId);try{let u=(a=this._remoteAudioVolumeMap.get(r))!=null?a:this._remoteAudioVolumeMap.get("*"),m=ke(u)?u:100;s.volume=m,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(n),Ae(be(n,"decode-failed"),ze(be(n,le.INIT)),Le(()=>{this.startPlugin(uc.Name,{track:n,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:s,track:n}),V.emit("115",{userId:r,room:this.room}),n.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:n.outMediaTrack,refId:`ra-${r}`})}catch(u){throw this._remoteAudioConfigMap.delete(r),u}this._emitTrackEvent(n)})}_stopRemoteAudio(e,r=!0){return y(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}`),V.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(be(e,"decode-failed"),ze(be(e,le.INIT)),Ya(()=>{this._room.downlinkVideoCodec!=="h265"&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),ki(be(e,"decode-downgrade-state-changed")),Le(n=>{s=n.state,this.emit(te.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,ge(X({},n),{streamType:r,userId:e.userId}))},n=>{e.log.error("fallback",n)},()=>{s==="STARTED"&&e.log.info("fallback complete")}))}_updateVideoPlayOption(n){return y(this,arguments,function*({view:e,playOption:r,track:o,prevConfig:s}){if(o.setMirror(r.mirror),x(e)&&s&&s.view&&!Ws(r)){let a=js(s.view);a.length>0&&(yield o.play(a,r))}if(!x(e)){let a=js(e);a.length>0?yield o.play(a,r):o.stop()}})}_updateAudioPlayOption(s){return y(this,arguments,function*({playOption:e={},track:r,prevConfig:o}){if(!r.isPlayCalled)try{yield r.play(null,e)}catch(n){}if(x(e.muted)||r.setPlayerMute(e.muted),x(e.volume)||r.setAudioVolume(e.volume/100),r instanceof ti&&r.mediaTrack){let n=e.muted===!1&&!x(e.volume)&&e.volume>0?"add":"remove";this.room.audioManager.updateAudioReference({type:n,audioReference:r.mediaTrack,refId:"em"})}else if(r instanceof Li){let n=e.muted?0:e.volume;if(x(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(te.TRACK,{userId:o,streamType:oi(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 this._room.publish(...e).catch(()=>{})}_observeView({remoteTrack:e,view:r,receiveWhenViewVisible:o=!1,viewRoot:s}){if(x(r))return;let n=this._remoteVideoConfigMap.get(`${e.userId}_${oi(e.streamType)}`);if(!n)return;let a=n.observer||void 0;if(r===null||st(r)&&r.length===0||!o){a==null||a.disconnect(),e.isSubscribed||this._room.subscribe(e).catch(()=>{});return}let m=n.visibleViewMap||new Map,p=-1;(!a||a.root!==s)&&(a==null||a.disconnect(),m.clear(),a=new IntersectionObserver(_=>{_.forEach(A=>{m.set(A.target,A.isIntersecting),e.log.info(`view ${A.target.id} is${A.isIntersecting?"":" not"} visible`)}),clearTimeout(p),p=window.setTimeout(()=>{[...m.values()].find(C=>C)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:s}));let g=new Set(js(r));m.forEach((_,A)=>{g.has(A)||(a.unobserve(A),m.delete(A))}),g.forEach(_=>{m.set(_,!0),a.observe(_)}),a.takeRecords().forEach(_=>{m.set(_.target,_.isIntersecting)}),n.visibleViewMap=m,n.observer=a}_exitRoom(){return y(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),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(),OE(this),this._room.remotePublishedUserMap.forEach(e=>{ut(e.remoteAudioTrack),ut(e.remoteVideoTrack),ut(e.remoteAuxiliaryTrack)})})}_stopScreenShare(){return y(this,null,function*(){var e,r;if(this._localScreenTrack){if(this._room.isJoined){let o=[this._localScreenTrack];this._localScreenAudioTrack&&o.push(this._localScreenAudioTrack),yield(e=this._room)==null?void 0:e.unpublish(...o).catch(()=>{})}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(((r=this._localScreenAudioTrack.trackSettings)==null?void 0:r.echoCancellation)===!1&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),ut(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_checkScreenAudioEchoCancellation(e,r){return y(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"&&(!wt||fn(wt))&&(this._initActiveSpeaker(),V.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return y(this,null,function*(){if(wt&&!fn(wt))this.emit(te.DEVICE_CHANGED,{type:"speaker",action:"active",device:wt});else{let e=yield ho();e[0]&&!fn(e[0])?(wt=e[0],this.emit(te.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):V.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:ge(X({seiPayloadType:243},r),{small:!!((s=this._localVideoTrack)!=null&&s.small)})}),Q.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var r,o;(o=(r=this._room).sendCustomMessage)==null||o.call(r,e),Q.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,r){return y(this,null,function*(){return this._log.info(`callExperimentalAPI(${e}, ${JSON.stringify(r)})`),BE.call(e,X({trtcInstance:this},r))})}static setLogLevel(e,r){$.setLogLevel(e),x(r)||(r?$.enableUploadLog():$.disableUploadLog())}static isSupported(){return Ld(Ie.frameWorkType)}static getPermissions(o){return y(this,arguments,function*({request:e=!0,types:r=["camera","microphone"]}){e&&(yield lc.request(r).catch(a=>{var u;return $.error(`getPermissions request failed, error: ${(u=a==null?void 0:a.message)!=null?u:a}`)}));let[s,n]=yield Promise.all([lc.get("camera"),lc.get("microphone")]);return{camera:s,microphone:n}})}static getCameraList(e=!0){return Kt(e)}static getMicrophoneList(e=!0){return Zt(e)}static getSpeakerList(e=!0){return ho(e)}static setCurrentSpeaker(e){return y(this,null,function*(){if(pt&&(e===_s.SPEAKER||e===_s.HEADSET)){let o=yield Ie.getMicrophoneList(),s="";if(o.forEach(n=>{n.label===e&&(s=n.deviceId)}),!s)return;mc.forEach(n=>y(this,null,function*(){n._localAudioTrack&&(yield n.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield ho()).forEach(o=>{o.deviceId===e&&(mc.forEach(s=>{s._setCurrentSpeaker(e),s.emit(te.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),wt=o)})})}static _addKVStat({type:e,key:r,value:o,base:s,useUV:n,version:a,max:u}){switch(a&&(is.version=a),e){case"count":is.addCount({key:r,useUV:n});break;case"enum":is.addEnum({key:r,value:o,useUV:n});break;case"number":is.addNumber({key:r,value:o,split:s,max:u});break}}};l(Ie,"_loggerManager",$),l(Ie,"EVENT",te),l(Ie,"ERROR_CODE",se),l(Ie,"TYPE",_s),l(Ie,"frameWorkType",30),ee([tt({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"}})})],Ie.prototype,"use",1),ee([xt(Ct.TRTC.enterRoom),yo("room",([e],[r])=>(e.roomId||e.strRoomId)===(r.roomId||r.strRoomId)&&e.userId===r.userId&&e.sdkAppId===r.sdkAppId),Oe(e=>function(r){return this._log.setUserId(r.userId),this._log.setSdkAppId(r.sdkAppId),e.call(this,r)}),tt()],Ie.prototype,"enterRoom",1),ee([tt()],Ie.prototype,"exitRoom",1),ee([xt(Ct.TRTC.switchRoom),tt(),Kd()],Ie.prototype,"switchRoom",1),ee([xt(Ct.TRTC.switchRole),Is("room",{merge:(e,r)=>r}),tt()],Ie.prototype,"switchRole",1),ee([tt()],Ie.prototype,"destroy",1),ee([xt(Ct.TRTC.startLocalAudio),yo("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)}),tt()],Ie.prototype,"startLocalAudio",1),ee([xt(Ct.TRTC.updateLocalAudio),Is("audio",{debounce:{delay:200,getKey:()=>`${WE}-localAudio`,isNeedToDebounce:e=>{var r;return!x((r=e.option)==null?void 0:r.captureVolume)}}}),tt()],Ie.prototype,"updateLocalAudio",1),ee([Ao("audio"),tt()],Ie.prototype,"stopLocalAudio",1),ee([xt(Ct.TRTC.startLocalVideo),yo("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)}),tt()],Ie.prototype,"startLocalVideo",1),ee([xt(Ct.TRTC.updateLocalVideo),Is("video"),tt()],Ie.prototype,"updateLocalVideo",1),ee([Ao("video"),tt()],Ie.prototype,"stopLocalVideo",1),ee([xt(Ct.TRTC.startScreenShare),yo("screen",()=>!0),tt()],Ie.prototype,"startScreenShare",1),ee([xt(Ct.TRTC.updateScreenShare),Is("screen"),tt()],Ie.prototype,"updateScreenShare",1),ee([tt()],Ie.prototype,"stopScreenShare",1),ee([xt(Ct.TRTC.startRemoteVideo),yo(e=>`v${e.userId}${e.streamType}`,()=>!0),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Ie.prototype,"startRemoteVideo",1),ee([xt(Ct.TRTC.updateRemoteVideo),Is(e=>`v${e.userId}${e.streamType}`),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Ie.prototype,"updateRemoteVideo",1),ee([xt(Ct.TRTC.stopRemoteVideo),Oe(e=>function(r){return y(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)})}),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Ie.prototype,"stopRemoteVideo",1),ee([Ao(e=>`v${e.userId}${e.streamType}`)],Ie.prototype,"_stopRemoteVideo",1),ee([xt(...Ct.TRTC.muteRemoteAudio),tt({getRemoteId:e=>e})],Ie.prototype,"muteRemoteAudio",1),ee([mp(...Ct.TRTC.setRemoteAudioVolume),xE(200,e=>e),tt({getRemoteId:e=>e})],Ie.prototype,"setRemoteAudioVolume",1),ee([Uu("start"),po(e=>{var r;return(r=e.afterStart)==null?void 0:r.call(e)}),yo((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Mm[e.getName()],ignoreLog:e=>e.getName()==="Debug",ignoreErrorLog:e=>e.getName()==="AudioProcessor"})],Ie.prototype,"startPlugin",1),ee([Uu("update"),Is((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r),{merge:(e,r)=>(Nr(e[1],r[1]),e)}),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Om[e.getName()]})],Ie.prototype,"updatePlugin",1),ee([Uu("stop"),Ao((e,r)=>{if(e.disableRandomCall)return null;let o=e.getGroup(r),s=e.getAlias();return o==="*"?new RegExp(`${s}.*`):s+o}),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>xm[e.getName()]})],Ie.prototype,"stopPlugin",1),ee([mp(...Ct.TRTC.enableAudioVolumeEvaluation)],Ie.prototype,"enableAudioVolumeEvaluation",1),ee([tt()],Ie.prototype,"getVideoSnapshot",1),ee([tt()],Ie.prototype,"_setCurrentSpeaker",1),ee([yo(e=>`a${e.userId}`,()=>!0)],Ie.prototype,"_startRemoteAudio",1),ee([Oe(e=>function(r){return y(this,null,function*(){return r.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(ge(X({},r),{userId:o.userId})).catch(()=>{}))):e.call(this,r)})}),Ao(e=>`a${e.userId}`)],Ie.prototype,"_stopRemoteAudio",1),ee([Ao("room")],Ie.prototype,"_exitRoom",1),ee([Ao("screen")],Ie.prototype,"_stopScreenShare",1),ee([xt(...Ct.TRTC.sendSEIMessage),sp({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],Ie.prototype,"sendSEIMessage",1),ee([xt(Ct.TRTC.sendCustomMessage),sp({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],Ie.prototype,"sendCustomMessage",1),ee([xt(Ct.TRTC.create)],Ie,"_create",1);var bp=Ie,Mn=bp;var Xu=class{constructor(t,e){l(this,"_flag");l(this,"terminalType");l(this,"userId");l(this,"tinyId");l(this,"role");l(this,"remoteAudioTrack");l(this,"remoteVideoTrack");l(this,"remoteAuxiliaryTrack");this.userId=e.userId||"",this.tinyId=e.tinyId||"",this.role=e.role||"audience",this.terminalType=e.terminalType,this.remoteAudioTrack=new Li(t,this),this.remoteVideoTrack=new To(t,this),this.remoteAuxiliaryTrack=new yu(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 qo(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 Rp=class{constructor(){l(this,"_set",new Set);V.on(F.LEAVE_SUCCESS,this.delete,this),V.on(F.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 Ky(){return y(this,null,function*(){let i,t;try{let A=yield Zt();i=A&&A.length}catch(A){}try{let A=yield Kt();t=A&&A.length}catch(A){}let e={microphone:i,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:o,isH264DecodeSupported:s,isVp8DecodeSupported:n,isH265EncodeSupported:a,isH265DecodeSupported:u}=this.checkSystemResult.detail,m=lo.basis(),p={webRTC:m.isWebRTCSupported,getUserMedia:m.isGetUserMediaSupported,webSocket:m.isWebSocketsSupported,screenShare:m.isScreenShareSupported,webAudio:m.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:o,vp8Decode:n,h265Encode:a,h265Decode:u},g={browser:m.browser,os:m.os,trtc:p,devices:e},_={isWebCodecSupported:m.isWebCodecSupported,isMediaSessionSupported:m.isMediaSessionSupported,isWebTransportSupported:m.isWebTransportSupported};He.uploadEvent({log:`trtcstats-${JSON.stringify(g)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(g)}`),He.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(_)}`,userId:this.userId}),Wm()})}function jE(){return Oe(i=>{let t=new Rp;return function(e,r,o){return y(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 de({code:q.INVALID_OPERATION,message:$e({key:Fe.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new de({code:q.INVALID_OPERATION,message:$e({key:Fe.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}`),V.emit(F.JOIN_START,{room:this,roomId:s,params:e});let n=Xr.getEnv();n||(n=gi.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(Hc.OLD_CLOUD_LADDER)?n=gi.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(Hc.WEBRTC)&&(n=gi.WEBRTC))),He.setConfig({env:n,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),lo.checkSystemRequirementsInternal(o).then(a=>{this.checkSystemResult=a,Ky.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!Xr.getEnv()&&(yield this.schedule(e,o));let a=yield i.call(this,e,r,o);return this.roomId=s,this._joinedTimestamp=Xr.performanceNow(),V.emit(F.JOIN_SUCCESS,{room:this}),o===30&&!e.component&&He.uploadEvent({log:`stat-conv-${Number(xr)}-${location.hostname}`,userId:this.userId}),a}catch(a){throw t.delete({room:this,roomId:s}),V.emit(F.JOIN_FAILED,{room:this,error:a}),a}})}})}var qE=()=>Oe(i=>function(...t){return y(this,null,function*(){V.emit(F.LEAVE_START,{room:this}),yield i.call(this,...t),V.emit(F.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function zE(){return Oe(i=>function(...t){return y(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(t=t.filter(r=>r.outMediaTrack&&r.state==="ready"),!t.length))return;V.emit("61",{room:this});let e=i.apply(this,t);return Promise.all(t.map(r=>r.publish(this,e)))})})}function JE(){return Oe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function XE(){return Oe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function eA({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return io(r)?r.catch(o=>$.error(`${i.name}() error observed ${o}`)):r}catch(r){$.error(`${i.name}() error observed ${r}`)}}}var Qu=class{constructor(t){l(this,"_frameWorkType");l(this,"_component");l(this,"_language");l(this,"connectionType");l(this,"_room");l(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0});l(this,"_keyPrefix");l(this,"_log");l(this,"_intervalId");l(this,"_firstPublishedUserList");l(this,"_networkQuality");l(this,"_basicInfo");l(this,"_pathJoinRoom");l(this,"_pathLeaveRoom");l(this,"_pathMainVideoMap");l(this,"_pathMainAudioMap");l(this,"_pathAuxiliaryMap");l(this,"_remoteStreamStatMap");l(this,"_localStreamStat");l(this,"_eventMap",new Map);l(this,"_captureCostSum",0);l(this,"_captureCostCount",0);l(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=$.createLogger({id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&Ge(this[e])&&(this[e]=eA({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:at,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}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,Qo().then(t=>{this._basicInfo.string_os_version=Zo(),t?this._basicInfo.string_device_name=t.mobile?t.model:this._basicInfo.string_os_version:this._basicInfo.string_device_name=this._basicInfo.string_os_version})}addEvent(t,e){return this._eventMap.set(t,e),V.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(F.JOIN_START,this.handleJoinStart).addEvent(F.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(F.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(F.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(F.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(F.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(F.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(F.JOIN_FAILED,this.handleJoinFailed).addEvent(F.LEAVE_START,this.handleLeaveStart).addEvent(F.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(F.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(F.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(F.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(F.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(F.PUBLISH_START,this.handlePublishStart).addEvent(F.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(F.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(F.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(F.PLAY_TRACK_START,this.handlePlayStart).addEvent(F.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(F.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(F.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(F.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(F.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(F.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(F.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(F.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(F.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(F.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)=>V.off(e,t)),this._eventMap.clear()}destroy(){this.uninstallEvents(),dt.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&&(x(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),x(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),x(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:u,response:m}=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=u,this._pathJoinRoom.int32_schedule_response=m}}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 de?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){this.hitTest(t.room)&&this._pathLeaveRoom.uint64_end_time===0&&(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: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 de?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:ge(X({},tA),{msg_user_info:new hc({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,u=new hc({userId:s,tinyId:n,role:a==="anchor"?20:21}),m=Date.now(),p=`${s}_${r}`,g=this._remoteStreamStatMap.get(p);g&&g.subscribeStartTime===0&&(g.subscribeStartTime=m),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(p)&&this._pathMainVideoMap.set(p,{statsToReport:{msg_user_info:u,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:s,sendSubscribeCMDTime:m}),e.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(p)&&this._pathMainAudioMap.set(p,{statsToReport:{msg_user_info:u,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:s,sendSubscribeCMDTime:m})):e.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(p)&&this._pathAuxiliaryMap.set(p,{sendSubscribeCMDTime:m})}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,Q.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 u,m,p,g;s&&(m=s,p=1),n&&(u=n,g=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:u,totalVideoDelay:m,audioDelayCount:g,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:u}=r.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=s,this._localStreamStat.totalVideoFPS+=n,this._localStreamStat.totalVideoWidth+=a,this._localStreamStat.totalVideoHeight+=u,this._localStreamStat.videoCount++}if(r.msg_audio_status){let{uint32_audio_level:s}=r.msg_audio_status;Math.floor(s/Ci*100)>0&&(this._localStreamStat.totalAudioLevel+=s/Ci,this._localStreamStat.audioLevelCount++)}o.forEach(s=>{let{msg_user_info:n,msg_audio_status:a,msg_video_status:u}=s,m=n.str_identifier,p=this._room.remotePublishedUserMap.get(m);if(u.forEach(g=>{let _=g.uint32_video_stream_type===2,A=g.uint32_video_stream_type===7,C=`${m}_${_?"main":"auxiliary"}`,N=this._remoteStreamStatMap.get(C);if(N&&(_&&(p!=null&&p.remoteVideoTrack.isSubscribed)||A&&(p!=null&&p.remoteAuxiliaryTrack))){N.totalVideoFPS+=g.uint32_video_receive_fps,N.totalVideoBitrate+=g.uint32_video_codec_bitrate,N.videoCount++,N.statsToReport.uint32_video_width===0&&(N.statsToReport.uint32_video_width=g.uint32_video_width),N.statsToReport.uint32_video_height===0&&(N.statsToReport.uint32_video_height=g.uint32_video_height);let D=_?p.remoteVideoTrack:p.remoteAuxiliaryTrack;D.stat.jitterBufferDelay&&(N.videoJitterBufferDelay=D.stat.jitterBufferDelay),D.stat.framesReceived&&(N.statsToReport.uint32_video_consume_render_rate=Math.floor(D.stat.framesDecoded/D.stat.framesReceived*to(10,6)))}}),!Ws(a)){let g=`${m}_main`,_=this._remoteStreamStatMap.get(g);this._remoteStreamStatMap.has(g)&&_&&p!=null&&p.remoteAudioTrack.isSubscribed&&(_.totalAudioBitrate+=a.uint32_audio_codec_bitrate,_.audioCount++,p.remoteAudioTrack.stat.jitterBufferDelay&&(_.audioJitterBufferDelay=p.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(a.uint32_audio_level/Ci*100)>0&&(_.totalAudioLevel+=a.uint32_audio_level/Ci,_.audioLevelCount++))}}),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))}}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 de?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&Ls)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&Us)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&Yn)>=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:g,audioDelayCount:_,videoDelayCount:A,totalAudioDelay:C,totalVideoDelay:N}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(p/g),_&&C&&(t.statsToReport.uint32_audio_network_p2p_delay=Math.floor(C/_),t.audioJitterBufferDelay&&(t.statsToReport.uint32_p2p_delay=Math.floor(t.statsToReport.uint32_audio_network_p2p_delay+t.audioJitterBufferDelay))),A&&N&&(t.statsToReport.uint32_video_network_p2p_delay=Math.floor(N/A))}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,ys));let{badCaseDetector:n}=this._room,{dataFreeze:a,count:u}=n.getDataFreezeDuration(e),{renderFreeze:m}=n.getRenderFreezeDuration(e);t.statsToReport.uint32_video_block_count=u,t.statsToReport.uint32_video_block_time=Math.min(a,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_video_external_block_time=Math.min(m,t.statsToReport.uint32_video_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>ys&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+ys)}),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>ys&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+ys)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>ys&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+ys)}getReportData(){this._basicInfo.uint32_networkType=Yc();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new hc({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:Gs(this._signalInfo.relayIp),uint32_client_ip:Gs(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*to(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:Gs(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend};return na(t),t}report(){return y(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 y(this,null,function*(){if(t.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),r=ao.enable?Ii(t,2001,e):yield ql(t),o=r instanceof ArrayBuffer,s=`${Ti(e,ro.KEY_POINT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r));let a=[this.uploadKVStat(Q),this.uploadKVStat(is)];n||a.push(Si({url:s,body:r,priority:"low"})),yield Promise.all(a)})}setConnectionType(t){this.connectionType=t,this._basicInfo.uint32_connection_type=t}uploadKVStat(t){return y(this,null,function*(){let e=t.getReportData();if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=ge(X({},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=ao.enable?Ii(e,2003,this._room.sdkAppId):yield ql(e),o=r instanceof ArrayBuffer,s=`${Ti(+this._room.sdkAppId,ro.KV_STAT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r)),n||Si({url:s,body:r})})}};ee([ns({settings:{timeout:500,retries:3}})],Qu.prototype,"upload",1);var ys=5e3,tA={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},hc=class{constructor(t){l(this,"str_identifier");l(this,"str_tinyid");l(this,"uint32_role");this.str_identifier=String(t.userId),this.str_tinyid=String(t.tinyId||0),this.uint32_role=t.role}},QE=Qu;var vp=class{constructor(){l(this,"_startTime");l(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}},Yu=vp;var Cp=class{constructor(t){l(this,"_room",null);l(this,"_durationMap");l(this,"_eventMap",new Map);this._room=t.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(F.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(F.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(F.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)=>V.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>V.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 Yu,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()}},YE=Cp;var Np=class{constructor(t){l(this,"_room");l(this,"_renderFreezeMap",new Map);l(this,"_isVideoPlayingEventFiredMap",new Map);l(this,"_dataFreezeMap",new Map);l(this,"_monitorFreezeData",new Map);l(this,"_eventMap",new Map);l(this,"_videoEncodeFailedCount",0);l(this,"_audioEncodeFailedCount",0);l(this,"_encodeFailedThreshold",3);this._room=t.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(F.LEAVE_SUCCESS,({room:t})=>{this.hitTest(t)&&this.stop()}).set(F.PLAY_TRACK_START,this.onPlayTrackStart).set(F.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(F.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(F.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(F.HEARTBEAT_REPORT,this.onHearBeatReport),this._eventMap.forEach((t,e)=>V.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>V.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 Yu;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_down_stream_info.forEach(r=>{let o=this._room.remotePublishedUserMap.get(r.msg_user_info.str_identifier);if(!o)return;let{userId:s,muteState:n}=o;r.msg_video_status.forEach(a=>{a.uint32_video_stream_type===2&&n.hasVideo&&!n.videoMuted&&o.remoteVideoTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:a.uint32_video_dec_fps,type:"main"}),a.uint32_video_stream_type===7&&n.hasAuxiliary&&o.remoteAuxiliaryTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:a.uint32_video_dec_fps,type:"auxiliary"})})}),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)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&&(He.uploadEvent({userId:this._room.userId,log:`stat-${lr.VIDEO_ENCODE_FAILED_DURING_CALL}`}),this._videoEncodeFailedCount=0)):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&&(He.uploadEvent({userId:this._room.userId,log:`stat-${lr.AUDIO_ENCODE_FAILED_DURING_CALL}`}),this._audioEncodeFailedCount=0)):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();n>jc?this._monitorFreezeData.set(t,{userId:e,type:r,duration:n}):o.durationItemList.pop()}getTotalDuration(t){return t.reduce((e,r)=>{let o=r.getDuration();return e+Math.min(o,5e3)},0)}handleRenderFreeze(o){return y(this,arguments,function*({userId:t,fps:e,type:r}){let s=`${t}_${r}`,n=this._renderFreezeMap.get(s);if(e<=2){let a=_e();n&&!n.isFreeze&&(n.freezeTimeline.push({startTime:a,endTime:0}),n.isFreeze=!0),n||this._renderFreezeMap.set(s,{userId:t,type:r,isFreeze:!0,freezeTimeline:[{startTime:a,endTime:0}],renderFreezeTotal:0})}else if(n&&n.isFreeze){n.isFreeze=!1;let a=n.freezeTimeline.pop();if(a){a.endTime=_e();let u=a.endTime-a.startTime;n.freezeTimeline.push(a),n.renderFreezeTotal+=Math.min(5e3,u)}}})}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()<jc&&r.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(r.durationItemList),e.count=r.durationItemList.length}return e}getRenderFreezeDuration(t){let e=this._renderFreezeMap.get(t),r=0,o=0;if(e)if(!e.isFreeze)r=e.renderFreezeTotal;else{let s=_e(),n=e.freezeTimeline[e.freezeTimeline.length-1],a=s-n.startTime;r=e.renderFreezeTotal+Math.min(a,5e3),o=e.freezeTimeline.length}return{renderFreeze:r,count:o}}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(t){return this._isVideoPlayingEventFiredMap.has(t)?!this._isVideoPlayingEventFiredMap.get(t):!1}resetMonitor(){this._monitorFreezeData.clear()}hitTest(t){return t===this._room}destroy(){this.uninstallEvents()}},ZE=Np;var e_=pi(bi(),1);var Zu=class{constructor(t,e,r,o,s=4/3){this.vbMode=t;this.faceDetectorHash=e;this.visionTaskRegistry=r;this.logger=o;l(this,"animationState");l(this,"originalAspect");l(this,"totalOffsetX",0);l(this,"totalOffsetY",0);l(this,"defaultScaleRatio",.1);l(this,"isRecovering",!1);l(this,"boundaryY",280);l(this,"lastActionTime",0);l(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=s||4/3}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?Q.addSuccessEvent({key:s.key}):Q.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,u=n.originY,m=n.width,p=n.height;this.vbMode===1?this.dualStageCropping(r,o,a,u,m,p):this.vbMode===2&&this.movingPortrait(r,o,a,u,m,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 u=t+r/2,m=e+o/2,p,g,{min:_,offset:A}=this.calculateBoundary(u,s,t,r),{min:C,offset:N}=this.calculateBoundary(m,n,e,o);return p=2*_+r,g=2*C+o,p/g>this.originalAspect?(p=g*this.originalAspect,A=u-p/2):(g=p/this.originalAspect,N=m-g/2),r/s>a&&(A=0,N=0,p=s,g=n),A=Math.max(0,Math.min(A,s-p)),N=Math.max(0,Math.min(N,n-g)),{sx:A,sy:N,cropWidth:p,cropHeight:g,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=X({},t),this.animationState.target=X({},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)),ke(this.animationState.current.scaleOffsetX)&&ke(this.animationState.target.scaleOffsetX)&&ke(this.animationState.current.scaleOffsetY)&&ke(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(to(t.sx-e.sx,2)+to(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 u=this.calculateTargetPosition(r,o,s,n,t,e);this.processFacePositionCrop(u,t,e),s*n/u.cropWidth/u.cropHeight>a&&this.recoverOriginal(t,e)}movingPortrait(t,e,r,o,s,n){var u,m,p,g,_,A,C,N,D,O,Z,ue;let a={sx:r+s/2+this.totalOffsetX,sy:o+n/2+this.totalOffsetY,cropWidth:t,cropHeight:e,scaleRatio:(m=(u=this.animationState.current)==null?void 0:u.scaleRatio)!=null?m:1,scaleOffsetX:(g=(p=this.animationState.current)==null?void 0:p.scaleOffsetX)!=null?g:0,scaleOffsetY:(A=(_=this.animationState.current)==null?void 0:_.scaleOffsetY)!=null?A:0,timestamp:Date.now()};this.animationState.target={sx:t/2,sy:o+n/2,cropWidth:t,cropHeight:e,scaleRatio:(N=(C=this.animationState.target)==null?void 0:C.scaleRatio)!=null?N:1,scaleOffsetX:(O=(D=this.animationState.target)==null?void 0:D.scaleOffsetX)!=null?O:0,scaleOffsetY:(ue=(Z=this.animationState.target)==null?void 0:Z.scaleOffsetY)!=null?ue: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 rA=`#version 300 es
102
+ 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=>{BE[`${i}()`]={tips:`Call trtc.${i}`,color:"blue",class:"blue",textColor:"#fff"}});var CV=Object.keys(BE);var Zy=0,ju,lc=class lc{constructor(t){this.core=t;l(this,"_core");l(this,"log");l(this,"dumpLocalVideoMap",{});l(this,"dumpRemoteVideoMap",{});l(this,"dialog");this._core=t,this.log=t.log.createChild({id:`${this.getAlias()}${++Zy}`}),this.log.info("created")}getName(){return lc.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 y(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 y(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 y(this,null,function*(){var t;if(!this.dialog)try{if(ju)yield ju;else{let e=new URLSearchParams(location.search).get("trtcDebugDialogPath")||((t=window.sessionStorage)==null?void 0:t.getItem("TRTC_DEBUG_DIALOG_PATH"))||`https://unpkg.com/${UE}@${at}/assets/debug-dialog.js`;ju=this._core.fileDownloader.loadScript(e),yield ju}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):yp,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):Ap,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo({frame:t,mediaType:e}){return yp({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 Ap({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())}})}};l(lc,"Name","Debug"),l(lc,"autoStart",!0);var qu=lc;var HE=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},zu=class{constructor(t,e,r){l(this,"trackDoneOB");l(this,"startOB");l(this,"stopOB");l(this,"inputFrameCount",0);l(this,"decodedFrameCount",0);l(this,"type","auto");l(this,"config");l(this,"decoder");l(this,"_decodeSink");let{kvStatManager:o,trtc:s}=t;this.config=r.config,this.trackDoneOB=be(e,le.INIT),this.stopOB=Rt(),this.startOB=Rt(),r.type==="auto"?this.type="webCodecs":this.type=r.type;let n=Rt(),a=u=>{let m=this.pipe(e);return n.next("STARTING"),e.log.info(`decoder type: ${this.type}`),Ae(m,ze(this.stopOB),Le(()=>{},p=>{e.log.error(p),o.addFailedEvent({key:HE(this.type),error:p}),u>4?this.startOB.error(p):this.startOB.next(u+1)})),Ae(m,Fr(1),Wh(Za))};Ae(this.startOB,Qa(0),Eo(a),ze(this.stopOB),Le(()=>{e.player.setOutput(),n.next("STARTED")},u=>{n.next("FAILED")},()=>{o.addSuccessEvent({key:HE(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 Pi()(e=>y(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"}))}},Ky={type:"object"},mc=class mc{constructor(t){this.core=t;l(this,"log");l(this,"contextMap",new Map);l(this,"decodeProcessorMap",new WeakMap);this.log=t.log.createChild({id:`${this.getAlias()}`})}getAlias(){return mc.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return mc.Name}getValidateRule(t){return Ky}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 zu(this.core,r,t);return Ae(o.trackDoneOB,Fr(1),Le(()=>{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 zu(this.core,t.track,t))}}};l(mc,"Name","TRTCAudioDecoder");var hc=mc;var Ju=class{constructor(){l(this,"log");this.log=$.createLogger({id:"exp"})}call(t,e){return y(this,null,function*(){return Ge(this[t])?this[t](e):Promise.reject(new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.API_NOT_EXIST,data:{name:t}})}))})}enableAudioFrameEvent(t){return y(this,null,function*(){let{trtcInstance:e,enable:r,userId:o,sampleRate:s=48e3,channelCount:n=1,port:a}=t,{audioManager:u}=e.room,{getPCMAbortCtrlMap:m,audioFrameEventConfigMap:p}=u;if(p.set(o,{enable:r,sampleRate:s,channelCount:n,port:a}),r)if(o==="*")e.room.remotePublishedUserMap.forEach(g=>{if(g.remoteAudioTrack.isAvailable){if(m.get(g.userId))return;let _=u.getPCM(A=>{e.emit(K.AUDIO_FRAME,A)},g.userId);m.set(g.userId,_)}});else{if(m.get(o))return;let g=u.getPCM(_=>{e.emit(K.AUDIO_FRAME,_)},o);m.set(o,g)}else if(o==="*")e.room.remotePublishedUserMap.forEach(g=>{if(g.remoteAudioTrack.isSubscribed){let{userId:_}=g,A=m.get(_);A==null||A.abort("disable"),m.delete(_)}});else{let g=m.get(o);g==null||g.abort("disable"),m.delete(o)}})}};te([nE({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"}}})],Ju.prototype,"enableAudioFrameEvent",1);var WE=new Ju;var GE=pi(bi(),1);var bp=class extends GE.EventEmitter{constructor(){super();l(this,"states",{});l(this,"permissionChangeHandler");l(this,"log");this.log=$.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 y(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 y(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={}}},pc=new bp;var jE=0,fc=new Set,wt=null;bl(VE);cn.checkStorage();var Ie=class Ie extends qE.EventEmitter{constructor(e,r){super();l(this,"_room");l(this,"_eventListened",new Set);l(this,"_localVideoTrack",null);l(this,"_localAudioTrack",null);l(this,"_localScreenTrack",null);l(this,"_localScreenAudioTrack",null);l(this,"_localVideoConfig",null);l(this,"_localScreenConfig",null);l(this,"_localAudioConfig",null);l(this,"_remoteVideoConfigMap",new Map);l(this,"_remoteAudioConfigMap",new Map);l(this,"_remoteAudioVolumeMap",new Map);l(this,"_remoteAudioMuteMap",new Map);l(this,"_mediaTrackMap",new WeakMap);l(this,"_log",$.createLogger({id:`t${++jE}`}));l(this,"_plugins",new Map);l(this,"_networkQuality",null);l(this,"_speakerId");l(this,"enterRoomParams");l(this,"_enableAutoSwitchWhenRecapturing",!0);this._room=new e(X({logger:this._log,frameWorkType:Ie.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,Qe(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(Bu,r.assetsPath),this._use(Fu,r.assetsPath),this._use(Wu,r.assetsPath),this._use(hc,r.assetsPath),this._use(qu),r.enableSEI&&ka&&this._use(Gu),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 m;let u=a.userId===""?this._localAudioTrack:(m=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:m.remoteAudioTrack;u&&(a.volume=u.dbVolume)}),r.enableDbVolume&&o.forEach(a=>{var m;let u=a.userId===""?this._localAudioTrack:(m=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:m.remoteAudioTrack;u&&(a.volume=u.dbVolume)}),this.emit(K.AUDIO_VOLUME,{result:o.sort((a,u)=>u.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(),xE(this,"trtc")}static create(e){}static _create(e,r){_E();let o=new Ie(e,r||{});return fc.add(o),o.__v_skip=!0,o}get room(){return this._room}_listenEvents(){bt(this,this._room).add("peer-join",e=>{let{userId:r}=e;this.emit(K.REMOTE_USER_ENTER,{userId:r})}).add("peer-leave",e=>{this.emit(K.REMOTE_USER_EXIT,{userId:e})}).add("banned",e=>{this._exitRoom().finally(()=>{this.emit(K.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().finally(()=>{this.emit(K.ERROR,oe.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(K.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=ge(X({},e),{uplinkRTT:Math.min(e.uplinkRTT,ta),downlinkRTT:Math.min(e.downlinkRTT,ta)});this.emit(K.NETWORK_QUALITY,r)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{bt(o,o).add("player-state-changed",s=>{let n=ge(X({},s),{userId:e.userId});o.kind===M.VIDEO&&(n.streamType=oi(o.streamType)),this.emit(o.kind===M.AUDIO?K.AUDIO_PLAY_STATE_CHANGED:K.VIDEO_PLAY_STATE_CHANGED,n)}).add("error",s=>{s.getCode()===q.PLAY_NOT_ALLOWED&&this.emit(K.AUTOPLAY_FAILED,{userId:o.userId,mediaType:o.strMediaType,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{ut(o)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:r})=>{let{userId:o}=r,s=e.audioAvailable,n=e.videoAvailable,{audioAvailable:a,videoAvailable:u}=r;a||this._remoteAudioConfigMap.delete(o),u||this._removeRemoteVideoConfig(o,"main"),r.hasAuxiliary||this._removeRemoteVideoConfig(o,"sub"),n!==u&&(u?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(u?K.REMOTE_VIDEO_AVAILABLE:K.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),s!==a&&(a?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:r}),this.emit(a?K.REMOTE_AUDIO_AVAILABLE:K.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?K.REMOTE_VIDEO_AVAILABLE:K.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))}).add("sei-message",e=>{this.emit(K.SEI_MESSAGE,ge(X({},e),{streamType:oi(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(K.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,n,a,u,m,p,g;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,ta),upLoss:((u=this._networkQuality)==null?void 0:u.uplinkLoss)||0,downLoss:((m=this._networkQuality)==null?void 0:m.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:(((g=e.msg_up_stream_info.msg_audio_status)==null?void 0:g.uint32_audio_level)||0)/Ci},video:e.msg_up_stream_info.msg_video_status.filter(_=>r[_.uint32_video_stream_type]).map(_=>({bitrate:(_.uint32_video_codec_bitrate||0)/1e3,width:_.uint32_video_width,height:_.uint32_video_height,frameRate:_.uint32_video_enc_fps,videoType:r[_.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(_=>({userId:_.msg_user_info.str_identifier,audio:{bitrate:(_.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(_.msg_audio_status.uint32_audio_level||0)/Ci,point2pointDelay:(_.msg_audio_status.uint32_audio_p2p_delay||0)+(_.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:_.msg_audio_status.uint32_audio_cache_ms||0},video:_.msg_video_status.map(A=>({bitrate:(A.uint32_video_codec_bitrate||0)/1e3,width:A.uint32_video_width,height:A.uint32_video_height,frameRate:A.uint32_video_dec_fps,videoType:r[A.uint32_video_stream_type],point2pointDelay:(A.uint32_video_p2p_delay||0)+(A.uint32_video_cache_ms||0),jitterBufferDelay:A.uint32_video_cache_ms||0,codec:A.uint32_video_codec}))}))};this.emit(K.STATISTICS,o)}).add("custom-message",e=>{this.emit(K.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(K.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(K.FIRST_VIDEO_FRAME,ge(X({},e),{streamType:oi(e.streamType)}))}).add("audio-frame",e=>{this.emit(K.AUDIO_FRAME,e)}),bt(this,rt).add("audioInputAdded",e=>{this.emit(K.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(K.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(K.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(K.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>y(this,null,function*(){if(this.emit(K.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),wt&&wt.deviceId===ea){let r=(yield ho()).find(o=>o.deviceId===ea);r&&wt.groupId!==r.groupId&&(wt=r,this.emit(K.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}})).add("audioOutputRemoved",e=>y(this,null,function*(){this.emit(K.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let r=(yield ho())[0];if(!r||!wt||wt.groupId===r.groupId)return;let o=wt.deviceId===e.deviceId,s=wt.deviceId===ea&&wt.deviceId===r.deviceId;(o||s)&&(wt=r,this.emit(K.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))})),bt(this,pc).add("permission-state-change",e=>{this.emit(K.PERMISSION_STATE_CHANGE,e)})}getNetworkTime(){return fi()}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(OE.call(this,{TRTC:Ie,room:this._room,assetsPath:r,errorModule:{RtcError:oe,ErrorCode:se,CoreErrorCode:q,ErrorCodeDictionary:Ir}}));return this._plugins.set(e.Name,s),s.__v_skip=!0,e.autoStart&&this.startPlugin(e.Name),s}enterRoom(e){return y(this,null,function*(){var u,m;this.enterRoomParams=e;let{scene:r="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:n=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!Ne(e.proxy)&&e.proxy.turnServer&&((m=(u=this._room).setTurnServer)==null||m.call(u,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=n,Qe(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,Ie.frameWorkType),this._checkTrackToPublish(),_p.start()})}exitRoom(){return y(this,null,function*(){return yield this._exitRoom()})}switchRoom(e){return y(this,null,function*(){if(this.room.isSwitchRoomSupported())try{yield this._room.switchRoom(e)}catch(r){if(r instanceof Xn&&(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 y(this,null,function*(){yield this.exitRoom();let r=X(X({},this.enterRoomParams),e);yield this.enterRoom(r)})}switchRole(e,r){return y(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(){ut(this),this.removeAllListeners(),this._room.destroy(),fc.delete(this),fc.size===0&&_p.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),this._plugins.forEach(e=>{var r;return(r=e.destroy)==null?void 0:r.call(e)}),this._plugins.clear(),U.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return y(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 ti(this._room.audioManager),a={},u={muted:!0};s&&(x(s.microphoneId)?x(s.audioTrack)||(a.customSource=s.audioTrack):a.deviceId=s.microphoneId,s&&ke(s.captureVolume)&&n.setCaptureVolume(s.captureVolume),x(s.profile)||(Ne(s.profile)?Wc[s.profile]&&n.setProfile(Wc[s.profile]):n.setProfile(s.profile)),ke(s.earMonitorVolume)&&(u.muted=!(s.earMonitorVolume>0),u.volume=s.earMonitorVolume),x(s.echoCancellation)||(n.profile.echoCancellation=s.echoCancellation),x(s.noiseSuppression)||(n.profile.noiseSuppression=s.noiseSuppression),x(s.autoGainControl)||(n.profile.autoGainControl=s.autoGainControl),Qe(this._enableAutoSwitchWhenRecapturing)&&(n.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),n.on("5",m=>{this.emit(K.ERROR,new oe({code:se.DEVICE_ERROR,extraCode:5309,messageParams:{error:m}}))}),n.on("2",m=>{this.emit(K.DEVICE_CHANGED,{type:"microphone",action:"active",device:m})}),n.on("4",m=>{let p;m.error&&(p=oe.convertFrom(m.error)),this.emit(K.PUBLISH_STATE_CHANGED,ge(X({},m),{error:p}))}),n.on("6",()=>{this.emit(K.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),x(o)||n.setMute(o),bt(n,n).add("player-state-changed",m=>{this.emit(K.AUDIO_PLAY_STATE_CHANGED,ge(X({},m),{userId:""}))}),r&&this._room.isJoined&&this._room.publish(n).catch(()=>{}),this._localAudioTrack=n,this._localAudioConfig=ge(X({},e),{publish:r}),yield this._updateAudioPlayOption({playOption:u,track:n}),U.emit("113",{userId:"",room:this.room})})}updateLocalAudio(e){return y(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):x(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),x(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),x(s.earMonitorVolume)||(n.muted=!(s.earMonitorVolume>0),n.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!x(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),x(o)||this._localAudioTrack.setMute(o),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),Dr(this._localAudioConfig,e)})}stopLocalAudio(){return y(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),ut(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)})}startLocalVideo(){return y(this,arguments,function*(e={publish:!0,view:null,capture:!0}){var g;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,u=new ar(this._room.videoManager),m={},p={};a&&(Qe(a.avoidCropping)&&(u.avoidCropping=a.avoidCropping),a.cameraId?m.deviceId=a.cameraId:x(a.useFrontCamera)?x(a.videoTrack)||(m.customSource=a.videoTrack):m.facingMode=a.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,x(a.retryWhenExactFailed)||(m.retryWhenExactFailed=a.retryWhenExactFailed),a.qosPreference&&(m.contentHint=ac(a.qosPreference)),x(a.profile)||(Ne(a.profile)?Cr[a.profile]&&u.setProfile(Cr[a.profile]):u.setProfile(a.profile)),x(a.fillMode)||(p.objectFit=a.fillMode),x(a.mirror)||(p.mirror=a.mirror),x(a.small)||(x(a.smallMode)||(this._room.smallMode=a.smallMode),Qe(a.small)&&a.small===!1?u.stopSmall():u.updateSmallConfig(Nn(a.small,!0))),x(a.rotation)||u.setRotation(a.rotation),Qe(this._enableAutoSwitchWhenRecapturing)&&(u.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),u.once("first-video-frame",_=>{this.emit(K.FIRST_VIDEO_FRAME,ge(X({},_),{streamType:oi(_.streamType)}))}),u.on("5",_=>{this.emit(K.ERROR,new oe({code:se.DEVICE_ERROR,extraCode:5308,messageParams:{error:_}}))}),u.on("2",_=>{this.emit(K.DEVICE_CHANGED,{type:"camera",action:"active",device:_})}),u.on("4",_=>{let A;_.error&&(A=oe.convertFrom(_.error)),this.emit(K.PUBLISH_STATE_CHANGED,ge(X({},_),{error:A}))}),u.on("6",()=>{this.emit(K.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5505,message:"video encode failed"}))}),this._listenOutputTrackChanged(u),s?yield u.capture(m):(g=u.manager)==null||g.changeInput(u),x(n)||(yield u.setMute(n)),bt(u,u).add("player-state-changed",_=>{this.emit(K.VIDEO_PLAY_STATE_CHANGED,ge(X({},_),{userId:"",streamType:"main"}))}).add("video-size-changed",_=>{this.emit(K.VIDEO_SIZE_CHANGED,ge(X({},_),{streamType:oi(_.streamType)}))}),o&&this._room.isJoined&&this._room.publish(u).catch(()=>{}),this._localVideoTrack=u,this._localVideoConfig=ge(X({},e),{view:r,publish:o,capture:s}),yield this._updateVideoPlayOption({view:r,playOption:p,track:u})})}updateLocalVideo(e){return y(this,null,function*(){var m,p,g;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:r,publish:o,mute:s,capture:n,option:a}=e,u={};if(this._localVideoConfig.capture)n!==!1?a!=null&&a.cameraId?yield this._localVideoTrack.switchDevice(a==null?void 0:a.cameraId):x(a==null?void 0:a.useFrontCamera)?x(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 _={};_.deviceId=(a==null?void 0:a.cameraId)||((m=this._localVideoConfig.option)==null?void 0:m.cameraId),_.facingMode=a!=null&&a.useFrontCamera||(p=this._localVideoConfig.option)!=null&&p.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,_.customSource=(a==null?void 0:a.videoTrack)||((g=this._localVideoConfig.option)==null?void 0:g.videoTrack),yield this._localVideoTrack.capture(_)}a&&(x(a.profile)||(Ne(a.profile)?Cr[a.profile]&&this._localVideoTrack.setProfile(Cr[a.profile]):this._localVideoTrack.setProfile(a.profile),(!a.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(a.cameraId))&&x(a.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),x(a.fillMode)||(u.objectFit=a.fillMode),x(a.mirror)||(u.mirror=a.mirror),x(a.rotation)||this._localVideoTrack.setRotation(a.rotation),a.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(ac(a.qosPreference)),x(a.small)||(Qe(a.small)&&!a.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(Nn(a.small,!0)))),this._room.isJoined&&x(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(()=>{})),x(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:r,playOption:u,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),Dr(this._localVideoConfig,e)})}stopLocalVideo(){return y(this,null,function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),ut(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return y(this,arguments,function*(e={publish:!0,view:null}){var _,A;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 ri(this._room.videoManager);a.on("4",C=>{let N;C.error&&(N=oe.convertFrom(C.error)),this.emit(K.PUBLISH_STATE_CHANGED,ge(X({},C),{error:N}))}),a.once("first-video-frame",C=>{this.emit(K.FIRST_VIDEO_FRAME,ge(X({},C),{streamType:oi(C.streamType)}))}),this._listenOutputTrackChanged(a),e.streamType==="main"&&(a.mediaType=4);let u=null,m={},p={};n&&(x(n.profile)||(Ne(n.profile)?Gc[n.profile]&&a.setProfile(Gc[n.profile]):a.setProfile(n.profile)),n.systemAudio&&(m.systemAudio=!0,m.echoCancellation=n.echoCancellation,m.noiseSuppression=n.noiseSuppression,m.autoGainControl=n.autoGainControl),x(n.fillMode)||(p.objectFit=n.fillMode),n.videoTrack&&(m.videoTrack=n.videoTrack),n.audioTrack&&(m.audioTrack=n.audioTrack),n.captureElement&&(m.captureElement=n.captureElement),n.preferDisplaySurface&&(m.preferDisplaySurface=n.preferDisplaySurface),n.qosPreference&&(m.contentHint=ac(n.qosPreference)));let g=yield a.capture(m);if(a.mediaTrack.addEventListener(M.ENDED,()=>{this._stopScreenShare(),this.emit(K.SCREEN_SHARE_STOPPED)}),g.getAudioTracks()[0]){u=new _s(this._room.audioManager);let C=g.getAudioTracks()[0];(_=e.option)!=null&&_.systemAudio&&!((A=e.option)!=null&&A.audioTrack)&&(u.sourceTrack=C),yield u.setInputMediaStreamTrack(C),Qe(s)&&u.mediaTrack&&(u.mediaTrack.enabled=!s),this._speakerId&&u.setAudioOutput(this._speakerId)}if(bt(a,a).add("player-state-changed",C=>{this.emit(K.VIDEO_PLAY_STATE_CHANGED,ge(X({},C),{userId:"",streamType:"sub"}))}),o&&this._room.isJoined){let C=[a];u&&(C.push(u),this._checkScreenAudioEchoCancellation(a,u)),this._room.publish(...C).catch(()=>{})}this._localScreenTrack=a,this._localScreenAudioTrack=u,this._localScreenConfig=ge(X({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:p,track:a})})}updateScreenShare(e){return y(this,null,function*(){var u;if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:r,publish:o,muteSystemAudio:s,option:n}=e,a={};if(n&&(x(n.fillMode)||(a.objectFit=n.fillMode),n.qosPreference)){let m=ac(n.qosPreference);this._localScreenTrack.setContentHint(m)}if(this._room.isJoined&&!x(o)){if(o&&!this._localScreenConfig.publish){let m=[this._localScreenTrack];this._localScreenAudioTrack&&m.push(this._localScreenAudioTrack),this._room.publish(...m).catch(()=>{})}if(this._localScreenConfig.publish&&!o){let m=[this._localScreenTrack];this._localScreenAudioTrack&&m.push(this._localScreenAudioTrack),this._room.unpublish(...m).catch(()=>{})}}(u=this._localScreenAudioTrack)!=null&&u.mediaTrack&&Qe(s)&&(this._localScreenAudioTrack.mediaTrack.enabled=!s),yield this._updateVideoPlayOption({view:r,playOption:a,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),Dr(this._localScreenConfig,e)})}stopScreenShare(){return y(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return y(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 u=this._room.remotePublishedUserMap.get(o);if(!u)return;let m={},p=s==="main"?u.remoteVideoTrack:u.remoteAuxiliaryTrack;p.on("decode-failed",g=>{this.emit(K.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))}),p.on("video-size-changed",g=>{this.emit(K.VIDEO_SIZE_CHANGED,ge(X({},g),{streamType:oi(g.streamType)}))}),this._listenOutputTrackChanged(p),n&&(x(n.fillMode)||(m.objectFit=n.fillMode),x(n.mirror)||(m.mirror=n.mirror),x(n.poster)||(m.poster=n.poster),m.canvasRender=n.canvasRender,s==="main"&&!x(n.small)&&(!u.remoteVideoTrack.isSubscribing&&!u.remoteVideoTrack.isSubscribed&&u.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,p.user))),yield this._room.subscribe(p),yield this._enableVideoDecodeFallback(p,s),yield this._updateVideoPlayOption({view:r,playOption:m,track:p}),this._emitTrackEvent(p),this._remoteVideoConfigMap.set(a,{config:e}),n&&!x(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:p,view:r,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:n==null?void 0:n.viewRoot})})}updateRemoteVideo(e){return y(this,null,function*(){var D,O;let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`,u=this._remoteVideoConfigMap.get(a);if(!u||!this._room.remotePublishedUserMap.has(o))return;let m={};n&&(x(n.fillMode)||(m.objectFit=n.fillMode),x(n.mirror)||(m.mirror=n.mirror));let p=null,g=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(g!=null&&g.muteState.hasVideo)&&(p=g.remoteVideoTrack),s==="sub"&&(g!=null&&g.muteState.hasAuxiliary)&&(p=g.remoteAuxiliaryTrack),!p)return;let{config:_}=u;s==="main"&&n&&!x(n.small)&&this._room.changeType(n.small,p.user),yield this._updateVideoPlayOption({view:r,playOption:m,track:p,prevConfig:_}),Dr(_,e);let A=x(n==null?void 0:n.receiveWhenViewVisible)?(D=_.option)==null?void 0:D.receiveWhenViewVisible:n.receiveWhenViewVisible,C=x(r)?_.view:r,N=x(n==null?void 0:n.viewRoot)?(O=_.option)==null?void 0:O.viewRoot:n.viewRoot;this._observeView({remoteTrack:p,view:C,receiveWhenViewVisible:A,viewRoot:N})})}stopRemoteVideo(e){return y(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e,r=!0){return y(this,null,function*(){let o=[],s=this._room.remotePublishedUserMap.get(e.userId);if(s){let{muteState:n,remoteVideoTrack:a,remoteAuxiliaryTrack:u}=s;e.streamType==="main"&&(a.stop(),n.hasVideo&&o.push(a)),e.streamType==="sub"&&(u.stop(),n.hasAuxiliary&&o.push(u))}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 y(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 y(this,null,function*(){return e.start(r)})}updatePlugin(e,r){return y(this,null,function*(){return e.update(r)})}stopPlugin(e,r){return y(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(K.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{DE.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===Ie.EVENT.AUDIO_FRAME||e==="*")&&this.listeners(Ie.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(Ne(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 y(this,null,function*(){(yield ho()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(K.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),wt=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: https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/en/TRTC.html#.setCurrentSpeaker')})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return y(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",u=>{this.emit(K.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5506,message:"audio decode failed"}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId);try{let u=(a=this._remoteAudioVolumeMap.get(r))!=null?a:this._remoteAudioVolumeMap.get("*"),m=ke(u)?u:100;s.volume=m,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(n),Ae(be(n,"decode-failed"),ze(be(n,le.INIT)),Le(()=>{this.startPlugin(hc.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(u){throw this._remoteAudioConfigMap.delete(r),u}this._emitTrackEvent(n)})}_stopRemoteAudio(e,r=!0){return y(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(be(e,"decode-failed"),ze(be(e,le.INIT)),Ka(()=>{this._room.downlinkVideoCodec!=="h265"&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),ki(be(e,"decode-downgrade-state-changed")),Le(n=>{s=n.state,this.emit(K.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,ge(X({},n),{streamType:r,userId:e.userId}))},n=>{e.log.error("fallback",n)},()=>{s==="STARTED"&&e.log.info("fallback complete")}))}_updateVideoPlayOption(n){return y(this,arguments,function*({view:e,playOption:r,track:o,prevConfig:s}){if(o.setMirror(r.mirror),x(e)&&s&&s.view&&!Gs(r)){let a=qs(s.view);a.length>0&&(yield o.play(a,r))}if(!x(e)){let a=qs(e);a.length>0?yield o.play(a,r):o.stop()}})}_updateAudioPlayOption(s){return y(this,arguments,function*({playOption:e={},track:r,prevConfig:o}){if(!r.isPlayCalled)try{yield r.play(null,e)}catch(n){}if(x(e.muted)||r.setPlayerMute(e.muted),x(e.volume)||r.setAudioVolume(e.volume/100),r instanceof ti&&r.mediaTrack){let n=e.muted===!1&&!x(e.volume)&&e.volume>0?"add":"remove";this.room.audioManager.updateAudioReference({type:n,audioReference:r.mediaTrack,refId:"em"})}else if(r instanceof Li){let n=e.muted?0:e.volume;if(x(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(K.TRACK,{userId:o,streamType:oi(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 this._room.publish(...e).catch(()=>{})}_observeView({remoteTrack:e,view:r,receiveWhenViewVisible:o=!1,viewRoot:s}){if(x(r))return;let n=this._remoteVideoConfigMap.get(`${e.userId}_${oi(e.streamType)}`);if(!n)return;let a=n.observer||void 0;if(r===null||st(r)&&r.length===0||!o){a==null||a.disconnect(),e.isSubscribed||this._room.subscribe(e).catch(()=>{});return}let m=n.visibleViewMap||new Map,p=-1;(!a||a.root!==s)&&(a==null||a.disconnect(),m.clear(),a=new IntersectionObserver(_=>{_.forEach(A=>{m.set(A.target,A.isIntersecting),e.log.info(`view ${A.target.id} is${A.isIntersecting?"":" not"} visible`)}),clearTimeout(p),p=window.setTimeout(()=>{[...m.values()].find(C=>C)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:s}));let g=new Set(qs(r));m.forEach((_,A)=>{g.has(A)||(a.unobserve(A),m.delete(A))}),g.forEach(_=>{m.set(_,!0),a.observe(_)}),a.takeRecords().forEach(_=>{m.set(_.target,_.isIntersecting)}),n.visibleViewMap=m,n.observer=a}_exitRoom(){return y(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),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(),PE(this),this._room.remotePublishedUserMap.forEach(e=>{ut(e.remoteAudioTrack),ut(e.remoteVideoTrack),ut(e.remoteAuxiliaryTrack)})})}_stopScreenShare(){return y(this,null,function*(){var e,r;if(this._localScreenTrack){if(this._room.isJoined){let o=[this._localScreenTrack];this._localScreenAudioTrack&&o.push(this._localScreenAudioTrack),yield(e=this._room)==null?void 0:e.unpublish(...o).catch(()=>{})}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(((r=this._localScreenAudioTrack.trackSettings)==null?void 0:r.echoCancellation)===!1&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),ut(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_checkScreenAudioEchoCancellation(e,r){return y(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"&&(!wt||En(wt))&&(this._initActiveSpeaker(),U.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return y(this,null,function*(){if(wt&&!En(wt))this.emit(K.DEVICE_CHANGED,{type:"speaker",action:"active",device:wt});else{let e=yield ho();e[0]&&!En(e[0])?(wt=e[0],this.emit(K.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:ge(X({seiPayloadType:243},r),{small:!!((s=this._localVideoTrack)!=null&&s.small)})}),Q.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var r,o;(o=(r=this._room).sendCustomMessage)==null||o.call(r,e),Q.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,r){return y(this,null,function*(){return this._log.info(`callExperimentalAPI(${e}, ${JSON.stringify(r)})`),WE.call(e,X({trtcInstance:this},r))})}static setLogLevel(e,r){$.setLogLevel(e),x(r)||(r?$.enableUploadLog():$.disableUploadLog())}static isSupported(){return Fd(Ie.frameWorkType)}static getPermissions(o){return y(this,arguments,function*({request:e=!0,types:r=["camera","microphone"]}){e&&(yield pc.request(r).catch(a=>{var u;return $.error(`getPermissions request failed, error: ${(u=a==null?void 0:a.message)!=null?u:a}`)}));let[s,n]=yield Promise.all([pc.get("camera"),pc.get("microphone")]);return{camera:s,microphone:n}})}static getCameraList(e=!0){return Kt(e)}static getMicrophoneList(e=!0){return Zt(e)}static getSpeakerList(e=!0){return ho(e)}static setCurrentSpeaker(e){return y(this,null,function*(){if(pt&&(e===Ts.SPEAKER||e===Ts.HEADSET)){let o=yield Ie.getMicrophoneList(),s="";if(o.forEach(n=>{n.label===e&&(s=n.deviceId)}),!s)return;fc.forEach(n=>y(this,null,function*(){n._localAudioTrack&&(yield n.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield ho()).forEach(o=>{o.deviceId===e&&(fc.forEach(s=>{s._setCurrentSpeaker(e),s.emit(K.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),wt=o)})})}static _addKVStat({type:e,key:r,value:o,base:s,useUV:n,version:a,max:u}){switch(a&&(is.version=a),e){case"count":is.addCount({key:r,useUV:n});break;case"enum":is.addEnum({key:r,value:o,useUV:n});break;case"number":is.addNumber({key:r,value:o,split:s,max:u});break}}};l(Ie,"_loggerManager",$),l(Ie,"EVENT",K),l(Ie,"ERROR_CODE",se),l(Ie,"TYPE",Ts),l(Ie,"frameWorkType",30),te([tt({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"}})})],Ie.prototype,"use",1),te([xt(Ct.TRTC.enterRoom),yo("room",([e],[r])=>(e.roomId||e.strRoomId)===(r.roomId||r.strRoomId)&&e.userId===r.userId&&e.sdkAppId===r.sdkAppId),Oe(e=>function(r){return this._log.setUserId(r.userId),this._log.setSdkAppId(r.sdkAppId),e.call(this,r)}),tt()],Ie.prototype,"enterRoom",1),te([tt()],Ie.prototype,"exitRoom",1),te([xt(Ct.TRTC.switchRoom),tt(),cs()],Ie.prototype,"switchRoom",1),te([xt(Ct.TRTC.switchRole),Ss("room",{merge:(e,r)=>r}),tt()],Ie.prototype,"switchRole",1),te([tt()],Ie.prototype,"destroy",1),te([xt(Ct.TRTC.startLocalAudio),yo("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)}),tt()],Ie.prototype,"startLocalAudio",1),te([xt(Ct.TRTC.updateLocalAudio),Ss("audio",{debounce:{delay:200,getKey:()=>`${jE}-localAudio`,isNeedToDebounce:e=>{var r;return!x((r=e.option)==null?void 0:r.captureVolume)}}}),tt()],Ie.prototype,"updateLocalAudio",1),te([Ao("audio"),tt()],Ie.prototype,"stopLocalAudio",1),te([xt(Ct.TRTC.startLocalVideo),yo("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)}),tt()],Ie.prototype,"startLocalVideo",1),te([xt(Ct.TRTC.updateLocalVideo),Ss("video"),tt()],Ie.prototype,"updateLocalVideo",1),te([Ao("video"),tt()],Ie.prototype,"stopLocalVideo",1),te([xt(Ct.TRTC.startScreenShare),yo("screen",()=>!0),tt()],Ie.prototype,"startScreenShare",1),te([xt(Ct.TRTC.updateScreenShare),Ss("screen"),tt()],Ie.prototype,"updateScreenShare",1),te([tt()],Ie.prototype,"stopScreenShare",1),te([xt(Ct.TRTC.startRemoteVideo),yo(e=>`v${e.userId}${e.streamType}`,()=>!0),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Ie.prototype,"startRemoteVideo",1),te([xt(Ct.TRTC.updateRemoteVideo),Ss(e=>`v${e.userId}${e.streamType}`),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Ie.prototype,"updateRemoteVideo",1),te([xt(Ct.TRTC.stopRemoteVideo),Oe(e=>function(r){return y(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)})}),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Ie.prototype,"stopRemoteVideo",1),te([Ao(e=>`v${e.userId}${e.streamType}`)],Ie.prototype,"_stopRemoteVideo",1),te([xt(...Ct.TRTC.muteRemoteAudio),tt({getRemoteId:e=>e})],Ie.prototype,"muteRemoteAudio",1),te([hp(...Ct.TRTC.setRemoteAudioVolume),kE(200,e=>e),tt({getRemoteId:e=>e})],Ie.prototype,"setRemoteAudioVolume",1),te([Uu("start"),po(e=>{var r;return(r=e.afterStart)==null?void 0:r.call(e)}),yo((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Om[e.getName()],ignoreLog:e=>e.getName()==="Debug",ignoreErrorLog:e=>e.getName()==="AudioProcessor"})],Ie.prototype,"startPlugin",1),te([Uu("update"),Ss((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r),{merge:(e,r)=>(Dr(e[1],r[1]),e)}),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>xm[e.getName()]})],Ie.prototype,"updatePlugin",1),te([Uu("stop"),Ao((e,r)=>{if(e.disableRandomCall)return null;let o=e.getGroup(r),s=e.getAlias();return o==="*"?new RegExp(`${s}.*`):s+o}),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Pm[e.getName()]})],Ie.prototype,"stopPlugin",1),te([hp(...Ct.TRTC.enableAudioVolumeEvaluation)],Ie.prototype,"enableAudioVolumeEvaluation",1),te([tt()],Ie.prototype,"getVideoSnapshot",1),te([tt()],Ie.prototype,"_setCurrentSpeaker",1),te([yo(e=>`a${e.userId}`,()=>!0)],Ie.prototype,"_startRemoteAudio",1),te([Oe(e=>function(r){return y(this,null,function*(){return r.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(ge(X({},r),{userId:o.userId})).catch(()=>{}))):e.call(this,r)})}),Ao(e=>`a${e.userId}`)],Ie.prototype,"_stopRemoteAudio",1),te([Ao("room")],Ie.prototype,"_exitRoom",1),te([Ao("screen")],Ie.prototype,"_stopScreenShare",1),te([xt(...Ct.TRTC.sendSEIMessage),ap({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],Ie.prototype,"sendSEIMessage",1),te([xt(Ct.TRTC.sendCustomMessage),ap({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],Ie.prototype,"sendCustomMessage",1),te([xt(Ct.TRTC.create)],Ie,"_create",1);var Rp=Ie,xn=Rp;var Xu=class{constructor(t,e){l(this,"_flag");l(this,"terminalType");l(this,"userId");l(this,"tinyId");l(this,"role");l(this,"remoteAudioTrack");l(this,"remoteVideoTrack");l(this,"remoteAuxiliaryTrack");this.userId=e.userId||"",this.tinyId=e.tinyId||"",this.role=e.role||"audience",this.terminalType=e.terminalType,this.remoteAudioTrack=new Li(t,this),this.remoteVideoTrack=new To(t,this),this.remoteAuxiliaryTrack=new yu(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 qo(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 vp=class{constructor(){l(this,"_set",new Set);U.on(F.LEAVE_SUCCESS,this.delete,this),U.on(F.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 eA(){return y(this,null,function*(){let i,t;try{let A=yield Zt();i=A&&A.length}catch(A){}try{let A=yield Kt();t=A&&A.length}catch(A){}let e={microphone:i,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:o,isH264DecodeSupported:s,isVp8DecodeSupported:n,isH265EncodeSupported:a,isH265DecodeSupported:u}=this.checkSystemResult.detail,m=lo.basis(),p={webRTC:m.isWebRTCSupported,getUserMedia:m.isGetUserMediaSupported,webSocket:m.isWebSocketsSupported,screenShare:m.isScreenShareSupported,webAudio:m.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:o,vp8Decode:n,h265Encode:a,h265Decode:u},g={browser:m.browser,os:m.os,trtc:p,devices:e},_={isWebCodecSupported:m.isWebCodecSupported,isMediaSessionSupported:m.isMediaSessionSupported,isWebTransportSupported:m.isWebTransportSupported};He.uploadEvent({log:`trtcstats-${JSON.stringify(g)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(g)}`),He.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(_)}`,userId:this.userId}),jm()})}function zE(){return Oe(i=>{let t=new vp;return function(e,r,o){return y(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 de({code:q.INVALID_OPERATION,message:$e({key:Fe.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new de({code:q.INVALID_OPERATION,message:$e({key:Fe.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(F.JOIN_START,{room:this,roomId:s,params:e});let n=Xr.getEnv();n||(n=gi.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(jc.OLD_CLOUD_LADDER)?n=gi.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(jc.WEBRTC)&&(n=gi.WEBRTC))),He.setConfig({env:n,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),lo.checkSystemRequirementsInternal(o).then(a=>{this.checkSystemResult=a,eA.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!Xr.getEnv()&&(yield this.schedule(e,o));let a=yield i.call(this,e,r,o);return this.roomId=s,this._joinedTimestamp=Xr.performanceNow(),U.emit(F.JOIN_SUCCESS,{room:this}),o===30&&!e.component&&He.uploadEvent({log:`stat-conv-${Number(Pr)}-${location.hostname}`,userId:this.userId}),a}catch(a){throw t.delete({room:this,roomId:s}),U.emit(F.JOIN_FAILED,{room:this,error:a}),a}})}})}var JE=()=>Oe(i=>function(...t){return y(this,null,function*(){U.emit(F.LEAVE_START,{room:this}),yield i.call(this,...t),U.emit(F.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function XE(){return Oe(i=>function(...t){return y(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 QE(){return Oe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function YE(){return Oe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function tA({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return io(r)?r.catch(o=>$.error(`${i.name}() error observed ${o}`)):r}catch(r){$.error(`${i.name}() error observed ${r}`)}}}var Qu=class{constructor(t){l(this,"_frameWorkType");l(this,"_component");l(this,"_language");l(this,"connectionType");l(this,"_room");l(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0});l(this,"_keyPrefix");l(this,"_log");l(this,"_intervalId");l(this,"_firstPublishedUserList");l(this,"_networkQuality");l(this,"_basicInfo");l(this,"_pathJoinRoom");l(this,"_pathLeaveRoom");l(this,"_pathMainVideoMap");l(this,"_pathMainAudioMap");l(this,"_pathAuxiliaryMap");l(this,"_remoteStreamStatMap");l(this,"_localStreamStat");l(this,"_eventMap",new Map);l(this,"_captureCostSum",0);l(this,"_captureCostCount",0);l(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=$.createLogger({id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&Ge(this[e])&&(this[e]=tA({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:at,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}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,Qo().then(t=>{this._basicInfo.string_os_version=Zo(),t?this._basicInfo.string_device_name=t.mobile?t.model:this._basicInfo.string_os_version:this._basicInfo.string_device_name=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(F.JOIN_START,this.handleJoinStart).addEvent(F.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(F.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(F.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(F.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(F.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(F.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(F.JOIN_FAILED,this.handleJoinFailed).addEvent(F.LEAVE_START,this.handleLeaveStart).addEvent(F.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(F.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(F.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(F.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(F.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(F.PUBLISH_START,this.handlePublishStart).addEvent(F.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(F.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(F.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(F.PLAY_TRACK_START,this.handlePlayStart).addEvent(F.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(F.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(F.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(F.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(F.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(F.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(F.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(F.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(F.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(F.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(),dt.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&&(x(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),x(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),x(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:u,response:m}=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=u,this._pathJoinRoom.int32_schedule_response=m}}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 de?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){this.hitTest(t.room)&&this._pathLeaveRoom.uint64_end_time===0&&(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: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 de?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:ge(X({},rA),{msg_user_info:new gc({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,u=new gc({userId:s,tinyId:n,role:a==="anchor"?20:21}),m=Date.now(),p=`${s}_${r}`,g=this._remoteStreamStatMap.get(p);g&&g.subscribeStartTime===0&&(g.subscribeStartTime=m),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(p)&&this._pathMainVideoMap.set(p,{statsToReport:{msg_user_info:u,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:s,sendSubscribeCMDTime:m}),e.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(p)&&this._pathMainAudioMap.set(p,{statsToReport:{msg_user_info:u,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:s,sendSubscribeCMDTime:m})):e.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(p)&&this._pathAuxiliaryMap.set(p,{sendSubscribeCMDTime:m})}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,Q.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 u,m,p,g;s&&(m=s,p=1),n&&(u=n,g=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:u,totalVideoDelay:m,audioDelayCount:g,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:u}=r.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=s,this._localStreamStat.totalVideoFPS+=n,this._localStreamStat.totalVideoWidth+=a,this._localStreamStat.totalVideoHeight+=u,this._localStreamStat.videoCount++}if(r.msg_audio_status){let{uint32_audio_level:s}=r.msg_audio_status;Math.floor(s/Ci*100)>0&&(this._localStreamStat.totalAudioLevel+=s/Ci,this._localStreamStat.audioLevelCount++)}o.forEach(s=>{let{msg_user_info:n,msg_audio_status:a,msg_video_status:u}=s,m=n.str_identifier,p=this._room.remotePublishedUserMap.get(m);if(u.forEach(g=>{let _=g.uint32_video_stream_type===2,A=g.uint32_video_stream_type===7,C=`${m}_${_?"main":"auxiliary"}`,N=this._remoteStreamStatMap.get(C);if(N&&(_&&(p!=null&&p.remoteVideoTrack.isSubscribed)||A&&(p!=null&&p.remoteAuxiliaryTrack))){N.totalVideoFPS+=g.uint32_video_receive_fps,N.totalVideoBitrate+=g.uint32_video_codec_bitrate,N.videoCount++,N.statsToReport.uint32_video_width===0&&(N.statsToReport.uint32_video_width=g.uint32_video_width),N.statsToReport.uint32_video_height===0&&(N.statsToReport.uint32_video_height=g.uint32_video_height);let D=_?p.remoteVideoTrack:p.remoteAuxiliaryTrack;D.stat.jitterBufferDelay&&(N.videoJitterBufferDelay=D.stat.jitterBufferDelay),D.stat.framesReceived&&(N.statsToReport.uint32_video_consume_render_rate=Math.floor(D.stat.framesDecoded/D.stat.framesReceived*to(10,6)))}}),!Gs(a)){let g=`${m}_main`,_=this._remoteStreamStatMap.get(g);this._remoteStreamStatMap.has(g)&&_&&p!=null&&p.remoteAudioTrack.isSubscribed&&(_.totalAudioBitrate+=a.uint32_audio_codec_bitrate,_.audioCount++,p.remoteAudioTrack.stat.jitterBufferDelay&&(_.audioJitterBufferDelay=p.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(a.uint32_audio_level/Ci*100)>0&&(_.totalAudioLevel+=a.uint32_audio_level/Ci,_.audioLevelCount++))}}),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))}}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 de?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&Us)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&Vs)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&Kn)>=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:g,audioDelayCount:_,videoDelayCount:A,totalAudioDelay:C,totalVideoDelay:N}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(p/g),_&&C&&(t.statsToReport.uint32_audio_network_p2p_delay=Math.floor(C/_),t.audioJitterBufferDelay&&(t.statsToReport.uint32_p2p_delay=Math.floor(t.statsToReport.uint32_audio_network_p2p_delay+t.audioJitterBufferDelay))),A&&N&&(t.statsToReport.uint32_video_network_p2p_delay=Math.floor(N/A))}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,As));let{badCaseDetector:n}=this._room,{dataFreeze:a,count:u}=n.getDataFreezeDuration(e),{renderFreeze:m}=n.getRenderFreezeDuration(e);t.statsToReport.uint32_video_block_count=u,t.statsToReport.uint32_video_block_time=Math.min(a,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_video_external_block_time=Math.min(m,t.statsToReport.uint32_video_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>As&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+As)}),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>As&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+As)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>As&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+As)}getReportData(){this._basicInfo.uint32_networkType=ed();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new gc({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:js(this._signalInfo.relayIp),uint32_client_ip:js(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*to(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:js(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend};return ca(t),t}report(){return y(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 y(this,null,function*(){if(t.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),r=ao.enable?Ii(t,2001,e):yield ql(t),o=r instanceof ArrayBuffer,s=`${Ti(e,ro.KEY_POINT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r));let a=[this.uploadKVStat(Q),this.uploadKVStat(is)];n||a.push(Si({url:s,body:r,priority:"low"})),yield Promise.all(a)})}setConnectionType(t){this.connectionType=t,this._basicInfo.uint32_connection_type=t}uploadKVStat(t){return y(this,null,function*(){let e=t.getReportData();if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=ge(X({},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=ao.enable?Ii(e,2003,this._room.sdkAppId):yield ql(e),o=r instanceof ArrayBuffer,s=`${Ti(+this._room.sdkAppId,ro.KV_STAT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r)),n||Si({url:s,body:r})})}};te([ns({settings:{timeout:500,retries:3}})],Qu.prototype,"upload",1);var As=5e3,rA={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},gc=class{constructor(t){l(this,"str_identifier");l(this,"str_tinyid");l(this,"uint32_role");this.str_identifier=String(t.userId),this.str_tinyid=String(t.tinyId||0),this.uint32_role=t.role}},ZE=Qu;var Cp=class{constructor(){l(this,"_startTime");l(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}},Yu=Cp;var Np=class{constructor(t){l(this,"_room",null);l(this,"_durationMap");l(this,"_eventMap",new Map);this._room=t.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(F.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(F.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(F.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 Yu,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()}},KE=Np;var Dp=class{constructor(t){l(this,"_room");l(this,"_renderFreezeMap",new Map);l(this,"_isVideoPlayingEventFiredMap",new Map);l(this,"_dataFreezeMap",new Map);l(this,"_monitorFreezeData",new Map);l(this,"_eventMap",new Map);l(this,"_videoEncodeFailedCount",0);l(this,"_audioEncodeFailedCount",0);l(this,"_encodeFailedThreshold",3);this._room=t.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(F.LEAVE_SUCCESS,({room:t})=>{this.hitTest(t)&&this.stop()}).set(F.PLAY_TRACK_START,this.onPlayTrackStart).set(F.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(F.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(F.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(F.HEARTBEAT_REPORT,this.onHearBeatReport),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 Yu;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_down_stream_info.forEach(r=>{let o=this._room.remotePublishedUserMap.get(r.msg_user_info.str_identifier);if(!o)return;let{userId:s,muteState:n}=o;r.msg_video_status.forEach(a=>{a.uint32_video_stream_type===2&&n.hasVideo&&!n.videoMuted&&o.remoteVideoTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:a.uint32_video_dec_fps,type:"main"}),a.uint32_video_stream_type===7&&n.hasAuxiliary&&o.remoteAuxiliaryTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:a.uint32_video_dec_fps,type:"auxiliary"})})}),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)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&&(He.uploadEvent({userId:this._room.userId,log:`stat-${lr.VIDEO_ENCODE_FAILED_DURING_CALL}`}),this._videoEncodeFailedCount=0)):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&&(He.uploadEvent({userId:this._room.userId,log:`stat-${lr.AUDIO_ENCODE_FAILED_DURING_CALL}`}),this._audioEncodeFailedCount=0)):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();n>Jc?this._monitorFreezeData.set(t,{userId:e,type:r,duration:n}):o.durationItemList.pop()}getTotalDuration(t){return t.reduce((e,r)=>{let o=r.getDuration();return e+Math.min(o,5e3)},0)}handleRenderFreeze(o){return y(this,arguments,function*({userId:t,fps:e,type:r}){let s=`${t}_${r}`,n=this._renderFreezeMap.get(s);if(e<=2){let a=_e();n&&!n.isFreeze&&(n.freezeTimeline.push({startTime:a,endTime:0}),n.isFreeze=!0),n||this._renderFreezeMap.set(s,{userId:t,type:r,isFreeze:!0,freezeTimeline:[{startTime:a,endTime:0}],renderFreezeTotal:0})}else if(n&&n.isFreeze){n.isFreeze=!1;let a=n.freezeTimeline.pop();if(a){a.endTime=_e();let u=a.endTime-a.startTime;n.freezeTimeline.push(a),n.renderFreezeTotal+=Math.min(5e3,u)}}})}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()<Jc&&r.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(r.durationItemList),e.count=r.durationItemList.length}return e}getRenderFreezeDuration(t){let e=this._renderFreezeMap.get(t),r=0,o=0;if(e)if(!e.isFreeze)r=e.renderFreezeTotal;else{let s=_e(),n=e.freezeTimeline[e.freezeTimeline.length-1],a=s-n.startTime;r=e.renderFreezeTotal+Math.min(a,5e3),o=e.freezeTimeline.length}return{renderFreeze:r,count:o}}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(t){return this._isVideoPlayingEventFiredMap.has(t)?!this._isVideoPlayingEventFiredMap.get(t):!1}resetMonitor(){this._monitorFreezeData.clear()}hitTest(t){return t===this._room}destroy(){this.uninstallEvents()}},e_=Dp;var r_=pi(bi(),1);var Zu=class{constructor(t,e,r,o,s=4/3){this.vbMode=t;this.faceDetectorHash=e;this.visionTaskRegistry=r;this.logger=o;l(this,"animationState");l(this,"originalAspect");l(this,"totalOffsetX",0);l(this,"totalOffsetY",0);l(this,"defaultScaleRatio",.1);l(this,"isRecovering",!1);l(this,"boundaryY",280);l(this,"lastActionTime",0);l(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=s||4/3}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?Q.addSuccessEvent({key:s.key}):Q.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,u=n.originY,m=n.width,p=n.height;this.vbMode===1?this.dualStageCropping(r,o,a,u,m,p):this.vbMode===2&&this.movingPortrait(r,o,a,u,m,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 u=t+r/2,m=e+o/2,p,g,{min:_,offset:A}=this.calculateBoundary(u,s,t,r),{min:C,offset:N}=this.calculateBoundary(m,n,e,o);return p=2*_+r,g=2*C+o,p/g>this.originalAspect?(p=g*this.originalAspect,A=u-p/2):(g=p/this.originalAspect,N=m-g/2),r/s>a&&(A=0,N=0,p=s,g=n),A=Math.max(0,Math.min(A,s-p)),N=Math.max(0,Math.min(N,n-g)),{sx:A,sy:N,cropWidth:p,cropHeight:g,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=X({},t),this.animationState.target=X({},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)),ke(this.animationState.current.scaleOffsetX)&&ke(this.animationState.target.scaleOffsetX)&&ke(this.animationState.current.scaleOffsetY)&&ke(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(to(t.sx-e.sx,2)+to(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 u=this.calculateTargetPosition(r,o,s,n,t,e);this.processFacePositionCrop(u,t,e),s*n/u.cropWidth/u.cropHeight>a&&this.recoverOriginal(t,e)}movingPortrait(t,e,r,o,s,n){var u,m,p,g,_,A,C,N,D,O,Z,ue;let a={sx:r+s/2+this.totalOffsetX,sy:o+n/2+this.totalOffsetY,cropWidth:t,cropHeight:e,scaleRatio:(m=(u=this.animationState.current)==null?void 0:u.scaleRatio)!=null?m:1,scaleOffsetX:(g=(p=this.animationState.current)==null?void 0:p.scaleOffsetX)!=null?g:0,scaleOffsetY:(A=(_=this.animationState.current)==null?void 0:_.scaleOffsetY)!=null?A:0,timestamp:Date.now()};this.animationState.target={sx:t/2,sy:o+n/2,cropWidth:t,cropHeight:e,scaleRatio:(N=(C=this.animationState.target)==null?void 0:C.scaleRatio)!=null?N:1,scaleOffsetX:(O=(D=this.animationState.target)==null?void 0:D.scaleOffsetX)!=null?O:0,scaleOffsetY:(ue=(Z=this.animationState.target)==null?void 0:Z.scaleOffsetY)!=null?ue: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 iA=`#version 300 es
103
103
  in vec2 a_position;
104
104
  in vec2 a_texCoord;
105
105
  out vec2 v_texCoord;
106
106
  void main() {
107
107
  gl_Position = vec4(a_position.x, a_position.y, 0, 1);
108
108
  v_texCoord = a_texCoord;
109
- }`,iA=`#version 300 es
109
+ }`,oA=`#version 300 es
110
110
  precision highp float;
111
111
  uniform sampler2D u_texture;
112
112
  uniform sampler2D mask;
@@ -115,7 +115,7 @@ in vec2 v_texCoord;
115
115
  out vec4 outColor;
116
116
  void main() {
117
117
  outColor = vec4(texture(u_texture, v_texCoord).rgb, texture(mask, v_texCoord).a);
118
- }`,Ku=class extends gr{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});l(this,"_bgTexture");l(this,"_waterMarkTexture");l(this,"_lastMaskTexture");l(this,"_lastMaskFbo");l(this,"_textureValid",!1);l(this,"_selfieTextureValid",!1);l(this,"_selfieSegmentationHash");l(this,"wasm");l(this,"predictReady");l(this,"_color");l(this,"_prePrograme");l(this,"_segmentationMask");l(this,"_weixin",!1);l(this,"_centerFace");l(this,"_textureMatrixLocation");l(this,"_offsetMatrixLocation");l(this,"_colorLocation");l(this,"_enableFaceCentering",!1);l(this,"_enableEffectOptimization",!1);l(this,"_mat4");l(this,"_postProcessing");l(this,"_onAbort");l(this,"_visionTaskRegistry");l(this,"resolvePreditReady");this.init(r).catch(o=>{e.log.error(o),e.destroy(new de({code:q.VIDEO_MANAGER_ERROR,extraCode:6,message:`init vb node error ${o.message||o}`})),this.resolvePreditReady()})}init(e){return y(this,null,function*(){var n,a,u;this.predictReady=new Promise(m=>{this.resolvePreditReady=m});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:m,y:p,width:g,height:_}=e.waterMark;this.wasm.setWaterMark(m,p,g,_)}if(e.beautyParams){let{beauty:m,brightness:p,ruddy:g}=e.beautyParams;this.wasm.setBeauty(m,p,g,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 m=this.context.createShader(o.FRAGMENT_SHADER,iA),p=this.context.createShader(o.VERTEX_SHADER,rA);this._prePrograme=this.context.createProgram(p,m),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)&&((u=this._postProcessing)==null||u.init(o,this.positionBuffer,this.texCoordBuffer,4/3)),yield this.initVisionTasks(e)})}initVisionTasks(e){return y(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._visionTaskRegistry.video=this.image,this._selfieSegmentationHash=yield this._visionTaskRegistry.register(window.VisionTaskType.ImageSegmenter,{canvas:this.context._canvas}),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 Zu(this.wasm.vbMode,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._enableEffectOptimization&&this._postProcessing&&(this.wasm.vbMode===2||this.wasm.vbMode===3)&&(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(),or(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(or(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 u=this.getMaskTexture(this._segmentationMask);r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,u||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 u=this._visionTaskRegistry.getResult(this._selfieSegmentationHash);this.totalFrames===1&&this.context._canvas&&this.resolvePreditReady(),this.onPredict(u)}}catch(u){this._onAbort&&this._onAbort(u)}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:u=0}=r;this._mat4.fromTranslation(s,[-o.offsetX/e.canvas.width+a,u,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:u}=n.canvas,m=this._mat4.create();this._mat4.fromTranslation(m,[e/a,1-(r+s)/u,0]),this._mat4.scale(m,m,[o/a,s/u,1]),n.uniformMatrix4fv(this._textureMatrixLocation,!1,m)}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 el=class extends vt{constructor(e){super(e,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:e.log,fragmentShaderSource:`
118
+ }`,Ku=class extends Er{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});l(this,"_bgTexture");l(this,"_waterMarkTexture");l(this,"_lastMaskTexture");l(this,"_lastMaskFbo");l(this,"_textureValid",!1);l(this,"_selfieTextureValid",!1);l(this,"_selfieSegmentationHash");l(this,"wasm");l(this,"predictReady");l(this,"_color");l(this,"_prePrograme");l(this,"_segmentationMask");l(this,"_weixin",!1);l(this,"_centerFace");l(this,"_textureMatrixLocation");l(this,"_offsetMatrixLocation");l(this,"_colorLocation");l(this,"_enableFaceCentering",!1);l(this,"_enableEffectOptimization",!1);l(this,"_mat4");l(this,"_postProcessing");l(this,"_onAbort");l(this,"_visionTaskRegistry");l(this,"resolvePreditReady");this.init(r).catch(o=>{e.log.error(o),e.destroy(new de({code:q.VIDEO_MANAGER_ERROR,extraCode:6,message:`init vb node error ${o.message||o}`})),this.resolvePreditReady()})}init(e){return y(this,null,function*(){var n,a,u;this.predictReady=new Promise(m=>{this.resolvePreditReady=m});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:m,y:p,width:g,height:_}=e.waterMark;this.wasm.setWaterMark(m,p,g,_)}if(e.beautyParams){let{beauty:m,brightness:p,ruddy:g}=e.beautyParams;this.wasm.setBeauty(m,p,g,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 m=this.context.createShader(o.FRAGMENT_SHADER,oA),p=this.context.createShader(o.VERTEX_SHADER,iA);this._prePrograme=this.context.createProgram(p,m),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)&&((u=this._postProcessing)==null||u.init(o,this.positionBuffer,this.texCoordBuffer,4/3)),yield this.initVisionTasks(e)})}initVisionTasks(e){return y(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._visionTaskRegistry.video=this.image,this._selfieSegmentationHash=yield this._visionTaskRegistry.register(window.VisionTaskType.ImageSegmenter,{canvas:this.context._canvas}),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 Zu(this.wasm.vbMode,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._enableEffectOptimization&&this._postProcessing&&(this.wasm.vbMode===2||this.wasm.vbMode===3)&&(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(),or(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(or(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 u=this.getMaskTexture(this._segmentationMask);r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,u||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 u=this._visionTaskRegistry.getResult(this._selfieSegmentationHash);this.totalFrames===1&&this.context._canvas&&this.resolvePreditReady(),this.onPredict(u)}}catch(u){this._onAbort&&this._onAbort(u)}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:u=0}=r;this._mat4.fromTranslation(s,[-o.offsetX/e.canvas.width+a,u,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:u}=n.canvas,m=this._mat4.create();this._mat4.fromTranslation(m,[e/a,1-(r+s)/u,0]),this._mat4.scale(m,m,[o/a,s/u,1]),n.uniformMatrix4fv(this._textureMatrixLocation,!1,m)}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 el=class extends vt{constructor(e){super(e,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:e.log,fragmentShaderSource:`
119
119
  precision highp float;
120
120
  uniform sampler2D ySampler;
121
121
  uniform sampler2D uSampler;
@@ -140,4 +140,4 @@ void main() {
140
140
  void main() {
141
141
  gl_Position = vertexPos;
142
142
  textureCoord = texturePos;
143
- }`});l(this,"yTextureRef");l(this,"uTextureRef");l(this,"vTextureRef");l(this,"Y");l(this,"U");l(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 ai=[i=>{i.codec="avc1.42e01f"},i=>{delete i.hardwareAcceleration}],KE=(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 oA(i){return i[0]===0&&i[1]===0&&i[2]===0&&i[3]===1}var sA=0,tl=class{constructor(t){l(this,"id",sA++);l(this,"trackDoneOB");l(this,"startOB");l(this,"stopOB");l(this,"decoder");l(this,"videoContext");l(this,"gop",0);l(this,"gop_helper",0);l(this,"waitFirstKeyFrame",!0);l(this,"startTimestamp",0);l(this,"startTime",0);l(this,"startPerformanceTime",0);l(this,"inputFrameCount",0);l(this,"decodedFrameCount",0);l(this,"decodeFrameCount",0);l(this,"downgradeLevel",0);l(this,"lastDowngradeTime",0);l(this,"lastFrameDiff",0);l(this,"lastDecodeFrameTimestamp",0);l(this,"config");l(this,"gop_before_configure",[]);l(this,"videoElement");l(this,"type","wasm");l(this,"goodType");l(this,"renderer","2d");l(this,"wasmOption");l(this,"createDecoder");l(this,"_decodeSink");l(this,"isReported",!1);l(this,"track");l(this,"stateChangeOB");l(this,"failedReason");let{track:e,createDecoder:r}=t;if(this.stateChangeOB=Rt(),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=be(e.availableState,le.OFF),this.stopOB=Rt(),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,$h((o,s)=>(o!==s&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:o,state:s}),s),"INITIALIZED"),ze(this.stopOB),Le()),this.start()}start(t=0){this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=Ae(this.pipe(this.track),ze(this.stopOB),Pi());Ae(e,Le(()=>{this.track.stat.framesDecoded++},r=>{if(this.track.log.error(`${this.id} play failed: ${r} retryCount: ${t}`),Q.addFailedEvent({key:KE(this.type,this.renderer),error:r}),t>4)this.failedReason=r,this.stateChangeOB.next("FAILED"),Q.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`),Q.addSuccessEvent({key:KE(this.type,this.renderer)}),Q.addSuccessEvent({key:514704})})),Ae(e,Fr(1),Le(()=>{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"&&!Um()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(t,e=!1){var a,u;if(this.failedReason)return;this.inputFrameCount++;let r=new Uint8Array(t.data);if(!oA(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(m=>this.decode(m,!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} ${(u=t.getMetadata)==null?void 0:u.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=>y(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":for(let u=0;u<=ai.length;u++){let{supported:m}=yield VideoDecoder.isConfigSupported(this.config);if(m)break;if(u===ai.length){e.error(3);return}ai[u](this.config)}r=this.createDecoder(n);break;default:throw new Error("not supported yet")}let a=0;if(r.on("videoFrame",u=>{this.decodedFrameCount++,a++,(a<=10||a%500===0)&&t.log.debug(`frame ${a} ${this.decodedFrameCount}/${this.decodeFrameCount} decoded ${u.timestamp}`),Date.now()-this.lastDowngradeTime>5e3&&(this.type==="webCodecs"?this.checkDowngradeByFrameDiff():this.type==="wasm"&&this.checkDowngradeByTimestampDiff(u.timestamp)),e.next(u)}),r.on("error",u=>{t.log.error(u),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 St({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create(),this.videoContext.on(St.UNAVAILABLE,m=>{t.log.error(m),e.error(7)});let u=new el(this.videoContext);r.on("videoCodecInfo",m=>u.resize(m.width,m.height)),r.on("videoFrame",m=>{({y:u.Y,u:u.U,v:u.V}=m),this.downgradeLevel===1?this.decodedFrameCount%2===0&&u.render(this.decodedFrameCount):u.render(this.decodedFrameCount)}),t.source=u,t.player.setCanvas(this.videoContext._canvas,2)}else if(s==="videoFrame"){t.player.setCanvas();let u=new MediaStreamTrackGenerator({kind:"video"}),m=u.writable.getWriter();t.setInputMediaStreamTrack(u),r.on("videoFrame",p=>m.write(p))}else{this.videoContext=new Dt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create({alpha:!1});let u=this.videoContext.createVideoImageSource();r.on("videoFrame",p=>{try{u.image=p,u.update()}catch(g){delete this.goodType,t.log.error(g),e.error(11)}});let m=new ps(this.videoContext,{name:"remotePlayer",logger:t.log});u.connect(m),t.source=u,t.player.setCanvas(this.videoContext._canvas,2)}this.decoder=r}catch(a){t.log.error(a),e.error(n==="webCodecs"?2:6)}})}};var pc=class extends e_.EventEmitter{constructor(e){super();this.room=e;l(this,"videoContext");l(this,"_glVideoContext");l(this,"_2dVideoContext");l(this,"destination");l(this,"smallVideoContext");l(this,"smallDestination");l(this,"smallTrackSource");l(this,"smallImageSource");l(this,"_isMirror",!1);l(this,"_rotation",0);l(this,"cameraTrack");l(this,"cameraNode");l(this,"transformNode");l(this,"mixNode");l(this,"screenTrack");l(this,"screenNode");l(this,"selfModel",!1);l(this,"blurRadius",3);l(this,"arTrack");l(this,"_enableFaceCentering",!1);l(this,"_enableEffectOptimization",!1);l(this,"onAbort");l(this,"_color");l(this,"Wasm");l(this,"waterMarkNode");l(this,"_waterMarkOption");l(this,"watermarkImageList",[]);l(this,"_beautyParams");l(this,"isUsingArTrack",!1);l(this,"mixTrack");l(this,"_isMixScreen",!1);l(this,"_virtualBackground");l(this,"_virtualBackgroundAbortCallback");l(this,"virtualBackgroundInstance");l(this,"_bgAssetPath");l(this,"log",$.createLogger({id:"vm"}));l(this,"_mat4");l(this,"_postProcessing");l(this,"_checkId",0);l(this,"_use2d",!1);l(this,"_autoSwitchRenderMode",!0);l(this,"encodePipeline",[]);l(this,"decodePipeline",[]);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.smallVideoContext=new Dt({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 or(this._rotation)?{width:r,height:e}:{width:e,height:r}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Dt({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(!this._glVideoContext)this._glVideoContext=new St({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(),this._glVideoContext.on(St.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=dt.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(),dt.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(hr||this._isMixScreen||this._isTransform||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(e="videoCtxGl",r){let o=e==="videoCtxGl"?512700:512701;r?Q.addFailedEvent({key:o,error:r}):Q.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 St({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 _u(this.smallVideoContext,e,this.log),this.smallVideoContext.on(St.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;hr&&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 y(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(vt.RENDER,n=>{var a;(a=this.cameraTrack)==null||a.emit("render",n)})),Ot===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof gr?(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 gr?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 Eu(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on(vt.RENDER,m=>{var p;(p=this.cameraTrack)==null||p.emit("render",m)}));let{width:n,height:a}=this.cameraResolution,u=yield this.getWatermarkImage(n,a);this._waterMarkOption={x:0,y:0,width:u.width,height:u.height,image:u},this.cameraNode=new Ku(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 Er(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 yn(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:u,height:m}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(u,m),u&&m&&this.waterMarkNode.resize(u,m)}(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 ri)return this.log.info("change screen input",(r=e.mediaTrack)==null?void 0:r.label),this.setScreenTrack(e);if(e instanceof ar)return this.log.info("change video input",(o=e.mediaTrack)==null?void 0:o.label),this.setCameraTrack(e);if(e instanceof To){this.log.info("change remote input",(s=e.mediaTrack)==null?void 0:s.label);let u=e.mediaTrack;return e.setOutputMediaStreamTrack(u)}if(e instanceof gs)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 ri?((r=this.screenNode)==null||r.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof ar?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 To?e.source&&e.source.context.destroy():e instanceof gs&&(delete this.mixTrack,this.update())}setMixTrack(e){this.mixTrack=e}setCameraTrack(e){return this.cameraTrack=e,this.update(!0)}setScreenTrack(e){return y(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 y(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 de({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:u,width:m,height:p})=>{s.drawImage(n,a,u,m,p)}),qs(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)||((r==="mute"||r==="watermark")&&(this.watermarkImageList=this.watermarkImageList.filter(s=>s.type!==r)),this.watermarkImageList.push(e))}setBeautyParams(e){return y(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return y(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(e){return y(this,null,function*(){let r;try{r=yield qs((e==null?void 0:e.imageElement)||e.imageUrl)}catch(g){throw new de({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:u="watermark",zIndex:m=2}=e;this.watermarkImageList.some(g=>g.type===u)?(this.watermarkImageList=this.watermarkImageList.filter(g=>g.type!==u),this.pushWaterMarkImageList({x:o,y:s,width:n,height:a,image:r,zIndex:m,type:u,imageUrl:e.imageUrl}),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:m,type:u,imageUrl:e.imageUrl}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(g,_)=>g==="imageUrl"?void 0:_))})}deleteWatermark(e="watermark"){return y(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 y(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 y(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 qs(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 de({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 y(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 tl(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}};ee([$g(function(e){this.log.error("update failed",e)})],pc.prototype,"update",1);var nA=0;var rl=class extends le{constructor(e){super("room");l(this,"seq",++nA);l(this,"sdkAppId");l(this,"userId");l(this,"userSig");l(this,"privateMapKey");l(this,"latencyLevel");l(this,"tinyId");l(this,"scene");l(this,"roomId");l(this,"useStringRoomId");l(this,"role","anchor");l(this,"joinParams",null);l(this,"localPublishFlag",0);l(this,"localTracks",new Set);l(this,"enableAutoPlayDialog",!0);l(this,"autoReceiveAudio",!0);l(this,"autoReceiveVideo",!0);l(this,"proxy_ws");l(this,"proxy_wt");l(this,"proxy_unified");l(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}});l(this,"keyPointManager");l(this,"audioManager");l(this,"videoManager");l(this,"callDurationCalculator");l(this,"badCaseDetector");l(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null});l(this,"videoDecodeFallbackType");l(this,"smallMode","canvas");l(this,"enableChorus",!1);l(this,"_isUsingCachedSchedule",!1);l(this,"_log",$.createLogger({id:`r${this.seq}`}));l(this,"_joinedTimestamp",0);l(this,"_sdkType");l(this,"heartbeatReport");l(this,"videoCodec");l(this,"quality");l(this,"enableSEI");l(this,"isDestroyed",!1);this.useStringRoomId=!!e.useStringRoomId,Qe(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),Qe(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),Qe(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new QE({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new YE({room:this}),this.badCaseDetector=new ZE({room:this}),this.audioManager=new Su(this),this.videoManager=new pc(this)}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 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}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 y(this,null,function*(){return this.publish(e)})}removeTrack(e){return y(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return y(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(Ne(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Bt(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?(xu([a,a]),Fo(`https://${a}`)):(s&&Fo(s),n&&xu(n))}V.once(F.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:si.main,sched_back_domain:si.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return y(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(r=>{e[r.userId]=r.remoteAudioTrack.stat}),e})}getTransportStats(){return y(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 y(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 de({code:q.INVALID_OPERATION,message:$e({key:Fe.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(Yt.INVALID_DESTROY),new de({code:q.INVALID_OPERATION,message:$e({key:Fe.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,V.emit(F.ROOM_DESTROY,{room:this})}schedule(e,r){return y(this,null,function*(){var s,n,a,u;let o=_e();try{let{isCached:m,result:p,detailCost:g}=yield dp({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:at,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:r,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=m,this._log.info(`schedule cache:${+m} ${mr(p,{keysToExclude:["username","credential"]})}`),m&&V.once(F.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=X(X({},this.scheduleResult),p),ke((s=p.config)==null?void 0:s.retryCount)&&wl(p.config.retryCount),Ne((n=p.config)==null?void 0:n.loggerDomain)&&Fo(p.config.loggerDomain),this.videoDecodeFallbackType=((a=p.config)==null?void 0:a.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((u=p.config)==null?void 0:u.smallMode)||this.smallMode,V.emit(F.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:g}),Q.addSuccessEvent({key:521700,cost:_e()-o})}catch(m){throw Q.addFailedEvent({key:521700,error:m}),m}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}switchRoom(e){return Promise.reject()}isSwitchRoomSupported(){return!1}};function t_(i,t=!1){let e=Object.defineProperties(Rt(),{postMessage:{value:i.postMessage.bind(i)},port:{get(){return i},set(o){i.onmessage=Be,i.onmessageerror=Be,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 Dp=class extends pe{constructor(t,e){super(t);let r=new pe(t);r.next=Be,e(r)}},LH=Te(Dp,"takeUntilComplete");var Pt={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},r_="__INLINE__WORKER__",i_="__INLINE__WASM__",{debug:o_}=console;Pt.debug||(console.debug=()=>{});var aA=!r_.startsWith("__"),cA=!i_.startsWith("__");function il(){let i=zo(`${Pt.assetsPath?`${Pt.assetsPath}/`:""}worker.js`);return aA?URL.createObjectURL(new Blob([atob(r_)],{type:"application/javascript"})):i.startsWith("http")?fetch(i).then(t=>t.blob().then(e=>URL.createObjectURL(e))):i}var fc;function ol(){return y(this,null,function*(){let i=Pt.assetsPath?`${Pt.assetsPath}/`:"";return fc||(cA?fc=new TextEncoder().encode(atob(i_)).buffer:fc=yield fetch(zo(`${i}av_processing.wasm`)).then(t=>t.arrayBuffer()),fc)})}var wp=class{constructor(){l(this,"playPort");l(this,"playPortSent",!1);l(this,"worklet");l(this,"workletPromise")}init(){return this.workletPromise||(this.workletPromise=this._init()),this.workletPromise}_init(){return y(this,null,function*(){let t=We("player"),e=il();try{yield t.audioWorklet.addModule(typeof e=="string"?e:yield e),$.info("global audio player worklet addModule success",e)}catch(r){throw $.error("global audio player worklet addModule failed:",r),r}return this.worklet=new AudioWorkletNode(t,"global-audio-player",{processorOptions:{wasm:yield ol(),flag:Pt},numberOfInputs:2}),$.info("global audio player worklet created",t.state),this.worklet.connect(t.destination),this.playPort=this.worklet.port,this.playPort})}playAudio(t){return y(this,null,function*(){this.playPortSent||(this.playPortSent=!0,t(yield this.init()))})}},sl=new wp;var Mp=(()=>{if(typeof self=="undefined")return!1;if(!("top"in self&&self!==top)){if("showOpenFilePicker"in self)return"showOpenFilePicker"}return!1})(),GH=Mp?Promise.resolve().then(function(){return mA}):Promise.resolve().then(function(){return _A});var jH=Mp?Promise.resolve().then(function(){return pA}):Promise.resolve().then(function(){return IA});var dA=Mp?Promise.resolve().then(function(){return gA}):Promise.resolve().then(function(){return yA});function Op(...i){return y(this,null,function*(){return(yield dA).default(...i)})}var uA=i=>y(void 0,null,function*(){let t=yield i.getFile();return t.handle=i,t}),lA=(...t)=>y(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(uA));return i[0].multiple?o:o[0]}),mA={__proto__:null,default:lA};function nl(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 nl=function(e){this.s=e,this.n=e.next},nl.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 nl(i)}var s_=(o,s,...n)=>y(void 0,[o,s,...n],function*(i,t,e=i.name,r){let a=[],u=[];var m,p=!1,g=!1;try{for(var _,A=function(C){var N,D,O,Z=2;for(typeof Symbol!="undefined"&&(D=Symbol.asyncIterator,O=Symbol.iterator);Z--;){if(D&&(N=C[D])!=null)return N.call(C);if(O&&(N=C[O])!=null)return new nl(N.call(C));D="@@asyncIterator",O="@@iterator"}throw new TypeError("Object is not async iterable")}(i.values());p=!(_=yield A.next()).done;p=!1){let C=_.value,N=`${e}/${C.name}`;C.kind==="file"?u.push(C.getFile().then(D=>(D.directoryHandle=i,D.handle=C,Object.defineProperty(D,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>N})))):C.kind!=="directory"||!t||r&&r(C)||a.push(s_(C,t,N,r))}}catch(C){g=!0,m=C}finally{try{p&&A.return!=null&&(yield A.return())}finally{if(g)throw m}}return[...(yield Promise.all(a)).flat(),...yield Promise.all(u)]}),hA=(...t)=>y(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 s_(e,i.recursive,void 0,i.skipDirectory)}),pA={__proto__:null,default:hA},fA=(s,...n)=>y(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=[],u=null;if(i instanceof Blob&&i.type?u=i.type:i.headers&&i.headers.get("content-type")&&(u=i.headers.get("content-type")),t.forEach((g,_)=>{a[_]={description:g.description||"Files",accept:{}},g.mimeTypes?(_===0&&u&&g.mimeTypes.push(u),g.mimeTypes.map(A=>{a[_].accept[A]=g.extensions||[]})):u?a[_].accept[u]=g.extensions||[]:a[_].accept["*/*"]=g.extensions||[]}),e)try{yield e.getFile()}catch(g){if(e=null,r)throw g}let m=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(m);let p=yield m.createWritable();return"stream"in i?(yield i.stream().pipeTo(p),m):"body"in i?(yield i.body.pipeTo(p),m):(yield p.write(yield i),yield p.close(),m)}),gA={__proto__:null,default:fA},EA=(...t)=>y(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(m=>m.mimeTypes||[]),...i.map(m=>m.extensions||[])].join();o.multiple=i[0].multiple||!1,o.accept=s||"",o.style.display="none",document.body.append(o);let n=m=>{typeof a=="function"&&a(),e(m)},a=i[0].legacySetup&&i[0].legacySetup(n,()=>a(r),o),u=()=>{window.removeEventListener("focus",u),o.remove()};o.addEventListener("click",()=>{window.addEventListener("focus",u)}),o.addEventListener("change",()=>{window.removeEventListener("focus",u),o.remove(),n(o.multiple?Array.from(o.files):o.files[0])}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),_A={__proto__:null,default:EA},TA=(...t)=>y(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(u=>u.webkitRelativePath.split("/").every(m=>!i[0].skipDirectory({name:m,kind:"directory"})))):a=a.filter(u=>u.webkitRelativePath.split("/").length===2),s(a)}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),IA={__proto__:null,default:TA},SA=(e,...r)=>y(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(u,m){return y(this,null,function*(){let p=u.getReader(),g=new ReadableStream({start:C=>function N(){return y(this,null,function*(){return p.read().then(({done:D,value:O})=>{if(!D)return C.enqueue(O),N();C.close()})})}()}),_=new Response(g),A=yield _.blob();return p.releaseLock(),new Blob([A],{type:m})})}(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}),yA={__proto__:null,default:SA};var xp=class{constructor(t){this.name=t;l(this,"ready");l(this,"worker");l(this,"ports");l(this,"ids",1);l(this,"transactions",new Map);l(this,"log");l(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 y(this,null,function*(){if(this.ready)return this.ready;t||(t=this.name),console.time(`createWorker_${t}`);let e=il(),r=new Worker(typeof e=="string"?e:yield e,{name:t});return this.worker=r,this.ready=new Promise((o,s)=>y(this,null,function*(){r.onmessage=({data:{id:n,type:a,payload:u}})=>{var m;if(n)(m=this.transactions.get(n))==null||m(u),this.transactions.delete(n);else switch(a){case"error":console.timeEnd(`createWorker_${t}`),console.warn("worker error:",u),s(u);break;case"ready":console.timeEnd(`createWorker_${t}`),o(this);break;case"updateAFSM":if(u.value){let p=typeof u.old=="string"?u.old:`${u.old.action}ing`,g=typeof u.value=="string"?u.value:`${u.value.action}ing`;console.log(Zc(),u.group,u.name,p,"\u{1F449}",g)}break;case"log":console.log(u);break;case"glog":window.dispatchEvent(new CustomEvent(a,{detail:u}));break}},r.postMessage({wasm:yield ol(),flag:Pt},this.ports)}))})}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},Pp=class{constructor(t,e,r){this.worker=t;l(this,"channel",new MessageChannel);l(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()}},kp=class i extends xp{constructor(){super("main");l(this,"switchValue",new Map);l(this,"extendChannel");l(this,"sessionCount",0)}setSwitchValue(e,r){var o;this.switchValue.set(e,r),(o=this.extendChannel)==null||o.port1.postMessage([e,r])}create(){return y(this,null,function*(){return this.ready?this.ready:(this.extendChannel=new MessageChannel,this.ports=[this.extendChannel.port2],yield Ft(i.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},Ro=new kp,As,AA=-1;function n_(i){return console.log(i),As.push(i.slice()),As.length>1e3&&As.shift(),i}function a_(i){return y(this,null,function*(){switch(AA){case 0:this.edpl.willDecodeAudio=n_;break;case 2:this.edpl.didEncodeAudio=n_;break}yield Ro.create(),V.emit(F.JOIN_SEND_CMD,{room:this});let t=new Pp(Ro,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(V.emit(F.JOIN_RECEIVED_CMD_RES,{room:this,code:e}),e===0)return Object.assign(this,r,{session:t});throw new de({code:q.JOIN_ROOM_FAILED,extraCode:Number(e),message:$e({key:Fe.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:e,errorMsg:""}})})}else throw e})}Object.defineProperties(window,{useAINS:{set:Lp},useWt:{set:bA},enableDebug:{set(i){console.debug=i?o_:()=>{},Ro.setSwitchValue("enableDebug",i)}},useV2:{set:Up},dump:{value(){if(As||(console.warn("dump audio will be activated at next time join room"),As=[]),!As.length){console.warn("no audio data to dump,try it later");return}let i=[];return As.forEach(t=>{i.push(new Uint16Array([t.length])),i.push(t)}),Op(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;Ro.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,Ro.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return Op(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:Pt.useHardDecoder="prefer-hardware";break;case!1:Pt.useHardDecoder="prefer-software";break;default:Pt.useHardDecoder="no-preference"}}}});function Lp(i){return y(this,null,function*(){Ro.setSwitchValue("useAINS",i)})}function Up(i){return y(this,null,function*(){Ro.setSwitchValue("useV2",i)})}function bA(i){return y(this,null,function*(){Ro.setSwitchValue("useWt",i)})}function c_(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 d_(i){return y(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(t_(r.port2),ze(be(i,le.INIT)),Le(s=>{let{data:n,packetsReceived:a}=s;i.stat.packetsReceived=a,i.stat.framesReceived++,e++;let u=n[4]&31;if(e<=10){let p=Array.from(n.slice(0,10)).map(g=>g.toString(16).padStart(2,"0")).join(" ");this._log.info(`Frame ${e} - Size: ${n.length} bytes, Type: ${u}, Timestamp: ${Date.now()-t}ms First 10 bytes: ${p}`)}let m;switch(u){case 5:case 7:m="key";break;default:m="delta";break}i.isAvailable?i.decodeFrame({data:n.buffer,type:m,timestamp:(Date.now()-t)*1e3}):console.warn("track is not available")},()=>{},()=>{r.port2.postMessage(null),r.port2.close()}))})}var al=[];function l_(i){var u;let t=Rt();if(this.state!=="joined")throw new Error("Room is not joined");if(i.state==="publish")return;for(let m=0;m<=al.length;m++)if(!al[m]){al[m]=this,this.index=m;break}let e=i.profile;this._log.info("start push audio",this.index,e);let r=new MessageChannel,o=i.enableEncodeFrame?new MessageChannel:null;(u=this.session)==null||u.postMessage({cmd:"pushAudio",payload:X({index:this.index},e)},o?[r.port2,o.port2]:[r.port2]),r.port1.onmessage=m=>{m.data==null||(typeof m.data=="number"?t.next(m.data):o&&o.port1.postMessage(ge(X({},m.data),{data:new Uint8Array(i.encodeFrame({data:m.data.data.buffer,timestamp:m.data.timestamp}).data)})))};let s=new MediaStream,n,a=m=>{let p=s.getAudioTracks()[0];p&&(n.disconnect(),s.removeTrack(p)),s.addTrack(m),this._log.info("push audio track:",m.readyState,m.getSettings().deviceId),n=We("player").createMediaStreamSource(s),n.connect(sl.worklet,0,this.index)};Ae(be(i,"output-media-track-changed"),ze(be(i,"ready")),Le(a,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,n.disconnect(),al[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),Ae(t,Ya(m=>i.volume=m),ki(gu(1e3)),Le(()=>{i.volume=0})),a(i.outMediaTrack)}var R4=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var Vp=class{constructor(t,e,r,o){this.localTrack=t;this.type=e;this.config=r;this.port=o;l(this,"track");l(this,"label");l(this,"insertKeyFrame",!0);l(this,"session");l(this,"tsMap",new Map);t._log.info("create Video Encoder",r)}trans(t,e,r){return y(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 y(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 y(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&&V.emit(F.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 u=this.localTrack.encodeFrame({data:a.buffer},this.type===3);a=new Uint8Array(u.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 y(this,null,function*(){var r;if(t)Object.assign(this.config,t);else if(e.frameEncoded===0)for(let o=0;o<=ai.length;o++){let{supported:s}=yield VideoDecoder.isConfigSupported(this.config);if(s)break;if(o===ai.length)return;ai[o](this.config),e.selectConfigIndex=o}else e.selectConfigIndex+e.recreateCount<=ai.length&&e.recreateCount>0?ai[e.selectConfigIndex+e.recreateCount-1](this.config):ai[e.selectConfigIndex](this.config);(r=e.encoder)==null||r.configure(this.config)})}close(){this.port.postMessage(null),this.port.close()}};function cl(i,t){return y(this,null,function*(){let e=i.mediaType===2,r=e?"screen":"video",o={codec:"avc1.640028",latencyMode:"realtime",avc:{format:"annexb"},hardwareAcceleration:Pt.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 Vp(i,t.type,o,s.port2);return s.port2.onmessage=a=>{if(a.data===260)n.insertKeyFrame=!0;else if(!e){let{bitrate:u}=a.data;ia({configureBr:[a.data.bitrate,u]}),n.session&&n.configure({bitrate:u},n.session)}},this._log.info("start push",r,t),n})}function m_(i){return y(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 cl.call(this,i,r);this._log.info("VideoEncoder created",r);let u,m=g=>y(this,null,function*(){if(u==null||u.abort("track changed"),!g)return;u=new AbortController;let{width:_,height:A,displaySurface:C}=g.getSettings();_&&(a.config.width=_),A&&(a.config.height=A);let N=sr.match(/Chrome\/(\d+)/);(N==null?void 0:N[1])==="114"&&C==="browser"&&delete a.config.hardwareAcceleration,this._log.info("push",e,"track:",g.readyState,g.getSettings());let D;if(typeof MediaStreamTrackProcessor!="undefined"&&!(g instanceof CanvasCaptureMediaStreamTrack))D=new MediaStreamTrackProcessor({track:g}).readable;else{let Z;D=new ReadableStream({start(ue){i.on("render",Se=>{if(i.player.mode!==0)try{ue.enqueue(new VideoFrame(Se,{timestamp:performance.now()*1e3}))}catch(Ye){console.warn(Ye)}})},pull(ue){return y(this,null,function*(){if(i.player.mode===0&&Mi()&&i.player.element)return new Promise(Se=>{i.player.element.requestVideoFrameCallback((Ye,H)=>{try{let Pe=new VideoFrame(i.player.element);ue.enqueue(Pe)}catch(Pe){console.warn(Pe)}Se()})})})}})}let O="small"in i&&i.small;return O?(this.smallEncoder||(this.smallEncoder=yield cl.call(this,i,{profile:O,type:3,trackType:o})),this.smallEncoder.track=g,this.smallEncoder.label="small",D=yield this.smallEncoder.trans(D,u,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),a.track=g,a.label=e,a.start(D,u,this)});return Ae(be(i,"output-media-track-changed"),ze(be(i,"ready")),Le(m,console.error,()=>{var g;this._log.info("stop push",e,r),u.abort("unpublish"),a.close(),(g=this.smallEncoder)==null||g.close()})),m(i.outMediaTrack)})}var vo=class vo extends le{constructor(e){var r,o;super((o=(r=e.roomid)==null?void 0:r.toString())!=null?o:e.name,"volumeEvaluation");this.room=e;l(this,"enableInBackground",!1);l(this,"interval",400);e.on("joined",()=>{this.emit(vo.INTERVALCHANGED,this.interval)}),Ae(be(this,vo.INTERVALCHANGED),Eo(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):Ae(eE(s),go(()=>[]))),Le(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==le.ON&&this.room.emit("audio-volume",s)}))}start(e,r){this.interval=e,this.enableInBackground=r,this.emit(vo.INTERVALCHANGED,this.interval)}stop(){}};l(vo,"INTERVALCHANGED","intervalChanged"),ee([Ze([le.INIT,le.OFF],le.ON)],vo.prototype,"start",1),ee([Ze([],le.OFF)],vo.prototype,"stop",1);var dl=vo;var Co=class Co extends rl{constructor(e){super(e);l(this,"index",0);l(this,"session");l(this,"tinyid");l(this,"roomid");l(this,"openid");l(this,"socketid");l(this,"relayip");l(this,"clientip");l(this,"remotePublishedUserMap",new Map);l(this,"bussinessInfo");l(this,"token");l(this,"audioVolumeEvalution",new dl(this));l(this,"enableAIVoice",Lp);l(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:lm(),uint32_device_type:0,str_os_verion:mm(),uint32_link_type:1,str_client_version:at,uint32_net_type:$o[Xr.getNetworkType()],ua:navigator.userAgent,version:""}});l(this,"joinAbortController",new AbortController);l(this,"smallAbortCtrl");l(this,"smallEncoder");e.tinyId&&(this.tinyId=e.tinyId,Up(!0)),this._log||(this._log=e.logger),this.bussinessInfo=e.bussinessInfo,e.encodedDataProcessingListener&&this.setEncodedDataProcessingListener(e.encodedDataProcessingListener)}replaceTrack(e){return y(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 y(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 y(this,null,function*(){var u,m,p;let s=Xr.getEnv(),n=Pd(),a={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:o,params:e,proxy_wt:(u=this.proxy_wt)==null?void 0:u.replace("https://",""),proxy_ws:(m=this.proxy_ws)==null?void 0:m.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:sn(),browserInfo:Pd(),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:at,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 a_.call(this,a),console.log(this),sl.playAudio(g=>this.postMessage({cmd:"setAudioWorkletPort"},[g])),this.checkDestroy()})}leave(){return y(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())})}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 y(this,null,function*(){let e=ze(be(this,"left"));Ae(r=>y(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,Le(({data:r,port:o})=>{let s=this.audioManager.decodePipeline[0]({frame:{data:r.data.buffer}});o.postMessage(ge(X({},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 F.RECEIVED_PUBLISHED_USER_LIST:V.emit(e,X({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 Xu(this,r);this.remotePublishedUserMap.set(r.userId,o),this.emit("remote-published",o);return;case"5":{let g=r,_=this.remotePublishedUserMap.get(g);_&&(_.remoteVideoTrack.close(),_.remoteAuxiliaryTrack.close(),_.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(g),this.emit("remote-unpublished",_))}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:g,muteState:_,flag:A}=r,C=this.remotePublishedUserMap.get(_.userId);if(!C){this.emit("remote-publish-state-changed",r);return}C.flag=A}V.emit(F.REMOTE_PUBLISH_STATE_CHANGED,X({room:this},r)),this.emit("remote-publish-state-changed",r);return;case"network-quality":this.quality=X({},r);let{uplinkLoss:s,uplinkRTT:n,uplinkInfo:a,downlinkInfo:u,msg_down_stream_info:m}=r,p={str_sdk_version:at,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:$o[ra()]},msg_event_msg:iE(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:a,msg_down_stream_info:m};V.emit(F.HEARTBEAT_REPORT,{room:this,report:p}),this.emit("heartbeat-report",p),V.emit(F.NETWORK_QUALITY,{room:this,uplink:{rtt:n,loss:s},downlinks:u}),delete r.downlinkInfo;break;case"signal-connection-state-changed":V.emit(F.SIGNAL_CONNECTION_STATE_CHANGED,X({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 y(this,null,function*(){let r=e.reduce((a,u)=>u.mediaType|a,0),o=this.sendMessage("publish",r).then(a=>a.err!==0?Promise.reject(a.err):a),s=0,n=a=>y(this,null,function*(){switch(yield o,a.muted&&(s|=a.mediaType),bt(a,a).add("mute",()=>{this.postMessage("mute",{mediaType:a.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})}).add("unmute",()=>{this.postMessage("unmute",{mediaType:a.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})}),a.mediaType){case 1:l_.call(this,a);break;default:yield m_.call(this,a)}});yield Promise.all(e.map(n)),s&&this.postMessage("mute",{mediaType:s,srctinyid:this.tinyid,userId:this.openid,remove:!0})})}unpublish(...e){return y(this,null,function*(){e.forEach(ut)})}subscribe(...e){return y(this,null,function*(){let r=e.reduce((g,_)=>_.mediaType|g,0),{userId:o,tinyId:s,streamType:n}=e[0],a=this.remotePublishedUserMap.get(o),u=X({},a.subscribeState),m=Object.assign(new Aa,u);m.mediaType|=r,V.emit(F.SUBSCRIBE_START,{room:this,streamType:n,remotePublishedUser:a,subscribeState:m});let p=yield this.sendMessage("subscribe",{mediaType:m.mediaType,userId:o,srctinyid:s,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter(g=>m.mediaType&g).map(g=>({mediaType:g,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",p),yield Promise.all(e.filter(g=>!g.isSubscribed).map(g=>{switch(g.mediaType){case 1:return c_.call(this,g);default:return d_.call(this,g)}})),V.emit(F.SUBSCRIBE_SUCCESS,{room:this,streamType:n,remotePublishedUser:a})})}unsubscribe(...e){return y(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();V.emit(F.UNSUBSCRIBE_SUCCESS,{room:this,streamType:s,remotePublishedUser:this.remotePublishedUserMap.get(o)})}})}enableSmall(e){return y(this,null,function*(){var r;if(e){if(this.videoManager.smallTrack){let o=this.videoManager.cameraTrack;this.smallEncoder=yield cl.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"))}};ee([po(Co.prototype.afterJoin),Ze(["left",le.INIT],"joined"),jE()],Co.prototype,"join",1),ee([Ze("joined","left",{ignoreError:!0}),qE()],Co.prototype,"leave",1),ee([eu((...e)=>0),zE()],Co.prototype,"publish",1),ee([eu((...e)=>0),JE()],Co.prototype,"unpublish",1),ee([eu((...e)=>e[0].userId),XE()],Co.prototype,"subscribe",1);var ul=Co;Mn.frameWorkType=37;Mn.create=function(i){let t=Mn._create.call(this,ul,i);return t._use(op,i==null?void 0:i.assetsPath),i!=null&&i.assetsPath&&(Pt.assetsPath=i==null?void 0:i.assetsPath),console.log("trtc wasm sdk:",at,"created",Pt),t};Object.assign(Mn.prototype,{_setCurrentSpeaker(i){let t=We("player");return t!=null&&t.setSinkId?t.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return y(this,null,function*(){return this.startPlugin(op.Name,{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.420028"},fallback:"wasm"}),new Promise((e,r)=>{Ae(be(i,"decode-downgrade-state-changed"),Jt(o=>o.state==="STARTED"),Fr(1),Gh(1e4),ze(be(i,le.INIT)),Le(e,r))})})}});Hm(37);var YW=Mn;export{YW as default};
143
+ }`});l(this,"yTextureRef");l(this,"uTextureRef");l(this,"vTextureRef");l(this,"Y");l(this,"U");l(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 ai=[i=>{i.codec="avc1.42e01f"},i=>{delete i.hardwareAcceleration}],t_=(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 sA(i){return i[0]===0&&i[1]===0&&i[2]===0&&i[3]===1}var nA=0,tl=class{constructor(t){l(this,"id",nA++);l(this,"trackDoneOB");l(this,"startOB");l(this,"stopOB");l(this,"decoder");l(this,"videoContext");l(this,"gop",0);l(this,"gop_helper",0);l(this,"waitFirstKeyFrame",!0);l(this,"startTimestamp",0);l(this,"startTime",0);l(this,"startPerformanceTime",0);l(this,"inputFrameCount",0);l(this,"decodedFrameCount",0);l(this,"decodeFrameCount",0);l(this,"downgradeLevel",0);l(this,"lastDowngradeTime",0);l(this,"lastFrameDiff",0);l(this,"lastDecodeFrameTimestamp",0);l(this,"config");l(this,"gop_before_configure",[]);l(this,"videoElement");l(this,"type","wasm");l(this,"goodType");l(this,"renderer","2d");l(this,"wasmOption");l(this,"createDecoder");l(this,"_decodeSink");l(this,"isReported",!1);l(this,"track");l(this,"stateChangeOB");l(this,"failedReason");let{track:e,createDecoder:r}=t;if(this.stateChangeOB=Rt(),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=be(e.availableState,le.OFF),this.stopOB=Rt(),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,Hh((o,s)=>(o!==s&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:o,state:s}),s),"INITIALIZED"),ze(this.stopOB),Le()),this.start()}start(t=0){this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=Ae(this.pipe(this.track),ze(this.stopOB),Pi());Ae(e,Le(()=>{this.track.stat.framesDecoded++},r=>{if(this.track.log.error(`${this.id} play failed: ${r} retryCount: ${t}`),Q.addFailedEvent({key:t_(this.type,this.renderer),error:r}),t>4)this.failedReason=r,this.stateChangeOB.next("FAILED"),Q.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`),Q.addSuccessEvent({key:t_(this.type,this.renderer)}),Q.addSuccessEvent({key:514704})})),Ae(e,Fr(1),Le(()=>{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"&&!Vm()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(t,e=!1){var a,u;if(this.failedReason)return;this.inputFrameCount++;let r=new Uint8Array(t.data);if(!sA(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(m=>this.decode(m,!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} ${(u=t.getMetadata)==null?void 0:u.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=>y(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":for(let u=0;u<=ai.length;u++){let{supported:m}=yield VideoDecoder.isConfigSupported(this.config);if(m)break;if(u===ai.length){e.error(3);return}ai[u](this.config)}r=this.createDecoder(n);break;default:throw new Error("not supported yet")}let a=0;if(r.on("videoFrame",u=>{this.decodedFrameCount++,a++,(a<=10||a%500===0)&&t.log.debug(`frame ${a} ${this.decodedFrameCount}/${this.decodeFrameCount} decoded ${u.timestamp}`),Date.now()-this.lastDowngradeTime>5e3&&(this.type==="webCodecs"?this.checkDowngradeByFrameDiff():this.type==="wasm"&&this.checkDowngradeByTimestampDiff(u.timestamp)),e.next(u)}),r.on("error",u=>{t.log.error(u),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 St({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create(),this.videoContext.on(St.UNAVAILABLE,m=>{t.log.error(m),e.error(7)});let u=new el(this.videoContext);r.on("videoCodecInfo",m=>u.resize(m.width,m.height)),r.on("videoFrame",m=>{({y:u.Y,u:u.U,v:u.V}=m),this.downgradeLevel===1?this.decodedFrameCount%2===0&&u.render(this.decodedFrameCount):u.render(this.decodedFrameCount)}),t.source=u,t.player.setCanvas(this.videoContext._canvas,2)}else if(s==="videoFrame"){t.player.setCanvas();let u=new MediaStreamTrackGenerator({kind:"video"}),m=u.writable.getWriter();t.setInputMediaStreamTrack(u),r.on("videoFrame",p=>m.write(p))}else{this.videoContext=new Dt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create({alpha:!1});let u=this.videoContext.createVideoImageSource();r.on("videoFrame",p=>{try{u.image=p,u.update()}catch(g){delete this.goodType,t.log.error(g),e.error(11)}});let m=new fs(this.videoContext,{name:"remotePlayer",logger:t.log});u.connect(m),t.source=u,t.player.setCanvas(this.videoContext._canvas,2)}this.decoder=r}catch(a){t.log.error(a),e.error(n==="webCodecs"?2:6)}})}};var Ec=class extends r_.EventEmitter{constructor(e){super();this.room=e;l(this,"videoContext");l(this,"_glVideoContext");l(this,"_2dVideoContext");l(this,"destination");l(this,"smallVideoContext");l(this,"smallDestination");l(this,"smallTrackSource");l(this,"smallImageSource");l(this,"_isMirror",!1);l(this,"_rotation",0);l(this,"cameraTrack");l(this,"cameraNode");l(this,"transformNode");l(this,"mixNode");l(this,"screenTrack");l(this,"screenNode");l(this,"selfModel",!1);l(this,"blurRadius",3);l(this,"arTrack");l(this,"_enableFaceCentering",!1);l(this,"_enableEffectOptimization",!1);l(this,"onAbort");l(this,"_color");l(this,"Wasm");l(this,"waterMarkNode");l(this,"_waterMarkOption");l(this,"watermarkImageList",[]);l(this,"_beautyParams");l(this,"isUsingArTrack",!1);l(this,"mixTrack");l(this,"_isMixScreen",!1);l(this,"_virtualBackground");l(this,"_virtualBackgroundAbortCallback");l(this,"virtualBackgroundInstance");l(this,"_bgAssetPath");l(this,"log",$.createLogger({id:"vm"}));l(this,"_mat4");l(this,"_postProcessing");l(this,"_checkId",0);l(this,"_use2d",!1);l(this,"_autoSwitchRenderMode",!0);l(this,"encodePipeline",[]);l(this,"decodePipeline",[]);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.smallVideoContext=new Dt({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 or(this._rotation)?{width:r,height:e}:{width:e,height:r}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Dt({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(!this._glVideoContext)this._glVideoContext=new St({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(),this._glVideoContext.on(St.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=dt.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(),dt.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(hr||this._isMixScreen||this._isTransform||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(e="videoCtxGl",r){let o=e==="videoCtxGl"?512700:512701;r?Q.addFailedEvent({key:o,error:r}):Q.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 St({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 _u(this.smallVideoContext,e,this.log),this.smallVideoContext.on(St.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;hr&&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 y(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(vt.RENDER,n=>{var a;(a=this.cameraTrack)==null||a.emit("render",n)})),Ot===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof Er?(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 Er?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 Eu(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on(vt.RENDER,m=>{var p;(p=this.cameraTrack)==null||p.emit("render",m)}));let{width:n,height:a}=this.cameraResolution,u=yield this.getWatermarkImage(n,a);this._waterMarkOption={x:0,y:0,width:u.width,height:u.height,image:u},this.cameraNode=new Ku(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 _r(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 bn(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:u,height:m}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(u,m),u&&m&&this.waterMarkNode.resize(u,m)}(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 ri)return this.log.info("change screen input",(r=e.mediaTrack)==null?void 0:r.label),this.setScreenTrack(e);if(e instanceof ar)return this.log.info("change video input",(o=e.mediaTrack)==null?void 0:o.label),this.setCameraTrack(e);if(e instanceof To){this.log.info("change remote input",(s=e.mediaTrack)==null?void 0:s.label);let u=e.mediaTrack;return e.setOutputMediaStreamTrack(u)}if(e instanceof Es)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 ri?((r=this.screenNode)==null||r.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof ar?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 To?e.source&&e.source.context.destroy():e instanceof Es&&(delete this.mixTrack,this.update())}setMixTrack(e){this.mixTrack=e}setCameraTrack(e){return this.cameraTrack=e,this.update(!0)}setScreenTrack(e){return y(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 y(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 de({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:u,width:m,height:p})=>{s.drawImage(n,a,u,m,p)}),zs(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)||((r==="mute"||r==="watermark")&&(this.watermarkImageList=this.watermarkImageList.filter(s=>s.type!==r)),this.watermarkImageList.push(e))}setBeautyParams(e){return y(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return y(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(e){return y(this,null,function*(){let r;try{r=yield zs((e==null?void 0:e.imageElement)||e.imageUrl)}catch(g){throw new de({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:u="watermark",zIndex:m=2}=e;this.watermarkImageList.some(g=>g.type===u)?(this.watermarkImageList=this.watermarkImageList.filter(g=>g.type!==u),this.pushWaterMarkImageList({x:o,y:s,width:n,height:a,image:r,zIndex:m,type:u,imageUrl:e.imageUrl}),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:m,type:u,imageUrl:e.imageUrl}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(g,_)=>g==="imageUrl"?void 0:_))})}deleteWatermark(e="watermark"){return y(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 y(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 y(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 zs(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 de({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 y(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 tl(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}};te([Bg(function(e){this.log.error("update failed",e)})],Ec.prototype,"update",1);var aA=0;var rl=class extends le{constructor(e){super("room");l(this,"seq",++aA);l(this,"sdkAppId");l(this,"userId");l(this,"userSig");l(this,"privateMapKey");l(this,"latencyLevel");l(this,"tinyId");l(this,"scene");l(this,"roomId");l(this,"useStringRoomId");l(this,"role","anchor");l(this,"joinParams",null);l(this,"localPublishFlag",0);l(this,"localTracks",new Set);l(this,"enableAutoPlayDialog",!0);l(this,"autoReceiveAudio",!0);l(this,"autoReceiveVideo",!0);l(this,"proxy_ws");l(this,"proxy_wt");l(this,"proxy_unified");l(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}});l(this,"keyPointManager");l(this,"audioManager");l(this,"videoManager");l(this,"callDurationCalculator");l(this,"badCaseDetector");l(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null});l(this,"videoDecodeFallbackType");l(this,"smallMode","canvas");l(this,"enableChorus",!1);l(this,"_isUsingCachedSchedule",!1);l(this,"_log",$.createLogger({id:`r${this.seq}`}));l(this,"_joinedTimestamp",0);l(this,"_sdkType");l(this,"heartbeatReport");l(this,"videoCodec");l(this,"quality");l(this,"enableSEI");l(this,"isDestroyed",!1);this.useStringRoomId=!!e.useStringRoomId,Qe(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),Qe(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),Qe(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new ZE({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new KE({room:this}),this.badCaseDetector=new e_({room:this}),this.audioManager=new Su(this),this.videoManager=new Ec(this)}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 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}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 y(this,null,function*(){return this.publish(e)})}removeTrack(e){return y(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return y(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(Ne(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Bt(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?(xu([a,a]),Fo(`https://${a}`)):(s&&Fo(s),n&&xu(n))}U.once(F.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:si.main,sched_back_domain:si.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return y(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(r=>{e[r.userId]=r.remoteAudioTrack.stat}),e})}getTransportStats(){return y(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 y(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 de({code:q.INVALID_OPERATION,message:$e({key:Fe.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(Yt.INVALID_DESTROY),new de({code:q.INVALID_OPERATION,message:$e({key:Fe.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(F.ROOM_DESTROY,{room:this})}schedule(e,r){return y(this,null,function*(){var s,n,a,u;let o=_e();try{let{isCached:m,result:p,detailCost:g}=yield lp({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:at,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:r,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=m,this._log.info(`schedule cache:${+m} ${mr(p,{keysToExclude:["username","credential"]})}`),m&&U.once(F.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=X(X({},this.scheduleResult),p),ke((s=p.config)==null?void 0:s.retryCount)&&wl(p.config.retryCount),Ne((n=p.config)==null?void 0:n.loggerDomain)&&Fo(p.config.loggerDomain),this.videoDecodeFallbackType=((a=p.config)==null?void 0:a.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((u=p.config)==null?void 0:u.smallMode)||this.smallMode,U.emit(F.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:g}),Q.addSuccessEvent({key:521700,cost:_e()-o})}catch(m){throw Q.addFailedEvent({key:521700,error:m}),m}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}switchRoom(e){return Promise.reject()}isSwitchRoomSupported(){return!1}};function i_(i,t=!1){let e=Object.defineProperties(Rt(),{postMessage:{value:i.postMessage.bind(i)},port:{get(){return i},set(o){i.onmessage=Be,i.onmessageerror=Be,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 wp=class extends pe{constructor(t,e){super(t);let r=new pe(t);r.next=Be,e(r)}},WH=Te(wp,"takeUntilComplete");var Pt={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},o_="__INLINE__WORKER__",s_="__INLINE__WASM__",{debug:n_}=console;Pt.debug||(console.debug=()=>{});var cA=!o_.startsWith("__"),dA=!s_.startsWith("__");function il(){let i=zo(`${Pt.assetsPath?`${Pt.assetsPath}/`:""}worker.js`);return cA?URL.createObjectURL(new Blob([atob(o_)],{type:"application/javascript"})):i.startsWith("http")?fetch(i).then(t=>t.blob().then(e=>URL.createObjectURL(e))):i}var _c;function ol(){return y(this,null,function*(){let i=Pt.assetsPath?`${Pt.assetsPath}/`:"";return _c||(dA?_c=new TextEncoder().encode(atob(s_)).buffer:_c=yield fetch(zo(`${i}av_processing.wasm`)).then(t=>t.arrayBuffer()),_c)})}var Mp=class{constructor(){l(this,"playPort");l(this,"playPortSent",!1);l(this,"worklet");l(this,"workletPromise")}init(){return this.workletPromise||(this.workletPromise=this._init()),this.workletPromise}_init(){return y(this,null,function*(){let t=We("player"),e=il();try{yield t.audioWorklet.addModule(typeof e=="string"?e:yield e),$.info("global audio player worklet addModule success",e)}catch(r){throw $.error("global audio player worklet addModule failed:",r),r}return this.worklet=new AudioWorkletNode(t,"global-audio-player",{processorOptions:{wasm:yield ol(),flag:Pt},numberOfInputs:2}),$.info("global audio player worklet created",t.state),this.worklet.connect(t.destination),this.playPort=this.worklet.port,this.playPort})}playAudio(t){return y(this,null,function*(){this.playPortSent||(this.playPortSent=!0,t(yield this.init()))})}},sl=new Mp;var Op=(()=>{if(typeof self=="undefined")return!1;if(!("top"in self&&self!==top)){if("showOpenFilePicker"in self)return"showOpenFilePicker"}return!1})(),YH=Op?Promise.resolve().then(function(){return hA}):Promise.resolve().then(function(){return TA});var ZH=Op?Promise.resolve().then(function(){return fA}):Promise.resolve().then(function(){return SA});var uA=Op?Promise.resolve().then(function(){return EA}):Promise.resolve().then(function(){return AA});function xp(...i){return y(this,null,function*(){return(yield uA).default(...i)})}var lA=i=>y(void 0,null,function*(){let t=yield i.getFile();return t.handle=i,t}),mA=(...t)=>y(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(lA));return i[0].multiple?o:o[0]}),hA={__proto__:null,default:mA};function nl(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 nl=function(e){this.s=e,this.n=e.next},nl.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 nl(i)}var a_=(o,s,...n)=>y(void 0,[o,s,...n],function*(i,t,e=i.name,r){let a=[],u=[];var m,p=!1,g=!1;try{for(var _,A=function(C){var N,D,O,Z=2;for(typeof Symbol!="undefined"&&(D=Symbol.asyncIterator,O=Symbol.iterator);Z--;){if(D&&(N=C[D])!=null)return N.call(C);if(O&&(N=C[O])!=null)return new nl(N.call(C));D="@@asyncIterator",O="@@iterator"}throw new TypeError("Object is not async iterable")}(i.values());p=!(_=yield A.next()).done;p=!1){let C=_.value,N=`${e}/${C.name}`;C.kind==="file"?u.push(C.getFile().then(D=>(D.directoryHandle=i,D.handle=C,Object.defineProperty(D,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>N})))):C.kind!=="directory"||!t||r&&r(C)||a.push(a_(C,t,N,r))}}catch(C){g=!0,m=C}finally{try{p&&A.return!=null&&(yield A.return())}finally{if(g)throw m}}return[...(yield Promise.all(a)).flat(),...yield Promise.all(u)]}),pA=(...t)=>y(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 a_(e,i.recursive,void 0,i.skipDirectory)}),fA={__proto__:null,default:pA},gA=(s,...n)=>y(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=[],u=null;if(i instanceof Blob&&i.type?u=i.type:i.headers&&i.headers.get("content-type")&&(u=i.headers.get("content-type")),t.forEach((g,_)=>{a[_]={description:g.description||"Files",accept:{}},g.mimeTypes?(_===0&&u&&g.mimeTypes.push(u),g.mimeTypes.map(A=>{a[_].accept[A]=g.extensions||[]})):u?a[_].accept[u]=g.extensions||[]:a[_].accept["*/*"]=g.extensions||[]}),e)try{yield e.getFile()}catch(g){if(e=null,r)throw g}let m=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(m);let p=yield m.createWritable();return"stream"in i?(yield i.stream().pipeTo(p),m):"body"in i?(yield i.body.pipeTo(p),m):(yield p.write(yield i),yield p.close(),m)}),EA={__proto__:null,default:gA},_A=(...t)=>y(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(m=>m.mimeTypes||[]),...i.map(m=>m.extensions||[])].join();o.multiple=i[0].multiple||!1,o.accept=s||"",o.style.display="none",document.body.append(o);let n=m=>{typeof a=="function"&&a(),e(m)},a=i[0].legacySetup&&i[0].legacySetup(n,()=>a(r),o),u=()=>{window.removeEventListener("focus",u),o.remove()};o.addEventListener("click",()=>{window.addEventListener("focus",u)}),o.addEventListener("change",()=>{window.removeEventListener("focus",u),o.remove(),n(o.multiple?Array.from(o.files):o.files[0])}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),TA={__proto__:null,default:_A},IA=(...t)=>y(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(u=>u.webkitRelativePath.split("/").every(m=>!i[0].skipDirectory({name:m,kind:"directory"})))):a=a.filter(u=>u.webkitRelativePath.split("/").length===2),s(a)}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),SA={__proto__:null,default:IA},yA=(e,...r)=>y(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(u,m){return y(this,null,function*(){let p=u.getReader(),g=new ReadableStream({start:C=>function N(){return y(this,null,function*(){return p.read().then(({done:D,value:O})=>{if(!D)return C.enqueue(O),N();C.close()})})}()}),_=new Response(g),A=yield _.blob();return p.releaseLock(),new Blob([A],{type:m})})}(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}),AA={__proto__:null,default:yA};var Pp=class{constructor(t){this.name=t;l(this,"ready");l(this,"worker");l(this,"ports");l(this,"ids",1);l(this,"transactions",new Map);l(this,"log");l(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 y(this,null,function*(){if(this.ready)return this.ready;t||(t=this.name),console.time(`createWorker_${t}`);let e=il(),r=new Worker(typeof e=="string"?e:yield e,{name:t});return this.worker=r,this.ready=new Promise((o,s)=>y(this,null,function*(){r.onmessage=({data:{id:n,type:a,payload:u}})=>{var m;if(n)(m=this.transactions.get(n))==null||m(u),this.transactions.delete(n);else switch(a){case"error":console.timeEnd(`createWorker_${t}`),console.warn("worker error:",u),s(u);break;case"ready":console.timeEnd(`createWorker_${t}`),o(this);break;case"updateAFSM":if(u.value){let p=typeof u.old=="string"?u.old:`${u.old.action}ing`,g=typeof u.value=="string"?u.value:`${u.value.action}ing`;console.log(td(),u.group,u.name,p,"\u{1F449}",g)}break;case"log":console.log(u);break;case"glog":window.dispatchEvent(new CustomEvent(a,{detail:u}));break}},r.postMessage({wasm:yield ol(),flag:Pt},this.ports)}))})}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},kp=class{constructor(t,e,r){this.worker=t;l(this,"channel",new MessageChannel);l(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()}},Lp=class i extends Pp{constructor(){super("main");l(this,"switchValue",new Map);l(this,"extendChannel");l(this,"sessionCount",0)}setSwitchValue(e,r){var o;this.switchValue.set(e,r),(o=this.extendChannel)==null||o.port1.postMessage([e,r])}create(){return y(this,null,function*(){return this.ready?this.ready:(this.extendChannel=new MessageChannel,this.ports=[this.extendChannel.port2],yield Ft(i.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},Ro=new Lp,bs,bA=-1;function c_(i){return console.log(i),bs.push(i.slice()),bs.length>1e3&&bs.shift(),i}function d_(i){return y(this,null,function*(){switch(bA){case 0:this.edpl.willDecodeAudio=c_;break;case 2:this.edpl.didEncodeAudio=c_;break}yield Ro.create(),U.emit(F.JOIN_SEND_CMD,{room:this});let t=new kp(Ro,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(F.JOIN_RECEIVED_CMD_RES,{room:this,code:e}),e===0)return Object.assign(this,r,{session:t});throw new de({code:q.JOIN_ROOM_FAILED,extraCode:Number(e),message:$e({key:Fe.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:e,errorMsg:""}})})}else throw e})}Object.defineProperties(window,{useAINS:{set:Up},useWt:{set:RA},enableDebug:{set(i){console.debug=i?n_:()=>{},Ro.setSwitchValue("enableDebug",i)}},useV2:{set:Vp},dump:{value(){if(bs||(console.warn("dump audio will be activated at next time join room"),bs=[]),!bs.length){console.warn("no audio data to dump,try it later");return}let i=[];return bs.forEach(t=>{i.push(new Uint16Array([t.length])),i.push(t)}),xp(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;Ro.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,Ro.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return xp(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:Pt.useHardDecoder="prefer-hardware";break;case!1:Pt.useHardDecoder="prefer-software";break;default:Pt.useHardDecoder="no-preference"}}}});function Up(i){return y(this,null,function*(){Ro.setSwitchValue("useAINS",i)})}function Vp(i){return y(this,null,function*(){Ro.setSwitchValue("useV2",i)})}function RA(i){return y(this,null,function*(){Ro.setSwitchValue("useWt",i)})}function u_(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 l_(i){return y(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(i_(r.port2),ze(be(i,le.INIT)),Le(s=>{let{data:n,packetsReceived:a}=s;i.stat.packetsReceived=a,i.stat.framesReceived++,e++;let u=n[4]&31;if(e<=10){let p=Array.from(n.slice(0,10)).map(g=>g.toString(16).padStart(2,"0")).join(" ");this._log.info(`Frame ${e} - Size: ${n.length} bytes, Type: ${u}, Timestamp: ${Date.now()-t}ms First 10 bytes: ${p}`)}let m;switch(u){case 5:case 7:m="key";break;default:m="delta";break}i.isAvailable?i.decodeFrame({data:n.buffer,type:m,timestamp:(Date.now()-t)*1e3}):console.warn("track is not available")},()=>{},()=>{r.port2.postMessage(null),r.port2.close()}))})}var al=[];function h_(i){var u;let t=Rt();if(this.state!=="joined")throw new Error("Room is not joined");if(i.state==="publish")return;for(let m=0;m<=al.length;m++)if(!al[m]){al[m]=this,this.index=m;break}let e=i.profile;this._log.info("start push audio",this.index,e);let r=new MessageChannel,o=i.enableEncodeFrame?new MessageChannel:null;(u=this.session)==null||u.postMessage({cmd:"pushAudio",payload:X({index:this.index},e)},o?[r.port2,o.port2]:[r.port2]),r.port1.onmessage=m=>{m.data==null||(typeof m.data=="number"?t.next(m.data):o&&o.port1.postMessage(ge(X({},m.data),{data:new Uint8Array(i.encodeFrame({data:m.data.data.buffer,timestamp:m.data.timestamp}).data)})))};let s=new MediaStream,n,a=m=>{let p=s.getAudioTracks()[0];p&&(n.disconnect(),s.removeTrack(p)),s.addTrack(m),this._log.info("push audio track:",m.readyState,m.getSettings().deviceId),n=We("player").createMediaStreamSource(s),n.connect(sl.worklet,0,this.index)};Ae(be(i,"output-media-track-changed"),ze(be(i,"ready")),Le(a,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,n.disconnect(),al[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),Ae(t,Ka(m=>i.volume=m),ki(gu(1e3)),Le(()=>{i.volume=0})),a(i.outMediaTrack)}var O4=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var Fp=class{constructor(t,e,r,o){this.localTrack=t;this.type=e;this.config=r;this.port=o;l(this,"track");l(this,"label");l(this,"insertKeyFrame",!0);l(this,"session");l(this,"tsMap",new Map);t._log.info("create Video Encoder",r)}trans(t,e,r){return y(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 y(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 y(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(F.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 u=this.localTrack.encodeFrame({data:a.buffer},this.type===3);a=new Uint8Array(u.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 y(this,null,function*(){var r;if(t)Object.assign(this.config,t);else if(e.frameEncoded===0)for(let o=0;o<=ai.length;o++){let{supported:s}=yield VideoDecoder.isConfigSupported(this.config);if(s)break;if(o===ai.length)return;ai[o](this.config),e.selectConfigIndex=o}else e.selectConfigIndex+e.recreateCount<=ai.length&&e.recreateCount>0?ai[e.selectConfigIndex+e.recreateCount-1](this.config):ai[e.selectConfigIndex](this.config);(r=e.encoder)==null||r.configure(this.config)})}close(){this.port.postMessage(null),this.port.close()}};function cl(i,t){return y(this,null,function*(){let e=i.mediaType===2,r=e?"screen":"video",o={codec:"avc1.640028",latencyMode:"realtime",avc:{format:"annexb"},hardwareAcceleration:Pt.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 Fp(i,t.type,o,s.port2);return s.port2.onmessage=a=>{if(a.data===260)n.insertKeyFrame=!0;else if(!e){let{bitrate:u}=a.data;sa({configureBr:[a.data.bitrate,u]}),n.session&&n.configure({bitrate:u},n.session)}},this._log.info("start push",r,t),n})}function p_(i){return y(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 cl.call(this,i,r);this._log.info("VideoEncoder created",r);let u,m=g=>y(this,null,function*(){if(u==null||u.abort("track changed"),!g)return;u=new AbortController;let{width:_,height:A,displaySurface:C}=g.getSettings();_&&(a.config.width=_),A&&(a.config.height=A);let N=sr.match(/Chrome\/(\d+)/);(N==null?void 0:N[1])==="114"&&C==="browser"&&delete a.config.hardwareAcceleration,this._log.info("push",e,"track:",g.readyState,g.getSettings());let D;if(typeof MediaStreamTrackProcessor!="undefined"&&!(g instanceof CanvasCaptureMediaStreamTrack))D=new MediaStreamTrackProcessor({track:g}).readable;else{let Z;D=new ReadableStream({start(ue){i.on("render",Se=>{if(i.player.mode!==0)try{ue.enqueue(new VideoFrame(Se,{timestamp:performance.now()*1e3}))}catch(Ye){console.warn(Ye)}})},pull(ue){return y(this,null,function*(){if(i.player.mode===0&&Mi()&&i.player.element)return new Promise(Se=>{i.player.element.requestVideoFrameCallback((Ye,H)=>{try{let Pe=new VideoFrame(i.player.element);ue.enqueue(Pe)}catch(Pe){console.warn(Pe)}Se()})})})}})}let O="small"in i&&i.small;return O?(this.smallEncoder||(this.smallEncoder=yield cl.call(this,i,{profile:O,type:3,trackType:o})),this.smallEncoder.track=g,this.smallEncoder.label="small",D=yield this.smallEncoder.trans(D,u,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),a.track=g,a.label=e,a.start(D,u,this)});return Ae(be(i,"output-media-track-changed"),ze(be(i,"ready")),Le(m,console.error,()=>{var g;this._log.info("stop push",e,r),u.abort("unpublish"),a.close(),(g=this.smallEncoder)==null||g.close()})),m(i.outMediaTrack)})}var vo=class vo extends le{constructor(e){var r,o;super((o=(r=e.roomid)==null?void 0:r.toString())!=null?o:e.name,"volumeEvaluation");this.room=e;l(this,"enableInBackground",!1);l(this,"interval",400);e.on("joined",()=>{this.emit(vo.INTERVALCHANGED,this.interval)}),Ae(be(this,vo.INTERVALCHANGED),Eo(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):Ae(rE(s),go(()=>[]))),Le(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==le.ON&&this.room.emit("audio-volume",s)}))}start(e,r){this.interval=e,this.enableInBackground=r,this.emit(vo.INTERVALCHANGED,this.interval)}stop(){}};l(vo,"INTERVALCHANGED","intervalChanged"),te([Ze([le.INIT,le.OFF],le.ON)],vo.prototype,"start",1),te([Ze([],le.OFF)],vo.prototype,"stop",1);var dl=vo;var Co=class Co extends rl{constructor(e){super(e);l(this,"index",0);l(this,"session");l(this,"tinyid");l(this,"roomid");l(this,"openid");l(this,"socketid");l(this,"relayip");l(this,"clientip");l(this,"remotePublishedUserMap",new Map);l(this,"bussinessInfo");l(this,"token");l(this,"audioVolumeEvalution",new dl(this));l(this,"enableAIVoice",Up);l(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:lm(),uint32_device_type:0,str_os_verion:mm(),uint32_link_type:1,str_client_version:at,uint32_net_type:$o[Xr.getNetworkType()],ua:navigator.userAgent,version:""}});l(this,"joinAbortController",new AbortController);l(this,"smallAbortCtrl");l(this,"smallEncoder");e.tinyId&&(this.tinyId=e.tinyId,Vp(!0)),this._log||(this._log=e.logger),this.bussinessInfo=e.bussinessInfo,e.encodedDataProcessingListener&&this.setEncodedDataProcessingListener(e.encodedDataProcessingListener)}replaceTrack(e){return y(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 y(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 y(this,null,function*(){var u,m,p;let s=Xr.getEnv(),n=Ud(),a={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:o,params:e,proxy_wt:(u=this.proxy_wt)==null?void 0:u.replace("https://",""),proxy_ws:(m=this.proxy_ws)==null?void 0:m.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:nn(),browserInfo:Ud(),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:at,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 d_.call(this,a),console.log(this),sl.playAudio(g=>this.postMessage({cmd:"setAudioWorkletPort"},[g])),this.checkDestroy()})}leave(){return y(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 y(this,null,function*(){let e=ze(be(this,"left"));Ae(r=>y(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,Le(({data:r,port:o})=>{let s=this.audioManager.decodePipeline[0]({frame:{data:r.data.buffer}});o.postMessage(ge(X({},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 F.RECEIVED_PUBLISHED_USER_LIST:U.emit(e,X({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 Xu(this,r);this.remotePublishedUserMap.set(r.userId,o),this.emit("remote-published",o);return;case"5":{let g=r,_=this.remotePublishedUserMap.get(g);_&&(_.remoteVideoTrack.close(),_.remoteAuxiliaryTrack.close(),_.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(g),this.emit("remote-unpublished",_))}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:g,muteState:_,flag:A}=r,C=this.remotePublishedUserMap.get(_.userId);if(!C){this.emit("remote-publish-state-changed",r);return}C.flag=A}U.emit(F.REMOTE_PUBLISH_STATE_CHANGED,X({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=X({},r);let{uplinkLoss:s,uplinkRTT:n,uplinkInfo:a,downlinkInfo:u,msg_down_stream_info:m}=r,p={str_sdk_version:at,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:$o[oa()]},msg_event_msg:sE(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:a,msg_down_stream_info:m};U.emit(F.HEARTBEAT_REPORT,{room:this,report:p}),this.emit("heartbeat-report",p),U.emit(F.NETWORK_QUALITY,{room:this,uplink:{rtt:n,loss:s},downlinks:u}),delete r.downlinkInfo;break;case"signal-connection-state-changed":U.emit(F.SIGNAL_CONNECTION_STATE_CHANGED,X({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 y(this,null,function*(){e.forEach(a=>this.localTracks.add(a));let r=e.reduce((a,u)=>u.mediaType|a,0),o=this.sendMessage("publish",r).then(a=>a.err!==0?Promise.reject(a.err):a),s=0,n=a=>y(this,null,function*(){switch(yield o,a.muted&&(s|=a.mediaType),bt(a,a).add("mute",()=>{this.postMessage("mute",{mediaType:a.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})}).add("unmute",()=>{this.postMessage("unmute",{mediaType:a.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})}),a.mediaType){case 1:h_.call(this,a);break;default:yield p_.call(this,a)}});yield Promise.all(e.map(n)),s&&this.postMessage("mute",{mediaType:s,srctinyid:this.tinyid,userId:this.openid,remove:!0})})}unpublish(...e){return y(this,null,function*(){e.forEach(ut),e.forEach(r=>this.localTracks.delete(r))})}subscribe(...e){return y(this,null,function*(){let r=e.reduce((g,_)=>_.mediaType|g,0),{userId:o,tinyId:s,streamType:n}=e[0],a=this.remotePublishedUserMap.get(o),u=X({},a.subscribeState),m=Object.assign(new Ra,u);m.mediaType|=r,U.emit(F.SUBSCRIBE_START,{room:this,streamType:n,remotePublishedUser:a,subscribeState:m});let p=yield this.sendMessage("subscribe",{mediaType:m.mediaType,userId:o,srctinyid:s,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter(g=>m.mediaType&g).map(g=>({mediaType:g,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",p),yield Promise.all(e.filter(g=>!g.isSubscribed).map(g=>{switch(g.mediaType){case 1:return u_.call(this,g);default:return l_.call(this,g)}})),U.emit(F.SUBSCRIBE_SUCCESS,{room:this,streamType:n,remotePublishedUser:a})})}unsubscribe(...e){return y(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(F.UNSUBSCRIBE_SUCCESS,{room:this,streamType:s,remotePublishedUser:this.remotePublishedUserMap.get(o)})}})}enableSmall(e){return y(this,null,function*(){var r;if(e){if(this.videoManager.smallTrack){let o=this.videoManager.cameraTrack;this.smallEncoder=yield cl.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"))}};te([po(Co.prototype.afterJoin),Ze(["left",le.INIT],"joined"),zE()],Co.prototype,"join",1),te([Ze("joined","left",{ignoreError:!0}),JE()],Co.prototype,"leave",1),te([cs(),XE()],Co.prototype,"publish",1),te([cs(),QE()],Co.prototype,"unpublish",1),te([jg((...e)=>e[0].userId),YE()],Co.prototype,"subscribe",1);var ul=Co;xn.frameWorkType=37;xn.create=function(i){let t=xn._create.call(this,ul,i);return t._use(np,i==null?void 0:i.assetsPath),i!=null&&i.assetsPath&&(Pt.assetsPath=i==null?void 0:i.assetsPath),console.log("trtc wasm sdk:",at,"created",Pt),t};Object.assign(xn.prototype,{_setCurrentSpeaker(i){let t=We("player");return t!=null&&t.setSinkId?t.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return y(this,null,function*(){return this.startPlugin(np.Name,{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.420028"},fallback:"wasm"}),new Promise((e,r)=>{Ae(be(i,"decode-downgrade-state-changed"),Jt(o=>o.state==="STARTED"),Fr(1),qh(1e4),ze(be(i,le.INIT)),Le(e,r))})})}});Gm(37);var oG=xn;export{oG as default};